public void removeEndOfCombatAbilities() { for (Iterator<DelayedTriggeredAbility> it = this.iterator(); it.hasNext(); ) { DelayedTriggeredAbility ability = it.next(); if (ability.getDuration() == Duration.EndOfCombat) { it.remove(); } } }
public void checkTriggers(GameEvent event, Game game) { if (this.size() > 0) { for (Iterator<DelayedTriggeredAbility> it = this.iterator(); it.hasNext(); ) { DelayedTriggeredAbility ability = it.next(); if (ability.getDuration().equals(Duration.Custom)) { if (ability.isInactive(game)) { it.remove(); continue; } } if (ability.checkTrigger(event, game)) { ability.trigger(game, ability.controllerId); if (ability.getTriggerOnlyOnce()) { it.remove(); } } } } }