@Override public boolean checkTrigger(GameEvent event, Game game) { if (event.getPlayerId().equals(this.controllerId)) { Spell spell = (Spell) game.getStack().getStackObject(event.getTargetId()); if (spell != null) { for (ManaCost cost : spell.getCard().getManaCost()) { if (cost instanceof PhyrexianManaCost) { ((DamageTargetEffect)getEffects().get(0)).setAmount(new StaticValue(spell.getConvertedManaCost())); return true; } } } } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (!event.getTargetId().equals(this.getSourceId())) { return false; } Permanent sourcePermanent = game.getPermanent(event.getSourceId()); if (sourcePermanent != null && FILTER_CREATURE.match(sourcePermanent, getSourceId(), getControllerId(), game)) { for (Effect effect : getEffects()) { if (effect instanceof DamageTargetEffect) { effect.setTargetPointer(new FixedTarget(sourcePermanent.getId())); ((DamageTargetEffect) effect).setAmount(new StaticValue(event.getAmount())); } } return true; } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (!event.getTargetId().equals(this.getSourceId())) { return false; } StackObject sourceSpell = game.getStack().getStackObject(event.getSourceId()); if (sourceSpell != null && StaticFilters.FILTER_SPELL.match(sourceSpell, getSourceId(), getControllerId(), game)) { for (Effect effect : getEffects()) { if (effect instanceof DamageTargetEffect) { effect.setTargetPointer(new FixedTarget(sourceSpell.getControllerId())); ((DamageTargetEffect) effect).setAmount(new StaticValue(event.getAmount())); } } return true; } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (game.isActivePlayer(getControllerId()) && super.checkTrigger(event, game)) { SentinelTowerWatcher watcher = game.getState().getWatcher(SentinelTowerWatcher.class); if (watcher == null) { return false; } List<MageObjectReference> spellsCast = watcher.getSpellsThisTurn(); MageObject object = game.getObject(event.getTargetId()); if (object == null || spellsCast == null) { return false; } int damageToDeal = 0; for (MageObjectReference mor : spellsCast) { damageToDeal++; if (mor.refersTo(object, game)) { break; } } for (Effect effect : this.getEffects()) { if (effect instanceof DamageTargetEffect) { ((DamageTargetEffect) effect).setAmount(new StaticValue(damageToDeal)); return true; } } } return false; }