diff --git a/DataCollection/gamedata.json b/DataCollection/gamedata.json index 1517ecd..8883f95 100755 --- a/DataCollection/gamedata.json +++ b/DataCollection/gamedata.json @@ -13,7 +13,8 @@ "random_movement":"You are sooo %STAT%. You wander dizzily in a different direction.", "incorrect_password":"Incorrect. You will have to find the correct answer somewhere...", "treasure":{ - "pirate_treasure":"Wow! You found buried treasure worth $%PRIZE%! Gotta love those pirates!" + "pirate_treasure":"Wow! You found buried treasure worth $%PRIZE%! Gotta love those pirates!", + "pot_of_gold":"YEA! You found the fabled pot of gold at the end of the rainbow! It was worth $%PRIZE%!" }, "new_user":{ "starting_message":"Welcome Newest Rider of Horse Isle!
Start by talking to Welcome Willy in the cabin. Click the TALK button by his name in the right hand window. He will know the location of a buried treasure on this island! Move to the spot he describes using the arrow keys. Then Click the WRENCH Icon at the lower right.", @@ -567,7 +568,7 @@ {"id":"HorsePawn","value":"Sold Horse To Pawneer"}, {"id":"WaterbaloonGameWin","value":"Water Balloon Wins"}, {"id":"UnicornTeamup","value":"Unicorn Team-up"}, - {"id":"PotOfGold","value":"Pot Of Gold"}, + {"id":"PotOfGold","value":"Pot Of Golds"}, {"id":"GameUpdates","value":"Game Updates / Resets"}, {"id":"UnipegTeamup","value":"UniPeg Team-up"} ], diff --git a/Horse Isle Server/HorseIsleServer/Game/Messages.cs b/Horse Isle Server/HorseIsleServer/Game/Messages.cs index f621451..b66b149 100755 --- a/Horse Isle Server/HorseIsleServer/Game/Messages.cs +++ b/Horse Isle Server/HorseIsleServer/Game/Messages.cs @@ -419,6 +419,7 @@ namespace HISP.Game // Treasure public static string PirateTreasureFormat; + public static string PotOfGoldFormat; // Groomer @@ -778,6 +779,10 @@ namespace HISP.Game { return PirateTreasureFormat.Replace("%PRIZE%", prize.ToString("N0")); } + public static string FormatPotOfGold(int prize) + { + return PotOfGoldFormat.Replace("%PRIZE%", prize.ToString("N0")); + } public static string FormatWorkshopCraftEntry(int iconId, string itemName, int price, int itemId, int craftId) { return WorkshopCraftEntryFormat.Replace("%ICONID%", iconId.ToString()).Replace("%ITEMNAME%", itemName).Replace("%PRICE%", price.ToString("N0")).Replace("%ITEMID%", itemId.ToString()).Replace("%CRAFTID%", craftId.ToString()); diff --git a/Horse Isle Server/HorseIsleServer/Game/Quest.cs b/Horse Isle Server/HorseIsleServer/Game/Quest.cs index c9906af..ea8d520 100755 --- a/Horse Isle Server/HorseIsleServer/Game/Quest.cs +++ b/Horse Isle Server/HorseIsleServer/Game/Quest.cs @@ -336,7 +336,9 @@ namespace HISP.Game // check Treasures if (Treasure.IsTileTreasure(x, y)) { - Treasure.GetTreasureAt(x, y).CollectTreasure(user); + Treasure treasure = Treasure.GetTreasureAt(x, y); + if(treasure.Type == "BURIED") + treasure.CollectTreasure(user); return true; } } diff --git a/Horse Isle Server/HorseIsleServer/Game/Treasure.cs b/Horse Isle Server/HorseIsleServer/Game/Treasure.cs index 97a49ba..ad1e477 100644 --- a/Horse Isle Server/HorseIsleServer/Game/Treasure.cs +++ b/Horse Isle Server/HorseIsleServer/Game/Treasure.cs @@ -157,6 +157,9 @@ namespace HISP.Game } else if(this.Type == "RAINBOW") { + byte[] treasureReceivedPacket = PacketBuilder.CreateChat(Messages.FormatPotOfGold(this.Value), PacketBuilder.CHAT_BOTTOM_RIGHT); + user.LoggedinClient.SendPacket(treasureReceivedPacket); + user.TrackedItems.GetTrackedItem(Tracking.TrackableItem.PotOfGold).Count++; if (user.TrackedItems.GetTrackedItem(Tracking.TrackableItem.PotOfGold).Count >= 3) diff --git a/Horse Isle Server/HorseIsleServer/Server/GameDataJson.cs b/Horse Isle Server/HorseIsleServer/Server/GameDataJson.cs index d79d237..d027ee3 100755 --- a/Horse Isle Server/HorseIsleServer/Server/GameDataJson.cs +++ b/Horse Isle Server/HorseIsleServer/Server/GameDataJson.cs @@ -729,6 +729,7 @@ namespace HISP.Server // Treasure Messages.PirateTreasureFormat = gameData.messages.treasure.pirate_treasure; + Messages.PotOfGoldFormat = gameData.messages.treasure.pot_of_gold; // Records Messages.ProfileSavedMessage = gameData.messages.profile_save; diff --git a/Horse Isle Server/HorseIsleServer/Server/GameServer.cs b/Horse Isle Server/HorseIsleServer/Server/GameServer.cs index 249e05f..7f569f0 100755 --- a/Horse Isle Server/HorseIsleServer/Server/GameServer.cs +++ b/Horse Isle Server/HorseIsleServer/Server/GameServer.cs @@ -2809,13 +2809,28 @@ namespace HISP.Server return; } - if(loggedInUser.Y != newY || loggedInUser.X != newX) + + if (loggedInUser.Y != newY || loggedInUser.X != newX) { loggedInUser.Facing = direction + (onHorse * 5); if (moveTwo) direction += 20; loggedInUser.Y = newY; loggedInUser.X = newX; + + + // check Treasures + if (Treasure.IsTileTreasure(loggedInUser.X, loggedInUser.Y)) + { + Treasure treasure = Treasure.GetTreasureAt(loggedInUser.X, loggedInUser.Y); + if (treasure.Type == "RAINBOW") + { + treasure.CollectTreasure(loggedInUser); + Update(sender); + return; + } + } + byte[] moveResponse = PacketBuilder.CreateMovementPacket(loggedInUser.X, loggedInUser.Y, loggedInUser.CharacterId, loggedInUser.Facing, direction, true); sender.SendPacket(moveResponse); }