private String getTargetName(UUID objectId, Game game) { MageObject object = game.getObject(objectId); if (object != null) { return object.getLogName(); } Player player = game.getPlayer(objectId); if (player != null) { return player.getLogName(); } return null; } }
public void submitDeck(UUID playerId, Deck deck) { if (tournamentSessions.containsKey(playerId)) { TournamentPlayer player = tournament.getPlayer(playerId); if (player != null && !player.hasQuit()) { tournamentSessions.get(playerId).submitDeck(deck); ChatManager.instance.broadcast(chatId, "", player.getPlayer().getLogName() + " has submitted their tournament deck", MessageColor.BLACK, true, MessageType.STATUS, SoundToPlay.PlayerSubmittedDeck); } } }
public void idleTimeout(UUID playerId) { Player player = game.getPlayer(playerId); if (player != null) { String sb = player.getLogName() + " has timed out (player had priority and was not active for " + ConfigSettings.instance.getMaxSecondsIdle() + " seconds ) - Auto concede."; ChatManager.instance.broadcast(chatId, "", sb, MessageColor.BLACK, true, MessageType.STATUS, null); game.idleTimeout(playerId); } }
@Override public synchronized void concede(UUID playerId) { Player player = state.getPlayer(playerId); if (player != null && !player.hasLost()) { logger.debug("Player " + player.getName() + " concedes game " + this.getId()); fireInformEvent(player.getLogName() + " has conceded."); player.concede(this); } }
@Override public boolean apply(Game game, Ability source) { Player targetPlayer = game.getPlayer(targetPointer.getFirst(game, source)); if (targetPlayer != null) { int damage = (Integer)getValue("damage"); targetPlayer.discard(damage, false, source, game); game.informPlayers(targetPlayer.getLogName() + "discards " + damage + " card(s)"); return true; } return false; }
@Override public boolean apply(Game game, Ability source) { Player targetPlayer = game.getPlayer(targetPointer.getFirst(game, source)); if (targetPlayer != null) { int damage = (Integer) getValue("damage"); targetPlayer.discard(damage, false, source, game); game.informPlayers(targetPlayer.getLogName() + "discards " + damage + " card(s)"); return true; } return false; }
@Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { if (controller.flipCoin(source, game, true)) { game.informPlayers(controller.getLogName() + " got " + controller.gainLife(6, game, source)+ " live"); } } return false; }
private String getRedirectedFromText(GameEvent event, Game game) { Player player = game.getPlayer(event.getTargetId()); if (player != null) { return " from " + player.getLogName(); } MageObject mageObject = game.getObject(event.getTargetId()); if (mageObject != null) { return " from " + mageObject.getLogName(); } return ""; } }
@Override public boolean replaceEvent(GameEvent event, Ability source, Game game) { Player player = game.getPlayer(event.getPlayerId()); MageObject sourceObject = game.getObject(source.getSourceId()); if (player != null && sourceObject != null) { game.informPlayers(sourceObject.getLogName() + ": Extra turn of " + player.getLogName() + " skipped"); } return true; }
@Override public boolean replaceEvent(GameEvent event, Ability source, Game game) { Player player = game.getPlayer(event.getPlayerId()); MageObject sourceObject = game.getObject(source.getSourceId()); if (player != null && sourceObject != null) { game.informPlayers(sourceObject.getLogName() + ": Extra turn of " + player.getLogName() + " skipped"); } return true; }
@Override public String getInfoMessage(Ability source, GameEvent event, Game game) { MageObject mageObject = game.getObject(source.getSourceId()); Player player = game.getPlayer(event.getPlayerId()); if (mageObject != null && player != null) { return player.getLogName() + " can't get " + event.getAmount() + " life (" + mageObject.getIdName() + ")."; } return null; }
@Override public boolean replaceEvent(GameEvent event, Ability source, Game game) { Player controller = game.getPlayer(event.getPlayerId()); if (controller != null && controller.chooseUse(outcome, "Skip draw card? (If you do, until your next turn, you can't be attacked except by creatures with flying and/or islandwalk)", source, game)) { game.informPlayers(controller.getLogName() + " skips their draw card action. Until their next turn, he or she can't be attacked except by creatures with flying and/or islandwalk"); game.addEffect(new CantAttackYouAllEffect(Duration.UntilYourNextTurn, notFlyingorIslandwalkCreatures), source); return true; } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { Player opponent = game.getPlayer(event.getPlayerId()); if (opponent != null && event.getSourceId().equals(this.sourceId)) { FilterCreaturePermanent filter = new FilterCreaturePermanent("creature " + opponent.getLogName() + " controls"); filter.add(new ControllerIdPredicate(opponent.getId())); this.getTargets().clear(); this.addTarget(new TargetCreaturePermanent(filter)); return true; } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { Player opponent = game.getPlayer(event.getPlayerId()); if (opponent != null && event.getSourceId().equals(this.sourceId)) { FilterCreaturePermanent filter = new FilterCreaturePermanent("creature " + opponent.getLogName() + " controls"); filter.add(new ControllerIdPredicate(opponent.getId())); this.getTargets().clear(); this.addTarget(new TargetCreaturePermanent(filter)); return true; } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { Player opponent = game.getPlayer(event.getPlayerId()); if (opponent != null && event.getSourceId().equals(this.sourceId)) { FilterCreaturePermanent filter = new FilterCreaturePermanent("creature " + opponent.getLogName() + " controls"); filter.add(new ControllerIdPredicate(opponent.getId())); this.getTargets().clear(); this.addTarget(new TargetCreaturePermanent(filter)); return true; } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { Player opponent = game.getPlayer(event.getPlayerId()); if (opponent != null && event.getSourceId().equals(this.sourceId)) { FilterCreaturePermanent filter = new FilterCreaturePermanent("creature " + opponent.getLogName() + " controls"); filter.add(new ControllerIdPredicate(opponent.getId())); this.getTargets().clear(); this.addTarget(new TargetCreaturePermanent(filter)); return true; } return false; }
@Override public boolean replaceEvent(GameEvent event, Ability source, Game game) { DamageEvent damageEvent = (DamageEvent) event; int damage = damageEvent.getAmount(); Permanent permanent = game.getPermanentOrLKIBattlefield(source.getSourceId()); Player controller = game.getPlayer(source.getControllerId()); if (permanent != null && controller != null) { permanent.removeCounters(CounterType.ECHO.createInstance(damage), game); game.informPlayers(controller.getLogName() + ": " + damage + " damage replaced with " + permanent.getLogName()); } return true; }
@Override public void adjustTargets(Ability ability, Game game) { ability.getTargets().clear(); for (UUID opponentId : game.getOpponents(ability.getControllerId())) { Player opponent = game.getPlayer(opponentId); if (opponent != null) { ability.addTarget(new TargetPermanent(new FilterCreaturePermanent("creature from opponent " + opponent.getLogName()))); } } } }
@Override public ConditionalManaBuilder setMana(Mana mana, Ability source, Game game) { creatureType = ChooseCreatureTypeEffect.getChosenCreatureType(source.getSourceId(), game); Player controller = game.getPlayer(source.getControllerId()); MageObject sourceObject = game.getObject(source.getSourceId()); if (controller != null && sourceObject != null) { game.informPlayers(controller.getLogName() + " produces " + mana.toString() + " with " + sourceObject.getLogName() + " (can only be spent to cast creatures of type " + creatureType + ")"); } return super.setMana(mana, source, game); }
@Override public void adjustTargets(Ability ability, Game game) { Player opponent = game.getPlayer(ability.getEffects().get(0).getTargetPointer().getFirst(game, ability)); if (opponent != null) { FilterCreaturePermanent filter = new FilterCreaturePermanent("creature controlled by " + opponent.getLogName()); filter.add(new ControllerIdPredicate(opponent.getId())); ability.getTargets().add(new TargetCreaturePermanent(filter)); } } }