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