public void CheckTriggers(TriggerEvent evt, GameState gameState, List<WaitingTrigger> TriggersFound) { if(type.triggers.Count == 0) return; EffectContext context = new EffectContext(gameState, this, evt, null); foreach (TriggeredAbility ability in type.triggers) { if (ability.WillTrigger(evt.type, context)) { TriggersFound.Add(new WaitingTrigger(evt, ability, this, position)); } } }
public void HandleTriggers(TriggerEvent evt) { foreach (KeyValuePair<Point, Minion> kv in minions) { kv.Value.CheckTriggers(evt, this, this.triggersWaiting); } foreach (KeyValuePair<Point, Ongoing> kv in ongoingEffects) { kv.Value.CheckTriggers(evt, this, this.triggersWaiting); } }
public WaitingTrigger(TriggerEvent evt, TriggeredAbility ability, Permanent permanent, Point position) { this.evt = evt; this.ability = ability; this.permanent = permanent; this.position = position; }