mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-23 02:25:38 +01:00
Core/Criteria: Implemented CompleteAnyScenario and CompleteScenario types (#29984)
(cherry picked from commit 980ca4c656)
This commit is contained in:
committed by
Ovahlord
parent
8510b58727
commit
e337d3d661
@@ -545,6 +545,8 @@ void CriteriaHandler::UpdateCriteria(CriteriaType type, uint64 miscValue1 /*= 0*
|
||||
case CriteriaType::Login:
|
||||
case CriteriaType::AnyoneTriggerGameEventScenario:
|
||||
case CriteriaType::DefeatDungeonEncounterWhileElegibleForLoot:
|
||||
case CriteriaType::CompleteAnyScenario:
|
||||
case CriteriaType::CompleteScenario:
|
||||
case CriteriaType::BattlePetReachLevel:
|
||||
case CriteriaType::ActivelyEarnPetLevel:
|
||||
case CriteriaType::DefeatDungeonEncounter:
|
||||
@@ -798,8 +800,6 @@ void CriteriaHandler::UpdateCriteria(CriteriaType type, uint64 miscValue1 /*= 0*
|
||||
case CriteriaType::KickVoterInLFRDungeon:
|
||||
case CriteriaType::KickTargetInLFRDungeon:
|
||||
case CriteriaType::GroupedTankLeftEarlyInLFRDungeon:
|
||||
case CriteriaType::CompleteAnyScenario:
|
||||
case CriteriaType::CompleteScenario:
|
||||
case CriteriaType::AccountObtainPetThroughBattle:
|
||||
case CriteriaType::WinPetBattle:
|
||||
case CriteriaType::PlayerObtainPetThroughBattle:
|
||||
@@ -1202,11 +1202,13 @@ bool CriteriaHandler::IsCompletedCriteria(Criteria const* criteria, uint64 requi
|
||||
case CriteriaType::CompletedLFGDungeonWithStrangers:
|
||||
case CriteriaType::DeliveredKillingBlow:
|
||||
case CriteriaType::CurrencyGained:
|
||||
case CriteriaType::PlaceGarrisonBuilding:
|
||||
case CriteriaType::CompleteAnyScenario:
|
||||
case CriteriaType::CompleteScenario:
|
||||
case CriteriaType::UniquePetsOwned:
|
||||
case CriteriaType::BattlePetReachLevel:
|
||||
case CriteriaType::ActivelyEarnPetLevel:
|
||||
case CriteriaType::DefeatDungeonEncounter:
|
||||
case CriteriaType::PlaceGarrisonBuilding:
|
||||
case CriteriaType::LearnHeirloom:
|
||||
case CriteriaType::LearnAnyHeirloom:
|
||||
case CriteriaType::LearnAnyTransmogInSlot:
|
||||
@@ -1388,6 +1390,7 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
|
||||
case CriteriaType::SellItemsToVendors:
|
||||
case CriteriaType::GainLevels:
|
||||
case CriteriaType::LearnAnyTransmog:
|
||||
case CriteriaType::CompleteAnyScenario:
|
||||
if (!miscValue1)
|
||||
return false;
|
||||
break;
|
||||
@@ -1654,6 +1657,10 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
|
||||
if (!miscValue1 || miscValue1 != uint32(criteria->Entry->Asset.EventID))
|
||||
return false;
|
||||
break;
|
||||
case CriteriaType::CompleteScenario:
|
||||
if (miscValue1 != uint32(criteria->Entry->Asset.ScenarioID))
|
||||
return false;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -652,8 +652,8 @@ enum class CriteriaType : int16
|
||||
KickVoterInLFRDungeon = 148, /*NYI*/ // Kicked in an LFR dungeon (voter)
|
||||
KickTargetInLFRDungeon = 149, /*NYI*/ // Kicked in an LFR dungeon (target)
|
||||
GroupedTankLeftEarlyInLFRDungeon = 150, /*NYI*/ // Grouped tank left early in an LFR dungeon
|
||||
CompleteAnyScenario = 151, /*NYI*/ // Complete a Scenario
|
||||
CompleteScenario = 152, /*NYI*/ // Complete scenario "{Scenario}"
|
||||
CompleteAnyScenario = 151, // Complete a Scenario
|
||||
CompleteScenario = 152, // Complete scenario "{Scenario}"
|
||||
EnterAreaTriggerWithActionSet = 153, /*NYI*/ // Enter area trigger "{AreaTriggerActionSet}"
|
||||
LeaveAreaTriggerWithActionSet = 154, /*NYI*/ // Leave area trigger "{AreaTriggerActionSet}"
|
||||
LearnedNewPet = 155, // (Account Only) Learned a new pet
|
||||
|
||||
@@ -87,7 +87,13 @@ void Scenario::CompleteStep(ScenarioStepEntry const* step)
|
||||
|
||||
void Scenario::CompleteScenario()
|
||||
{
|
||||
return SendPacket(WorldPackets::Scenario::ScenarioCompleted(_data->Entry->ID).Write());
|
||||
SendPacket(WorldPackets::Scenario::ScenarioCompleted(_data->Entry->ID).Write());
|
||||
|
||||
DoForAllPlayers([&](Player* player)
|
||||
{
|
||||
player->UpdateCriteria(CriteriaType::CompleteAnyScenario, 1);
|
||||
player->UpdateCriteria(CriteriaType::CompleteScenario, _data->Entry->ID);
|
||||
});
|
||||
}
|
||||
|
||||
void Scenario::SetStep(ScenarioStepEntry const* step)
|
||||
|
||||
Reference in New Issue
Block a user