Core/Achievements: Implemented GameEvent related criteria types 73 and 93
Port From (https://github.com/TrinityCore/TrinityCore/commit/22edf79c70519a571d9eeb7e397add695d7a28bb)
This commit is contained in:
@@ -136,7 +136,9 @@ namespace Game.Achievements
|
||||
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:
|
||||
@@ -414,10 +416,8 @@ namespace Game.Achievements
|
||||
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:
|
||||
|
||||
@@ -66,6 +66,7 @@ namespace Game.DataStorage
|
||||
public bool IsBattleground() { return InstanceType == MapTypes.Battleground; }
|
||||
public bool IsBattleArena() { return InstanceType == MapTypes.Arena; }
|
||||
public bool IsBattlegroundOrArena() { return InstanceType == MapTypes.Battleground || InstanceType == MapTypes.Arena; }
|
||||
public bool IsScenario() { return InstanceType == MapTypes.Scenario; }
|
||||
public bool IsWorldMap() { return InstanceType == MapTypes.Common; }
|
||||
|
||||
public bool GetEntrancePos(out uint mapid, out float x, out float y)
|
||||
|
||||
@@ -57,7 +57,15 @@ namespace Game
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
public static void TriggerForMap(uint gameEventId, Map map, WorldObject source = null, WorldObject target = null)
|
||||
|
||||
@@ -3778,6 +3778,11 @@ namespace Game.Maps
|
||||
return i_mapRecord != null && i_mapRecord.IsBattlegroundOrArena();
|
||||
}
|
||||
|
||||
public bool IsScenario()
|
||||
{
|
||||
return i_mapRecord != null && i_mapRecord.IsScenario();
|
||||
}
|
||||
|
||||
public bool IsGarrison()
|
||||
{
|
||||
return i_mapRecord != null && i_mapRecord.IsGarrison();
|
||||
|
||||
Reference in New Issue
Block a user