diff --git a/forge-core/src/main/java/forge/card/CardFace.java b/forge-core/src/main/java/forge/card/CardFace.java index 2e968d860e3..9a5a2e85760 100644 --- a/forge-core/src/main/java/forge/card/CardFace.java +++ b/forge-core/src/main/java/forge/card/CardFace.java @@ -1,6 +1,5 @@ package forge.card; -import com.google.common.collect.Lists; import forge.card.mana.ManaCost; import org.apache.commons.lang3.StringUtils; @@ -47,7 +46,7 @@ final class CardFace implements ICardFace, Cloneable { private List abilities = null; private List staticAbilities = null; private List triggers = null; - private List draftActions = Lists.newArrayList(); + private List draftActions = null; private List replacements = null; private Map variables = null; diff --git a/forge-game/src/main/java/forge/game/card/CardFactory.java b/forge-game/src/main/java/forge/game/card/CardFactory.java index 3f8b0e9e461..501279aff09 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactory.java +++ b/forge-game/src/main/java/forge/game/card/CardFactory.java @@ -370,7 +370,9 @@ public class CardFactory { // keywords not before variables c.addIntrinsicKeywords(face.getKeywords(), false); - face.getDraftActions().forEach(c::addDraftAction); + if (face.getDraftActions() != null) { + face.getDraftActions().forEach(c::addDraftAction); + } c.setManaCost(face.getManaCost()); c.setText(face.getNonAbilityText()); diff --git a/forge-game/src/main/java/forge/game/card/CardProperty.java b/forge-game/src/main/java/forge/game/card/CardProperty.java index 67373fa9dcb..bf6166c2c6e 100644 --- a/forge-game/src/main/java/forge/game/card/CardProperty.java +++ b/forge-game/src/main/java/forge/game/card/CardProperty.java @@ -2098,7 +2098,8 @@ public class CardProperty { } return false; } else if (property.equals("NotedColor")) { - String colors = sourceController.getDraftNotes().get(spellAbility.getHostCard().getName()); + // Should Regicide be hardcoded here or part of the property? + String colors = sourceController.getDraftNotes().get("Regicide"); if (colors == null) { return false; } @@ -2108,13 +2109,15 @@ public class CardProperty { (colors.contains("red") && card.getColor().hasRed()) || (colors.contains("green") && card.getColor().hasGreen()); } else if (property.equals("NotedName")) { - String names = sourceController.getDraftNotes().get(spellAbility.getHostCard().getName()); + // Should Noble Banneret be hardcoded here or part of the property? + String names = sourceController.getDraftNotes().get("Noble Banneret"); if (names == null || names.isEmpty()) { return false; } return names.contains(card.getName()); } else if (property.equals("NotedTypes")) { - String types = sourceController.getDraftNotes().get(spellAbility.getHostCard().getName()); + // Should Paliano Vanguard be hardcoded here or part of the property? + String types = sourceController.getDraftNotes().get("Paliano Vanguard"); if (types == null || types.isEmpty()) { return false; } diff --git a/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java b/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java index 6ae5d3d7961..3af90591625 100644 --- a/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java +++ b/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java @@ -522,9 +522,6 @@ public class AbilityManaPart implements java.io.Serializable { return getComboColors(sa); } String produced = this.getOrigProduced(); - if (produced.contains("NotedColor")) { - produced = produced.replace("NotedColor", sa.getActivatingPlayer().getDraftNotes().get("")); - } if (produced.contains("Chosen")) { produced = produced.replace("Chosen", this.getChosenColor(sa)); } @@ -665,11 +662,12 @@ public class AbilityManaPart implements java.io.Serializable { origProduced = origProduced.replace("Chosen", getChosenColor(sa)); } if (origProduced.contains("NotedColors")) { + // Should only be used for Paliano, the High City if (sa.getActivatingPlayer() == null) { return ""; } - String colors = sa.getActivatingPlayer().getDraftNotes().get(sa.getHostCard().getName()); + String colors = sa.getActivatingPlayer().getDraftNotes().get("Paliano, the High City"); if (colors == null) { return ""; } diff --git a/forge-gui/res/cardsfolder/p/paliano_the_high_city.txt b/forge-gui/res/cardsfolder/p/paliano_the_high_city.txt index 20bccbf181c..cac2936d2a8 100644 --- a/forge-gui/res/cardsfolder/p/paliano_the_high_city.txt +++ b/forge-gui/res/cardsfolder/p/paliano_the_high_city.txt @@ -3,6 +3,6 @@ Types:Legendary Land Draft:Reveal CARDNAME as you draft it. Draft:As you draft CARDNAME, the player to your right chooses a color, you choose another color, then the player to your left chooses a third color. A:AB$ Mana | Cost$ T | Produced$ Combo NotedColors | Condition$ Add one mana of any color chosen as you drafted cards named CARDNAME. | SpellDescription$ Add one mana of any color chosen as you drafted cards named Paliano, the High City. -Oracle:Reveal CARDNAME as you draft it. As you draft CARDNAME, the player to your right chooses a color, you choose another color, then the player to your left chooses a third color.\n{T}: Add one mana of any color chosen as you drafted cards named Paliano, the High City. +Oracle:Reveal Paliano, the High City as you draft it. As you draft Paliano, the High City, the player to your right chooses a color, you choose another color, then the player to your left chooses a third color.\n{T}: Add one mana of any color chosen as you drafted cards named Paliano, the High City. diff --git a/forge-gui/res/editions/Conspiracy Take the Crown.txt b/forge-gui/res/editions/Conspiracy Take the Crown.txt index 659f7ddc348..d53f4dfdabe 100644 --- a/forge-gui/res/editions/Conspiracy Take the Crown.txt +++ b/forge-gui/res/editions/Conspiracy Take the Crown.txt @@ -251,6 +251,7 @@ Natural Unity Noble Banneret Paliano Vanguard Pyretic Hunter +Regicide Sovereign's Realm Summoner's Bond Weight Advantage diff --git a/forge-gui/src/main/java/forge/gamemodes/limited/LimitedPlayer.java b/forge-gui/src/main/java/forge/gamemodes/limited/LimitedPlayer.java index f16ce6b2056..d89545abe97 100644 --- a/forge-gui/src/main/java/forge/gamemodes/limited/LimitedPlayer.java +++ b/forge-gui/src/main/java/forge/gamemodes/limited/LimitedPlayer.java @@ -159,9 +159,6 @@ public class LimitedPlayer { showRevealedCard(bestPick); } - // TODO Paliano Vanguard - // As you draft a VALID, you may Note its [name/type/], and turn this face down - if (Iterables.contains(draftActions, "As you draft a card, you may remove it from the draft face up. (It isn’t in your card pool.)")) { // Animus of Predation playerFlags |= AnimusRemoveFromPool;