@Override public boolean checkTrigger(GameEvent event, Game game) { if (event.getSourceId().equals(this.getSourceId())) { UUID defendingPlayerId = game.getCombat().getDefendingPlayerId(sourceId, game); if (defendingPlayerId != null) { // the id has to be set here because the source can be leave battlefield getEffects().forEach((effect) -> { effect.setValue("defendingPlayerId", defendingPlayerId); }); return true; } } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (game.getOpponents(getControllerId()).contains(event.getPlayerId())) { getEffects().forEach((effect) -> { effect.setTargetPointer(new FixedTarget(event.getSourceId())); }); return true; } return false; }
public ExertAbility(BecomesExertSourceTriggeredAbility ability, boolean exertOnlyOncePerTurn) { super(Zone.BATTLEFIELD, new ExertReplacementEffect(exertOnlyOncePerTurn)); ruleText = (exertOnlyOncePerTurn ? "If {this} hasn't been exerted this turn, you may exert it" : "You may exert {this}") + " as it attacks. "; if (ability != null) { this.addSubAbility(ability); ruleText += "When you do,"; ability.getEffects().forEach(effect -> { ruleText += " " + effect.getText(ability.getModes().getMode()); }); ruleText += ". "; ability.setRuleVisible(false); } ruleText += "<i>(An exerted creature won't untap during your next untap step.)</i>"; if (exertOnlyOncePerTurn) { getWatchers().add(new ExertedThisTurnWatcher()); } }
if (yours && setTargetPointer) { if (getTargets().isEmpty()) { this.getEffects().forEach(effect -> { effect.setTargetPointer(new FixedTarget(event.getPlayerId())); }); if (game.getPlayer(this.controllerId).hasOpponent(event.getPlayerId(), game)) { if (setTargetPointer) { this.getEffects().forEach(effect -> { effect.setTargetPointer(new FixedTarget(event.getPlayerId())); }); case ANY: if (setTargetPointer) { this.getEffects().forEach(effect -> { effect.setTargetPointer(new FixedTarget(event.getPlayerId())); });
@Override public boolean checkTrigger(GameEvent event, Game game) { MageObject eventSourceObject = game.getObject(event.getSourceId()); if (eventSourceObject != null && !eventSourceObject.isCreature()) { if (isControlledBy(game.getControllerId(event.getSourceId()))) { this.getEffects().forEach((effect) -> { effect.setValue("damage", event.getAmount()); }); return true; } } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { boolean weAreDoingIt = isControlledBy(game.getControllerId(event.getSourceId())); boolean isM1M1Counters = event.getData().equals(CounterType.M1M1.getName()); if (weAreDoingIt && isM1M1Counters && event.getAmount() > 0) { Permanent permanent = game.getPermanentOrLKIBattlefield(event.getTargetId()); if (permanent == null) { permanent = game.getPermanentEntering(event.getTargetId()); } if (permanent.isCreature()) { getEffects().forEach(effect -> effect.setValue("countersAdded", event.getAmount())); return true; } } return false; }