18#ifndef TRINITY_LOOTMGR_H
19#define TRINITY_LOOTMGR_H
26#include <unordered_map>
60 : itemid(_itemid), type(_type), chance(_chance), lootmode(_lootmode),
61 needs_quest(_needs_quest), groupid(_groupid), mincount(_mincount), maxcount(_maxcount)
64 bool Roll(
bool rate)
const;
76 explicit LootStore(
char const* name,
char const* entryName,
bool ratesAllowed);
88 void CheckLootRefs(
LootIdSet* ref_set =
nullptr) const;
89 void ReportUnusedIds(
LootIdSet const& lootIdSet) const;
90 void ReportNonExistingId(
uint32 lootId,
char const* ownerType,
uint32 ownerId) const;
92 bool HaveLootFor(
uint32 loot_id)
const {
return m_LootTemplates.contains(loot_id); }
93 bool HaveQuestLootFor(
uint32 loot_id)
const;
94 bool HaveQuestLootForPlayer(
uint32 loot_id,
Player const* player)
const;
99 char const*
GetName()
const {
return m_name; }
131 void ProcessPersonalLoot(
std::unordered_map<
Player*,
std::unique_ptr<
Loot>>& personalLoot,
bool rate,
uint16 lootMode) const;
132 void CopyConditions(
LootItem* li) const;
135 bool HasDropForPlayer(
Player const* player,
uint8 groupId = 0,
bool strictUsabilityCheck = false) const;
void LoadLootTemplates_Pickpocketing()
LootStore LootTemplates_Spell("spell_loot_template", "spell id (random item creating)", false)
LootStore LootTemplates_Skinning("skinning_loot_template", "creature skinning id", true)
void LoadLootTemplates_Spell()
void LoadLootTemplates_Milling()
LootStore LootTemplates_Gameobject("gameobject_loot_template", "gameobject entry", true)
void LoadLootTemplates_Gameobject()
void LoadLootTemplates_Creature()
LootStore LootTemplates_Item("item_loot_template", "item entry", true)
LootStore LootTemplates_Milling("milling_loot_template", "item entry (herb)", true)
LootStore LootTemplates_Reference("reference_loot_template", "reference id", false)
LootStore LootTemplates_Disenchant("disenchant_loot_template", "item disenchant id", true)
LootStore LootTemplates_Prospecting("prospecting_loot_template", "item entry (ore)", true)
void LoadLootTemplates_Fishing()
void LoadLootTemplates_Reference()
LootStore LootTemplates_Creature("creature_loot_template", "creature entry", true)
void LoadLootTemplates_Prospecting()
LootStore LootTemplates_Pickpocketing("pickpocketing_loot_template", "creature pickpocket lootid", true)
void LoadLootTemplates_Mail()
void LoadLootTemplates_Disenchant()
void LoadLootTemplates_Item()
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, MapDifficultyEntry const *mapDifficulty, std::vector< Player * > const &tappers)
LootStore LootTemplates_Mail("mail_loot_template", "mail template id", false)
void LoadLootTemplates_Skinning()
LootStore LootTemplates_Fishing("fishing_loot_template", "area id", true)
std::vector< std::unique_ptr< LootStoreItem > > LootStoreItemList
std::unordered_map< uint32, std::unique_ptr< LootTemplate > > LootTemplateMap
std::set< uint32 > LootIdSet
LootStore(LootStore const &)=delete
LootTemplateMap m_LootTemplates
char const * GetEntryName() const
bool IsRatesAllowed() const
LootStore(LootStore &&) noexcept
char const * GetName() const
LootTemplate(LootTemplate &&) noexcept
std::vector< std::unique_ptr< LootGroup > > LootGroups
LootTemplate(LootTemplate const &)=delete
ConditionsReference conditions
LootStoreItem(uint32 _itemid, Type _type, float _chance, bool _needs_quest, uint16 _lootmode, uint8 _groupid, uint8 _mincount, uint8 _maxcount)