diff --git a/.gitattributes b/.gitattributes index 7055ffbc1a9..581112757df 100644 --- a/.gitattributes +++ b/.gitattributes @@ -4342,6 +4342,7 @@ res/cardsfolder/g/goblin_warchief.txt svneol=native#text/plain res/cardsfolder/g/goblin_warchief_avatar.txt -text res/cardsfolder/g/goblin_wardriver.txt svneol=native#text/plain res/cardsfolder/g/goblin_warrens.txt svneol=native#text/plain +res/cardsfolder/g/goblin_welder.txt -text res/cardsfolder/g/goblin_wizard.txt svneol=native#text/plain res/cardsfolder/g/goblins_of_the_flarg.txt svneol=native#text/plain res/cardsfolder/g/godhead_of_awe.txt svneol=native#text/plain diff --git a/res/cardsfolder/c/carpet_of_flowers.txt b/res/cardsfolder/c/carpet_of_flowers.txt index c5f865847d9..162bf57fede 100644 --- a/res/cardsfolder/c/carpet_of_flowers.txt +++ b/res/cardsfolder/c/carpet_of_flowers.txt @@ -13,6 +13,7 @@ SVar:X:Count$ChosenNumber SVar:NumManaMax:Count$Valid Island.RememberedPlayerCtrl SVar:CarpetX:Number$0 SVar:RemAIDeck:True +SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/carpet_of_flowers.jpg SetInfo:USG|Uncommon|http://magiccards.info/scans/en/us/240.jpg Oracle:At the beginning of each of your main phases, if you haven't added mana to your mana pool with this ability this turn, you may add up to X mana of any one color to your mana pool, where X is the number of Islands target opponent controls. diff --git a/res/cardsfolder/g/goblin_welder.txt b/res/cardsfolder/g/goblin_welder.txt new file mode 100644 index 00000000000..1d811ad915b --- /dev/null +++ b/res/cardsfolder/g/goblin_welder.txt @@ -0,0 +1,13 @@ +Name:Goblin Welder +ManaCost:R +Types:Creature Goblin Artificer +PT:1/1 +A:AB$ Pump | Cost$ T | ValidTgts$ Artifact | TgtPrompt$ Select target artifact a player controls | RememberObjects$ Targeted | Condition$ AllTargetsLegal | StackDescription$ SpellDescription | SubAbility$ DBTargetYard | SpellDescription$ Choose target artifact a player controls and target artifact card in that player's graveyard. If both targets are still legal as this ability resolves, that player simultaneously sacrifices the artifact and returns the artifact card to the battlefield. +SVar:DBTargetYard:DB$ Pump | ValidTgts$ Artifact | TgtPrompt$ Select target artifact in that player's graveyard | TgtZone$ Graveyard | PumpZone$ Graveyard | TargetsWithSameController$ True | ImprintCards$ Targeted | Condition$ AllTargetsLegal | StackDescription$ None | SubAbility$ DBSacrifice +SVar:DBSacrifice:DB$ SacrificeAll | ValidCards$ Card.IsRemembered | ConditionDefined$ Remembered | ConditionPresent$ Artifact | ConditionCompare$ GE1 | ConditionCheckSVar$ CheckImprint | ConditionSVarCompare$ GE1 | SubAbility$ DBReturn | StackDescription$ None +SVar:DBReturn:DB$ ChangeZone | Defined$ Imprinted | Origin$ Graveyard | Destination$ Battlefield | SubAbility$ DBCleanup | ConditionDefined$ Remembered | ConditionPresent$ Artifact | ConditionCompare$ GE1 | ConditionCheckSVar$ CheckImprint | ConditionSVarCompare$ GE1 | StackDescription$ None +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True +SVar:CheckImprint:Imprinted$Valid Artifact.sharesControllerWith Remembered +SVar:Picture:http://www.wizards.com/global/images/magic/general/goblin_welder.jpg +SetInfo:ULG|Rare|http://magiccards.info/scans/en/ul/80.jpg +Oracle:{T}: Choose target artifact a player controls and target artifact card in that player's graveyard. If both targets are still legal as this ability resolves, that player simultaneously sacrifices the artifact and returns the artifact card to the battlefield. diff --git a/src/main/java/forge/card/spellability/SpellAbilityCondition.java b/src/main/java/forge/card/spellability/SpellAbilityCondition.java index 17eeb328e66..f176565fd2b 100644 --- a/src/main/java/forge/card/spellability/SpellAbilityCondition.java +++ b/src/main/java/forge/card/spellability/SpellAbilityCondition.java @@ -200,8 +200,7 @@ public class SpellAbilityCondition extends SpellAbilityVariables { } } if (this.isAllTargetsLegal()) { - SpellAbility root = sa.getRootAbility(); - for (Card c : root.getTarget().getTargetCards()) { + for (Card c : sa.getTarget().getTargetCards()) { if (!CardFactoryUtil.isTargetStillValid(sa, c)) { return false; }