From dec301d88d7ce314063b355444238944c751e9d6 Mon Sep 17 00:00:00 2001 From: SilicaPi Date: Mon, 1 Feb 2021 20:42:23 +1300 Subject: [PATCH] implement "view minigames" --- .../HorseIsleServer/Game/Meta.cs | 44 ++++++++++++++++++- .../HorseIsleServer/Server/GameServer.cs | 9 +++- 2 files changed, 50 insertions(+), 3 deletions(-) diff --git a/Horse Isle Server/HorseIsleServer/Game/Meta.cs b/Horse Isle Server/HorseIsleServer/Game/Meta.cs index 792d005..c82ef8f 100755 --- a/Horse Isle Server/HorseIsleServer/Game/Meta.cs +++ b/Horse Isle Server/HorseIsleServer/Game/Meta.cs @@ -360,7 +360,49 @@ namespace HISP.Game message += Messages.MetaTerminator; return message; } - + public static string BuildMinigamesLibary() + { + string message = ""; + message += Messages.MinigameSingleplayer; + foreach(World.SpecialTile tile in World.SpecialTiles.OrderBy(o => o.Title)) + { + if(tile.TypeFlag == "1PLAYER") + { + string mapXy = Messages.FormatMapLocation(tile.X, tile.Y); + message += Messages.FormatMinigameEntry(tile.Title, mapXy); + } + } + message += Messages.MinigameTwoplayer; + foreach(World.SpecialTile tile in World.SpecialTiles.OrderBy(o => o.Title)) + { + if(tile.TypeFlag == "2PLAYER") + { + string mapXy = Messages.FormatMapLocation(tile.X, tile.Y); + message += Messages.FormatMinigameEntry(tile.Title, mapXy); + } + } + message += Messages.MinigameMultiplayer; + foreach(World.SpecialTile tile in World.SpecialTiles.OrderBy(o => o.Title)) + { + if(tile.TypeFlag == "MULTIPLAYER") + { + string mapXy = Messages.FormatMapLocation(tile.X, tile.Y); + message += Messages.FormatMinigameEntry(tile.Title, mapXy); + } + } + message += Messages.MinigameCompetitions; + foreach(World.SpecialTile tile in World.SpecialTiles.OrderBy(o => o.Title)) + { + if(tile.TypeFlag == "ARENA") + { + string mapXy = Messages.FormatMapLocation(tile.X, tile.Y); + message += Messages.FormatMinigameEntry(tile.Title, mapXy); + } + } + message += Messages.BackToMap; + message += Messages.MetaTerminator; + return message; + } public static string BuildCompanionLibary() { string message = ""; diff --git a/Horse Isle Server/HorseIsleServer/Server/GameServer.cs b/Horse Isle Server/HorseIsleServer/Server/GameServer.cs index a8373bf..ee0bd6d 100755 --- a/Horse Isle Server/HorseIsleServer/Server/GameServer.cs +++ b/Horse Isle Server/HorseIsleServer/Server/GameServer.cs @@ -1269,12 +1269,12 @@ namespace HISP.Server sender.SendPacket(metaPacket); } break; - case "9": // View Tack + case "9": // View Tack (Libary) sender.LoggedinUser.MetaPriority = true; metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildTackLibary()); sender.SendPacket(metaPacket); break; - case "10": + case "10": // View Companions (Libary) sender.LoggedinUser.MetaPriority = true; metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildCompanionLibary()); sender.SendPacket(metaPacket); @@ -1289,6 +1289,11 @@ namespace HISP.Server sender.SendPacket(metaPacket); } break; + case "12": // View Minigames (Libary) + sender.LoggedinUser.MetaPriority = true; + metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildMinigamesLibary()); + sender.SendPacket(metaPacket); + break; case "21": // Private Notes sender.LoggedinUser.MetaPriority = true; metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildPrivateNotes(sender.LoggedinUser));