aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrudor <erikstrandberg93@hotmail.com>2017-03-17 19:14:13 +0100
committerShauren <shauren.trinity@gmail.com>2017-03-17 19:14:13 +0100
commit77d1080ff5516b11d579277e1267c21ea4f24bfe (patch)
tree418cb691cfffcf15b94d5ea3ddc2a832001fc27c
parent769bc15ba06d5192289ea4ffd8067ca80f5e26b9 (diff)
Core/Criterias: Fix an old criteria condition and added some new ones
Closes #19246
-rw-r--r--src/server/game/Achievements/CriteriaHandler.cpp13
-rw-r--r--src/server/game/DataStores/DBCEnums.h19
2 files changed, 28 insertions, 4 deletions
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp
index ac0ee493d88..50d91a7fdff 100644
--- a/src/server/game/Achievements/CriteriaHandler.cpp
+++ b/src/server/game/Achievements/CriteriaHandler.cpp
@@ -1621,11 +1621,14 @@ bool CriteriaHandler::AdditionalRequirementsSatisfied(ModifierTreeNode const* tr
return false;
break;
}
- case CRITERIA_ADDITIONAL_CONDITION_MAP_DIFFICULTY: // 20
- if (uint32(referencePlayer->GetMap()->GetDifficultyID()) != reqValue)
+ case CRITERIA_ADDITIONAL_CONDITION_MAP_DIFFICULTY_OLD: // 20
+ {
+ DifficultyEntry const* difficulty = sDifficultyStore.LookupEntry(referencePlayer->GetMap()->GetDifficultyID());
+ if (!difficulty || difficulty->OldEnumValue == -1 || uint32(difficulty->OldEnumValue) != reqValue)
return false;
break;
- case CRITERIA_ADDITIONAL_CONDITION_ARENA_TYPE:
+ }
+ case CRITERIA_ADDITIONAL_CONDITION_ARENA_TYPE: // 24
{
Battleground* bg = referencePlayer->GetBattleground();
if (!bg || !bg->isArena() || bg->GetArenaType() != reqValue)
@@ -1686,6 +1689,10 @@ bool CriteriaHandler::AdditionalRequirementsSatisfied(ModifierTreeNode const* tr
if (!unit || unit->GetHealthPct() >= reqValue)
return false;
break;
+ case CRITERIA_ADDITIONAL_CONDITION_RATED_BATTLEGROUND_RATING: // 64
+ if (referencePlayer->GetRBGPersonalRating() < reqValue)
+ return false;
+ break;
case CRITERIA_ADDITIONAL_CONDITION_BATTLE_PET_SPECIES: // 91
if (miscValue1 != reqValue)
return false;
diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h
index 63b52094dd9..fee84a8ae03 100644
--- a/src/server/game/DataStores/DBCEnums.h
+++ b/src/server/game/DataStores/DBCEnums.h
@@ -191,7 +191,7 @@ enum CriteriaAdditionalCondition
CRITERIA_ADDITIONAL_CONDITION_UNK16 = 16,
CRITERIA_ADDITIONAL_CONDITION_SOURCE_AREA_OR_ZONE = 17,
CRITERIA_ADDITIONAL_CONDITION_TARGET_AREA_OR_ZONE = 18,
- CRITERIA_ADDITIONAL_CONDITION_MAP_DIFFICULTY = 20,
+ CRITERIA_ADDITIONAL_CONDITION_MAP_DIFFICULTY_OLD = 20,
CRITERIA_ADDITIONAL_CONDITION_TARGET_CREATURE_YIELDS_XP = 21, // NYI
CRITERIA_ADDITIONAL_CONDITION_ARENA_TYPE = 24,
CRITERIA_ADDITIONAL_CONDITION_SOURCE_RACE = 25,
@@ -217,9 +217,25 @@ enum CriteriaAdditionalCondition
CRITERIA_ADDITIONAL_CONDITION_REQUIRES_GUILD_GROUP = 61, // NYI
CRITERIA_ADDITIONAL_CONDITION_GUILD_REPUTATION = 62, // NYI
CRITERIA_ADDITIONAL_CONDITION_RATED_BATTLEGROUND = 63, // NYI
+ CRITERIA_ADDITIONAL_CONDITION_RATED_BATTLEGROUND_RATING = 64,
CRITERIA_ADDITIONAL_CONDITION_PROJECT_RARITY = 65,
CRITERIA_ADDITIONAL_CONDITION_PROJECT_RACE = 66,
+ CRITERIA_ADDITIONAL_CONDITION_WORLD_STATE = 67, // NYI
+ CRITERIA_ADDITIONAL_CONDITION_MAP_DIFFICULTY = 68, // NYI
+ CRITERIA_ADDITIONAL_CONDITION_PLAYER_LEVEL = 69, // NYI
+ CRITERIA_ADDITIONAL_CONDITION_TARGET_PLAYER_LEVEL = 70, // NYI
+ //CRITERIA_ADDITIONAL_CONDITION_PLAYER_LEVEL_ON_ACCOUNT = 71, // Not verified
+ //CRITERIA_ADDITIONAL_CONDITION_UNK73 = 73, // References another modifier tree id
+ CRITERIA_ADDITIONAL_CONDITION_SCENARIO_ID = 74, // NYI
+ CRITERIA_ADDITIONAL_CONDITION_BATTLE_PET_FAMILY = 78, // NYI
+ CRITERIA_ADDITIONAL_CONDITION_BATTLE_PET_HEALTH_PCT = 79, // NYI
+ //CRITERIA_ADDITIONAL_CONDITION_UNK80 = 80 // Something to do with world bosses
+ CRITERIA_ADDITIONAL_CONDITION_BATTLE_PET_ENTRY = 81, // NYI
+ //CRITERIA_ADDITIONAL_CONDITION_BATTLE_PET_ENTRY_ID = 82, // Some sort of data id?
CRITERIA_ADDITIONAL_CONDITION_CHALLENGE_MODE_MEDAL = 83, // NYI
+ //CRITERIA_ADDITIONAL_CONDITION_UNK84 = 84, // Quest id
+ //CRITERIA_ADDITIONAL_CONDITION_UNK86 = 86, // Some external event id
+ //CRITERIA_ADDITIONAL_CONDITION_UNK87 = 87, // Achievement id
CRITERIA_ADDITIONAL_CONDITION_BATTLE_PET_SPECIES = 91,
CRITERIA_ADDITIONAL_CONDITION_GARRISON_FOLLOWER_ENTRY = 144,
CRITERIA_ADDITIONAL_CONDITION_GARRISON_FOLLOWER_QUALITY = 145,
@@ -227,6 +243,7 @@ enum CriteriaAdditionalCondition
CRITERIA_ADDITIONAL_CONDITION_GARRISON_RARE_MISSION = 147, // NYI
CRITERIA_ADDITIONAL_CONDITION_GARRISON_BUILDING_LEVEL = 149, // NYI
CRITERIA_ADDITIONAL_CONDITION_GARRISON_MISSION_TYPE = 167, // NYI
+ CRITERIA_ADDITIONAL_CONDITION_PLAYER_ITEM_LEVEL = 169, // NYI
CRITERIA_ADDITIONAL_CONDITION_GARRISON_FOLLOWER_ILVL = 184,
};