@Override public boolean checkTrigger(GameEvent event, Game game) { if (event.getPlayerId().equals(this.controllerId)) { this.getEffects().get(0).setValue("amount", event.getAmount()); return true; } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (event.getTargetId().equals(this.sourceId) && ((DamagedCreatureEvent)event).isCombatDamage() ) { this.getEffects().get(0).setValue("damageAmount", event.getAmount()); return true; } return false; }
public CastOnlyIfConditionIsTrueAbility(Condition condition, String effectText) { super(Zone.ALL, new CastOnlyIfConditionIsTrueEffect(condition)); this.setRuleAtTheTop(true); if (effectText != null) { getEffects().get(0).setText(effectText); } }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (event.getTargetId().equals(this.controllerId)) { Permanent permanent = game.getPermanent(event.getSourceId()); if (permanent != null) { this.getEffects().get(0).setTargetPointer(new FixedTarget(permanent, game)); return true; } } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { UUID playerId = (UUID) game.getState().getValue(getSourceId() + "_player"); if (playerId.equals(event.getPlayerId())) { this.getEffects().get(0).setTargetPointer(new FixedTarget(playerId)); return true; } return false; }
@Override public void addEffect(Effect effect) { if (!getEffects().isEmpty()) { Effect entersBattlefieldEffect = this.getEffects().get(0); if (entersBattlefieldEffect instanceof EntersBattlefieldEffect) { ((EntersBattlefieldEffect) entersBattlefieldEffect).addEffect(effect); return; } } super.addEffect(effect); }
@Override public void addEffect(Effect effect) { if (!getEffects().isEmpty()) { Effect entersBattlefieldEffect = this.getEffects().get(0); if (entersBattlefieldEffect instanceof EntersBattlefieldEffect) { ((EntersBattlefieldEffect) entersBattlefieldEffect).addEffect(effect); return; } } super.addEffect(effect); }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (event.getTargetId().equals(this.getSourceId())) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; if (zEvent.getFromZone() == Zone.BATTLEFIELD) { Effect effect = this.getEffects().get(0); effect.setTargetPointer(new FixedTarget(this.getFirstTarget())); return true; } } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (game.isActivePlayer(this.controllerId)) { if (game.getCombat().attacksAlone()) { this.getEffects().get(0).setTargetPointer(new FixedTarget(game.getCombat().getAttackers().get(0))); return true; } } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { MageObject eventSourceObject = game.getObject(event.getSourceId()); if (event.getTargetId().equals(this.getSourceId()) && eventSourceObject instanceof Spell) { getEffects().get(0).setTargetPointer(new FixedTarget(event.getPlayerId())); return true; } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (event.getTargetId().equals(this.getFirstTarget())) { DamagedCreatureEvent damageEvent = (DamagedCreatureEvent) event; Permanent attackingCreature = game.getPermanentOrLKIBattlefield(damageEvent.getSourceId()); if (attackingCreature != null && attackingCreature.isCreature() && attackingCreature.isAttacking()) { this.getEffects().get(0).setValue("damageAmount", event.getAmount()); return true; } } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (game.getOpponents(controllerId).contains(event.getPlayerId())) { Permanent permanent = game.getPermanent(event.getSourceId()); if (permanent != null && permanent.isArtifact()) { getEffects().get(0).setTargetPointer(new FixedTarget(permanent.getId())); return true; } } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; if (zEvent.getToZone() == Zone.GRAVEYARD && !event.getTargetId().equals(getSourceId())) { Card card = game.getCard(event.getTargetId()); if (card != null) { this.getEffects().get(0).setTargetPointer(new FixedTarget(card.getId())); return true; } } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { Permanent permanent = game.getPermanent(event.getTargetId()); if (permanent != null) { BurningCinderFuryOfCrimsonChaosFireEffect effect = (BurningCinderFuryOfCrimsonChaosFireEffect) this.getEffects().get(0); effect.setTargetPointer(new FixedTarget(permanent, game)); effect.setFirstControllerId(permanent.getControllerId()); // it's necessary to remember the original controller, as the controller might change by the time the trigger resolves return true; } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { Permanent creature = game.getPermanent(event.getTargetId()); if (creature != null && creature.isCreature()) { getEffects().get(0).setTargetPointer(new FixedTarget(event.getTargetId())); return true; } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { Player controller = game.getPlayer(this.getControllerId()); if (controller != null && game.isOpponent(controller, event.getTargetId()) && event.getTargetId().equals(event.getPlayerId())) { getEffects().get(0).setTargetPointer(new FixedTarget(event.getPlayerId())); return true; } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { Permanent enchantment = game.getPermanentOrLKIBattlefield(this.getSourceId()); if (enchantment != null && enchantment.getAttachedTo() != null) { Permanent enchantedCreature = game.getPermanent(enchantment.getAttachedTo()); if (enchantedCreature != null && event.getTargetId().equals(enchantment.getAttachedTo())) { getEffects().get(0).setTargetPointer(new FixedTarget(event.getPlayerId())); return true; } } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (((ZoneChangeEvent)event).isDiesEvent()) { Permanent permanent = (Permanent) game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD); if (permanent != null && permanent.isCreature() && permanent.getColor(game).isGreen()) { this.getEffects().get(0).setTargetPointer(new FixedTarget(permanent.getControllerId())); return true; } } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.SPELL_CAST) { Spell spell = game.getStack().getSpell(event.getTargetId()); if (spell != null && filter.match(spell, getSourceId(), getControllerId(), game)) { this.getEffects().get(0).setTargetPointer(new FixedTarget(event.getPlayerId())); return true; } } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { Spell spell = game.getStack().getSpell(event.getTargetId()); if (spell != null && spell.isControlledBy(controllerId)) { this.getEffects().remove(0); int x = spell.getConvertedManaCost(); this.addEffect(new BoostSourceEffect(x,x, Duration.EndOfTurn)); this.getEffects().get(0).setTargetPointer(new FixedTarget(event.getPlayerId())); return true; } return false; }