@Override public Targets getTargets() { if (getModes().getMode() != null) { return getModes().getMode().getTargets(); } return null; }
public void addAbility(Ability ability) { if (abilities == null) { abilities = new AbilitiesImpl<>(); } abilities.add(ability); abilities.addAll(ability.getSubAbilities()); }
@Override public Abilities<Ability> getAbilities() { Abilities<Ability> abilities = new AbilitiesImpl<>(); abilities.add(ability); return abilities; }
public void addAbility(Ability ability, MageObject attachedTo) { if (ability instanceof StaticAbility) { for (UUID modeId : ability.getModes().getSelectedModes()) { Mode mode = ability.getModes().get(modeId); for (Effect effect : mode.getEffects()) { if (effect instanceof ContinuousEffect) { addEffect((ContinuousEffect) effect, ability); } } } } else if (ability instanceof TriggeredAbility) { this.triggers.add((TriggeredAbility) ability, attachedTo); } }
@Override public Effects getAllEffects() { Effects allEffects = new Effects(); for (Mode mode : getModes().values()) { allEffects.addAll(mode.getEffects()); } return allEffects; }
@Override public Effects getEffects() { return getModes().getMode().getEffects(); }
@Override public SpellAbility getSpellAbility() { if (spellAbility == null) { for (Ability ability : abilities.getActivatedAbilities(Zone.HAND)) { if (ability instanceof SpellAbility && ((SpellAbility) ability).getSpellAbilityType() != SpellAbilityType.BASE_ALTERNATE) { return spellAbility = (SpellAbility) ability; } } } return spellAbility; }
public Modes() { this.currentMode = new Mode(); this.put(currentMode.getId(), currentMode); this.minModes = 1; this.maxModes = 1; this.addSelectedMode(currentMode.getId()); this.modeChooser = TargetController.YOU; this.eachModeOnlyOnce = false; this.eachModeMoreThanOnce = false; }
@Override public void addAbility(Ability ability) { ability.setSourceId(playerId); this.abilities.add(ability); }
@Override public void addWatcher(Watcher watcher) { super.addWatcher(watcher); for (TriggeredAbility ability : triggeredAbilities) { ability.addWatcher(watcher); } }
public void removeEndOfCombatAbilities() { this.removeIf(ability -> ability.getDuration() == Duration.EndOfCombat); }
@Override public void setControllerId(UUID controllerId) { super.setControllerId(controllerId); for (TriggeredAbility ability : triggeredAbilities) { ability.setControllerId(controllerId); } }
@Override public void setSourceId(UUID sourceId) { super.setSourceId(sourceId); for (TriggeredAbility ability : triggeredAbilities) { ability.setSourceId(sourceId); } }
@Override public void setSourceId(UUID sourceId) { for (Ability ability : this) { ability.setSourceId(sourceId); } }
public void addAbility(Ability ability) { ability.setSourceId(id); abilites.add(ability); }
public void removeEndOfTurnAbilities() { this.removeIf(ability -> ability.getDuration() == Duration.EndOfTurn); }