aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game')
-rw-r--r--src/server/game/Achievements/AchievementMgr.cpp16
-rw-r--r--src/server/game/Achievements/AchievementMgr.h4
-rw-r--r--src/server/game/Achievements/CriteriaHandler.cpp1811
-rw-r--r--src/server/game/Achievements/CriteriaHandler.h44
-rw-r--r--src/server/game/AuctionHouse/AuctionHouseMgr.cpp10
-rw-r--r--src/server/game/BattlePets/BattlePetMgr.cpp2
-rw-r--r--src/server/game/Battlegrounds/Arena.cpp6
-rw-r--r--src/server/game/Battlegrounds/ArenaTeam.cpp4
-rw-r--r--src/server/game/Battlegrounds/Battleground.cpp6
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp4
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp8
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp2
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp8
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp4
-rw-r--r--src/server/game/DataStores/DB2Structure.h194
-rw-r--r--src/server/game/DataStores/DBCEnums.h468
-rw-r--r--src/server/game/DungeonFinding/LFGMgr.cpp2
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp2
-rw-r--r--src/server/game/Entities/Item/AzeriteItem/AzeriteItem.cpp4
-rw-r--r--src/server/game/Entities/Player/CollectionMgr.cpp4
-rw-r--r--src/server/game/Entities/Player/KillRewarder.cpp8
-rw-r--r--src/server/game/Entities/Player/Player.cpp110
-rw-r--r--src/server/game/Entities/Player/Player.h2
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp24
-rw-r--r--src/server/game/Garrison/Garrison.cpp6
-rw-r--r--src/server/game/Groups/Group.cpp6
-rw-r--r--src/server/game/Guilds/Guild.cpp2
-rw-r--r--src/server/game/Guilds/Guild.h2
-rw-r--r--src/server/game/Handlers/AuctionHouseHandler.cpp8
-rw-r--r--src/server/game/Handlers/BankHandler.cpp2
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp6
-rw-r--r--src/server/game/Handlers/ChatHandler.cpp2
-rw-r--r--src/server/game/Handlers/GroupHandler.cpp4
-rw-r--r--src/server/game/Handlers/ItemHandler.cpp6
-rw-r--r--src/server/game/Handlers/LootHandler.cpp16
-rw-r--r--src/server/game/Handlers/MailHandler.cpp2
-rw-r--r--src/server/game/Handlers/QuestHandler.cpp2
-rw-r--r--src/server/game/Handlers/SpellHandler.cpp2
-rw-r--r--src/server/game/Instances/InstanceScript.cpp2
-rw-r--r--src/server/game/Instances/InstanceScript.h4
-rw-r--r--src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp2
-rw-r--r--src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp6
-rw-r--r--src/server/game/Quests/QuestObjectiveCriteriaMgr.h2
-rw-r--r--src/server/game/Reputation/ReputationMgr.cpp10
-rw-r--r--src/server/game/Scenarios/InstanceScenario.cpp8
-rw-r--r--src/server/game/Scenarios/Scenario.cpp2
-rw-r--r--src/server/game/Scenarios/Scenario.h2
-rw-r--r--src/server/game/Spells/Spell.cpp10
48 files changed, 1483 insertions, 1378 deletions
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp
index fd77d880dfc..0674a28d559 100644
--- a/src/server/game/Achievements/AchievementMgr.cpp
+++ b/src/server/game/Achievements/AchievementMgr.cpp
@@ -57,8 +57,8 @@ AchievementMgr::~AchievementMgr() { }
void AchievementMgr::CheckAllAchievementCriteria(Player* referencePlayer)
{
// suppress sending packets
- for (uint32 i = 0; i < CRITERIA_TYPE_TOTAL; ++i)
- UpdateCriteria(CriteriaTypes(i), 0, 0, 0, nullptr, referencePlayer);
+ for (uint32 i = 0; i < uint32(CriteriaType::Count); ++i)
+ UpdateCriteria(CriteriaType(i), 0, 0, 0, nullptr, referencePlayer);
}
bool AchievementMgr::HasAchieved(uint32 achievementId) const
@@ -525,8 +525,8 @@ void PlayerAchievementMgr::CompletedAchievement(AchievementEntry const* achievem
if (!(achievement->Flags & ACHIEVEMENT_FLAG_TRACKING_FLAG))
_achievementPoints += achievement->Points;
- UpdateCriteria(CRITERIA_TYPE_COMPLETE_ACHIEVEMENT, achievement->ID, 0, 0, nullptr, referencePlayer);
- UpdateCriteria(CRITERIA_TYPE_EARN_ACHIEVEMENT_POINTS, achievement->Points, 0, 0, nullptr, referencePlayer);
+ UpdateCriteria(CriteriaType::EarnAchievement, achievement->ID, 0, 0, nullptr, referencePlayer);
+ UpdateCriteria(CriteriaType::EarnAchievementPoints, achievement->Points, 0, 0, nullptr, referencePlayer);
// reward items and titles if any
AchievementReward const* reward = sAchievementMgr->GetAchievementReward(achievement);
@@ -691,7 +691,7 @@ void PlayerAchievementMgr::SendPacket(WorldPacket const* data) const
_owner->SendDirectMessage(data);
}
-CriteriaList const& PlayerAchievementMgr::GetCriteriaByType(CriteriaTypes type, uint32 asset) const
+CriteriaList const& PlayerAchievementMgr::GetCriteriaByType(CriteriaType type, uint32 asset) const
{
return sCriteriaMgr->GetPlayerCriteriaByType(type, asset);
}
@@ -972,8 +972,8 @@ void GuildAchievementMgr::CompletedAchievement(AchievementEntry const* achieveme
if (!(achievement->Flags & ACHIEVEMENT_FLAG_TRACKING_FLAG))
_achievementPoints += achievement->Points;
- UpdateCriteria(CRITERIA_TYPE_COMPLETE_ACHIEVEMENT, achievement->ID, 0, 0, nullptr, referencePlayer);
- UpdateCriteria(CRITERIA_TYPE_EARN_ACHIEVEMENT_POINTS, achievement->Points, 0, 0, nullptr, referencePlayer);
+ UpdateCriteria(CriteriaType::EarnAchievement, achievement->ID, 0, 0, nullptr, referencePlayer);
+ UpdateCriteria(CriteriaType::EarnAchievementPoints, achievement->Points, 0, 0, nullptr, referencePlayer);
}
void GuildAchievementMgr::SendCriteriaUpdate(Criteria const* entry, CriteriaProgress const* progress, Seconds /*timeElapsed*/, bool /*timedCompleted*/) const
@@ -1026,7 +1026,7 @@ void GuildAchievementMgr::SendPacket(WorldPacket const* data) const
_owner->BroadcastPacket(data);
}
-CriteriaList const& GuildAchievementMgr::GetCriteriaByType(CriteriaTypes type, uint32 /*asset*/) const
+CriteriaList const& GuildAchievementMgr::GetCriteriaByType(CriteriaType type, uint32 /*asset*/) const
{
return sCriteriaMgr->GetGuildCriteriaByType(type);
}
diff --git a/src/server/game/Achievements/AchievementMgr.h b/src/server/game/Achievements/AchievementMgr.h
index f11856a6345..29443a21055 100644
--- a/src/server/game/Achievements/AchievementMgr.h
+++ b/src/server/game/Achievements/AchievementMgr.h
@@ -103,7 +103,7 @@ protected:
void SendPacket(WorldPacket const* data) const override;
std::string GetOwnerInfo() const override;
- CriteriaList const& GetCriteriaByType(CriteriaTypes type, uint32 asset) const override;
+ CriteriaList const& GetCriteriaByType(CriteriaType type, uint32 asset) const override;
private:
Player* _owner;
@@ -136,7 +136,7 @@ protected:
void SendPacket(WorldPacket const* data) const override;
std::string GetOwnerInfo() const override;
- CriteriaList const& GetCriteriaByType(CriteriaTypes type, uint32 asset) const override;
+ CriteriaList const& GetCriteriaByType(CriteriaType type, uint32 asset) const override;
private:
Guild* _owner;
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp
index d750d16cea9..aa4e43eedcc 100644
--- a/src/server/game/Achievements/CriteriaHandler.cpp
+++ b/src/server/game/Achievements/CriteriaHandler.cpp
@@ -57,35 +57,34 @@ bool CriteriaData::IsValid(Criteria const* criteria)
TC_LOG_ERROR("sql.sql", "Table `criteria_data` for criteria (Entry: %u) contains a wrong data type (%u), ignored.", criteria->ID, DataType);
return false;
}
-
- switch (criteria->Entry->Type)
+ switch (CriteriaType(criteria->Entry->Type))
{
- case CRITERIA_TYPE_KILL_CREATURE:
- case CRITERIA_TYPE_KILL_CREATURE_TYPE:
- case CRITERIA_TYPE_WIN_BG:
- case CRITERIA_TYPE_FALL_WITHOUT_DYING:
- case CRITERIA_TYPE_COMPLETE_QUEST: // only hardcoded list
- case CRITERIA_TYPE_CAST_SPELL:
- case CRITERIA_TYPE_WIN_RATED_ARENA:
- case CRITERIA_TYPE_DO_EMOTE:
- case CRITERIA_TYPE_SPECIAL_PVP_KILL:
- case CRITERIA_TYPE_WIN_DUEL:
- case CRITERIA_TYPE_LOOT_TYPE:
- case CRITERIA_TYPE_CAST_SPELL2:
- case CRITERIA_TYPE_BE_SPELL_TARGET:
- case CRITERIA_TYPE_BE_SPELL_TARGET2:
- case CRITERIA_TYPE_EQUIP_ITEM_IN_SLOT:
- case CRITERIA_TYPE_ROLL_NEED_ON_LOOT:
- case CRITERIA_TYPE_ROLL_GREED_ON_LOOT:
- case CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE:
- case CRITERIA_TYPE_HONORABLE_KILL:
- case CRITERIA_TYPE_COMPLETE_DAILY_QUEST: // only Children's Week achievements
- case CRITERIA_TYPE_USE_ITEM: // only Children's Week achievements
- case CRITERIA_TYPE_GET_KILLING_BLOWS:
- case CRITERIA_TYPE_REACH_LEVEL:
- case CRITERIA_TYPE_ON_LOGIN:
- case CRITERIA_TYPE_LOOT_ANY_ITEM:
- case CRITERIA_TYPE_OBTAIN_ANY_ITEM:
+ case CriteriaType::KillCreature:
+ case CriteriaType::KillAnyCreature:
+ case CriteriaType::WinBattleground:
+ case CriteriaType::MaxDistFallenWithoutDying:
+ case CriteriaType::CompleteQuest: // only hardcoded list
+ case CriteriaType::CastSpell:
+ case CriteriaType::WinAnyRankedArena:
+ case CriteriaType::DoEmote:
+ case CriteriaType::KillPlayer:
+ case CriteriaType::WinDuel:
+ case CriteriaType::GetLootByType:
+ case CriteriaType::LandTargetedSpellOnTarget:
+ case CriteriaType::BeSpellTarget:
+ case CriteriaType::GainAura:
+ case CriteriaType::EquipItemInSlot:
+ case CriteriaType::RollNeed:
+ case CriteriaType::RollGreed:
+ case CriteriaType::TrackedWorldStateUIModified:
+ case CriteriaType::EarnHonorableKill:
+ case CriteriaType::CompleteDailyQuest: // only Children's Week achievements
+ case CriteriaType::UseItem: // only Children's Week achievements
+ case CriteriaType::DeliveredKillingBlow:
+ case CriteriaType::ReachLevel:
+ case CriteriaType::Login:
+ case CriteriaType::LootAnyItem:
+ case CriteriaType::ObtainAnyItem:
break;
default:
if (DataType != CRITERIA_DATA_TYPE_SCRIPT)
@@ -407,7 +406,7 @@ bool CriteriaData::Meets(uint32 criteriaId, Player const* source, WorldObject co
{
Criteria const* entry = ASSERT_NOTNULL(sCriteriaMgr->GetCriteria(criteriaId));
- uint32 itemId = (entry->Entry->Type == CRITERIA_TYPE_EQUIP_ITEM_IN_SLOT ? miscValue2 : miscValue1);
+ uint32 itemId = (CriteriaType(entry->Entry->Type) == CriteriaType::EquipItemInSlot ? miscValue2 : miscValue1);
ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(itemId);
if (!itemTemplate)
return false;
@@ -459,11 +458,11 @@ void CriteriaHandler::Reset()
/**
* this function will be called whenever the user might have done a criteria relevant action
*/
-void CriteriaHandler::UpdateCriteria(CriteriaTypes type, uint64 miscValue1 /*= 0*/, uint64 miscValue2 /*= 0*/, uint64 miscValue3 /*= 0*/, WorldObject const* ref /*= nullptr*/, Player* referencePlayer /*= nullptr*/)
+void CriteriaHandler::UpdateCriteria(CriteriaType type, uint64 miscValue1 /*= 0*/, uint64 miscValue2 /*= 0*/, uint64 miscValue3 /*= 0*/, WorldObject const* ref /*= nullptr*/, Player* referencePlayer /*= nullptr*/)
{
- if (type >= CRITERIA_TYPE_TOTAL)
+ if (type >= CriteriaType::Count)
{
- TC_LOG_DEBUG("criteria", "CriteriaHandler::UpdateCriteria: Wrong criteria type %u", type);
+ TC_LOG_DEBUG("criteria", "CriteriaHandler::UpdateCriteria: Wrong criteria type %u", uint32(type));
return;
}
@@ -477,12 +476,12 @@ void CriteriaHandler::UpdateCriteria(CriteriaTypes type, uint64 miscValue1 /*= 0
if (referencePlayer->IsGameMaster())
{
TC_LOG_DEBUG("criteria", "CriteriaHandler::UpdateCriteria: [Player %s GM mode on] %s, %s (%u), " UI64FMTD ", " UI64FMTD ", " UI64FMTD,
- referencePlayer->GetName().c_str(), GetOwnerInfo().c_str(), CriteriaMgr::GetCriteriaTypeString(type), type, miscValue1, miscValue2, miscValue3);
+ referencePlayer->GetName().c_str(), GetOwnerInfo().c_str(), CriteriaMgr::GetCriteriaTypeString(type), uint32(type), miscValue1, miscValue2, miscValue3);
return;
}
TC_LOG_DEBUG("criteria", "CriteriaHandler::UpdateCriteria(%s, %u, " UI64FMTD ", " UI64FMTD ", " UI64FMTD ") %s",
- CriteriaMgr::GetCriteriaTypeString(type), type, miscValue1, miscValue2, miscValue3, GetOwnerInfo().c_str());
+ CriteriaMgr::GetCriteriaTypeString(type), uint32(type), miscValue1, miscValue2, miscValue3, GetOwnerInfo().c_str());
CriteriaList const& criteriaList = GetCriteriaByType(type, uint32(miscValue1));
for (Criteria const* criteria : criteriaList)
@@ -499,109 +498,109 @@ void CriteriaHandler::UpdateCriteria(CriteriaTypes type, uint64 miscValue1 /*= 0
switch (type)
{
// std. case: increment at 1
- case CRITERIA_TYPE_WIN_BG:
- case CRITERIA_TYPE_NUMBER_OF_TALENT_RESETS:
- case CRITERIA_TYPE_LOSE_DUEL:
- case CRITERIA_TYPE_CREATE_AUCTION:
- case CRITERIA_TYPE_WON_AUCTIONS: /* FIXME: for online player only currently */
- case CRITERIA_TYPE_ROLL_NEED:
- case CRITERIA_TYPE_ROLL_GREED:
- case CRITERIA_TYPE_QUEST_ABANDONED:
- case CRITERIA_TYPE_FLIGHT_PATHS_TAKEN:
- case CRITERIA_TYPE_ACCEPTED_SUMMONINGS:
- case CRITERIA_TYPE_LOOT_ANY_ITEM:
- case CRITERIA_TYPE_OBTAIN_ANY_ITEM:
- case CRITERIA_TYPE_DEATH:
- case CRITERIA_TYPE_COMPLETE_DAILY_QUEST:
- case CRITERIA_TYPE_COMPLETE_BATTLEGROUND:
- case CRITERIA_TYPE_DEATH_AT_MAP:
- case CRITERIA_TYPE_DEATH_IN_DUNGEON:
- case CRITERIA_TYPE_KILLED_BY_CREATURE:
- case CRITERIA_TYPE_KILLED_BY_PLAYER:
- case CRITERIA_TYPE_DEATHS_FROM:
- case CRITERIA_TYPE_BE_SPELL_TARGET:
- case CRITERIA_TYPE_BE_SPELL_TARGET2:
- case CRITERIA_TYPE_CAST_SPELL:
- case CRITERIA_TYPE_CAST_SPELL2:
- case CRITERIA_TYPE_WIN_RATED_ARENA:
- case CRITERIA_TYPE_USE_ITEM:
- case CRITERIA_TYPE_ROLL_NEED_ON_LOOT:
- case CRITERIA_TYPE_ROLL_GREED_ON_LOOT:
- case CRITERIA_TYPE_DO_EMOTE:
- case CRITERIA_TYPE_USE_GAMEOBJECT:
- case CRITERIA_TYPE_FISH_IN_GAMEOBJECT:
- case CRITERIA_TYPE_WIN_DUEL:
- case CRITERIA_TYPE_HK_CLASS:
- case CRITERIA_TYPE_HK_RACE:
- case CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE:
- case CRITERIA_TYPE_HONORABLE_KILL:
- case CRITERIA_TYPE_SPECIAL_PVP_KILL:
- case CRITERIA_TYPE_GET_KILLING_BLOWS:
- case CRITERIA_TYPE_HONORABLE_KILL_AT_AREA:
- case CRITERIA_TYPE_WIN_ARENA: // This also behaves like CRITERIA_TYPE_WIN_RATED_ARENA
- case CRITERIA_TYPE_ON_LOGIN:
- case CRITERIA_TYPE_PLACE_GARRISON_BUILDING:
- case CRITERIA_TYPE_UPGRADE_GARRISON_BUILDING:
- case CRITERIA_TYPE_HONOR_LEVEL_REACHED:
- case CRITERIA_TYPE_PRESTIGE_REACHED:
- case CRITERIA_TYPE_APPEARANCE_UNLOCKED_BY_SLOT:
- case CRITERIA_TYPE_TRANSMOG_SET_UNLOCKED:
- case CRITERIA_TYPE_COMPLETE_QUEST_ACCUMULATE:
- case CRITERIA_TYPE_BOUGHT_ITEM_FROM_VENDOR:
- case CRITERIA_TYPE_SOLD_ITEM_TO_VENDOR:
- case CRITERIA_TYPE_TRAVELLED_TO_AREA:
+ case CriteriaType::WinBattleground:
+ case CriteriaType::TotalRespecs:
+ case CriteriaType::LoseDuel:
+ case CriteriaType::ItemsPostedAtAuction:
+ case CriteriaType::AuctionsWon: /* FIXME: for online player only currently */
+ case CriteriaType::RollAnyNeed:
+ case CriteriaType::RollAnyGreed:
+ case CriteriaType::AbandonAnyQuest:
+ case CriteriaType::BuyTaxi:
+ case CriteriaType::AcceptSummon:
+ case CriteriaType::LootAnyItem:
+ case CriteriaType::ObtainAnyItem:
+ case CriteriaType::DieAnywhere:
+ case CriteriaType::CompleteDailyQuest:
+ case CriteriaType::ParticipateInBattleground:
+ case CriteriaType::DieOnMap:
+ case CriteriaType::DieInInstance:
+ case CriteriaType::KilledByCreature:
+ case CriteriaType::KilledByPlayer:
+ case CriteriaType::DieFromEnviromentalDamage:
+ case CriteriaType::BeSpellTarget:
+ case CriteriaType::GainAura:
+ case CriteriaType::CastSpell:
+ case CriteriaType::LandTargetedSpellOnTarget:
+ case CriteriaType::WinAnyRankedArena:
+ case CriteriaType::UseItem:
+ case CriteriaType::RollNeed:
+ case CriteriaType::RollGreed:
+ case CriteriaType::DoEmote:
+ case CriteriaType::UseGameobject:
+ case CriteriaType::CatchFishInFishingHole:
+ case CriteriaType::WinDuel:
+ case CriteriaType::DeliverKillingBlowToClass:
+ case CriteriaType::DeliverKillingBlowToRace:
+ case CriteriaType::TrackedWorldStateUIModified:
+ case CriteriaType::EarnHonorableKill:
+ case CriteriaType::KillPlayer:
+ case CriteriaType::DeliveredKillingBlow:
+ case CriteriaType::PVPKillInArea:
+ case CriteriaType::WinArena: // This also behaves like CriteriaType::WinAnyRankedArena
+ case CriteriaType::Login:
+ case CriteriaType::PlaceGarrisonBuilding:
+ case CriteriaType::ActivateAnyGarrisonBuilding:
+ case CriteriaType::HonorLevelIncrease:
+ case CriteriaType::PrestigeLevelIncrease:
+ case CriteriaType::LearnAnyTransmogInSlot:
+ case CriteriaType::CollectTransmogSetFromGroup:
+ case CriteriaType::CompleteAnyReplayQuest:
+ case CriteriaType::BuyItemsFromVendors:
+ case CriteriaType::SellItemsToVendors:
+ case CriteriaType::EnterTopLevelArea:
SetCriteriaProgress(criteria, 1, referencePlayer, PROGRESS_ACCUMULATE);
break;
// std case: increment at miscValue1
- case CRITERIA_TYPE_MONEY_FROM_VENDORS:
- case CRITERIA_TYPE_GOLD_SPENT_FOR_TALENTS:
- case CRITERIA_TYPE_MONEY_FROM_QUEST_REWARD:
- case CRITERIA_TYPE_GOLD_SPENT_FOR_TRAVELLING:
- case CRITERIA_TYPE_GOLD_SPENT_AT_BARBER:
- case CRITERIA_TYPE_GOLD_SPENT_FOR_MAIL:
- case CRITERIA_TYPE_LOOT_MONEY:
- case CRITERIA_TYPE_GOLD_EARNED_BY_AUCTIONS:/* FIXME: for online player only currently */
- case CRITERIA_TYPE_TOTAL_DAMAGE_RECEIVED:
- case CRITERIA_TYPE_TOTAL_HEALING_RECEIVED:
- case CRITERIA_TYPE_USE_LFD_TO_GROUP_WITH_PLAYERS:
- case CRITERIA_TYPE_DAMAGE_DONE:
- case CRITERIA_TYPE_HEALING_DONE:
- case CRITERIA_TYPE_HEART_OF_AZEROTH_ARTIFACT_POWER_EARNED:
+ case CriteriaType::MoneyEarnedFromSales:
+ case CriteriaType::MoneySpentOnRespecs:
+ case CriteriaType::MoneyEarnedFromQuesting:
+ case CriteriaType::MoneySpentOnTaxis:
+ case CriteriaType::MoneySpentAtBarberShop:
+ case CriteriaType::MoneySpentOnPostage:
+ case CriteriaType::MoneyLootedFromCreatures:
+ case CriteriaType::MoneyEarnedFromAuctions:/* FIXME: for online player only currently */
+ case CriteriaType::TotalDamageTaken:
+ case CriteriaType::TotalHealReceived:
+ case CriteriaType::CompletedLFGDungeonWithStrangers:
+ case CriteriaType::DamageDealt:
+ case CriteriaType::HealingDone:
+ case CriteriaType::EarnArtifactXPForAzeriteItem:
SetCriteriaProgress(criteria, miscValue1, referencePlayer, PROGRESS_ACCUMULATE);
break;
- case CRITERIA_TYPE_KILL_CREATURE:
- case CRITERIA_TYPE_KILL_CREATURE_TYPE:
- case CRITERIA_TYPE_LOOT_TYPE:
- case CRITERIA_TYPE_OWN_ITEM:
- case CRITERIA_TYPE_LOOT_ITEM:
- case CRITERIA_TYPE_CURRENCY:
+ case CriteriaType::KillCreature:
+ case CriteriaType::KillAnyCreature:
+ case CriteriaType::GetLootByType:
+ case CriteriaType::AcquireItem:
+ case CriteriaType::LootItem:
+ case CriteriaType::CurrencyGained:
SetCriteriaProgress(criteria, miscValue2, referencePlayer, PROGRESS_ACCUMULATE);
break;
// std case: high value at miscValue1
- case CRITERIA_TYPE_HIGHEST_AUCTION_BID:
- case CRITERIA_TYPE_HIGHEST_AUCTION_SOLD: /* FIXME: for online player only currently */
- case CRITERIA_TYPE_HIGHEST_HIT_DEALT:
- case CRITERIA_TYPE_HIGHEST_HIT_RECEIVED:
- case CRITERIA_TYPE_HIGHEST_HEAL_CAST:
- case CRITERIA_TYPE_HIGHEST_HEALING_RECEIVED:
- case CRITERIA_TYPE_HEART_OF_AZEROTH_LEVEL_REACHED:
+ case CriteriaType::HighestAuctionBid:
+ case CriteriaType::HighestAuctionSale: /* FIXME: for online player only currently */
+ case CriteriaType::HighestDamageDone:
+ case CriteriaType::HighestDamageTaken:
+ case CriteriaType::HighestHealCast:
+ case CriteriaType::HighestHealReceived:
+ case CriteriaType::AzeriteLevelReached:
SetCriteriaProgress(criteria, miscValue1, referencePlayer, PROGRESS_HIGHEST);
break;
- case CRITERIA_TYPE_REACH_LEVEL:
+ case CriteriaType::ReachLevel:
SetCriteriaProgress(criteria, referencePlayer->getLevel(), referencePlayer);
break;
- case CRITERIA_TYPE_REACH_SKILL_LEVEL:
+ case CriteriaType::SkillRaised:
if (uint32 skillvalue = referencePlayer->GetBaseSkillValue(criteria->Entry->Asset.SkillID))
SetCriteriaProgress(criteria, skillvalue, referencePlayer);
break;
- case CRITERIA_TYPE_LEARN_SKILL_LEVEL:
+ case CriteriaType::AchieveSkillStep:
if (uint32 maxSkillvalue = referencePlayer->GetPureMaxSkillValue(criteria->Entry->Asset.SkillID))
SetCriteriaProgress(criteria, maxSkillvalue, referencePlayer);
break;
- case CRITERIA_TYPE_COMPLETE_QUEST_COUNT:
+ case CriteriaType::CompleteQuestsCount:
SetCriteriaProgress(criteria, referencePlayer->GetRewardedQuestCount(), referencePlayer);
break;
- case CRITERIA_TYPE_COMPLETE_DAILY_QUEST_DAILY:
+ case CriteriaType::CompleteAnyDailyQuestPerDay:
{
time_t nextDailyResetTime = sWorld->GetNextDailyQuestsResetTime();
CriteriaProgress *progress = GetCriteriaProgress(criteria);
@@ -631,7 +630,7 @@ void CriteriaHandler::UpdateCriteria(CriteriaTypes type, uint64 miscValue1 /*= 0
SetCriteriaProgress(criteria, 1, referencePlayer, progressType);
break;
}
- case CRITERIA_TYPE_COMPLETE_QUESTS_IN_ZONE:
+ case CriteriaType::CompleteQuestsInZone:
{
if (miscValue1)
{
@@ -652,37 +651,37 @@ void CriteriaHandler::UpdateCriteria(CriteriaTypes type, uint64 miscValue1 /*= 0
}
break;
}
- case CRITERIA_TYPE_FALL_WITHOUT_DYING:
+ case CriteriaType::MaxDistFallenWithoutDying:
// miscValue1 is the ingame fallheight*100 as stored in dbc
SetCriteriaProgress(criteria, miscValue1, referencePlayer);
break;
- case CRITERIA_TYPE_COMPLETE_QUEST:
- case CRITERIA_TYPE_LEARN_SPELL:
- case CRITERIA_TYPE_EXPLORE_AREA:
- case CRITERIA_TYPE_VISIT_BARBER_SHOP:
- case CRITERIA_TYPE_EQUIP_ITEM_IN_SLOT:
- case CRITERIA_TYPE_EQUIP_ITEM:
- case CRITERIA_TYPE_COMPLETE_ACHIEVEMENT:
- case CRITERIA_TYPE_RECRUIT_GARRISON_FOLLOWER:
- case CRITERIA_TYPE_OWN_BATTLE_PET:
- case CRITERIA_TYPE_ACTIVELY_REACH_LEVEL:
+ case CriteriaType::CompleteQuest:
+ case CriteriaType::LearnOrKnowSpell:
+ case CriteriaType::RevealWorldMapOverlay:
+ case CriteriaType::GotHaircut:
+ case CriteriaType::EquipItemInSlot:
+ case CriteriaType::EquipItem:
+ case CriteriaType::EarnAchievement:
+ case CriteriaType::RecruitGarrisonFollower:
+ case CriteriaType::LearnedNewPet:
+ case CriteriaType::ActivelyReachLevel:
SetCriteriaProgress(criteria, 1, referencePlayer);
break;
- case CRITERIA_TYPE_BUY_BANK_SLOT:
+ case CriteriaType::BankSlotsPurchased:
SetCriteriaProgress(criteria, referencePlayer->GetBankBagSlotCount(), referencePlayer);
break;
- case CRITERIA_TYPE_GAIN_REPUTATION:
+ case CriteriaType::ReputationGained:
{
int32 reputation = referencePlayer->GetReputationMgr().GetReputation(criteria->Entry->Asset.FactionID);
if (reputation > 0)
SetCriteriaProgress(criteria, reputation, referencePlayer);
break;
}
- case CRITERIA_TYPE_GAIN_EXALTED_REPUTATION:
+ case CriteriaType::TotalExaltedFactions:
SetCriteriaProgress(criteria, referencePlayer->GetReputationMgr().GetExaltedFactionCount(), referencePlayer);
break;
- case CRITERIA_TYPE_LEARN_SKILLLINE_SPELLS:
- case CRITERIA_TYPE_LEARN_SKILL_LINE:
+ case CriteriaType::LearnSpellFromSkillLine:
+ case CriteriaType::LearnTradeskillSkillLine:
{
uint32 spellCount = 0;
for (PlayerSpellMap::const_iterator spellIter = referencePlayer->GetSpellMap().begin();
@@ -703,27 +702,27 @@ void CriteriaHandler::UpdateCriteria(CriteriaTypes type, uint64 miscValue1 /*= 0
SetCriteriaProgress(criteria, spellCount, referencePlayer);
break;
}
- case CRITERIA_TYPE_GAIN_REVERED_REPUTATION:
+ case CriteriaType::TotalReveredFactions:
SetCriteriaProgress(criteria, referencePlayer->GetReputationMgr().GetReveredFactionCount(), referencePlayer);
break;
- case CRITERIA_TYPE_GAIN_HONORED_REPUTATION:
+ case CriteriaType::TotalHonoredFactions:
SetCriteriaProgress(criteria, referencePlayer->GetReputationMgr().GetHonoredFactionCount(), referencePlayer);
break;
- case CRITERIA_TYPE_KNOWN_FACTIONS:
+ case CriteriaType::TotalFactionsEncountered:
SetCriteriaProgress(criteria, referencePlayer->GetReputationMgr().GetVisibleFactionCount(), referencePlayer);
break;
- case CRITERIA_TYPE_EARN_HONORABLE_KILL:
+ case CriteriaType::HonorableKills:
SetCriteriaProgress(criteria, referencePlayer->m_activePlayerData->LifetimeHonorableKills, referencePlayer);
break;
- case CRITERIA_TYPE_HIGHEST_GOLD_VALUE_OWNED:
+ case CriteriaType::MostMoneyOwned:
SetCriteriaProgress(criteria, referencePlayer->GetMoney(), referencePlayer, PROGRESS_HIGHEST);
break;
- case CRITERIA_TYPE_EARN_ACHIEVEMENT_POINTS:
+ case CriteriaType::EarnAchievementPoints:
if (!miscValue1)
continue;
SetCriteriaProgress(criteria, miscValue1, referencePlayer, PROGRESS_ACCUMULATE);
break;
- case CRITERIA_TYPE_HIGHEST_PERSONAL_RATING:
+ case CriteriaType::EarnPersonalArenaRating:
{
uint32 reqTeamType = criteria->Entry->Asset.TeamType;
@@ -755,97 +754,98 @@ void CriteriaHandler::UpdateCriteria(CriteriaTypes type, uint64 miscValue1 /*= 0
}
break;
}
- case CRITERIA_TYPE_OWN_BATTLE_PET_COUNT:
+ case CriteriaType::UniquePetsOwned:
SetCriteriaProgress(criteria, referencePlayer->GetSession()->GetBattlePetMgr()->GetPetUniqueSpeciesCount(), referencePlayer);
break;
- case CRITERIA_TYPE_REACH_GUILD_LEVEL:
+ case CriteriaType::GuildAttainedLevel:
SetCriteriaProgress(criteria, miscValue1, referencePlayer);
break;
// FIXME: not triggered in code as result, need to implement
- case CRITERIA_TYPE_COMPLETE_RAID:
- case CRITERIA_TYPE_PLAY_ARENA:
- case CRITERIA_TYPE_HIGHEST_TEAM_RATING:
- case CRITERIA_TYPE_OWN_RANK:
- case CRITERIA_TYPE_SPENT_GOLD_GUILD_REPAIRS:
- case CRITERIA_TYPE_CRAFT_ITEMS_GUILD:
- case CRITERIA_TYPE_CATCH_FROM_POOL:
- case CRITERIA_TYPE_BUY_GUILD_BANK_SLOTS:
- case CRITERIA_TYPE_EARN_GUILD_ACHIEVEMENT_POINTS:
- case CRITERIA_TYPE_WIN_RATED_BATTLEGROUND:
- case CRITERIA_TYPE_REACH_BG_RATING:
- case CRITERIA_TYPE_BUY_GUILD_TABARD:
- case CRITERIA_TYPE_COMPLETE_QUESTS_GUILD:
- case CRITERIA_TYPE_HONORABLE_KILLS_GUILD:
- case CRITERIA_TYPE_KILL_CREATURE_TYPE_GUILD:
- case CRITERIA_TYPE_COMPLETE_ARCHAEOLOGY_PROJECTS:
- case CRITERIA_TYPE_COMPLETE_GUILD_CHALLENGE_TYPE:
- case CRITERIA_TYPE_COMPLETE_GUILD_CHALLENGE:
- case CRITERIA_TYPE_LFR_DUNGEONS_COMPLETED:
- case CRITERIA_TYPE_LFR_LEAVES:
- case CRITERIA_TYPE_LFR_VOTE_KICKS_INITIATED_BY_PLAYER:
- case CRITERIA_TYPE_LFR_VOTE_KICKS_NOT_INIT_BY_PLAYER:
- case CRITERIA_TYPE_BE_KICKED_FROM_LFR:
- case CRITERIA_TYPE_COUNT_OF_LFR_QUEUE_BOOSTS_BY_TANK:
- case CRITERIA_TYPE_COMPLETE_SCENARIO_COUNT:
- case CRITERIA_TYPE_COMPLETE_SCENARIO:
- case CRITERIA_TYPE_CAPTURE_BATTLE_PET:
- case CRITERIA_TYPE_WIN_PET_BATTLE:
- case CRITERIA_TYPE_LEVEL_BATTLE_PET:
- case CRITERIA_TYPE_CAPTURE_BATTLE_PET_CREDIT:
- case CRITERIA_TYPE_LEVEL_BATTLE_PET_CREDIT:
- case CRITERIA_TYPE_ENTER_AREA:
- case CRITERIA_TYPE_LEAVE_AREA:
- case CRITERIA_TYPE_COMPLETE_DUNGEON_ENCOUNTER:
- case CRITERIA_TYPE_CONSTRUCT_GARRISON_BUILDING:
- case CRITERIA_TYPE_UPGRADE_GARRISON:
- case CRITERIA_TYPE_START_GARRISON_MISSION:
- case CRITERIA_TYPE_COMPLETE_GARRISON_MISSION_COUNT:
- case CRITERIA_TYPE_COMPLETE_GARRISON_MISSION:
- case CRITERIA_TYPE_RECRUIT_GARRISON_FOLLOWER_COUNT:
- case CRITERIA_TYPE_LEARN_GARRISON_BLUEPRINT_COUNT:
- case CRITERIA_TYPE_COMPLETE_GARRISON_SHIPMENT:
- case CRITERIA_TYPE_RAISE_GARRISON_FOLLOWER_ITEM_LEVEL:
- case CRITERIA_TYPE_RAISE_GARRISON_FOLLOWER_LEVEL:
- case CRITERIA_TYPE_OWN_TOY:
- case CRITERIA_TYPE_OWN_TOY_COUNT:
- case CRITERIA_TYPE_OWN_HEIRLOOMS:
- case CRITERIA_TYPE_SURVEY_GAMEOBJECT:
- case CRITERIA_TYPE_CLEAR_DIGSITE:
- case CRITERIA_TYPE_MANUAL_COMPLETE_CRITERIA:
- case CRITERIA_TYPE_COMPLETE_CHALLENGE_MODE_GUILD:
- case CRITERIA_TYPE_DEFEAT_CREATURE_GROUP:
- case CRITERIA_TYPE_COMPLETE_CHALLENGE_MODE:
- case CRITERIA_TYPE_SEND_EVENT:
- case CRITERIA_TYPE_COOK_RECIPES_GUILD:
- case CRITERIA_TYPE_EARN_PET_BATTLE_ACHIEVEMENT_POINTS:
- case CRITERIA_TYPE_SEND_EVENT_SCENARIO:
- case CRITERIA_TYPE_RELEASE_SPIRIT:
- case CRITERIA_TYPE_OWN_PET:
- case CRITERIA_TYPE_GARRISON_COMPLETE_DUNGEON_ENCOUNTER:
- case CRITERIA_TYPE_COMPLETE_LFG_DUNGEON:
- case CRITERIA_TYPE_LFG_VOTE_KICKS_INITIATED_BY_PLAYER:
- case CRITERIA_TYPE_LFG_VOTE_KICKS_NOT_INIT_BY_PLAYER:
- case CRITERIA_TYPE_BE_KICKED_FROM_LFG:
- case CRITERIA_TYPE_LFG_LEAVES:
- case CRITERIA_TYPE_COUNT_OF_LFG_QUEUE_BOOSTS_BY_TANK:
- case CRITERIA_TYPE_REACH_AREATRIGGER_WITH_ACTIONSET:
- case CRITERIA_TYPE_START_ORDER_HALL_MISSION:
- case CRITERIA_TYPE_RECRUIT_GARRISON_FOLLOWER_WITH_QUALITY:
- case CRITERIA_TYPE_ARTIFACT_POWER_EARNED:
- case CRITERIA_TYPE_ARTIFACT_TRAITS_UNLOCKED:
- case CRITERIA_TYPE_ORDER_HALL_TALENT_LEARNED:
- case CRITERIA_TYPE_ORDER_HALL_RECRUIT_TROOP:
- case CRITERIA_TYPE_COMPLETE_WORLD_QUEST:
- case CRITERIA_TYPE_GAIN_PARAGON_REPUTATION:
- case CRITERIA_TYPE_EARN_HONOR_XP:
- case CRITERIA_TYPE_RELIC_TALENT_UNLOCKED:
- case CRITERIA_TYPE_REACH_ACCOUNT_HONOR_LEVEL:
- case CRITERIA_TYPE_MYTHIC_KEYSTONE_COMPLETED:
- case CRITERIA_TYPE_APPLY_CONDUIT:
- case CRITERIA_TYPE_CONVERT_ITEMS_TO_CURRENCY:
- case CRITERIA_TYPE_EXPANSION_LEVEL:
- case CRITERIA_TYPE_OWN_ITEM_MODIFIED_APPEARANCE:
- break; // Not implemented yet :(
+ case CriteriaType::RunInstance:
+ case CriteriaType::ParticipateInArena:
+ case CriteriaType::EarnTeamArenaRating:
+ case CriteriaType::EarnTitle:
+ case CriteriaType::MoneySpentOnGuildRepair:
+ case CriteriaType::CreatedItemsByCastingSpell:
+ case CriteriaType::FishInAnyPool:
+ case CriteriaType::GuildBankTabsPurchased:
+ case CriteriaType::EarnGuildAchievementPoints:
+ case CriteriaType::WinAnyBattleground:
+ case CriteriaType::EarnBattlegroundRating:
+ case CriteriaType::GuildTabardCreated:
+ case CriteriaType::CompleteQuestsCountForGuild:
+ case CriteriaType::HonorableKillsForGuild:
+ case CriteriaType::KillAnyCreatureForGuild:
+ case CriteriaType::CompleteAnyResearchProject:
+ case CriteriaType::CompleteGuildChallenge:
+ case CriteriaType::CompleteAnyGuildChallenge:
+ case CriteriaType::CompletedLFRDungeon:
+ case CriteriaType::AbandonedLFRDungeon:
+ case CriteriaType::KickInitiatorInLFRDungeon:
+ case CriteriaType::KickVoterInLFRDungeon:
+ case CriteriaType::KickTargetInLFRDungeon:
+ case CriteriaType::GroupedTankLeftEarlyInLFRDungeon:
+ case CriteriaType::CompleteAnyScenario:
+ case CriteriaType::CompleteScenario:
+ case CriteriaType::AccountObtainPetThroughBattle:
+ case CriteriaType::WinPetBattle:
+ case CriteriaType::BattlePetReachLevel:
+ case CriteriaType::PlayerObtainPetThroughBattle:
+ case CriteriaType::ActivelyEarnPetLevel:
+ case CriteriaType::EnterArea:
+ case CriteriaType::LeaveArea:
+ case CriteriaType::DefeatDungeonEncounter:
+ case CriteriaType::ActivateGarrisonBuilding:
+ case CriteriaType::UpgradeGarrison:
+ case CriteriaType::StartAnyGarrisonMissionWithFollowerType:
+ case CriteriaType::SucceedAnyGarrisonMissionWithFollowerType:
+ case CriteriaType::SucceedGarrisonMission:
+ case CriteriaType::RecruitAnyGarrisonFollower:
+ case CriteriaType::LearnAnyGarrisonBlueprint:
+ case CriteriaType::CollectGarrisonShipment:
+ case CriteriaType::ItemLevelChangedForGarrisonFollower:
+ case CriteriaType::LevelChangedForGarrisonFollower:
+ case CriteriaType::LearnToy:
+ case CriteriaType::LearnAnyToy:
+ case CriteriaType::LearnAnyHeirloom:
+ case CriteriaType::FindResearchObject:
+ case CriteriaType::ExhaustAnyResearchSite:
+ case CriteriaType::CompleteInternalCriteria:
+ case CriteriaType::CompleteAnyChallengeMode:
+ case CriteriaType::KilledAllUnitsInSpawnRegion:
+ case CriteriaType::CompleteChallengeMode:
+ case CriteriaType::PlayerTriggerGameEvent:
+ case CriteriaType::CreatedItemsByCastingSpellWithLimit:
+ case CriteriaType::BattlePetAchievementPointsEarned:
+ case CriteriaType::AnyoneTriggerGameEventScenario:
+ case CriteriaType::ReleasedSpirit:
+ case CriteriaType::AccountKnownPet:
+ case CriteriaType::DefeatDungeonEncounterWhileElegibleForLoot:
+ case CriteriaType::CompletedLFGDungeon:
+ case CriteriaType::KickInitiatorInLFGDungeon:
+ case CriteriaType::KickVoterInLFGDungeon:
+ case CriteriaType::KickTargetInLFGDungeon:
+ case CriteriaType::AbandonedLFGDungeon:
+ case CriteriaType::GroupedTankLeftEarlyInLFGDungeon:
+ case CriteriaType::EnterAreaTriggerWithActionSet:
+ case CriteriaType::StartGarrisonMission:
+ case CriteriaType::QualityUpgradedForGarrisonFollower:
+ case CriteriaType::EarnArtifactXP:
+ case CriteriaType::AnyArtifactPowerRankPurchased:
+ case CriteriaType::CompleteResearchGarrisonTalent:
+ case CriteriaType::RecruitAnyGarrisonTroop:
+ case CriteriaType::CompleteAnyWorldQuest:
+ case CriteriaType::ParagonLevelIncreaseWithFaction:
+ case CriteriaType::PlayerHasEarnedHonor:
+ case CriteriaType::ChooseRelicTalent:
+ case CriteriaType::AccountHonorLevelReached:
+ case CriteriaType::MythicPlusCompleted:
+ case CriteriaType::SocketAnySoulbindConduit:
+ case CriteriaType::ObtainAnyItemWithCurrencyValue:
+ case CriteriaType::EarnExpansionLevel:
+ case CriteriaType::LearnTransmog:
+ default:
+ break; // Not implemented yet :(
}
for (CriteriaTree const* tree : *trees)
@@ -1151,121 +1151,121 @@ bool CriteriaHandler::IsCompletedCriteria(Criteria const* criteria, uint64 requi
if (!progress)
return false;
- switch (CriteriaTypes(criteria->Entry->Type))
+ switch (CriteriaType(criteria->Entry->Type))
{
- case CRITERIA_TYPE_WIN_BG:
- case CRITERIA_TYPE_KILL_CREATURE:
- case CRITERIA_TYPE_REACH_LEVEL:
- case CRITERIA_TYPE_REACH_GUILD_LEVEL:
- case CRITERIA_TYPE_REACH_SKILL_LEVEL:
- case CRITERIA_TYPE_COMPLETE_QUEST_COUNT:
- case CRITERIA_TYPE_COMPLETE_DAILY_QUEST_DAILY:
- case CRITERIA_TYPE_COMPLETE_QUESTS_IN_ZONE:
- case CRITERIA_TYPE_DAMAGE_DONE:
- case CRITERIA_TYPE_HEALING_DONE:
- case CRITERIA_TYPE_COMPLETE_DAILY_QUEST:
- case CRITERIA_TYPE_FALL_WITHOUT_DYING:
- case CRITERIA_TYPE_BE_SPELL_TARGET:
- case CRITERIA_TYPE_BE_SPELL_TARGET2:
- case CRITERIA_TYPE_CAST_SPELL:
- case CRITERIA_TYPE_CAST_SPELL2:
- case CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE:
- case CRITERIA_TYPE_HONORABLE_KILL_AT_AREA:
- case CRITERIA_TYPE_HONORABLE_KILL:
- case CRITERIA_TYPE_EARN_HONORABLE_KILL:
- case CRITERIA_TYPE_OWN_ITEM:
- case CRITERIA_TYPE_WIN_RATED_ARENA:
- case CRITERIA_TYPE_HIGHEST_PERSONAL_RATING:
- case CRITERIA_TYPE_USE_ITEM:
- case CRITERIA_TYPE_LOOT_ITEM:
- case CRITERIA_TYPE_BUY_BANK_SLOT:
- case CRITERIA_TYPE_GAIN_REPUTATION:
- case CRITERIA_TYPE_GAIN_EXALTED_REPUTATION:
- case CRITERIA_TYPE_VISIT_BARBER_SHOP:
- case CRITERIA_TYPE_EQUIP_ITEM_IN_SLOT:
- case CRITERIA_TYPE_ROLL_NEED_ON_LOOT:
- case CRITERIA_TYPE_ROLL_GREED_ON_LOOT:
- case CRITERIA_TYPE_HK_CLASS:
- case CRITERIA_TYPE_HK_RACE:
- case CRITERIA_TYPE_DO_EMOTE:
- case CRITERIA_TYPE_EQUIP_ITEM:
- case CRITERIA_TYPE_MONEY_FROM_QUEST_REWARD:
- case CRITERIA_TYPE_LOOT_MONEY:
- case CRITERIA_TYPE_USE_GAMEOBJECT:
- case CRITERIA_TYPE_SPECIAL_PVP_KILL:
- case CRITERIA_TYPE_FISH_IN_GAMEOBJECT:
- case CRITERIA_TYPE_LEARN_SKILLLINE_SPELLS:
- case CRITERIA_TYPE_WIN_DUEL:
- case CRITERIA_TYPE_LOOT_TYPE:
- case CRITERIA_TYPE_LEARN_SKILL_LINE:
- case CRITERIA_TYPE_USE_LFD_TO_GROUP_WITH_PLAYERS:
- case CRITERIA_TYPE_GET_KILLING_BLOWS:
- case CRITERIA_TYPE_CURRENCY:
- case CRITERIA_TYPE_PLACE_GARRISON_BUILDING:
- case CRITERIA_TYPE_OWN_BATTLE_PET_COUNT:
- case CRITERIA_TYPE_APPEARANCE_UNLOCKED_BY_SLOT:
- case CRITERIA_TYPE_GAIN_PARAGON_REPUTATION:
- case CRITERIA_TYPE_EARN_HONOR_XP:
- case CRITERIA_TYPE_RELIC_TALENT_UNLOCKED:
- case CRITERIA_TYPE_REACH_ACCOUNT_HONOR_LEVEL:
- case CRITERIA_TYPE_HEART_OF_AZEROTH_ARTIFACT_POWER_EARNED:
- case CRITERIA_TYPE_HEART_OF_AZEROTH_LEVEL_REACHED:
- case CRITERIA_TYPE_COMPLETE_QUEST_ACCUMULATE:
- case CRITERIA_TYPE_BOUGHT_ITEM_FROM_VENDOR:
- case CRITERIA_TYPE_SOLD_ITEM_TO_VENDOR:
- case CRITERIA_TYPE_TRAVELLED_TO_AREA:
+ case CriteriaType::WinBattleground:
+ case CriteriaType::KillCreature:
+ case CriteriaType::ReachLevel:
+ case CriteriaType::GuildAttainedLevel:
+ case CriteriaType::SkillRaised:
+ case CriteriaType::CompleteQuestsCount:
+ case CriteriaType::CompleteAnyDailyQuestPerDay:
+ case CriteriaType::CompleteQuestsInZone:
+ case CriteriaType::DamageDealt:
+ case CriteriaType::HealingDone:
+ case CriteriaType::CompleteDailyQuest:
+ case CriteriaType::MaxDistFallenWithoutDying:
+ case CriteriaType::BeSpellTarget:
+ case CriteriaType::GainAura:
+ case CriteriaType::CastSpell:
+ case CriteriaType::LandTargetedSpellOnTarget:
+ case CriteriaType::TrackedWorldStateUIModified:
+ case CriteriaType::PVPKillInArea:
+ case CriteriaType::EarnHonorableKill:
+ case CriteriaType::HonorableKills:
+ case CriteriaType::AcquireItem:
+ case CriteriaType::WinAnyRankedArena:
+ case CriteriaType::EarnPersonalArenaRating:
+ case CriteriaType::UseItem:
+ case CriteriaType::LootItem:
+ case CriteriaType::BankSlotsPurchased:
+ case CriteriaType::ReputationGained:
+ case CriteriaType::TotalExaltedFactions:
+ case CriteriaType::GotHaircut:
+ case CriteriaType::EquipItemInSlot:
+ case CriteriaType::RollNeed:
+ case CriteriaType::RollGreed:
+ case CriteriaType::DeliverKillingBlowToClass:
+ case CriteriaType::DeliverKillingBlowToRace:
+ case CriteriaType::DoEmote:
+ case CriteriaType::EquipItem:
+ case CriteriaType::MoneyEarnedFromQuesting:
+ case CriteriaType::MoneyLootedFromCreatures:
+ case CriteriaType::UseGameobject:
+ case CriteriaType::KillPlayer:
+ case CriteriaType::CatchFishInFishingHole:
+ case CriteriaType::LearnSpellFromSkillLine:
+ case CriteriaType::WinDuel:
+ case CriteriaType::GetLootByType:
+ case CriteriaType::LearnTradeskillSkillLine:
+ case CriteriaType::CompletedLFGDungeonWithStrangers:
+ case CriteriaType::DeliveredKillingBlow:
+ case CriteriaType::CurrencyGained:
+ case CriteriaType::PlaceGarrisonBuilding:
+ case CriteriaType::UniquePetsOwned:
+ case CriteriaType::LearnAnyTransmogInSlot:
+ case CriteriaType::ParagonLevelIncreaseWithFaction:
+ case CriteriaType::PlayerHasEarnedHonor:
+ case CriteriaType::ChooseRelicTalent:
+ case CriteriaType::AccountHonorLevelReached:
+ case CriteriaType::EarnArtifactXPForAzeriteItem:
+ case CriteriaType::AzeriteLevelReached:
+ case CriteriaType::CompleteAnyReplayQuest:
+ case CriteriaType::BuyItemsFromVendors:
+ case CriteriaType::SellItemsToVendors:
+ case CriteriaType::EnterTopLevelArea:
return progress->Counter >= requiredAmount;
- case CRITERIA_TYPE_COMPLETE_ACHIEVEMENT:
- case CRITERIA_TYPE_COMPLETE_QUEST:
- case CRITERIA_TYPE_LEARN_SPELL:
- case CRITERIA_TYPE_EXPLORE_AREA:
- case CRITERIA_TYPE_RECRUIT_GARRISON_FOLLOWER:
- case CRITERIA_TYPE_OWN_BATTLE_PET:
- case CRITERIA_TYPE_HONOR_LEVEL_REACHED:
- case CRITERIA_TYPE_PRESTIGE_REACHED:
- case CRITERIA_TYPE_ACTIVELY_REACH_LEVEL:
- case CRITERIA_TYPE_TRANSMOG_SET_UNLOCKED:
+ case CriteriaType::EarnAchievement:
+ case CriteriaType::CompleteQuest:
+ case CriteriaType::LearnOrKnowSpell:
+ case CriteriaType::RevealWorldMapOverlay:
+ case CriteriaType::RecruitGarrisonFollower:
+ case CriteriaType::LearnedNewPet:
+ case CriteriaType::HonorLevelIncrease:
+ case CriteriaType::PrestigeLevelIncrease:
+ case CriteriaType::ActivelyReachLevel:
+ case CriteriaType::CollectTransmogSetFromGroup:
return progress->Counter >= 1;
- case CRITERIA_TYPE_LEARN_SKILL_LEVEL:
+ case CriteriaType::AchieveSkillStep:
return progress->Counter >= (requiredAmount * 75);
- case CRITERIA_TYPE_EARN_ACHIEVEMENT_POINTS:
+ case CriteriaType::EarnAchievementPoints:
return progress->Counter >= 9000;
- case CRITERIA_TYPE_WIN_ARENA:
+ case CriteriaType::WinArena:
return requiredAmount && progress->Counter >= requiredAmount;
- case CRITERIA_TYPE_ON_LOGIN:
+ case CriteriaType::Login:
return true;
// handle all statistic-only criteria here
- case CRITERIA_TYPE_COMPLETE_BATTLEGROUND:
- case CRITERIA_TYPE_DEATH_AT_MAP:
- case CRITERIA_TYPE_DEATH:
- case CRITERIA_TYPE_DEATH_IN_DUNGEON:
- case CRITERIA_TYPE_KILLED_BY_CREATURE:
- case CRITERIA_TYPE_KILLED_BY_PLAYER:
- case CRITERIA_TYPE_DEATHS_FROM:
- case CRITERIA_TYPE_HIGHEST_TEAM_RATING:
- case CRITERIA_TYPE_MONEY_FROM_VENDORS:
- case CRITERIA_TYPE_GOLD_SPENT_FOR_TALENTS:
- case CRITERIA_TYPE_NUMBER_OF_TALENT_RESETS:
- case CRITERIA_TYPE_GOLD_SPENT_AT_BARBER:
- case CRITERIA_TYPE_GOLD_SPENT_FOR_MAIL:
- case CRITERIA_TYPE_LOSE_DUEL:
- case CRITERIA_TYPE_KILL_CREATURE_TYPE:
- case CRITERIA_TYPE_GOLD_EARNED_BY_AUCTIONS:
- case CRITERIA_TYPE_CREATE_AUCTION:
- case CRITERIA_TYPE_HIGHEST_AUCTION_BID:
- case CRITERIA_TYPE_HIGHEST_AUCTION_SOLD:
- case CRITERIA_TYPE_HIGHEST_GOLD_VALUE_OWNED:
- case CRITERIA_TYPE_WON_AUCTIONS:
- case CRITERIA_TYPE_GAIN_REVERED_REPUTATION:
- case CRITERIA_TYPE_GAIN_HONORED_REPUTATION:
- case CRITERIA_TYPE_KNOWN_FACTIONS:
- case CRITERIA_TYPE_LOOT_ANY_ITEM:
- case CRITERIA_TYPE_OBTAIN_ANY_ITEM:
- case CRITERIA_TYPE_ROLL_NEED:
- case CRITERIA_TYPE_ROLL_GREED:
- case CRITERIA_TYPE_QUEST_ABANDONED:
- case CRITERIA_TYPE_FLIGHT_PATHS_TAKEN:
- case CRITERIA_TYPE_ACCEPTED_SUMMONINGS:
+ case CriteriaType::ParticipateInBattleground:
+ case CriteriaType::DieOnMap:
+ case CriteriaType::DieAnywhere:
+ case CriteriaType::DieInInstance:
+ case CriteriaType::KilledByCreature:
+ case CriteriaType::KilledByPlayer:
+ case CriteriaType::DieFromEnviromentalDamage:
+ case CriteriaType::EarnTeamArenaRating:
+ case CriteriaType::MoneyEarnedFromSales:
+ case CriteriaType::MoneySpentOnRespecs:
+ case CriteriaType::TotalRespecs:
+ case CriteriaType::MoneySpentAtBarberShop:
+ case CriteriaType::MoneySpentOnPostage:
+ case CriteriaType::LoseDuel:
+ case CriteriaType::KillAnyCreature:
+ case CriteriaType::MoneyEarnedFromAuctions:
+ case CriteriaType::ItemsPostedAtAuction:
+ case CriteriaType::HighestAuctionBid:
+ case CriteriaType::HighestAuctionSale:
+ case CriteriaType::MostMoneyOwned:
+ case CriteriaType::AuctionsWon:
+ case CriteriaType::TotalReveredFactions:
+ case CriteriaType::TotalHonoredFactions:
+ case CriteriaType::TotalFactionsEncountered:
+ case CriteriaType::LootAnyItem:
+ case CriteriaType::ObtainAnyItem:
+ case CriteriaType::RollAnyNeed:
+ case CriteriaType::RollAnyGreed:
+ case CriteriaType::AbandonAnyQuest:
+ case CriteriaType::BuyTaxi:
+ case CriteriaType::AcceptSummon:
default:
break;
}
@@ -1339,87 +1339,87 @@ bool CriteriaHandler::ConditionsSatisfied(Criteria const* criteria, Player* refe
bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 miscValue1, uint64 miscValue2, uint64 miscValue3, WorldObject const* ref, Player* referencePlayer) const
{
- switch (CriteriaTypes(criteria->Entry->Type))
+ switch (CriteriaType(criteria->Entry->Type))
{
- case CRITERIA_TYPE_ACCEPTED_SUMMONINGS:
- case CRITERIA_TYPE_COMPLETE_DAILY_QUEST:
- case CRITERIA_TYPE_CREATE_AUCTION:
- case CRITERIA_TYPE_FALL_WITHOUT_DYING:
- case CRITERIA_TYPE_FLIGHT_PATHS_TAKEN:
- case CRITERIA_TYPE_GET_KILLING_BLOWS:
- case CRITERIA_TYPE_GOLD_EARNED_BY_AUCTIONS:
- case CRITERIA_TYPE_GOLD_SPENT_AT_BARBER:
- case CRITERIA_TYPE_GOLD_SPENT_FOR_MAIL:
- case CRITERIA_TYPE_GOLD_SPENT_FOR_TALENTS:
- case CRITERIA_TYPE_GOLD_SPENT_FOR_TRAVELLING:
- case CRITERIA_TYPE_HIGHEST_AUCTION_BID:
- case CRITERIA_TYPE_HIGHEST_AUCTION_SOLD:
- case CRITERIA_TYPE_HIGHEST_HEALING_RECEIVED:
- case CRITERIA_TYPE_HIGHEST_HEAL_CAST:
- case CRITERIA_TYPE_HIGHEST_HIT_DEALT:
- case CRITERIA_TYPE_HIGHEST_HIT_RECEIVED:
- case CRITERIA_TYPE_HONORABLE_KILL:
- case CRITERIA_TYPE_LOOT_ANY_ITEM:
- case CRITERIA_TYPE_LOOT_MONEY:
- case CRITERIA_TYPE_LOSE_DUEL:
- case CRITERIA_TYPE_MONEY_FROM_QUEST_REWARD:
- case CRITERIA_TYPE_MONEY_FROM_VENDORS:
- case CRITERIA_TYPE_NUMBER_OF_TALENT_RESETS:
- case CRITERIA_TYPE_OBTAIN_ANY_ITEM:
- case CRITERIA_TYPE_QUEST_ABANDONED:
- case CRITERIA_TYPE_REACH_GUILD_LEVEL:
- case CRITERIA_TYPE_ROLL_GREED:
- case CRITERIA_TYPE_ROLL_NEED:
- case CRITERIA_TYPE_SPECIAL_PVP_KILL:
- case CRITERIA_TYPE_TOTAL_DAMAGE_RECEIVED:
- case CRITERIA_TYPE_TOTAL_HEALING_RECEIVED:
- case CRITERIA_TYPE_USE_LFD_TO_GROUP_WITH_PLAYERS:
- case CRITERIA_TYPE_VISIT_BARBER_SHOP:
- case CRITERIA_TYPE_WIN_DUEL:
- case CRITERIA_TYPE_WIN_RATED_ARENA:
- case CRITERIA_TYPE_WON_AUCTIONS:
- case CRITERIA_TYPE_COMPLETE_QUEST_ACCUMULATE:
- case CRITERIA_TYPE_BOUGHT_ITEM_FROM_VENDOR:
- case CRITERIA_TYPE_SOLD_ITEM_TO_VENDOR:
+ case CriteriaType::AcceptSummon:
+ case CriteriaType::CompleteDailyQuest:
+ case CriteriaType::ItemsPostedAtAuction:
+ case CriteriaType::MaxDistFallenWithoutDying:
+ case CriteriaType::BuyTaxi:
+ case CriteriaType::DeliveredKillingBlow:
+ case CriteriaType::MoneyEarnedFromAuctions:
+ case CriteriaType::MoneySpentAtBarberShop:
+ case CriteriaType::MoneySpentOnPostage:
+ case CriteriaType::MoneySpentOnRespecs:
+ case CriteriaType::MoneySpentOnTaxis:
+ case CriteriaType::HighestAuctionBid:
+ case CriteriaType::HighestAuctionSale:
+ case CriteriaType::HighestHealReceived:
+ case CriteriaType::HighestHealCast:
+ case CriteriaType::HighestDamageDone:
+ case CriteriaType::HighestDamageTaken:
+ case CriteriaType::EarnHonorableKill:
+ case CriteriaType::LootAnyItem:
+ case CriteriaType::MoneyLootedFromCreatures:
+ case CriteriaType::LoseDuel:
+ case CriteriaType::MoneyEarnedFromQuesting:
+ case CriteriaType::MoneyEarnedFromSales:
+ case CriteriaType::TotalRespecs:
+ case CriteriaType::ObtainAnyItem:
+ case CriteriaType::AbandonAnyQuest:
+ case CriteriaType::GuildAttainedLevel:
+ case CriteriaType::RollAnyGreed:
+ case CriteriaType::RollAnyNeed:
+ case CriteriaType::KillPlayer:
+ case CriteriaType::TotalDamageTaken:
+ case CriteriaType::TotalHealReceived:
+ case CriteriaType::CompletedLFGDungeonWithStrangers:
+ case CriteriaType::GotHaircut:
+ case CriteriaType::WinDuel:
+ case CriteriaType::WinAnyRankedArena:
+ case CriteriaType::AuctionsWon:
+ case CriteriaType::CompleteAnyReplayQuest:
+ case CriteriaType::BuyItemsFromVendors:
+ case CriteriaType::SellItemsToVendors:
if (!miscValue1)
return false;
break;
- case CRITERIA_TYPE_BUY_BANK_SLOT:
- case CRITERIA_TYPE_COMPLETE_DAILY_QUEST_DAILY:
- case CRITERIA_TYPE_COMPLETE_QUEST_COUNT:
- case CRITERIA_TYPE_EARN_ACHIEVEMENT_POINTS:
- case CRITERIA_TYPE_GAIN_EXALTED_REPUTATION:
- case CRITERIA_TYPE_GAIN_HONORED_REPUTATION:
- case CRITERIA_TYPE_GAIN_REVERED_REPUTATION:
- case CRITERIA_TYPE_HIGHEST_GOLD_VALUE_OWNED:
- case CRITERIA_TYPE_HIGHEST_PERSONAL_RATING:
- case CRITERIA_TYPE_KNOWN_FACTIONS:
- case CRITERIA_TYPE_REACH_LEVEL:
- case CRITERIA_TYPE_ON_LOGIN:
- case CRITERIA_TYPE_OWN_BATTLE_PET_COUNT:
- break;
- case CRITERIA_TYPE_COMPLETE_ACHIEVEMENT:
+ case CriteriaType::BankSlotsPurchased:
+ case CriteriaType::CompleteAnyDailyQuestPerDay:
+ case CriteriaType::CompleteQuestsCount:
+ case CriteriaType::EarnAchievementPoints:
+ case CriteriaType::TotalExaltedFactions:
+ case CriteriaType::TotalHonoredFactions:
+ case CriteriaType::TotalReveredFactions:
+ case CriteriaType::MostMoneyOwned:
+ case CriteriaType::EarnPersonalArenaRating:
+ case CriteriaType::TotalFactionsEncountered:
+ case CriteriaType::ReachLevel:
+ case CriteriaType::Login:
+ case CriteriaType::UniquePetsOwned:
+ break;
+ case CriteriaType::EarnAchievement:
if (!RequiredAchievementSatisfied(criteria->Entry->Asset.AchievementID))
return false;
break;
- case CRITERIA_TYPE_WIN_BG:
- case CRITERIA_TYPE_COMPLETE_BATTLEGROUND:
- case CRITERIA_TYPE_DEATH_AT_MAP:
+ case CriteriaType::WinBattleground:
+ case CriteriaType::ParticipateInBattleground:
+ case CriteriaType::DieOnMap:
if (!miscValue1 || uint32(criteria->Entry->Asset.MapID) != referencePlayer->GetMapId())
return false;
break;
- case CRITERIA_TYPE_KILL_CREATURE:
- case CRITERIA_TYPE_KILLED_BY_CREATURE:
+ case CriteriaType::KillCreature:
+ case CriteriaType::KilledByCreature:
if (!miscValue1 || uint32(criteria->Entry->Asset.CreatureID) != miscValue1)
return false;
break;
- case CRITERIA_TYPE_REACH_SKILL_LEVEL:
- case CRITERIA_TYPE_LEARN_SKILL_LEVEL:
+ case CriteriaType::SkillRaised:
+ case CriteriaType::AchieveSkillStep:
// update at loading or specific skill update
if (miscValue1 && miscValue1 != uint32(criteria->Entry->Asset.SkillID))
return false;
break;
- case CRITERIA_TYPE_COMPLETE_QUESTS_IN_ZONE:
+ case CriteriaType::CompleteQuestsInZone:
if (miscValue1)
{
Quest const* quest = sObjectMgr->GetQuestTemplate(miscValue1);
@@ -1427,13 +1427,13 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
return false;
}
break;
- case CRITERIA_TYPE_DEATH:
+ case CriteriaType::DieAnywhere:
{
if (!miscValue1)
return false;
break;
}
- case CRITERIA_TYPE_DEATH_IN_DUNGEON:
+ case CriteriaType::DieInInstance:
{
if (!miscValue1)
return false;
@@ -1447,15 +1447,15 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
return false;
break;
}
- case CRITERIA_TYPE_KILLED_BY_PLAYER:
+ case CriteriaType::KilledByPlayer:
if (!miscValue1 || !ref || ref->GetTypeId() != TYPEID_PLAYER)
return false;
break;
- case CRITERIA_TYPE_DEATHS_FROM:
- if (!miscValue1 || miscValue2 != uint32(criteria->Entry->Asset.DamageType))
+ case CriteriaType::DieFromEnviromentalDamage:
+ if (!miscValue1 || miscValue2 != uint32(criteria->Entry->Asset.EnviromentalDamageType))
return false;
break;
- case CRITERIA_TYPE_COMPLETE_QUEST:
+ case CriteriaType::CompleteQuest:
{
// if miscValues != 0, it contains the questID.
if (miscValue1)
@@ -1475,37 +1475,37 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
return false;
break;
}
- case CRITERIA_TYPE_BE_SPELL_TARGET:
- case CRITERIA_TYPE_BE_SPELL_TARGET2:
- case CRITERIA_TYPE_CAST_SPELL:
- case CRITERIA_TYPE_CAST_SPELL2:
+ case CriteriaType::BeSpellTarget:
+ case CriteriaType::GainAura:
+ case CriteriaType::CastSpell:
+ case CriteriaType::LandTargetedSpellOnTarget:
if (!miscValue1 || miscValue1 != uint32(criteria->Entry->Asset.SpellID))
return false;
break;
- case CRITERIA_TYPE_LEARN_SPELL:
+ case CriteriaType::LearnOrKnowSpell:
if (miscValue1 && miscValue1 != uint32(criteria->Entry->Asset.SpellID))
return false;
if (!referencePlayer->HasSpell(criteria->Entry->Asset.SpellID))
return false;
break;
- case CRITERIA_TYPE_LOOT_TYPE:
+ case CriteriaType::GetLootByType:
// miscValue1 = itemId - miscValue2 = count of item loot
// miscValue3 = loot_type (note: 0 = LOOT_CORPSE and then it ignored)
if (!miscValue1 || !miscValue2 || !miscValue3 || miscValue3 != uint32(criteria->Entry->Asset.LootType))
return false;
break;
- case CRITERIA_TYPE_OWN_ITEM:
+ case CriteriaType::AcquireItem:
if (miscValue1 && uint32(criteria->Entry->Asset.ItemID) != miscValue1)
return false;
break;
- case CRITERIA_TYPE_USE_ITEM:
- case CRITERIA_TYPE_LOOT_ITEM:
- case CRITERIA_TYPE_EQUIP_ITEM:
+ case CriteriaType::UseItem:
+ case CriteriaType::LootItem:
+ case CriteriaType::EquipItem:
if (!miscValue1 || uint32(criteria->Entry->Asset.ItemID )!= miscValue1)
return false;
break;
- case CRITERIA_TYPE_EXPLORE_AREA:
+ case CriteriaType::RevealWorldMapOverlay:
{
WorldMapOverlayEntry const* worldOverlayEntry = sWorldMapOverlayStore.LookupEntry(criteria->Entry->Asset.WorldMapOverlayID);
if (!worldOverlayEntry)
@@ -1537,18 +1537,18 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
return false;
break;
}
- case CRITERIA_TYPE_GAIN_REPUTATION:
+ case CriteriaType::ReputationGained:
if (miscValue1 && miscValue1 != uint32(criteria->Entry->Asset.FactionID))
return false;
break;
- case CRITERIA_TYPE_EQUIP_ITEM_IN_SLOT:
- case CRITERIA_TYPE_APPEARANCE_UNLOCKED_BY_SLOT:
+ case CriteriaType::EquipItemInSlot:
+ case CriteriaType::LearnAnyTransmogInSlot:
// miscValue1 = EquipmentSlot miscValue2 = itemid | itemModifiedAppearanceId
if (!miscValue2 || miscValue1 != uint32(criteria->Entry->Asset.EquipmentSlot))
return false;
break;
- case CRITERIA_TYPE_ROLL_NEED_ON_LOOT:
- case CRITERIA_TYPE_ROLL_GREED_ON_LOOT:
+ case CriteriaType::RollNeed:
+ case CriteriaType::RollGreed:
{
// miscValue1 = itemid miscValue2 = diced value
if (!miscValue1 || miscValue2 != uint32(criteria->Entry->Asset.RollValue))
@@ -1559,12 +1559,12 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
return false;
break;
}
- case CRITERIA_TYPE_DO_EMOTE:
+ case CriteriaType::DoEmote:
if (!miscValue1 || miscValue1 != uint32(criteria->Entry->Asset.EmoteID))
return false;
break;
- case CRITERIA_TYPE_DAMAGE_DONE:
- case CRITERIA_TYPE_HEALING_DONE:
+ case CriteriaType::DamageDealt:
+ case CriteriaType::HealingDone:
if (!miscValue1)
return false;
@@ -1578,58 +1578,58 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
return false;
}
break;
- case CRITERIA_TYPE_USE_GAMEOBJECT:
- case CRITERIA_TYPE_FISH_IN_GAMEOBJECT:
+ case CriteriaType::UseGameobject:
+ case CriteriaType::CatchFishInFishingHole:
if (!miscValue1 || miscValue1 != uint32(criteria->Entry->Asset.GameObjectID))
return false;
break;
- case CRITERIA_TYPE_LEARN_SKILLLINE_SPELLS:
- case CRITERIA_TYPE_LEARN_SKILL_LINE:
+ case CriteriaType::LearnSpellFromSkillLine:
+ case CriteriaType::LearnTradeskillSkillLine:
if (miscValue1 && miscValue1 != uint32(criteria->Entry->Asset.SkillID))
return false;
break;
- case CRITERIA_TYPE_HK_CLASS:
+ case CriteriaType::DeliverKillingBlowToClass:
if (!miscValue1 || miscValue1 != uint32(criteria->Entry->Asset.ClassID))
return false;
break;
- case CRITERIA_TYPE_HK_RACE:
+ case CriteriaType::DeliverKillingBlowToRace:
if (!miscValue1 || miscValue1 != uint32(criteria->Entry->Asset.RaceID))
return false;
break;
- case CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE:
- if (!miscValue1 || miscValue1 != uint32(criteria->Entry->Asset.ObjectiveId))
+ case CriteriaType::TrackedWorldStateUIModified:
+ if (!miscValue1 || miscValue1 != uint32(criteria->Entry->Asset.WorldStateUIID))
return false;
break;
- case CRITERIA_TYPE_HONORABLE_KILL_AT_AREA:
- case CRITERIA_TYPE_TRAVELLED_TO_AREA:
+ case CriteriaType::PVPKillInArea:
+ case CriteriaType::EnterTopLevelArea:
if (!miscValue1 || miscValue1 != uint32(criteria->Entry->Asset.AreaID))
return false;
break;
- case CRITERIA_TYPE_CURRENCY:
+ case CriteriaType::CurrencyGained:
if (!miscValue1 || !miscValue2 || int64(miscValue2) < 0
|| miscValue1 != uint32(criteria->Entry->Asset.CurrencyID))
return false;
- break;
- case CRITERIA_TYPE_WIN_ARENA:
+ break;
+ case CriteriaType::WinArena:
if (miscValue1 != uint32(criteria->Entry->Asset.MapID))
return false;
break;
- case CRITERIA_TYPE_HIGHEST_TEAM_RATING:
+ case CriteriaType::EarnTeamArenaRating:
return false;
- case CRITERIA_TYPE_PLACE_GARRISON_BUILDING:
- case CRITERIA_TYPE_CONSTRUCT_GARRISON_BUILDING:
+ case CriteriaType::PlaceGarrisonBuilding:
+ case CriteriaType::ActivateGarrisonBuilding:
if (miscValue1 != uint32(criteria->Entry->Asset.GarrBuildingID))
return false;
break;
- case CRITERIA_TYPE_RECRUIT_GARRISON_FOLLOWER:
+ case CriteriaType::RecruitGarrisonFollower:
if (miscValue1 != uint32(criteria->Entry->Asset.GarrFollowerID))
return false;
break;
- case CRITERIA_TYPE_TRANSMOG_SET_UNLOCKED:
+ case CriteriaType::CollectTransmogSetFromGroup:
if (miscValue1 != uint32(criteria->Entry->Asset.TransmogSetGroupID))
return false;
break;
- case CRITERIA_TYPE_ACTIVELY_REACH_LEVEL:
+ case CriteriaType::ActivelyReachLevel:
if (!miscValue1 || miscValue1 != uint32(criteria->Entry->Asset.PlayerLevel))
return false;
default:
@@ -3758,399 +3758,472 @@ bool CriteriaHandler::ModifierSatisfied(ModifierTreeEntry const* modifier, uint6
char const* CriteriaMgr::GetCriteriaTypeString(uint32 type)
{
- return GetCriteriaTypeString(CriteriaTypes(type));
+ return GetCriteriaTypeString(CriteriaType(type));
}
-char const* CriteriaMgr::GetCriteriaTypeString(CriteriaTypes type)
+char const* CriteriaMgr::GetCriteriaTypeString(CriteriaType type)
{
switch (type)
{
- case CRITERIA_TYPE_KILL_CREATURE:
- return "KILL_CREATURE";
- case CRITERIA_TYPE_WIN_BG:
- return "TYPE_WIN_BG";
- case CRITERIA_TYPE_COMPLETE_ARCHAEOLOGY_PROJECTS:
- return "COMPLETE_RESEARCH";
- case CRITERIA_TYPE_SURVEY_GAMEOBJECT:
- return "SURVEY_GAMEOBJECT";
- case CRITERIA_TYPE_REACH_LEVEL:
- return "REACH_LEVEL";
- case CRITERIA_TYPE_CLEAR_DIGSITE:
- return "CLEAR_DIGSITE";
- case CRITERIA_TYPE_REACH_SKILL_LEVEL:
- return "REACH_SKILL_LEVEL";
- case CRITERIA_TYPE_COMPLETE_ACHIEVEMENT:
- return "COMPLETE_ACHIEVEMENT";
- case CRITERIA_TYPE_COMPLETE_QUEST_COUNT:
- return "COMPLETE_QUEST_COUNT";
- case CRITERIA_TYPE_COMPLETE_DAILY_QUEST_DAILY:
- return "COMPLETE_DAILY_QUEST_DAILY";
- case CRITERIA_TYPE_COMPLETE_QUESTS_IN_ZONE:
- return "COMPLETE_QUESTS_IN_ZONE";
- case CRITERIA_TYPE_CURRENCY:
- return "CURRENCY";
- case CRITERIA_TYPE_DAMAGE_DONE:
- return "DAMAGE_DONE";
- case CRITERIA_TYPE_COMPLETE_DAILY_QUEST:
- return "COMPLETE_DAILY_QUEST";
- case CRITERIA_TYPE_COMPLETE_BATTLEGROUND:
- return "COMPLETE_BATTLEGROUND";
- case CRITERIA_TYPE_DEATH_AT_MAP:
- return "DEATH_AT_MAP";
- case CRITERIA_TYPE_DEATH:
- return "DEATH";
- case CRITERIA_TYPE_DEATH_IN_DUNGEON:
- return "DEATH_IN_DUNGEON";
- case CRITERIA_TYPE_COMPLETE_RAID:
- return "COMPLETE_RAID";
- case CRITERIA_TYPE_KILLED_BY_CREATURE:
- return "KILLED_BY_CREATURE";
- case CRITERIA_TYPE_MANUAL_COMPLETE_CRITERIA:
- return "MANUAL_COMPLETE_CRITERIA";
- case CRITERIA_TYPE_COMPLETE_CHALLENGE_MODE_GUILD:
- return "COMPLETE_CHALLENGE_MODE_GUILD";
- case CRITERIA_TYPE_KILLED_BY_PLAYER:
- return "KILLED_BY_PLAYER";
- case CRITERIA_TYPE_FALL_WITHOUT_DYING:
- return "FALL_WITHOUT_DYING";
- case CRITERIA_TYPE_DEATHS_FROM:
- return "DEATHS_FROM";
- case CRITERIA_TYPE_COMPLETE_QUEST:
- return "COMPLETE_QUEST";
- case CRITERIA_TYPE_BE_SPELL_TARGET:
- return "BE_SPELL_TARGET";
- case CRITERIA_TYPE_CAST_SPELL:
- return "CAST_SPELL";
- case CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE:
- return "BG_OBJECTIVE_CAPTURE";
- case CRITERIA_TYPE_HONORABLE_KILL_AT_AREA:
- return "HONORABLE_KILL_AT_AREA";
- case CRITERIA_TYPE_WIN_ARENA:
- return "WIN_ARENA";
- case CRITERIA_TYPE_PLAY_ARENA:
- return "PLAY_ARENA";
- case CRITERIA_TYPE_LEARN_SPELL:
- return "LEARN_SPELL";
- case CRITERIA_TYPE_HONORABLE_KILL:
- return "HONORABLE_KILL";
- case CRITERIA_TYPE_OWN_ITEM:
- return "OWN_ITEM";
- case CRITERIA_TYPE_WIN_RATED_ARENA:
- return "WIN_RATED_ARENA";
- case CRITERIA_TYPE_HIGHEST_TEAM_RATING:
- return "HIGHEST_TEAM_RATING";
- case CRITERIA_TYPE_HIGHEST_PERSONAL_RATING:
- return "HIGHEST_PERSONAL_RATING";
- case CRITERIA_TYPE_LEARN_SKILL_LEVEL:
- return "LEARN_SKILL_LEVEL";
- case CRITERIA_TYPE_USE_ITEM:
- return "USE_ITEM";
- case CRITERIA_TYPE_LOOT_ITEM:
- return "LOOT_ITEM";
- case CRITERIA_TYPE_EXPLORE_AREA:
- return "EXPLORE_AREA";
- case CRITERIA_TYPE_OWN_RANK:
- return "OWN_RANK";
- case CRITERIA_TYPE_BUY_BANK_SLOT:
- return "BUY_BANK_SLOT";
- case CRITERIA_TYPE_GAIN_REPUTATION:
- return "GAIN_REPUTATION";
- case CRITERIA_TYPE_GAIN_EXALTED_REPUTATION:
- return "GAIN_EXALTED_REPUTATION";
- case CRITERIA_TYPE_VISIT_BARBER_SHOP:
- return "VISIT_BARBER_SHOP";
- case CRITERIA_TYPE_EQUIP_ITEM_IN_SLOT:
- return "EQUIP_ITEM_IN_SLOT";
- case CRITERIA_TYPE_ROLL_NEED_ON_LOOT:
- return "ROLL_NEED_ON_LOOT";
- case CRITERIA_TYPE_ROLL_GREED_ON_LOOT:
- return "GREED_ON_LOOT";
- case CRITERIA_TYPE_HK_CLASS:
- return "HK_CLASS";
- case CRITERIA_TYPE_HK_RACE:
- return "HK_RACE";
- case CRITERIA_TYPE_DO_EMOTE:
- return "DO_EMOTE";
- case CRITERIA_TYPE_HEALING_DONE:
- return "HEALING_DONE";
- case CRITERIA_TYPE_GET_KILLING_BLOWS:
- return "GET_KILLING_BLOWS";
- case CRITERIA_TYPE_EQUIP_ITEM:
- return "EQUIP_ITEM";
- case CRITERIA_TYPE_MONEY_FROM_VENDORS:
- return "MONEY_FROM_VENDORS";
- case CRITERIA_TYPE_GOLD_SPENT_FOR_TALENTS:
- return "GOLD_SPENT_FOR_TALENTS";
- case CRITERIA_TYPE_NUMBER_OF_TALENT_RESETS:
- return "NUMBER_OF_TALENT_RESETS";
- case CRITERIA_TYPE_MONEY_FROM_QUEST_REWARD:
- return "MONEY_FROM_QUEST_REWARD";
- case CRITERIA_TYPE_GOLD_SPENT_FOR_TRAVELLING:
- return "GOLD_SPENT_FOR_TRAVELLING";
- case CRITERIA_TYPE_DEFEAT_CREATURE_GROUP:
- return "DEFEAT_CREATURE_GROUP";
- case CRITERIA_TYPE_GOLD_SPENT_AT_BARBER:
- return "GOLD_SPENT_AT_BARBER";
- case CRITERIA_TYPE_GOLD_SPENT_FOR_MAIL:
- return "GOLD_SPENT_FOR_MAIL";
- case CRITERIA_TYPE_LOOT_MONEY:
- return "LOOT_MONEY";
- case CRITERIA_TYPE_USE_GAMEOBJECT:
- return "USE_GAMEOBJECT";
- case CRITERIA_TYPE_BE_SPELL_TARGET2:
- return "BE_SPELL_TARGET2";
- case CRITERIA_TYPE_SPECIAL_PVP_KILL:
- return "SPECIAL_PVP_KILL";
- case CRITERIA_TYPE_COMPLETE_CHALLENGE_MODE:
- return "COMPLETE_CHALLENGE_MODE";
- case CRITERIA_TYPE_FISH_IN_GAMEOBJECT:
- return "FISH_IN_GAMEOBJECT";
- case CRITERIA_TYPE_SEND_EVENT:
- return "SEND_EVENT";
- case CRITERIA_TYPE_ON_LOGIN:
- return "ON_LOGIN";
- case CRITERIA_TYPE_LEARN_SKILLLINE_SPELLS:
- return "LEARN_SKILLLINE_SPELLS";
- case CRITERIA_TYPE_WIN_DUEL:
- return "WIN_DUEL";
- case CRITERIA_TYPE_LOSE_DUEL:
- return "LOSE_DUEL";
- case CRITERIA_TYPE_KILL_CREATURE_TYPE:
- return "KILL_CREATURE_TYPE";
- case CRITERIA_TYPE_COOK_RECIPES_GUILD:
- return "COOK_RECIPE_GUILD";
- case CRITERIA_TYPE_GOLD_EARNED_BY_AUCTIONS:
- return "GOLD_EARNED_BY_AUCTIONS";
- case CRITERIA_TYPE_EARN_PET_BATTLE_ACHIEVEMENT_POINTS:
- return "EARN_PET_BATTLE_ACHIEVEMENT_POINTS";
- case CRITERIA_TYPE_CREATE_AUCTION:
- return "CREATE_AUCTION";
- case CRITERIA_TYPE_HIGHEST_AUCTION_BID:
- return "HIGHEST_AUCTION_BID";
- case CRITERIA_TYPE_WON_AUCTIONS:
- return "WON_AUCTIONS";
- case CRITERIA_TYPE_HIGHEST_AUCTION_SOLD:
- return "HIGHEST_AUCTION_SOLD";
- case CRITERIA_TYPE_HIGHEST_GOLD_VALUE_OWNED:
- return "HIGHEST_GOLD_VALUE_OWNED";
- case CRITERIA_TYPE_GAIN_REVERED_REPUTATION:
- return "GAIN_REVERED_REPUTATION";
- case CRITERIA_TYPE_GAIN_HONORED_REPUTATION:
- return "GAIN_HONORED_REPUTATION";
- case CRITERIA_TYPE_KNOWN_FACTIONS:
- return "KNOWN_FACTIONS";
- case CRITERIA_TYPE_LOOT_ANY_ITEM:
- return "LOOT_ANY_ITEM";
- case CRITERIA_TYPE_OBTAIN_ANY_ITEM:
- return "OBTAIN_ANY_ITEM";
- case CRITERIA_TYPE_SEND_EVENT_SCENARIO:
- return "SEND_EVENT_SCENARIO";
- case CRITERIA_TYPE_ROLL_NEED:
- return "ROLL_NEED";
- case CRITERIA_TYPE_ROLL_GREED:
- return "ROLL_GREED";
- case CRITERIA_TYPE_RELEASE_SPIRIT:
- return "RELEASE_SPIRIT";
- case CRITERIA_TYPE_OWN_PET:
- return "OWN_PET";
- case CRITERIA_TYPE_GARRISON_COMPLETE_DUNGEON_ENCOUNTER:
- return "GARRISON_COMPLETE_DUNGEON_ENCOUNTER";
- case CRITERIA_TYPE_HIGHEST_HIT_DEALT:
- return "HIT_DEALT";
- case CRITERIA_TYPE_HIGHEST_HIT_RECEIVED:
- return "HIT_RECEIVED";
- case CRITERIA_TYPE_TOTAL_DAMAGE_RECEIVED:
- return "TOTAL_DAMAGE_RECEIVED";
- case CRITERIA_TYPE_HIGHEST_HEAL_CAST:
- return "HIGHEST_HEAL_CAST";
- case CRITERIA_TYPE_TOTAL_HEALING_RECEIVED:
- return "TOTAL_HEALING_RECEIVED";
- case CRITERIA_TYPE_HIGHEST_HEALING_RECEIVED:
- return "HIGHEST_HEALING_RECEIVED";
- case CRITERIA_TYPE_QUEST_ABANDONED:
- return "QUEST_ABANDONED";
- case CRITERIA_TYPE_FLIGHT_PATHS_TAKEN:
- return "FLIGHT_PATHS_TAKEN";
- case CRITERIA_TYPE_LOOT_TYPE:
- return "LOOT_TYPE";
- case CRITERIA_TYPE_CAST_SPELL2:
- return "CAST_SPELL2";
- case CRITERIA_TYPE_LEARN_SKILL_LINE:
- return "LEARN_SKILL_LINE";
- case CRITERIA_TYPE_EARN_HONORABLE_KILL:
- return "EARN_HONORABLE_KILL";
- case CRITERIA_TYPE_ACCEPTED_SUMMONINGS:
- return "ACCEPTED_SUMMONINGS";
- case CRITERIA_TYPE_EARN_ACHIEVEMENT_POINTS:
- return "EARN_ACHIEVEMENT_POINTS";
- case CRITERIA_TYPE_COMPLETE_LFG_DUNGEON:
- return "COMPLETE_LFG_DUNGEON";
- case CRITERIA_TYPE_USE_LFD_TO_GROUP_WITH_PLAYERS:
- return "USE_LFD_TO_GROUP_WITH_PLAYERS";
- case CRITERIA_TYPE_LFG_VOTE_KICKS_INITIATED_BY_PLAYER:
- return "LFG_VOTE_KICKS_INITIATED_BY_PLAYER";
- case CRITERIA_TYPE_LFG_VOTE_KICKS_NOT_INIT_BY_PLAYER:
- return "LFG_VOTE_KICKS_NOT_INIT_BY_PLAYER";
- case CRITERIA_TYPE_BE_KICKED_FROM_LFG:
- return "BE_KICKED_FROM_LFG";
- case CRITERIA_TYPE_LFG_LEAVES:
- return "LFG_LEAVES";
- case CRITERIA_TYPE_SPENT_GOLD_GUILD_REPAIRS:
- return "SPENT_GOLD_GUILD_REPAIRS";
- case CRITERIA_TYPE_REACH_GUILD_LEVEL:
- return "REACH_GUILD_LEVEL";
- case CRITERIA_TYPE_CRAFT_ITEMS_GUILD:
- return "CRAFT_ITEMS_GUILD";
- case CRITERIA_TYPE_CATCH_FROM_POOL:
- return "CATCH_FROM_POOL";
- case CRITERIA_TYPE_BUY_GUILD_BANK_SLOTS:
- return "BUY_GUILD_BANK_SLOTS";
- case CRITERIA_TYPE_EARN_GUILD_ACHIEVEMENT_POINTS:
- return "EARN_GUILD_ACHIEVEMENT_POINTS";
- case CRITERIA_TYPE_WIN_RATED_BATTLEGROUND:
- return "WIN_RATED_BATTLEGROUND";
- case CRITERIA_TYPE_REACH_BG_RATING:
- return "REACH_BG_RATING";
- case CRITERIA_TYPE_BUY_GUILD_TABARD:
- return "BUY_GUILD_TABARD";
- case CRITERIA_TYPE_COMPLETE_QUESTS_GUILD:
- return "COMPLETE_QUESTS_GUILD";
- case CRITERIA_TYPE_HONORABLE_KILLS_GUILD:
- return "HONORABLE_KILLS_GUILD";
- case CRITERIA_TYPE_KILL_CREATURE_TYPE_GUILD:
- return "KILL_CREATURE_TYPE_GUILD";
- case CRITERIA_TYPE_COUNT_OF_LFG_QUEUE_BOOSTS_BY_TANK:
- return "COUNT_OF_LFG_QUEUE_BOOSTS_BY_TANK";
- case CRITERIA_TYPE_COMPLETE_GUILD_CHALLENGE_TYPE:
- return "GUILD_CHALLENGE_TYPE";
- case CRITERIA_TYPE_COMPLETE_GUILD_CHALLENGE:
- return "GUILD_CHALLENGE";
- case CRITERIA_TYPE_LFR_DUNGEONS_COMPLETED:
- return "LFR_DUNGEONS_COMPLETED";
- case CRITERIA_TYPE_LFR_LEAVES:
- return "LFR_LEAVES";
- case CRITERIA_TYPE_LFR_VOTE_KICKS_INITIATED_BY_PLAYER:
- return "LFR_VOTE_KICKS_INITIATED_BY_PLAYER";
- case CRITERIA_TYPE_LFR_VOTE_KICKS_NOT_INIT_BY_PLAYER:
- return "LFR_VOTE_KICKS_NOT_INIT_BY_PLAYER";
- case CRITERIA_TYPE_BE_KICKED_FROM_LFR:
- return "BE_KICKED_FROM_LFR";
- case CRITERIA_TYPE_COUNT_OF_LFR_QUEUE_BOOSTS_BY_TANK:
- return "COUNT_OF_LFR_QUEUE_BOOSTS_BY_TANK";
- case CRITERIA_TYPE_COMPLETE_SCENARIO_COUNT:
- return "COMPLETE_SCENARIO_COUNT";
- case CRITERIA_TYPE_COMPLETE_SCENARIO:
- return "COMPLETE_SCENARIO";
- case CRITERIA_TYPE_REACH_AREATRIGGER_WITH_ACTIONSET:
- return "REACH_AREATRIGGER_WITH_ACTIONSET";
- case CRITERIA_TYPE_OWN_BATTLE_PET:
- return "OWN_BATTLE_PET";
- case CRITERIA_TYPE_OWN_BATTLE_PET_COUNT:
- return "OWN_BATTLE_PET_COUNT";
- case CRITERIA_TYPE_CAPTURE_BATTLE_PET:
- return "CAPTURE_BATTLE_PET";
- case CRITERIA_TYPE_WIN_PET_BATTLE:
- return "WIN_PET_BATTLE";
- case CRITERIA_TYPE_LEVEL_BATTLE_PET:
- return "LEVEL_BATTLE_PET";
- case CRITERIA_TYPE_CAPTURE_BATTLE_PET_CREDIT:
- return "CAPTURE_BATTLE_PET_CREDIT";
- case CRITERIA_TYPE_LEVEL_BATTLE_PET_CREDIT:
- return "LEVEL_BATTLE_PET_CREDIT";
- case CRITERIA_TYPE_ENTER_AREA:
- return "ENTER_AREA";
- case CRITERIA_TYPE_LEAVE_AREA:
- return "LEAVE_AREA";
- case CRITERIA_TYPE_COMPLETE_DUNGEON_ENCOUNTER:
- return "COMPLETE_DUNGEON_ENCOUNTER";
- case CRITERIA_TYPE_PLACE_GARRISON_BUILDING:
- return "PLACE_GARRISON_BUILDING";
- case CRITERIA_TYPE_UPGRADE_GARRISON_BUILDING:
- return "UPGRADE_GARRISON_BUILDING";
- case CRITERIA_TYPE_CONSTRUCT_GARRISON_BUILDING:
- return "CONSTRUCT_GARRISON_BUILDING";
- case CRITERIA_TYPE_UPGRADE_GARRISON:
- return "UPGRADE_GARRISON";
- case CRITERIA_TYPE_START_GARRISON_MISSION:
- return "START_GARRISON_MISSION";
- case CRITERIA_TYPE_START_ORDER_HALL_MISSION:
- return "START_ORDER_HALL_MISSION";
- case CRITERIA_TYPE_COMPLETE_GARRISON_MISSION_COUNT:
- return "COMPLETE_GARRISON_MISSION_COUNT";
- case CRITERIA_TYPE_COMPLETE_GARRISON_MISSION:
- return "COMPLETE_GARRISON_MISSION";
- case CRITERIA_TYPE_RECRUIT_GARRISON_FOLLOWER_COUNT:
- return "RECRUIT_GARRISON_FOLLOWER_COUNT";
- case CRITERIA_TYPE_RECRUIT_GARRISON_FOLLOWER:
- return "RECRUIT_GARRISON_FOLLOWER";
- case CRITERIA_TYPE_LEARN_GARRISON_BLUEPRINT_COUNT:
- return "LEARN_GARRISON_BLUEPRINT_COUNT";
- case CRITERIA_TYPE_COMPLETE_GARRISON_SHIPMENT:
- return "COMPLETE_GARRISON_SHIPMENT";
- case CRITERIA_TYPE_RAISE_GARRISON_FOLLOWER_ITEM_LEVEL:
- return "RAISE_GARRISON_FOLLOWER_ITEM_LEVEL";
- case CRITERIA_TYPE_RAISE_GARRISON_FOLLOWER_LEVEL:
- return "RAISE_GARRISON_FOLLOWER_LEVEL";
- case CRITERIA_TYPE_OWN_TOY:
- return "OWN_TOY";
- case CRITERIA_TYPE_OWN_TOY_COUNT:
- return "OWN_TOY_COUNT";
- case CRITERIA_TYPE_RECRUIT_GARRISON_FOLLOWER_WITH_QUALITY:
- return "RECRUIT_GARRISON_FOLLOWER_WITH_QUALITY";
- case CRITERIA_TYPE_OWN_HEIRLOOMS:
- return "OWN_HEIRLOOMS";
- case CRITERIA_TYPE_ARTIFACT_POWER_EARNED:
- return "ARTIFACT_POWER_EARNED";
- case CRITERIA_TYPE_ARTIFACT_TRAITS_UNLOCKED:
- return "ARTIFACT_TRAITS_UNLOCKED";
- case CRITERIA_TYPE_OWN_ITEM_MODIFIED_APPEARANCE:
- return "OWN_ITEM_MODIFIED_APPEARANCE";
- case CRITERIA_TYPE_HONOR_LEVEL_REACHED:
- return "HONOR_LEVEL_REACHED";
- case CRITERIA_TYPE_PRESTIGE_REACHED:
- return "PRESTIGE_REACHED";
- case CRITERIA_TYPE_ACTIVELY_REACH_LEVEL:
- return "ACTIVELY_REACH_LEVEL";
- case CRITERIA_TYPE_ORDER_HALL_TALENT_LEARNED:
- return "ORDER_HALL_TALENT_LEARNED";
- case CRITERIA_TYPE_APPEARANCE_UNLOCKED_BY_SLOT:
- return "APPEARANCE_UNLOCKED_BY_SLOT";
- case CRITERIA_TYPE_ORDER_HALL_RECRUIT_TROOP:
- return "ORDER_HALL_RECRUIT_TROOP";
- case CRITERIA_TYPE_COMPLETE_WORLD_QUEST:
- return "COMPLETE_WORLD_QUEST";
- case CRITERIA_TYPE_TRANSMOG_SET_UNLOCKED:
- return "TRANSMOG_SET_UNLOCKED";
- case CRITERIA_TYPE_GAIN_PARAGON_REPUTATION:
- return "GAIN_PARAGON_REPUTATION";
- case CRITERIA_TYPE_EARN_HONOR_XP:
- return "EARN_HONOR_XP";
- case CRITERIA_TYPE_RELIC_TALENT_UNLOCKED:
- return "RELIC_TALENT_UNLOCKED";
- case CRITERIA_TYPE_EXPANSION_LEVEL:
- return "EXPANSION_LEVEL";
- case CRITERIA_TYPE_REACH_ACCOUNT_HONOR_LEVEL:
- return "REACH_ACCOUNT_HONOR_LEVEL";
- case CRITERIA_TYPE_HEART_OF_AZEROTH_ARTIFACT_POWER_EARNED:
- return "HEART_OF_AZEROTH_ARTIFACT_POWER_EARNED";
- case CRITERIA_TYPE_HEART_OF_AZEROTH_LEVEL_REACHED:
- return "HEART_OF_AZEROTH_LEVEL_REACHED";
- case CRITERIA_TYPE_MYTHIC_KEYSTONE_COMPLETED:
- return "MYTHIC_KEYSTONE_COMPLETED";
- case CRITERIA_TYPE_COMPLETE_QUEST_ACCUMULATE:
- return "COMPLETE_QUEST_ACCUMULATE";
- case CRITERIA_TYPE_BOUGHT_ITEM_FROM_VENDOR:
- return "BOUGHT_ITEM_FROM_VENDOR";
- case CRITERIA_TYPE_SOLD_ITEM_TO_VENDOR:
- return "SOLD_ITEM_TO_VENDOR";
- case CRITERIA_TYPE_TRAVELLED_TO_AREA:
- return "TRAVELLED_TO_AREA";
- case CRITERIA_TYPE_APPLY_CONDUIT:
- return "APPLY_CONDUIT";
- case CRITERIA_TYPE_CONVERT_ITEMS_TO_CURRENCY:
- return "CONVERT_ITEMS_TO_CURRENCY";
+ case CriteriaType::KillCreature:
+ return "KillCreature";
+ case CriteriaType::WinBattleground:
+ return "WinBattleground";
+ case CriteriaType::CompleteResearchProject:
+ return "CompleteResearchProject";
+ case CriteriaType::CompleteAnyResearchProject:
+ return "CompleteAnyResearchProject";
+ case CriteriaType::FindResearchObject:
+ return "FindResearchObject";
+ case CriteriaType::ReachLevel:
+ return "ReachLevel";
+ case CriteriaType::ExhaustAnyResearchSite:
+ return "ExhaustAnyResearchSite";
+ case CriteriaType::SkillRaised:
+ return "SkillRaised";
+ case CriteriaType::EarnAchievement:
+ return "EarnAchievement";
+ case CriteriaType::CompleteQuestsCount:
+ return "CompleteQuestsCount";
+ case CriteriaType::CompleteAnyDailyQuestPerDay:
+ return "CompleteAnyDailyQuestPerDay";
+ case CriteriaType::CompleteQuestsInZone:
+ return "CompleteQuestsInZone";
+ case CriteriaType::CurrencyGained:
+ return "CurrencyGained";
+ case CriteriaType::DamageDealt:
+ return "DamageDealt";
+ case CriteriaType::CompleteDailyQuest:
+ return "CompleteDailyQuest";
+ case CriteriaType::ParticipateInBattleground:
+ return "ParticipateInBattleground";
+ case CriteriaType::DieOnMap:
+ return "DieOnMap";
+ case CriteriaType::DieAnywhere:
+ return "DieAnywhere";
+ case CriteriaType::DieInInstance:
+ return "DieInInstance";
+ case CriteriaType::RunInstance:
+ return "RunInstance";
+ case CriteriaType::KilledByCreature:
+ return "KilledByCreature";
+ case CriteriaType::CompleteInternalCriteria:
+ return "CompleteInternalCriteria";
+ case CriteriaType::CompleteAnyChallengeMode:
+ return "CompleteAnyChallengeMode";
+ case CriteriaType::KilledByPlayer:
+ return "KilledByPlayer";
+ case CriteriaType::MaxDistFallenWithoutDying:
+ return "MaxDistFallenWithoutDying";
+ case CriteriaType::EarnChallengeModeMedal:
+ return "EarnChallengeModeMedal";
+ case CriteriaType::DieFromEnviromentalDamage:
+ return "DieFromEnviromentalDamage";
+ case CriteriaType::CompleteQuest:
+ return "CompleteQuest";
+ case CriteriaType::BeSpellTarget:
+ return "BeSpellTarget";
+ case CriteriaType::CastSpell:
+ return "CastSpell";
+ case CriteriaType::TrackedWorldStateUIModified:
+ return "TrackedWorldStateUIModified";
+ case CriteriaType::PVPKillInArea:
+ return "PVPKillInArea";
+ case CriteriaType::WinArena:
+ return "WinArena";
+ case CriteriaType::ParticipateInArena:
+ return "ParticipateInArena";
+ case CriteriaType::LearnOrKnowSpell:
+ return "LearnOrKnowSpell";
+ case CriteriaType::EarnHonorableKill:
+ return "EarnHonorableKill";
+ case CriteriaType::AcquireItem:
+ return "AcquireItem";
+ case CriteriaType::WinAnyRankedArena:
+ return "WinAnyRankedArena";
+ case CriteriaType::EarnTeamArenaRating:
+ return "EarnTeamArenaRating";
+ case CriteriaType::EarnPersonalArenaRating:
+ return "EarnPersonalArenaRating";
+ case CriteriaType::AchieveSkillStep:
+ return "AchieveSkillStep";
+ case CriteriaType::UseItem:
+ return "UseItem";
+ case CriteriaType::LootItem:
+ return "LootItem";
+ case CriteriaType::RevealWorldMapOverlay:
+ return "RevealWorldMapOverlay";
+ case CriteriaType::EarnTitle:
+ return "EarnTitle";
+ case CriteriaType::BankSlotsPurchased:
+ return "BankSlotsPurchased";
+ case CriteriaType::ReputationGained:
+ return "ReputationGained";
+ case CriteriaType::TotalExaltedFactions:
+ return "TotalExaltedFactions";
+ case CriteriaType::GotHaircut:
+ return "GotHaircut";
+ case CriteriaType::EquipItemInSlot:
+ return "EquipItemInSlot";
+ case CriteriaType::RollNeed:
+ return "RollNeed";
+ case CriteriaType::RollGreed:
+ return "RollGreed";
+ case CriteriaType::DeliverKillingBlowToClass:
+ return "DeliverKillingBlowToClass";
+ case CriteriaType::DeliverKillingBlowToRace:
+ return "DeliverKillingBlowToRace";
+ case CriteriaType::DoEmote:
+ return "DoEmote";
+ case CriteriaType::HealingDone:
+ return "HealingDone";
+ case CriteriaType::DeliveredKillingBlow:
+ return "DeliveredKillingBlow";
+ case CriteriaType::EquipItem:
+ return "EquipItem";
+ case CriteriaType::CompleteQuestsInSort:
+ return "CompleteQuestsInSort";
+ case CriteriaType::MoneyEarnedFromSales:
+ return "MoneyEarnedFromSales";
+ case CriteriaType::MoneySpentOnRespecs:
+ return "MoneySpentOnRespecs";
+ case CriteriaType::TotalRespecs:
+ return "TotalRespecs";
+ case CriteriaType::MoneyEarnedFromQuesting:
+ return "MoneyEarnedFromQuesting";
+ case CriteriaType::MoneySpentOnTaxis:
+ return "MoneySpentOnTaxis";
+ case CriteriaType::KilledAllUnitsInSpawnRegion:
+ return "KilledAllUnitsInSpawnRegion";
+ case CriteriaType::MoneySpentAtBarberShop:
+ return "MoneySpentAtBarberShop";
+ case CriteriaType::MoneySpentOnPostage:
+ return "MoneySpentOnPostage";
+ case CriteriaType::MoneyLootedFromCreatures:
+ return "MoneyLootedFromCreatures";
+ case CriteriaType::UseGameobject:
+ return "UseGameobject";
+ case CriteriaType::GainAura:
+ return "GainAura";
+ case CriteriaType::KillPlayer:
+ return "KillPlayer";
+ case CriteriaType::CompleteChallengeMode:
+ return "CompleteChallengeMode";
+ case CriteriaType::CatchFishInFishingHole:
+ return "CatchFishInFishingHole";
+ case CriteriaType::PlayerTriggerGameEvent:
+ return "PlayerTriggerGameEvent";
+ case CriteriaType::Login:
+ return "Login";
+ case CriteriaType::LearnSpellFromSkillLine:
+ return "LearnSpellFromSkillLine";
+ case CriteriaType::WinDuel:
+ return "WinDuel";
+ case CriteriaType::LoseDuel:
+ return "LoseDuel";
+ case CriteriaType::KillAnyCreature:
+ return "KillAnyCreature";
+ case CriteriaType::CreatedItemsByCastingSpellWithLimit:
+ return "CreatedItemsByCastingSpellWithLimit";
+ case CriteriaType::MoneyEarnedFromAuctions:
+ return "MoneyEarnedFromAuctions";
+ case CriteriaType::BattlePetAchievementPointsEarned:
+ return "BattlePetAchievementPointsEarned";
+ case CriteriaType::ItemsPostedAtAuction:
+ return "ItemsPostedAtAuction";
+ case CriteriaType::HighestAuctionBid:
+ return "HighestAuctionBid";
+ case CriteriaType::AuctionsWon:
+ return "AuctionsWon";
+ case CriteriaType::HighestAuctionSale:
+ return "HighestAuctionSale";
+ case CriteriaType::MostMoneyOwned:
+ return "MostMoneyOwned";
+ case CriteriaType::TotalReveredFactions:
+ return "TotalReveredFactions";
+ case CriteriaType::TotalHonoredFactions:
+ return "TotalHonoredFactions";
+ case CriteriaType::TotalFactionsEncountered:
+ return "TotalFactionsEncountered";
+ case CriteriaType::LootAnyItem:
+ return "LootAnyItem";
+ case CriteriaType::ObtainAnyItem:
+ return "ObtainAnyItem";
+ case CriteriaType::AnyoneTriggerGameEventScenario:
+ return "AnyoneTriggerGameEventScenario";
+ case CriteriaType::RollAnyNeed:
+ return "RollAnyNeed";
+ case CriteriaType::RollAnyGreed:
+ return "RollAnyGreed";
+ case CriteriaType::ReleasedSpirit:
+ return "ReleasedSpirit";
+ case CriteriaType::AccountKnownPet:
+ return "AccountKnownPet";
+ case CriteriaType::DefeatDungeonEncounterWhileElegibleForLoot:
+ return "DefeatDungeonEncounterWhileElegibleForLoot";
+ case CriteriaType::HighestDamageDone:
+ return "HighestDamageDone";
+ case CriteriaType::HighestDamageTaken:
+ return "HighestDamageTaken";
+ case CriteriaType::TotalDamageTaken:
+ return "TotalDamageTaken";
+ case CriteriaType::HighestHealCast:
+ return "HighestHealCast";
+ case CriteriaType::TotalHealReceived:
+ return "TotalHealReceived";
+ case CriteriaType::HighestHealReceived:
+ return "HighestHealReceived";
+ case CriteriaType::AbandonAnyQuest:
+ return "AbandonAnyQuest";
+ case CriteriaType::BuyTaxi:
+ return "BuyTaxi";
+ case CriteriaType::GetLootByType:
+ return "GetLootByType";
+ case CriteriaType::LandTargetedSpellOnTarget:
+ return "LandTargetedSpellOnTarget";
+ case CriteriaType::LearnTradeskillSkillLine:
+ return "LearnTradeskillSkillLine";
+ case CriteriaType::HonorableKills:
+ return "HonorableKills";
+ case CriteriaType::AcceptSummon:
+ return "AcceptSummon";
+ case CriteriaType::EarnAchievementPoints:
+ return "EarnAchievementPoints";
+ case CriteriaType::RollDisenchant:
+ return "RollDisenchant";
+ case CriteriaType::RollAnyDisenchant:
+ return "RollAnyDisenchant";
+ case CriteriaType::CompletedLFGDungeon:
+ return "CompletedLFGDungeon";
+ case CriteriaType::CompletedLFGDungeonWithStrangers:
+ return "CompletedLFGDungeonWithStrangers";
+ case CriteriaType::KickInitiatorInLFGDungeon:
+ return "KickInitiatorInLFGDungeon";
+ case CriteriaType::KickVoterInLFGDungeon:
+ return "KickVoterInLFGDungeon";
+ case CriteriaType::KickTargetInLFGDungeon:
+ return "KickTargetInLFGDungeon";
+ case CriteriaType::AbandonedLFGDungeon:
+ return "AbandonedLFGDungeon";
+ case CriteriaType::MoneySpentOnGuildRepair:
+ return "MoneySpentOnGuildRepair";
+ case CriteriaType::GuildAttainedLevel:
+ return "GuildAttainedLevel";
+ case CriteriaType::CreatedItemsByCastingSpell:
+ return "CreatedItemsByCastingSpell";
+ case CriteriaType::FishInAnyPool:
+ return "FishInAnyPool";
+ case CriteriaType::GuildBankTabsPurchased:
+ return "GuildBankTabsPurchased";
+ case CriteriaType::EarnGuildAchievementPoints:
+ return "EarnGuildAchievementPoints";
+ case CriteriaType::WinAnyBattleground:
+ return "WinAnyBattleground";
+ case CriteriaType::ParticipateInAnyBattleground:
+ return "ParticipateInAnyBattleground";
+ case CriteriaType::EarnBattlegroundRating:
+ return "EarnBattlegroundRating";
+ case CriteriaType::GuildTabardCreated:
+ return "GuildTabardCreated";
+ case CriteriaType::CompleteQuestsCountForGuild:
+ return "CompleteQuestsCountForGuild";
+ case CriteriaType::HonorableKillsForGuild:
+ return "HonorableKillsForGuild";
+ case CriteriaType::KillAnyCreatureForGuild:
+ return "KillAnyCreatureForGuild";
+ case CriteriaType::GroupedTankLeftEarlyInLFGDungeon:
+ return "GroupedTankLeftEarlyInLFGDungeon";
+ case CriteriaType::CompleteGuildChallenge:
+ return "CompleteGuildChallenge";
+ case CriteriaType::CompleteAnyGuildChallenge:
+ return "CompleteAnyGuildChallenge";
+ case CriteriaType::MarkedAFKInBattleground:
+ return "MarkedAFKInBattleground";
+ case CriteriaType::RemovedAFKInBattleground:
+ return "RemovedAFKInBattleground";
+ case CriteriaType::StartAnyBattleground:
+ return "StartAnyBattleground";
+ case CriteriaType::CompleteAnyBattleground:
+ return "CompleteAnyBattleground";
+ case CriteriaType::MarkedSomeoneAFKInBattleground:
+ return "MarkedSomeoneAFKInBattleground";
+ case CriteriaType::CompletedLFRDungeon:
+ return "CompletedLFRDungeon";
+ case CriteriaType::AbandonedLFRDungeon:
+ return "AbandonedLFRDungeon";
+ case CriteriaType::KickInitiatorInLFRDungeon:
+ return "KickInitiatorInLFRDungeon";
+ case CriteriaType::KickVoterInLFRDungeon:
+ return "KickVoterInLFRDungeon";
+ case CriteriaType::KickTargetInLFRDungeon:
+ return "KickTargetInLFRDungeon";
+ case CriteriaType::GroupedTankLeftEarlyInLFRDungeon:
+ return "GroupedTankLeftEarlyInLFRDungeon";
+ case CriteriaType::CompleteAnyScenario:
+ return "CompleteAnyScenario";
+ case CriteriaType::CompleteScenario:
+ return "CompleteScenario";
+ case CriteriaType::EnterAreaTriggerWithActionSet:
+ return "EnterAreaTriggerWithActionSet";
+ case CriteriaType::LeaveAreaTriggerWithActionSet:
+ return "LeaveAreaTriggerWithActionSet";
+ case CriteriaType::LearnedNewPet:
+ return "LearnedNewPet";
+ case CriteriaType::UniquePetsOwned:
+ return "UniquePetsOwned";
+ case CriteriaType::AccountObtainPetThroughBattle:
+ return "AccountObtainPetThroughBattle";
+ case CriteriaType::WinPetBattle:
+ return "WinPetBattle";
+ case CriteriaType::LosePetBattle:
+ return "LosePetBattle";
+ case CriteriaType::BattlePetReachLevel:
+ return "BattlePetReachLevel";
+ case CriteriaType::PlayerObtainPetThroughBattle:
+ return "PlayerObtainPetThroughBattle";
+ case CriteriaType::ActivelyEarnPetLevel:
+ return "ActivelyEarnPetLevel";
+ case CriteriaType::EnterArea:
+ return "EnterArea";
+ case CriteriaType::LeaveArea:
+ return "LeaveArea";
+ case CriteriaType::DefeatDungeonEncounter:
+ return "DefeatDungeonEncounter";
+ case CriteriaType::PlaceAnyGarrisonBuilding:
+ return "PlaceAnyGarrisonBuilding";
+ case CriteriaType::PlaceGarrisonBuilding:
+ return "PlaceGarrisonBuilding";
+ case CriteriaType::ActivateAnyGarrisonBuilding:
+ return "ActivateAnyGarrisonBuilding";
+ case CriteriaType::ActivateGarrisonBuilding:
+ return "ActivateGarrisonBuilding";
+ case CriteriaType::UpgradeGarrison:
+ return "UpgradeGarrison";
+ case CriteriaType::StartAnyGarrisonMissionWithFollowerType:
+ return "StartAnyGarrisonMissionWithFollowerType";
+ case CriteriaType::StartGarrisonMission:
+ return "StartGarrisonMission";
+ case CriteriaType::SucceedAnyGarrisonMissionWithFollowerType:
+ return "SucceedAnyGarrisonMissionWithFollowerType";
+ case CriteriaType::SucceedGarrisonMission:
+ return "SucceedGarrisonMission";
+ case CriteriaType::RecruitAnyGarrisonFollower:
+ return "RecruitAnyGarrisonFollower";
+ case CriteriaType::RecruitGarrisonFollower:
+ return "RecruitGarrisonFollower";
+ case CriteriaType::AcquireGarrison:
+ return "AcquireGarrison";
+ case CriteriaType::LearnAnyGarrisonBlueprint:
+ return "LearnAnyGarrisonBlueprint";
+ case CriteriaType::LearnGarrisonBlueprint:
+ return "LearnGarrisonBlueprint";
+ case CriteriaType::LearnAnyGarrisonSpecialization:
+ return "LearnAnyGarrisonSpecialization";
+ case CriteriaType::LearnGarrisonSpecialization:
+ return "LearnGarrisonSpecialization";
+ case CriteriaType::CollectGarrisonShipment:
+ return "CollectGarrisonShipment";
+ case CriteriaType::ItemLevelChangedForGarrisonFollower:
+ return "ItemLevelChangedForGarrisonFollower";
+ case CriteriaType::LevelChangedForGarrisonFollower:
+ return "LevelChangedForGarrisonFollower";
+ case CriteriaType::LearnToy:
+ return "LearnToy";
+ case CriteriaType::LearnAnyToy:
+ return "LearnAnyToy";
+ case CriteriaType::QualityUpgradedForGarrisonFollower:
+ return "QualityUpgradedForGarrisonFollower";
+ case CriteriaType::LearnHeirloom:
+ return "LearnHeirloom";
+ case CriteriaType::LearnAnyHeirloom:
+ return "LearnAnyHeirloom";
+ case CriteriaType::EarnArtifactXP:
+ return "EarnArtifactXP";
+ case CriteriaType::AnyArtifactPowerRankPurchased:
+ return "AnyArtifactPowerRankPurchased";
+ case CriteriaType::LearnTransmog:
+ return "LearnTransmog";
+ case CriteriaType::LearnAnyTransmog:
+ return "LearnAnyTransmog";
+ case CriteriaType::HonorLevelIncrease:
+ return "HonorLevelIncrease";
+ case CriteriaType::PrestigeLevelIncrease:
+ return "PrestigeLevelIncrease";
+ case CriteriaType::ActivelyReachLevel:
+ return "ActivelyReachLevel";
+ case CriteriaType::CompleteResearchAnyGarrisonTalent:
+ return "CompleteResearchAnyGarrisonTalent";
+ case CriteriaType::CompleteResearchGarrisonTalent:
+ return "CompleteResearchGarrisonTalent";
+ case CriteriaType::LearnAnyTransmogInSlot:
+ return "LearnAnyTransmogInSlot";
+ case CriteriaType::RecruitAnyGarrisonTroop:
+ return "RecruitAnyGarrisonTroop";
+ case CriteriaType::StartResearchAnyGarrisonTalent:
+ return "StartResearchAnyGarrisonTalent";
+ case CriteriaType::StartResearchGarrisonTalent:
+ return "StartResearchGarrisonTalent";
+ case CriteriaType::CompleteAnyWorldQuest:
+ return "CompleteAnyWorldQuest";
+ case CriteriaType::EarnLicense:
+ return "EarnLicense";
+ case CriteriaType::CollectTransmogSetFromGroup:
+ return "CollectTransmogSetFromGroup";
+ case CriteriaType::ParagonLevelIncreaseWithFaction:
+ return "ParagonLevelIncreaseWithFaction";
+ case CriteriaType::PlayerHasEarnedHonor:
+ return "PlayerHasEarnedHonor";
+ case CriteriaType::KillCreatureScenario:
+ return "KillCreatureScenario";
+ case CriteriaType::ArtifactPowerRankPurchased:
+ return "ArtifactPowerRankPurchased";
+ case CriteriaType::ChooseAnyRelicTalent:
+ return "ChooseAnyRelicTalent";
+ case CriteriaType::ChooseRelicTalent:
+ return "ChooseRelicTalent";
+ case CriteriaType::EarnExpansionLevel:
+ return "EarnExpansionLevel";
+ case CriteriaType::AccountHonorLevelReached:
+ return "AccountHonorLevelReached";
+ case CriteriaType::EarnArtifactXPForAzeriteItem:
+ return "EarnArtifactXPForAzeriteItem";
+ case CriteriaType::AzeriteLevelReached:
+ return "AzeriteLevelReached";
+ case CriteriaType::MythicPlusCompleted:
+ return "MythicPlusCompleted";
+ case CriteriaType::ScenarioGroupCompleted:
+ return "ScenarioGroupCompleted";
+ case CriteriaType::CompleteAnyReplayQuest:
+ return "CompleteAnyReplayQuest";
+ case CriteriaType::BuyItemsFromVendors:
+ return "BuyItemsFromVendors";
+ case CriteriaType::SellItemsToVendors:
+ return "SellItemsToVendors";
+ case CriteriaType::ReachMaxLevel:
+ return "ReachMaxLevel";
+ case CriteriaType::MemorizeSpell:
+ return "MemorizeSpell";
+ case CriteriaType::LearnTransmogIllusion:
+ return "LearnTransmogIllusion";
+ case CriteriaType::LearnAnyTransmogIllusion:
+ return "LearnAnyTransmogIllusion";
+ case CriteriaType::EnterTopLevelArea:
+ return "EnterTopLevelArea";
+ case CriteriaType::LeaveTopLevelArea:
+ return "LeaveTopLevelArea";
+ case CriteriaType::SocketGarrisonTalent:
+ return "SocketGarrisonTalent";
+ case CriteriaType::SocketAnySoulbindConduit:
+ return "SocketAnySoulbindConduit";
+ case CriteriaType::ObtainAnyItemWithCurrencyValue:
+ return "ObtainAnyItemWithCurrencyValue";
+ case CriteriaType::MythicPlusRatingAttained:
+ return "MythicPlusRatingAttained";
+ case CriteriaType::SpentTalentPoint:
+ return "SpentTalentPoint";
+ default:
+ return "MissingType";
}
- return "MISSING_TYPE";
}
CriteriaMgr* CriteriaMgr::Instance()
@@ -4161,41 +4234,41 @@ CriteriaMgr* CriteriaMgr::Instance()
namespace
{
-inline bool IsCriteriaTypeStoredByAsset(CriteriaTypes type)
+inline bool IsCriteriaTypeStoredByAsset(CriteriaType type)
{
switch (type)
{
- case CRITERIA_TYPE_KILL_CREATURE:
- case CRITERIA_TYPE_WIN_BG:
- case CRITERIA_TYPE_REACH_SKILL_LEVEL:
- case CRITERIA_TYPE_COMPLETE_ACHIEVEMENT:
- case CRITERIA_TYPE_COMPLETE_QUESTS_IN_ZONE:
- case CRITERIA_TYPE_COMPLETE_BATTLEGROUND:
- case CRITERIA_TYPE_KILLED_BY_CREATURE:
- case CRITERIA_TYPE_COMPLETE_QUEST:
- case CRITERIA_TYPE_BE_SPELL_TARGET:
- case CRITERIA_TYPE_CAST_SPELL:
- case CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE:
- case CRITERIA_TYPE_HONORABLE_KILL_AT_AREA:
- case CRITERIA_TYPE_LEARN_SPELL:
- case CRITERIA_TYPE_OWN_ITEM:
- case CRITERIA_TYPE_LEARN_SKILL_LEVEL:
- case CRITERIA_TYPE_USE_ITEM:
- case CRITERIA_TYPE_LOOT_ITEM:
- case CRITERIA_TYPE_EXPLORE_AREA:
- case CRITERIA_TYPE_GAIN_REPUTATION:
- case CRITERIA_TYPE_EQUIP_ITEM_IN_SLOT:
- case CRITERIA_TYPE_HK_CLASS:
- case CRITERIA_TYPE_HK_RACE:
- case CRITERIA_TYPE_DO_EMOTE:
- case CRITERIA_TYPE_EQUIP_ITEM:
- case CRITERIA_TYPE_USE_GAMEOBJECT:
- case CRITERIA_TYPE_BE_SPELL_TARGET2:
- case CRITERIA_TYPE_FISH_IN_GAMEOBJECT:
- case CRITERIA_TYPE_LEARN_SKILLLINE_SPELLS:
- case CRITERIA_TYPE_LOOT_TYPE:
- case CRITERIA_TYPE_CAST_SPELL2:
- case CRITERIA_TYPE_LEARN_SKILL_LINE:
+ case CriteriaType::KillCreature:
+ case CriteriaType::WinBattleground:
+ case CriteriaType::SkillRaised:
+ case CriteriaType::EarnAchievement:
+ case CriteriaType::CompleteQuestsInZone:
+ case CriteriaType::ParticipateInBattleground:
+ case CriteriaType::KilledByCreature:
+ case CriteriaType::CompleteQuest:
+ case CriteriaType::BeSpellTarget:
+ case CriteriaType::CastSpell:
+ case CriteriaType::TrackedWorldStateUIModified:
+ case CriteriaType::PVPKillInArea:
+ case CriteriaType::LearnOrKnowSpell:
+ case CriteriaType::AcquireItem:
+ case CriteriaType::AchieveSkillStep:
+ case CriteriaType::UseItem:
+ case CriteriaType::LootItem:
+ case CriteriaType::RevealWorldMapOverlay:
+ case CriteriaType::ReputationGained:
+ case CriteriaType::EquipItemInSlot:
+ case CriteriaType::DeliverKillingBlowToClass:
+ case CriteriaType::DeliverKillingBlowToRace:
+ case CriteriaType::DoEmote:
+ case CriteriaType::EquipItem:
+ case CriteriaType::UseGameobject:
+ case CriteriaType::GainAura:
+ case CriteriaType::CatchFishInFishingHole:
+ case CriteriaType::LearnSpellFromSkillLine:
+ case CriteriaType::GetLootByType:
+ case CriteriaType::LandTargetedSpellOnTarget:
+ case CriteriaType::LearnTradeskillSkillLine:
return true;
default:
break;
@@ -4204,16 +4277,16 @@ inline bool IsCriteriaTypeStoredByAsset(CriteriaTypes type)
}
}
-CriteriaList const& CriteriaMgr::GetPlayerCriteriaByType(CriteriaTypes type, uint32 asset) const
+CriteriaList const& CriteriaMgr::GetPlayerCriteriaByType(CriteriaType type, uint32 asset) const
{
if (asset && IsCriteriaTypeStoredByAsset(type))
{
- auto itr = _criteriasByAsset[type].find(asset);
- if (itr != _criteriasByAsset[type].end())
+ auto itr = _criteriasByAsset[size_t(type)].find(asset);
+ if (itr != _criteriasByAsset[size_t(type)].end())
return itr->second;
}
- return _criteriasByType[type];
+ return _criteriasByType[size_t(type)];
}
//==========================================================
@@ -4346,8 +4419,8 @@ void CriteriaMgr::LoadCriteriaList()
uint32 questObjectiveCriterias = 0;
for (CriteriaEntry const* criteriaEntry : sCriteriaStore)
{
- ASSERT(criteriaEntry->Type < CRITERIA_TYPE_TOTAL, "CRITERIA_TYPE_TOTAL must be greater than or equal to %u but is currently equal to %u",
- criteriaEntry->Type + 1, CRITERIA_TYPE_TOTAL);
+ ASSERT(criteriaEntry->Type < uint8(CriteriaType::Count), "CRITERIA_TYPE_TOTAL must be greater than or equal to %u but is currently equal to %u",
+ criteriaEntry->Type + 1, uint32(CriteriaType::Count));
ASSERT(criteriaEntry->StartEvent < uint8(CriteriaStartEvent::Count), "CriteriaStartEvent::Count must be greater than or equal to %u but is currently equal to %u",
criteriaEntry->StartEvent + 1, uint32(CriteriaStartEvent::Count));
ASSERT(criteriaEntry->FailEvent < uint8(CriteriaFailEvent::Count), "CriteriaFailEvent::Count must be greater than or equal to %u but is currently equal to %u",
@@ -4387,9 +4460,9 @@ void CriteriaMgr::LoadCriteriaList()
{
++criterias;
_criteriasByType[criteriaEntry->Type].push_back(criteria);
- if (IsCriteriaTypeStoredByAsset(CriteriaTypes(criteriaEntry->Type)))
+ if (IsCriteriaTypeStoredByAsset(CriteriaType(criteriaEntry->Type)))
{
- if (criteriaEntry->Type != CRITERIA_TYPE_EXPLORE_AREA)
+ if (CriteriaType(criteriaEntry->Type) != CriteriaType::RevealWorldMapOverlay)
_criteriasByAsset[criteriaEntry->Type][criteriaEntry->Asset.ID].push_back(criteria);
else
{
diff --git a/src/server/game/Achievements/CriteriaHandler.h b/src/server/game/Achievements/CriteriaHandler.h
index 1d4dca27813..51a962a6dcb 100644
--- a/src/server/game/Achievements/CriteriaHandler.h
+++ b/src/server/game/Achievements/CriteriaHandler.h
@@ -271,7 +271,7 @@ public:
virtual void Reset();
- void UpdateCriteria(CriteriaTypes type, uint64 miscValue1 = 0, uint64 miscValue2 = 0, uint64 miscValue3 = 0, WorldObject const* ref = nullptr, Player* referencePlayer = nullptr);
+ void UpdateCriteria(CriteriaType type, uint64 miscValue1 = 0, uint64 miscValue2 = 0, uint64 miscValue3 = 0, WorldObject const* ref = nullptr, Player* referencePlayer = nullptr);
virtual void SendAllData(Player const* receiver) const = 0;
@@ -305,7 +305,7 @@ protected:
bool ModifierSatisfied(ModifierTreeEntry const* modifier, uint64 miscValue1, uint64 miscValue2, WorldObject const* ref, Player* referencePlayer) const;
virtual std::string GetOwnerInfo() const = 0;
- virtual CriteriaList const& GetCriteriaByType(CriteriaTypes type, uint32 asset) const = 0;
+ virtual CriteriaList const& GetCriteriaByType(CriteriaType type, uint32 asset) const = 0;
CriteriaProgressMap _criteriaProgress;
std::map<uint32, uint32 /*ms time left*/> _timeCriteriaTrees;
@@ -317,26 +317,26 @@ class TC_GAME_API CriteriaMgr
~CriteriaMgr();
public:
- static char const* GetCriteriaTypeString(CriteriaTypes type);
+ static char const* GetCriteriaTypeString(CriteriaType type);
static char const* GetCriteriaTypeString(uint32 type);
static CriteriaMgr* Instance();
- CriteriaList const& GetPlayerCriteriaByType(CriteriaTypes type, uint32 asset) const;
+ CriteriaList const& GetPlayerCriteriaByType(CriteriaType type, uint32 asset) const;
- CriteriaList const& GetGuildCriteriaByType(CriteriaTypes type) const
+ CriteriaList const& GetGuildCriteriaByType(CriteriaType type) const
{
- return _guildCriteriasByType[type];
+ return _guildCriteriasByType[size_t(type)];
}
- CriteriaList const& GetScenarioCriteriaByType(CriteriaTypes type) const
+ CriteriaList const& GetScenarioCriteriaByType(CriteriaType type) const
{
- return _scenarioCriteriasByType[type];
+ return _scenarioCriteriasByType[size_t(type)];
}
- CriteriaList const& GetQuestObjectiveCriteriaByType(CriteriaTypes type) const
+ CriteriaList const& GetQuestObjectiveCriteriaByType(CriteriaType type) const
{
- return _questObjectiveCriteriasByType[type];
+ return _questObjectiveCriteriasByType[size_t(type)];
}
CriteriaTreeList const* GetCriteriaTreesByCriteria(uint32 criteriaId) const
@@ -362,16 +362,16 @@ public:
return iter != _criteriaDataMap.end() ? &iter->second : nullptr;
}
- static bool IsGroupCriteriaType(CriteriaTypes type)
+ static bool IsGroupCriteriaType(CriteriaType type)
{
switch (type)
{
- case CRITERIA_TYPE_KILL_CREATURE:
- case CRITERIA_TYPE_WIN_BG:
- case CRITERIA_TYPE_BE_SPELL_TARGET: // NYI
- case CRITERIA_TYPE_WIN_RATED_ARENA:
- case CRITERIA_TYPE_BE_SPELL_TARGET2: // NYI
- case CRITERIA_TYPE_WIN_RATED_BATTLEGROUND: // NYI
+ case CriteriaType::KillCreature:
+ case CriteriaType::WinBattleground:
+ case CriteriaType::BeSpellTarget: // NYI
+ case CriteriaType::WinAnyRankedArena:
+ case CriteriaType::GainAura: // NYI
+ case CriteriaType::WinAnyBattleground: // NYI
return true;
default:
break;
@@ -406,11 +406,11 @@ private:
std::unordered_map<uint32, CriteriaTreeList> _criteriaTreeByCriteria;
// store criterias by type to speed up lookup
- CriteriaList _criteriasByType[CRITERIA_TYPE_TOTAL];
- CriteriaListByAsset _criteriasByAsset[CRITERIA_TYPE_TOTAL];
- CriteriaList _guildCriteriasByType[CRITERIA_TYPE_TOTAL];
- CriteriaList _scenarioCriteriasByType[CRITERIA_TYPE_TOTAL];
- CriteriaList _questObjectiveCriteriasByType[CRITERIA_TYPE_TOTAL];
+ CriteriaList _criteriasByType[size_t(CriteriaType::Count)];
+ CriteriaListByAsset _criteriasByAsset[size_t(CriteriaType::Count)];
+ CriteriaList _guildCriteriasByType[size_t(CriteriaType::Count)];
+ CriteriaList _scenarioCriteriasByType[size_t(CriteriaType::Count)];
+ CriteriaList _questObjectiveCriteriasByType[size_t(CriteriaType::Count)];
CriteriaList _criteriasByTimedType[size_t(CriteriaStartEvent::Count)];
std::unordered_map<int32, CriteriaList> _criteriasByFailEvent[size_t(CriteriaFailEvent::Count)];
diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
index 6dbd0aab744..7237deb2493 100644
--- a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
+++ b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
@@ -1767,8 +1767,8 @@ bool AuctionHouseObject::BuyCommodity(CharacterDatabaseTransaction trans, Player
if (Player* owner = ObjectAccessor::FindConnectedPlayer(auction->Owner))
{
- owner->UpdateCriteria(CRITERIA_TYPE_GOLD_EARNED_BY_AUCTIONS, profit);
- owner->UpdateCriteria(CRITERIA_TYPE_HIGHEST_AUCTION_SOLD, profit);
+ owner->UpdateCriteria(CriteriaType::MoneyEarnedFromAuctions, profit);
+ owner->UpdateCriteria(CriteriaType::HighestAuctionSale, profit);
owner->GetSession()->SendAuctionClosedNotification(auction, (float)sWorld->getIntConfig(CONFIG_MAIL_DELIVERY_DELAY), true);
}
@@ -1909,7 +1909,7 @@ void AuctionHouseObject::SendAuctionWon(AuctionPosting const* auction, Player* b
bidder->SendDirectMessage(packet.Write());
// FIXME: for offline player need also
- bidder->UpdateCriteria(CRITERIA_TYPE_WON_AUCTIONS, 1);
+ bidder->UpdateCriteria(CriteriaType::AuctionsWon, 1);
}
mail.SendMailTo(trans, MailReceiver(bidder, auction->Bidder), this, MAIL_CHECK_MASK_COPIED);
@@ -1937,8 +1937,8 @@ void AuctionHouseObject::SendAuctionSold(AuctionPosting const* auction, Player*
//FIXME: what do if owner offline
if (owner)
{
- owner->UpdateCriteria(CRITERIA_TYPE_GOLD_EARNED_BY_AUCTIONS, profit);
- owner->UpdateCriteria(CRITERIA_TYPE_HIGHEST_AUCTION_SOLD, auction->BidAmount);
+ owner->UpdateCriteria(CriteriaType::MoneyEarnedFromAuctions, profit);
+ owner->UpdateCriteria(CriteriaType::HighestAuctionSale, auction->BidAmount);
//send auction owner notification, bidder must be current!
owner->GetSession()->SendAuctionClosedNotification(auction, (float)sWorld->getIntConfig(CONFIG_MAIL_DELIVERY_DELAY), true);
}
diff --git a/src/server/game/BattlePets/BattlePetMgr.cpp b/src/server/game/BattlePets/BattlePetMgr.cpp
index 5fd954f931f..55531bf20fa 100644
--- a/src/server/game/BattlePets/BattlePetMgr.cpp
+++ b/src/server/game/BattlePets/BattlePetMgr.cpp
@@ -334,7 +334,7 @@ void BattlePetMgr::AddPet(uint32 species, uint32 creatureId, uint16 breed, uint8
updates.push_back(std::ref(pet));
SendUpdates(std::move(updates), true);
- _owner->GetPlayer()->UpdateCriteria(CRITERIA_TYPE_OWN_BATTLE_PET, species);
+ _owner->GetPlayer()->UpdateCriteria(CriteriaType::LearnedNewPet, species);
}
void BattlePetMgr::RemovePet(ObjectGuid guid)
diff --git a/src/server/game/Battlegrounds/Arena.cpp b/src/server/game/Battlegrounds/Arena.cpp
index 344535ba19f..79c589ef0bd 100644
--- a/src/server/game/Battlegrounds/Arena.cpp
+++ b/src/server/game/Battlegrounds/Arena.cpp
@@ -249,8 +249,8 @@ void Arena::EndBattleground(uint32 winner)
{
// update achievement BEFORE personal rating update
uint32 rating = player->GetArenaPersonalRating(winnerArenaTeam->GetSlot());
- player->UpdateCriteria(CRITERIA_TYPE_WIN_RATED_ARENA, rating ? rating : 1);
- player->UpdateCriteria(CRITERIA_TYPE_WIN_ARENA, GetMapId());
+ player->UpdateCriteria(CriteriaType::WinAnyRankedArena, rating ? rating : 1);
+ player->UpdateCriteria(CriteriaType::WinArena, GetMapId());
// Last standing - Rated 5v5 arena & be solely alive player
if (GetArenaType() == ARENA_TYPE_5v5 && aliveWinners == 1 && player->IsAlive())
@@ -261,7 +261,7 @@ void Arena::EndBattleground(uint32 winner)
guildAwarded = true;
if (ObjectGuid::LowType guildId = GetBgMap()->GetOwnerGuildId(player->GetBGTeam()))
if (Guild* guild = sGuildMgr->GetGuildById(guildId))
- guild->UpdateCriteria(CRITERIA_TYPE_WIN_RATED_ARENA, std::max<uint32>(winnerArenaTeam->GetRating(), 1), 0, 0, nullptr, player);
+ guild->UpdateCriteria(CriteriaType::WinAnyRankedArena, std::max<uint32>(winnerArenaTeam->GetRating(), 1), 0, 0, nullptr, player);
}
winnerArenaTeam->MemberWon(player, loserMatchmakerRating, winnerMatchmakerChange);
diff --git a/src/server/game/Battlegrounds/ArenaTeam.cpp b/src/server/game/Battlegrounds/ArenaTeam.cpp
index 3a087bd1fdd..c8b5aad4f17 100644
--- a/src/server/game/Battlegrounds/ArenaTeam.cpp
+++ b/src/server/game/Battlegrounds/ArenaTeam.cpp
@@ -444,7 +444,7 @@ void ArenaTeamMember::ModifyPersonalRating(Player* player, int32 mod, uint32 typ
if (player)
{
player->SetArenaTeamInfoField(ArenaTeam::GetSlotByType(type), ARENA_TEAM_PERSONAL_RATING, PersonalRating);
- player->UpdateCriteria(CRITERIA_TYPE_HIGHEST_PERSONAL_RATING, PersonalRating, type);
+ player->UpdateCriteria(CriteriaType::EarnPersonalArenaRating, PersonalRating, type);
}
}
@@ -605,7 +605,7 @@ void ArenaTeam::FinishGame(int32 mod)
// Check if rating related achivements are met
for (MemberList::iterator itr = Members.begin(); itr != Members.end(); ++itr)
if (Player* member = ObjectAccessor::FindConnectedPlayer(itr->Guid))
- member->UpdateCriteria(CRITERIA_TYPE_HIGHEST_TEAM_RATING, Stats.Rating, Type);
+ member->UpdateCriteria(CriteriaType::EarnTeamArenaRating, Stats.Rating, Type);
}
// Update number of games played per season or week
diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp
index 25a9f200606..6fbed319b01 100644
--- a/src/server/game/Battlegrounds/Battleground.cpp
+++ b/src/server/game/Battlegrounds/Battleground.cpp
@@ -818,14 +818,14 @@ void Battleground::EndBattleground(uint32 winner)
// TODO: loss honor xp
}
- player->UpdateCriteria(CRITERIA_TYPE_WIN_BG, player->GetMapId());
+ player->UpdateCriteria(CriteriaType::WinBattleground, player->GetMapId());
if (!guildAwarded)
{
guildAwarded = true;
if (ObjectGuid::LowType guildId = GetBgMap()->GetOwnerGuildId(player->GetBGTeam()))
{
if (Guild* guild = sGuildMgr->GetGuildById(guildId))
- guild->UpdateCriteria(CRITERIA_TYPE_WIN_BG, player->GetMapId(), 0, 0, nullptr, player);
+ guild->UpdateCriteria(CriteriaType::WinBattleground, player->GetMapId(), 0, 0, nullptr, player);
}
}
}
@@ -842,7 +842,7 @@ void Battleground::EndBattleground(uint32 winner)
player->SendDirectMessage(pvpMatchComplete.GetRawPacket());
- player->UpdateCriteria(CRITERIA_TYPE_COMPLETE_BATTLEGROUND, player->GetMapId());
+ player->UpdateCriteria(CriteriaType::ParticipateInBattleground, player->GetMapId());
}
}
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp
index 0d321586147..c6e66665048 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp
@@ -683,10 +683,10 @@ bool BattlegroundAB::UpdatePlayerScore(Player* player, uint32 type, uint32 value
switch (type)
{
case SCORE_BASES_ASSAULTED:
- player->UpdateCriteria(CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE, AB_OBJECTIVE_ASSAULT_BASE);
+ player->UpdateCriteria(CriteriaType::TrackedWorldStateUIModified, AB_OBJECTIVE_ASSAULT_BASE);
break;
case SCORE_BASES_DEFENDED:
- player->UpdateCriteria(CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE, AB_OBJECTIVE_DEFEND_BASE);
+ player->UpdateCriteria(CriteriaType::TrackedWorldStateUIModified, AB_OBJECTIVE_DEFEND_BASE);
break;
default:
break;
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp
index 07fa4bbcc98..bfd5dd3028c 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp
@@ -537,16 +537,16 @@ bool BattlegroundAV::UpdatePlayerScore(Player* player, uint32 type, uint32 value
switch (type)
{
case SCORE_GRAVEYARDS_ASSAULTED:
- player->UpdateCriteria(CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE, AV_OBJECTIVE_ASSAULT_GRAVEYARD);
+ player->UpdateCriteria(CriteriaType::TrackedWorldStateUIModified, AV_OBJECTIVE_ASSAULT_GRAVEYARD);
break;
case SCORE_GRAVEYARDS_DEFENDED:
- player->UpdateCriteria(CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE, AV_OBJECTIVE_DEFEND_GRAVEYARD);
+ player->UpdateCriteria(CriteriaType::TrackedWorldStateUIModified, AV_OBJECTIVE_DEFEND_GRAVEYARD);
break;
case SCORE_TOWERS_ASSAULTED:
- player->UpdateCriteria(CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE, AV_OBJECTIVE_ASSAULT_TOWER);
+ player->UpdateCriteria(CriteriaType::TrackedWorldStateUIModified, AV_OBJECTIVE_ASSAULT_TOWER);
break;
case SCORE_TOWERS_DEFENDED:
- player->UpdateCriteria(CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE, AV_OBJECTIVE_DEFEND_TOWER);
+ player->UpdateCriteria(CriteriaType::TrackedWorldStateUIModified, AV_OBJECTIVE_DEFEND_TOWER);
break;
default:
break;
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp
index 1ed1c625c36..bffbddfeb6c 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp
@@ -847,7 +847,7 @@ bool BattlegroundEY::UpdatePlayerScore(Player* player, uint32 type, uint32 value
switch (type)
{
case SCORE_FLAG_CAPTURES:
- player->UpdateCriteria(CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE, EY_OBJECTIVE_CAPTURE_FLAG);
+ player->UpdateCriteria(CriteriaType::TrackedWorldStateUIModified, EY_OBJECTIVE_CAPTURE_FLAG);
break;
default:
break;
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
index 6c494a5602c..9c14dd3af32 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
@@ -909,7 +909,7 @@ void BattlegroundSA::TitanRelicActivated(Player* clicker)
{
if (Player* player = ObjectAccessor::FindPlayer(itr->first))
if (player->GetTeamId() == Attackers)
- player->UpdateCriteria(CRITERIA_TYPE_BE_SPELL_TARGET, 65246);
+ player->UpdateCriteria(CriteriaType::BeSpellTarget, 65246);
}
Attackers = (Attackers == TEAM_ALLIANCE) ? TEAM_HORDE : TEAM_ALLIANCE;
@@ -939,7 +939,7 @@ void BattlegroundSA::TitanRelicActivated(Player* clicker)
{
if (Player* player = ObjectAccessor::FindPlayer(itr->first))
if (player->GetTeamId() == Attackers && RoundScores[1].winner == Attackers)
- player->UpdateCriteria(CRITERIA_TYPE_BE_SPELL_TARGET, 65246);
+ player->UpdateCriteria(CriteriaType::BeSpellTarget, 65246);
}
if (RoundScores[0].time == RoundScores[1].time)
@@ -1074,10 +1074,10 @@ bool BattlegroundSA::UpdatePlayerScore(Player* player, uint32 type, uint32 value
switch (type)
{
case SCORE_DESTROYED_DEMOLISHER:
- player->UpdateCriteria(CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE, BG_SA_DEMOLISHERS_DESTROYED);
+ player->UpdateCriteria(CriteriaType::TrackedWorldStateUIModified, BG_SA_DEMOLISHERS_DESTROYED);
break;
case SCORE_DESTROYED_WALL:
- player->UpdateCriteria(CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE, BG_SA_GATES_DESTROYED);
+ player->UpdateCriteria(CriteriaType::TrackedWorldStateUIModified, BG_SA_GATES_DESTROYED);
break;
default:
break;
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp
index 677f4c9c290..5e33f441530 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp
@@ -780,10 +780,10 @@ bool BattlegroundWS::UpdatePlayerScore(Player* player, uint32 type, uint32 value
switch (type)
{
case SCORE_FLAG_CAPTURES: // flags captured
- player->UpdateCriteria(CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE, WS_OBJECTIVE_CAPTURE_FLAG);
+ player->UpdateCriteria(CriteriaType::TrackedWorldStateUIModified, WS_OBJECTIVE_CAPTURE_FLAG);
break;
case SCORE_FLAG_RETURNS: // flags returned
- player->UpdateCriteria(CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE, WS_OBJECTIVE_RETURN_FLAG);
+ player->UpdateCriteria(CriteriaType::TrackedWorldStateUIModified, WS_OBJECTIVE_RETURN_FLAG);
break;
default:
break;
diff --git a/src/server/game/DataStores/DB2Structure.h b/src/server/game/DataStores/DB2Structure.h
index a1e05e12c71..c73daf5594f 100644
--- a/src/server/game/DataStores/DB2Structure.h
+++ b/src/server/game/DataStores/DB2Structure.h
@@ -1007,174 +1007,200 @@ struct CriteriaEntry
union AssetNameAlias
{
int32 ID;
- // CRITERIA_TYPE_KILL_CREATURE = 0
- // CRITERIA_TYPE_KILLED_BY_CREATURE = 20
- // CRITERIA_TYPE_OWN_PET = 96
- // CRITERIA_TYPE_208 = 208
+ // CriteriaType::KillCreature = 0
+ // CriteriaType::KilledByCreature = 20
+ // CriteriaType::AccountKnownPet = 96
+ // CriteriaType::KillCreatureScenario = 208
int32 CreatureID;
- // CRITERIA_TYPE_WIN_BG = 1
- // CRITERIA_TYPE_COMPLETE_BATTLEGROUND = 15
- // CRITERIA_TYPE_DEATH_AT_MAP = 16
- // CRITERIA_TYPE_WIN_ARENA = 32
- // CRITERIA_TYPE_PLAY_ARENA = 33
- // CRITERIA_TYPE_COMPLETE_CHALLENGE_MODE = 71
+ // CriteriaType::WinBattleground = 1
+ // CriteriaType::ParticipateInBattleground = 15
+ // CriteriaType::DieOnMap = 16
+ // CriteriaType::WinArena = 32
+ // CriteriaType::ParticipateInArena = 33
+ // CriteriaType::CompleteChallengeMode = 71
int32 MapID;
- // CRITERIA_TYPE_SURVEY_GAMEOBJECT = 4
- // CRITERIA_TYPE_USE_GAMEOBJECT = 68
- // CRITERIA_TYPE_FISH_IN_GAMEOBJECT = 72
+ // CriteriaType::CompleteResearchProject = 2
+ int32 ResearchProjectID;
+
+ // CriteriaType::FindResearchObject = 4
+ // CriteriaType::UseGameobject = 68
+ // CriteriaType::CatchFishInFishingHole = 72
int32 GameObjectID;
- // CRITERIA_TYPE_REACH_SKILL_LEVEL = 7
- // CRITERIA_TYPE_LEARN_SKILL_LEVEL = 40
- // CRITERIA_TYPE_LEARN_SKILLLINE_SPELLS = 75
- // CRITERIA_TYPE_LEARN_SKILL_LINE = 112
+ // CriteriaType::SkillRaised = 7
+ // CriteriaType::AchieveSkillStep = 40
+ // CriteriaType::LearnSpellFromSkillLine = 75
+ // CriteriaType::LearnTradeskillSkillLine = 112
int32 SkillID;
- // CRITERIA_TYPE_COMPLETE_ACHIEVEMENT = 8
+ // CriteriaType::EarnAchievement = 8
int32 AchievementID;
- // CRITERIA_TYPE_COMPLETE_QUESTS_IN_ZONE = 11
+ // CriteriaType::CompleteQuestsInZone = 11
int32 ZoneID;
- // CRITERIA_TYPE_CURRENCY = 12
- // CRITERIA_TYPE_CONVERT_ITEMS_TO_CURRENCY = 229
+ // CriteriaType::CurrencyGained = 12
+ // CriteriaType::ObtainAnyItemWithCurrencyValue = 229
int32 CurrencyID;
- // CRITERIA_TYPE_DEATH_IN_DUNGEON = 18
- // CRITERIA_TYPE_COMPLETE_RAID = 19
+ // CriteriaType::DieInInstance = 18
+ // CriteriaType::RunInstance = 19
int32 GroupSize;
- // CRITERIA_TYPE_MANUAL_COMPLETE_CRITERIA = 21
+ // CriteriaType::CompleteInternalCriteria = 21
int32 CriteriaID;
- // CRITERIA_TYPE_DEATHS_FROM = 26
- int32 DamageType;
+ // CriteriaType::DieFromEnviromentalDamage = 26
+ int32 EnviromentalDamageType;
- // CRITERIA_TYPE_COMPLETE_QUEST = 27
+ // CriteriaType::CompleteQuest = 27
int32 QuestID;
- // CRITERIA_TYPE_BE_SPELL_TARGET = 28
- // CRITERIA_TYPE_CAST_SPELL = 29
- // CRITERIA_TYPE_LEARN_SPELL = 34
- // CRITERIA_TYPE_BE_SPELL_TARGET2 = 69
- // CRITERIA_TYPE_CAST_SPELL2 = 110
+ // CriteriaType::BeSpellTarget = 28
+ // CriteriaType::CastSpell = 29
+ // CriteriaType::LearnOrKnowSpell = 34
+ // CriteriaType::GainAura = 69
+ // CriteriaType::LandTargetedSpellOnTarget = 110
+ // CriteriaType::MemorizeSpell = 222
int32 SpellID;
- // CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE = 30
- int32 ObjectiveId;
+ // CriteriaType::TrackedWorldStateUIModified = 30
+ int32 WorldStateUIID;
- // CRITERIA_TYPE_HONORABLE_KILL_AT_AREA = 31
- // CRITERIA_TYPE_ENTER_AREA = 163
- // CRITERIA_TYPE_LEAVE_AREA = 164
- // CRITERIA_TYPE_TRAVELLED_TO_AREA = 225
+ // CriteriaType::PVPKillInArea = 31
+ // CriteriaType::EnterArea = 163
+ // CriteriaType::LeaveArea = 164
+ // CriteriaType::EnterTopLevelArea = 225
+ // CriteriaType::LeaveTopLevelArea = 226
int32 AreaID;
- // CRITERIA_TYPE_OWN_ITEM = 36
- // CRITERIA_TYPE_USE_ITEM = 41
- // CRITERIA_TYPE_LOOT_ITEM = 42
- // CRITERIA_TYPE_EQUIP_ITEM = 57
- // CRITERIA_TYPE_OWN_TOY = 185
+ // CriteriaType::AcquireItem = 36
+ // CriteriaType::UseItem = 41
+ // CriteriaType::LootItem = 42
+ // CriteriaType::EquipItem = 57
+ // CriteriaType::LearnToy = 185
+ // CriteriaType::LearnHeirloom = 188
int32 ItemID;
- // CRITERIA_TYPE_HIGHEST_TEAM_RATING = 38
- // CRITERIA_TYPE_HIGHEST_PERSONAL_RATING = 39
+ // CriteriaType::EarnTeamArenaRating = 38
+ // CriteriaType::EarnPersonalArenaRating = 39
int32 TeamType;
- // CRITERIA_TYPE_EXPLORE_AREA = 43
+ // CriteriaType::RevealWorldMapOverlay = 43
int32 WorldMapOverlayID;
- // CRITERIA_TYPE_GAIN_REPUTATION = 46
- // CRITERIA_TYPE_GAIN_PARAGON_REPUTATION = 206
+ // CriteriaType::ReputationGained = 46
+ // CriteriaType::ParagonLevelIncreaseWithFaction = 206
int32 FactionID;
- // CRITERIA_TYPE_EQUIP_ITEM_IN_SLOT = 49
- // CRITERIA_TYPE_APPEARANCE_UNLOCKED_BY_SLOT = 199
+ // CriteriaType::EquipItemInSlot = 49
+ // CriteriaType::LearnAnyTransmogInSlot = 199
int32 EquipmentSlot;
- // CRITERIA_TYPE_ROLL_NEED_ON_LOOT = 50
- // CRITERIA_TYPE_ROLL_GREED_ON_LOOT = 51
+ // CriteriaType::RollNeed = 50
+ // CriteriaType::RollGreed = 51
+ // CriteriaType::RollDisenchant = 116
int32 RollValue;
- // CRITERIA_TYPE_HK_CLASS = 52
+ // CriteriaType::DeliverKillingBlowToClass = 52
int32 ClassID;
- // CRITERIA_TYPE_HK_RACE = 53
+ // CriteriaType::DeliverKillingBlowToRace = 53
int32 RaceID;
- // CRITERIA_TYPE_DO_EMOTE = 54
+ // CriteriaType::DoEmote = 54
int32 EmoteID;
- // CRITERIA_TYPE_SEND_EVENT = 73
- // CRITERIA_TYPE_SEND_EVENT_SCENARIO = 92
+ // CriteriaType::CompleteQuestsInSort = 58
+ int32 QuestSortID;
+
+ // CriteriaType::KilledAllUnitsInSpawnRegion = 64
+ int32 SpawnRegionID;
+
+ // CriteriaType::PlayerTriggerGameEvent = 73
+ // CriteriaType::AnyoneTriggerGameEventScenario = 92
int32 EventID;
- // CRITERIA_TYPE_GARRISON_COMPLETE_DUNGEON_ENCOUNTER = 97
- // CRITERIA_TYPE_COMPLETE_DUNGEON_ENCOUNTER = 165
+ // CriteriaType::DefeatDungeonEncounterWhileElegibleForLoot = 97
+ // CriteriaType::DefeatDungeonEncounter = 165
int32 DungeonEncounterID;
- // CRITERIA_TYPE_LOOT_TYPE = 109
+ // CriteriaType::GetLootByType = 109
int32 LootType;
- // CRITERIA_TYPE_COMPLETE_GUILD_CHALLENGE_TYPE = 138
+ // CriteriaType::CompleteGuildChallenge = 138
int32 GuildChallengeType;
- // CRITERIA_TYPE_COMPLETE_SCENARIO = 152
+ // CriteriaType::CompleteScenario = 152
int32 ScenarioID;
- // CRITERIA_TYPE_REACH_AREATRIGGER_WITH_ACTIONSET = 153
+ // CriteriaType::EnterAreaTriggerWithActionSet = 153
+ // CriteriaType::LeaveAreaTriggerWithActionSet = 154
int32 AreaTriggerActionSetID;
- // CRITERIA_TYPE_LEVEL_BATTLE_PET = 160
- // CRITERIA_TYPE_LEVEL_BATTLE_PET_CREDIT = 162
+ // CriteriaType::BattlePetReachLevel = 160
+ // CriteriaType::ActivelyEarnPetLevel = 162
int32 PetLevel;
- // CRITERIA_TYPE_PLACE_GARRISON_BUILDING = 167
- // CRITERIA_TYPE_CONSTRUCT_GARRISON_BUILDING = 169
+ // CriteriaType::PlaceGarrisonBuilding = 167
+ // CriteriaType::ActivateGarrisonBuilding = 169
+ // CriteriaType::LearnGarrisonBlueprint = 179
int32 GarrBuildingID;
- // CRITERIA_TYPE_UPGRADE_GARRISON = 170
+ // CriteriaType::UpgradeGarrison = 170
int32 GarrisonLevel;
- // CRITERIA_TYPE_START_GARRISON_MISSION = 171
- // CRITERIA_TYPE_COMPLETE_GARRISON_MISSION_COUNT = 173
+ // CriteriaType::StartAnyGarrisonMissionWithFollowerType = 171
+ // CriteriaType::SucceedAnyGarrisonMissionWithFollowerType = 173
int32 GarrFollowerTypeID;
- // CRITERIA_TYPE_START_ORDER_HALL_MISSION = 172
- // CRITERIA_TYPE_COMPLETE_GARRISON_MISSION = 174
+ // CriteriaType::StartGarrisonMission = 172
+ // CriteriaType::SucceedGarrisonMission = 174
int32 GarrMissionID;
- // CRITERIA_TYPE_RECRUIT_GARRISON_FOLLOWER = 176
+ // CriteriaType::RecruitGarrisonFollower = 176
int32 GarrFollowerID;
- // CRITERIA_TYPE_COMPLETE_GARRISON_SHIPMENT = 182
+ // CriteriaType::LearnGarrisonSpecialization = 181
+ int32 GarrSpecializationID;
+
+ // CriteriaType::CollectGarrisonShipment = 182
int32 CharShipmentContainerID;
- // CRITERIA_TYPE_OWN_ITEM_MODIFIED_APPEARANCE = 192
+ // CriteriaType::LearnTransmog = 192
int32 ItemModifiedAppearanceID;
- // CRITERIA_TYPE_ACTIVELY_REACH_LEVEL = 196
+ // CriteriaType::ActivelyReachLevel = 196
int32 PlayerLevel;
- // CRITERIA_TYPE_ORDER_HALL_TALENT_LEARNED = 198
- // CRITERIA_TYPE_202 = 202
+ // CriteriaType::CompleteResearchGarrisonTalent = 198
+ // CriteriaType::StartResearchGarrisonTalent = 202
+ // CriteriaType::SocketGarrisonTalent = 227
int32 GarrTalentID;
- // CRITERIA_TYPE_TRANSMOG_SET_UNLOCKED = 205
+ // CriteriaType::EarnLicense = 204
+ int32 BattlePayDeliverableID;
+
+ // CriteriaType::CollectTransmogSetFromGroup = 205
int32 TransmogSetGroupID;
- // CRITERIA_TYPE_RELIC_TALENT_UNLOCKED = 211
+ // CriteriaType::ArtifactPowerRankPurchased = 209
+ // CriteriaType::ChooseRelicTalent = 211
int32 ArtifactPowerID;
- // CRITERIA_TYPE_EXPANSION_LEVEL = 212
+ // CriteriaType::EarnExpansionLevel = 212
int32 ExpansionLevel;
- // CRITERIA_TYPE_REACH_ACCOUNT_HONOR_LEVEL = 213
+ // CriteriaType::AccountHonorLevelReached = 213
int32 AccountHonorLevel;
- // CRITERIA_TREE_HEART_OF_AZEROTH_LEVEL_REACHED = 215
- int32 HeartOfAzerothLevel;
+ // CriteriaType::AzeriteLevelReached = 215
+ int32 AzeriteLevel;
+
+ // CriteriaType::MythicPlusRatingAttained = 230
+ int32 DungeonScore;
} Asset;
uint32 ModifierTreeId;
uint8 StartEvent;
diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h
index fdc4a3aac10..babc2fde7a2 100644
--- a/src/server/game/DataStores/DBCEnums.h
+++ b/src/server/game/DataStores/DBCEnums.h
@@ -303,237 +303,243 @@ enum class CriteriaFlags : uint8
DEFINE_ENUM_FLAG(CriteriaFlags);
-enum CriteriaTypes : uint8
-{
- CRITERIA_TYPE_KILL_CREATURE = 0,
- CRITERIA_TYPE_WIN_BG = 1,
- // 2 - unused (Legion - 23420)
- CRITERIA_TYPE_COMPLETE_ARCHAEOLOGY_PROJECTS = 3, // struct { uint32 itemCount; }
- CRITERIA_TYPE_SURVEY_GAMEOBJECT = 4,
- CRITERIA_TYPE_REACH_LEVEL = 5,
- CRITERIA_TYPE_CLEAR_DIGSITE = 6,
- CRITERIA_TYPE_REACH_SKILL_LEVEL = 7,
- CRITERIA_TYPE_COMPLETE_ACHIEVEMENT = 8,
- CRITERIA_TYPE_COMPLETE_QUEST_COUNT = 9,
- CRITERIA_TYPE_COMPLETE_DAILY_QUEST_DAILY = 10, // you have to complete a daily quest x times in a row
- CRITERIA_TYPE_COMPLETE_QUESTS_IN_ZONE = 11,
- CRITERIA_TYPE_CURRENCY = 12,
- CRITERIA_TYPE_DAMAGE_DONE = 13,
- CRITERIA_TYPE_COMPLETE_DAILY_QUEST = 14,
- CRITERIA_TYPE_COMPLETE_BATTLEGROUND = 15,
- CRITERIA_TYPE_DEATH_AT_MAP = 16,
- CRITERIA_TYPE_DEATH = 17,
- CRITERIA_TYPE_DEATH_IN_DUNGEON = 18,
- CRITERIA_TYPE_COMPLETE_RAID = 19,
- CRITERIA_TYPE_KILLED_BY_CREATURE = 20,
- CRITERIA_TYPE_MANUAL_COMPLETE_CRITERIA = 21,
- CRITERIA_TYPE_COMPLETE_CHALLENGE_MODE_GUILD = 22,
- CRITERIA_TYPE_KILLED_BY_PLAYER = 23,
- CRITERIA_TYPE_FALL_WITHOUT_DYING = 24,
- // 25 - unused (Legion - 23420)
- CRITERIA_TYPE_DEATHS_FROM = 26,
- CRITERIA_TYPE_COMPLETE_QUEST = 27,
- CRITERIA_TYPE_BE_SPELL_TARGET = 28,
- CRITERIA_TYPE_CAST_SPELL = 29,
- CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE = 30,
- CRITERIA_TYPE_HONORABLE_KILL_AT_AREA = 31,
- CRITERIA_TYPE_WIN_ARENA = 32,
- CRITERIA_TYPE_PLAY_ARENA = 33,
- CRITERIA_TYPE_LEARN_SPELL = 34,
- CRITERIA_TYPE_HONORABLE_KILL = 35,
- CRITERIA_TYPE_OWN_ITEM = 36,
- CRITERIA_TYPE_WIN_RATED_ARENA = 37,
- CRITERIA_TYPE_HIGHEST_TEAM_RATING = 38,
- CRITERIA_TYPE_HIGHEST_PERSONAL_RATING = 39,
- CRITERIA_TYPE_LEARN_SKILL_LEVEL = 40,
- CRITERIA_TYPE_USE_ITEM = 41,
- CRITERIA_TYPE_LOOT_ITEM = 42,
- CRITERIA_TYPE_EXPLORE_AREA = 43,
- CRITERIA_TYPE_OWN_RANK = 44,
- CRITERIA_TYPE_BUY_BANK_SLOT = 45,
- CRITERIA_TYPE_GAIN_REPUTATION = 46,
- CRITERIA_TYPE_GAIN_EXALTED_REPUTATION = 47,
- CRITERIA_TYPE_VISIT_BARBER_SHOP = 48,
- CRITERIA_TYPE_EQUIP_ITEM_IN_SLOT = 49,
- CRITERIA_TYPE_ROLL_NEED_ON_LOOT = 50, /// @todo itemlevel is mentioned in text but not present in dbc
- CRITERIA_TYPE_ROLL_GREED_ON_LOOT = 51,
- CRITERIA_TYPE_HK_CLASS = 52,
- CRITERIA_TYPE_HK_RACE = 53,
- CRITERIA_TYPE_DO_EMOTE = 54,
- CRITERIA_TYPE_HEALING_DONE = 55,
- CRITERIA_TYPE_GET_KILLING_BLOWS = 56, /// @todo in some cases map not present, and in some cases need do without die
- CRITERIA_TYPE_EQUIP_ITEM = 57,
- // 58 - unused (Legion - 23420)
- CRITERIA_TYPE_MONEY_FROM_VENDORS = 59,
- CRITERIA_TYPE_GOLD_SPENT_FOR_TALENTS = 60,
- CRITERIA_TYPE_NUMBER_OF_TALENT_RESETS = 61,
- CRITERIA_TYPE_MONEY_FROM_QUEST_REWARD = 62,
- CRITERIA_TYPE_GOLD_SPENT_FOR_TRAVELLING = 63,
- CRITERIA_TYPE_DEFEAT_CREATURE_GROUP = 64,
- CRITERIA_TYPE_GOLD_SPENT_AT_BARBER = 65,
- CRITERIA_TYPE_GOLD_SPENT_FOR_MAIL = 66,
- CRITERIA_TYPE_LOOT_MONEY = 67,
- CRITERIA_TYPE_USE_GAMEOBJECT = 68,
- CRITERIA_TYPE_BE_SPELL_TARGET2 = 69,
- CRITERIA_TYPE_SPECIAL_PVP_KILL = 70,
- CRITERIA_TYPE_COMPLETE_CHALLENGE_MODE = 71,
- CRITERIA_TYPE_FISH_IN_GAMEOBJECT = 72,
- CRITERIA_TYPE_SEND_EVENT = 73,
- CRITERIA_TYPE_ON_LOGIN = 74,
- CRITERIA_TYPE_LEARN_SKILLLINE_SPELLS = 75,
- CRITERIA_TYPE_WIN_DUEL = 76,
- CRITERIA_TYPE_LOSE_DUEL = 77,
- CRITERIA_TYPE_KILL_CREATURE_TYPE = 78,
- CRITERIA_TYPE_COOK_RECIPES_GUILD = 79,
- CRITERIA_TYPE_GOLD_EARNED_BY_AUCTIONS = 80,
- CRITERIA_TYPE_EARN_PET_BATTLE_ACHIEVEMENT_POINTS = 81,
- CRITERIA_TYPE_CREATE_AUCTION = 82,
- CRITERIA_TYPE_HIGHEST_AUCTION_BID = 83,
- CRITERIA_TYPE_WON_AUCTIONS = 84,
- CRITERIA_TYPE_HIGHEST_AUCTION_SOLD = 85,
- CRITERIA_TYPE_HIGHEST_GOLD_VALUE_OWNED = 86,
- CRITERIA_TYPE_GAIN_REVERED_REPUTATION = 87,
- CRITERIA_TYPE_GAIN_HONORED_REPUTATION = 88,
- CRITERIA_TYPE_KNOWN_FACTIONS = 89,
- CRITERIA_TYPE_LOOT_ANY_ITEM = 90,
- CRITERIA_TYPE_OBTAIN_ANY_ITEM = 91,
- CRITERIA_TYPE_SEND_EVENT_SCENARIO = 92,
- CRITERIA_TYPE_ROLL_NEED = 93,
- CRITERIA_TYPE_ROLL_GREED = 94,
- CRITERIA_TYPE_RELEASE_SPIRIT = 95,
- CRITERIA_TYPE_OWN_PET = 96,
- CRITERIA_TYPE_GARRISON_COMPLETE_DUNGEON_ENCOUNTER = 97,
- // 98 - unused (Legion - 23420)
- // 99 - unused (Legion - 23420)
- // 100 - unused (Legion - 23420)
- CRITERIA_TYPE_HIGHEST_HIT_DEALT = 101,
- CRITERIA_TYPE_HIGHEST_HIT_RECEIVED = 102,
- CRITERIA_TYPE_TOTAL_DAMAGE_RECEIVED = 103,
- CRITERIA_TYPE_HIGHEST_HEAL_CAST = 104,
- CRITERIA_TYPE_TOTAL_HEALING_RECEIVED = 105,
- CRITERIA_TYPE_HIGHEST_HEALING_RECEIVED = 106,
- CRITERIA_TYPE_QUEST_ABANDONED = 107,
- CRITERIA_TYPE_FLIGHT_PATHS_TAKEN = 108,
- CRITERIA_TYPE_LOOT_TYPE = 109,
- CRITERIA_TYPE_CAST_SPELL2 = 110, /// @todo target entry is missing
- // 111 - unused (Legion - 23420)
- CRITERIA_TYPE_LEARN_SKILL_LINE = 112,
- CRITERIA_TYPE_EARN_HONORABLE_KILL = 113,
- CRITERIA_TYPE_ACCEPTED_SUMMONINGS = 114,
- CRITERIA_TYPE_EARN_ACHIEVEMENT_POINTS = 115,
- // 116 - unused (Legion - 23420)
- // 117 - unused (Legion - 23420)
- CRITERIA_TYPE_COMPLETE_LFG_DUNGEON = 118,
- CRITERIA_TYPE_USE_LFD_TO_GROUP_WITH_PLAYERS = 119,
- CRITERIA_TYPE_LFG_VOTE_KICKS_INITIATED_BY_PLAYER = 120,
- CRITERIA_TYPE_LFG_VOTE_KICKS_NOT_INIT_BY_PLAYER = 121,
- CRITERIA_TYPE_BE_KICKED_FROM_LFG = 122,
- CRITERIA_TYPE_LFG_LEAVES = 123,
- CRITERIA_TYPE_SPENT_GOLD_GUILD_REPAIRS = 124,
- CRITERIA_TYPE_REACH_GUILD_LEVEL = 125,
- CRITERIA_TYPE_CRAFT_ITEMS_GUILD = 126,
- CRITERIA_TYPE_CATCH_FROM_POOL = 127,
- CRITERIA_TYPE_BUY_GUILD_BANK_SLOTS = 128,
- CRITERIA_TYPE_EARN_GUILD_ACHIEVEMENT_POINTS = 129,
- CRITERIA_TYPE_WIN_RATED_BATTLEGROUND = 130,
- // 131 - unused (Legion - 23420)
- CRITERIA_TYPE_REACH_BG_RATING = 132,
- CRITERIA_TYPE_BUY_GUILD_TABARD = 133,
- CRITERIA_TYPE_COMPLETE_QUESTS_GUILD = 134,
- CRITERIA_TYPE_HONORABLE_KILLS_GUILD = 135,
- CRITERIA_TYPE_KILL_CREATURE_TYPE_GUILD = 136,
- CRITERIA_TYPE_COUNT_OF_LFG_QUEUE_BOOSTS_BY_TANK = 137,
- CRITERIA_TYPE_COMPLETE_GUILD_CHALLENGE_TYPE = 138, //struct { Flag flag; uint32 count; } 1: Guild Dungeon, 2:Guild Challenge, 3:Guild battlefield
- CRITERIA_TYPE_COMPLETE_GUILD_CHALLENGE = 139, //struct { uint32 count; } Guild Challenge
- // 140 - 1 criteria (16883), unused (Legion - 23420)
- // 141 - 1 criteria (16884), unused (Legion - 23420)
- // 142 - 1 criteria (16881), unused (Legion - 23420)
- // 143 - 1 criteria (16882), unused (Legion - 23420)
- // 144 - 1 criteria (17386), unused (Legion - 23420)
- CRITERIA_TYPE_LFR_DUNGEONS_COMPLETED = 145,
- CRITERIA_TYPE_LFR_LEAVES = 146,
- CRITERIA_TYPE_LFR_VOTE_KICKS_INITIATED_BY_PLAYER = 147,
- CRITERIA_TYPE_LFR_VOTE_KICKS_NOT_INIT_BY_PLAYER = 148,
- CRITERIA_TYPE_BE_KICKED_FROM_LFR = 149,
- CRITERIA_TYPE_COUNT_OF_LFR_QUEUE_BOOSTS_BY_TANK = 150,
- CRITERIA_TYPE_COMPLETE_SCENARIO_COUNT = 151,
- CRITERIA_TYPE_COMPLETE_SCENARIO = 152,
- CRITERIA_TYPE_REACH_AREATRIGGER_WITH_ACTIONSET = 153,
- // 154 - unused (Legion - 23420)
- CRITERIA_TYPE_OWN_BATTLE_PET = 155,
- CRITERIA_TYPE_OWN_BATTLE_PET_COUNT = 156,
- CRITERIA_TYPE_CAPTURE_BATTLE_PET = 157,
- CRITERIA_TYPE_WIN_PET_BATTLE = 158,
- // 159 - 2 criterias (22312,22314), unused (Legion - 23420)
- CRITERIA_TYPE_LEVEL_BATTLE_PET = 160,
- CRITERIA_TYPE_CAPTURE_BATTLE_PET_CREDIT = 161, // triggers a quest credit
- CRITERIA_TYPE_LEVEL_BATTLE_PET_CREDIT = 162, // triggers a quest credit
- CRITERIA_TYPE_ENTER_AREA = 163, // triggers a quest credit
- CRITERIA_TYPE_LEAVE_AREA = 164, // triggers a quest credit
- CRITERIA_TYPE_COMPLETE_DUNGEON_ENCOUNTER = 165,
- // 166 - unused (Legion - 23420)
- CRITERIA_TYPE_PLACE_GARRISON_BUILDING = 167,
- CRITERIA_TYPE_UPGRADE_GARRISON_BUILDING = 168,
- CRITERIA_TYPE_CONSTRUCT_GARRISON_BUILDING = 169,
- CRITERIA_TYPE_UPGRADE_GARRISON = 170,
- CRITERIA_TYPE_START_GARRISON_MISSION = 171,
- CRITERIA_TYPE_START_ORDER_HALL_MISSION = 172,
- CRITERIA_TYPE_COMPLETE_GARRISON_MISSION_COUNT = 173,
- CRITERIA_TYPE_COMPLETE_GARRISON_MISSION = 174,
- CRITERIA_TYPE_RECRUIT_GARRISON_FOLLOWER_COUNT = 175,
- CRITERIA_TYPE_RECRUIT_GARRISON_FOLLOWER = 176,
- // 177 - 0 criterias (Legion - 23420)
- CRITERIA_TYPE_LEARN_GARRISON_BLUEPRINT_COUNT = 178,
- // 179 - 0 criterias (Legion - 23420)
- // 180 - 0 criterias (Legion - 23420)
- // 181 - 0 criterias (Legion - 23420)
- CRITERIA_TYPE_COMPLETE_GARRISON_SHIPMENT = 182,
- CRITERIA_TYPE_RAISE_GARRISON_FOLLOWER_ITEM_LEVEL = 183,
- CRITERIA_TYPE_RAISE_GARRISON_FOLLOWER_LEVEL = 184,
- CRITERIA_TYPE_OWN_TOY = 185,
- CRITERIA_TYPE_OWN_TOY_COUNT = 186,
- CRITERIA_TYPE_RECRUIT_GARRISON_FOLLOWER_WITH_QUALITY= 187,
- // 188 - 0 criterias (Legion - 23420)
- CRITERIA_TYPE_OWN_HEIRLOOMS = 189,
- CRITERIA_TYPE_ARTIFACT_POWER_EARNED = 190,
- CRITERIA_TYPE_ARTIFACT_TRAITS_UNLOCKED = 191,
- CRITERIA_TYPE_OWN_ITEM_MODIFIED_APPEARANCE = 192,
- CRITERIA_TYPE_HONOR_LEVEL_REACHED = 194,
- CRITERIA_TYPE_PRESTIGE_REACHED = 195,
- CRITERIA_TYPE_ACTIVELY_REACH_LEVEL = 196,
- // 197 - Order Hall Advancement related
- CRITERIA_TYPE_ORDER_HALL_TALENT_LEARNED = 198,
- CRITERIA_TYPE_APPEARANCE_UNLOCKED_BY_SLOT = 199,
- CRITERIA_TYPE_ORDER_HALL_RECRUIT_TROOP = 200,
- // 201 - 0 criterias (Legion - 23420)
- // 202 - 0 criterias (Legion - 23420)
- CRITERIA_TYPE_COMPLETE_WORLD_QUEST = 203,
- // 204 - Special criteria type to award players for some external events? Comes with what looks like an identifier, so guessing it's not unique.
- CRITERIA_TYPE_TRANSMOG_SET_UNLOCKED = 205,
- CRITERIA_TYPE_GAIN_PARAGON_REPUTATION = 206,
- CRITERIA_TYPE_EARN_HONOR_XP = 207,
- CRITERIA_TYPE_RELIC_TALENT_UNLOCKED = 211,
- CRITERIA_TYPE_EXPANSION_LEVEL = 212,
- CRITERIA_TYPE_REACH_ACCOUNT_HONOR_LEVEL = 213,
- CRITERIA_TYPE_HEART_OF_AZEROTH_ARTIFACT_POWER_EARNED= 214,
- CRITERIA_TYPE_HEART_OF_AZEROTH_LEVEL_REACHED = 215,
- CRITERIA_TYPE_MYTHIC_KEYSTONE_COMPLETED = 216, // NYI
- // 217 - 0 criterias
- CRITERIA_TYPE_COMPLETE_QUEST_ACCUMULATE = 218,
- CRITERIA_TYPE_BOUGHT_ITEM_FROM_VENDOR = 219,
- CRITERIA_TYPE_SOLD_ITEM_TO_VENDOR = 220,
- // 221 - 0 criterias
- // 222 - 0 criterias
- // 223 - 0 criterias
- // 224 - 0 criterias
- CRITERIA_TYPE_TRAVELLED_TO_AREA = 225,
- // 226 - 0 criterias
- // 227 - 0 criterias
- CRITERIA_TYPE_APPLY_CONDUIT = 228,
- CRITERIA_TYPE_CONVERT_ITEMS_TO_CURRENCY = 229,
-};
-
-#define CRITERIA_TYPE_TOTAL 232
+enum class CriteriaType : uint8
+{
+ KillCreature = 0, // Kill NPC "{Creature}"
+ WinBattleground = 1, // Win battleground "{Map}"
+ CompleteResearchProject = 2, /*NYI*/ // Complete research project "{ResearchProject}"
+ CompleteAnyResearchProject = 3, /*NYI*/ // Complete any research project
+ FindResearchObject = 4, /*NYI*/ // Find research object "{GameObjects}"
+ ReachLevel = 5, // Reach level
+ ExhaustAnyResearchSite = 6, /*NYI*/ // Exhaust any research site
+ SkillRaised = 7, // Skill "{SkillLine}" raised
+ EarnAchievement = 8, // Earn achievement "{Achievement}"
+ CompleteQuestsCount = 9, // Count of complete quests (quest count)
+ CompleteAnyDailyQuestPerDay = 10, // Complete any daily quest (per day)
+ CompleteQuestsInZone = 11, // Complete quests in "{AreaTable}"
+ CurrencyGained = 12, // Currency "{CurrencyTypes}" gained
+ DamageDealt = 13, // Damage dealt
+ CompleteDailyQuest = 14, // Complete daily quest
+ ParticipateInBattleground = 15, // Participate in battleground "{Map}"
+ DieOnMap = 16, // Die on map "{Map}"
+ DieAnywhere = 17, // Die anywhere
+ DieInInstance = 18, // Die in an instance which handles at most {#Max Players} players
+ RunInstance = 19, /*NYI*/ // Run an instance which handles at most {#Max Players} players
+ KilledByCreature = 20, // Get killed by "{Creature}"
+ CompleteInternalCriteria = 21, /*NYI*/ // Designer Value{`Uses Record ID}
+ CompleteAnyChallengeMode = 22, /*NYI*/ // Complete any challenge mode
+ KilledByPlayer = 23, // Die to a player
+ MaxDistFallenWithoutDying = 24, // Maximum distance fallen without dying
+ EarnChallengeModeMedal = 25, /*NYI*/ // Earn a challenge mode medal of "{#Challenge Mode Medal (OBSOLETE)}" (OBSOLETE)
+ DieFromEnviromentalDamage = 26, // Die to "{$Env Damage}" environmental damage
+ CompleteQuest = 27, // Complete quest "{QuestV2}"
+ BeSpellTarget = 28, // Have the spell "{Spell}" cast on you
+ CastSpell = 29, // Cast the spell "{Spell}"
+ TrackedWorldStateUIModified = 30, // Tracked WorldStateUI value "{WorldStateUI}" is modified
+ PVPKillInArea = 31, // Kill someone in PVP in "{AreaTable}"
+ WinArena = 32, // Win arena "{Map}"
+ ParticipateInArena = 33, /*NYI*/ // Participate in arena "{Map}"
+ LearnOrKnowSpell = 34, // Learn or Know spell "{Spell}"
+ EarnHonorableKill = 35, // Earn an honorable kill
+ AcquireItem = 36, // Acquire item "{Item}"
+ WinAnyRankedArena = 37, // Win a ranked arena match (any arena)
+ EarnTeamArenaRating = 38, /*NYI*/ // Earn a team arena rating of {#Arena Rating}
+ EarnPersonalArenaRating = 39, // Earn a personal arena rating of {#Arena Rating}
+ AchieveSkillStep = 40, // Achieve a skill step in "{SkillLine}"
+ UseItem = 41, // Use item "{Item}"
+ LootItem = 42, // Loot "{Item}" via corpse, pickpocket, fishing, disenchanting, etc.
+ RevealWorldMapOverlay = 43, // Reveal world map overlay "{WorldMapOverlay}"
+ EarnTitle = 44, /*NYI*/ // Deprecated PVP Titles
+ BankSlotsPurchased = 45, // Bank slots purchased
+ ReputationGained = 46, // Reputation gained with faction "{Faction}"
+ TotalExaltedFactions = 47, // Total exalted factions
+ GotHaircut = 48, // Got a haircut
+ EquipItemInSlot = 49, // Equip item in slot "{$Equip Slot}"
+ RollNeed = 50, // Roll need and get {#Need Roll}
+ RollGreed = 51, // Roll greed and get {#Greed Roll}
+ DeliverKillingBlowToClass = 52, // Deliver a killing blow to a {ChrClasses}
+ DeliverKillingBlowToRace = 53, // Deliver a killing blow to a {ChrRaces}
+ DoEmote = 54, // Do a "{EmotesText}" emote
+ HealingDone = 55, // Healing done
+ DeliveredKillingBlow = 56, // Delivered a killing blow
+ EquipItem = 57, // Equip item "{Item}"
+ CompleteQuestsInSort = 58, /*NYI*/ // Complete quests in "{QuestSort}"
+ MoneyEarnedFromSales = 59, // Sell items to vendors
+ MoneySpentOnRespecs = 60, // Money spent on respecs
+ TotalRespecs = 61, // Total respecs
+ MoneyEarnedFromQuesting = 62, // Money earned from questing
+ MoneySpentOnTaxis = 63, // Money spent on taxis
+ KilledAllUnitsInSpawnRegion = 64, /*NYI*/ // Killed all units in spawn region "{SpawnRegion}"
+ MoneySpentAtBarberShop = 65, // Money spent at the barber shop
+ MoneySpentOnPostage = 66, // Money spent on postage
+ MoneyLootedFromCreatures = 67, // Money looted from creatures
+ UseGameobject = 68, // Use Game Object "{GameObjects}"
+ GainAura = 69, // Gain aura "{Spell}"
+ KillPlayer = 70, // Kill a player (no honor check)
+ CompleteChallengeMode = 71, /*NYI*/ // Complete a challenge mode on map "{Map}"
+ CatchFishInFishingHole = 72, // Catch fish in the "{GameObjects}" fishing hole
+ PlayerTriggerGameEvent = 73, /*NYI*/ // Player will Trigger game event "{GameEvents}"
+ Login = 74, // Login (USE SPARINGLY!)
+ LearnSpellFromSkillLine = 75, // Learn spell from the "{SkillLine}" skill line
+ WinDuel = 76, // Win a duel
+ LoseDuel = 77, // Lose a duel
+ KillAnyCreature = 78, // Kill any NPC
+ CreatedItemsByCastingSpellWithLimit = 79, /*NYI*/ // Created items by casting a spell (limit 1 per create...)
+ MoneyEarnedFromAuctions = 80, // Money earned from auctions
+ BattlePetAchievementPointsEarned = 81, /*NYI*/ // Battle pet achievement points earned
+ ItemsPostedAtAuction = 82, // Number of items posted at auction
+ HighestAuctionBid = 83, // Highest auction bid
+ AuctionsWon = 84, // Auctions won
+ HighestAuctionSale = 85, // Highest coin value of item sold
+ MostMoneyOwned = 86, // Most money owned
+ TotalReveredFactions = 87, // Total revered factions
+ TotalHonoredFactions = 88, // Total honored factions
+ TotalFactionsEncountered = 89, // Total factions encountered
+ LootAnyItem = 90, // Loot any item
+ ObtainAnyItem = 91, // Obtain any item
+ AnyoneTriggerGameEventScenario = 92, /*NYI*/ // Anyone will Trigger game event "{GameEvents}" (Scenario Only)
+ RollAnyNeed = 93, // Roll any number on need
+ RollAnyGreed = 94, // Roll any number on greed
+ ReleasedSpirit = 95, /*NYI*/ // Released Spirit
+ AccountKnownPet = 96, /*NYI*/ // Account knows pet "{Creature}" (Backtracked)
+ DefeatDungeonEncounterWhileElegibleForLoot = 97, /*NYI*/ // Defeat Encounter "{DungeonEncounter}" While Eligible For Loot
+ // UNUSED 18{} = 98, // Unused
+ // UNUSED 19{} = 99, // Unused
+ // UNUSED 20{} = 100, // Unused
+ HighestDamageDone = 101, // Highest damage done in 1 single ability
+ HighestDamageTaken = 102, // Most damage taken in 1 single hit
+ TotalDamageTaken = 103, // Total damage taken
+ HighestHealCast = 104, // Largest heal cast
+ TotalHealReceived = 105, // Total healing received
+ HighestHealReceived = 106, // Largest heal received
+ AbandonAnyQuest = 107, // Abandon any quest
+ BuyTaxi = 108, // Buy a taxi
+ GetLootByType = 109, // Get loot via "{$Loot Acquisition}"
+ LandTargetedSpellOnTarget = 110, // Land targeted spell "{Spell}" on a target
+ // UNUSED 21{} = 111, // Unused
+ LearnTradeskillSkillLine = 112, // Learn tradeskill skill line "{SkillLine}"
+ HonorableKills = 113, // Honorable kills (number in interface, won't update except for login)
+ AcceptSummon = 114, // Accept a summon
+ EarnAchievementPoints = 115, // Earn achievement points
+ RollDisenchant = 116, /*NYI*/ // Roll disenchant and get {#Disenchant Roll}
+ RollAnyDisenchant = 117, /*NYI*/ // Roll any number on disenchant
+ CompletedLFGDungeon = 118, /*NYI*/ // Completed an LFG dungeon
+ CompletedLFGDungeonWithStrangers = 119, // Completed an LFG dungeon with strangers
+ KickInitiatorInLFGDungeon = 120, /*NYI*/ // Kicked in an LFG dungeon (initiator)
+ KickVoterInLFGDungeon = 121, /*NYI*/ // Kicked in an LFG dungeon (voter)
+ KickTargetInLFGDungeon = 122, /*NYI*/ // Kicked in an LFG dungeon (target)
+ AbandonedLFGDungeon = 123, /*NYI*/ // Abandoned an LFG dungeon
+ MoneySpentOnGuildRepair = 124, /*NYI*/ // Guild repair amount spent
+ GuildAttainedLevel = 125, /*NYI*/ // Guild attained level
+ CreatedItemsByCastingSpell = 126, /*NYI*/ // Created items by casting a spell
+ FishInAnyPool = 127, /*NYI*/ // Fish in any pool
+ GuildBankTabsPurchased = 128, /*NYI*/ // Guild bank tabs purchased
+ EarnGuildAchievementPoints = 129, /*NYI*/ // Earn guild achievement points
+ WinAnyBattleground = 130, /*NYI*/ // Win any battleground
+ ParticipateInAnyBattleground = 131, /*NYI*/ // Participate in any battleground
+ EarnBattlegroundRating = 132, /*NYI*/ // Earn a battleground rating
+ GuildTabardCreated = 133, /*NYI*/ // Guild tabard created
+ CompleteQuestsCountForGuild = 134, /*NYI*/ // Count of complete quests for guild (Quest count)
+ HonorableKillsForGuild = 135, /*NYI*/ // Honorable kills for Guild
+ KillAnyCreatureForGuild = 136, /*NYI*/ // Kill any NPC for Guild
+ GroupedTankLeftEarlyInLFGDungeon = 137, /*NYI*/ // Grouped tank left early in an LFG dungeon
+ CompleteGuildChallenge = 138, /*NYI*/ // Complete a "{$Guild Challenge}" guild challenge
+ CompleteAnyGuildChallenge = 139, /*NYI*/ // Complete any guild challenge
+ MarkedAFKInBattleground = 140, /*NYI*/ // Marked AFK in a battleground
+ RemovedAFKInBattleground = 141, /*NYI*/ // Removed for being AFK in a battleground
+ StartAnyBattleground = 142, /*NYI*/ // Start any battleground (AFK tracking)
+ CompleteAnyBattleground = 143, /*NYI*/ // Complete any battleground (AFK tracking)
+ MarkedSomeoneAFKInBattleground = 144, /*NYI*/ // Marked someone for being AFK in a battleground
+ CompletedLFRDungeon = 145, /*NYI*/ // Completed an LFR dungeon
+ AbandonedLFRDungeon = 146, /*NYI*/ // Abandoned an LFR dungeon
+ KickInitiatorInLFRDungeon = 147, /*NYI*/ // Kicked in an LFR dungeon (initiator)
+ KickVoterInLFRDungeon = 148, /*NYI*/ // Kicked in an LFR dungeon (voter)
+ KickTargetInLFRDungeon = 149, /*NYI*/ // Kicked in an LFR dungeon (target)
+ GroupedTankLeftEarlyInLFRDungeon = 150, /*NYI*/ // Grouped tank left early in an LFR dungeon
+ CompleteAnyScenario = 151, /*NYI*/ // Complete a Scenario
+ CompleteScenario = 152, /*NYI*/ // Complete scenario "{Scenario}"
+ EnterAreaTriggerWithActionSet = 153, /*NYI*/ // Enter area trigger "{AreaTriggerActionSet}"
+ LeaveAreaTriggerWithActionSet = 154, /*NYI*/ // Leave area trigger "{AreaTriggerActionSet}"
+ LearnedNewPet = 155, // (Account Only) Learned a new pet
+ UniquePetsOwned = 156, // (Account Only) Unique pets owned
+ AccountObtainPetThroughBattle = 157, /*NYI*/ // (Account Only) Obtain a pet through battle
+ WinPetBattle = 158, /*NYI*/ // Win a pet battle
+ LosePetBattle = 159, /*NYI*/ // Lose a pet battle
+ BattlePetReachLevel = 160, /*NYI*/ // (Account Only) Battle pet has reached level {#Level}
+ PlayerObtainPetThroughBattle = 161, /*NYI*/ // (Player) Obtain a pet through battle
+ ActivelyEarnPetLevel = 162, /*NYI*/ // (Player) Actively earn level {#Level} with a pet by a player
+ EnterArea = 163, /*NYI*/ // Enter Map Area "{AreaTable}"
+ LeaveArea = 164, /*NYI*/ // Leave Map Area "{AreaTable}"
+ DefeatDungeonEncounter = 165, /*NYI*/ // Defeat Encounter "{DungeonEncounter}"
+ PlaceAnyGarrisonBuilding = 166, /*NYI*/ // Garrison Building: Place any
+ PlaceGarrisonBuilding = 167, // Garrison Building: Place "{GarrBuilding}"
+ ActivateAnyGarrisonBuilding = 168, // Garrison Building: Activate any
+ ActivateGarrisonBuilding = 169, /*NYI*/ // Garrison Building: Activate "{GarrBuilding}"
+ UpgradeGarrison = 170, /*NYI*/ // Garrison: Upgrade Garrison to Tier "{#Tier:2,3}"
+ StartAnyGarrisonMissionWithFollowerType = 171, /*NYI*/ // Garrison Mission: Start any with FollowerType "{GarrFollowerType}"
+ StartGarrisonMission = 172, /*NYI*/ // Garrison Mission: Start "{GarrMission}"
+ SucceedAnyGarrisonMissionWithFollowerType = 173, /*NYI*/ // Garrison Mission: Succeed any with FollowerType "{GarrFollowerType}"
+ SucceedGarrisonMission = 174, /*NYI*/ // Garrison Mission: Succeed "{GarrMission}"
+ RecruitAnyGarrisonFollower = 175, /*NYI*/ // Garrison Follower: Recruit any
+ RecruitGarrisonFollower = 176, // Garrison Follower: Recruit "{GarrFollower}"
+ AcquireGarrison = 177, /*NYI*/ // Garrison: Acquire a Garrison
+ LearnAnyGarrisonBlueprint = 178, /*NYI*/ // Garrison Blueprint: Learn any
+ LearnGarrisonBlueprint = 179, /*NYI*/ // Garrison Blueprint: Learn "{GarrBuilding}"
+ LearnAnyGarrisonSpecialization = 180, /*NYI*/ // Garrison Specialization: Learn any
+ LearnGarrisonSpecialization = 181, /*NYI*/ // Garrison Specialization: Learn "{GarrSpecialization}"
+ CollectGarrisonShipment = 182, /*NYI*/ // Garrison Shipment of type "{CharShipmentContainer}" collected
+ ItemLevelChangedForGarrisonFollower = 183, /*NYI*/ // Garrison Follower: Item Level Changed
+ LevelChangedForGarrisonFollower = 184, /*NYI*/ // Garrison Follower: Level Changed
+ LearnToy = 185, /*NYI*/ // Learn Toy "{Item}"
+ LearnAnyToy = 186, /*NYI*/ // Learn Any Toy
+ QualityUpgradedForGarrisonFollower = 187, /*NYI*/ // Garrison Follower: Quality Upgraded
+ LearnHeirloom = 188, /*NYI*/ // Learn Heirloom "{Item}"
+ LearnAnyHeirloom = 189, /*NYI*/ // Learn Any Heirloom
+ EarnArtifactXP = 190, /*NYI*/ // Earn Artifact XP
+ AnyArtifactPowerRankPurchased = 191, /*NYI*/ // Artifact Power Ranks Purchased
+ LearnTransmog = 192, /*NYI*/ // Learn Transmog "{ItemModifiedAppearance}"
+ LearnAnyTransmog = 193, /*NYI*/ // Learn Any Transmog
+ HonorLevelIncrease = 194, // (Player) honor level increase
+ PrestigeLevelIncrease = 195, /*NYI*/ // (Player) prestige level increase
+ ActivelyReachLevel = 196, // Actively level to level {#Level}
+ CompleteResearchAnyGarrisonTalent = 197, /*NYI*/ // Garrison Talent: Complete Research Any
+ CompleteResearchGarrisonTalent = 198, /*NYI*/ // Garrison Talent: Complete Research "{GarrTalent}"
+ LearnAnyTransmogInSlot = 199, // Learn Any Transmog in Slot "{$Equip Slot}"
+ RecruitAnyGarrisonTroop = 200, /*NYI*/ // Recruit any Garrison Troop
+ StartResearchAnyGarrisonTalent = 201, /*NYI*/ // Garrison Talent: Start Research Any
+ StartResearchGarrisonTalent = 202, /*NYI*/ // Garrison Talent: Start Research "{GarrTalent}"
+ CompleteAnyWorldQuest = 203, /*NYI*/ // Complete Any Quest
+ EarnLicense = 204, /*NYI*/ // Earn License "{BattlePayDeliverable}" (does NOT work for box level)
+ CollectTransmogSetFromGroup = 205, // (Account Only) Collect a Transmog Set from Group "{TransmogSetGroup}"
+ ParagonLevelIncreaseWithFaction = 206, /*NYI*/ // (Player) paragon level increase with faction "{Faction}"
+ PlayerHasEarnedHonor = 207, /*NYI*/ // Player has earned honor
+ KillCreatureScenario = 208, /*NYI*/ // Kill NPC "{Creature}" (scenario criteria only, do not use for player)
+ ArtifactPowerRankPurchased = 209, /*NYI*/ // Artifact Power Rank of "{ArtifactPower}" Purchased
+ ChooseAnyRelicTalent = 210, /*NYI*/ // Choose any Relic Talent
+ ChooseRelicTalent = 211, /*NYI*/ // Choose Relic Talent "{ArtifactPower}"
+ EarnExpansionLevel = 212, /*NYI*/ // Earn Expansion Level "{$Expansion Level}"
+ AccountHonorLevelReached = 213, /*NYI*/ // (Account Only) honor level {#Level} reached
+ EarnArtifactXPForAzeriteItem = 214, // Earn Artifact experience for Azerite Item
+ AzeriteLevelReached = 215, // Azerite Level {#Azerite Level} reached
+ MythicPlusCompleted = 216, /*NYI*/ // Mythic Plus Completed
+ ScenarioGroupCompleted = 217, /*NYI*/ // Scenario Group Completed
+ CompleteAnyReplayQuest = 218, // Complete Any Replay Quest
+ BuyItemsFromVendors = 219, // Buy items from vendors
+ SellItemsToVendors = 220, // Sell items to vendors
+ ReachMaxLevel = 221, /*NYI*/ // Reach Max Level
+ MemorizeSpell = 222, /*NYI*/ // Memorize Spell "{Spell}"
+ LearnTransmogIllusion = 223, /*NYI*/ // Learn Transmog Illusion
+ LearnAnyTransmogIllusion = 224, /*NYI*/ // Learn Any Transmog Illusion
+ EnterTopLevelArea = 225, // Enter Top Level Map Area "{AreaTable}"
+ LeaveTopLevelArea = 226, /*NYI*/ // Leave Top Level Map Area "{AreaTable}"
+ SocketGarrisonTalent = 227, /*NYI*/ // Socket Garrison Talent {GarrTalent}
+ SocketAnySoulbindConduit = 228, /*NYI*/ // Socket Any Soulbind Conduit
+ ObtainAnyItemWithCurrencyValue = 229, /*NYI*/ // Obtain Any Item With Currency Value "{CurrencyTypes}"
+ MythicPlusRatingAttained = 230, /*NYI*/ // (Player) Mythic+ Rating "{#DungeonScore}" attained
+ SpentTalentPoint = 231, /*NYI*/ // (Player) spent talent point
+
+ Count
+};
enum class CriteriaTreeFlags : uint16
{
diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp
index fe2a3b02f2b..9cae257d87b 100644
--- a/src/server/game/DungeonFinding/LFGMgr.cpp
+++ b/src/server/game/DungeonFinding/LFGMgr.cpp
@@ -1450,7 +1450,7 @@ void LFGMgr::FinishDungeon(ObjectGuid gguid, const uint32 dungeonId, Map const*
// Update achievements
if (dungeon->difficulty == DIFFICULTY_HEROIC)
- player->UpdateCriteria(CRITERIA_TYPE_USE_LFD_TO_GROUP_WITH_PLAYERS, 1);
+ player->UpdateCriteria(CriteriaType::CompletedLFGDungeonWithStrangers, 1);
LfgReward const* reward = GetRandomDungeonReward(rDungeonId, player->getLevel());
if (!reward)
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index a18fe4277d8..4b7e2964b06 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -2046,7 +2046,7 @@ void GameObject::Use(Unit* user)
Player* player = user->ToPlayer();
player->SendLoot(GetGUID(), LOOT_FISHINGHOLE);
- player->UpdateCriteria(CRITERIA_TYPE_FISH_IN_GAMEOBJECT, GetGOInfo()->entry);
+ player->UpdateCriteria(CriteriaType::CatchFishInFishingHole, GetGOInfo()->entry);
return;
}
diff --git a/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.cpp b/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.cpp
index f81b2e1a6b2..293e5485689 100644
--- a/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.cpp
+++ b/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.cpp
@@ -258,7 +258,7 @@ void AzeriteItem::GiveXP(uint64 xp)
SetUpdateFieldValue(m_values.ModifyValue(&AzeriteItem::m_azeriteItemData).ModifyValue(&UF::AzeriteItemData::Xp), currentXP);
- owner->UpdateCriteria(CRITERIA_TYPE_HEART_OF_AZEROTH_ARTIFACT_POWER_EARNED, xp);
+ owner->UpdateCriteria(CriteriaType::EarnArtifactXPForAzeriteItem, xp);
// changing azerite level changes item level, need to update stats
if (m_azeriteItemData->Level != level)
@@ -268,7 +268,7 @@ void AzeriteItem::GiveXP(uint64 xp)
SetUpdateFieldValue(m_values.ModifyValue(&AzeriteItem::m_azeriteItemData).ModifyValue(&UF::AzeriteItemData::Level), level);
UnlockDefaultMilestones();
- owner->UpdateCriteria(CRITERIA_TYPE_HEART_OF_AZEROTH_LEVEL_REACHED, level);
+ owner->UpdateCriteria(CriteriaType::AzeriteLevelReached, level);
if (IsEquipped())
owner->_ApplyItemBonuses(this, GetSlot(), true);
diff --git a/src/server/game/Entities/Player/CollectionMgr.cpp b/src/server/game/Entities/Player/CollectionMgr.cpp
index bf1ed68072e..cd5a7a147d8 100644
--- a/src/server/game/Entities/Player/CollectionMgr.cpp
+++ b/src/server/game/Entities/Player/CollectionMgr.cpp
@@ -799,13 +799,13 @@ void CollectionMgr::AddItemAppearance(ItemModifiedAppearanceEntry const* itemMod
{
int32 transmogSlot = ItemTransmogrificationSlots[item->InventoryType];
if (transmogSlot >= 0)
- _owner->GetPlayer()->UpdateCriteria(CRITERIA_TYPE_APPEARANCE_UNLOCKED_BY_SLOT, transmogSlot, itemModifiedAppearance->ID);
+ _owner->GetPlayer()->UpdateCriteria(CriteriaType::LearnAnyTransmogInSlot, transmogSlot, itemModifiedAppearance->ID);
}
if (std::vector<TransmogSetEntry const*> const* sets = sDB2Manager.GetTransmogSetsForItemModifiedAppearance(itemModifiedAppearance->ID))
for (TransmogSetEntry const* set : *sets)
if (IsSetCompleted(set->ID))
- _owner->GetPlayer()->UpdateCriteria(CRITERIA_TYPE_TRANSMOG_SET_UNLOCKED, set->TransmogSetGroupID);
+ _owner->GetPlayer()->UpdateCriteria(CriteriaType::CollectTransmogSetFromGroup, set->TransmogSetGroupID);
}
void CollectionMgr::AddTemporaryAppearance(ObjectGuid const& itemGuid, ItemModifiedAppearanceEntry const* itemModifiedAppearance)
diff --git a/src/server/game/Entities/Player/KillRewarder.cpp b/src/server/game/Entities/Player/KillRewarder.cpp
index 35e3b892e01..4cf0befcaa0 100644
--- a/src/server/game/Entities/Player/KillRewarder.cpp
+++ b/src/server/game/Entities/Player/KillRewarder.cpp
@@ -180,7 +180,7 @@ inline void KillRewarder::_RewardKillCredit(Player* player)
if (Creature* target = _victim->ToCreature())
{
player->KilledMonster(target->GetCreatureTemplate(), target->GetGUID());
- player->UpdateCriteria(CRITERIA_TYPE_KILL_CREATURE_TYPE, target->GetCreatureType(), 1, 0, target);
+ player->UpdateCriteria(CriteriaType::KillAnyCreature, target->GetCreatureType(), 1, 0, target);
}
}
@@ -244,7 +244,7 @@ void KillRewarder::_RewardGroup()
if (_killer == member || member->IsAtGroupRewardDistance(_victim))
{
_RewardPlayer(member, isDungeon);
- member->UpdateCriteria(CRITERIA_TYPE_SPECIAL_PVP_KILL, 1, 0, 0, _victim);
+ member->UpdateCriteria(CriteriaType::KillPlayer, 1, 0, 0, _victim);
}
}
}
@@ -282,9 +282,9 @@ void KillRewarder::Reward()
if (ObjectGuid::LowType guildId = victim->GetMap()->GetOwnerGuildId())
if (Guild* guild = sGuildMgr->GetGuildById(guildId))
- guild->UpdateCriteria(CRITERIA_TYPE_KILL_CREATURE, victim->GetEntry(), 1, 0, victim, _killer);
+ guild->UpdateCriteria(CriteriaType::KillCreature, victim->GetEntry(), 1, 0, victim, _killer);
if (Scenario* scenario = victim->GetScenario())
- scenario->UpdateCriteria(CRITERIA_TYPE_KILL_CREATURE, victim->GetEntry(), 1, 0, victim, _killer);
+ scenario->UpdateCriteria(CriteriaType::KillCreature, victim->GetEntry(), 1, 0, victim, _killer);
}
}
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 7b4a05056cc..7e19587d496 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -683,7 +683,7 @@ uint32 Player::EnvironmentalDamage(EnviromentalDamage type, uint32 damage)
SendDurabilityLoss(this, 10);
}
- UpdateCriteria(CRITERIA_TYPE_DEATHS_FROM, 1, type);
+ UpdateCriteria(CriteriaType::DieFromEnviromentalDamage, 1, type);
}
return final_damage;
@@ -1259,9 +1259,9 @@ void Player::setDeathState(DeathState s)
InitializeSelfResurrectionSpells();
- UpdateCriteria(CRITERIA_TYPE_DEATH_AT_MAP, 1);
- UpdateCriteria(CRITERIA_TYPE_DEATH, 1);
- UpdateCriteria(CRITERIA_TYPE_DEATH_IN_DUNGEON, 1);
+ UpdateCriteria(CriteriaType::DieOnMap, 1);
+ UpdateCriteria(CriteriaType::DieAnywhere, 1);
+ UpdateCriteria(CriteriaType::DieInInstance, 1);
// reset all death criterias
ResetCriteria(CriteriaFailEvent::Death, 0);
@@ -2377,8 +2377,8 @@ void Player::GiveLevel(uint8 level)
CharacterDatabase.CommitTransaction(trans);
}
- UpdateCriteria(CRITERIA_TYPE_REACH_LEVEL);
- UpdateCriteria(CRITERIA_TYPE_ACTIVELY_REACH_LEVEL, level);
+ UpdateCriteria(CriteriaType::ReachLevel);
+ UpdateCriteria(CriteriaType::ActivelyReachLevel, level);
PushQuests();
@@ -3051,11 +3051,11 @@ bool Player::AddSpell(uint32 spellId, bool active, bool learning, bool dependent
// not ranked skills
for (SkillLineAbilityMap::const_iterator _spell_idx = skill_bounds.first; _spell_idx != skill_bounds.second; ++_spell_idx)
{
- UpdateCriteria(CRITERIA_TYPE_LEARN_SKILL_LINE, _spell_idx->second->SkillLine);
- UpdateCriteria(CRITERIA_TYPE_LEARN_SKILLLINE_SPELLS, _spell_idx->second->SkillLine);
+ UpdateCriteria(CriteriaType::LearnTradeskillSkillLine, _spell_idx->second->SkillLine);
+ UpdateCriteria(CriteriaType::LearnSpellFromSkillLine, _spell_idx->second->SkillLine);
}
- UpdateCriteria(CRITERIA_TYPE_LEARN_SPELL, spellId);
+ UpdateCriteria(CriteriaType::LearnOrKnowSpell, spellId);
}
// needs to be when spell is already learned, to prevent infinite recursion crashes
@@ -3068,7 +3068,7 @@ bool Player::AddSpell(uint32 spellId, bool active, bool learning, bool dependent
if (entry->SummonSpellID == int32(spellId) && GetSession()->GetBattlePetMgr()->GetPetCount(entry->ID) == 0)
{
GetSession()->GetBattlePetMgr()->AddPet(entry->ID, entry->CreatureID, BattlePetMgr::RollPetBreed(entry->ID), BattlePetMgr::GetDefaultPetQuality(entry->ID));
- UpdateCriteria(CRITERIA_TYPE_OWN_BATTLE_PET_COUNT);
+ UpdateCriteria(CriteriaType::UniquePetsOwned);
break;
}
}
@@ -3453,8 +3453,8 @@ bool Player::ResetTalents(bool noCost)
if (!noCost)
{
ModifyMoney(-(int64)cost);
- UpdateCriteria(CRITERIA_TYPE_GOLD_SPENT_FOR_TALENTS, cost);
- UpdateCriteria(CRITERIA_TYPE_NUMBER_OF_TALENT_RESETS, 1);
+ UpdateCriteria(CriteriaType::MoneySpentOnRespecs, cost);
+ UpdateCriteria(CriteriaType::TotalRespecs, 1);
SetTalentResetCost(cost);
SetTalentResetTime(GameTime::GetGameTime());
@@ -5588,7 +5588,7 @@ bool Player::UpdateSkillPro(uint16 skillId, int32 chance, uint32 step)
}
UpdateSkillEnchantments(skillId, value, new_value);
- UpdateCriteria(CRITERIA_TYPE_REACH_SKILL_LEVEL, skillId);
+ UpdateCriteria(CriteriaType::SkillRaised, skillId);
TC_LOG_DEBUG("entities.player.skills", "Player::UpdateSkillPro: Player '%s' (%s), SkillID: %u, Chance: %3.1f%% taken",
GetName().c_str(), GetGUID().ToString().c_str(), skillId, chance / 10.0f);
return true;
@@ -5684,8 +5684,8 @@ void Player::SetSkill(uint16 id, uint16 step, uint16 newVal, uint16 maxVal)
if (newVal > currVal)
UpdateSkillEnchantments(id, currVal, newVal);
- UpdateCriteria(CRITERIA_TYPE_REACH_SKILL_LEVEL, id);
- UpdateCriteria(CRITERIA_TYPE_LEARN_SKILL_LEVEL, id);
+ UpdateCriteria(CriteriaType::SkillRaised, id);
+ UpdateCriteria(CriteriaType::AchieveSkillStep, id);
// update skill state
if (itr->second.uState == SKILL_UNCHANGED)
@@ -5807,8 +5807,8 @@ void Player::SetSkill(uint16 id, uint16 step, uint16 newVal, uint16 maxVal)
if (newVal)
{
- UpdateCriteria(CRITERIA_TYPE_REACH_SKILL_LEVEL, id);
- UpdateCriteria(CRITERIA_TYPE_LEARN_SKILL_LEVEL, id);
+ UpdateCriteria(CriteriaType::SkillRaised, id);
+ UpdateCriteria(CriteriaType::AchieveSkillStep, id);
// temporary bonuses
for (AuraEffect* effect : GetAuraEffectsByType(SPELL_AURA_MOD_SKILL))
@@ -6178,7 +6178,7 @@ void Player::CheckAreaExploreAndOutdoor()
{
SetUpdateFieldFlagValue(m_values.ModifyValue(&Player::m_activePlayerData).ModifyValue(&UF::ActivePlayerData::ExploredZones, offset), val);
- UpdateCriteria(CRITERIA_TYPE_EXPLORE_AREA, GetAreaId());
+ UpdateCriteria(CriteriaType::RevealWorldMapOverlay, GetAreaId());
if (Optional<ContentTuningLevels> areaLevels = sDB2Manager.GetContentTuningData(areaEntry->ContentTuningID, m_playerData->CtrOptions->ContentTuningConditionMask))
{
@@ -6563,11 +6563,11 @@ bool Player::RewardHonor(Unit* victim, uint32 groupsize, int32 honor, bool pvpto
ApplyModUpdateFieldValue(m_values.ModifyValue(&Player::m_activePlayerData).ModifyValue(&UF::ActivePlayerData::TodayHonorableKills), 1, true);
// and those in a lifetime
ApplyModUpdateFieldValue(m_values.ModifyValue(&Player::m_activePlayerData).ModifyValue(&UF::ActivePlayerData::LifetimeHonorableKills), 1, true);
- UpdateCriteria(CRITERIA_TYPE_EARN_HONORABLE_KILL);
- UpdateCriteria(CRITERIA_TYPE_HK_CLASS, victim->getClass());
- UpdateCriteria(CRITERIA_TYPE_HK_RACE, victim->getRace());
- UpdateCriteria(CRITERIA_TYPE_HONORABLE_KILL_AT_AREA, GetAreaId());
- UpdateCriteria(CRITERIA_TYPE_HONORABLE_KILL, 1, 0, 0, victim);
+ UpdateCriteria(CriteriaType::HonorableKills);
+ UpdateCriteria(CriteriaType::DeliverKillingBlowToClass, victim->getClass());
+ UpdateCriteria(CriteriaType::DeliverKillingBlowToRace, victim->getRace());
+ UpdateCriteria(CriteriaType::PVPKillInArea, GetAreaId());
+ UpdateCriteria(CriteriaType::EarnHonorableKill, 1, 0, 0, victim);
}
else
{
@@ -6712,7 +6712,7 @@ void Player::SetHonorLevel(uint8 level)
SetUpdateFieldValue(m_values.ModifyValue(&Player::m_playerData).ModifyValue(&UF::PlayerData::HonorLevel), level);
UpdateHonorNextLevel();
- UpdateCriteria(CRITERIA_TYPE_HONOR_LEVEL_REACHED);
+ UpdateCriteria(CriteriaType::HonorLevelIncrease);
}
void Player::UpdateHonorNextLevel()
@@ -6979,7 +6979,7 @@ void Player::ModifyCurrency(uint32 id, int32 count, bool printLog/* = true*/, bo
itr->second.TrackedQuantity = newTrackedCount;
if (count > 0)
- UpdateCriteria(CRITERIA_TYPE_CURRENCY, id, count);
+ UpdateCriteria(CriteriaType::CurrencyGained, id, count);
WorldPackets::Misc::SetCurrency packet;
packet.Type = id;
@@ -7186,7 +7186,7 @@ void Player::UpdateArea(uint32 newArea)
PushQuests();
- UpdateCriteria(CRITERIA_TYPE_TRAVELLED_TO_AREA, newArea);
+ UpdateCriteria(CriteriaType::EnterTopLevelArea, newArea);
}
void Player::UpdateZone(uint32 newZone, uint32 newArea)
@@ -7417,8 +7417,8 @@ void Player::DuelComplete(DuelCompleteType type)
}
break;
case DUEL_WON:
- UpdateCriteria(CRITERIA_TYPE_LOSE_DUEL, 1);
- duel->opponent->UpdateCriteria(CRITERIA_TYPE_WIN_DUEL, 1);
+ UpdateCriteria(CriteriaType::LoseDuel, 1);
+ duel->opponent->UpdateCriteria(CriteriaType::WinDuel, 1);
// Credit for quest Death's Challenge
if (getClass() == CLASS_DEATH_KNIGHT && duel->opponent->GetQuestStatus(12733) == QUEST_STATUS_INCOMPLETE)
@@ -12043,8 +12043,8 @@ Item* Player::StoreNewItem(ItemPosCountVec const& pos, uint32 itemId, bool updat
if (item)
{
ItemAddedQuestCheck(itemId, count);
- UpdateCriteria(CRITERIA_TYPE_OBTAIN_ANY_ITEM, itemId, count);
- UpdateCriteria(CRITERIA_TYPE_OWN_ITEM, itemId, 1);
+ UpdateCriteria(CriteriaType::ObtainAnyItem, itemId, count);
+ UpdateCriteria(CriteriaType::AcquireItem, itemId, 1);
item->AddItemFlag(ITEM_FIELD_FLAG_NEW_ITEM);
@@ -12233,7 +12233,7 @@ Item* Player::EquipNewItem(uint16 pos, uint32 item, ItemContext context, bool up
if (Item* pItem = Item::CreateItem(item, 1, context, this))
{
ItemAddedQuestCheck(item, 1);
- UpdateCriteria(CRITERIA_TYPE_OBTAIN_ANY_ITEM, item, 1);
+ UpdateCriteria(CriteriaType::ObtainAnyItem, item, 1);
return EquipItem(pos, pItem, update);
}
@@ -12347,8 +12347,8 @@ Item* Player::EquipItem(uint16 pos, Item* pItem, bool update)
CheckTitanGripPenalty();
// only for full equip instead adding to stack
- UpdateCriteria(CRITERIA_TYPE_EQUIP_ITEM, pItem->GetEntry());
- UpdateCriteria(CRITERIA_TYPE_EQUIP_ITEM_IN_SLOT, slot, pItem->GetEntry());
+ UpdateCriteria(CriteriaType::EquipItem, pItem->GetEntry());
+ UpdateCriteria(CriteriaType::EquipItemInSlot, slot, pItem->GetEntry());
UpdateAverageItemLevelEquipped();
@@ -12475,8 +12475,8 @@ void Player::QuickEquipItem(uint16 pos, Item* pItem)
if (slot == EQUIPMENT_SLOT_MAINHAND || slot == EQUIPMENT_SLOT_OFFHAND)
CheckTitanGripPenalty();
- UpdateCriteria(CRITERIA_TYPE_EQUIP_ITEM, pItem->GetEntry());
- UpdateCriteria(CRITERIA_TYPE_EQUIP_ITEM_IN_SLOT, slot, pItem->GetEntry());
+ UpdateCriteria(CriteriaType::EquipItem, pItem->GetEntry());
+ UpdateCriteria(CriteriaType::EquipItemInSlot, slot, pItem->GetEntry());
}
}
@@ -12635,7 +12635,7 @@ void Player::MoveItemToInventory(ItemPosCountVec const& dest, Item* pItem, bool
{
// update quest counters
ItemAddedQuestCheck(pItem->GetEntry(), pItem->GetCount());
- UpdateCriteria(CRITERIA_TYPE_OBTAIN_ANY_ITEM, pItem->GetEntry(), pItem->GetCount());
+ UpdateCriteria(CriteriaType::ObtainAnyItem, pItem->GetEntry(), pItem->GetCount());
// store item
Item* pLastItem = StoreItem(dest, pItem, update);
@@ -15702,7 +15702,7 @@ void Player::RewardQuest(Quest const* quest, LootItemType rewardType, uint32 rew
ModifyMoney(moneyRew);
if (moneyRew > 0)
- UpdateCriteria(CRITERIA_TYPE_MONEY_FROM_QUEST_REWARD, uint32(moneyRew));
+ UpdateCriteria(CriteriaType::MoneyEarnedFromQuesting, uint32(moneyRew));
}
// honor reward
@@ -15733,8 +15733,8 @@ void Player::RewardQuest(Quest const* quest, LootItemType rewardType, uint32 rew
SetDailyQuestStatus(quest_id);
if (quest->IsDaily())
{
- UpdateCriteria(CRITERIA_TYPE_COMPLETE_DAILY_QUEST, quest_id);
- UpdateCriteria(CRITERIA_TYPE_COMPLETE_DAILY_QUEST_DAILY, quest_id);
+ UpdateCriteria(CriteriaType::CompleteDailyQuest, quest_id);
+ UpdateCriteria(CriteriaType::CompleteAnyDailyQuestPerDay, quest_id);
}
}
else if (quest->IsWeekly())
@@ -15782,10 +15782,10 @@ void Player::RewardQuest(Quest const* quest, LootItemType rewardType, uint32 rew
}
if (quest->GetZoneOrSort() > 0)
- UpdateCriteria(CRITERIA_TYPE_COMPLETE_QUESTS_IN_ZONE, quest->GetQuestId());
- UpdateCriteria(CRITERIA_TYPE_COMPLETE_QUEST_COUNT);
- UpdateCriteria(CRITERIA_TYPE_COMPLETE_QUEST, quest->GetQuestId());
- UpdateCriteria(CRITERIA_TYPE_COMPLETE_QUEST_ACCUMULATE, 1);
+ UpdateCriteria(CriteriaType::CompleteQuestsInZone, quest->GetQuestId());
+ UpdateCriteria(CriteriaType::CompleteQuestsCount);
+ UpdateCriteria(CriteriaType::CompleteQuest, quest->GetQuestId());
+ UpdateCriteria(CriteriaType::CompleteAnyReplayQuest, 1);
// make full db save
SaveToDB(false);
@@ -16870,7 +16870,7 @@ void Player::KilledMonsterCredit(uint32 entry, ObjectGuid guid /*= ObjectGuid::E
}
StartCriteriaTimer(CriteriaStartEvent::KillNPC, real_entry); // MUST BE CALLED FIRST
- UpdateCriteria(CRITERIA_TYPE_KILL_CREATURE, real_entry, addKillCount, 0, killed);
+ UpdateCriteria(CriteriaType::KillCreature, real_entry, addKillCount, 0, killed);
UpdateQuestObjectiveProgress(QUEST_OBJECTIVE_MONSTER, entry, 1, guid);
}
@@ -22695,7 +22695,7 @@ bool Player::ActivateTaxiPathTo(std::vector<uint32> const& nodes, Creature* npc
}
//Checks and preparations done, DO FLIGHT
- UpdateCriteria(CRITERIA_TYPE_FLIGHT_PATHS_TAKEN, 1);
+ UpdateCriteria(CriteriaType::BuyTaxi, 1);
// prevent stealth flight
//RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags::Interacting);
@@ -22706,14 +22706,14 @@ bool Player::ActivateTaxiPathTo(std::vector<uint32> const& nodes, Creature* npc
ASSERT(lastPathNode);
m_taxi.ClearTaxiDestinations();
ModifyMoney(-int64(totalcost));
- UpdateCriteria(CRITERIA_TYPE_GOLD_SPENT_FOR_TRAVELLING, totalcost);
+ UpdateCriteria(CriteriaType::MoneySpentOnTaxis, totalcost);
TeleportTo(lastPathNode->ContinentID, lastPathNode->Pos.X, lastPathNode->Pos.Y, lastPathNode->Pos.Z, GetOrientation());
return false;
}
else
{
ModifyMoney(-int64(firstcost));
- UpdateCriteria(CRITERIA_TYPE_GOLD_SPENT_FOR_TRAVELLING, firstcost);
+ UpdateCriteria(CriteriaType::MoneySpentOnTaxis, firstcost);
GetSession()->SendActivateTaxiReply(ERR_TAXIOK);
GetSession()->SendDoFlight(mount_display_id, sourcepath);
}
@@ -23290,7 +23290,7 @@ bool Player::BuyItemFromVendorSlot(ObjectGuid vendorguid, uint32 vendorslot, uin
if (Guild* guild = GetGuild())
guild->AddGuildNews(GUILD_NEWS_ITEM_PURCHASED, GetGUID(), 0, item);
- UpdateCriteria(CRITERIA_TYPE_BOUGHT_ITEM_FROM_VENDOR, 1);
+ UpdateCriteria(CriteriaType::BuyItemsFromVendors, 1);
return true;
}
@@ -24062,7 +24062,7 @@ void Player::SetMoney(uint64 value)
{
MoneyChanged(value);
SetUpdateFieldValue(m_values.ModifyValue(&Player::m_activePlayerData).ModifyValue(&UF::ActivePlayerData::Coinage), value);
- UpdateCriteria(CRITERIA_TYPE_HIGHEST_GOLD_VALUE_OWNED);
+ UpdateCriteria(CriteriaType::MostMoneyOwned);
}
bool Player::IsQuestRewarded(uint32 quest_id) const
@@ -25165,7 +25165,7 @@ void Player::SummonIfPossible(bool agree)
m_summon_expire = 0;
- UpdateCriteria(CRITERIA_TYPE_ACCEPTED_SUMMONINGS, 1);
+ UpdateCriteria(CriteriaType::AcceptSummon, 1);
RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags::Summon);
TeleportTo(m_summon_location);
@@ -26302,9 +26302,9 @@ void Player::StoreLootItem(uint8 lootSlot, Loot* loot, AELootResult* aeResult/*
if (!aeResult)
{
SendNewItem(newitem, uint32(item->count), false, false, true);
- UpdateCriteria(CRITERIA_TYPE_LOOT_ITEM, item->itemid, item->count);
- UpdateCriteria(CRITERIA_TYPE_LOOT_TYPE, item->itemid, item->count, loot->loot_type);
- UpdateCriteria(CRITERIA_TYPE_LOOT_ANY_ITEM, item->itemid, item->count);
+ UpdateCriteria(CriteriaType::LootItem, item->itemid, item->count);
+ UpdateCriteria(CriteriaType::GetLootByType, item->itemid, item->count, loot->loot_type);
+ UpdateCriteria(CriteriaType::LootAnyItem, item->itemid, item->count);
}
else
aeResult->Add(newitem, item->count, loot->loot_type);
@@ -26539,7 +26539,7 @@ void Player::HandleFall(MovementInfo const& movementInfo)
// recheck alive, might have died of EnvironmentalDamage, avoid cases when player die in fact like Spirit of Redemption case
if (IsAlive() && final_damage < original_health)
- UpdateCriteria(CRITERIA_TYPE_FALL_WITHOUT_DYING, uint32(z_diff*100));
+ UpdateCriteria(CriteriaType::MaxDistFallenWithoutDying, uint32(z_diff*100));
}
//Z given by moveinfo, LastZ, FallTime, WaterZ, MapZ, Damage, Safefall reduction
@@ -26589,7 +26589,7 @@ void Player::ResetCriteria(CriteriaFailEvent condition, int32 failAsset, bool ev
m_questObjectiveCriteriaMgr->ResetCriteria(condition, failAsset, evenIfCriteriaComplete);
}
-void Player::UpdateCriteria(CriteriaTypes type, uint64 miscValue1 /*= 0*/, uint64 miscValue2 /*= 0*/, uint64 miscValue3 /*= 0*/, WorldObject* ref /*= nullptr*/)
+void Player::UpdateCriteria(CriteriaType type, uint64 miscValue1 /*= 0*/, uint64 miscValue2 /*= 0*/, uint64 miscValue3 /*= 0*/, WorldObject* ref /*= nullptr*/)
{
m_achievementMgr->UpdateCriteria(type, miscValue1, miscValue2, miscValue3, ref, this);
m_questObjectiveCriteriaMgr->UpdateCriteria(type, miscValue1, miscValue2, miscValue3, ref, this);
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 35cd545fe26..649f2ee9a31 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -2494,7 +2494,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
bool HasAchieved(uint32 achievementId) const;
void ResetAchievements();
void ResetCriteria(CriteriaFailEvent condition, int32 failAsset, bool evenIfCriteriaComplete = false);
- void UpdateCriteria(CriteriaTypes type, uint64 miscValue1 = 0, uint64 miscValue2 = 0, uint64 miscValue3 = 0, WorldObject* ref = nullptr);
+ void UpdateCriteria(CriteriaType type, uint64 miscValue1 = 0, uint64 miscValue2 = 0, uint64 miscValue3 = 0, WorldObject* ref = nullptr);
void StartCriteriaTimer(CriteriaStartEvent startEvent, uint32 entry, uint32 timeLost = 0);
void RemoveCriteriaTimer(CriteriaStartEvent startEvent, uint32 entry);
void CompletedAchievement(AchievementEntry const* entry);
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 7ed94e06164..10edd2ef852 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -807,13 +807,13 @@ bool Unit::HasBreakableByDamageCrowdControlAura(Unit* excludeCasterChannel) cons
if (Battleground* bg = killer->GetBattleground())
bg->UpdatePlayerScore(killer, SCORE_DAMAGE_DONE, damage);
- killer->UpdateCriteria(CRITERIA_TYPE_DAMAGE_DONE, health > damage ? damage : health, 0, 0, victim);
- killer->UpdateCriteria(CRITERIA_TYPE_HIGHEST_HIT_DEALT, damage);
+ killer->UpdateCriteria(CriteriaType::DamageDealt, health > damage ? damage : health, 0, 0, victim);
+ killer->UpdateCriteria(CriteriaType::HighestDamageDone, damage);
}
}
if (victim->GetTypeId() == TYPEID_PLAYER)
- victim->ToPlayer()->UpdateCriteria(CRITERIA_TYPE_HIGHEST_HIT_RECEIVED, damage);
+ victim->ToPlayer()->UpdateCriteria(CriteriaType::HighestDamageTaken, damage);
if (attacker)
damage /= victim->GetHealthMultiplierForTarget(attacker);
@@ -835,7 +835,7 @@ bool Unit::HasBreakableByDamageCrowdControlAura(Unit* excludeCasterChannel) cons
killed = true;
if (victim->GetTypeId() == TYPEID_PLAYER && victim != attacker)
- victim->ToPlayer()->UpdateCriteria(CRITERIA_TYPE_TOTAL_DAMAGE_RECEIVED, health);
+ victim->ToPlayer()->UpdateCriteria(CriteriaType::TotalDamageTaken, health);
if (damagetype != NODAMAGE && damagetype != SELF_DAMAGE && victim->HasAuraType(SPELL_AURA_SCHOOL_ABSORB_OVERKILL))
{
@@ -904,7 +904,7 @@ bool Unit::HasBreakableByDamageCrowdControlAura(Unit* excludeCasterChannel) cons
else
{
if (victim->GetTypeId() == TYPEID_PLAYER)
- victim->ToPlayer()->UpdateCriteria(CRITERIA_TYPE_TOTAL_DAMAGE_RECEIVED, damage);
+ victim->ToPlayer()->UpdateCriteria(CriteriaType::TotalDamageTaken, damage);
victim->ModifyHealth(-(int32)damage);
@@ -6089,16 +6089,16 @@ void Unit::SetCharm(Unit* charm, bool apply)
// use the actual gain, as the overheal shall not be counted, skip gain 0 (it ignored anyway in to criteria)
if (gain)
- player->UpdateCriteria(CRITERIA_TYPE_HEALING_DONE, gain, 0, 0, victim);
+ player->UpdateCriteria(CriteriaType::HealingDone, gain, 0, 0, victim);
- player->UpdateCriteria(CRITERIA_TYPE_HIGHEST_HEAL_CAST, addhealth);
+ player->UpdateCriteria(CriteriaType::HighestHealCast, addhealth);
}
}
if (Player* player = victim->ToPlayer())
{
- player->UpdateCriteria(CRITERIA_TYPE_TOTAL_HEALING_RECEIVED, gain);
- player->UpdateCriteria(CRITERIA_TYPE_HIGHEST_HEALING_RECEIVED, addhealth);
+ player->UpdateCriteria(CriteriaType::TotalHealReceived, gain);
+ player->UpdateCriteria(CriteriaType::HighestHealReceived, addhealth);
}
if (gain)
@@ -10445,7 +10445,7 @@ void Unit::SetMeleeAnimKitId(uint16 animKitId)
// and before Spirit of Redemption as it also removes auras
if (attacker)
if (Player* killerPlayer = attacker->GetCharmerOrOwnerPlayerOrPlayerItself())
- killerPlayer->UpdateCriteria(CRITERIA_TYPE_GET_KILLING_BLOWS, 1, 0, 0, victim);
+ killerPlayer->UpdateCriteria(CriteriaType::DeliveredKillingBlow, 1, 0, 0, victim);
if (!skipSettingDeathState)
{
@@ -10578,9 +10578,9 @@ void Unit::SetMeleeAnimKitId(uint16 animKitId)
if (attacker && victim->GetTypeId() == TYPEID_PLAYER)
{
if (attacker->GetTypeId() == TYPEID_UNIT)
- victim->ToPlayer()->UpdateCriteria(CRITERIA_TYPE_KILLED_BY_CREATURE, attacker->GetEntry());
+ victim->ToPlayer()->UpdateCriteria(CriteriaType::KilledByCreature, attacker->GetEntry());
else if (attacker->GetTypeId() == TYPEID_PLAYER && victim != attacker)
- victim->ToPlayer()->UpdateCriteria(CRITERIA_TYPE_KILLED_BY_PLAYER, 1, attacker->ToPlayer()->GetTeam());
+ victim->ToPlayer()->UpdateCriteria(CriteriaType::KilledByPlayer, 1, attacker->ToPlayer()->GetTeam());
}
// Hook for OnPVPKill Event
diff --git a/src/server/game/Garrison/Garrison.cpp b/src/server/game/Garrison/Garrison.cpp
index 756581dfc2b..1f09b37f61f 100644
--- a/src/server/game/Garrison/Garrison.cpp
+++ b/src/server/game/Garrison/Garrison.cpp
@@ -421,7 +421,7 @@ void Garrison::PlaceBuilding(uint32 garrPlotInstanceId, uint32 garrBuildingId)
_owner->SendDirectMessage(buildingRemoved.Write());
}
- _owner->UpdateCriteria(CRITERIA_TYPE_PLACE_GARRISON_BUILDING, garrBuildingId);
+ _owner->UpdateCriteria(CriteriaType::PlaceGarrisonBuilding, garrBuildingId);
}
_owner->SendDirectMessage(placeBuildingResult.Write());
@@ -495,7 +495,7 @@ void Garrison::ActivateBuilding(uint32 garrPlotInstanceId)
buildingActivated.GarrPlotInstanceID = garrPlotInstanceId;
_owner->SendDirectMessage(buildingActivated.Write());
- _owner->UpdateCriteria(CRITERIA_TYPE_UPGRADE_GARRISON_BUILDING, plot->BuildingInfo.PacketInfo->GarrBuildingID);
+ _owner->UpdateCriteria(CriteriaType::ActivateAnyGarrisonBuilding, plot->BuildingInfo.PacketInfo->GarrBuildingID);
}
}
}
@@ -530,7 +530,7 @@ void Garrison::AddFollower(uint32 garrFollowerId)
addFollowerResult.Follower = follower.PacketInfo;
_owner->SendDirectMessage(addFollowerResult.Write());
- _owner->UpdateCriteria(CRITERIA_TYPE_RECRUIT_GARRISON_FOLLOWER, follower.PacketInfo.DbID);
+ _owner->UpdateCriteria(CriteriaType::RecruitGarrisonFollower, follower.PacketInfo.DbID);
}
Garrison::Follower const* Garrison::GetFollower(uint64 dbId) const
diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp
index 07be71b46ff..5c23b76fa9c 100644
--- a/src/server/game/Groups/Group.cpp
+++ b/src/server/game/Groups/Group.cpp
@@ -1258,7 +1258,7 @@ void Group::CountTheRoll(Rolls::iterator rollI, Map* allowedMap)
if (player && player->GetSession())
{
- player->UpdateCriteria(CRITERIA_TYPE_ROLL_NEED_ON_LOOT, roll->itemid, maxresul);
+ player->UpdateCriteria(CriteriaType::RollNeed, roll->itemid, maxresul);
ItemPosCountVec dest;
LootItem* item = &(roll->itemSlot >= roll->getLoot()->items.size() ? roll->getLoot()->quest_items[roll->itemSlot - roll->getLoot()->items.size()] : roll->getLoot()->items[roll->itemSlot]);
@@ -1322,7 +1322,7 @@ void Group::CountTheRoll(Rolls::iterator rollI, Map* allowedMap)
if (player && player->GetSession())
{
- player->UpdateCriteria(CRITERIA_TYPE_ROLL_GREED_ON_LOOT, roll->itemid, maxresul);
+ player->UpdateCriteria(CriteriaType::RollGreed, roll->itemid, maxresul);
LootItem* item = &(roll->itemSlot >= roll->getLoot()->items.size() ? roll->getLoot()->quest_items[roll->itemSlot - roll->getLoot()->items.size()] : roll->getLoot()->items[roll->itemSlot]);
@@ -1349,7 +1349,7 @@ void Group::CountTheRoll(Rolls::iterator rollI, Map* allowedMap)
item->is_looted = true;
roll->getLoot()->NotifyItemRemoved(roll->itemSlot);
roll->getLoot()->unlootedCount--;
- player->UpdateCriteria(CRITERIA_TYPE_CAST_SPELL, 13262); // Disenchant
+ player->UpdateCriteria(CriteriaType::CastSpell, 13262); // Disenchant
ItemDisenchantLootEntry const* disenchant = ASSERT_NOTNULL(roll->GetItemDisenchantLoot(player));
diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp
index 39b9d37e551..b170400c5d5 100644
--- a/src/server/game/Guilds/Guild.cpp
+++ b/src/server/game/Guilds/Guild.cpp
@@ -3521,7 +3521,7 @@ bool Guild::HasAchieved(uint32 achievementId) const
return m_achievementMgr.HasAchieved(achievementId);
}
-void Guild::UpdateCriteria(CriteriaTypes type, uint64 miscValue1, uint64 miscValue2, uint64 miscValue3, WorldObject* ref, Player* player)
+void Guild::UpdateCriteria(CriteriaType type, uint64 miscValue1, uint64 miscValue2, uint64 miscValue3, WorldObject* ref, Player* player)
{
m_achievementMgr.UpdateCriteria(type, miscValue1, miscValue2, miscValue3, ref, player);
}
diff --git a/src/server/game/Guilds/Guild.h b/src/server/game/Guilds/Guild.h
index 56fef1bdc70..2b2d1984a9a 100644
--- a/src/server/game/Guilds/Guild.h
+++ b/src/server/game/Guilds/Guild.h
@@ -841,7 +841,7 @@ class TC_GAME_API Guild
void ResetTimes(bool weekly);
bool HasAchieved(uint32 achievementId) const;
- void UpdateCriteria(CriteriaTypes type, uint64 miscValue1, uint64 miscValue2, uint64 miscValue3, WorldObject* ref, Player* player);
+ void UpdateCriteria(CriteriaType type, uint64 miscValue1, uint64 miscValue2, uint64 miscValue3, WorldObject* ref, Player* player);
protected:
ObjectGuid::LowType m_id;
diff --git a/src/server/game/Handlers/AuctionHouseHandler.cpp b/src/server/game/Handlers/AuctionHouseHandler.cpp
index 150c4821337..5c3e155132a 100644
--- a/src/server/game/Handlers/AuctionHouseHandler.cpp
+++ b/src/server/game/Handlers/AuctionHouseHandler.cpp
@@ -146,7 +146,7 @@ void WorldSession::HandleAuctionConfirmCommoditiesPurchase(WorldPackets::Auction
{
if (success)
{
- GetPlayer()->UpdateCriteria(CRITERIA_TYPE_WON_AUCTIONS, 1);
+ GetPlayer()->UpdateCriteria(CriteriaType::AuctionsWon, 1);
SendAuctionCommandResult(0, AuctionCommand::PlaceBid, AuctionResult::Ok, throttle.DelayUntilNext);
}
else
@@ -475,7 +475,7 @@ void WorldSession::HandleAuctionPlaceBid(WorldPackets::AuctionHouse::AuctionPlac
{
if (success)
{
- GetPlayer()->UpdateCriteria(CRITERIA_TYPE_HIGHEST_AUCTION_BID, bidAmount);
+ GetPlayer()->UpdateCriteria(CriteriaType::HighestAuctionBid, bidAmount);
SendAuctionCommandResult(auctionId, AuctionCommand::PlaceBid, AuctionResult::Ok, throttle.DelayUntilNext);
}
else
@@ -778,7 +778,7 @@ void WorldSession::HandleAuctionSellCommodity(WorldPackets::AuctionHouse::Auctio
{
if (success)
{
- GetPlayer()->UpdateCriteria(CRITERIA_TYPE_CREATE_AUCTION, 1);
+ GetPlayer()->UpdateCriteria(CriteriaType::ItemsPostedAtAuction, 1);
SendAuctionCommandResult(auctionId, AuctionCommand::SellItem, AuctionResult::Ok, throttle.DelayUntilNext);
}
else
@@ -926,7 +926,7 @@ void WorldSession::HandleAuctionSellItem(WorldPackets::AuctionHouse::AuctionSell
{
if (success)
{
- GetPlayer()->UpdateCriteria(CRITERIA_TYPE_CREATE_AUCTION, 1);
+ GetPlayer()->UpdateCriteria(CriteriaType::ItemsPostedAtAuction, 1);
SendAuctionCommandResult(auctionId, AuctionCommand::SellItem, AuctionResult::Ok, throttle.DelayUntilNext);
}
else
diff --git a/src/server/game/Handlers/BankHandler.cpp b/src/server/game/Handlers/BankHandler.cpp
index d87aa38e1f4..6010b0afec3 100644
--- a/src/server/game/Handlers/BankHandler.cpp
+++ b/src/server/game/Handlers/BankHandler.cpp
@@ -147,7 +147,7 @@ void WorldSession::HandleBuyBankSlotOpcode(WorldPackets::Bank::BuyBankSlot& pack
_player->SetBankBagSlotCount(slot);
_player->ModifyMoney(-int64(price));
- _player->UpdateCriteria(CRITERIA_TYPE_BUY_BANK_SLOT);
+ _player->UpdateCriteria(CriteriaType::BankSlotsPurchased);
}
void WorldSession::SendShowBank(ObjectGuid guid)
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp
index bce4ccd7049..20652bb9fee 100644
--- a/src/server/game/Handlers/CharacterHandler.cpp
+++ b/src/server/game/Handlers/CharacterHandler.cpp
@@ -1370,7 +1370,7 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder* holder)
m_playerLoading.Clear();
// Handle Login-Achievements (should be handled after loading)
- _player->UpdateCriteria(CRITERIA_TYPE_ON_LOGIN, 1);
+ _player->UpdateCriteria(CriteriaType::Login, 1);
sScriptMgr->OnPlayerLogin(pCurrChar, firstLogin);
@@ -1698,7 +1698,7 @@ void WorldSession::HandleAlterAppearance(WorldPackets::Character::AlterApperance
SendPacket(WorldPackets::Character::BarberShopResult(WorldPackets::Character::BarberShopResult::ResultEnum::Success).Write());
_player->ModifyMoney(-cost); // it isn't free
- _player->UpdateCriteria(CRITERIA_TYPE_GOLD_SPENT_AT_BARBER, cost);
+ _player->UpdateCriteria(CriteriaType::MoneySpentAtBarberShop, cost);
if (_player->GetNativeSex() != packet.NewSex)
{
@@ -1709,7 +1709,7 @@ void WorldSession::HandleAlterAppearance(WorldPackets::Character::AlterApperance
_player->SetCustomizations(Trinity::Containers::MakeIteratorPair(packet.Customizations.begin(), packet.Customizations.end()));
- _player->UpdateCriteria(CRITERIA_TYPE_VISIT_BARBER_SHOP, 1);
+ _player->UpdateCriteria(CriteriaType::GotHaircut, 1);
_player->SetStandState(UNIT_STAND_STATE_STAND);
diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp
index 2b2ac0cbf06..3a084ee81c4 100644
--- a/src/server/game/Handlers/ChatHandler.cpp
+++ b/src/server/game/Handlers/ChatHandler.cpp
@@ -629,7 +629,7 @@ void WorldSession::HandleTextEmoteOpcode(WorldPackets::Chat::CTextEmote& packet)
Unit* unit = ObjectAccessor::GetUnit(*_player, packet.Target);
- _player->UpdateCriteria(CRITERIA_TYPE_DO_EMOTE, packet.SoundIndex, 0, 0, unit);
+ _player->UpdateCriteria(CriteriaType::DoEmote, packet.SoundIndex, 0, 0, unit);
// Send scripted event call
if (unit)
diff --git a/src/server/game/Handlers/GroupHandler.cpp b/src/server/game/Handlers/GroupHandler.cpp
index 96affd34804..412fdb9b161 100644
--- a/src/server/game/Handlers/GroupHandler.cpp
+++ b/src/server/game/Handlers/GroupHandler.cpp
@@ -408,10 +408,10 @@ void WorldSession::HandleLootRoll(WorldPackets::Loot::LootRoll& packet)
switch (packet.RollType)
{
case ROLL_NEED:
- GetPlayer()->UpdateCriteria(CRITERIA_TYPE_ROLL_NEED, 1);
+ GetPlayer()->UpdateCriteria(CriteriaType::RollAnyNeed, 1);
break;
case ROLL_GREED:
- GetPlayer()->UpdateCriteria(CRITERIA_TYPE_ROLL_GREED, 1);
+ GetPlayer()->UpdateCriteria(CriteriaType::RollAnyGreed, 1);
break;
}
}
diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp
index dd9646d8dd2..a3f1f1dd7b7 100644
--- a/src/server/game/Handlers/ItemHandler.cpp
+++ b/src/server/game/Handlers/ItemHandler.cpp
@@ -458,8 +458,8 @@ void WorldSession::HandleSellItemOpcode(WorldPackets::Item::SellItem& packet)
return;
}
- _player->UpdateCriteria(CRITERIA_TYPE_MONEY_FROM_VENDORS, money);
- _player->UpdateCriteria(CRITERIA_TYPE_SOLD_ITEM_TO_VENDOR, 1);
+ _player->UpdateCriteria(CriteriaType::MoneyEarnedFromSales, money);
+ _player->UpdateCriteria(CriteriaType::SellItemsToVendors, 1);
if (packet.Amount < pItem->GetCount()) // need split items
{
@@ -1201,7 +1201,7 @@ void WorldSession::HandleUseCritterItem(WorldPackets::Item::UseCritterItem& useC
if (BattlePetSpeciesEntry const* entry = sSpellMgr->GetBattlePetSpecies(uint32(spellToLearn)))
{
GetBattlePetMgr()->AddPet(entry->ID, entry->CreatureID, BattlePetMgr::RollPetBreed(entry->ID), BattlePetMgr::GetDefaultPetQuality(entry->ID));
- _player->UpdateCriteria(CRITERIA_TYPE_OWN_BATTLE_PET_COUNT);
+ _player->UpdateCriteria(CriteriaType::UniquePetsOwned);
}
_player->DestroyItem(item->GetBagSlot(), item->GetSlot(), true);
diff --git a/src/server/game/Handlers/LootHandler.cpp b/src/server/game/Handlers/LootHandler.cpp
index f9074df7fbb..93f0b1947e0 100644
--- a/src/server/game/Handlers/LootHandler.cpp
+++ b/src/server/game/Handlers/LootHandler.cpp
@@ -135,9 +135,9 @@ void WorldSession::HandleAutostoreLootItemOpcode(WorldPackets::Loot::LootItem& p
for (AELootResult::ResultValue const& resultValue : aeResult)
{
player->SendNewItem(resultValue.item, resultValue.count, false, false, true);
- player->UpdateCriteria(CRITERIA_TYPE_LOOT_ITEM, resultValue.item->GetEntry(), resultValue.count);
- player->UpdateCriteria(CRITERIA_TYPE_LOOT_TYPE, resultValue.item->GetEntry(), resultValue.count, resultValue.lootType);
- player->UpdateCriteria(CRITERIA_TYPE_LOOT_ANY_ITEM, resultValue.item->GetEntry(), resultValue.count);
+ player->UpdateCriteria(CriteriaType::LootItem, resultValue.item->GetEntry(), resultValue.count);
+ player->UpdateCriteria(CriteriaType::GetLootByType, resultValue.item->GetEntry(), resultValue.count, resultValue.lootType);
+ player->UpdateCriteria(CriteriaType::LootAnyItem, resultValue.item->GetEntry(), resultValue.count);
}
}
}
@@ -229,7 +229,7 @@ void WorldSession::HandleLootMoneyOpcode(WorldPackets::Loot::LootMoney& /*packet
uint64 goldMod = CalculatePct(goldPerPlayer, (*i)->GetTotalAuraModifierByMiscValue(SPELL_AURA_MOD_MONEY_GAIN, 1));
(*i)->ModifyMoney(goldPerPlayer + goldMod);
- (*i)->UpdateCriteria(CRITERIA_TYPE_LOOT_MONEY, goldPerPlayer);
+ (*i)->UpdateCriteria(CriteriaType::MoneyLootedFromCreatures, goldPerPlayer);
WorldPackets::Loot::LootMoneyNotify packet;
packet.Money = goldPerPlayer;
@@ -243,7 +243,7 @@ void WorldSession::HandleLootMoneyOpcode(WorldPackets::Loot::LootMoney& /*packet
uint64 goldMod = CalculatePct(loot->gold, player->GetTotalAuraModifierByMiscValue(SPELL_AURA_MOD_MONEY_GAIN, 1));
player->ModifyMoney(loot->gold + goldMod);
- player->UpdateCriteria(CRITERIA_TYPE_LOOT_MONEY, loot->gold);
+ player->UpdateCriteria(CriteriaType::MoneyLootedFromCreatures, loot->gold);
WorldPackets::Loot::LootMoneyNotify packet;
packet.Money = loot->gold;
@@ -546,9 +546,9 @@ void WorldSession::HandleLootMasterGiveOpcode(WorldPackets::Loot::MasterLootItem
for (AELootResult::ResultValue const& resultValue : aeResult)
{
target->SendNewItem(resultValue.item, resultValue.count, false, false, true);
- target->UpdateCriteria(CRITERIA_TYPE_LOOT_ITEM, resultValue.item->GetEntry(), resultValue.count);
- target->UpdateCriteria(CRITERIA_TYPE_LOOT_TYPE, resultValue.item->GetEntry(), resultValue.count, resultValue.lootType);
- target->UpdateCriteria(CRITERIA_TYPE_LOOT_ANY_ITEM, resultValue.item->GetEntry(), resultValue.count);
+ target->UpdateCriteria(CriteriaType::LootItem, resultValue.item->GetEntry(), resultValue.count);
+ target->UpdateCriteria(CriteriaType::GetLootByType, resultValue.item->GetEntry(), resultValue.count, resultValue.lootType);
+ target->UpdateCriteria(CriteriaType::LootAnyItem, resultValue.item->GetEntry(), resultValue.count);
}
}
diff --git a/src/server/game/Handlers/MailHandler.cpp b/src/server/game/Handlers/MailHandler.cpp
index f6122bcd30a..784ddd23f92 100644
--- a/src/server/game/Handlers/MailHandler.cpp
+++ b/src/server/game/Handlers/MailHandler.cpp
@@ -273,7 +273,7 @@ void WorldSession::HandleSendMail(WorldPackets::Mail::SendMail& packet)
player->SendMailResult(0, MAIL_SEND, MAIL_OK);
player->ModifyMoney(-reqmoney);
- player->UpdateCriteria(CRITERIA_TYPE_GOLD_SPENT_FOR_MAIL, cost);
+ player->UpdateCriteria(CriteriaType::MoneySpentOnPostage, cost);
bool needItemDelay = false;
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp
index 5f96fb7ecc9..7e0d4832523 100644
--- a/src/server/game/Handlers/QuestHandler.cpp
+++ b/src/server/game/Handlers/QuestHandler.cpp
@@ -508,7 +508,7 @@ void WorldSession::HandleQuestLogRemoveQuest(WorldPackets::Quest::QuestLogRemove
_player->SetQuestSlot(packet.Entry, 0);
- _player->UpdateCriteria(CRITERIA_TYPE_QUEST_ABANDONED, 1);
+ _player->UpdateCriteria(CriteriaType::AbandonAnyQuest, 1);
}
}
diff --git a/src/server/game/Handlers/SpellHandler.cpp b/src/server/game/Handlers/SpellHandler.cpp
index 48fb3685060..f0a48c0eda3 100644
--- a/src/server/game/Handlers/SpellHandler.cpp
+++ b/src/server/game/Handlers/SpellHandler.cpp
@@ -267,7 +267,7 @@ void WorldSession::HandleGameobjectReportUse(WorldPackets::GameObject::GameObjRe
if (go->AI()->OnReportUse(_player))
return;
- _player->UpdateCriteria(CRITERIA_TYPE_USE_GAMEOBJECT, go->GetEntry());
+ _player->UpdateCriteria(CriteriaType::UseGameobject, go->GetEntry());
}
}
diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp
index 0df55ede4ab..00f8387e0ac 100644
--- a/src/server/game/Instances/InstanceScript.cpp
+++ b/src/server/game/Instances/InstanceScript.cpp
@@ -616,7 +616,7 @@ void InstanceScript::DoSendNotifyToInstance(char const* format, ...)
}
// Update Achievement Criteria for all players in instance
-void InstanceScript::DoUpdateCriteria(CriteriaTypes type, uint32 miscValue1 /*= 0*/, uint32 miscValue2 /*= 0*/, Unit* unit /*= nullptr*/)
+void InstanceScript::DoUpdateCriteria(CriteriaType type, uint32 miscValue1 /*= 0*/, uint32 miscValue2 /*= 0*/, Unit* unit /*= nullptr*/)
{
Map::PlayerList const& PlayerList = instance->GetPlayers();
diff --git a/src/server/game/Instances/InstanceScript.h b/src/server/game/Instances/InstanceScript.h
index cba5fa03936..8283caeb442 100644
--- a/src/server/game/Instances/InstanceScript.h
+++ b/src/server/game/Instances/InstanceScript.h
@@ -39,7 +39,7 @@ class ModuleReference;
class Player;
class Unit;
struct InstanceSpawnGroupInfo;
-enum CriteriaTypes : uint8;
+enum class CriteriaType : uint8;
enum class CriteriaStartEvent : uint8;
enum EncounterCreditType : uint8;
namespace WorldPackets
@@ -220,7 +220,7 @@ class TC_GAME_API InstanceScript : public ZoneScript
void DoSendNotifyToInstance(char const* format, ...);
// Update Achievement Criteria for all players in instance
- void DoUpdateCriteria(CriteriaTypes type, uint32 miscValue1 = 0, uint32 miscValue2 = 0, Unit* unit = nullptr);
+ void DoUpdateCriteria(CriteriaType type, uint32 miscValue1 = 0, uint32 miscValue2 = 0, Unit* unit = nullptr);
// Start/Stop Timed Achievement Criteria for all players in instance
void DoStartCriteriaTimer(CriteriaStartEvent startEvent, uint32 entry);
diff --git a/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp
index 1e07dbd1a31..cd4f09d40c8 100644
--- a/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp
@@ -165,7 +165,7 @@ bool FlightPathMovementGenerator::DoUpdate(Player* player, uint32 /*diff*/)
player->m_taxi.NextTaxiDestination();
if (!_pointsForPathSwitch.empty())
{
- player->UpdateCriteria(CRITERIA_TYPE_GOLD_SPENT_FOR_TRAVELLING, _pointsForPathSwitch.front().Cost);
+ player->UpdateCriteria(CriteriaType::MoneySpentOnTaxis, _pointsForPathSwitch.front().Cost);
player->ModifyMoney(-_pointsForPathSwitch.front().Cost);
}
}
diff --git a/src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp b/src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp
index 2d7082cdf5f..c704be563fb 100644
--- a/src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp
+++ b/src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp
@@ -37,8 +37,8 @@ QuestObjectiveCriteriaMgr::~QuestObjectiveCriteriaMgr()
void QuestObjectiveCriteriaMgr::CheckAllQuestObjectiveCriteria(Player* referencePlayer)
{
// suppress sending packets
- for (uint32 i = 0; i < CRITERIA_TYPE_TOTAL; ++i)
- UpdateCriteria(CriteriaTypes(i), 0, 0, 0, nullptr, referencePlayer);
+ for (uint32 i = 0; i < uint32(CriteriaType::Count); ++i)
+ UpdateCriteria(CriteriaType(i), 0, 0, 0, nullptr, referencePlayer);
}
void QuestObjectiveCriteriaMgr::Reset()
@@ -335,7 +335,7 @@ std::string QuestObjectiveCriteriaMgr::GetOwnerInfo() const
return Trinity::StringFormat("%s %s", _owner->GetGUID().ToString().c_str(), _owner->GetName().c_str());
}
-CriteriaList const& QuestObjectiveCriteriaMgr::GetCriteriaByType(CriteriaTypes type, uint32 /*asset*/) const
+CriteriaList const& QuestObjectiveCriteriaMgr::GetCriteriaByType(CriteriaType type, uint32 /*asset*/) const
{
return sCriteriaMgr->GetQuestObjectiveCriteriaByType(type);
}
diff --git a/src/server/game/Quests/QuestObjectiveCriteriaMgr.h b/src/server/game/Quests/QuestObjectiveCriteriaMgr.h
index 421b4103198..d2a97a93d47 100644
--- a/src/server/game/Quests/QuestObjectiveCriteriaMgr.h
+++ b/src/server/game/Quests/QuestObjectiveCriteriaMgr.h
@@ -54,7 +54,7 @@ protected:
void SendPacket(WorldPacket const* data) const override;
std::string GetOwnerInfo() const override;
- CriteriaList const& GetCriteriaByType(CriteriaTypes type, uint32 asset) const override;
+ CriteriaList const& GetCriteriaByType(CriteriaType type, uint32 asset) const override;
private:
Player* _owner;
diff --git a/src/server/game/Reputation/ReputationMgr.cpp b/src/server/game/Reputation/ReputationMgr.cpp
index 6514c4b03b2..89078dd3f6f 100644
--- a/src/server/game/Reputation/ReputationMgr.cpp
+++ b/src/server/game/Reputation/ReputationMgr.cpp
@@ -495,11 +495,11 @@ bool ReputationMgr::SetOneFactionReputation(FactionEntry const* factionEntry, in
if (!factionEntry->FriendshipRepID && !paragonReputation)
UpdateRankCounters(old_rank, new_rank);
- _player->UpdateCriteria(CRITERIA_TYPE_KNOWN_FACTIONS, factionEntry->ID);
- _player->UpdateCriteria(CRITERIA_TYPE_GAIN_REPUTATION, factionEntry->ID);
- _player->UpdateCriteria(CRITERIA_TYPE_GAIN_EXALTED_REPUTATION, factionEntry->ID);
- _player->UpdateCriteria(CRITERIA_TYPE_GAIN_REVERED_REPUTATION, factionEntry->ID);
- _player->UpdateCriteria(CRITERIA_TYPE_GAIN_HONORED_REPUTATION, factionEntry->ID);
+ _player->UpdateCriteria(CriteriaType::TotalFactionsEncountered, factionEntry->ID);
+ _player->UpdateCriteria(CriteriaType::ReputationGained, factionEntry->ID);
+ _player->UpdateCriteria(CriteriaType::TotalExaltedFactions, factionEntry->ID);
+ _player->UpdateCriteria(CriteriaType::TotalReveredFactions, factionEntry->ID);
+ _player->UpdateCriteria(CriteriaType::TotalHonoredFactions, factionEntry->ID);
return true;
}
diff --git a/src/server/game/Scenarios/InstanceScenario.cpp b/src/server/game/Scenarios/InstanceScenario.cpp
index baafc84c130..a60db23e417 100644
--- a/src/server/game/Scenarios/InstanceScenario.cpp
+++ b/src/server/game/Scenarios/InstanceScenario.cpp
@@ -59,10 +59,10 @@ void InstanceScenario::SaveToDB()
continue;
Criteria const* criteria = sCriteriaMgr->GetCriteria(iter->first);
- switch (CriteriaTypes(criteria->Entry->Type))
+ switch (CriteriaType(criteria->Entry->Type))
{
// Blizzard only appears to store creature kills
- case CRITERIA_TYPE_KILL_CREATURE:
+ case CriteriaType::KillCreature:
break;
default:
continue;
@@ -124,10 +124,10 @@ void InstanceScenario::LoadInstanceData(uint32 instanceId)
if (criteria->Entry->StartTimer && time_t(date + criteria->Entry->StartTimer) < now)
continue;
- switch (CriteriaTypes(criteria->Entry->Type))
+ switch (CriteriaType(criteria->Entry->Type))
{
// Blizzard appears to only stores creatures killed progress for unknown reasons. Either technical shortcoming or intentional
- case CRITERIA_TYPE_KILL_CREATURE:
+ case CriteriaType::KillCreature:
break;
default:
continue;
diff --git a/src/server/game/Scenarios/Scenario.cpp b/src/server/game/Scenarios/Scenario.cpp
index 6e92b5625f4..37032069e26 100644
--- a/src/server/game/Scenarios/Scenario.cpp
+++ b/src/server/game/Scenarios/Scenario.cpp
@@ -321,7 +321,7 @@ std::vector<WorldPackets::Achievement::CriteriaProgress> Scenario::GetCriteriasP
return criteriasProgress;
}
-CriteriaList const& Scenario::GetCriteriaByType(CriteriaTypes type, uint32 /*asset*/) const
+CriteriaList const& Scenario::GetCriteriaByType(CriteriaType type, uint32 /*asset*/) const
{
return sCriteriaMgr->GetScenarioCriteriaByType(type);
}
diff --git a/src/server/game/Scenarios/Scenario.h b/src/server/game/Scenarios/Scenario.h
index 596eae06077..683c317c8d4 100644
--- a/src/server/game/Scenarios/Scenario.h
+++ b/src/server/game/Scenarios/Scenario.h
@@ -94,7 +94,7 @@ class TC_GAME_API Scenario : public CriteriaHandler
std::vector<WorldPackets::Scenario::BonusObjectiveData> GetBonusObjectivesData();
std::vector<WorldPackets::Achievement::CriteriaProgress> GetCriteriasProgress();
- CriteriaList const& GetCriteriaByType(CriteriaTypes type, uint32 asset) const override;
+ CriteriaList const& GetCriteriaByType(CriteriaType type, uint32 asset) const override;
ScenarioData const* _data;
private:
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index fc4f69453d9..c6a22ef199c 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -2728,14 +2728,14 @@ SpellMissInfo Spell::PreprocessSpellHit(Unit* unit, TargetInfo& hitInfo)
if (Player* player = unit->ToPlayer())
{
player->StartCriteriaTimer(CriteriaStartEvent::BeSpellTarget, m_spellInfo->Id);
- player->UpdateCriteria(CRITERIA_TYPE_BE_SPELL_TARGET, m_spellInfo->Id, 0, 0, m_caster);
- player->UpdateCriteria(CRITERIA_TYPE_BE_SPELL_TARGET2, m_spellInfo->Id);
+ player->UpdateCriteria(CriteriaType::BeSpellTarget, m_spellInfo->Id, 0, 0, m_caster);
+ player->UpdateCriteria(CriteriaType::GainAura, m_spellInfo->Id);
}
if (Player* player = m_caster->ToPlayer())
{
player->StartCriteriaTimer(CriteriaStartEvent::CastSpell, m_spellInfo->Id);
- player->UpdateCriteria(CRITERIA_TYPE_CAST_SPELL2, m_spellInfo->Id, 0, 0, unit);
+ player->UpdateCriteria(CriteriaType::LandTargetedSpellOnTarget, m_spellInfo->Id, 0, 0, unit);
}
if (m_caster != unit)
@@ -3435,10 +3435,10 @@ void Spell::_cast(bool skipCheck)
if (!(_triggeredCastFlags & TRIGGERED_IGNORE_CAST_ITEM) && m_CastItem)
{
player->StartCriteriaTimer(CriteriaStartEvent::UseItem, m_CastItem->GetEntry());
- player->UpdateCriteria(CRITERIA_TYPE_USE_ITEM, m_CastItem->GetEntry());
+ player->UpdateCriteria(CriteriaType::UseItem, m_CastItem->GetEntry());
}
- player->UpdateCriteria(CRITERIA_TYPE_CAST_SPELL, m_spellInfo->Id);
+ player->UpdateCriteria(CriteriaType::CastSpell, m_spellInfo->Id);
}
if (!(_triggeredCastFlags & TRIGGERED_IGNORE_POWER_AND_REAGENT_COST))