diff options
| -rw-r--r-- | src/server/game/Achievements/CriteriaHandler.cpp | 114 | ||||
| -rw-r--r-- | src/server/game/DataStores/DBCEnums.h | 86 |
2 files changed, 172 insertions, 28 deletions
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp index a35a5b0a452..03fbbb50a3a 100644 --- a/src/server/game/Achievements/CriteriaHandler.cpp +++ b/src/server/game/Achievements/CriteriaHandler.cpp @@ -480,7 +480,6 @@ void CriteriaHandler::UpdateCriteria(CriteriaTypes type, uint64 miscValue1 /*= 0 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_SEND_EVENT: case CRITERIA_TYPE_PLACE_GARRISON_BUILDING: case CRITERIA_TYPE_OWN_BATTLE_PET_COUNT: SetCriteriaProgress(criteria, 1, referencePlayer, PROGRESS_ACCUMULATE); @@ -728,6 +727,36 @@ void CriteriaHandler::UpdateCriteria(CriteriaTypes type, uint64 miscValue1 /*= 0 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_HONOR_LEVEL_REACHED: + case CRITERIA_TYPE_PRESTIGE_REACHED: + case CRITERIA_TYPE_ORDER_HALL_TALENT_LEARNED: + case CRITERIA_TYPE_APPEARANCE_UNLOCKED_BY_SLOT: + case CRITERIA_TYPE_ORDER_HALL_RECRUIT_TROOP: + case CRITERIA_TYPE_COMPLETE_WORLD_QUEST: break; // Not implemented yet :( } @@ -1086,7 +1115,6 @@ bool CriteriaHandler::IsCompletedCriteria(Criteria const* criteria, uint64 requi case CRITERIA_TYPE_CURRENCY: case CRITERIA_TYPE_PLACE_GARRISON_BUILDING: case CRITERIA_TYPE_OWN_BATTLE_PET_COUNT: - case CRITERIA_TYPE_SEND_EVENT: return progress->Counter >= requiredAmount; case CRITERIA_TYPE_COMPLETE_ACHIEVEMENT: case CRITERIA_TYPE_COMPLETE_QUEST: @@ -1245,7 +1273,6 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis case CRITERIA_TYPE_WIN_DUEL: case CRITERIA_TYPE_WIN_RATED_ARENA: case CRITERIA_TYPE_WON_AUCTIONS: - case CRITERIA_TYPE_SEND_EVENT: if (!miscValue1) return false; break; @@ -1646,6 +1673,18 @@ bool CriteriaHandler::AdditionalRequirementsSatisfied(ModifierTreeNode const* tr if (miscValue1 != reqValue) return false; break; + case CRITERIA_ADDITIONAL_CONDITION_GARRISON_FOLLOWER_ENTRY: // 144 + { + if (!referencePlayer) + return false; + Garrison* garrison = referencePlayer->GetGarrison(); + if (!garrison) + return false; + Garrison::Follower const* follower = garrison->GetFollower(miscValue1); + if (!follower || follower->PacketInfo.GarrFollowerID != reqValue) + return false; + break; + } case CRITERIA_ADDITIONAL_CONDITION_GARRISON_FOLLOWER_QUALITY: // 145 { if (!referencePlayer) @@ -1705,8 +1744,12 @@ char const* CriteriaMgr::GetCriteriaTypeString(CriteriaTypes type) 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: @@ -1735,6 +1778,10 @@ char const* CriteriaMgr::GetCriteriaTypeString(CriteriaTypes type) 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: @@ -1813,6 +1860,8 @@ char const* CriteriaMgr::GetCriteriaTypeString(CriteriaTypes type) 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: @@ -1825,8 +1874,12 @@ char const* CriteriaMgr::GetCriteriaTypeString(CriteriaTypes type) 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: @@ -1837,8 +1890,12 @@ char const* CriteriaMgr::GetCriteriaTypeString(CriteriaTypes type) 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: @@ -1859,12 +1916,18 @@ char const* CriteriaMgr::GetCriteriaTypeString(CriteriaTypes type) return "LOOT_EPIC_ITEM"; case CRITERIA_TYPE_RECEIVE_EPIC_ITEM: return "RECEIVE_EPIC_ITEM"; - case CRITERIA_TYPE_SEND_EVENT: - return "SEND_EVENT"; + 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: @@ -1893,8 +1956,18 @@ char const* CriteriaMgr::GetCriteriaTypeString(CriteriaTypes type) 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: @@ -1919,6 +1992,8 @@ char const* CriteriaMgr::GetCriteriaTypeString(CriteriaTypes type) 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: @@ -1939,6 +2014,8 @@ char const* CriteriaMgr::GetCriteriaTypeString(CriteriaTypes type) 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: @@ -1969,12 +2046,16 @@ char const* CriteriaMgr::GetCriteriaTypeString(CriteriaTypes type) 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: @@ -1987,10 +2068,26 @@ char const* CriteriaMgr::GetCriteriaTypeString(CriteriaTypes type) return "OWN_TOY"; case CRITERIA_TYPE_OWN_TOY_COUNT: return "OWN_TOY_COUNT"; - case CRITERIA_TYPE_RECRUIT_GARRISON_FOLLOWER: - return "RECRUIT_GARRISON_FOLLOWER"; + 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_HONOR_LEVEL_REACHED: + return "HONOR_LEVEL_REACHED"; + case CRITERIA_TYPE_PRESTIGE_REACHED: + return "PRESTIGE_REACHED"; + 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"; } return "MISSING_TYPE"; } @@ -2142,6 +2239,9 @@ void CriteriaMgr::LoadCriteriaList() uint32 scenarioCriterias = 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); + auto treeItr = _criteriaTreeByCriteria.find(criteriaEntry->ID); if (treeItr == _criteriaTreeByCriteria.end()) continue; diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h index 5d1b3e536f8..ebdf6eac626 100644 --- a/src/server/game/DataStores/DBCEnums.h +++ b/src/server/game/DataStores/DBCEnums.h @@ -219,7 +219,9 @@ enum CriteriaAdditionalCondition CRITERIA_ADDITIONAL_CONDITION_RATED_BATTLEGROUND = 63, // NYI CRITERIA_ADDITIONAL_CONDITION_PROJECT_RARITY = 65, CRITERIA_ADDITIONAL_CONDITION_PROJECT_RACE = 66, + CRITERIA_ADDITIONAL_CONDITION_CHALLENGE_MODE_MEDAL = 83, // NYI CRITERIA_ADDITIONAL_CONDITION_BATTLE_PET_SPECIES = 91, + CRITERIA_ADDITIONAL_CONDITION_GARRISON_FOLLOWER_ENTRY = 144, CRITERIA_ADDITIONAL_CONDITION_GARRISON_FOLLOWER_QUALITY = 145, CRITERIA_ADDITIONAL_CONDITION_GARRISON_FOLLOWER_LEVEL = 146, CRITERIA_ADDITIONAL_CONDITION_GARRISON_RARE_MISSION = 147, // NYI @@ -257,8 +259,11 @@ enum CriteriaTypes { 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, @@ -273,8 +278,11 @@ enum CriteriaTypes 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, @@ -307,25 +315,30 @@ enum CriteriaTypes 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, - /// @todo 73: Achievements 1515, 1241, 1103 (Name: Mal'Ganis) + 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, @@ -336,9 +349,15 @@ enum CriteriaTypes CRITERIA_TYPE_KNOWN_FACTIONS = 89, CRITERIA_TYPE_LOOT_EPIC_ITEM = 90, CRITERIA_TYPE_RECEIVE_EPIC_ITEM = 91, - CRITERIA_TYPE_SEND_EVENT = 92, + 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, @@ -349,11 +368,19 @@ enum CriteriaTypes 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, @@ -361,18 +388,20 @@ enum CriteriaTypes 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 unk - // 141 unk - // 142 unk - // 143 unk - // 144 unk + // 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, @@ -381,44 +410,59 @@ enum CriteriaTypes CRITERIA_TYPE_COUNT_OF_LFR_QUEUE_BOOSTS_BY_TANK = 150, CRITERIA_TYPE_COMPLETE_SCENARIO_COUNT = 151, CRITERIA_TYPE_COMPLETE_SCENARIO = 152, - // CRITERIA_TYPE_REACH_SOMETHING_LIKE_AREATRIGGER = 153, - // 154 + 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 + // 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, - // 172 + 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, - // 176 - // 177 + CRITERIA_TYPE_RECRUIT_GARRISON_FOLLOWER = 176, + // 177 - 0 criterias (Legion - 23420) CRITERIA_TYPE_LEARN_GARRISON_BLUEPRINT_COUNT = 178, - // 179 - // 180 - // 181 + // 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 = 187, - CRITERIA_TYPE_OWN_HEIRLOOMS = 189 -}; - -#define CRITERIA_TYPE_TOTAL 190 + 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_HONOR_LEVEL_REACHED = 194, + CRITERIA_TYPE_PRESTIGE_REACHED = 195, + // 196 - CRITERIA_TYPE_REACH_LEVEL_2 or something + // 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. +}; + +#define CRITERIA_TYPE_TOTAL 205 enum CriteriaTreeFlags : uint16 { |
