diff --git a/.gitattributes b/.gitattributes index 7cf6544779f..e4ae8f1c366 100644 --- a/.gitattributes +++ b/.gitattributes @@ -6291,6 +6291,7 @@ res/cardsfolder/m/mana_seism.txt -text res/cardsfolder/m/mana_severance.txt svneol=native#text/plain res/cardsfolder/m/mana_short.txt svneol=native#text/plain res/cardsfolder/m/mana_tithe.txt svneol=native#text/plain +res/cardsfolder/m/mana_vapors.txt -text res/cardsfolder/m/mana_vault.txt svneol=native#text/plain res/cardsfolder/m/mana_vortex.txt svneol=native#text/plain res/cardsfolder/m/manabarbs.txt svneol=native#text/plain @@ -8842,6 +8843,7 @@ res/cardsfolder/s/salvaging_station.txt svneol=native#text/plain res/cardsfolder/s/samite_alchemist.txt -text res/cardsfolder/s/samite_archer.txt svneol=native#text/plain res/cardsfolder/s/samite_censer_bearer.txt -text +res/cardsfolder/s/samite_elder.txt -text res/cardsfolder/s/samite_healer.txt svneol=native#text/plain res/cardsfolder/s/samite_pilgrim.txt svneol=native#text/plain res/cardsfolder/s/samite_sanctuary.txt -text @@ -10304,6 +10306,7 @@ res/cardsfolder/s/stronghold_rats.txt svneol=native#text/plain res/cardsfolder/s/stronghold_taskmaster.txt svneol=native#text/plain res/cardsfolder/s/stronghold_zeppelin.txt svneol=native#text/plain res/cardsfolder/s/structural_collapse.txt -text +res/cardsfolder/s/struggle_for_sanity.txt -text res/cardsfolder/s/student_of_elements_tobita_master_of_winds.txt -text res/cardsfolder/s/student_of_warfare.txt svneol=native#text/plain res/cardsfolder/s/stuffy_doll.txt svneol=native#text/plain @@ -10523,6 +10526,7 @@ res/cardsfolder/t/tajuru_archer.txt svneol=native#text/plain res/cardsfolder/t/tajuru_preserver.txt -text res/cardsfolder/t/takara.txt -text res/cardsfolder/t/take_possession.txt svneol=native#text/plain +res/cardsfolder/t/takeno_samurai_general.txt -text res/cardsfolder/t/takenos_cavalry.txt svneol=native#text/plain res/cardsfolder/t/takenuma.txt -text res/cardsfolder/t/takenuma_bleeder.txt svneol=native#text/plain @@ -10812,6 +10816,7 @@ res/cardsfolder/t/thran_foundry.txt svneol=native#text/plain res/cardsfolder/t/thran_golem.txt svneol=native#text/plain res/cardsfolder/t/thran_lens.txt svneol=native#text/plain res/cardsfolder/t/thran_quarry.txt svneol=native#text/plain +res/cardsfolder/t/thran_tome.txt -text res/cardsfolder/t/thran_war_machine.txt svneol=native#text/plain res/cardsfolder/t/thran_weaponry.txt -text svneol=unset#text/plain res/cardsfolder/t/thrashing_mudspawn.txt svneol=native#text/plain diff --git a/res/cardsfolder/m/mana_vapors.txt b/res/cardsfolder/m/mana_vapors.txt new file mode 100644 index 00000000000..0157f86fe69 --- /dev/null +++ b/res/cardsfolder/m/mana_vapors.txt @@ -0,0 +1,10 @@ +Name:Mana Vapors +ManaCost:1 U +Types:Sorcery +Text:no text +A:SP$ PumpAll | Cost$ 1 U | ValidTgts$ Player | IsCurse$ True | ValidCards$ Land.TargetedPlayerCtrl | KW$ HIDDEN This card doesn't untap during your next untap step. | Permanent$ True | SpellDescription$ Lands target player controls don't untap during his or her next untap step. +SVar:RemAIDeck:True +SVar:Picture:http://www.wizards.com/global/images/magic/general/mana_vapors.jpg +SetInfo:PCY|Uncommon|http://magiccards.info/scans/en/pr/38.jpg +Oracle:Lands target player controls don't untap during his or her next untap step. +End \ No newline at end of file diff --git a/res/cardsfolder/s/samite_elder.txt b/res/cardsfolder/s/samite_elder.txt new file mode 100644 index 00000000000..ed91e3ed33c --- /dev/null +++ b/res/cardsfolder/s/samite_elder.txt @@ -0,0 +1,12 @@ +Name:Samite Elder +ManaCost:2 W +Types:Creature Human Cleric +Text:no text +PT:1/2 +A:AB$ ProtectionAll | Cost$ T | ValidCards$ Creature.YouCtrl | ValidTgts$ Permanent.YouCtrl | TgtPrompt$ Select target permanent you control | Gains$ TargetedCardColor | StackDescription$ SpellDescription | SpellDescription$ Creatures you control gain protection from the colors of target permanent you control until end of turn. +SVar:RemAIDeck:True +SVar:Rarity:Rare +SVar:Picture:http://www.wizards.com/global/images/magic/general/samite_elder.jpg +Oracle:{T}: Creatures you control gain protection from the colors of target permanent you control until end of turn. +SetInfo:PLS|Rare|http://magiccards.info/scans/en/ps/14.jpg +End \ No newline at end of file diff --git a/res/cardsfolder/s/struggle_for_sanity.txt b/res/cardsfolder/s/struggle_for_sanity.txt new file mode 100644 index 00000000000..d332970e9c1 --- /dev/null +++ b/res/cardsfolder/s/struggle_for_sanity.txt @@ -0,0 +1,18 @@ +Name:Struggle for Sanity +ManaCost:2 B B +Types:Sorcery +Text:no text +A:SP$ RevealHand | Cost$ 2 B B | ValidTgts$ Opponent | RememberTargets$ True | RememberRevealed$ True | SubAbility$ DBRepeatChoose | StackDescription$ SpellDescription | SpellDescription$ Target opponent reveals his or her hand. That player exiles a card from it, then you exile a card from it. Repeat this process until all cards in that hand have been exiled. That player returns the cards he or she exiled this way to his or her hand and puts the rest into his or her graveyard. +SVar:DBRepeatChoose:DB$ Repeat | RepeatSubAbility$ DBOppChoose | RepeatCheckSVar$ X | RepeatSVarCompare$ GE1 | SubAbility$ DBReturn | StackDescription$ None +SVar:DBOppChoose:DB$ ChooseCard | Defined$ Player.IsRemembered | Choices$ Card.IsRemembered | ChoiceZone$ Hand | Amount$ 1 | Mandatory$ True | SubAbility$ DBExileOpp +SVar:DBExileOpp:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Hand | Destination$ Exile | Imprint$ True | SubAbility$ DBYouChoose +SVar:DBYouChoose:DB$ ChooseCard | Defined$ You | Choices$ Card.IsRemembered | ChoiceZone$ Hand | Amount$ 1 | Mandatory$ True | SubAbility$ DBExileYou +SVar:DBExileYou:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Hand | Destination$ Exile +SVar:DBReturn:DB$ ChangeZoneAll | ChangeType$ Card.IsImprinted | Origin$ Exile | Destination$ Hand | SubAbility$ DBGoYard | StackDescription$ None +SVar:DBGoYard:DB$ ChangeZoneAll | ChangeType$ Card.IsNotImprinted+IsRemembered | Origin$ Exile | Destination$ Graveyard | SubAbility$ DBCleanup | StackDescription$ None +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True +SVar:X:Count$ValidHand Card.IsRemembered +SVar:Picture:http://www.wizards.com/global/images/magic/general/struggle_for_sanity.jpg +Oracle:Target opponent reveals his or her hand. That player exiles a card from it, then you exile a card from it. Repeat this process until all cards in that hand have been exiled. That player returns the cards he or she exiled this way to his or her hand and puts the rest into his or her graveyard. +SetInfo:CHK|Uncommon|http://magiccards.info/scans/en/chk/145.jpg +End \ No newline at end of file diff --git a/res/cardsfolder/t/takeno_samurai_general.txt b/res/cardsfolder/t/takeno_samurai_general.txt new file mode 100644 index 00000000000..36f47fa030f --- /dev/null +++ b/res/cardsfolder/t/takeno_samurai_general.txt @@ -0,0 +1,13 @@ +Name:Takeno, Samurai General +ManaCost:5 W +Types:Legendary Creature Human Samurai +Text:no text +PT:3/3 +K:Bushido 2 +S:Mode$ Continuous | Affected$ Creature.Samurai+Other | AffectedZone$ Battlefield | AddPower$ AffectedX | AddToughness$ AffectedX | Description$ Each other Samurai creature you control gets +1/+1 for each point of bushido it has. +SVar:AffectedX:Count$BushidoPoint +SVar:BuffedBy:Samurai +SVar:Picture:http://www.wizards.com/global/images/magic/general/takeno_samurai_general.jpg +Oracle:Bushido 2 (When this blocks or becomes blocked, it gets +2/+2 until end of turn.)\nEach other Samurai creature you control gets +1/+1 for each point of bushido it has. +SetInfo:CHK|Rare|http://magiccards.info/scans/en/chk/46.jpg +End \ No newline at end of file diff --git a/res/cardsfolder/t/thran_tome.txt b/res/cardsfolder/t/thran_tome.txt new file mode 100644 index 00000000000..790966ba3fc --- /dev/null +++ b/res/cardsfolder/t/thran_tome.txt @@ -0,0 +1,14 @@ +Name:Thran Tome +ManaCost:4 +Types:Artifact +Text:no text +A:AB$ Dig | Cost$ 5 T | DigNum$ 3 | Reveal$ True | NoMove$ True | RememberRevealed$ True | SubAbility$ DBChoose | StackDescription$ SpellDescription | SpellDescription$ Reveal the top three cards of your library. Target opponent chooses one of those cards. Put that card into your graveyard, then draw two cards. +SVar:DBChoose:DB$ ChooseCard | ValidTgts$ Opponent | Choices$ Card.IsRemembered | ChoiceZone$ Library | Amount$ 1 | SubAbility$ DBDig | Mandatory$ True | StackDescription$ None +SVar:DBDig:DB$ ChangeZone | Origin$ Library | Destination$ Graveyard | Defined$ ChosenCard | Shuffle$ False | StackDescription$ None | SubAbility$ DBDraw +SVar:DBDraw:DB$ Draw | NumCards$ 2 | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:Rarity:Common +SVar:Picture:http://www.wizards.com/global/images/magic/general/thran_tome.jpg +Oracle:{5}, {T}: Reveal the top three cards of your library. Target opponent chooses one of those cards. Put that card into your graveyard, then draw two cards. +SetInfo:WTH|Rare|http://magiccards.info/scans/en/wl/160.jpg +End \ No newline at end of file diff --git a/src/main/java/forge/card/ability/effects/ProtectAllEffect.java b/src/main/java/forge/card/ability/effects/ProtectAllEffect.java index aef735258fe..089afc4b863 100644 --- a/src/main/java/forge/card/ability/effects/ProtectAllEffect.java +++ b/src/main/java/forge/card/ability/effects/ProtectAllEffect.java @@ -7,6 +7,7 @@ import javax.swing.JOptionPane; import forge.Card; import forge.CardLists; +import forge.CardUtil; import forge.Command; import forge.Singletons; import forge.card.ability.AbilityUtils; @@ -60,6 +61,12 @@ public class ProtectAllEffect extends SpellAbilityEffect { for (final String color : host.getChosenColor()) { gains.add(color.toLowerCase()); } + } else if (sa.getParam("Gains").equals("TargetedCardColor")) { + for (final Card c : sa.getSATargetingCard().getTarget().getTargetCards()) { + for(final String color : CardUtil.getColors(c)) { + gains.add(color.toLowerCase()); + } + } } else { gains.addAll(choices); } diff --git a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java index ec0d2ca6113..5280c2b49d5 100644 --- a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java +++ b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java @@ -2478,6 +2478,21 @@ public class CardFactoryUtil { } return CardFactoryUtil.doXMath(cCount, m, c); } + + // Count$BushidoPoint + if (sq[0].contains("BushidoPoint")) { + final ArrayList keywords = c.getKeyword(); + int magnitude = 0; + for (final String kw : keywords) { + if (kw.contains("Bushido")) { + final String[] parse = kw.split(" "); + final String num = parse[1]; + magnitude += Integer.parseInt(num); + } + } + return CardFactoryUtil.doXMath(magnitude, m, c); + } + // Count$TimesKicked if (sq[0].contains("TimesKicked")) { return CardFactoryUtil.doXMath(c.getMultiKickerMagnitude(), m, c);