@Override public boolean applies(GameEvent event, Ability source, Game game) { if (game.getPhase().getType() == TurnPhase.COMBAT) { return true; } return false; } }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (super.checkTrigger(event, game)) { if (game.getPhase().getType() == TurnPhase.COMBAT) { return true; } } return false; }
@Override public void init(Ability source, Game game) { turnNumber = game.getTurnNum(); phaseCount = game.getPhase().getCount(); }
@Override public boolean checksEventType(GameEvent event, Game game) { return (event.getType() == GameEvent.EventType.UNTAP && game.getPhase().getStep().getType() == PhaseStep.UNTAP); }
@Override public boolean isInactive(Ability source, Game game) { if (game.getPhase().getStep().getType() == PhaseStep.UPKEEP) { if (game.isActivePlayer(source.getControllerId())) { return true; } } return false; }
@Override public boolean applies(GameEvent event, Ability source, Game game) { // has to return true, if the spell cannot be cast in the current phase / step if (event.getSourceId().equals(source.getSourceId())) { if ((turnPhase != null && game.getPhase().getType() != turnPhase) || (phaseStep != null && (game.getTurn().getStepType() != phaseStep)) || (condition != null && !condition.apply(game, source))) { return true; } } return false; // cast not prevented by this effect }
@Override public void init(Ability source, Game game) { super.init(source, game); startingTurn = game.getTurnNum(); if (game.getPhase().getStep().getType() == PhaseStep.END_TURN) { startingTurn = game.getTurnNum() + 1; } }
@Override public boolean isInactive(Ability source, Game game) { return (startingTurn != game.getTurnNum() && (game.getPhase().getType() == TurnPhase.END && game.isActivePlayer(source.getFirstTarget()))) || // 6/15/2010: If a creature controlled by the affected player can't attack Gideon Jura (because he's no longer on the battlefield, for example), that player may have it attack you, another one of your planeswalkers, or nothing at all. creatingPermanent.getPermanent(game) == null; }
@Override public boolean isInactive(Ability source, Game game) { return startingTurn != game.getTurnNum() && (game.getPhase().getType() == TurnPhase.END && game.isActivePlayer(this.getTargetPointer().getFirst(game, source))); }
@Override public boolean isInactive(Ability source, Game game) { if (startingTurn != 0 && game.getTurnNum() >= startingTurn && game.getPhase().getStep().getType() == PhaseStep.END_TURN) { if (game.isActivePlayer(source.getControllerId())) { return true; } } return false; }
@Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.BEGINNING_PHASE_PRE && game.getPhase() != null) { Player player = game.getPlayer(game.getActivePlayerId()); int cardsInHand = 0; if (player != null) { cardsInHand = player.getHand().size(); } cardsInHandCount = cardsInHand; } }
@Override public boolean isInactive(Ability source, Game game) { if (castOnTurn != game.getTurnNum() && game.getPhase().getStep().getType() == PhaseStep.END_TURN) { return game.isActivePlayer(source.getControllerId()); } return false; }
@Override public boolean isInactive(Ability source, Game game) { return (startingTurn != game.getTurnNum() && (game.getPhase().getType() == TurnPhase.END && game.isActivePlayer(source.getFirstTarget()))) || // 6/15/2010: If a creature controlled by the affected player can't attack Gideon Jura (because he's no longer on the battlefield, for example), that player may have it attack you, another one of your planeswalkers, or nothing at all. creatingPermanent.getPermanent(game) == null; }
@Override public boolean isInactive(Ability source, Game game) { if (super.isInactive(source, game)) { return true; } if (durationPhaseStep != null && durationPhaseStep == game.getPhase().getStep().getType()) { return !sameStep && game.isActivePlayer(durationPlayerId) || game.getPlayer(durationPlayerId).hasReachedNextTurnAfterLeaving(); } else { sameStep = false; } return false; }
@Override public boolean isInactive(Ability source, Game game) { if (game.getPhase().getStep().getType() == PhaseStep.UPKEEP) { if (!sameStep && game.isActivePlayer(source.getControllerId()) || game.getPlayer(source.getControllerId()).hasReachedNextTurnAfterLeaving()) { return true; } } else { sameStep = false; } 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 isInactive(Ability source, Game game) { if (game.getPhase().getStep().getType() == PhaseStep.UPKEEP) { if (!sameStep && game.isActivePlayer(source.getControllerId()) || game.getPlayer(source.getControllerId()).hasReachedNextTurnAfterLeaving()) { return true; } } else { sameStep = false; } 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 isInactive(Ability source, Game game) { // the PRE step part is directly after the UNTAP events for permanents if (game.getPhase().getStep().getType() == PhaseStep.UNTAP && game.getStep().getStepPart() == Step.StepPart.PRE) { if (game.isActivePlayer(targetPlayerId) || game.getPlayer(source.getControllerId()).hasReachedNextTurnAfterLeaving()) { return true; } } return false; }
@Override public boolean applies(GameEvent event, Ability source, Game game) { if (game.isActivePlayer(event.getPlayerId()) && game.getPhase().getStep().getType() == PhaseStep.DRAW) { CardsDrawnDuringDrawStepWatcher watcher = game.getState().getWatcher(CardsDrawnDuringDrawStepWatcher.class); if (watcher != null && watcher.getAmountCardsDrawn(event.getPlayerId()) > 0) { return true; } } else { return true; } return false; } }