[ZNR] Implemented Inscription of Abundance

This commit is contained in:
Evan Kranzler 2020-09-07 16:29:18 -04:00
parent 9cf96bd391
commit d4ca287f0f
3 changed files with 120 additions and 1 deletions

View file

@ -1,6 +1,6 @@
package mage.abilities;
import java.util.*;
import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.OptionalAdditionalModeSourceCosts;
import mage.cards.Card;
import mage.constants.Outcome;
@ -12,6 +12,8 @@ import mage.players.Player;
import mage.target.common.TargetOpponent;
import mage.util.RandomUtil;
import java.util.*;
/**
* @author BetaSteward_at_googlemail.com
*/
@ -35,6 +37,7 @@ public class Modes extends LinkedHashMap<UUID, Mode> {
private Filter maxModesFilter = null; // calculates the max number of available modes
private boolean isRandom = false;
private String chooseText = null;
private boolean allWhenKicked = false;
public Modes() {
this.currentMode = new Mode();
@ -214,6 +217,10 @@ public class Modes extends LinkedHashMap<UUID, Mode> {
}
public boolean choose(Game game, Ability source) {
if (this.allWhenKicked && KickedCondition.instance.apply(game, source)) {
this.setMinModes(0);
this.setMaxModes(3);
}
if (this.size() > 1) {
this.clearSelectedModes();
if (this.isRandom) {
@ -404,6 +411,8 @@ public class Modes extends LinkedHashMap<UUID, Mode> {
StringBuilder sb = new StringBuilder();
if (this.chooseText != null) {
sb.append(chooseText);
} else if (this.allWhenKicked) {
sb.append("choose one. If this spell was kicked, choose any number instead.");
} else 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) {
@ -476,6 +485,10 @@ public class Modes extends LinkedHashMap<UUID, Mode> {
this.isRandom = isRandom;
}
public void setAllWhenKicked(boolean allWhenKicked) {
this.allWhenKicked = allWhenKicked;
}
public void setChooseText(String chooseText) {
this.chooseText = chooseText;
}