public SpellAbility getSpellAbility(Spell spell) { return spell.getSpellAbilities().get(spellAbilityIndex); }
public TargetAddressIterator(Spell spell) { this.spellAbilityIterator = spell.getSpellAbilities().iterator(); calcNext(); }
sb.append("unknown"); if (object instanceof Spell && ((Spell) object).getSpellAbilities().size() > 1) { if (((Spell) object).getSpellAbility().getSpellAbilityType() == SpellAbilityType.SPLIT_FUSED) { Spell spell = (Spell) object; int i = 0; for (SpellAbility spellAbility : spell.getSpellAbilities()) { i++; String half; Spell spell = (Spell) object; int i = 0; for (SpellAbility spellAbility : spell.getSpellAbilities()) { i++; if (i > 1) {
@Override public boolean apply(ObjectSourcePlayer<Spell> input, Game game) { Permanent sourceObject = game.getPermanent(input.getSourceId()); if (sourceObject == null || input.getObject() == null) { return false; } for (SpellAbility spellAbility : input.getObject().getSpellAbilities()) { for (Mode mode : spellAbility.getModes().values()) { for (Target target : spellAbility.getTargets()) { if (target.getTargets().contains(input.getSourceId())) { return true; } } } } return false; } }
public Spell copySpell(UUID newController) { Spell copy = new Spell(this.card, this.ability.copySpell(), this.controllerId, this.fromZone); boolean firstDone = false; for (SpellAbility spellAbility : this.getSpellAbilities()) { if (!firstDone) { firstDone = true; continue; } SpellAbility newAbility = spellAbility.copy(); // e.g. spliced spell newAbility.newId(); copy.addSpellAbility(newAbility); } copy.setCopy(true, this); copy.setControllerId(newController); return copy; }
@Override public boolean apply(MageObject input, Game game) { Spell spell = game.getStack().getSpell(input.getId()); if (spell != null) { int numberOfTargets = 0; for (SpellAbility spellAbility : spell.getSpellAbilities()) { for (UUID modeId : spellAbility.getModes().getSelectedModes()) { Mode mode = spellAbility.getModes().get(modeId); for (Target target : mode.getTargets()) { for (UUID targetId : target.getTargets()) { if (!targetId.equals(sourceId)) { return false; } else { numberOfTargets++; } } } } } return numberOfTargets > 0; } return false; }
objectAbilities.addAll(((Spell) this).getSpellAbilities()); } else { objectAbilities.add(getStackAbility());
@Override public boolean checkTrigger(GameEvent event, Game game) { if (event.getPlayerId().equals(this.getControllerId())) { Spell spell = game.getStack().getSpell(event.getTargetId()); if (isControlledInstantOrSorcery(spell)) { boolean targetsSource = false; for (Ability ability : spell.getSpellAbilities()) { for (UUID modeId : ability.getModes().getSelectedModes()) { Mode mode = ability.getModes().get(modeId); for (Target target : mode.getTargets()) { if (!target.isNotTarget()) { for (UUID targetId : target.getTargets()) { if (targetId.equals(getSourceId())) { targetsSource = true; } else { return false; } } } } } } if (targetsSource) { this.getEffects().get(0).setTargetPointer(new FixedTarget(spell.getId())); return true; } } } return false; }
for (Ability ability : spell.getSpellAbilities()) { for (UUID modeId : ability.getModes().getSelectedModes()) { Mode mode = ability.getModes().get(modeId);
for (Ability ability : spell.getSpellAbilities()) { for (UUID modeId : ability.getModes().getSelectedModes()) { Mode mode = ability.getModes().get(modeId);
for (Ability ability : spell.getSpellAbilities()) { for (UUID modeId : ability.getModes().getSelectedModes()) { Mode mode = ability.getModes().get(modeId);
spellController.revealCards(sourceObject.getName(), spellController.getHand(), game); Cards cardsToDiscard = new CardsImpl(); for (SpellAbility spellAbility : spell.getSpellAbilities()) { if (spellAbility.getSpellAbilityType() == SpellAbilityType.SPLICE) { for (Card card: spellController.getHand().getCards(game)) {
this.mageObjectType = MageObjectType.SPELL; Spell spell = (Spell) card; for (SpellAbility spellAbility : spell.getSpellAbilities()) { for (UUID modeId : spellAbility.getModes().getSelectedModes()) { Mode mode = spellAbility.getModes().get(modeId);