@Override public String getText(Mode mode) { if (staticText != null && !staticText.isEmpty()) { return staticText; } return "As {this} is turned face up, " + baseEffects.getText(mode); }
@Override public String getText(Mode mode) { return (text == null || text.isEmpty()) ? baseEffects.getText(mode) : text; }
@Override public String getText(Mode mode) { return (text == null || text.isEmpty()) ? baseEffects.getText(mode) : text; }
public String getTextStartingUpperCase(Mode mode) { String text = getText(mode); if (text.length() > 3) { return Character.toUpperCase(text.charAt(0)) + text.substring(1); } return text; }
@Override public String getText(Mode mode) { if (!staticText.isEmpty()) { return staticText; } StringBuilder sb = new StringBuilder("Flip a coin. If you win the flip, ").append(executingEffectsWon.getText(mode)); if (!executingEffectsLost.isEmpty()) { sb.append(". If you lose the flip, ").append(executingEffectsLost.getText(mode)); } return sb.toString(); }
@Override public String getText(Mode mode) { return "that player may " + getCostText() + ". If he or she does, " + executingEffects.getText(mode); } }
@Override public String getText(Mode mode) { if (!staticText.isEmpty()) { return staticText; } String effectsText = executingEffects.getText(mode); return effectsText.substring(0, effectsText.length() - 1) + " unless controller pays " + cost.getText(); }
@Override public String getText(Mode mode) { if (!staticText.isEmpty()) { return staticText; } String effectsText = executingEffects.getText(mode); return effectsText.substring(0, effectsText.length() - 1) + " unless any opponent pays " + cost.getText(); }
@Override public String getText(Mode mode) { if (!staticText.isEmpty()) { return staticText; } String effectsText = executingEffects.getText(mode); return effectsText.substring(0, effectsText.length() - 1) + " unless its controller pays " + (cost != null ? cost.getText() : "{X}"); }
@Override public String getText(Mode mode) { return "that player may " + getCostText() + ". If he or she does, " + executingEffects.getText(mode); } }
@Override public String getText(Mode mode) { return new StringBuilder(super.getText(mode)).append(kinshipEffects.getText(mode)).toString(); }
@Override public String getText(Mode mode) { if (!staticText.isEmpty()) { return staticText; } StringBuilder sb = new StringBuilder(); if (cost != null) { sb.append(cost.getText()); } else { sb.append("{X}"); } if (genericMana != null && !genericMana.getMessage().isEmpty()) { sb.append(", where X is "); sb.append(genericMana.getMessage()); } String effectsText = executingEffects.getText(mode); return effectsText.substring(0, effectsText.length() - 1) + " unless any player pays " + sb.toString(); }
@Override public String getRule() { StringBuilder sb = new StringBuilder(); switch (targetController) { case YOU: sb.append("At the beginning of your next end step, "); break; case OPPONENT: sb.append("At the beginning of an opponent's next end step, "); break; case ANY: sb.append("At the beginning of the next end step, "); break; case CONTROLLER_ATTACHED_TO: sb.append("At the beginning of the next end step of enchanted creature's controller, "); break; } sb.append(getEffects().getText(modes.getMode())); return sb.toString(); } }
@Override public String getRule() { StringBuilder sb = new StringBuilder(); switch (targetController) { case YOU: return sb.append("At the beginning of your untap step, ").append(generateZoneString()).append(getEffects().getText(modes.getMode())).toString(); case NOT_YOU: return sb.append(getEffects().getText(modes.getMode())).append(" during each other player's untap step").append(generateZoneString()).toString(); case OPPONENT: return sb.append("At the beginning of each opponent's untap step, ").append(generateZoneString()).append(getEffects().getText(modes.getMode())).toString(); case ANY: return sb.append("At the beginning of each player's untap step, ").append(generateZoneString()).append(getEffects().getText(modes.getMode())).toString(); } return "BeginningOfUntapTriggeredAbility: targetController value not supported"; }
@Override public String getRule() { StringBuilder sb = new StringBuilder(); switch (targetController) { case YOU: sb.append("At the beginning of your ").append(phaseSelection.toString()).append(", "); break; case OPPONENT: sb.append("At the beginning of an opponent's ").append(phaseSelection.toString()).append(", "); break; case ANY: sb.append("At the beginning of the ").append(phaseSelection.toString()).append(", "); break; case CONTROLLER_ATTACHED_TO: sb.append("At the beginning of the ").append(phaseSelection.toString()).append(" of enchanted creature's controller, "); break; } sb.append(getEffects().getText(modes.getMode())); return sb.toString(); } }
public void addTarget(Target target, Boolean addChooseHintFromEffect) { targets.add(target); if (addChooseHintFromEffect) { target.withChooseHint(this.getEffects().getText(this)); } }
@Override public String getRule() { switch (targetController) { case YOU: return "At the beginning of your postcombat main phase, " + generateZoneString() + getEffects().getText(modes.getMode()); case OPPONENT: return "At the beginning of each opponent's postcombat main phase, " + generateZoneString() + getEffects().getText(modes.getMode()); case ANY: return "At the beginning of each player's postcombat main phase, " + generateZoneString() + getEffects().getText(modes.getMode()); } return ""; }
@Override public String getRule() { switch (targetController) { case YOU: return "At the beginning of your precombat main phase, " + generateZoneString() + getEffects().getText(modes.getMode()); case OPPONENT: return "At the beginning of each opponent's precombat main phase, " + generateZoneString() + getEffects().getText(modes.getMode()); case ANY: return "At the beginning of each player's precombat main phase, " + generateZoneString() + getEffects().getText(modes.getMode()); } return ""; }
@Override public String getRule() { switch (targetController) { case YOU: return "At the beginning of your draw step, " + generateZoneString() + getEffects().getText(modes.getMode()); case OPPONENT: return "At the beginning of each opponent's draw step, " + generateZoneString() + getEffects().getText(modes.getMode()); case NOT_YOU: return "At the beginning of each other player's draw step, " + generateZoneString() + getEffects().getText(modes.getMode()); case ANY: return "At the beginning of each player's draw step, " + generateZoneString() + getEffects().getText(modes.getMode()); case CONTROLLER_ATTACHED_TO: return "At the beginning of the draw step of enchanted creature's controller, " + generateZoneString() + getEffects().getText(modes.getMode()); } return ""; }