![]() |
TrinityCore
|
#include <AzeriteItem.h>
Inheritance diagram for AzeriteItem:Classes | |
| struct | ValuesUpdateForPlayerWithMaskSender |
Static Public Member Functions | |
| static void | DeleteFromDB (CharacterDatabaseTransaction trans, ObjectGuid::LowType itemGuid) |
| static uint32 | GetCurrentKnowledgeLevel () |
| static uint64 | CalcTotalXPToNextLevel (uint32 level, uint32 knowledgeLevel) |
| static GameObject const * | FindHeartForge (Player const *owner) |
Static Public Member Functions inherited from Item | |
| static Item * | CreateItem (uint32 itemEntry, uint32 count, ItemContext context, Player const *player=nullptr, bool addDefaultBonuses=true) |
| static void | DeleteFromDB (CharacterDatabaseTransaction trans, ObjectGuid::LowType itemGuid) |
| static void | DeleteFromInventoryDB (CharacterDatabaseTransaction trans, ObjectGuid::LowType itemGuid) |
| static uint32 | GetItemLevel (ItemTemplate const *itemTemplate, BonusData const &bonusData, uint32 level, uint32 fixedLevel, int32 minItemLevel, int32 minItemLevelCutoff, int32 maxItemLevel, bool pvpBonus, uint32 azeriteLevel, uint32 overrideContentTuningId) |
| static ItemDisenchantLootEntry const * | GetBaseDisenchantLoot (ItemTemplate const *itemTemplate, uint32 quality, uint32 itemLevel) |
| static bool | CanTransmogrifyItemWithItem (Item const *item, ItemModifiedAppearanceEntry const *itemModifiedAppearance) |
| static uint32 | GetBuyPrice (ItemTemplate const *proto, uint32 quality, uint32 itemLevel, bool &standardPrice) |
| static uint32 | GetSellPrice (ItemTemplate const *proto, uint32 quality, uint32 itemLevel) |
Static Public Member Functions inherited from Object | |
| static WorldObject * | ToWorldObject (Object *o) |
| static WorldObject const * | ToWorldObject (Object const *o) |
| static Item * | ToItem (Object *o) |
| static Item const * | ToItem (Object const *o) |
| static Unit * | ToUnit (Object *o) |
| static Unit const * | ToUnit (Object const *o) |
| static Creature * | ToCreature (Object *o) |
| static Creature const * | ToCreature (Object const *o) |
| static Player * | ToPlayer (Object *o) |
| static Player const * | ToPlayer (Object const *o) |
| static GameObject * | ToGameObject (Object *o) |
| static GameObject const * | ToGameObject (Object const *o) |
| static Corpse * | ToCorpse (Object *o) |
| static Corpse const * | ToCorpse (Object const *o) |
| static DynamicObject * | ToDynObject (Object *o) |
| static DynamicObject const * | ToDynObject (Object const *o) |
| static AreaTrigger * | ToAreaTrigger (Object *o) |
| static AreaTrigger const * | ToAreaTrigger (Object const *o) |
| static SceneObject * | ToSceneObject (Object *o) |
| static SceneObject const * | ToSceneObject (Object const *o) |
| static Conversation * | ToConversation (Object *o) |
| static Conversation const * | ToConversation (Object const *o) |
Static Public Member Functions inherited from BaseEntity | |
| static ObjectGuid | GetGUID (BaseEntity const *o) |
Public Attributes | |
| UF::UpdateField< UF::AzeriteItemData, int32(WowCS::EntityFragment::CGObject), TYPEID_AZERITE_ITEM > | m_azeriteItemData |
Public Attributes inherited from Item | |
| std::unique_ptr< Loot > | m_loot |
| bool | m_lootGenerated |
| UF::UpdateField< UF::ItemData, uint32(WowCS::EntityFragment::CGObject), TYPEID_ITEM > | m_itemData |
Public Attributes inherited from Object | |
| UF::UpdateField< UF::ObjectData, int32(WowCS::EntityFragment::CGObject), TYPEID_OBJECT > | m_objectData |
Public Attributes inherited from BaseEntity | |
| UF::UpdateFieldHolder | m_values |
Protected Member Functions | |
| void | BuildValuesCreate (UF::UpdateFieldFlag flags, ByteBuffer &data, Player const *target) const override |
| void | BuildValuesUpdate (UF::UpdateFieldFlag flags, ByteBuffer &data, Player const *target) const override |
| void | ClearValuesChangesMask () override |
Protected Member Functions inherited from Item | |
| UF::UpdateFieldFlag | GetUpdateFieldFlagsFor (Player const *target) const final |
| void | BuildValuesCreate (UF::UpdateFieldFlag flags, ByteBuffer &data, Player const *target) const override |
| void | BuildValuesUpdate (UF::UpdateFieldFlag flags, ByteBuffer &data, Player const *target) const override |
| void | ClearValuesChangesMask () override |
Protected Member Functions inherited from Object | |
| Object () | |
| void | BuildEntityFragmentsForValuesUpdateForPlayerWithMask (ByteBuffer &data, EnumFlag< UF::UpdateFieldFlag > flags) const |
Protected Member Functions inherited from BaseEntity | |
| BaseEntity () | |
| void | _Create (ObjectGuid const &guid) |
| template<typename T > | |
| void | SetUpdateFieldValue (UF::UpdateFieldPrivateSetter< T > setter, typename UF::UpdateFieldPrivateSetter< T >::value_type value) |
| template<typename T > | |
| void | SetUpdateFieldFlagValue (UF::UpdateFieldPrivateSetter< T > setter, typename UF::UpdateFieldPrivateSetter< T >::value_type flag) |
| template<typename T > | |
| void | RemoveUpdateFieldFlagValue (UF::UpdateFieldPrivateSetter< T > setter, typename UF::UpdateFieldPrivateSetter< T >::value_type flag) |
| template<typename T > | |
| UF::DynamicUpdateFieldSetter< T >::insert_result | AddDynamicUpdateFieldValue (UF::DynamicUpdateFieldSetter< T > setter) |
| template<typename T > | |
| UF::DynamicUpdateFieldSetter< T >::insert_result | InsertDynamicUpdateFieldValue (UF::DynamicUpdateFieldSetter< T > setter, uint32 index) |
| template<typename T > | |
| void | RemoveDynamicUpdateFieldValue (UF::DynamicUpdateFieldSetter< T > setter, uint32 index) |
| template<typename T > | |
| void | ClearDynamicUpdateFieldValues (UF::DynamicUpdateFieldSetter< T > setter) |
| template<typename K , typename V > | |
| void | RemoveMapUpdateFieldValue (UF::MapUpdateFieldSetter< K, V > setter, std::type_identity_t< K > const &key) |
| template<typename T > | |
| void | InsertSetUpdateFieldValue (UF::SetUpdateFieldSetter< T > setter, std::type_identity_t< T > const &key) |
| template<typename T > | |
| void | RemoveSetUpdateFieldValue (UF::SetUpdateFieldSetter< T > setter, std::type_identity_t< T > const &key) |
| template<typename T > | |
| void | RemoveOptionalUpdateFieldValue (UF::OptionalUpdateFieldSetter< T > setter) |
| template<typename T > | |
| void | SetUpdateFieldStatValue (UF::UpdateFieldPrivateSetter< T > setter, typename UF::UpdateFieldPrivateSetter< T >::value_type value) |
| template<typename T > | |
| void | ApplyModUpdateFieldValue (UF::UpdateFieldPrivateSetter< T > setter, typename UF::UpdateFieldPrivateSetter< T >::value_type mod, bool apply) |
| template<typename T > | |
| void | ApplyPercentModUpdateFieldValue (UF::UpdateFieldPrivateSetter< T > setter, float percent, bool apply) |
| template<typename Action > | |
| void | DoWithSuppressingObjectUpdates (Action &&action) |
| void | BuildMovementUpdate (ByteBuffer &data, CreateObjectBits flags, Player const *target) const |
| void | AddToObjectUpdateIfNeeded () |
Private Member Functions | |
| void | UnlockDefaultMilestones () |
Additional Inherited Members | |
Static Protected Member Functions inherited from BaseEntity | |
| static void | BuildEntityFragments (ByteBuffer &data, std::span< WowCS::EntityFragment const > fragments) |
Protected Attributes inherited from Item | |
| BonusData | _bonusData |
Protected Attributes inherited from BaseEntity | |
| TypeID | m_objectTypeId = NUM_CLIENT_OBJECT_TYPES |
| CreateObjectBits | m_updateFlag = {} |
| WowCS::EntityFragmentsHolder | m_entityFragments |
| bool | m_objectUpdated = false |
Definition at line 29 of file AzeriteItem.h.
| AzeriteItem::AzeriteItem | ( | ) |
Definition at line 31 of file AzeriteItem.cpp.
References WowCS::EntityFragmentsHolder::Add(), UF::AzeriteItemData::DEBUGknowledgeWeek, m_azeriteItemData, BaseEntity::m_entityFragments, BaseEntity::m_objectTypeId, BaseEntity::m_values, UF::UpdateFieldHolder::ModifyValue(), BaseEntity::SetUpdateFieldValue(), WowCS::Tag_AzeriteItem, and TYPEID_AZERITE_ITEM.
|
inline |
Definition at line 62 of file AzeriteItem.h.
References BaseEntity::AddDynamicUpdateFieldValue(), m_azeriteItemData, and UF::AzeriteItemData::UnlockedEssenceMilestones.
Referenced by WorldSession::HandleAzeriteEssenceUnlockMilestone(), LoadAzeriteItemData(), and UnlockDefaultMilestones().
|
overrideprotectedvirtual |
Implements Object.
Definition at line 394 of file AzeriteItem.cpp.
References flags, m_azeriteItemData, Item::m_itemData, and Object::m_objectData.
|
overrideprotectedvirtual |
Implements Object.
Definition at line 401 of file AzeriteItem.cpp.
References flags, UF::UpdateFieldHolder::GetChangedObjectTypeMask(), UF::UpdateFieldHolder::HasChanged(), m_azeriteItemData, Item::m_itemData, Object::m_objectData, BaseEntity::m_values, TYPEID_AZERITE_ITEM, TYPEID_ITEM, and TYPEID_OBJECT.
| void AzeriteItem::BuildValuesUpdateForPlayerWithMask | ( | UpdateData * | data, |
| UF::ObjectData::Mask const & | requestedObjectMask, | ||
| UF::ItemData::Mask const & | requestedItemMask, | ||
| UF::AzeriteItemData::Mask const & | requestedAzeriteItemMask, | ||
| Player const * | target, | ||
| bool | ignoreNestedChangesMask | ||
| ) | const |
Definition at line 432 of file AzeriteItem.cpp.
References UpdateData::AddUpdateBlock(), Object::BuildEntityFragmentsForValuesUpdateForPlayerWithMask(), UF::ItemData::FilterDisallowedFieldsMaskForFlag(), UF::AzeriteItemData::FilterDisallowedFieldsMaskForFlag(), flags, UpdateMask< Bits >::GetBlock(), Item::GetUpdateFieldFlagsFor(), m_azeriteItemData, Item::m_itemData, Object::m_objectData, BaseEntity::PrepareValuesUpdateBuffer(), ByteBuffer::put(), UpdateMask< Bits >::Set(), TYPEID_AZERITE_ITEM, TYPEID_ITEM, TYPEID_OBJECT, and ByteBuffer::wpos().
Referenced by AzeriteItem::ValuesUpdateForPlayerWithMaskSender::operator()().
|
overridevirtual |
Reimplemented from Object.
Definition at line 415 of file AzeriteItem.cpp.
References UF::ItemData::AppendAllowedFieldsMaskForFlag(), UF::AzeriteItemData::AppendAllowedFieldsMaskForFlag(), flags, UpdateMask< Bits >::GetBlock(), m_azeriteItemData, Item::m_itemData, UpdateMask< Bits >::Set(), TYPEID_AZERITE_ITEM, and TYPEID_ITEM.
Definition at line 230 of file AzeriteItem.cpp.
References AzeriteLevelInfoEntry::BaseExperienceToNextLevel, AzeriteLevelInfoEntry::MinimumExperienceToNextLevel, sAzeriteKnowledgeMultiplierStore, and sAzeriteLevelInfoStore.
Referenced by GiveXP(), and LoadAzeriteItemData().
| bool AzeriteItem::CanUseEssences | ( | ) | const |
Definition at line 298 of file AzeriteItem.cpp.
References Item::GetOwner(), ConditionMgr::IsPlayerMeetingCondition(), and PLAYER_CONDITION_ID_UNLOCKED_AZERITE_ESSENCES.
Referenced by WorldSession::HandleAzeriteEssenceActivateEssence(), and WorldSession::HandleAzeriteEssenceUnlockMilestone().
|
overrideprotectedvirtual |
Reimplemented from Object.
Definition at line 483 of file AzeriteItem.cpp.
References UF::UpdateFieldHolder::ClearChangesMask(), Item::ClearValuesChangesMask(), m_azeriteItemData, and BaseEntity::m_values.
|
overridevirtual |
Reimplemented from Item.
Definition at line 40 of file AzeriteItem.cpp.
References Item::Create(), GetCurrentKnowledgeLevel(), UF::AzeriteItemData::KnowledgeLevel, UF::AzeriteItemData::Level, m_azeriteItemData, BaseEntity::m_values, UF::UpdateFieldHolder::ModifyValue(), BaseEntity::SetUpdateFieldValue(), and UnlockDefaultMilestones().
| void AzeriteItem::CreateSelectedAzeriteEssences | ( | uint32 | specializationId | ) |
Definition at line 378 of file AzeriteItem.cpp.
References BaseEntity::AddDynamicUpdateFieldValue(), UF::SelectedAzeriteEssences::Enabled, m_azeriteItemData, BaseEntity::m_values, UF::UpdateFieldHolder::ModifyValue(), UF::AzeriteItemData::SelectedEssences, and UF::SelectedAzeriteEssences::SpecializationID.
Referenced by WorldSession::HandleAzeriteEssenceActivateEssence(), LoadAzeriteItemData(), and SetSelectedAzeriteEssences().
|
overridevirtual |
Reimplemented from Item.
Definition at line 210 of file AzeriteItem.cpp.
References DeleteFromDB(), Item::DeleteFromDB(), and BaseEntity::GetGUID().
|
static |
Definition at line 195 of file AzeriteItem.cpp.
References CHAR_DEL_ITEM_INSTANCE_AZERITE, CHAR_DEL_ITEM_INSTANCE_AZERITE_MILESTONE_POWER, CHAR_DEL_ITEM_INSTANCE_AZERITE_UNLOCKED_ESSENCE, CharacterDatabase, and PreparedStatementBase::setUInt64().
Referenced by Player::_LoadItem(), Player::_LoadMailedItem(), Player::_SaveMail(), DeleteFromDB(), and ObjectMgr::ReturnOrDeleteOldMails().
|
static |
Definition at line 289 of file AzeriteItem.cpp.
References WorldObject::FindNearestGameObjectOfType(), and GAMEOBJECT_TYPE_ITEM_FORGE.
Referenced by WorldSession::HandleAzeriteEssenceUnlockMilestone().
|
static |
Definition at line 216 of file AzeriteItem.cpp.
References GameTime::GetGameTime(), and MAX_AZERITE_ITEM_KNOWLEDGE_LEVEL.
Referenced by Create(), and LoadAzeriteItemData().
|
inline |
Definition at line 42 of file AzeriteItem.h.
Definition at line 309 of file AzeriteItem.cpp.
References UF::UnlockedAzeriteEssence::AzeriteEssenceID, and m_azeriteItemData.
Referenced by WorldSession::HandleAzeriteEssenceActivateEssence(), and LoadAzeriteItemData().
|
inline |
Definition at line 41 of file AzeriteItem.h.
Referenced by WorldSession::HandleAzeriteEssenceUnlockMilestone(), CriteriaHandler::ModifierSatisfied(), and UnlockDefaultMilestones().
| UF::SelectedAzeriteEssences const * AzeriteItem::GetSelectedAzeriteEssences | ( | ) | const |
Definition at line 350 of file AzeriteItem.cpp.
References m_azeriteItemData.
Referenced by Spell::EffectLearnAzeriteEssencePower(), WorldSession::HandleAzeriteEssenceActivateEssence(), and LoadAzeriteItemData().
| void AzeriteItem::GiveXP | ( | uint64 | xp | ) |
Definition at line 237 of file AzeriteItem.cpp.
References Player::_ApplyItemBonuses(), AzeriteLevelReached, CalcTotalXPToNextLevel(), EarnArtifactXPForAzeriteItem, BaseEntity::GetGUID(), Item::GetOwner(), Item::GetSlot(), Item::IsEquipped(), ITEM_CHANGED, WorldPackets::Azerite::PlayerAzeriteItemGains::ItemGUID, UF::AzeriteItemData::Level, m_azeriteItemData, BaseEntity::m_values, MAX_AZERITE_ITEM_LEVEL, UF::UpdateFieldHolder::ModifyValue(), Player::SendDirectMessage(), Item::SetState(), BaseEntity::SetUpdateFieldValue(), UnlockDefaultMilestones(), Player::UpdateCriteria(), WorldPackets::Azerite::PlayerAzeriteItemGains::Write(), UF::AzeriteItemData::Xp, and WorldPackets::Azerite::PlayerAzeriteItemGains::XP.
|
inline |
Definition at line 61 of file AzeriteItem.h.
Referenced by WorldSession::HandleAzeriteEssenceUnlockMilestone(), and UnlockDefaultMilestones().
| bool AzeriteItem::HasUnlockedEssenceSlot | ( | uint8 | slot | ) | const |
Definition at line 303 of file AzeriteItem.cpp.
References AzeriteItemMilestonePowerEntry::ID, m_azeriteItemData, and sDB2Manager.
Referenced by WorldSession::HandleAzeriteEssenceActivateEssence().
| void AzeriteItem::LoadAzeriteItemData | ( | Player const * | owner, |
| AzeriteItemData & | azeriteItem | ||
| ) |
Definition at line 117 of file AzeriteItem.cpp.
References BaseEntity::AddDynamicUpdateFieldValue(), AddUnlockedEssenceMilestone(), AsUnderlyingType(), UF::SelectedAzeriteEssences::AzeriteEssenceID, AzeriteItemData::AzeriteItemMilestonePowers, CalcTotalXPToNextLevel(), CHAR_UPD_ITEM_INSTANCE_AZERITE_ON_LOAD, CharacterDatabase, CreateSelectedAzeriteEssences(), UF::SelectedAzeriteEssences::Enabled, GetCurrentKnowledgeLevel(), GetEssenceRank(), BaseEntity::GetGUID(), Player::GetPrimarySpecialization(), GetSelectedAzeriteEssences(), AzeriteItemData::KnowledgeLevel, UF::AzeriteItemData::KnowledgeLevel, AzeriteItemData::Level, UF::AzeriteItemData::Level, m_azeriteItemData, BaseEntity::m_values, MAX_AZERITE_ESSENCE_SLOT, MAX_AZERITE_ITEM_KNOWLEDGE_LEVEL, MAX_AZERITE_ITEM_LEVEL, UF::UpdateFieldHolder::ModifyValue(), sAzeriteLevelInfoStore, AzeriteItemData::SelectedAzeriteEssences, UF::AzeriteItemData::SelectedEssences, SetEssenceRank(), PreparedStatementBase::setUInt32(), PreparedStatementBase::setUInt64(), BaseEntity::SetUpdateFieldValue(), UF::SelectedAzeriteEssences::SpecializationID, UnlockDefaultMilestones(), AzeriteItemData::UnlockedAzeriteEssences, AzeriteItemData::Xp, and UF::AzeriteItemData::Xp.
|
overridevirtual |
Reimplemented from Item.
Definition at line 51 of file AzeriteItem.cpp.
References CHAR_DEL_ITEM_INSTANCE_AZERITE, CHAR_DEL_ITEM_INSTANCE_AZERITE_MILESTONE_POWER, CHAR_DEL_ITEM_INSTANCE_AZERITE_UNLOCKED_ESSENCE, CHAR_INS_ITEM_INSTANCE_AZERITE, CHAR_INS_ITEM_INSTANCE_AZERITE_MILESTONE_POWER, CHAR_INS_ITEM_INSTANCE_AZERITE_UNLOCKED_ESSENCE, CharacterDatabase, ObjectGuid::GetCounter(), BaseEntity::GetGUID(), Item::GetState(), ITEM_CHANGED, ITEM_NEW, ITEM_REMOVED, m_azeriteItemData, MAX_AZERITE_ESSENCE_SLOT, Item::SaveToDB(), PreparedStatementBase::setUInt32(), and PreparedStatementBase::setUInt64().
Definition at line 322 of file AzeriteItem.cpp.
References BaseEntity::AddDynamicUpdateFieldValue(), UF::UnlockedAzeriteEssence::AzeriteEssenceID, m_azeriteItemData, BaseEntity::m_values, UF::UpdateFieldHolder::ModifyValue(), UF::UnlockedAzeriteEssence::Rank, BaseEntity::RemoveDynamicUpdateFieldValue(), sDB2Manager, BaseEntity::SetUpdateFieldValue(), and UF::AzeriteItemData::UnlockedEssences.
Referenced by Spell::EffectLearnAzeriteEssencePower(), and LoadAzeriteItemData().
Definition at line 385 of file AzeriteItem.cpp.
References ASSERT, UF::SelectedAzeriteEssences::AzeriteEssenceID, UF::SelectedAzeriteEssences::Enabled, m_azeriteItemData, BaseEntity::m_values, MAX_AZERITE_ESSENCE_SLOT, UF::UpdateFieldHolder::ModifyValue(), UF::AzeriteItemData::SelectedEssences, and BaseEntity::SetUpdateFieldValue().
Referenced by WorldSession::HandleAzeriteEssenceActivateEssence().
| void AzeriteItem::SetSelectedAzeriteEssences | ( | uint32 | specializationId | ) |
Definition at line 359 of file AzeriteItem.cpp.
References CreateSelectedAzeriteEssences(), UF::SelectedAzeriteEssences::Enabled, m_azeriteItemData, BaseEntity::m_values, UF::UpdateFieldHolder::ModifyValue(), UF::AzeriteItemData::SelectedEssences, BaseEntity::SetUpdateFieldValue(), and UF::SelectedAzeriteEssences::SpecializationID.
|
private |
Definition at line 489 of file AzeriteItem.cpp.
References AddUnlockedEssenceMilestone(), GetLevel(), HasUnlockedEssenceMilestone(), and sDB2Manager.
Referenced by Create(), GiveXP(), and LoadAzeriteItemData().
| UF::UpdateField<UF::AzeriteItemData, int32(WowCS::EntityFragment::CGObject), TYPEID_AZERITE_ITEM> AzeriteItem::m_azeriteItemData |
Definition at line 99 of file AzeriteItem.h.
Referenced by AddUnlockedEssenceMilestone(), AzeriteItem(), BuildValuesCreate(), BuildValuesUpdate(), BuildValuesUpdateForPlayerWithMask(), BuildValuesUpdateWithFlag(), ClearValuesChangesMask(), Create(), CreateSelectedAzeriteEssences(), GetEssenceRank(), GetSelectedAzeriteEssences(), GiveXP(), HasUnlockedEssenceSlot(), LoadAzeriteItemData(), SaveToDB(), SetEssenceRank(), SetSelectedAzeriteEssence(), and SetSelectedAzeriteEssences().