aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Guilds/Guild.cpp
diff options
context:
space:
mode:
authorMikhail Redko <ovitnez@gmail.com>2021-10-01 17:33:21 +0300
committerGitHub <noreply@github.com>2021-10-01 16:33:21 +0200
commit3cef126d0a449219f154a6498d26831f86220dfa (patch)
treefa26e8a5d0ed7ce292b2a510872a587b55406ba5 /src/server/game/Guilds/Guild.cpp
parent82aca86d87c16d2d41c891dcd60c8e9975924dcc (diff)
Core/Misc: Improvement item durability repair logic. (#26911)
* Core/Misc: Improvement item durability repair logic. * Move item repair cost calculation logic from Player::DurabilityRepair to Item::CalculateDurabilityRepairCost * Make item repair cost calculation more congruent with client logic (std::round) * Do not repair items if player does not have enough money to pay for the repair of all items at once * Withdrawing money from guild bank only once to avoid spam in the guild bank log and reduce number of transactions in the database Closes #25937 * Fix build * Remove unnecessary scope * Fix visual studio warning and one more check for reliability
Diffstat (limited to 'src/server/game/Guilds/Guild.cpp')
-rw-r--r--src/server/game/Guilds/Guild.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp
index 690ecc14e52..01d1bfc3ae4 100644
--- a/src/server/game/Guilds/Guild.cpp
+++ b/src/server/game/Guilds/Guild.cpp
@@ -2347,6 +2347,15 @@ bool Guild::ChangeMemberRank(CharacterDatabaseTransaction trans, ObjectGuid guid
return false;
}
+uint64 Guild::GetMemberAvailableMoneyForRepairItems(ObjectGuid guid) const
+{
+ Member const* member = GetMember(guid);
+ if (!member)
+ return 0;
+
+ return std::min(m_bankMoney, static_cast<uint64>(_GetMemberRemainingMoney(*member)));
+}
+
// Bank (items move)
void Guild::SwapItems(Player* player, uint8 tabId, uint8 slotId, uint8 destTabId, uint8 destSlotId, uint32 splitedAmount)
{