@Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.SPELL_CAST) { if (!activeQuickenSpells.isEmpty() && event.getPlayerId().equals(getControllerId())) { Spell spell = game.getStack().getSpell(event.getTargetId()); if (spell != null && spell.isSorcery()) { activeQuickenSpells.clear(); } } } }
private boolean isControlledInstantOrSorcery(Spell spell) { return spell != null && (spell.isControlledBy(this.getControllerId())) && (spell.isInstant() || spell.isSorcery()); }
private boolean isControlledInstantOrSorcery(Spell spell) { return spell != null && (spell.isControlledBy(this.getControllerId())) && (spell.isInstant() || spell.isSorcery()); }
private boolean isControlledInstantOrSorcery(Spell spell) { return spell != null && (spell.isControlledBy(this.getControllerId())) && (spell.isInstant() || spell.isSorcery()); }
private boolean isControlledInstantOrSorcery(Spell spell) { return spell != null && (spell.isControlledBy(this.getControllerId())) && (spell.isInstant() || spell.isSorcery()); }
private boolean isControlledInstantOrSorcery(Spell spell) { return spell != null && (spell.isControlledBy(this.getControllerId())) && (spell.isInstant() || spell.isSorcery()); }
@Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.SPELL_CAST && ready) { if (uncounterableSpell == null && event.getPlayerId().equals(this.getControllerId())) { Spell spell = game.getStack().getSpell(event.getTargetId()); if (spell != null && (spell.isSorcery() || spell.isInstant())) { uncounterableSpell = spell.getId(); ready = false; } } } }
@Override public boolean checkTrigger(GameEvent event, Game game) { Spell spell = game.getStack().getSpell(event.getTargetId()); if (spell != null && (spell.isInstant() || spell.isSorcery())) { for (Effect effect : getEffects()) { effect.setValue("triggeringSpell", spell); } return true; } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (event.getPlayerId().equals(this.getControllerId())) { Spell spell = game.getStack().getSpell(event.getTargetId()); if (spell != null && (spell.isInstant() || spell.isSorcery())) { this.getEffects().setTargetPointer(new FixedTarget(event.getTargetId())); return true; } } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (event.getPlayerId().equals(this.getControllerId())) { Spell spell = game.getStack().getSpell(event.getTargetId()); if (spell != null && (spell.isInstant() || spell.isSorcery())) { for (Effect effect : this.getEffects()) { effect.setTargetPointer(new FixedTarget(event.getTargetId())); } return true; } } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (event.getPlayerId().equals(this.getControllerId())) { Spell spell = game.getStack().getSpell(event.getTargetId()); if (spell != null && (spell.isInstant() || spell.isSorcery())) { for (Effect effect : this.getEffects()) { effect.setTargetPointer(new FixedTarget(event.getTargetId())); } return true; } } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (event.getPlayerId().equals(this.getControllerId())) { Spell spell = game.getStack().getSpell(event.getTargetId()); if (spell != null && (spell.isInstant() || spell.isSorcery())) { for (Effect effect : this.getEffects()) { effect.setTargetPointer(new FixedTarget(event.getTargetId())); } return true; } } return false; }
@Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.SPELL_CAST && event.getZone() == Zone.GRAVEYARD) { Spell spell = (Spell) game.getObject(event.getTargetId()); if (event.getAdditionalReference() != null && event.getAdditionalReference().getSourceId() != null && spell.isInstant() || spell.isSorcery()) { allowingObjects.add(event.getAdditionalReference()); castSpells.put(new MageObjectReference(spell.getSourceId(), game), event.getAdditionalReference().getSourceId()); } } }
@Override public boolean checkTrigger(GameEvent event, Game game) { Spell spell = game.getStack().getSpell(event.getTargetId()); if (spell != null && (spell.isInstant() || spell.isSorcery())) { this.getEffects().setTargetPointer(new FixedTarget(event.getTargetId())); return true; } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { Spell spell = game.getStack().getSpell(event.getTargetId()); if (spell != null && (spell.isInstant() || spell.isSorcery())) { for (Effect effect : getEffects()) { if (effect instanceof HiveMindEffect) { effect.setTargetPointer(new FixedTarget(spell.getId())); } } return true; } return false; }
private boolean checkSpell(Spell spell, Game game) { if (spell != null && (spell.isInstant() || spell.isSorcery())) { boolean noTargets = true; for (TargetAddress addr : TargetAddress.walk(spell)) { noTargets = false; Target targetInstance = addr.getTarget(spell); for (UUID target : targetInstance.getTargets()) { Permanent permanent = game.getPermanent(target); if (permanent == null || !permanent.getId().equals(getSourceId())) { return false; } } } if (noTargets) { return false; } getEffects().get(0).setValue("triggeringSpell", spell); return true; } return false; }
@Override public boolean apply(Game game, Ability source) { SpellsCastWatcher watcher = game.getState().getWatcher(SpellsCastWatcher.class); if (watcher != null) { for (UUID opponentId : game.getOpponents(source.getControllerId())) { List<Spell> spells = watcher.getSpellsCastThisTurn(opponentId); if (spells != null) { for (Spell spell : spells) { if ((spell.isSorcery() || spell.isInstant()) && spell.getColor(game).isRed()) { return true; } } } } } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (event.getZone() == Zone.LIBRARY) { Spell spell = game.getStack().getSpell(event.getTargetId()); if (spell != null && spell.isOwnedBy(super.getControllerId()) && (spell.isInstant() || spell.isSorcery())) { for (Effect effect : this.getEffects()) { effect.setTargetPointer(new FixedTarget(event.getTargetId())); } return true; } } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { Spell spell = game.getStack().getSpell(event.getTargetId()); if (spell != null && !spell.isCopy() && spell.getCard() != null && !spell.getCard().isCopy() && (spell.isInstant() || spell.isSorcery())) { for (Effect effect : this.getEffects()) { effect.setTargetPointer(new FixedTarget(event.getTargetId())); } return true; } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { Spell spell = game.getStack().getSpell(event.getTargetId()); if (spell != null && (spell.isInstant() || spell.isSorcery())) { Permanent enchantment = game.getPermanent(sourceId); if (enchantment != null && enchantment.getAttachedTo() != null) { Player player = game.getPlayer(enchantment.getAttachedTo()); if (player != null && spell.isControlledBy(player.getId())) { this.getEffects().get(0).setTargetPointer(new FixedTarget(spell.getId())); return true; } } } return false; }