public int getAllOppLifeLost(UUID playerId, Game game) { int amount = 0; for (UUID opponentId : this.amountOfLifeLostThisTurn.keySet()) { Player opponent = game.getPlayer(opponentId); if (opponent != null && opponent.hasOpponent(playerId, game)) { amount += this.amountOfLifeLostThisTurn.getOrDefault(opponentId, 0); } } return amount; }
public int getAllOppLifeLost(UUID playerId, Game game) { int amount = 0; for (UUID opponentId : this.amountOfLifeLostThisTurn.keySet()) { Player opponent = game.getPlayer(opponentId); if (opponent != null && opponent.hasOpponent(playerId, game)) { amount += this.amountOfLifeLostThisTurn.getOrDefault(opponentId, 0); } } return amount; }
@Override public boolean applies(GameEvent event, Ability source, Game game) { Player player = game.getPlayer(source.getControllerId()); if (player == null) { return false; } return player.hasOpponent(event.getTargetId(), game) || player.hasOpponent(game.getControllerId(event.getTargetId()), game); }
@Override public boolean applies(GameEvent event, Ability source, Game game) { Player controller = game.getPlayer(source.getControllerId()); return controller != null && controller.hasOpponent(event.getPlayerId(), game); }
@Override public boolean applies(GameEvent event, Ability source, Game game) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { return controller.hasOpponent(event.getPlayerId(), game); } return false; }
@Override public boolean applies(Permanent permanent, Ability source, Game game) { Player controller = game.getPlayer(source.getControllerId()); return controller != null && controller.hasOpponent(game.getActivePlayerId(), game); }
@Override public void watch(GameEvent event, Game game) { if (condition) { //no need to check - condition has already occured return; } if (event.getType() == GameEvent.EventType.DAMAGED_PLAYER) { DamagedPlayerEvent damageEvent = (DamagedPlayerEvent) event; if (game.getPlayer(this.getControllerId()).hasOpponent(damageEvent.getPlayerId(), game)) { condition = true; } } }
@Override public boolean applies(GameEvent event, Ability source, Game game) { if (event.getType() == GameEvent.EventType.CREATE_TOKEN) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null && controller.hasOpponent(event.getPlayerId(), game)) { return true; } } return false; }
@Override public boolean applies(GameEvent event, Ability source, Game game) { if (event.getAmount() > 1) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null && controller.hasOpponent(event.getPlayerId(), game)) { return true; } } return false; } }
@Override public boolean canBlock(Permanent attacker, Permanent blocker, Ability source, Game game) { for (UUID creature : game.getCombat().getBlockers()) { if (game.getPlayer(game.getPermanent(creature).getOwnerId()).hasOpponent(attacker.getControllerId(), game)) { return false; } } return true; } }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (event.getFlag()) { return false; } Permanent permanent = game.getPermanent(event.getTargetId()); Player player = game.getPlayer(controllerId); return permanent != null && player != null && permanent.isCreature() && player.hasOpponent(permanent.getControllerId(), game); }
@Override public boolean applies(GameEvent event, Ability source, Game game) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null && controller.hasOpponent(event.getPlayerId(), game)) { Card card = game.getCard(event.getSourceId()); if (card != null && !card.isCreature()) { return true; } } return false; } }
@Override public boolean checkTrigger(GameEvent event, Game game) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; if (zEvent.getToZone() == Zone.GRAVEYARD && zEvent.getFromZone() == Zone.BATTLEFIELD) { Card card = game.getCard(zEvent.getTargetId()); Player controller = game.getPlayer(getControllerId()); return card != null && controller != null && controller.hasOpponent(card.getOwnerId(), game); } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (((ZoneChangeEvent)event).isDiesEvent()) { Card card = game.getPermanentOrLKIBattlefield(event.getTargetId()); Player controller = game.getPlayer(getControllerId()); if (controller != null && card != null && card.isArtifact() && controller.hasOpponent(card.getOwnerId(), game)) { return true; } } return false; }
@Override public boolean apply(Game game, Ability source) { Player activePlayer = game.getPlayer(game.getActivePlayerId()); return activePlayer != null && activePlayer.hasOpponent(source.getControllerId(), game) && game.getPhase().getStep().getType().getIndex() < 5; }
@Override public boolean apply(Game game, Ability source) { Player activePlayer = game.getPlayer(game.getActivePlayerId()); return activePlayer != null && activePlayer.hasOpponent(source.getControllerId(), game) && game.getPhase().getStep().getType().getIndex() < 5; }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (game.getPlayer(this.getControllerId()).hasOpponent(event.getPlayerId(), game)) { if (setTargetPointer) { for (Effect effect:this.getEffects()) { effect.setTargetPointer(new FixedTarget(event.getPlayerId())); } } return true; } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { Permanent permanent = game.getPermanentOrLKIBattlefield(event.getTargetId()); Player targetter = game.getPlayer(event.getPlayerId()); if (permanent != null && permanent.isControlledBy(this.getControllerId()) && permanent.isCreature()) { Object object = game.getObject(event.getSourceId()); if (object != null && targetter != null && targetter.hasOpponent(this.getControllerId(), game)) { return true; } } return false; }
@Override public boolean applies(GameEvent event, Ability ability, Game game) { MageObject mageObject = game.getObject(event.getSourceId()); if (game.getPlayer(ability.getControllerId()).hasOpponent(event.getPlayerId(), game) && mageObject instanceof Spell && (mageObject.getColor(game).isBlack() || mageObject.getColor(game).isBlue())) { Permanent permanent = game.getPermanent(event.getTargetId()); return permanent != null && permanent.isControlledBy(ability.getControllerId()); } return false; } }
@Override public boolean applies(GameEvent event, Ability source, Game game) { if (game.getPlayer(source.getControllerId()).hasOpponent(event.getPlayerId(), game)) { FilterCard filter = new FilterCard(); filter.add(Predicates.not(new CardTypePredicate(CardType.CREATURE))); filter.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, getLandCount(source, event, game))); Card card = game.getCard(event.getSourceId()); return card != null && filter.match(card, game); } return false; }