@Override protected void modifyCopy(Spell copy, Game game, Ability source) { copy.setControllerId(source.getControllerId()); }
@Override protected void modifyCopy(Spell copy, Game game, Ability source) { copy.setControllerId(source.getControllerId()); }
@Override protected void modifyCopy(Spell copy, Game game, Ability source) { Spell spell = getSpell(game, source); copy.setControllerId(spell.getControllerId()); }
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(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); Spell spell = game.getStack().getSpell(targetPointer.getFirst(game, source)); if (controller != null && spell != null) { spell.setControllerId(controller.getId()); spell.chooseNewTargets(game, controller.getId(), false, false, null); return true; } return false; } }
@Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); Spell spell = game.getStack().getSpell(this.getTargetPointer().getFirst(game, source)); if (controller != null && spell != null) { spell.setControllerId(controller.getId()); spell.chooseNewTargets(game, controller.getId(), false, false, null); return true; } return false; } }
@Override public boolean apply(Game game, Ability source) { Spell spell = game.getStack().getSpell(targetPointer.getFirst(game, source)); Player controller = game.getPlayer(source.getControllerId()); if (spell != null && controller != null) { Player spellCaster = game.getPlayer(spell.getControllerId()); // controller gets controll of spell spell.setControllerId(controller.getId()); // and chooses new targets spell.chooseNewTargets(game, controller.getId()); game.informPlayers(controller.getLogName() + " got control of " + spell.getName() + " spell."); // and spell controller get control of Perplexing Chimera if (spellCaster != null) { ContinuousEffect effect = new PerplexingChimeraControlEffect(); effect.setTargetPointer(new FixedTarget(spellCaster.getId())); game.addEffect(effect, source); } } return false; } }