@Override public boolean isModal() { return getModes().size() > 1; }
@Override public Mode chooseMode(Modes modes, Ability source, Game game) { if (this.isHuman()) { Iterator<Mode> it = modes.getAvailableModes(source, game).iterator(); Mode mode = it.next(); if (modes.size() == 1) { return mode; } int modeNum = RandomUtil.nextInt(modes.getAvailableModes(source, game).size()); for (int i = 0; i < modeNum; i++) { mode = it.next(); } return mode; } return super.chooseMode(modes, source, game); }
public String getText() { if (this.size() <= 1) { return this.getMode().getEffects().getText(this.getMode());
} else if (object instanceof Spell && ((Spell) object).getSpellAbility().getModes().size() > 1) { Modes spellModes = ((Spell) object).getSpellAbility().getModes(); for (UUID selectedModeId : spellModes.getSelectedModes()) {
@Override public void adjustCosts(Ability ability, Game game) { if (ability instanceof SimpleActivatedAbility && ability.getModes().size() == 3) { Permanent sourcePermanent = game.getPermanent(ability.getSourceId()); if (sourcePermanent != null) { int amount = sourcePermanent.getCounters(game).getCount(CounterType.P1P1); if (amount > 0) { for (VariableCost cost : ability.getManaCostsToPay().getVariableCosts()) { if (cost instanceof VariableManaCost) { ((VariableManaCost) cost).setMaxX(amount); break; } } } } } }
@Override public Mode chooseMode(Modes modes, Ability source, Game game) { updateGameStatePriority("chooseMode", game); if (modes.size() > 1) { MageObject obj = game.getObject(source.getSourceId()); Map<UUID, String> modeMap = new LinkedHashMap<>();