@Override public void lookAtCards(String titleSuffix, Card card, Game game) { game.getState().getLookedAt(this.playerId).add(titleSuffix, card); game.fireUpdatePlayersEvent(); }
@Override public boolean canChoose(UUID sourceId, UUID sourceControllerId, Game game) { Card sourceCard = game.getCard(sourceId); if (sourceCard != null) { UUID exileId = sourceId; ExileZone exile = game.getExile().getExileZone(exileId); if (exile != null && !exile.isEmpty()) { return true; } } return false; }
public SourceHasRemainedInSameZoneCondition(UUID idToCheck, Game game) { this.idToCheck = idToCheck; this.timesChangedZones = -1; if (this.idToCheck != null && game != null && game.getCard(this.idToCheck) != null) { this.timesChangedZones = game.getState().getZoneChangeCounter(this.idToCheck); } }
public void addActivation(Game game) { if (game.getTurnNum() != turnNum) { activationCounter = 1; turnNum = game.getTurnNum(); } else { activationCounter++; } game.getState().setValue(key, activationCounter); game.getState().setValue(key + 'T', turnNum); }
@Override public boolean moveToExile(UUID exileId, String name, UUID sourceId, Game game, List<UUID> appliedEffects) { Zone fromZone = game.getState().getZone(objectId); ZoneChangeEvent event = new ZoneChangeEvent(this.objectId, sourceId, ownerId, fromZone, Zone.EXILED, appliedEffects); ZoneChangeInfo.Exile info = new ZoneChangeInfo.Exile(event, exileId, name); return ZonesHandler.moveCard(info, game); }
public void swapSeats(int seatNum1, int seatNum2) { if (table.getState() == TableState.READY_TO_START) { if (seatNum1 >= 0 && seatNum2 >= 0 && seatNum1 < table.getSeats().length && seatNum2 < table.getSeats().length) { Player swapPlayer = table.getSeats()[seatNum1].getPlayer(); PlayerType swapType = table.getSeats()[seatNum1].getPlayerType(); table.getSeats()[seatNum1].setPlayer(table.getSeats()[seatNum2].getPlayer()); table.getSeats()[seatNum1].setPlayerType(table.getSeats()[seatNum2].getPlayerType()); table.getSeats()[seatNum2].setPlayer(swapPlayer); table.getSeats()[seatNum2].setPlayerType(swapType); } } }
@Override public boolean apply(Game game, Ability source) { RocketLauncherWatcher watcher = game.getState().getWatcher(RocketLauncherWatcher.class); return watcher != null && !watcher.changedControllerOR1stTurn; }
/** * Use this to set the target to exactly the zone the target is currently in * * @param targetId * @param game */ public FixedTarget(UUID targetId, Game game) { this.targetId = targetId; this.initialized = true; this.zoneChangeCounter = game.getState().getZoneChangeCounter(targetId); }
@Override public void setFaceDown(boolean value, Game game) { game.getState().getCardState(objectId).setFaceDown(value); }
@Override public boolean isFaceDown(Game game) { return game.getState().getCardState(objectId).isFaceDown(); }
@Override public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { game.getState().setLegendaryRuleActive(false); return true; }
@Override public void addInfo(String key, String value, Game game) { game.getState().getCardState(objectId).addInfo(key, value); }
@Override public boolean apply(Game game, Ability source) { return game.getState().isExtraTurn(); } }
@Override public boolean apply(Game game, Ability source) { game.getState().removeDelayedTriggeredAbility(abilityId); return true; }
@Override public void updateZoneChangeCounter(Game game, ZoneChangeEvent event) { game.getState().updateZoneChangeCounter(objectId); }
@Override public Permanent getPermanentOrLKIBattlefield(UUID permanentId) { Permanent permanent = state.getPermanent(permanentId); if (permanent == null) { permanent = (Permanent) this.getLastKnownInformation(permanentId, Zone.BATTLEFIELD); } return permanent; }
@Override public synchronized void applyEffects() { resetShortLivingLKI(); state.applyEffects(this); }
@Override public boolean apply(Game game, Ability source) { if (idToCheck != null && game.getCard(idToCheck) != null) { if (timesChangedZones == -1) { timesChangedZones = game.getState().getZoneChangeCounter(idToCheck); } if (timesChangedZones == game.getState().getZoneChangeCounter(idToCheck)) { return true; } } return false; }
@Override public void init(Game game, Ability source) { if (!initialized) { initialized = true; this.zoneChangeCounter = game.getState().getZoneChangeCounter(targetId); } }