From 8b36407981aca7a36134406061c2e7d29085920f Mon Sep 17 00:00:00 2001 From: SilicaAndPina Date: Fri, 1 Jan 2021 22:04:07 +1300 Subject: [PATCH] Add bank interest --- .../Horse Isle Server/Game/Meta.cs | 28 +++++++++++++++---- .../Horse Isle Server/Player/User.cs | 2 +- .../Horse Isle Server/Server/Database.cs | 5 ++-- .../Horse Isle Server/Server/GameServer.cs | 4 ++- 4 files changed, 29 insertions(+), 10 deletions(-) diff --git a/Horse Isle Server/Horse Isle Server/Game/Meta.cs b/Horse Isle Server/Horse Isle Server/Game/Meta.cs index e00b174..caf8577 100644 --- a/Horse Isle Server/Horse Isle Server/Game/Meta.cs +++ b/Horse Isle Server/Horse Isle Server/Game/Meta.cs @@ -596,12 +596,28 @@ namespace HISP.Game private static string buildBank(User user) { - string messages = Messages.FormatBankCarryingMeta(user.Money, Convert.ToUInt64(Math.Floor(user.BankMoney))); - messages += Messages.BankWhatToDo; - messages += Messages.FormatBankOptionsMeta(user.Money, Convert.ToUInt64(Math.Floor(user.BankMoney))); - messages += Messages.ExitThisPlace; - messages += Messages.MetaTerminator; - return messages; + double moneyMade = 0; + if (user.BankInterest > user.BankMoney) + { + moneyMade = user.BankMoney - user.BankInterest; + user.BankMoney = user.BankInterest; + + } + user.BankInterest = user.BankMoney; + + string message = ""; + moneyMade = Math.Floor(moneyMade); + if (moneyMade > 0) + message += Messages.FormatBankIntrestMadeMeta(Convert.ToUInt64(moneyMade)); + + message += Messages.FormatBankCarryingMeta(user.Money, Convert.ToUInt64(Math.Floor(user.BankMoney))); + message += Messages.BankWhatToDo; + message += Messages.FormatBankOptionsMeta(user.Money, Convert.ToUInt64(Math.Floor(user.BankMoney))); + message += Messages.ExitThisPlace; + message += Messages.MetaTerminator; + + + return message; } diff --git a/Horse Isle Server/Horse Isle Server/Player/User.cs b/Horse Isle Server/Horse Isle Server/Player/User.cs index 69cf16b..e3db0fc 100644 --- a/Horse Isle Server/Horse Isle Server/Player/User.cs +++ b/Horse Isle Server/Horse Isle Server/Player/User.cs @@ -195,7 +195,7 @@ namespace HISP.Player value = 9999999999.9999; Database.SetPlayerBankInterest(value, Id); - BankInterest = value; + bankInterest = value; } } public double BankMoney diff --git a/Horse Isle Server/Horse Isle Server/Server/Database.cs b/Horse Isle Server/Horse Isle Server/Server/Database.cs index b885e00..ef46ac1 100644 --- a/Horse Isle Server/Horse Isle Server/Server/Database.cs +++ b/Horse Isle Server/Horse Isle Server/Server/Database.cs @@ -2175,13 +2175,14 @@ namespace HISP.Server } } - public static void DoIntrestPayments() + public static void DoIntrestPayments(int intrestRate) { using (MySqlConnection db = new MySqlConnection(ConnectionString)) { db.Open(); MySqlCommand sqlCommand = db.CreateCommand(); - sqlCommand.CommandText = "UPDATE UserExt SET BankBalance=BankBalance * (1/@interestRate) AND NOT BankBalance * (1/@interestRate) > 9999999999.9999"; + sqlCommand.CommandText = "UPDATE UserExt SET BankInterest=BankInterest * (1/@interestRate) AND NOT BankInterest * (1/@interestRate) > 9999999999.9999"; + sqlCommand.Parameters.AddWithValue("@interest", intrestRate); sqlCommand.Prepare(); sqlCommand.ExecuteNonQuery(); diff --git a/Horse Isle Server/Horse Isle Server/Server/GameServer.cs b/Horse Isle Server/Horse Isle Server/Server/GameServer.cs index f6e32e1..742dee1 100644 --- a/Horse Isle Server/Horse Isle Server/Server/GameServer.cs +++ b/Horse Isle Server/Horse Isle Server/Server/GameServer.cs @@ -45,7 +45,7 @@ namespace HISP.Server private static void onGameTick(object state) { World.TickWorldClock(); - + gameTimer.Change(gameTickSpeed, gameTickSpeed); } private static void onMinuteTick(object state) @@ -56,6 +56,8 @@ namespace HISP.Server { Database.IncAllUsersFreeTime(1); } + + Database.DoIntrestPayments(ConfigReader.IntrestRate); Database.IncPlayerTirednessForOfflineUsers(); DroppedItems.Update(); minuteTimer.Change(oneMinute, oneMinute);