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.DeliveredKillingBlow:
|
||||||
case CriteriaType.PVPKillInArea:
|
case CriteriaType.PVPKillInArea:
|
||||||
case CriteriaType.WinArena: // This also behaves like CriteriaType.WinAnyRankedArena
|
case CriteriaType.WinArena: // This also behaves like CriteriaType.WinAnyRankedArena
|
||||||
|
case CriteriaType.PlayerTriggerGameEvent:
|
||||||
case CriteriaType.Login:
|
case CriteriaType.Login:
|
||||||
|
case CriteriaType.AnyoneTriggerGameEventScenario:
|
||||||
case CriteriaType.BattlePetReachLevel:
|
case CriteriaType.BattlePetReachLevel:
|
||||||
case CriteriaType.ActivelyEarnPetLevel:
|
case CriteriaType.ActivelyEarnPetLevel:
|
||||||
case CriteriaType.PlaceGarrisonBuilding:
|
case CriteriaType.PlaceGarrisonBuilding:
|
||||||
@@ -414,10 +416,8 @@ namespace Game.Achievements
|
|||||||
case CriteriaType.CompleteAnyChallengeMode:
|
case CriteriaType.CompleteAnyChallengeMode:
|
||||||
case CriteriaType.KilledAllUnitsInSpawnRegion:
|
case CriteriaType.KilledAllUnitsInSpawnRegion:
|
||||||
case CriteriaType.CompleteChallengeMode:
|
case CriteriaType.CompleteChallengeMode:
|
||||||
case CriteriaType.PlayerTriggerGameEvent:
|
|
||||||
case CriteriaType.CreatedItemsByCastingSpellWithLimit:
|
case CriteriaType.CreatedItemsByCastingSpellWithLimit:
|
||||||
case CriteriaType.BattlePetAchievementPointsEarned:
|
case CriteriaType.BattlePetAchievementPointsEarned:
|
||||||
case CriteriaType.AnyoneTriggerGameEventScenario:
|
|
||||||
case CriteriaType.ReleasedSpirit:
|
case CriteriaType.ReleasedSpirit:
|
||||||
case CriteriaType.AccountKnownPet:
|
case CriteriaType.AccountKnownPet:
|
||||||
case CriteriaType.DefeatDungeonEncounterWhileElegibleForLoot:
|
case CriteriaType.DefeatDungeonEncounterWhileElegibleForLoot:
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ namespace Game.DataStorage
|
|||||||
public bool IsBattleground() { return InstanceType == MapTypes.Battleground; }
|
public bool IsBattleground() { return InstanceType == MapTypes.Battleground; }
|
||||||
public bool IsBattleArena() { return InstanceType == MapTypes.Arena; }
|
public bool IsBattleArena() { return InstanceType == MapTypes.Arena; }
|
||||||
public bool IsBattlegroundOrArena() { return InstanceType == MapTypes.Battleground || 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 IsWorldMap() { return InstanceType == MapTypes.Common; }
|
||||||
|
|
||||||
public bool GetEntrancePos(out uint mapid, out float x, out float y)
|
public bool GetEntrancePos(out uint mapid, out float x, out float y)
|
||||||
|
|||||||
@@ -57,7 +57,15 @@ namespace Game
|
|||||||
{
|
{
|
||||||
Map map = source.GetMap();
|
Map map = source.GetMap();
|
||||||
if (map.Instanceable())
|
if (map.Instanceable())
|
||||||
|
{
|
||||||
source.StartCriteriaTimer(CriteriaStartEvent.SendEvent, gameEventId);
|
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)
|
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();
|
return i_mapRecord != null && i_mapRecord.IsBattlegroundOrArena();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool IsScenario()
|
||||||
|
{
|
||||||
|
return i_mapRecord != null && i_mapRecord.IsScenario();
|
||||||
|
}
|
||||||
|
|
||||||
public bool IsGarrison()
|
public bool IsGarrison()
|
||||||
{
|
{
|
||||||
return i_mapRecord != null && i_mapRecord.IsGarrison();
|
return i_mapRecord != null && i_mapRecord.IsGarrison();
|
||||||
|
|||||||
Reference in New Issue
Block a user