From c57d7079d9cf31a8104062691df767fe9a0f73d7 Mon Sep 17 00:00:00 2001 From: AtelierWindows Date: Sun, 24 Jan 2021 21:07:37 +1300 Subject: [PATCH] check if cant afford services --- DataCollection/gamedata.json | 2 +- .../Horse Isle Server/Game/Services/Vet.cs | 4 ++-- .../Horse Isle Server/Server/GameServer.cs | 13 ++++++++++--- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/DataCollection/gamedata.json b/DataCollection/gamedata.json index 9d4c8c2..1bb569f 100644 --- a/DataCollection/gamedata.json +++ b/DataCollection/gamedata.json @@ -136,7 +136,7 @@ "vet":{ "service_horse":"^LYour horse %HORSENAME%: health currently %CURHEALTH%/%MAXHEALTH%^R1", "not_needed":"^I257^T8Vet services are not needed for this horse.^R1", - "apply":"^I257^T6Apply vet services for $%PRICE% ^B3V%RANDOMID%", + "apply":"^I257^T6Apply vet services for $%PRICE% ^B3V%RANDOMID%^R1", "apply_all":"^R1^I257^T6Apply all vet services for $%PRICE% ^B3v^R1", "now_full_health":"Your horse %HORSENAME% is now at full health!", diff --git a/Horse Isle Server/Horse Isle Server/Game/Services/Vet.cs b/Horse Isle Server/Horse Isle Server/Game/Services/Vet.cs index 1e88bcc..69bec40 100644 --- a/Horse Isle Server/Horse Isle Server/Game/Services/Vet.cs +++ b/Horse Isle Server/Horse Isle Server/Game/Services/Vet.cs @@ -22,8 +22,8 @@ namespace HISP.Game.Services public double PriceMultiplier; public int CalculatePrice(int health) { - double price = ((double)health - 1000.0) * PriceMultiplier; - return Convert.ToInt32(Math.Floor(price)); + double price = (1000.0 - (double)health) * PriceMultiplier; + return Convert.ToInt32(Math.Round(price)); } public static Vet GetVetById(int id) diff --git a/Horse Isle Server/Horse Isle Server/Server/GameServer.cs b/Horse Isle Server/Horse Isle Server/Server/GameServer.cs index 012ec7d..f37132f 100644 --- a/Horse Isle Server/Horse Isle Server/Server/GameServer.cs +++ b/Horse Isle Server/Horse Isle Server/Server/GameServer.cs @@ -211,8 +211,13 @@ namespace HISP.Server foreach (HorseInstance horse in sender.LoggedinUser.HorseInventory.HorseList) price += vet.CalculatePrice(horse.BasicStats.Health); - - if (sender.LoggedinUser.Money >= price) + if(price == 0) + { + byte[] notNeededMessagePacket = PacketBuilder.CreateChat(Messages.VetServicesNotNeededAll, PacketBuilder.CHAT_BOTTOM_RIGHT); + sender.SendPacket(notNeededMessagePacket); + break; + } + else if (sender.LoggedinUser.Money >= price) { foreach (HorseInstance horse in sender.LoggedinUser.HorseInventory.HorseList) horse.BasicStats.Health = 1000; @@ -227,7 +232,9 @@ namespace HISP.Server { byte[] cannotAffordMessagePacket = PacketBuilder.CreateChat(Messages.VetCannotAffordMessage, PacketBuilder.CHAT_BOTTOM_RIGHT); sender.SendPacket(cannotAffordMessagePacket); + break; } + UpdateArea(sender); } } break; @@ -276,9 +283,9 @@ namespace HISP.Server byte[] cantAffordMessage = PacketBuilder.CreateChat(Messages.VetCannotAffordMessage, PacketBuilder.CHAT_BOTTOM_RIGHT); sender.SendPacket(cantAffordMessage); } + UpdateArea(sender); } } - break; } else