55 if (!artifactPowerEntry)
58 if (
uint32(artifactPowerEntry->
Tier) > currentArtifactTier)
62 if (
uint32(artifactPowerEntry->
Tier) < currentArtifactTier)
67 maxRank += currentArtifactTier - artifactPowerEntry->
Tier;
78 bool hasAnyLink =
false;
79 for (
uint32 artifactPowerLinkId : *artifactPowerLinks)
82 if (!artifactPowerLink)
86 if (!artifactPowerLinkLearned)
102 if (!artifactPowerRank)
118 if (!scaledArtifactPowerRank)
121 artifact->
SetArtifactPower(power.ArtifactPowerID, power.PurchasedRank, power.CurrentRankWithBonus + 1);
138 artifactTier = artifactPowerEntry->
Tier + 1;
142 if (totalPurchasedArtifactPower < tier->MaxNumTraits)
144 artifactTier = tier->ArtifactTier;
149 artifactTier = std::max(artifactTier, currentArtifactTier);
151 for (
uint32 i = currentArtifactTier; i <= artifactTier; ++i)
164 if (!artifactAppearance)
214 if (xpCost > artifact->
m_itemData->ArtifactXP)
224 uint8 oldPurchasedRank = artifactPower.PurchasedRank;
225 if (!oldPurchasedRank)
228 artifact->
SetArtifactPower(artifactPower.ArtifactPowerID, artifactPower.PurchasedRank - oldPurchasedRank, artifactPower.CurrentRankWithBonus - oldPurchasedRank);
242 if (!scaledArtifactPowerRank)
DB2Storage< ArtifactAppearanceEntry > sArtifactAppearanceStore("ArtifactAppearance.db2", &ArtifactAppearanceLoadInfo::Instance)
DB2Storage< ArtifactPowerEntry > sArtifactPowerStore("ArtifactPower.db2", &ArtifactPowerLoadInfo::Instance)
DB2Storage< ArtifactTierEntry > sArtifactTierStore("ArtifactTier.db2", &ArtifactTierLoadInfo::Instance)
DB2Storage< ArtifactAppearanceSetEntry > sArtifactAppearanceSetStore("ArtifactAppearanceSet.db2", &ArtifactAppearanceSetLoadInfo::Instance)
@ ARTIFACT_POWER_FLAG_SCALES_WITH_NUM_POWERS
@ ARTIFACT_POWER_FLAG_MAX_RANK_WITH_TIER
@ ARTIFACT_POWER_FLAG_NO_LINK_REQUIRED
@ ARTIFACT_POWER_FLAG_FINAL
#define MAX_ARTIFACT_TIER
@ AnyArtifactPowerRankPurchased
@ ITEM_MODIFIER_ARTIFACT_APPEARANCE_ID
@ ITEM_MODIFIER_ARTIFACT_TIER
@ GAMEOBJECT_TYPE_ITEM_FORGE
@ UNIT_NPC_FLAG_ARTIFACT_POWER_RESPEC
static bool IsPlayerMeetingCondition(Player const *player, uint32 conditionId)
void SetState(ItemUpdateState state, Player *forplayer=nullptr)
void SetArtifactPower(uint16 artifactPowerId, uint8 purchasedRank, uint8 currentRankWithBonus)
void InitArtifactPowers(uint8 artifactId, uint8 artifactTier)
void SetModifier(ItemModifier modifier, uint32 value)
ItemTemplate const * GetTemplate() const
UF::UpdateField< UF::ItemData, uint32(WowCS::EntityFragment::CGObject), TYPEID_ITEM > m_itemData
UF::ArtifactPower const * GetArtifactPower(uint32 artifactPowerId) const
bool IsArtifactDisabled() const
void SetArtifactXP(uint64 xp)
void SetAppearanceModId(uint32 appearanceModId)
ObjectGuid GetChildItem() const
uint32 GetModifier(ItemModifier modifier) const
uint32 GetTotalPurchasedArtifactPowers() const
void SetVisibleItemSlot(uint8 slot, Item const *item)
Creature * GetNPCIfCanInteractWith(ObjectGuid const &guid, NPCFlags npcFlags, NPCFlags2 npcFlags2) const
Item * GetChildItemByGuid(ObjectGuid guid) const
GameObject * GetGameObjectIfCanInteractWith(ObjectGuid const &guid) const
void UpdateCriteria(CriteriaType type, uint64 miscValue1=0, uint64 miscValue2=0, uint64 miscValue3=0, WorldObject *ref=nullptr)
Item * GetItemByGuid(ObjectGuid guid) const
void ApplyArtifactPowerRank(Item *artifact, ArtifactPowerRankEntry const *artifactPowerRank, bool apply)
void RestoreDisplayId(bool ignorePositiveAurasPreventingMounting=false)
ShapeshiftForm GetShapeshiftForm() const
Array< ArtifactPowerChoice, 1 > PowerChoices
int32 ArtifactAppearanceID
void HandleConfirmArtifactRespec(WorldPackets::Artifact::ConfirmArtifactRespec &confirmArtifactRespec)
void HandleArtifactSetAppearance(WorldPackets::Artifact::ArtifactSetAppearance &artifactSetAppearance)
void HandleArtifactAddPower(WorldPackets::Artifact::ArtifactAddPower &artifactAddPower)
uint32 UnlockPlayerConditionID
uint16 ArtifactAppearanceSetID
uint8 OverrideShapeshiftFormID
uint32 OverrideShapeshiftDisplayID
uint8 ItemAppearanceModifierID
uint8 GetArtifactID() const
uint8 CurrentRankWithBonus