mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Core/Achievements: Implemented GameEvent related criteria types 73 and 93
This commit is contained in:
@@ -538,7 +538,9 @@ 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::PlayerTriggerGameEvent:
|
||||
case CriteriaType::Login:
|
||||
case CriteriaType::AnyoneTriggerGameEventScenario:
|
||||
case CriteriaType::BattlePetReachLevel:
|
||||
case CriteriaType::ActivelyEarnPetLevel:
|
||||
case CriteriaType::PlaceGarrisonBuilding:
|
||||
@@ -812,10 +814,8 @@ void CriteriaHandler::UpdateCriteria(CriteriaType type, uint64 miscValue1 /*= 0*
|
||||
case CriteriaType::CompleteAnyChallengeMode:
|
||||
case CriteriaType::KilledAllUnitsInSpawnRegion:
|
||||
case CriteriaType::CompleteChallengeMode:
|
||||
case CriteriaType::PlayerTriggerGameEvent:
|
||||
case CriteriaType::CreatedItemsByCastingSpellWithLimit:
|
||||
case CriteriaType::BattlePetAchievementPointsEarned:
|
||||
case CriteriaType::AnyoneTriggerGameEventScenario:
|
||||
case CriteriaType::ReleasedSpirit:
|
||||
case CriteriaType::AccountKnownPet:
|
||||
case CriteriaType::DefeatDungeonEncounterWhileElegibleForLoot:
|
||||
|
||||
@@ -2522,6 +2522,7 @@ struct MapEntry
|
||||
bool IsBattleground() const { return InstanceType == MAP_BATTLEGROUND; }
|
||||
bool IsBattleArena() const { return InstanceType == MAP_ARENA; }
|
||||
bool IsBattlegroundOrArena() const { return InstanceType == MAP_BATTLEGROUND || InstanceType == MAP_ARENA; }
|
||||
bool IsScenario() const { return InstanceType == MAP_SCENARIO; }
|
||||
bool IsWorldMap() const { return InstanceType == MAP_COMMON; }
|
||||
|
||||
bool GetEntrancePos(int32& mapid, float& x, float& y) const
|
||||
|
||||
@@ -53,7 +53,15 @@ void GameEvents::TriggerForPlayer(uint32 gameEventId, Player* source)
|
||||
{
|
||||
Map* map = source->GetMap();
|
||||
if (map->Instanceable())
|
||||
{
|
||||
source->StartCriteriaTimer(CriteriaStartEvent::SendEvent, gameEventId);
|
||||
source->ResetCriteria(CriteriaFailEvent::SendEvent, gameEventId);
|
||||
}
|
||||
|
||||
source->UpdateCriteria(CriteriaType::PlayerTriggerGameEvent, gameEventId, 0, 0, source);
|
||||
|
||||
if (map->IsScenario())
|
||||
source->UpdateCriteria(CriteriaType::AnyoneTriggerGameEventScenario, gameEventId, 0, 0, source);
|
||||
}
|
||||
|
||||
void GameEvents::TriggerForMap(uint32 gameEventId, Map* map, WorldObject* source, WorldObject* target)
|
||||
|
||||
@@ -4397,6 +4397,11 @@ bool Map::IsBattlegroundOrArena() const
|
||||
return i_mapEntry && i_mapEntry->IsBattlegroundOrArena();
|
||||
}
|
||||
|
||||
bool Map::IsScenario() const
|
||||
{
|
||||
return i_mapEntry && i_mapEntry->IsScenario();
|
||||
}
|
||||
|
||||
bool Map::IsGarrison() const
|
||||
{
|
||||
return i_mapEntry && i_mapEntry->IsGarrison();
|
||||
|
||||
@@ -411,6 +411,7 @@ class TC_GAME_API Map : public GridRefManager<NGridType>
|
||||
bool IsBattleground() const;
|
||||
bool IsBattleArena() const;
|
||||
bool IsBattlegroundOrArena() const;
|
||||
bool IsScenario() const;
|
||||
bool IsGarrison() const;
|
||||
bool GetEntrancePos(int32& mapid, float& x, float& y);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user