diff options
author | Antonio MartÃn Berti <15972392+BertiRean@users.noreply.github.com> | 2024-05-12 06:16:46 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-12 11:16:46 +0200 |
commit | ef22003a563b9e79a38ae999f05ce14b876513b8 (patch) | |
tree | 54c6ee921e649d6745e6355aac7802c8e3631a19 /src | |
parent | d1d8f907fe0f1e42d9a8569ef2afdd89e2739b3a (diff) |
Core/Criteria: Implemented CriteriaType ParticipateInArena (#29973)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Achievements/CriteriaHandler.cpp | 3 | ||||
-rw-r--r-- | src/server/game/Battlegrounds/Arena.cpp | 2 | ||||
-rw-r--r-- | src/server/game/DataStores/DBCEnums.h | 2 |
3 files changed, 5 insertions, 2 deletions
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp index 87c14eeed78..f1c98843a3e 100644 --- a/src/server/game/Achievements/CriteriaHandler.cpp +++ b/src/server/game/Achievements/CriteriaHandler.cpp @@ -542,6 +542,7 @@ void CriteriaHandler::UpdateCriteria(CriteriaType type, uint64 miscValue1 /*= 0* case CriteriaType::DeliveredKillingBlow: case CriteriaType::PVPKillInArea: case CriteriaType::WinArena: // This also behaves like CriteriaType::WinAnyRankedArena + case CriteriaType::ParticipateInArena: case CriteriaType::PlayerTriggerGameEvent: case CriteriaType::Login: case CriteriaType::AnyoneTriggerGameEventScenario: @@ -775,7 +776,6 @@ void CriteriaHandler::UpdateCriteria(CriteriaType type, uint64 miscValue1 /*= 0* break; // FIXME: not triggered in code as result, need to implement case CriteriaType::RunInstance: - case CriteriaType::ParticipateInArena: case CriteriaType::EarnTeamArenaRating: case CriteriaType::EarnTitle: case CriteriaType::MoneySpentOnGuildRepair: @@ -1606,6 +1606,7 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis return false; break; case CriteriaType::WinArena: + case CriteriaType::ParticipateInArena: if (miscValue1 != uint32(criteria->Entry->Asset.MapID)) return false; break; diff --git a/src/server/game/Battlegrounds/Arena.cpp b/src/server/game/Battlegrounds/Arena.cpp index 422dd9fbe1b..a29b9101b11 100644 --- a/src/server/game/Battlegrounds/Arena.cpp +++ b/src/server/game/Battlegrounds/Arena.cpp @@ -238,6 +238,8 @@ void Arena::EndBattleground(Team winner) if (!player) continue; + player->UpdateCriteria(CriteriaType::ParticipateInArena, GetMapId()); + // per player calculation if (team == winner) { diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h index 40146f66c85..d3053a993d8 100644 --- a/src/server/game/DataStores/DBCEnums.h +++ b/src/server/game/DataStores/DBCEnums.h @@ -534,7 +534,7 @@ enum class CriteriaType : int16 TrackedWorldStateUIModified = 30, // Tracked WorldStateUI value "{WorldStateUI}" is modified PVPKillInArea = 31, // Kill someone in PVP in "{AreaTable}" WinArena = 32, // Win arena "{Map}" - ParticipateInArena = 33, /*NYI*/ // Participate in arena "{Map}" + ParticipateInArena = 33, // Participate in arena "{Map}" LearnOrKnowSpell = 34, // Learn or Know spell "{Spell}" EarnHonorableKill = 35, // Earn an honorable kill AcquireItem = 36, // Acquire item "{Item}" |