From b66fe013ba4ab91281d5b905a98a0baea403213d Mon Sep 17 00:00:00 2001 From: SilicaAndPina Date: Mon, 4 Jan 2021 17:16:49 +1300 Subject: [PATCH] allow for 'view breeds' in libary. --- DataCollection/gamedata.json | 4 +++- .../Horse Isle Server/Game/Messages.cs | 11 +++++++++++ Horse Isle Server/Horse Isle Server/Game/Meta.cs | 16 ++++++++++++++++ .../Horse Isle Server/Server/GameDataJson.cs | 3 +++ .../Horse Isle Server/Server/GameServer.cs | 5 ++++- 5 files changed, 37 insertions(+), 2 deletions(-) diff --git a/DataCollection/gamedata.json b/DataCollection/gamedata.json index dd54bf9..99b27c2 100644 --- a/DataCollection/gamedata.json +++ b/DataCollection/gamedata.json @@ -136,7 +136,9 @@ "find_npc_results_header":"The following residents match closely:
", "find_npc_results_format":"^T7%NPCNAME%, %NPCDESC%^B1M%MAPXY%^R1", "find_npc_no_results":"The following residents match closely:
None were found by that name, try looking for a partial name.", - "find_npc_limit5":"^L- Limited to 5 results. Try narrowing the search.^R1" + "find_npc_limit5":"^L- Limited to 5 results. Try narrowing the search.^R1", + "horse_breed_format":"^I252^T7Horse Breed %NAME%:^D4c%ID%|VIEW^R1", + "horse_relative_format":"^I252^T7A Horse Relative, the %NAME%:^D4c%ID%|VIEW^R1" }, "multiroom":{ "other_players_participating":"
^LThe following other players are participating:", diff --git a/Horse Isle Server/Horse Isle Server/Game/Messages.cs b/Horse Isle Server/Horse Isle Server/Game/Messages.cs index 44a13d2..7b591b7 100644 --- a/Horse Isle Server/Horse Isle Server/Game/Messages.cs +++ b/Horse Isle Server/Horse Isle Server/Game/Messages.cs @@ -83,6 +83,9 @@ namespace HISP.Game public static string LibaryFindNpcSearchNoResults; public static string LibaryFindNpcLimit5; + public static string HorseBreedFormat; + public static string HorseRelativeFormat; + // Records public static string ProfileSavedMessage; @@ -347,6 +350,14 @@ namespace HISP.Game // Click public static string NothingInterestingHere; + public static string FormatHorseRelative(string name, int id) + { + return HorseRelativeFormat.Replace("%NAME%", name).Replace("%ID%", id.ToString()); + } + public static string FormatHorseBreed(string name, int id) + { + return HorseBreedFormat.Replace("%NAME%", name).Replace("%ID%", id.ToString()); + } public static string FormatNpcSearchResult(string name, string desc,int x, int y) { string mapXy = FormatMapLocation(x, y); diff --git a/Horse Isle Server/Horse Isle Server/Game/Meta.cs b/Horse Isle Server/Horse Isle Server/Game/Meta.cs index 7938fff..2b41567 100644 --- a/Horse Isle Server/Horse Isle Server/Game/Meta.cs +++ b/Horse Isle Server/Horse Isle Server/Game/Meta.cs @@ -620,6 +620,22 @@ namespace HISP.Game return message; } + public static string BuildHorseList() + { + string message = ""; + foreach(Horse.Breed breed in Horse.Breeds.OrderBy(o => o.Name).ToList()) + { + if (breed.Type == "unicorn" || breed.Type == "pegasus") + continue; + if (breed.Type == "horse") + message += Messages.FormatHorseBreed(breed.Name, breed.Id); + else + message += Messages.FormatHorseRelative(breed.Name, breed.Id); + } + message += Messages.BackToMap; + message += Messages.MetaTerminator; + return message; + } public static string BuildNpcSearch(string search) { List foundNpcs = new List(); diff --git a/Horse Isle Server/Horse Isle Server/Server/GameDataJson.cs b/Horse Isle Server/Horse Isle Server/Server/GameDataJson.cs index 11d2e80..992bef7 100644 --- a/Horse Isle Server/Horse Isle Server/Server/GameDataJson.cs +++ b/Horse Isle Server/Horse Isle Server/Server/GameDataJson.cs @@ -594,6 +594,9 @@ namespace HISP.Server Messages.LibaryFindNpcSearchNoResults = gameData.messages.meta.libary.find_npc_no_results; Messages.LibaryFindNpcLimit5 = gameData.messages.meta.libary.find_npc_limit5; + Messages.HorseBreedFormat = gameData.messages.meta.libary.horse_breed_format; + Messages.HorseRelativeFormat = gameData.messages.meta.libary.horse_relative_format; + // Chat Messages.ChatViolationMessageFormat = gameData.messages.chat.violation_format; diff --git a/Horse Isle Server/Horse Isle Server/Server/GameServer.cs b/Horse Isle Server/Horse Isle Server/Server/GameServer.cs index db2c915..85d43d9 100644 --- a/Horse Isle Server/Horse Isle Server/Server/GameServer.cs +++ b/Horse Isle Server/Horse Isle Server/Server/GameServer.cs @@ -356,7 +356,10 @@ namespace HISP.Server break; case "31": // Find Ranch break; - case "4": // View Horse Breed + case "4": // View Horse Breeds + sender.LoggedinUser.MetaPriority = true; + metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildHorseList()); + sender.SendPacket(metaPacket); break; case "9": // View Tack break;