diff --git a/.gitattributes b/.gitattributes index a046f38b6c9..2a6ef378e66 100644 --- a/.gitattributes +++ b/.gitattributes @@ -7308,6 +7308,7 @@ res/cardsfolder/o/oakgnarl_warrior.txt svneol=native#text/plain res/cardsfolder/o/oasis.txt svneol=native#text/plain res/cardsfolder/o/oath_of_druids.txt svneol=native#text/plain res/cardsfolder/o/oath_of_ghouls.txt svneol=native#text/plain +res/cardsfolder/o/oath_of_lieges.txt -text res/cardsfolder/o/oath_of_lim_dul.txt -text res/cardsfolder/o/oathsworn_giant.txt svneol=native#text/plain res/cardsfolder/o/ob_nixilis_the_fallen.txt svneol=native#text/plain @@ -7374,6 +7375,7 @@ res/cardsfolder/o/omen_of_fire.txt svneol=native#text/plain res/cardsfolder/o/omnath_locus_of_mana.txt svneol=native#text/plain res/cardsfolder/o/omnibian.txt svneol=native#text/plain res/cardsfolder/o/omniscience.txt -text +res/cardsfolder/o/onakke_catacomb.txt -text res/cardsfolder/o/ondu_cleric.txt svneol=native#text/plain res/cardsfolder/o/ondu_giant.txt svneol=native#text/plain res/cardsfolder/o/one_dozen_eyes.txt svneol=native#text/plain @@ -7474,6 +7476,7 @@ res/cardsfolder/o/orims_touch.txt -text svneol=unset#text/plain res/cardsfolder/o/oriss_samite_guardian.txt -text res/cardsfolder/o/ornate_kanzashi.txt -text res/cardsfolder/o/ornithopter.txt svneol=native#text/plain +res/cardsfolder/o/orochi_colony.txt -text res/cardsfolder/o/orochi_eggwatcher_shidako_broodmistress.txt -text res/cardsfolder/o/orochi_hatchery.txt svneol=native#text/plain res/cardsfolder/o/orochi_leafcaller.txt svneol=native#text/plain @@ -7492,6 +7495,7 @@ res/cardsfolder/o/orzhova_the_church_of_deals.txt svneol=native#text/plain res/cardsfolder/o/osai_vultures.txt -text svneol=unset#text/plain res/cardsfolder/o/ostiary_thrull.txt svneol=native#text/plain res/cardsfolder/o/ostracize.txt svneol=native#text/plain +res/cardsfolder/o/otaria.txt -text res/cardsfolder/o/otarian_juggernaut.txt svneol=native#text/plain res/cardsfolder/o/otherworld_atlas.txt -text res/cardsfolder/o/otherworldly_journey.txt svneol=native#text/plain @@ -9425,6 +9429,7 @@ res/cardsfolder/s/shinka_gatekeeper.txt svneol=native#text/plain res/cardsfolder/s/shinka_the_bloodsoaked_keep.txt svneol=native#text/plain res/cardsfolder/s/shirei_shizos_caretaker.txt -text res/cardsfolder/s/shisato_whispering_hunter.txt -text +res/cardsfolder/s/shiv.txt -text res/cardsfolder/s/shivan_dragon.txt svneol=native#text/plain res/cardsfolder/s/shivan_emissary.txt svneol=native#text/plain res/cardsfolder/s/shivan_gorge.txt svneol=native#text/plain @@ -9677,6 +9682,7 @@ res/cardsfolder/s/sky_spirit.txt svneol=native#text/plain res/cardsfolder/s/sky_swallower.txt svneol=native#text/plain res/cardsfolder/s/sky_weaver.txt svneol=native#text/plain res/cardsfolder/s/skyblinder_staff.txt -text +res/cardsfolder/s/skybreen.txt -text res/cardsfolder/s/skyclaw_thrash.txt -text res/cardsfolder/s/skycloud_egg.txt svneol=native#text/plain res/cardsfolder/s/skycloud_expanse.txt svneol=native#text/plain @@ -9825,6 +9831,7 @@ res/cardsfolder/s/soar.txt -text res/cardsfolder/s/soaring_hope.txt svneol=native#text/plain res/cardsfolder/s/soaring_seacliff.txt svneol=native#text/plain res/cardsfolder/s/soilshaper.txt svneol=native#text/plain +res/cardsfolder/s/sokenzan.txt -text res/cardsfolder/s/sokenzan_bruiser.txt svneol=native#text/plain res/cardsfolder/s/sokenzan_renegade.txt -text svneol=unset#text/plain res/cardsfolder/s/sokenzan_spellblade.txt -text @@ -10394,6 +10401,7 @@ res/cardsfolder/s/strongarm_thug.txt svneol=native#text/plain res/cardsfolder/s/stronghold_assassin.txt svneol=native#text/plain res/cardsfolder/s/stronghold_biologist.txt svneol=native#text/plain res/cardsfolder/s/stronghold_discipline.txt svneol=native#text/plain +res/cardsfolder/s/stronghold_furnace.txt -text res/cardsfolder/s/stronghold_machinist.txt svneol=native#text/plain res/cardsfolder/s/stronghold_overseer.txt svneol=native#text/plain res/cardsfolder/s/stronghold_rats.txt svneol=native#text/plain @@ -10698,6 +10706,7 @@ res/cardsfolder/t/tavern_swindler.txt -text res/cardsfolder/t/tawnos.txt -text res/cardsfolder/t/tawnoss_wand.txt svneol=native#text/plain res/cardsfolder/t/tawnoss_weaponry.txt svneol=native#text/plain +res/cardsfolder/t/tazeem.txt -text res/cardsfolder/t/teardrop_kami.txt svneol=native#text/plain res/cardsfolder/t/tears_of_rage.txt svneol=native#text/plain res/cardsfolder/t/tectonic_break.txt svneol=native#text/plain @@ -10741,6 +10750,7 @@ res/cardsfolder/t/telimtors_darts.txt svneol=native#text/plain res/cardsfolder/t/telimtors_edict.txt svneol=native#text/plain res/cardsfolder/t/teller_of_tales.txt svneol=native#text/plain res/cardsfolder/t/telling_time.txt svneol=native#text/plain +res/cardsfolder/t/tember_city.txt -text res/cardsfolder/t/tempered_steel.txt svneol=native#text/plain res/cardsfolder/t/tempest_drake.txt svneol=native#text/plain res/cardsfolder/t/tempest_of_light.txt svneol=native#text/plain @@ -10825,6 +10835,8 @@ res/cardsfolder/t/thawing_glaciers.txt svneol=native#text/plain res/cardsfolder/t/the_abyss.txt svneol=native#text/plain res/cardsfolder/t/the_aether_flues.txt -text res/cardsfolder/t/the_brute.txt svneol=native#text/plain +res/cardsfolder/t/the_dark_barony.txt -text +res/cardsfolder/t/the_eon_fog.txt -text res/cardsfolder/t/the_fallen.txt -text res/cardsfolder/t/the_fourth_sphere.txt -text res/cardsfolder/t/the_great_forest.txt -text diff --git a/CHANGES.txt b/CHANGES.txt index 412ade5923b..51367515608 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -86,6 +86,14 @@ New Planes Bant Turri Island +Onakke Catacomb +Orochi Colony +Otaria +Shiv +Skybreen +Sokenzan +Stronghold Furnace +Tazeem ------------ diff --git a/res/cardsfolder/a/armistice.txt b/res/cardsfolder/a/armistice.txt index 9504f9eb4be..b7cf3c5bc47 100644 --- a/res/cardsfolder/a/armistice.txt +++ b/res/cardsfolder/a/armistice.txt @@ -2,7 +2,7 @@ Name:Armistice ManaCost:2 W Types:Enchantment A:AB$ Draw | Cost$ 3 W W | NumCards$ 1 | SpellDescription$ You draw a card and target opponent gains 3 life. | SubAbility$ DBGainLife -SVar:DBGainLife:DB$GainLife | Defined$ Opponent | LifeAmount$ 3 +SVar:DBGainLife:DB$ GainLife | ValidTgts$ Opponent | TgtPrompt$ Select target opponent to gain life | LifeAmount$ 3 SVar:Picture:http://www.wizards.com/global/images/magic/general/armistice.jpg Oracle:{3}{W}{W}: You draw a card and target opponent gains 3 life. SetInfo:MMQ Rare \ No newline at end of file diff --git a/res/cardsfolder/b/bargain.txt b/res/cardsfolder/b/bargain.txt index a161eab55eb..717c35a327f 100644 --- a/res/cardsfolder/b/bargain.txt +++ b/res/cardsfolder/b/bargain.txt @@ -2,7 +2,7 @@ Name:Bargain ManaCost:2 W Types:Sorcery A:SP$ GainLife | Cost$ 2 W | LifeAmount$ 7 | SubAbility$ DBDraw | SpellDescription$ Target opponent draws a card. You gain 7 life. -SVar:DBDraw:DB$Draw | Defined$ Opponent | NumCards$ 1 +SVar:DBDraw:DB$ Draw | ValidTgts$ Opponent | TgtPrompt$ Select target opponent to draw a card | NumCards$ 1 SVar:Picture:http://www.wizards.com/global/images/magic/general/bargain.jpg Oracle:Target opponent draws a card.\nYou gain 7 life. SetInfo:PO2 Uncommon diff --git a/res/cardsfolder/b/batwing_brume.txt b/res/cardsfolder/b/batwing_brume.txt index 24a6b441735..1e8e661d88a 100644 --- a/res/cardsfolder/b/batwing_brume.txt +++ b/res/cardsfolder/b/batwing_brume.txt @@ -1,11 +1,10 @@ Name:Batwing Brume ManaCost:1 WB Types:Instant -A:SP$ Fog | Cost$ 1 WB | ConditionManaSpent$ W | SubAbility$ DBLoseLifeYou | SpellDescription$ Prevent all combat damage that would be dealt this turn if W was spent to cast CARDNAME. Each player loses 1 life for each attacking creature he or she controls if B was spent to cast CARDNAME. (Do both if WB was spent.) -SVar:DBLoseLifeYou:DB$ LoseLife | LifeAmount$ X | Defined$ You | ConditionManaSpent$ B | SubAbility$ DBLoseLifeOpp | References$ X -SVar:DBLoseLifeOpp:DB$ LoseLife | LifeAmount$ Y | Defined$ Opponent | ConditionManaSpent$ B | References$ Y -SVar:X:Count$Valid Creature.YouCtrl+attacking -SVar:Y:Count$Valid Creature.YouDontCtrl+attacking +A:SP$ Fog | Cost$ 1 WB | ConditionManaSpent$ W | SubAbility$ BatwingRepeat | SpellDescription$ Prevent all combat damage that would be dealt this turn if W was spent to cast CARDNAME. Each player loses 1 life for each attacking creature he or she controls if B was spent to cast CARDNAME. (Do both if WB was spent.) +SVar:BatwingRepeat:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ BatwingLoseLife +SVar:BatwingLoseLife:DB$ LoseLife | LifeAmount$ X | Defined$ Remembered | ConditionManaSpent$ B | SubAbility$ DBLoseLifeOpp | References$ X +SVar:X:PlayerCountRemembered$Valid Creature.YouCtrl+attacking SVar:RemAIDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/batwing_brume.jpg Oracle:Prevent all combat damage that would be dealt this turn if {W} was spent to cast Batwing Brume. Each player loses 1 life for each attacking creature he or she controls if {B} was spent to cast Batwing Brume. (Do both if {W}{B} was spent.) diff --git a/res/cardsfolder/b/bereavement.txt b/res/cardsfolder/b/bereavement.txt index 939bf100aca..23aa1a7694f 100644 --- a/res/cardsfolder/b/bereavement.txt +++ b/res/cardsfolder/b/bereavement.txt @@ -1,10 +1,8 @@ Name:Bereavement ManaCost:1 B Types:Enchantment -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigYouDiscard | TriggerDescription$ Whenever a green creature is put into a graveyard from the battlefield, -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.YouDontCtrl | TriggerZones$ Battlefield | Execute$ TrigOppDiscard | TriggerDescription$ its controller discards a card. -SVar:TrigYouDiscard:AB$Discard | Cost$ 0 | Defined$ You | Mode$ TgtChoose | NumCards$ 1 -SVar:TrigOppDiscard:AB$Discard | Cost$ 0 | Defined$ Opponent | Mode$ TgtChoose | NumCards$ 1 +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.Green | TriggerZones$ Battlefield | Execute$ BereavementDiscard | TriggerDescription$ Whenever a green creature is put into a graveyard from the battlefield, its controller discards a card. +SVar:BereavementDiscard:AB$ Discard | Cost$ 0 | Defined$ TriggeredCardController | Mode$ TgtChoose | NumCards$ 1 SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/bereavement.jpg Oracle:Whenever a green creature dies, its controller discards a card. diff --git a/res/cardsfolder/b/blood_oath.txt b/res/cardsfolder/b/blood_oath.txt index dd4aafcdb33..cbef74f404d 100644 --- a/res/cardsfolder/b/blood_oath.txt +++ b/res/cardsfolder/b/blood_oath.txt @@ -2,8 +2,8 @@ Name:Blood Oath ManaCost:3 R Types:Instant A:SP$ ChooseType | Cost$ 3 R | Defined$ You | Type$ Card | SubAbility$ DBReveal | SpellDescription$ Choose a card type. Target opponent reveals his or her hand. Blood Oath deals 3 damage to that player for each card of the chosen type revealed this way. -SVar:DBReveal:DB$ RevealHand | RememberRevealed$ True | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | SubAbility$ DBDamage -SVar:DBDamage:DB$ DealDamage | Defined$ Opponent | NumDmg$ X | References$ X,Y +SVar:DBReveal:DB$ RevealHand | RememberRevealed$ True | ValidTgts$ Opponent | TgtPrompt$ Select target opponent to reveal their hand | SubAbility$ DBDamage +SVar:DBDamage:DB$ DealDamage | Defined$ Targeted | NumDmg$ X | References$ X,Y SVar:X:SVar$Y/Times.3 SVar:Y:Remembered$Valid Card.ChosenType SVar:RemAIDeck:True diff --git a/res/cardsfolder/b/brink_of_madness.txt b/res/cardsfolder/b/brink_of_madness.txt index 5b53f85df62..e32cb3becc8 100644 --- a/res/cardsfolder/b/brink_of_madness.txt +++ b/res/cardsfolder/b/brink_of_madness.txt @@ -2,8 +2,8 @@ Name:Brink of Madness ManaCost:2 B B Types:Enchantment T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | IsPresent$ Card.YouCtrl | PresentZone$ Hand | PresentCompare$ EQ0 | TriggerZones$ Battlefield | Execute$ TrigSacDiscard | TriggerDescription$ At the beginning of your upkeep, if you have no cards in hand, sacrifice CARDNAME and target opponent discards his or her hand. -SVar:TrigSacDiscard:AB$Sacrifice | Cost$ 0 | Defined$ Self | SubAbility$ DBDiscard -SVar:DBDiscard:DB$Discard | Defined$ Opponent | Mode$ Hand +SVar:TrigSacDiscard:AB$ Sacrifice | Cost$ 0 | Defined$ Self | SubAbility$ DBDiscard +SVar:DBDiscard:DB$ Discard | ValidTgts$ Opponent | TgtPrompt$ Select target opponent to discard their hand | Mode$ Hand SVar:Picture:http://www.wizards.com/global/images/magic/general/brink_of_madness.jpg Oracle:At the beginning of your upkeep, if you have no cards in hand, sacrifice Brink of Madness and target opponent discards his or her hand. SetInfo:ULG Rare \ No newline at end of file diff --git a/res/cardsfolder/k/knowledge_exploitation.txt b/res/cardsfolder/k/knowledge_exploitation.txt index ca76ec57502..c9b8e1c34c6 100644 --- a/res/cardsfolder/k/knowledge_exploitation.txt +++ b/res/cardsfolder/k/knowledge_exploitation.txt @@ -1,7 +1,7 @@ Name:Knowledge Exploitation ManaCost:5 U U Types:Tribal Instant Rogue -A:SP$ ChangeZone | Cost$ 5 U U | Origin$ Library | Destination$ Library | ChangeType$ Instant,Sorcery | ChangeNum$ 1 | RememberChanged$ True | Reveal$ True | Shuffle$ False | DefinedPlayer$ Targeted | Chooser$ You | Mandatory$ True | SubAbility$ DBPlay | SpellDescription$ Search target opponent's library for an instant or sorcery card. You may cast that card without paying its mana cost. Then that player shuffles his or her library. +A:SP$ ChangeZone | Cost$ 5 U U | ValidTgts$ Opponent | Origin$ Library | Destination$ Library | ChangeType$ Instant,Sorcery | ChangeNum$ 1 | RememberChanged$ True | Reveal$ True | Shuffle$ False | DefinedPlayer$ Targeted | Chooser$ You | Mandatory$ True | SubAbility$ DBPlay | SpellDescription$ Search target opponent's library for an instant or sorcery card. You may cast that card without paying its mana cost. Then that player shuffles his or her library. A:SP$ ChangeZone | Cost$ 3 U | Activation$ Prowl | ValidTgts$ Opponent | Origin$ Library | Destination$ Library | ChangeType$ Instant,Sorcery | ChangeNum$ 1 | RememberChanged$ True | Reveal$ True | Shuffle$ False | PrecostDesc$ Prowl 3 U | DefinedPlayer$ Targeted | Chooser$ You | Mandatory$ True | SubAbility$ DBPlay | SpellDescription$ (You may cast this for its prowl cost if you dealt combat damage to a player this turn with a Rogue.) SVar:DBPlay:DB$ Play | Defined$ Remembered | Controller$ You | WithoutManaCost$ True | Optional$ True | SubAbility$ DBShuffle SVar:DBShuffle:DB$ Shuffle | Defined$ RememberedController | SubAbility$ DBCleanup diff --git a/res/cardsfolder/m/mirror_entity_avatar.txt b/res/cardsfolder/m/mirror_entity_avatar.txt index aa3c5907aed..8df467fdd6d 100644 --- a/res/cardsfolder/m/mirror_entity_avatar.txt +++ b/res/cardsfolder/m/mirror_entity_avatar.txt @@ -5,6 +5,7 @@ HandLifeModifier:+1/-2 A:AB$ ChooseType | ActivationZone$ Command | Cost$ X | Defined$ You | Type$ Creature | AILogic$ MostProminentComputerControls | SubAbility$ DBAnimate | SpellDescription$ Choose a creature type. Until end of turn, creatures you control of the chosen type become X/X and gain all creature types. SVar:DBAnimate:DB$ AnimateAll | Power$ X | Toughness$ X | References$ X | Types$ AllCreatureTypes | ValidCards$ Creature.YouCtrl+ChosenType SVar:X:Count$xPaid +SVar:RemAIDeck:True SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/mirror_entity_avatar.jpg Oracle:Hand +1, life -2\n{X}: Choose a creature type. Until end of turn, creatures you control of the chosen type become X/X and gain all creature types. SetInfo:VAN Special \ No newline at end of file diff --git a/res/cardsfolder/o/oath_of_lieges.txt b/res/cardsfolder/o/oath_of_lieges.txt new file mode 100644 index 00000000000..a87ecafeb10 --- /dev/null +++ b/res/cardsfolder/o/oath_of_lieges.txt @@ -0,0 +1,8 @@ +Name:Oath of Lieges +ManaCost:1 W +Types:Enchantment +T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ Player | Execute$ LiegesSearch | TriggerZones$ Battlefield | TriggerController$ TriggeredPlayer | TriggerDescription$ At the beginning of each player's upkeep, that player chooses target player who controls more lands than he or she does and is his or her opponent. The first player may search his or her library for a basic land card, put that card onto the battlefield, then shuffle his or her library. +SVar:LiegesSearch:DB$ ChangeZone | ValidTgts$ Opponent.withMoreLandsThanYou | TgtPrompt$ Choose target opponent who controls more land than you | DefinedPlayer$ TriggeredPlayer | Chooser$ TriggeredPlayer | Origin$ Library | Destination$ Battlefield | ChangeType$ Land.Basic | ChangeNum$ 1 | Optional$ True +SVar:Picture:http://www.wizards.com/global/images/magic/general/oath_of_lieges.jpg +Oracle:At the beginning of each player's upkeep, that player chooses target player who controls more lands than he or she does and is his or her opponent. The first player may search his or her library for a basic land card, put that card onto the battlefield, then shuffle his or her library. +SetInfo:EXO Rare \ No newline at end of file diff --git a/res/cardsfolder/o/onakke_catacomb.txt b/res/cardsfolder/o/onakke_catacomb.txt new file mode 100644 index 00000000000..fe5c6383176 --- /dev/null +++ b/res/cardsfolder/o/onakke_catacomb.txt @@ -0,0 +1,9 @@ +Name:Onakke Catacomb +ManaCost:no cost +Types:Plane Shandalar +S:Mode$ Continuous | EffectZone$ Command | Affected$ Creature | SetColor$ Black | AddKeyword$ Deathtouch | Description$ All creatures are black and have deathtouch. +T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever you roll Chaos, creatures you control get +1/+0 and gain first strike until end of turn. +SVar:RolledChaos:AB$ PumpAll | Cost$ 0 | ValidCards$ Creature.YouCtrl | NumAtt$ +1 | KW$ First Strike +SVar:Picture:http://www.wizards.com/global/images/magic/general/onakke_catacomb.jpg +Oracle:All creatures are black and have deathtouch.\nWhenever you roll {C}, creatures you control get +1/+0 and gain first strike until end of turn. +SetInfo:PC2 Common \ No newline at end of file diff --git a/res/cardsfolder/o/orochi_colony.txt b/res/cardsfolder/o/orochi_colony.txt new file mode 100644 index 00000000000..7cea1440bf2 --- /dev/null +++ b/res/cardsfolder/o/orochi_colony.txt @@ -0,0 +1,10 @@ +Name:Orochi Colony +ManaCost:no cost +Types:Plane Kamigawa +T:Mode$ DamageDone | ValidSource$ Creature.YouCtrl | ValidTarget$ Opponent | CombatDamage$ True | Execute$ TrigRamp | TriggerZones$ Command | TriggerDescription$ Whenever a creature you control deals combat damage to a player, you may search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library. +SVar:TrigRamp:AB$ ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | Tapped$ True | ChangeType$ Land.Basic | ChangeNum$ 1 +T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever you roll Chaos, target creature is unblockable this turn. +SVar:RolledChaos:AB$ Pump | Cost$ 0 | ValidTgts$ Creature | KW$ HIDDEN Unblockable +SVar:Picture:http://www.wizards.com/global/images/magic/general/orochi_colony.jpg +Oracle:Whenever a creature you control deals combat damage to a player, you may search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.\nWhenever you roll {C}, target creature is unblockable this turn. +SetInfo:PC2 Common \ No newline at end of file diff --git a/res/cardsfolder/o/otaria.txt b/res/cardsfolder/o/otaria.txt new file mode 100644 index 00000000000..78ed5a50a84 --- /dev/null +++ b/res/cardsfolder/o/otaria.txt @@ -0,0 +1,9 @@ +Name:Otaria +ManaCost:no cost +Types:Plane Dominaria +S:Mode$ Continuous | Affected$ Instant,Sorcery | EffectZone$ Command | AffectedZone$ Graveyard | AddKeyword$ Flashback | Description$ Instant and sorcery cards in graveyards have flashback. The flashback cost is equal to the card's mana cost. (Its owner may cast the card from his or her graveyard for its mana cost. Then he or she exiles it.) +T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever you roll Chaos, take an extra turn after this one. +SVar:RolledChaos:AB$ AddTurn | Cost$ 0 | NumTurns$ 1 +SVar:Picture:http://www.wizards.com/global/images/magic/general/otaria.jpg +Oracle:Instant and sorcery cards in graveyards have flashback. The flashback cost is equal to the card's mana cost. (Its owner may cast the card from his or her graveyard for its mana cost. Then he or she exiles it.)\nWhenever you roll {C}, take an extra turn after this one. +SetInfo:HOP Common \ No newline at end of file diff --git a/res/cardsfolder/p/possessed_aven.txt b/res/cardsfolder/p/possessed_aven.txt index 6030180925b..896719d0b64 100644 --- a/res/cardsfolder/p/possessed_aven.txt +++ b/res/cardsfolder/p/possessed_aven.txt @@ -3,7 +3,7 @@ ManaCost:2 U U Types:Creature Bird Soldier Horror PT:3/3 K:Flying -S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ CARDNAME is black. | AddAbility$ Destroy | Condition$ Threshold | Description$ Threshold - As long as seven or more cards are in your graveyard, CARDNAME gets +1/+1, is black, and has "2 B, tap: Destroy target blue creature." +S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 1 | AddToughness$ 1 | SetColor$ Black | AddAbility$ Destroy | Condition$ Threshold | Description$ Threshold - As long as seven or more cards are in your graveyard, CARDNAME gets +1/+1, is black, and has "2 B, tap: Destroy target blue creature." SVar:Destroy:AB$ Destroy | Cost$ 2 B T | ValidTgts$ Creature.Blue | TgtPrompt$ Select target blue creature | SpellDescription$ Destroy target blue creature. SVar:Picture:http://www.wizards.com/global/images/magic/general/possessed_aven.jpg Oracle:Flying\nThreshold - As long as seven or more cards are in your graveyard, Possessed Aven gets +1/+1, is black, and has "{2}{B}, {T}: Destroy target blue creature." diff --git a/res/cardsfolder/p/possessed_barbarian.txt b/res/cardsfolder/p/possessed_barbarian.txt index 49976ac26fa..981f1dc780d 100644 --- a/res/cardsfolder/p/possessed_barbarian.txt +++ b/res/cardsfolder/p/possessed_barbarian.txt @@ -3,7 +3,7 @@ ManaCost:2 R R Types:Creature Human Barbarian Horror PT:3/3 K:First Strike -S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ CARDNAME is black. | AddAbility$ Destroy | Condition$ Threshold | Description$ Threshold - As long as seven or more cards are in your graveyard, CARDNAME gets +1/+1, is black, and has "2 B, tap: Destroy target red creature." +S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 1 | AddToughness$ 1 | SetColor$ Black | AddAbility$ Destroy | Condition$ Threshold | Description$ Threshold - As long as seven or more cards are in your graveyard, CARDNAME gets +1/+1, is black, and has "2 B, tap: Destroy target red creature." SVar:Destroy:AB$ Destroy | Cost$ 2 B T | ValidTgts$ Creature.Red | TgtPrompt$ Select target red creature | SpellDescription$ Destroy target red creature. SVar:Picture:http://www.wizards.com/global/images/magic/general/possessed_barbarian.jpg Oracle:First strike\nThreshold - As long as seven or more cards are in your graveyard, Possessed Barbarian gets +1/+1, is black, and has "{2}{B}, {T}: Destroy target red creature." diff --git a/res/cardsfolder/p/possessed_centaur.txt b/res/cardsfolder/p/possessed_centaur.txt index 4feec941216..1440689e918 100644 --- a/res/cardsfolder/p/possessed_centaur.txt +++ b/res/cardsfolder/p/possessed_centaur.txt @@ -3,7 +3,7 @@ ManaCost:2 G G Types:Creature Centaur Horror PT:3/3 K:Trample -S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ CARDNAME is black. | AddAbility$ Destroy | Condition$ Threshold | Description$ Threshold - As long as seven or more cards are in your graveyard, CARDNAME gets +1/+1, is black, and has "2 B, tap: Destroy target green creature." +S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 1 | AddToughness$ 1 | SetColor$ Black | AddAbility$ Destroy | Condition$ Threshold | Description$ Threshold - As long as seven or more cards are in your graveyard, CARDNAME gets +1/+1, is black, and has "2 B, tap: Destroy target green creature." SVar:Destroy:AB$ Destroy | Cost$ 2 B T | ValidTgts$ Creature.Green | TgtPrompt$ Select target green creature | SpellDescription$ Destroy target green creature. SVar:Picture:http://www.wizards.com/global/images/magic/general/possessed_centaur.jpg Oracle:Trample\nThreshold - As long as seven or more cards are in your graveyard, Possessed Centaur gets +1/+1, is black, and has "{2}{B}, {T}: Destroy target green creature." diff --git a/res/cardsfolder/p/possessed_nomad.txt b/res/cardsfolder/p/possessed_nomad.txt index c91f7c4fc05..b4225197c6a 100644 --- a/res/cardsfolder/p/possessed_nomad.txt +++ b/res/cardsfolder/p/possessed_nomad.txt @@ -3,7 +3,7 @@ ManaCost:2 W W Types:Creature Human Nomad Horror PT:3/3 K:Vigilance -S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ CARDNAME is black. | AddAbility$ Destroy | Condition$ Threshold | Description$ Threshold - As long as seven or more cards are in your graveyard, CARDNAME gets +1/+1, is black, and has "2 B, tap: Destroy target white creature." +S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 1 | AddToughness$ 1 | SetColor$ Black | AddAbility$ Destroy | Condition$ Threshold | Description$ Threshold - As long as seven or more cards are in your graveyard, CARDNAME gets +1/+1, is black, and has "2 B, tap: Destroy target white creature." SVar:Destroy:AB$ Destroy | Cost$ 2 B T | ValidTgts$ Creature.White | TgtPrompt$ Select target white creature | SpellDescription$ Destroy target white creature. SVar:Picture:http://www.wizards.com/global/images/magic/general/possessed_nomad.jpg Oracle:Vigilance\nThreshold - As long as seven or more cards are in your graveyard, Possessed Nomad gets +1/+1, is black, and has "{2}{B}, {T}: Destroy target white creature." diff --git a/res/cardsfolder/s/shiv.txt b/res/cardsfolder/s/shiv.txt new file mode 100644 index 00000000000..334ba72bb87 --- /dev/null +++ b/res/cardsfolder/s/shiv.txt @@ -0,0 +1,10 @@ +Name:Shiv +ManaCost:no cost +Types:Plane Dominaria +S:Mode$ Continuous | Affected$ Creature | EffectZone$ Command | AddAbility$ Pump | Description$ All creatures have "R: This creature gets +1/+0 until end of turn." +SVar:Pump:AB$ Pump | Cost$ R | NumAtt$ +1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn. +T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever you roll Chaos, put a 5/5 red Dragon creature token with flying onto the battlefield. +SVar:RolledChaos:AB$ Token | Cost$ 0 | TokenOwner$ You | TokenAmount$ 1 | TokenName$ Dragon | TokenTypes$ Creature,Dragon | TokenColors$ Red | TokenPower$ 5 | TokenToughness$ 5 | TokenKeywords$ Flying +SVar:Picture:http://www.wizards.com/global/images/magic/general/shiv.jpg +Oracle:All creatures have "{R}: This creature gets +1/+0 until end of turn."\nWhenever you roll {C}, put a 5/5 red Dragon creature token with flying onto the battlefield. +SetInfo:HOP Common \ No newline at end of file diff --git a/res/cardsfolder/s/shrouded_serpent.txt b/res/cardsfolder/s/shrouded_serpent.txt index 3f25a1f3cbd..117b954d3ed 100644 --- a/res/cardsfolder/s/shrouded_serpent.txt +++ b/res/cardsfolder/s/shrouded_serpent.txt @@ -3,7 +3,7 @@ ManaCost:4 U U U Types:Creature Serpent PT:4/4 T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME attacks, defending player may pay 4. If he or she doesn't, CARDNAME is unblockable this turn. -SVar:TrigPump:AB$ Pump | Cost$ 0 | Defined$ Self | KW$ HIDDEN Unblockable | UnlessCost$ 4 | UnlessPayer$ DefendingPlayer | SpellDescription$ Target creature is unblockable this turn. +SVar:TrigPump:AB$ Pump | Cost$ 0 | Defined$ Self | KW$ HIDDEN Unblockable | UnlessCost$ 4 | UnlessPayer$ DefendingPlayer SVar:RemAIDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/shrouded_serpent.jpg Oracle:Whenever Shrouded Serpent attacks, defending player may pay {4}. If he or she doesn't, Shrouded Serpent is unblockable this turn. diff --git a/res/cardsfolder/s/skybreen.txt b/res/cardsfolder/s/skybreen.txt new file mode 100644 index 00000000000..567e67ce766 --- /dev/null +++ b/res/cardsfolder/s/skybreen.txt @@ -0,0 +1,11 @@ +Name:Skybreen +ManaCost:no cost +Types:Plane Kaldheim +K:Players play with the top card of their libraries revealed. +S:Mode$ CantBeCast | EffectZone$ Command | ValidCard$ Card.sharesCardTypeWith EachTopLibrary | Description$ Spells that share a card type with the top card of a library can't be cast. +T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever you roll Chaos, target player loses life equal to the number of cards in his or her hand. +SVar:RolledChaos:AB$ LoseLife | Cost$ 0 | ValidTgts$ Player | LifeAmount$ Y | References$ Y +SVar:Y:TargetedPlayer$CardsInHand +SVar:Picture:http://www.wizards.com/global/images/magic/general/skybreen.jpg +Oracle:Players play with the top card of their libraries revealed.\nSpells that share a card type with the top card of a library can't be cast.\nWhenever you roll {C}, target player loses life equal to the number of cards in his or her hand. +SetInfo:HOP Common \ No newline at end of file diff --git a/res/cardsfolder/s/sokenzan.txt b/res/cardsfolder/s/sokenzan.txt new file mode 100644 index 00000000000..703084c5c98 --- /dev/null +++ b/res/cardsfolder/s/sokenzan.txt @@ -0,0 +1,10 @@ +Name:Sokenzan +ManaCost:no cost +Types:Plane Kamigawa +S:Mode$ Continuous | EffectZone$ Command | Affected$ Creature | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Haste | Description$ All creatures get +1/+1 and have haste. +T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever you roll Chaos, untap all creatures that attacked this turn. After this main phase, there is an additional combat phase followed by an additional main phase. +SVar:RolledChaos:AB$ UntapAll | Cost$ 0 | ValidCards$ Creature.attackedThisTurn | SubAbility$ DBAddCombat +SVar:DBAddCombat:DB$ AddPhase | ExtraPhase$ BeginCombat | FollowedBy$ ThisPhase | ConditionPhases$ Main1,Main2 +SVar:Picture:http://www.wizards.com/global/images/magic/general/sokenzan.jpg +Oracle:All creatures get +1/+1 and have haste.\nWhenever you roll {C}, untap all creatures that attacked this turn. After this main phase, there is an additional combat phase followed by an additional main phase. +SetInfo:HOP Common \ No newline at end of file diff --git a/res/cardsfolder/s/stronghold_furnace.txt b/res/cardsfolder/s/stronghold_furnace.txt new file mode 100644 index 00000000000..0fb22e9fdf7 --- /dev/null +++ b/res/cardsfolder/s/stronghold_furnace.txt @@ -0,0 +1,13 @@ +Name:Stronghold Furnace +ManaCost:no cost +Types:Plane Rath +R:Event$ DamageDone | ActiveZones$ Command | ValidSource$ Card | ValidTarget$ Creature,Player | ReplaceWith$ DmgTwice | IsCombat$ False | Description$ If a source would deal damage to a creature or player, it deals double that damage to that creature or player instead. +R:Event$ DamageDone | ActiveZones$ Command | ValidSource$ Card | ValidTarget$ Creature,Player | ReplaceWith$ DmgTwiceCombat | IsCombat$ True | Secondary$ True | Description$ If a source would deal damage to a creature or player, it deals double that damage to that creature or player instead. +SVar:DmgTwice:AB$ DealDamage | Cost$ 0 | Defined$ ReplacedTarget | DamageSource$ ReplacedSource | NumDmg$ Y | References$ Y +SVar:DmgTwiceCombat:AB$DealDamage | Cost$ 0 | CombatDamage$ True | Defined$ ReplacedTarget | DamageSource$ ReplacedSource | NumDmg$ Y | References$ Y +SVar:Y:ReplaceCount$DamageAmount/Twice +T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever you roll Chaos, CARDNAME deals 1 damage to target creature or player. +SVar:RolledChaos:AB$ DealDamage | Cost$ 0 | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player | NumDmg$ 1 +SVar:Picture:http://www.wizards.com/global/images/magic/general/stronghold_furnace.jpg +Oracle:If a source would deal damage to a creature or player, it deals double that damage to that creature or player instead.\nWhenever you roll {C}, Stronghold Furnace deals 1 damage to target creature or player. +SetInfo:HOP Common \ No newline at end of file diff --git a/res/cardsfolder/s/syphon_flesh.txt b/res/cardsfolder/s/syphon_flesh.txt index 9599f5026a3..594f555a6fe 100644 --- a/res/cardsfolder/s/syphon_flesh.txt +++ b/res/cardsfolder/s/syphon_flesh.txt @@ -1,8 +1,8 @@ Name:Syphon Flesh ManaCost:4 B Types:Sorcery -A:SP$ Sacrifice | Cost$ 4 B | Defined$ Opponent | SacValid$ Creature | SacMessage$ Creature | RememberSacrificed$ True | SubAbility$ DBToken | SpellDescription$ Each other player sacrifices a creature. You put a 2/2 black Zombie creature token onto the battlefield for each creature sacrificed this way. -SVar:DBToken:DB$Token | TokenImage$ B 2 2 Zombie | TokenName$ Zombie | TokenColors$ Black | TokenTypes$ Creature,Zombie | TokenPower$ 2 | TokenToughness$ 2 | TokenOwner$ You | TokenAmount$ X | SubAbility$ DBCleanup +A:SP$ Sacrifice | Cost$ 4 B | Defined$ Player.Other | SacValid$ Creature | SacMessage$ Creature | RememberSacrificed$ True | SubAbility$ DBToken | SpellDescription$ Each other player sacrifices a creature. You put a 2/2 black Zombie creature token onto the battlefield for each creature sacrificed this way. +SVar:DBToken:DB$ Token | TokenImage$ B 2 2 Zombie | TokenName$ Zombie | TokenColors$ Black | TokenTypes$ Creature,Zombie | TokenPower$ 2 | TokenToughness$ 2 | TokenOwner$ You | TokenAmount$ X | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:Remembered$Amount SVar:Picture:http://www.wizards.com/global/images/magic/general/syphon_flesh.jpg diff --git a/res/cardsfolder/t/tazeem.txt b/res/cardsfolder/t/tazeem.txt new file mode 100644 index 00000000000..d1e36072b6f --- /dev/null +++ b/res/cardsfolder/t/tazeem.txt @@ -0,0 +1,10 @@ +Name:Tazeem +ManaCost:no cost +Types:Plane Zendikar +S:Mode$ Continuous | Affected$ Creature | EffectZone$ Command | AddHiddenKeyword$ CARDNAME can't block. | Description$ Creatures can't block. +T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever you roll Chaos, draw a card for each land you control. +SVar:RolledChaos:AB$ Draw | Cost$ 0 | NumCards$ Y | Defined$ You +SVar:Y:Count$Valid Land.YouCtrl +SVar:Picture:http://www.wizards.com/global/images/magic/general/tazeem.jpg +Oracle:Creatures can't block.\nWhenever you roll {C}, draw a card for each land you control. +SetInfo:HOP Special \ No newline at end of file diff --git a/res/cardsfolder/t/tember_city.txt b/res/cardsfolder/t/tember_city.txt new file mode 100644 index 00000000000..6d453c51207 --- /dev/null +++ b/res/cardsfolder/t/tember_city.txt @@ -0,0 +1,10 @@ +Name:Tember City +ManaCost:no cost +Types:Plane Kinshala +T:Mode$ TapsForMana | ValidCard$ Land | Execute$ TrigDmg | TriggerZones$ Command | TriggerDescription$ Whenever a player taps a land for mana, CARDNAME deals 1 damage to that player. +SVar:TrigDmg:AB$ DealDamage | Cost$ 0 | Defined$ TriggeredCardController | NumDmg$ 1 +T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever you roll Chaos, each other player sacrifices a nonland permanent. +SVar:RolledChaos:AB$ Sacrifice | Cost$ 0 | Defined$ Player.Other | SacValid$ Permanent.nonLand +SVar:Picture:http://www.wizards.com/global/images/magic/general/tember_city.jpg +Oracle:Whenever a player taps a land for mana, Tember City deals 1 damage to that player.\nWhenever you roll {C}, each other player sacrifices a nonland permanent. +SetInfo:HOP Common \ No newline at end of file diff --git a/res/cardsfolder/t/the_dark_barony.txt b/res/cardsfolder/t/the_dark_barony.txt new file mode 100644 index 00000000000..cd22cb4249f --- /dev/null +++ b/res/cardsfolder/t/the_dark_barony.txt @@ -0,0 +1,10 @@ +Name:The Dark Barony +ManaCost:no cost +Types:Plane Ulgrotha +T:Mode$ ChangesZone | Origin$ Any | Destination$ Graveyard | ValidCard$ Card.nonBlack | TriggerZones$ Command | Execute$ TrigLoseLife | TriggerDescription$ Whenever a nonblack card is put into a player's graveyard from anywhere, that player loses 1 life. +SVar:TrigLoseLife:AB$ LoseLife | Cost$ 0 | Defined$ TriggeredCardOwner | LifeAmount$ 1 +T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever you roll Chaos, each opponent discards a card. +SVar:RolledChaos:AB$ Discard | Cost$ 0 | Mode$ TgtChoose | Defined$ Player.Opponent | NumCards$ 1 +SVar:Picture:http://www.wizards.com/global/images/magic/general/the_dark_barony.jpg +Oracle:Whenever a nonblack card is put into a player's graveyard from anywhere, that player loses 1 life.\nWhenever you roll {C}, each opponent discards a card. +SetInfo:HOP Common \ No newline at end of file diff --git a/res/cardsfolder/t/the_eon_fog.txt b/res/cardsfolder/t/the_eon_fog.txt new file mode 100644 index 00000000000..3be7a8c6d16 --- /dev/null +++ b/res/cardsfolder/t/the_eon_fog.txt @@ -0,0 +1,9 @@ +Name:The Eon Fog +ManaCost:no cost +Types:Plane Equilor +S:Mode$ Continuous | EffectZone$ Command | Affected$ Player | AddKeyword$ Skip your untap step. | Description$ Players skip their untap steps. +T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever you roll Chaos, untap all permanents you control. +SVar:RolledChaos:AB$ UntapAll | Cost$ 0 | ValidCards$ Permanent.YouCtrl +SVar:Picture:http://www.wizards.com/global/images/magic/general/the_eon_fog.jpg +Oracle:Players skip their untap steps.\nWhenever you roll {C}, untap all permanents you control. +SetInfo:HOP Common \ No newline at end of file diff --git a/res/cardsfolder/u/underworld_dreams.txt b/res/cardsfolder/u/underworld_dreams.txt index 61f2197d351..56ac43337c5 100644 --- a/res/cardsfolder/u/underworld_dreams.txt +++ b/res/cardsfolder/u/underworld_dreams.txt @@ -2,7 +2,7 @@ Name:Underworld Dreams ManaCost:B B B Types:Enchantment T:Mode$ Drawn | ValidCard$ Card.OppOwn | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ Whenever an opponent draws a card, CARDNAME deals 1 damage to him or her. -SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ Opponent | NumDmg$ 1 +SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredPlayer | NumDmg$ 1 SVar:Picture:http://www.wizards.com/global/images/magic/general/underworld_dreams.jpg Oracle:Whenever an opponent draws a card, Underworld Dreams deals 1 damage to him or her. SetInfo:8ED Rare diff --git a/res/cardsfolder/y/yawgmoths_edict.txt b/res/cardsfolder/y/yawgmoths_edict.txt index 1507ff9a3ab..7d45c91b719 100644 --- a/res/cardsfolder/y/yawgmoths_edict.txt +++ b/res/cardsfolder/y/yawgmoths_edict.txt @@ -2,8 +2,8 @@ Name:Yawgmoth's Edict ManaCost:1 B Types:Enchantment T:Mode$ SpellCast | ValidCard$ Card.White | ValidActivatingPlayer$ Opponent | TriggerZones$ Battlefield | Execute$ TrigDrain | TriggerDescription$ Whenever an opponent casts a white spell, that player loses 1 life and you gain 1 life. -SVar:TrigDrain:AB$LoseLife | Cost$ 0 | Defined$ Opponent | LifeAmount$ 1 | SubAbility$ DBGainLife -SVar:DBGainLife:DB$GainLife | Defined$ You | LifeAmount$ 1 +SVar:TrigDrain:AB$ LoseLife | Cost$ 0 | Defined$ TriggeredActivator | LifeAmount$ 1 | SubAbility$ DBGainLife +SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 1 SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/yawgmoths_edict.jpg Oracle:Whenever an opponent casts a white spell, that player loses 1 life and you gain 1 life. diff --git a/res/cardsfolder/z/zanam_djinn.txt b/res/cardsfolder/z/zanam_djinn.txt index 73ef6aa4c66..0af563d1fa3 100644 --- a/res/cardsfolder/z/zanam_djinn.txt +++ b/res/cardsfolder/z/zanam_djinn.txt @@ -3,7 +3,7 @@ ManaCost:5 U Types:Creature Djinn PT:5/6 K:Flying -S:Mode$ Continuous | Affected$ Card.Self+MostProminentColor blue | AddPower$ -2 | AddToughness$ -2 | Description$ CCARDNAME gets -2/-2 as long as blue is the most common color among all permanents or is tied for most common. +S:Mode$ Continuous | Affected$ Card.Self+MostProminentColor blue | AddPower$ -2 | AddToughness$ -2 | Description$ CARDNAME gets -2/-2 as long as blue is the most common color among all permanents or is tied for most common. SVar:Picture:http://www.wizards.com/global/images/magic/general/zanam_djinn.jpg Oracle:Flying\nZanam Djinn gets -2/-2 as long as blue is the most common color among all permanents or is tied for most common. SetInfo:INV Uncommon \ No newline at end of file diff --git a/res/quest/world/ravnica/challenges/quest4003.dck b/res/quest/world/ravnica/challenges/quest4003.dck index 1d5405701f3..df79035625d 100644 --- a/res/quest/world/ravnica/challenges/quest4003.dck +++ b/res/quest/world/ravnica/challenges/quest4003.dck @@ -13,7 +13,7 @@ Name=quest4003 Title=Isperia Difficulty=hard Description=The dove from above -Icon=Iseria.jpg +Icon=Isperia.jpg Deck Type=constructed [main] 1 Angel of Serenity|RTR @@ -35,4 +35,4 @@ Deck Type=constructed 1 Grand Arbiter Augustin IV|DIS [sideboard] [planes] -[schemes] \ No newline at end of file +[schemes] diff --git a/src/main/java/forge/Card.java b/src/main/java/forge/Card.java index 3c7b330cc7b..6d40d6064f1 100644 --- a/src/main/java/forge/Card.java +++ b/src/main/java/forge/Card.java @@ -6646,6 +6646,18 @@ public class Card extends GameEntity implements Comparable { } } return false; + } else if (restriction.equals("EachTopLibrary")) { + final List list = new ArrayList(); + for (Player p : Singletons.getModel().getGame().getPlayers()) { + final Card top = p.getCardsIn(ZoneType.Library).get(0); + list.add(top); + } + for (Card c : list) { + if (this.sharesCardTypeWith(c)) { + return true; + } + } + return false; } } } else if (property.startsWith("sharesNameWith")) { diff --git a/src/main/java/forge/card/ability/ai/ChangeZoneAi.java b/src/main/java/forge/card/ability/ai/ChangeZoneAi.java index 14f8dfc0b00..d7a73922bf8 100644 --- a/src/main/java/forge/card/ability/ai/ChangeZoneAi.java +++ b/src/main/java/forge/card/ability/ai/ChangeZoneAi.java @@ -1071,7 +1071,7 @@ public class ChangeZoneAi extends SpellAbilityAi { if (tgt != null) { if (!tgt.getTargetPlayers().isEmpty()) { - player = tgt.getTargetPlayers().get(0); + player = player != null ? player : tgt.getTargetPlayers().get(0); if (!player.canBeTargetedBy(sa)) { return; } diff --git a/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java b/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java index 5cea6e3c462..96996ba07d1 100644 --- a/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java +++ b/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java @@ -21,6 +21,7 @@ import forge.card.spellability.SpellAbilityStackInstance; import forge.card.spellability.Target; import forge.card.trigger.TriggerType; import forge.game.ai.ComputerUtilCard; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.Zone; import forge.game.zone.ZoneType; @@ -523,7 +524,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect { if (decider == null) { decider = player; } - if (decider.isComputer()) { + if (decider instanceof AIPlayer) { ChangeZoneAi.hiddenOriginResolveAI(decider, sa, player); } else { changeHiddenOriginResolveHuman(sa, player); @@ -547,11 +548,12 @@ public class ChangeZoneEffect extends SpellAbilityEffect { final Card card = sa.getSourceCard(); final List movedCards = new ArrayList(); final boolean defined = sa.hasParam("Defined"); + final boolean optional = sa.hasParam("Optional"); final Target tgt = sa.getTarget(); if (tgt != null) { final ArrayList players = tgt.getTargetPlayers(); - player = players.get(0); + player = player != null ? player : players.get(0); if (players.contains(player) && !player.canBeTargetedBy(sa)) { return; } @@ -595,6 +597,10 @@ public class ChangeZoneEffect extends SpellAbilityEffect { int changeNum = sa.hasParam("ChangeNum") ? AbilityUtils.calculateAmount(card, sa.getParam("ChangeNum"), sa) : 1; + if (optional && !GuiDialog.confirm(card, "Search " + origin + "?")) { + return; + } + List fetchList; if (defined) { fetchList = new ArrayList(AbilityUtils.getDefinedCards(card, sa.getParam("Defined"), sa)); diff --git a/src/main/java/forge/card/trigger/TriggerDrawn.java b/src/main/java/forge/card/trigger/TriggerDrawn.java index 63ef79369e0..4487a24b3e5 100644 --- a/src/main/java/forge/card/trigger/TriggerDrawn.java +++ b/src/main/java/forge/card/trigger/TriggerDrawn.java @@ -83,5 +83,6 @@ public class TriggerDrawn extends Trigger { @Override public final void setTriggeringObjects(final SpellAbility sa) { sa.setTriggeringObject("Card", this.getRunParams().get("Card")); + sa.setTriggeringObject("Player", this.getRunParams().get("Player")); } } diff --git a/src/main/java/forge/game/GameState.java b/src/main/java/forge/game/GameState.java index 1203a228781..395469436ae 100644 --- a/src/main/java/forge/game/GameState.java +++ b/src/main/java/forge/game/GameState.java @@ -486,7 +486,7 @@ public class GameState { public String getOrdinalPosition(Player player, Player startingPlayer) { int startPosition = roIngamePlayers.indexOf(startingPlayer); - int position = roIngamePlayers.indexOf(player) + startPosition + 1; + int position = (roIngamePlayers.indexOf(player) + startPosition) % roIngamePlayers.size() + 1; String[] sufixes = new String[] { "th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th" }; switch (position % 100) { case 11: diff --git a/src/main/java/forge/game/player/Player.java b/src/main/java/forge/game/player/Player.java index 9c7b0edd5ae..518c151a401 100644 --- a/src/main/java/forge/game/player/Player.java +++ b/src/main/java/forge/game/player/Player.java @@ -1393,6 +1393,7 @@ public abstract class Player extends GameEntity implements Comparable { final HashMap runParams = new HashMap(); runParams.put("Card", c); runParams.put("Number", this.numDrawnThisTurn); + runParams.put("Player", this); game.getTriggerHandler().runTrigger(TriggerType.Drawn, runParams, false); } // lose: @@ -2490,7 +2491,7 @@ public abstract class Player extends GameEntity implements Comparable { } else if (property.startsWith("withMore")) { final String cardType = property.split("sThan")[0].substring(8); final List oppList = CardLists.filter(this.getCardsIn(ZoneType.Battlefield), CardPredicates.isType(cardType)); - final List yourList = CardLists.filter(source.getController().getCardsIn(ZoneType.Battlefield), CardPredicates.isType(cardType)); + final List yourList = CardLists.filter(sourceController.getCardsIn(ZoneType.Battlefield), CardPredicates.isType(cardType)); if (oppList.size() <= yourList.size()) { return false; } diff --git a/src/main/java/forge/gui/CardDetailPanel.java b/src/main/java/forge/gui/CardDetailPanel.java index 0f6741417b0..22c8a3eb1e6 100644 --- a/src/main/java/forge/gui/CardDetailPanel.java +++ b/src/main/java/forge/gui/CardDetailPanel.java @@ -404,7 +404,7 @@ public class CardDetailPanel extends FPanel { if ((card.hasKeyword("Play with the top card of your library revealed.") || card .hasKeyword("Players play with the top card of their libraries revealed.")) && (card.getController() != null) - && (card.isInZone(ZoneType.Battlefield) || (card.isType("Vanguard") && card.isInZone(ZoneType.Command))) + && (card.isInZone(ZoneType.Battlefield) || ((card.isType("Vanguard") || card.isType("Plane")) && card.isInZone(ZoneType.Command))) && !card.getController().getZone(ZoneType.Library).isEmpty()) { area.append("\r\nTop card of your library: "); area.append(card.getController().getCardsIn(ZoneType.Library, 1));