diff options
| author | Mikhail Redko <ovitnez@gmail.com> | 2021-10-01 17:33:21 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-01 16:33:21 +0200 |
| commit | 3cef126d0a449219f154a6498d26831f86220dfa (patch) | |
| tree | fa26e8a5d0ed7ce292b2a510872a587b55406ba5 /src/server/game/Guilds/Guild.cpp | |
| parent | 82aca86d87c16d2d41c891dcd60c8e9975924dcc (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.cpp | 9 |
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) { |
