aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAntonio Martín Berti <15972392+BertiRean@users.noreply.github.com>2024-05-12 06:16:46 -0300
committerGitHub <noreply@github.com>2024-05-12 11:16:46 +0200
commitef22003a563b9e79a38ae999f05ce14b876513b8 (patch)
tree54c6ee921e649d6745e6355aac7802c8e3631a19 /src
parentd1d8f907fe0f1e42d9a8569ef2afdd89e2739b3a (diff)
Core/Criteria: Implemented CriteriaType ParticipateInArena (#29973)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Achievements/CriteriaHandler.cpp3
-rw-r--r--src/server/game/Battlegrounds/Arena.cpp2
-rw-r--r--src/server/game/DataStores/DBCEnums.h2
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}"