diff --git a/.gitattributes b/.gitattributes index 11435325fdb..3f2b4740afe 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2872,6 +2872,7 @@ res/cardsfolder/d/dunerider_outlaw.txt svneol=native#text/plain res/cardsfolder/d/dungeon_geists.txt -text res/cardsfolder/d/dungeon_shade.txt svneol=native#text/plain res/cardsfolder/d/dungrove_elder.txt svneol=native#text/plain +res/cardsfolder/d/duplicant.txt -text res/cardsfolder/d/duress.txt svneol=native#text/plain res/cardsfolder/d/durkwood_baloth.txt svneol=native#text/plain res/cardsfolder/d/durkwood_boars.txt svneol=native#text/plain @@ -8398,6 +8399,7 @@ res/cardsfolder/r/rhystic_deluge.txt svneol=native#text/plain res/cardsfolder/r/rhystic_scrying.txt -text res/cardsfolder/r/rhystic_shield.txt -text res/cardsfolder/r/rhystic_study.txt svneol=native#text/plain +res/cardsfolder/r/rhystic_syphon.txt -text res/cardsfolder/r/rhystic_tutor.txt -text res/cardsfolder/r/rib_cage_spider.txt svneol=native#text/plain res/cardsfolder/r/ribbon_snake.txt -text diff --git a/res/cardsfolder/d/duplicant.txt b/res/cardsfolder/d/duplicant.txt new file mode 100644 index 00000000000..f79bb3a2dc9 --- /dev/null +++ b/res/cardsfolder/d/duplicant.txt @@ -0,0 +1,18 @@ +Name:Duplicant +ManaCost:6 +Types:Artifact Creature Shapeshifter +Text:no text +PT:2/4 +T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | OptionalDecider$ You | Execute$ TrigExile | TriggerDescription$ Imprint - When CARDNAME enters the battlefield, you may exile target nontoken creature. +SVar:TrigExile:AB$ ChangeZone | Cost$ 0 | Unimprint$ True | Imprint$ True | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.nonToken | TgtPrompt$ Select target nontoken creature +S:Mode$ Continuous | Affected$ Card.Self | AddType$ ImprintedCreatureType | CheckSVar$ Z | SVarCompare$ EQ1 | SetPower$ X | SetToughness$ Y | References$ X,Y,Z | Description$ As long as the exiled card is a creature card, CARDNAME has that card's power, toughness, and creature types. It's still a Shapeshifter. +T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsImprinted | Execute$ DBCleanup +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearImprinted$ True +SVar:X:Imprinted$CardPower +SVar:Y:Imprinted$CardToughness +SVar:Z:Imprinted$Valid Creature +SVar:Rarity:Uncommon +SVar:Picture:http://www.wizards.com/global/images/magic/general/duplicant.jpg +Oracle:Imprint - When Duplicant enters the battlefield, you may exile target nontoken creature.\nAs long as the exiled card is a creature card, Duplicant has that card's power, toughness, and creature types. It's still a Shapeshifter. +End \ No newline at end of file diff --git a/res/cardsfolder/r/rhystic_syphon.txt b/res/cardsfolder/r/rhystic_syphon.txt new file mode 100644 index 00000000000..75aed17ba72 --- /dev/null +++ b/res/cardsfolder/r/rhystic_syphon.txt @@ -0,0 +1,14 @@ +Name:Rhystic Syphon +ManaCost:3 B B +Types:Sorcery +Text:no text +A:SP$ StoreSVar | Cost$ 3 B B | ValidTgts$ Player | TgtPrompt$ Target a player to lose life | SVar$ SyphonPaid | Type$ CountSVar | Expression$ SyphonPaid/Plus.1 | UnlessCost$ 3 | UnlessPayer$ Targeted | SubAbility$ DBLoseLife +SVar:DBLoseLife:DB$ LoseLife | LifeAmount$ 5 | Defined$ Targeted | SubAbility$ DBGainLife | ConditionCheckSVar$ SyphonPaid | ConditionSVarCompare$ EQ1 +SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 5 | ConditionCheckSVar$ SyphonPaid | ConditionSVarCompare$ EQ1 | SubAbility$ DBReset +SVar:DBReset:DB$ StoreSVar | SVar$ SyphonPaid | Type$ Number | Expression$ 0 +SVar:SyphonPaid:Number$0 +SVar:Rarity:Uncommon +SVar:Picture:http://www.wizards.com/global/images/magic/general/rhystic_syphon.jpg +SetInfo:PCY|Uncommon|http://magiccards.info/scans/en/pr/75.jpg +Oracle:Unless target player pays {3}, he or she loses 5 life and you gain 5 life. +End diff --git a/src/main/java/forge/card/staticability/StaticAbilityContinuous.java b/src/main/java/forge/card/staticability/StaticAbilityContinuous.java index 8379a42fdde..1d4ae71e8b1 100644 --- a/src/main/java/forge/card/staticability/StaticAbilityContinuous.java +++ b/src/main/java/forge/card/staticability/StaticAbilityContinuous.java @@ -188,6 +188,15 @@ public class StaticAbilityContinuous { final String chosenType = hostCard.getChosenType(); addTypes[0] = chosenType; se.setChosenType(chosenType); + } else if (addTypes[0].equals("ImprintedCreatureType")) { + final ArrayList imprint = hostCard.getImprinted().get(0).getType(); + ArrayList imprinted = new ArrayList(); + for (String t : imprint ) { + if (CardUtil.isACreatureType(t) || t.equals("AllCreatureTypes")) { + imprinted.add(t); + } + } + addTypes = imprinted.toArray(new String[imprinted.size()]); } }