@Override public Effects getEffects() { return getModes().getMode().getEffects(); }
public void addTarget(Target target, Boolean addChooseHintFromEffect) { targets.add(target); if (addChooseHintFromEffect) { target.withChooseHint(this.getEffects().getText(this)); } }
@Override public Effects getAllEffects() { Effects allEffects = new Effects(); for (Mode mode : getModes().values()) { allEffects.addAll(mode.getEffects()); } return allEffects; }
public String getText() { if (this.size() <= 1) { return this.getMode().getEffects().getText(this.getMode()); sb.append(mode.getEffects().getTextStartingUpperCase(mode)); sb.append("<br>");
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); } }
} else { List<UUID> targetList = new ArrayList<>(); for (Effect effect : mode.getEffects()) { TargetPointer targetPointer = effect.getTargetPointer(); if (targetPointer instanceof FixedTarget) { for (UUID modeId : modes.getSelectedModes()) { Mode mode = modes.get(modeId); this.rules.add("<span color='green'><i>Chosen mode: " + mode.getEffects().getText(mode) + "</i></span>");
private boolean checkSpell(Spell spell, Game game) { if (spell != null) { SpellAbility sa = spell.getSpellAbility(); for (UUID modeId : sa.getModes().getSelectedModes()) { Mode mode = sa.getModes().get(modeId); for (Target target : mode.getTargets()) { if (!target.isNotTarget() && target.getTargets().contains(this.getSourceId())) { return true; } } for (Effect effect : mode.getEffects()) { for (UUID targetId : effect.getTargetPointer().getTargets(game, sa)) { if (targetId.equals(this.getSourceId())) { return true; } } } } } return false; }
private boolean checkSpell(Spell spell, Game game) { if (spell != null && spell.hasSubtype(SubType.AURA, game)) { SpellAbility sa = spell.getSpellAbility(); for (UUID modeId : sa.getModes().getSelectedModes()) { Mode mode = sa.getModes().get(modeId); for (Target target : mode.getTargets()) { if (!target.isNotTarget() && target.getTargets().contains(this.getSourceId())) { return true; } } for (Effect effect : mode.getEffects()) { for (UUID targetId : effect.getTargetPointer().getTargets(game, sa)) { if (targetId.equals(this.getSourceId())) { return true; } } } } } return false; }
private static int isRemoval(Card card) { if (card.isEnchantment() || card.isInstant() || card.isSorcery()) { for (Ability ability : card.getAbilities()) { for (Effect effect : ability.getEffects()) { if (isEffectRemoval(card, ability, effect) == 1) { return 1; } } for (Mode mode : ability.getModes().values()) { for (Effect effect : mode.getEffects()) { if (isEffectRemoval(card, ability, effect) == 1) { return 1; } } } } } return 0; }
String modeText = mode.getEffects().getText(mode); if (obj != null) { modeText = modeText.replace("{source}", obj.getName()).replace("{this}", obj.getName());
for (UUID modeId : ability.getModes().getSelectedModes()) { Mode mode = ability.getModes().get(modeId); for (Effect effect : mode.getEffects()) { if (effect instanceof ContinuousEffect) { addEffect((ContinuousEffect) effect, sourceId, ability);
@Override public void adjustTargets(Ability ability, Game game) { // adjust targets is called for every selected mode Mode mode = ability.getModes().getMode(); int xValue = ability.getManaCostsToPay().getX(); for (Effect effect : mode.getEffects()) { if (effect instanceof ReturnFromGraveyardToBattlefieldTargetEffect) { mode.getTargets().clear(); FilterCard filter = new FilterCreatureCard("creature card with converted mana cost " + xValue + " or less from your graveyard"); filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, xValue + 1)); mode.addTarget(new TargetCardInYourGraveyard(filter)); } if (effect instanceof GainAbilityTargetEffect) { mode.getTargets().clear(); FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures gain fear until end of turn"); mode.addTarget(new TargetCreaturePermanent(0, xValue, filter, false)); } } } }
Outcome outcome = mode.getEffects().isEmpty() ? Outcome.Detriment : mode.getEffects().get(0).getOutcome();
for (UUID modeId : spell.getSpellAbility().getModes().getSelectedModes()) { Mode mode = spell.getSpellAbility().getModes().get(modeId); this.rules.add("<span color='green'><i>Chosen mode: " + mode.getEffects().getText(mode) + "</i></span>");