diff --git a/DataCollection/gamedata.json b/DataCollection/gamedata.json
index 81a82cb..6a57408 100644
--- a/DataCollection/gamedata.json
+++ b/DataCollection/gamedata.json
@@ -137,7 +137,7 @@
"horse_timer":"You have 60 seconds to capture the horse. Good luck!",
"horse_escaped":"The Horse Evaded Capture.",
"hore_caught":"You Captured the Horse!",
-
+ "too_many_horses":"You cannot manage any more horses.",
"horses_menu":"^ATYour Horses^HYou can have up to %MAXHORSE% horses. Here are your %TOTALHORSE%:
",
"update_category":"Horse set as %CATEGORY%",
"horse_format":"^I252^T7#%NUMB%: %NAME% (%BREED%) ^B3L%ID%^R1",
@@ -587,10 +587,11 @@
},
"horses":{
"categorys":[
+ {"name":"LEASED","message":"^LLEASED - Horses only temporarily cared for, limited use:^R1"},
{"name":"KEEPER","message":"^LKEEPERS - Horses I would not sell for any price:^R1"},
{"name":"TRAINING","message":"^LTRAINING - Horses I am actively training and competing with:^R1"},
{"name":"TRADING","message":"^LTRADING - Horses I am trading or auctioning:^R1"},
- {"name":"RETIRED","message":"^LRETIRED - Horses that are still special to me but not used:^R1"},
+ {"name":"RETIRED","message":"^LRETIRED - Horses that are still special to me but not used:^R1"}
],
"breeds":[
{
diff --git a/Horse Isle Server/Horse Isle Server/Game/Inventory/HorseInventory.cs b/Horse Isle Server/Horse Isle Server/Game/Inventory/HorseInventory.cs
index 9192517..1528606 100644
--- a/Horse Isle Server/Horse Isle Server/Game/Inventory/HorseInventory.cs
+++ b/Horse Isle Server/Horse Isle Server/Game/Inventory/HorseInventory.cs
@@ -17,8 +17,18 @@ namespace HISP.Game.Inventory
}
}
+ public int MaxHorses
+ {
+ get
+ {
+ return 7; // will change when ranches are implemented.
+ }
+ }
public void AddHorse(HorseInstance horse, bool addToDb=true)
{
+ if (HorseList.Length + 1 > MaxHorses)
+ throw new InventoryFullException();
+
horse.Owner = baseUser.Id;
if(addToDb)
Database.AddHorse(horse);
diff --git a/Horse Isle Server/Horse Isle Server/Game/Messages.cs b/Horse Isle Server/Horse Isle Server/Game/Messages.cs
index 16eeb14..f366f62 100644
--- a/Horse Isle Server/Horse Isle Server/Game/Messages.cs
+++ b/Horse Isle Server/Horse Isle Server/Game/Messages.cs
@@ -169,7 +169,7 @@ namespace HISP.Game
public static string HorseCaptureTimer;
public static string YouCapturedTheHorse;
public static string HorseEvadedCapture;
-
+ public static string TooManyHorses;
public static string HorsesMenuHeader;
public static string UpdateHorseCategory;
public static string HorseEntryFormat;
diff --git a/Horse Isle Server/Horse Isle Server/Game/Meta.cs b/Horse Isle Server/Horse Isle Server/Game/Meta.cs
index 507040e..2ed5695 100644
--- a/Horse Isle Server/Horse Isle Server/Game/Meta.cs
+++ b/Horse Isle Server/Horse Isle Server/Game/Meta.cs
@@ -879,7 +879,7 @@ namespace HISP.Game
public static string BuildHorseInventory(User user)
{
// TODO: calculate max number based on ranch barns owned.
- string message = Messages.FormatHorseHeader(7, user.HorseInventory.HorseList.Length);
+ string message = Messages.FormatHorseHeader(user.HorseInventory.MaxHorses, user.HorseInventory.HorseList.Length);
int i = 1;
foreach(HorseInfo.Category category in HorseInfo.HorseCategories)
diff --git a/Horse Isle Server/Horse Isle Server/Server/GameDataJson.cs b/Horse Isle Server/Horse Isle Server/Server/GameDataJson.cs
index d9a90e9..2fbbd77 100644
--- a/Horse Isle Server/Horse Isle Server/Server/GameDataJson.cs
+++ b/Horse Isle Server/Horse Isle Server/Server/GameDataJson.cs
@@ -604,6 +604,7 @@ namespace HISP.Server
Messages.HorseEvadedCapture = gameData.messages.meta.horse.horse_escaped;
Messages.HorsesMenuHeader = gameData.messages.meta.horse.horses_menu;
+ Messages.TooManyHorses = gameData.messages.meta.horse.too_many_horses;
Messages.UpdateHorseCategory = gameData.messages.meta.horse.update_category;
Messages.HorseEntryFormat = gameData.messages.meta.horse.horse_format;
Messages.ViewBaiscStats = gameData.messages.meta.horse.view_basic_stats;
diff --git a/Horse Isle Server/Horse Isle Server/Server/GameServer.cs b/Horse Isle Server/Horse Isle Server/Server/GameServer.cs
index 6ca3ce6..0865caa 100644
--- a/Horse Isle Server/Horse Isle Server/Server/GameServer.cs
+++ b/Horse Isle Server/Horse Isle Server/Server/GameServer.cs
@@ -123,7 +123,17 @@ namespace HISP.Server
if (WildHorse.DoesHorseExist(sender.LoggedinUser.CapturingHorseId))
{
WildHorse capturing = WildHorse.GetHorseById(sender.LoggedinUser.CapturingHorseId);
- capturing.Capture(sender.LoggedinUser);
+
+ try{
+ capturing.Capture(sender.LoggedinUser);
+ }
+ catch(InventoryFullException)
+ {
+ byte[] chatMsg = PacketBuilder.CreateChat(Messages.TooManyHorses, PacketBuilder.CHAT_BOTTOM_RIGHT);
+ sender.SendPacket(chatMsg);
+ break;
+ }
+
Logger.InfoPrint(sender.LoggedinUser.Username + " Captured a: " + capturing.Instance.Breed.Name + " new location: " + capturing.X + ", " + capturing.Y);
sender.LoggedinUser.MetaPriority = true;