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;