diff options
| author | Shauren <shauren.trinity@gmail.com> | 2023-06-17 16:29:59 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2023-06-17 16:29:59 +0200 |
| commit | 0fb8765a6638fd947b59fce44d5c31251d0cdadd (patch) | |
| tree | 0414c93f15f760f755b559edb654be3c9865eb1d /src/server/game/Loot/LootMgr.cpp | |
| parent | a97cdfc8f5dedc4be1998f0b1667b519fb1ce33b (diff) | |
Core/Items: Item bonus generation improvements
* Pass ItemContext to item creation wherever possible
* Support scaling item levels with m+ keystone levels (not used currently)
* Fixed item link validation when client sends it as default uninitialized bonus list with context only
* Support scaling items depending on current active season (seasons not implemented)
* Implemented content tuning redirection
Diffstat (limited to 'src/server/game/Loot/LootMgr.cpp')
| -rw-r--r-- | src/server/game/Loot/LootMgr.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/server/game/Loot/LootMgr.cpp b/src/server/game/Loot/LootMgr.cpp index 00959ce3a0b..dec8215dc50 100644 --- a/src/server/game/Loot/LootMgr.cpp +++ b/src/server/game/Loot/LootMgr.cpp @@ -19,6 +19,7 @@ #include "Containers.h" #include "DatabaseEnv.h" #include "DB2Stores.h" +#include "ItemBonusMgr.h" #include "ItemTemplate.h" #include "Log.h" #include "Loot.h" @@ -947,7 +948,8 @@ bool LootTemplate::isReference(uint32 id) } std::unordered_map<ObjectGuid, std::unique_ptr<Loot>> GenerateDungeonEncounterPersonalLoot(uint32 dungeonEncounterId, uint32 lootId, LootStore const& store, - LootType type, WorldObject const* lootOwner, uint32 minMoney, uint32 maxMoney, uint16 lootMode, ItemContext context, std::vector<Player*> const& tappers) + LootType type, WorldObject const* lootOwner, uint32 minMoney, uint32 maxMoney, uint16 lootMode, MapDifficultyEntry const* mapDifficulty, + std::vector<Player*> const& tappers) { std::unordered_map<Player*, std::unique_ptr<Loot>> tempLoot; @@ -958,7 +960,7 @@ std::unordered_map<ObjectGuid, std::unique_ptr<Loot>> GenerateDungeonEncounterPe std::unique_ptr<Loot>& loot = tempLoot[tapper]; loot.reset(new Loot(lootOwner->GetMap(), lootOwner->GetGUID(), type, nullptr)); - loot->SetItemContext(context); + loot->SetItemContext(ItemBonusMgr::GetContextForPlayer(mapDifficulty, tapper)); loot->SetDungeonEncounterId(dungeonEncounterId); loot->generateMoneyLoot(minMoney, maxMoney); } |
