From 9504f0950a469f637eb432dc390c8be42b5a51ac Mon Sep 17 00:00:00 2001 From: slapshot5 Date: Mon, 17 Oct 2011 04:25:26 +0000 Subject: [PATCH] add Remember the Fallen (from New Phyrexia) --- .gitattributes | 1 + res/cardsfolder/r/remember_the_fallen.txt | 11 ++++ .../card/abilityFactory/AbilityFactory.java | 2 + .../abilityFactory/AbilityFactory_Charm.java | 11 +++- .../forge/card/spellability/SpellAbility.java | 56 +++++++------------ 5 files changed, 45 insertions(+), 36 deletions(-) create mode 100644 res/cardsfolder/r/remember_the_fallen.txt diff --git a/.gitattributes b/.gitattributes index 7365959d756..4798a3b6263 100644 --- a/.gitattributes +++ b/.gitattributes @@ -6405,6 +6405,7 @@ res/cardsfolder/r/relic_putrescence.txt svneol=native#text/plain res/cardsfolder/r/reliquary_monk.txt svneol=native#text/plain res/cardsfolder/r/reliquary_tower.txt svneol=native#text/plain res/cardsfolder/r/remand.txt svneol=native#text/plain +res/cardsfolder/r/remember_the_fallen.txt -text res/cardsfolder/r/remembrance.txt svneol=native#text/plain res/cardsfolder/r/reminisce.txt svneol=native#text/plain res/cardsfolder/r/remote_farm.txt svneol=native#text/plain diff --git a/res/cardsfolder/r/remember_the_fallen.txt b/res/cardsfolder/r/remember_the_fallen.txt new file mode 100644 index 00000000000..01da3490cee --- /dev/null +++ b/res/cardsfolder/r/remember_the_fallen.txt @@ -0,0 +1,11 @@ +Name:Remember the Fallen +ManaCost:2 W +Types:Sorcery +Text:no text +A:SP$ Charm | Cost$ 2 W | MinCharmNum$ 1 | CharmNum$ 2 | Choices$ ChangeCreature,ChangeArtifact | SpellDescription$ Choose one or both - Return target creature card from your graveyard to your hand; and/or return target artifact card from your graveyard to your hand. +SVar:ChangeCreature:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | TgtPrompt$ Select target creature card in your graveyard | ValidTgts$ Creature.YouCtrl | SpellDescription$ Return target creature card from your graveyard to your hand. +SVar:ChangeArtifact:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | TgtPrompt$ Select target artifact card in your graveyard | ValidTgts$ Artifact.YouCtrl | SpellDescription$ Return target artifact card from your graveyard to your hand. +SVar:RemAIDeck:True +SVar:Rarity:Common +SVar:Picture:http://www.wizards.com/global/images/magic/general/remember_the_fallen.jpg +End \ No newline at end of file diff --git a/src/main/java/forge/card/abilityFactory/AbilityFactory.java b/src/main/java/forge/card/abilityFactory/AbilityFactory.java index aa2948bc4dd..475ca01037a 100644 --- a/src/main/java/forge/card/abilityFactory/AbilityFactory.java +++ b/src/main/java/forge/card/abilityFactory/AbilityFactory.java @@ -1069,6 +1069,8 @@ public class AbilityFactory { SA.setIsCharm(true); int num = Integer.parseInt(mapParams.containsKey("CharmNum") ? mapParams.get("CharmNum") : "1"); SA.setCharmNumber(num); + int min = mapParams.containsKey("MinCharmNum") ? Integer.parseInt(mapParams.get("MinCharmNum")) : num; + SA.setMinCharmNumber(min); String[] saChoices = mapParams.get("Choices").split(","); for(int i = 0; i < saChoices.length; i++) { diff --git a/src/main/java/forge/card/abilityFactory/AbilityFactory_Charm.java b/src/main/java/forge/card/abilityFactory/AbilityFactory_Charm.java index 3208a84741f..3884c37e1bd 100644 --- a/src/main/java/forge/card/abilityFactory/AbilityFactory_Charm.java +++ b/src/main/java/forge/card/abilityFactory/AbilityFactory_Charm.java @@ -128,7 +128,16 @@ public final class AbilityFactory_Charm { } } for (int i = 0; i < sa.getCharmNumber(); i++) { - Object o = GuiUtils.getChoice("Choose a mode", choices.toArray()); + Object o; + if (i < sa.getMinCharmNumber()) { + o = GuiUtils.getChoice("Choose a mode", choices.toArray()); + } + else { + o = GuiUtils.getChoiceOptional("Choose a mode", choices.toArray()); + } + if (null == o) { + break; + } Ability_Sub chosen = (Ability_Sub) o; sa.addCharmChoice(chosen); choices.remove(chosen); diff --git a/src/main/java/forge/card/spellability/SpellAbility.java b/src/main/java/forge/card/spellability/SpellAbility.java index 0006c99d4e2..d86a70da3d0 100644 --- a/src/main/java/forge/card/spellability/SpellAbility.java +++ b/src/main/java/forge/card/spellability/SpellAbility.java @@ -65,6 +65,7 @@ public abstract class SpellAbility { private boolean isDelve = false; private int charmNumber; + private int minCharmNumber; private ArrayList charmChoices = new ArrayList(); //private ArrayList charmChoicesMade = new ArrayList(); @@ -1268,41 +1269,6 @@ public abstract class SpellAbility { return isCharm; } - /** - *

addCharmChoiceMade.

- * - * @param sa a SpellAbility - * @since 1.1.6 - */ - /* - public final void addCharmChoiceMade(final SpellAbility sa) { - charmChoicesMade.add(sa); - } - */ - - /** - *

getCharmChoicesMade.

- * - * @return an ArrayList - * @since 1.1.6 - */ - /* - public final ArrayList getCharmChoicesMade() { - return charmChoicesMade; - } - */ - - /** - *

clearCharmChoices.

- * - * @since 1.1.6 - */ - /* - public final void clearCharmChoicesMade() { - charmChoicesMade.clear(); - } - */ - /** *

setCharmNumber.

* @@ -1321,6 +1287,26 @@ public abstract class SpellAbility { return charmNumber; } + /** + *

setMinCharmNumber.

+ * + * @param i an int + * @since 1.1.6 + */ + public final void setMinCharmNumber(final int i) { + minCharmNumber = i; + } + + /** + *

getMinCharmNumber.

+ * + * @return an int + * @since 1.1.6 + */ + public final int getMinCharmNumber() { + return minCharmNumber; + } + /** *

addCharmChoice.

*