Core/Criteria: Implemented CompleteAnyScenario and CompleteScenario types

Port From (https://github.com/TrinityCore/TrinityCore/commit/980ca4c65682657fecd13fc63fde63d5c92fab04)
This commit is contained in:
Hondacrx
2024-08-24 23:56:43 -04:00
parent 69c65fb16d
commit 62829e83c4
3 changed files with 18 additions and 5 deletions
@@ -659,8 +659,8 @@ namespace Framework.Constants
KickVoterInLFRDungeon = 148, /*NYI*/ // Kicked in an LFR dungeon (voter) KickVoterInLFRDungeon = 148, /*NYI*/ // Kicked in an LFR dungeon (voter)
KickTargetInLFRDungeon = 149, /*NYI*/ // Kicked in an LFR dungeon (target) KickTargetInLFRDungeon = 149, /*NYI*/ // Kicked in an LFR dungeon (target)
GroupedTankLeftEarlyInLFRDungeon = 150, /*NYI*/ // Grouped tank left early in an LFR dungeon GroupedTankLeftEarlyInLFRDungeon = 150, /*NYI*/ // Grouped tank left early in an LFR dungeon
CompleteAnyScenario = 151, /*NYI*/ // Complete a Scenario CompleteAnyScenario = 151, // Complete a Scenario
CompleteScenario = 152, /*NYI*/ // Complete scenario "{Scenario}" CompleteScenario = 152, // Complete scenario "{Scenario}"
EnterAreaTriggerWithActionSet = 153, /*NYI*/ // Enter area trigger "{AreaTriggerActionSet}" EnterAreaTriggerWithActionSet = 153, /*NYI*/ // Enter area trigger "{AreaTriggerActionSet}"
LeaveAreaTriggerWithActionSet = 154, /*NYI*/ // Leave area trigger "{AreaTriggerActionSet}" LeaveAreaTriggerWithActionSet = 154, /*NYI*/ // Leave area trigger "{AreaTriggerActionSet}"
LearnedNewPet = 155, // (Account Only) Learned a new pet LearnedNewPet = 155, // (Account Only) Learned a new pet
+10 -3
View File
@@ -128,6 +128,8 @@ namespace Game.Achievements
case CriteriaType.Login: case CriteriaType.Login:
case CriteriaType.AnyoneTriggerGameEventScenario: case CriteriaType.AnyoneTriggerGameEventScenario:
case CriteriaType.DefeatDungeonEncounterWhileElegibleForLoot: case CriteriaType.DefeatDungeonEncounterWhileElegibleForLoot:
case CriteriaType.CompleteAnyScenario:
case CriteriaType.CompleteScenario:
case CriteriaType.BattlePetReachLevel: case CriteriaType.BattlePetReachLevel:
case CriteriaType.ActivelyEarnPetLevel: case CriteriaType.ActivelyEarnPetLevel:
case CriteriaType.DefeatDungeonEncounter: case CriteriaType.DefeatDungeonEncounter:
@@ -387,8 +389,6 @@ namespace Game.Achievements
case CriteriaType.KickVoterInLFRDungeon: case CriteriaType.KickVoterInLFRDungeon:
case CriteriaType.KickTargetInLFRDungeon: case CriteriaType.KickTargetInLFRDungeon:
case CriteriaType.GroupedTankLeftEarlyInLFRDungeon: case CriteriaType.GroupedTankLeftEarlyInLFRDungeon:
case CriteriaType.CompleteAnyScenario:
case CriteriaType.CompleteScenario:
case CriteriaType.AccountObtainPetThroughBattle: case CriteriaType.AccountObtainPetThroughBattle:
case CriteriaType.WinPetBattle: case CriteriaType.WinPetBattle:
case CriteriaType.PlayerObtainPetThroughBattle: case CriteriaType.PlayerObtainPetThroughBattle:
@@ -789,11 +789,13 @@ namespace Game.Achievements
case CriteriaType.CompletedLFGDungeonWithStrangers: case CriteriaType.CompletedLFGDungeonWithStrangers:
case CriteriaType.DeliveredKillingBlow: case CriteriaType.DeliveredKillingBlow:
case CriteriaType.CurrencyGained: case CriteriaType.CurrencyGained:
case CriteriaType.PlaceGarrisonBuilding: case CriteriaType.CompleteAnyScenario:
case CriteriaType.CompleteScenario:
case CriteriaType.UniquePetsOwned: case CriteriaType.UniquePetsOwned:
case CriteriaType.BattlePetReachLevel: case CriteriaType.BattlePetReachLevel:
case CriteriaType.ActivelyEarnPetLevel: case CriteriaType.ActivelyEarnPetLevel:
case CriteriaType.DefeatDungeonEncounter: case CriteriaType.DefeatDungeonEncounter:
case CriteriaType.PlaceGarrisonBuilding:
case CriteriaType.LearnHeirloom: case CriteriaType.LearnHeirloom:
case CriteriaType.LearnAnyHeirloom: case CriteriaType.LearnAnyHeirloom:
case CriteriaType.EarnArtifactXP: case CriteriaType.EarnArtifactXP:
@@ -945,6 +947,7 @@ namespace Game.Achievements
case CriteriaType.SellItemsToVendors: case CriteriaType.SellItemsToVendors:
case CriteriaType.GainLevels: case CriteriaType.GainLevels:
case CriteriaType.LearnAnyTransmog: case CriteriaType.LearnAnyTransmog:
case CriteriaType.CompleteAnyScenario:
if (miscValue1 == 0) if (miscValue1 == 0)
return false; return false;
break; break;
@@ -1210,6 +1213,10 @@ namespace Game.Achievements
if (miscValue1 == 0 || miscValue1 != criteria.Entry.Asset) if (miscValue1 == 0 || miscValue1 != criteria.Entry.Asset)
return false; return false;
break; break;
case CriteriaType.CompleteScenario:
if (miscValue1 != criteria.Entry.Asset)
return false;
break;
default: default:
break; break;
} }
+6
View File
@@ -91,6 +91,12 @@ namespace Game.Scenarios
public virtual void CompleteScenario() public virtual void CompleteScenario()
{ {
SendPacket(new ScenarioCompleted(_data.Entry.Id)); SendPacket(new ScenarioCompleted(_data.Entry.Id));
DoForAllPlayers(player =>
{
player.UpdateCriteria(CriteriaType.CompleteAnyScenario, 1);
player.UpdateCriteria(CriteriaType.CompleteScenario, _data.Entry.Id);
});
} }
void SetStep(ScenarioStepRecord step) void SetStep(ScenarioStepRecord step)