diff --git a/Source/Game/Maps/Instances/InstanceScript.cs b/Source/Game/Maps/Instances/InstanceScript.cs index 281ba4fd5..ea8fde901 100644 --- a/Source/Game/Maps/Instances/InstanceScript.cs +++ b/Source/Game/Maps/Instances/InstanceScript.cs @@ -320,6 +320,22 @@ namespace Game.Maps minionInfo.bossInfo.minion.Remove(minion.GetGUID()); } + // Triggers a GameEvent + // * If source is null then event is triggered for each player in the instance as "source" + public override void TriggerGameEvent(uint gameEventId, WorldObject source = null, WorldObject target = null) + { + if (source != null) + { + base.TriggerGameEvent(gameEventId, source, target); + return; + } + + ProcessEvent(target, gameEventId, source); + instance.DoOnPlayers(player => GameEvents.TriggerForPlayer(gameEventId, player)); + + GameEvents.TriggerForMap(gameEventId, instance); + } + public Creature GetCreature(uint type) { return instance.GetCreature(GetObjectGuid(type)); @@ -600,12 +616,6 @@ namespace Game.Maps instance.DoOnPlayers(player => player.UpdateCriteria(type, miscValue1, miscValue2, 0, unit)); } - // Start timed achievement for all players in instance - public void DoStartCriteriaTimer(CriteriaStartEvent startEvent, uint entry) - { - instance.DoOnPlayers(player => player.StartCriteriaTimer(startEvent, entry)); - } - // Remove Auras due to Spell on all players in instance public void DoRemoveAurasDueToSpellOnPlayers(uint spell, bool includePets = false, bool includeControlled = false) { diff --git a/Source/Game/Maps/ZoneScript.cs b/Source/Game/Maps/ZoneScript.cs index b2707bc78..a4734ee70 100644 --- a/Source/Game/Maps/ZoneScript.cs +++ b/Source/Game/Maps/ZoneScript.cs @@ -22,6 +22,14 @@ namespace Game.Maps { public class ZoneScript { + public virtual void TriggerGameEvent(uint gameEventId, WorldObject source = null, WorldObject target = null) + { + if (source != null) + GameEvents.Trigger(gameEventId, source, target); + else + ProcessEvent(null, gameEventId, null); + } + public virtual uint GetCreatureEntry(ulong guidlow, CreatureData data) { return data.Id; } public virtual uint GetGameObjectEntry(ulong spawnId, uint entry) { return entry; }