if (this.getMaxModesFilter() != null) { sb.append("choose one or more. Each mode must target ").append(getMaxModesFilter().getMessage()); } else if (this.getMinModes() == 0 && this.getMaxModes() == 1) { sb.append("choose up to one "); } else if (this.getMinModes() == 1 && this.getMaxModes() > 2) { sb.append("choose one or more "); } else if (this.getMinModes() == 1 && this.getMaxModes() == 2) { sb.append("choose one or both "); } else if (this.getMinModes() == 2 && this.getMaxModes() == 2) { sb.append("choose two "); } else if (this.getMinModes() == 3 && this.getMaxModes() == 3) { sb.append("choose three "); } else {
@Override public Mode chooseMode(Modes modes, Ability source, Game game) { log.debug("chooseMode"); if (modes.getMode() != null && modes.getMaxModes() == modes.getSelectedModes().size()) { // mode was already set by the AI return modes.getMode(); } //TODO: improve this; AvailableMode: for (Mode mode : modes.getAvailableModes(source, game)) { for (UUID selectedModeId : modes.getSelectedModes()) { Mode selectedMode = modes.get(selectedModeId); if (selectedMode.getId().equals(mode.getId())) { continue AvailableMode; } } if (mode.getTargets().canChoose(source.getSourceId(), source.getControllerId(), game)) { // and where targets are available return mode; } } return null; }
int currentMaxModes = this.getMaxModes(); if (getMaxModesFilter() != null) { if (maxModesFilter instanceof FilterPlayer) { if (currentMaxModes > this.getMaxModes()) { currentMaxModes = this.getMaxModes();