diff --git a/res/cardsfolder/c/call_the_skybreaker.txt b/res/cardsfolder/c/call_the_skybreaker.txt index 740d78099b9..5b606d26bf4 100644 --- a/res/cardsfolder/c/call_the_skybreaker.txt +++ b/res/cardsfolder/c/call_the_skybreaker.txt @@ -3,7 +3,7 @@ ManaCost:5 UR UR Types:Sorcery Text:no text A:SP$ Token | Cost$ 5 UR UR | TokenAmount$ 1 | TokenName$ Elemental | TokenTypes$ Creature,Elemental | TokenOwner$ You | TokenColors$ Blue,Red | TokenPower$ 5 | TokenToughness$ 5 | TokenKeywords$ Flying | SpellDescription$ Put a 5/5 blue and red Elemental creature token with flying onto the battlefield. -A:SP$ Token | Cost$ 5 UR UR Discard<1/Land> | ActivationZone$ Graveyard | CostDesc$ Retrace | TokenAmount$ 1 | TokenName$ Elemental | TokenTypes$ Creature,Elemental | TokenOwner$ You | TokenColors$ Blue,Red | TokenPower$ 5 | TokenToughness$ 5 | TokenKeywords$ Flying | SpellDescription$ (You may cast this card from your graveyard by discarding a land card in addition to paying its other costs.) +A:SP$ Token | Cost$ 5 UR UR Discard<1/Land> | ActivationZone$ Graveyard | CostDesc$ Retrace | TokenAmount$ 1 | TokenName$ Elemental | TokenTypes$ Creature,Elemental | TokenOwner$ You | TokenColors$ Blue,Red | TokenPower$ 5 | TokenToughness$ 5 | TokenKeywords$ Flying | NonBasicSpell$ True | SpellDescription$ (You may cast this card from your graveyard by discarding a land card in addition to paying its other costs.) SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/call_the_skybreaker.jpg SetInfo:COM|Rare|http://magiccards.info/scans/en/cmd/188.jpg diff --git a/res/cardsfolder/c/cenns_enlistment.txt b/res/cardsfolder/c/cenns_enlistment.txt index 837123d210f..8943ba47c04 100644 --- a/res/cardsfolder/c/cenns_enlistment.txt +++ b/res/cardsfolder/c/cenns_enlistment.txt @@ -3,7 +3,7 @@ ManaCost:3 W Types:Sorcery Text:no text A:SP$ Token | Cost$ 3 W | TokenImage$ W 1 1 Kithkin Soldier | TokenAmount$ 2 | TokenName$ Kithkin Soldier | TokenTypes$ Creature,Kithkin,Soldier | TokenOwner$ You | TokenColors$ White | TokenPower$ 1 | TokenToughness$ 1 | SpellDescription$ Put two 1/1 white Kithkin Soldier creature tokens onto the battlefield. -A:SP$ Token | Cost$ 3 W Discard<1/Land> | CostDesc$ Retrace | TokenImage$ W 1 1 Kithkin Soldier | TokenAmount$ 2 | TokenName$ Kithkin Soldier | TokenTypes$ Creature,Kithkin,Soldier | TokenOwner$ You | TokenColors$ White | TokenPower$ 1 | TokenToughness$ 1 | ActivationZone$ Graveyard | SpellDescription$ (You may cast this card from your graveyard by discarding a land card in addition to paying its other costs.) +A:SP$ Token | Cost$ 3 W Discard<1/Land> | CostDesc$ Retrace | TokenImage$ W 1 1 Kithkin Soldier | TokenAmount$ 2 | TokenName$ Kithkin Soldier | TokenTypes$ Creature,Kithkin,Soldier | TokenOwner$ You | TokenColors$ White | TokenPower$ 1 | TokenToughness$ 1 | ActivationZone$ Graveyard | NonBasicSpell$ True | SpellDescription$ (You may cast this card from your graveyard by discarding a land card in addition to paying its other costs.) SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/cenns_enlistment.jpg SetInfo:EVE|Common|http://magiccards.info/scans/en/eve/3.jpg diff --git a/res/cardsfolder/f/flame_jab.txt b/res/cardsfolder/f/flame_jab.txt index 545f9af1dfd..090fec7597d 100644 --- a/res/cardsfolder/f/flame_jab.txt +++ b/res/cardsfolder/f/flame_jab.txt @@ -3,7 +3,7 @@ ManaCost:R Types:Sorcery Text:no text A:SP$ DealDamage | Cost$ R | Tgt$ TgtCP | NumDmg$ 1 | SpellDescription$ CARDNAME deals 1 damage to target creature or player. -A:SP$ DealDamage | Cost$ R Discard<1/Land> | ActivationZone$ Graveyard | CostDesc$ Retrace | Tgt$ TgtCP | NumDmg$ 1 | SpellDescription$ (You may cast this card from your graveyard by discarding a land card in addition to paying its other costs.) +A:SP$ DealDamage | Cost$ R Discard<1/Land> | ActivationZone$ Graveyard | CostDesc$ Retrace | Tgt$ TgtCP | NumDmg$ 1 | NonBasicSpell$ True | SpellDescription$ (You may cast this card from your graveyard by discarding a land card in addition to paying its other costs.) SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/flame_jab.jpg SetInfo:EVE|Common|http://magiccards.info/scans/en/eve/53.jpg diff --git a/res/cardsfolder/m/monstrify.txt b/res/cardsfolder/m/monstrify.txt index 60417ecc00d..4476d3b1560 100644 --- a/res/cardsfolder/m/monstrify.txt +++ b/res/cardsfolder/m/monstrify.txt @@ -3,7 +3,7 @@ ManaCost:3 G Types:Sorcery Text:no text A:SP$ Pump | Cost$ 3 G | ValidTgts$ Creature | NumAtt$ +4 | NumDef$ +4 | SpellDescription$ Target creature gets +4/+4 until end of turn. | TgtPrompt$ Select target creature. -A:SP$ Pump | Cost$ 3 G Discard<1/Land> | ActivationZone$ Graveyard | PrecostDesc$ Retrace - | ValidTgts$ Creature | TgtPrompt$ Select target creature. | NumAtt$ +4 | NumDef$ +4 | SpellDescription$ Target creature gets +4/+4 until end of turn. You may play this card from your graveyard. +A:SP$ Pump | Cost$ 3 G Discard<1/Land> | ActivationZone$ Graveyard | PrecostDesc$ Retrace - | ValidTgts$ Creature | TgtPrompt$ Select target creature. | NumAtt$ +4 | NumDef$ +4 | NonBasicSpell$ True | SpellDescription$ Target creature gets +4/+4 until end of turn. You may play this card from your graveyard. SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/monstrify.jpg SetInfo:EVE|Common|http://magiccards.info/scans/en/eve/70.jpg diff --git a/res/cardsfolder/o/oonas_grace.txt b/res/cardsfolder/o/oonas_grace.txt index 634e9cd05c3..35367cabc49 100644 --- a/res/cardsfolder/o/oonas_grace.txt +++ b/res/cardsfolder/o/oonas_grace.txt @@ -3,7 +3,7 @@ ManaCost:2 U Types:Instant Text:no text A:SP$ Draw | Cost$ 2 U | NumCards$ 1 | ValidTgts$ Player | TgtPrompt$ Choose a player | SpellDescription$ Target player draws a card. -A:SP$ Draw | Cost$ 2 U Discard<1/Land> | NumCards$ 1 | ValidTgts$ Player | TgtPrompt$ Choose a player | ActivationZone$ Graveyard | CostDesc$ Retrace | SpellDescription$ (You may cast this card from your graveyard by discarding a land card in addition to paying its other costs.) +A:SP$ Draw | Cost$ 2 U Discard<1/Land> | NumCards$ 1 | ValidTgts$ Player | TgtPrompt$ Choose a player | ActivationZone$ Graveyard | CostDesc$ Retrace | NonBasicSpell$ True | SpellDescription$ (You may cast this card from your graveyard by discarding a land card in addition to paying its other costs.) SVar:Picture:http://www.wizards.com/global/images/magic/general/oonas_grace.jpg SVar:Rarity:Common SetInfo:EVE|Common|http://magiccards.info/scans/en/eve/27.jpg diff --git a/res/cardsfolder/r/ravens_crime.txt b/res/cardsfolder/r/ravens_crime.txt index 30d37b1b994..e5323b0c4a4 100644 --- a/res/cardsfolder/r/ravens_crime.txt +++ b/res/cardsfolder/r/ravens_crime.txt @@ -3,7 +3,7 @@ ManaCost:B Types:Sorcery Text:no text A:SP$ Discard | Cost$ B | NumCards$ 1 | ValidTgts$ Player | TgtPrompt$ Select target player | Mode$ TgtChoose | SpellDescription$ Target player discards a card. -A:SP$ Discard | Cost$ B Discard<1/Land> | NumCards$ 1 | ValidTgts$ Player | TgtPrompt$ Select target player | ActivationZone$ Graveyard | Mode$ TgtChoose | CostDesc$ Retrace | SpellDescription$ (You may cast this card from your graveyard by discarding a land card in addition to paying its other costs.) +A:SP$ Discard | Cost$ B Discard<1/Land> | NumCards$ 1 | ValidTgts$ Player | TgtPrompt$ Select target player | ActivationZone$ Graveyard | Mode$ TgtChoose | CostDesc$ Retrace | NonBasicSpell$ True | SpellDescription$ (You may cast this card from your graveyard by discarding a land card in addition to paying its other costs.) SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/ravens_crime.jpg SetInfo:EVE|Common|http://magiccards.info/scans/en/eve/41.jpg diff --git a/res/cardsfolder/s/savage_conception.txt b/res/cardsfolder/s/savage_conception.txt index d7a5b74c5f3..235431a4bdc 100644 --- a/res/cardsfolder/s/savage_conception.txt +++ b/res/cardsfolder/s/savage_conception.txt @@ -3,7 +3,7 @@ ManaCost:3 G G Types:Sorcery Text:no text A:SP$ Token | Cost$ 3 G G | TokenAmount$ 1 | TokenName$ Beast | TokenTypes$ Creature,Beast | TokenOwner$ You | TokenColors$ Green | TokenPower$ 3 | TokenToughness$ 3 | SpellDescription$ Put a 3/3 green Beast creature token onto the battlefield. -A:SP$ Token | Cost$ 3 G G Discard<1/Land> | ActivationZone$ Graveyard | CostDesc$ Retrace | TokenAmount$ 1 | TokenName$ Beast | TokenTypes$ Creature,Beast | TokenOwner$ You | TokenColors$ Green | TokenPower$ 3| TokenToughness$ 3 | SpellDescription$ (You may cast this card from your graveyard by discarding a land card in addition to paying its other costs.) +A:SP$ Token | Cost$ 3 G G Discard<1/Land> | ActivationZone$ Graveyard | CostDesc$ Retrace | TokenAmount$ 1 | TokenName$ Beast | TokenTypes$ Creature,Beast | TokenOwner$ You | TokenColors$ Green | TokenPower$ 3| TokenToughness$ 3 | NonBasicSpell$ True | SpellDescription$ (You may cast this card from your graveyard by discarding a land card in addition to paying its other costs.) SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/savage_conception.jpg SetInfo:EVE|Uncommon|http://magiccards.info/scans/en/eve/75.jpg diff --git a/res/cardsfolder/s/spitting_image.txt b/res/cardsfolder/s/spitting_image.txt index 42440bd97ed..519b98d363b 100644 --- a/res/cardsfolder/s/spitting_image.txt +++ b/res/cardsfolder/s/spitting_image.txt @@ -3,7 +3,7 @@ ManaCost:4 GU GU Types:Sorcery Text:no text A:SP$CopyPermanent | Cost$ 4 GU GU | Tgt$ TgtC | SpellDescription$ Put a token that's a copy of target creature onto the battlefield. -A:SP$CopyPermanent | Cost$ 4 GU GU Discard<1/Land> | ActivationZone$ Graveyard | Tgt$ TgtC | CostDesc$ Retrace | SpellDescription$ (You may cast this card from your graveyard by discarding a land card in addition to paying its other costs.) +A:SP$CopyPermanent | Cost$ 4 GU GU Discard<1/Land> | ActivationZone$ Graveyard | Tgt$ TgtC | CostDesc$ Retrace | NonBasicSpell$ True | SpellDescription$ (You may cast this card from your graveyard by discarding a land card in addition to paying its other costs.) SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/spitting_image.jpg SetInfo:EVE|Rare|http://magiccards.info/scans/en/eve/162.jpg diff --git a/res/cardsfolder/s/syphon_life.txt b/res/cardsfolder/s/syphon_life.txt index 05716e80d2e..62d94a9f2bf 100644 --- a/res/cardsfolder/s/syphon_life.txt +++ b/res/cardsfolder/s/syphon_life.txt @@ -3,7 +3,7 @@ ManaCost:1 B B Types:Sorcery Text:no text A:SP$ LoseLife | Cost$ 1 B B | ValidTgts$ Player | TgtPrompt$ Select target player | LifeAmount$ 2 | SubAbility$ DBGainLife | SpellDescription$ Target player loses 2 life and you gain 2 life. -A:SP$ LoseLife | Cost$ 1 B B Discard<1/Land> | ActivationZone$ Graveyard | CostDesc$ Retrace | ValidTgts$ Player | TgtPrompt$ Select target player | LifeAmount$ 2 | SubAbility$ DBGainLife | SpellDescription$ (You may cast this card from your graveyard by discarding a land card in addition to paying its other costs.) +A:SP$ LoseLife | Cost$ 1 B B Discard<1/Land> | ActivationZone$ Graveyard | CostDesc$ Retrace | ValidTgts$ Player | TgtPrompt$ Select target player | LifeAmount$ 2 | SubAbility$ DBGainLife | NonBasicSpell$ True | SpellDescription$ (You may cast this card from your graveyard by discarding a land card in addition to paying its other costs.) SVar:DBGainLife:DB$GainLife | Defined$ You | LifeAmount$ 2 SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/syphon_life.jpg diff --git a/res/cardsfolder/w/worm_harvest.txt b/res/cardsfolder/w/worm_harvest.txt index e23fed88879..dd4c06767e4 100644 --- a/res/cardsfolder/w/worm_harvest.txt +++ b/res/cardsfolder/w/worm_harvest.txt @@ -3,7 +3,7 @@ ManaCost:2 BG BG BG Types:Sorcery Text:no text A:SP$ Token | Cost$ 2 BG BG BG | TokenAmount$ X | TokenName$ Worm | TokenTypes$ Creature,Worm | TokenOwner$ You | TokenColors$ Black,Green | TokenPower$ 1 | TokenToughness$ 1 | SpellDescription$ Put a 1/1 black and green Worm creature token onto the battlefield for each land card in your graveyard. -A:SP$ Token | Cost$ 2 BG BG BG Discard<1/Land> | ActivationZone$ Graveyard | CostDesc$ Retrace | TokenAmount$ X | TokenName$ Worm | TokenTypes$ Creature,Worm | TokenOwner$ You | TokenColors$ Black,Green | TokenPower$ 1 | TokenToughness$ 1 | SpellDescription$ (You may cast this card from your graveyard by discarding a land card in addition to paying its other costs.) +A:SP$ Token | Cost$ 2 BG BG BG Discard<1/Land> | ActivationZone$ Graveyard | CostDesc$ Retrace | TokenAmount$ X | TokenName$ Worm | TokenTypes$ Creature,Worm | TokenOwner$ You | TokenColors$ Black,Green | TokenPower$ 1 | TokenToughness$ 1 | NonBasicSpell$ True | SpellDescription$ (You may cast this card from your graveyard by discarding a land card in addition to paying its other costs.) SVar:X:Count$TypeInYourYard.Land SVar:Rarity:Rare SVar:Picture:http://magiccards.info/scans/en/eve/131.jpg diff --git a/src/main/java/forge/ComputerUtil.java b/src/main/java/forge/ComputerUtil.java index 991a0c554e0..27d93491d4e 100644 --- a/src/main/java/forge/ComputerUtil.java +++ b/src/main/java/forge/ComputerUtil.java @@ -406,13 +406,16 @@ public class ComputerUtil { */ public static final void playSpellAbilityWithoutPayingManaCost(final SpellAbility sa) { final SpellAbility newSA = sa.copy(); - final Cost cost = sa.getPayCosts(); - for (final CostPart part : cost.getCostParts()) { - if (part instanceof CostMana) { - ((CostMana) part).setMana("0"); + final Cost cost = new Cost("", sa.getSourceCard().getName(), false); + if (newSA.getPayCosts() != null) { + for (final CostPart part : newSA.getPayCosts().getCostParts()) { + if (!(part instanceof CostMana)) { + cost.getCostParts().add(part); + } } } cost.setNoManaCostChange(true); + newSA.setPayCosts(cost); newSA.setManaCost("0"); final StringBuilder sb = new StringBuilder(); sb.append(sa.getDescription()).append(" (without paying its mana cost)"); diff --git a/src/main/java/forge/card/abilityfactory/AbilityFactory.java b/src/main/java/forge/card/abilityfactory/AbilityFactory.java index a8daef2ede2..4877e7a2a8c 100644 --- a/src/main/java/forge/card/abilityfactory/AbilityFactory.java +++ b/src/main/java/forge/card/abilityfactory/AbilityFactory.java @@ -37,6 +37,7 @@ import forge.card.cost.Cost; import forge.card.cost.CostUtil; import forge.card.spellability.AbilityActivated; import forge.card.spellability.AbilitySub; +import forge.card.spellability.Spell; import forge.card.spellability.SpellAbility; import forge.card.spellability.SpellAbilityCondition; import forge.card.spellability.SpellAbilityRestriction; @@ -1034,10 +1035,6 @@ public class AbilityFactory { } else if (this.isDb) { spellAbility = afPump.getDrawbackPump(); } - - if (this.isAb || this.isSp) { - hostCard.setSVar("PlayMain1", "TRUE"); - } } else if (this.api.equals("PumpAll")) { @@ -1050,10 +1047,6 @@ public class AbilityFactory { } else if (this.isDb) { spellAbility = afPump.getDrawbackPumpAll(); } - - if (this.isAb || this.isSp) { - hostCard.setSVar("PlayMain1", "TRUE"); - } } else if (this.api.equals("PutCounter")) { @@ -1355,10 +1348,9 @@ public class AbilityFactory { spellAbility.setDescription(""); } - // StackDescriptions are overwritten by the AF type instead of through - // this - // if (!isTargeted) - // SA.setStackDescription(hostCard.getName()); + if (this.mapParams.containsKey("NonBasicSpell")) { + spellAbility.setBasicSpell(false); + } this.makeRestrictions(spellAbility); this.makeConditions(spellAbility); diff --git a/src/main/java/forge/card/abilityfactory/AbilityFactoryPlay.java b/src/main/java/forge/card/abilityfactory/AbilityFactoryPlay.java index 626e5103c07..56b02f7155e 100644 --- a/src/main/java/forge/card/abilityfactory/AbilityFactoryPlay.java +++ b/src/main/java/forge/card/abilityfactory/AbilityFactoryPlay.java @@ -442,9 +442,11 @@ public final class AbilityFactoryPlay { if (controller.isHuman()) { final SpellAbility newSA = tgtSA.copy(); final Cost cost = new Cost("", tgtCard.getName(), false); - for (final CostPart part : newSA.getPayCosts().getCostParts()) { - if (!(part instanceof CostMana)) { - cost.getCostParts().add(part); + if (newSA.getPayCosts() != null) { + for (final CostPart part : newSA.getPayCosts().getCostParts()) { + if (!(part instanceof CostMana)) { + cost.getCostParts().add(part); + } } } cost.setNoManaCostChange(true);