Core/Achievements: Define and implement new ModifierTree types
Port TrinityCore Commit: https://github.com/TrinityCore/TrinityCore/commit/fbf05e69bb999aa1186ca913cca832f8903affa4
This commit is contained in:
@@ -101,18 +101,21 @@ namespace Framework.Constants
|
||||
public enum CriteriaAdditionalCondition
|
||||
{
|
||||
SourceDrunkValue = 1,
|
||||
Unk2 = 2,
|
||||
SourcePlayerCondition = 2,
|
||||
ItemLevel = 3,
|
||||
TargetCreatureEntry = 4,
|
||||
TargetMustBePlayer = 5,
|
||||
TargetMustBeDead = 6,
|
||||
TargetMustBeEnemy = 7,
|
||||
SourceHasAura = 8,
|
||||
SourceHasAuraType = 9,
|
||||
TargetHasAura = 10,
|
||||
TargetHasAuraType = 11,
|
||||
SourceAuraState = 12,
|
||||
TargetAuraState = 13,
|
||||
ItemQualityMin = 14,
|
||||
ItemQualityEquals = 15,
|
||||
Unk16 = 16,
|
||||
SourceIsAlive = 16,
|
||||
SourceAreaOrZone = 17,
|
||||
TargetAreaOrZone = 18,
|
||||
MapDifficultyOld = 20,
|
||||
@@ -134,7 +137,7 @@ namespace Framework.Constants
|
||||
TargetLevel = 40,
|
||||
TargetZone = 41,
|
||||
TargetHealthPercentBelow = 46,
|
||||
Unk55 = 55,
|
||||
TargetPlayerCondition = 55,
|
||||
MinAchievementPoints = 56,
|
||||
RequiresLfgGroup = 58,
|
||||
Unk60 = 60,
|
||||
@@ -162,13 +165,16 @@ namespace Framework.Constants
|
||||
//CRITERIA_ADDITIONAL_CONDITION_UNK87 = 87, // Achievement id
|
||||
BattlePetSpecies = 91,
|
||||
Expansion = 92,
|
||||
RewardedQuest = 110,
|
||||
CompletedQuest = 111,
|
||||
CompletedQuestObjective = 112, // NYI, QuestObjectiveID
|
||||
GarrisonFollowerEntry = 144,
|
||||
GarrisonFollowerQuality = 145,
|
||||
GarrisonFollowerLevel = 146,
|
||||
GarrisonRareMission = 147, // NYI
|
||||
GarrisonBuildingLevel = 149, // NYI
|
||||
GarrisonMissionType = 167, // NYI
|
||||
PLayerItemLevel = 169, // NYI
|
||||
PlayerItemLevel = 169, // NYI
|
||||
GarrisonFollowILvl = 184,
|
||||
HonorLevel = 193,
|
||||
PrestigeLevel = 194
|
||||
|
||||
@@ -1189,6 +1189,13 @@ namespace Game.Achievements
|
||||
uint reqValue = tree.Entry.Asset;
|
||||
switch ((CriteriaAdditionalCondition)reqType)
|
||||
{
|
||||
case CriteriaAdditionalCondition.SourcePlayerCondition: // 2
|
||||
{
|
||||
PlayerConditionRecord playerCondition = CliDB.PlayerConditionStorage.LookupByKey(reqValue);
|
||||
if (playerCondition == null || !ConditionManager.IsPlayerMeetingCondition(referencePlayer, playerCondition))
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
case CriteriaAdditionalCondition.ItemLevel: // 3
|
||||
{
|
||||
// miscValue1 is itemid
|
||||
@@ -1217,6 +1224,10 @@ namespace Game.Achievements
|
||||
if (!referencePlayer.HasAura(reqValue))
|
||||
return false;
|
||||
break;
|
||||
case CriteriaAdditionalCondition.SourceHasAuraType: // 9
|
||||
if (!referencePlayer.HasAuraType((AuraType)reqValue))
|
||||
return false;
|
||||
break;
|
||||
case CriteriaAdditionalCondition.TargetHasAura: // 10
|
||||
if (unit == null || !unit.HasAura(reqValue))
|
||||
return false;
|
||||
@@ -1225,6 +1236,14 @@ namespace Game.Achievements
|
||||
if (unit == null || !unit.HasAuraType((AuraType)reqValue))
|
||||
return false;
|
||||
break;
|
||||
case CriteriaAdditionalCondition.SourceAuraState: // 12
|
||||
if (!referencePlayer.HasAuraState((AuraStateType)reqValue))
|
||||
return false;
|
||||
break;
|
||||
case CriteriaAdditionalCondition.TargetAuraState: // 13
|
||||
if (!unit || !unit.HasAuraState((AuraStateType)reqValue))
|
||||
return false;
|
||||
break;
|
||||
case CriteriaAdditionalCondition.ItemQualityMin: // 14
|
||||
{
|
||||
// miscValue1 is itemid
|
||||
@@ -1326,6 +1345,16 @@ namespace Game.Achievements
|
||||
if (unit == null || unit.GetHealthPct() >= reqValue)
|
||||
return false;
|
||||
break;
|
||||
case CriteriaAdditionalCondition.TargetPlayerCondition: // 55
|
||||
{
|
||||
if (unit == null || !unit.IsPlayer())
|
||||
return false;
|
||||
|
||||
PlayerConditionRecord playerCondition = CliDB.PlayerConditionStorage.LookupByKey(reqValue);
|
||||
if (playerCondition == null || !ConditionManager.IsPlayerMeetingCondition(unit.ToPlayer(), playerCondition))
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
case CriteriaAdditionalCondition.RatedBattlegroundRating: // 64
|
||||
if (referencePlayer.GetRBGPersonalRating() < reqValue)
|
||||
return false;
|
||||
@@ -1341,6 +1370,14 @@ namespace Game.Achievements
|
||||
if (miscValue1 != reqValue)
|
||||
return false;
|
||||
break;
|
||||
case CriteriaAdditionalCondition.RewardedQuest: // 110
|
||||
if (!referencePlayer.GetQuestRewardStatus(reqValue))
|
||||
return false;
|
||||
break;
|
||||
case CriteriaAdditionalCondition.CompletedQuest: // 111
|
||||
if (referencePlayer.GetQuestStatus(reqValue) != QuestStatus.Complete)
|
||||
return false;
|
||||
break;
|
||||
case CriteriaAdditionalCondition.GarrisonFollowerEntry: // 144
|
||||
{
|
||||
if (!referencePlayer)
|
||||
|
||||
Reference in New Issue
Block a user