From 3264995f5c2dcfed2d2d2586a58abc7b6ab8b066 Mon Sep 17 00:00:00 2001 From: swordshine Date: Tue, 26 Mar 2013 12:02:45 +0000 Subject: [PATCH 01/11] - Added 8 planes --- .gitattributes | 8 ++++++++ res/cardsfolder/o/onakke_catacomb.txt | 9 +++++++++ res/cardsfolder/o/orochi_colony.txt | 10 ++++++++++ res/cardsfolder/o/otaria.txt | 9 +++++++++ res/cardsfolder/s/shiv.txt | 10 ++++++++++ res/cardsfolder/s/shrouded_serpent.txt | 2 +- res/cardsfolder/s/skybreen.txt | 11 +++++++++++ res/cardsfolder/s/sokenzan.txt | 10 ++++++++++ res/cardsfolder/s/stronghold_furnace.txt | 13 +++++++++++++ res/cardsfolder/t/tazeem.txt | 10 ++++++++++ src/main/java/forge/Card.java | 12 ++++++++++++ src/main/java/forge/gui/CardDetailPanel.java | 2 +- 12 files changed, 104 insertions(+), 2 deletions(-) create mode 100644 res/cardsfolder/o/onakke_catacomb.txt create mode 100644 res/cardsfolder/o/orochi_colony.txt create mode 100644 res/cardsfolder/o/otaria.txt create mode 100644 res/cardsfolder/s/shiv.txt create mode 100644 res/cardsfolder/s/skybreen.txt create mode 100644 res/cardsfolder/s/sokenzan.txt create mode 100644 res/cardsfolder/s/stronghold_furnace.txt create mode 100644 res/cardsfolder/t/tazeem.txt diff --git a/.gitattributes b/.gitattributes index a5b3da3ede2..aee56634ad8 100644 --- a/.gitattributes +++ b/.gitattributes @@ -7374,6 +7374,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 +7475,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 +7494,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 +9428,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 +9681,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 +9830,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 +10400,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 +10705,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 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/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..07d805b8ce0 --- /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 | SpellDescription$ Untap all creatures that attacked this turn. After this main phase, there is an additional combat phase followed by an additional main phase. +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/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/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/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)); From 4eae4b415c986ef2515ad21b0ab5aa0f779aaa2d Mon Sep 17 00:00:00 2001 From: Chris Date: Tue, 26 Mar 2013 12:17:46 +0000 Subject: [PATCH 02/11] - Added new card names to changes.txt. --- CHANGES.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGES.txt b/CHANGES.txt index 8103baf8347..76a30142b4e 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -91,6 +91,14 @@ New Planes Bant Turri Island +Onakke Catacomb +Orochi Colony +Otaria +Shiv +Skybreen +Sokenzan +Stronghold Furnace +Tazeem ------------ From 908c87f0f9cd4846b0f271673108abff246d8dc8 Mon Sep 17 00:00:00 2001 From: moomarc Date: Tue, 26 Mar 2013 18:17:26 +0000 Subject: [PATCH 03/11] - Fixed Knowledge Exploitation - Added Oath of Lieges --- .gitattributes | 1 + res/cardsfolder/k/knowledge_exploitation.txt | 2 +- res/cardsfolder/o/oath_of_lieges.txt | 8 ++++++++ src/main/java/forge/card/ability/ai/ChangeZoneAi.java | 2 +- .../forge/card/ability/effects/ChangeZoneEffect.java | 10 ++++++++-- src/main/java/forge/game/player/Player.java | 2 +- 6 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 res/cardsfolder/o/oath_of_lieges.txt diff --git a/.gitattributes b/.gitattributes index aee56634ad8..331c9f1baef 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 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/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/src/main/java/forge/card/ability/ai/ChangeZoneAi.java b/src/main/java/forge/card/ability/ai/ChangeZoneAi.java index 8f5e49654cd..d0aaa3ff350 100644 --- a/src/main/java/forge/card/ability/ai/ChangeZoneAi.java +++ b/src/main/java/forge/card/ability/ai/ChangeZoneAi.java @@ -1072,7 +1072,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/game/player/Player.java b/src/main/java/forge/game/player/Player.java index 049922c5b02..cd5d0843279 100644 --- a/src/main/java/forge/game/player/Player.java +++ b/src/main/java/forge/game/player/Player.java @@ -2487,7 +2487,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; } From 44009066accd28743f1ff7591f69872a565eded8 Mon Sep 17 00:00:00 2001 From: myk Date: Tue, 26 Mar 2013 20:04:32 +0000 Subject: [PATCH 04/11] fix typo in Ravnica deck: Iseria.jpg -> Isperia.jpg --- res/quest/world/ravnica/challenges/quest4003.dck | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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] From 4303720899a129a747ab4d39fc94ddbf0c1f9369 Mon Sep 17 00:00:00 2001 From: Sol Date: Wed, 27 Mar 2013 02:16:12 +0000 Subject: [PATCH 05/11] - AI does not know how to handle Mirror Entity Avatar --- res/cardsfolder/m/mirror_entity_avatar.txt | 1 + 1 file changed, 1 insertion(+) 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 From 9e0406bf86fd27996c195a78c1c931a6a0c75ac5 Mon Sep 17 00:00:00 2001 From: Sol Date: Wed, 27 Mar 2013 02:39:21 +0000 Subject: [PATCH 06/11] - Fix Mulligan Message for Turn Position --- src/main/java/forge/game/GameState.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/forge/game/GameState.java b/src/main/java/forge/game/GameState.java index c21dafd7941..3c646142dfd 100644 --- a/src/main/java/forge/game/GameState.java +++ b/src/main/java/forge/game/GameState.java @@ -485,7 +485,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: From 09a61dec53a9c4c803a02dfed63e2dfe6fa31c9f Mon Sep 17 00:00:00 2001 From: Sol Date: Wed, 27 Mar 2013 02:40:18 +0000 Subject: [PATCH 07/11] - Underworld Dreeams will now effect the Player that drew the cards, not just the first Opponent --- res/cardsfolder/u/underworld_dreams.txt | 2 +- src/main/java/forge/card/trigger/TriggerDrawn.java | 1 + src/main/java/forge/game/player/Player.java | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) 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/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/player/Player.java b/src/main/java/forge/game/player/Player.java index cd5d0843279..e4d5fff86bd 100644 --- a/src/main/java/forge/game/player/Player.java +++ b/src/main/java/forge/game/player/Player.java @@ -1392,6 +1392,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: From dd04e3edb952275c6cc2a505f6c2fe1e1ed8dec9 Mon Sep 17 00:00:00 2001 From: swordshine Date: Wed, 27 Mar 2013 03:06:27 +0000 Subject: [PATCH 08/11] - Fixed Possessed Aven and similar cards --- res/cardsfolder/p/possessed_aven.txt | 2 +- res/cardsfolder/p/possessed_barbarian.txt | 2 +- res/cardsfolder/p/possessed_centaur.txt | 2 +- res/cardsfolder/p/possessed_nomad.txt | 2 +- res/cardsfolder/s/sokenzan.txt | 2 +- res/cardsfolder/s/syphon_flesh.txt | 4 ++-- 6 files changed, 7 insertions(+), 7 deletions(-) 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/sokenzan.txt b/res/cardsfolder/s/sokenzan.txt index 07d805b8ce0..703084c5c98 100644 --- a/res/cardsfolder/s/sokenzan.txt +++ b/res/cardsfolder/s/sokenzan.txt @@ -3,7 +3,7 @@ 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 | SpellDescription$ 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. 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 From c6ea92527b3375518522765f0abc0bfc8fe44710 Mon Sep 17 00:00:00 2001 From: Sol Date: Wed, 27 Mar 2013 03:28:13 +0000 Subject: [PATCH 09/11] - Fix description for Zanam Djinn --- res/cardsfolder/z/zanam_djinn.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From 5e73ddb5a4fd90c340f3f68cf710d55a62641ed9 Mon Sep 17 00:00:00 2001 From: swordshine Date: Wed, 27 Mar 2013 04:27:19 +0000 Subject: [PATCH 10/11] - Added 3 planes --- .gitattributes | 3 +++ res/cardsfolder/t/tember_city.txt | 10 ++++++++++ res/cardsfolder/t/the_dark_barony.txt | 10 ++++++++++ res/cardsfolder/t/the_eon_fog.txt | 9 +++++++++ 4 files changed, 32 insertions(+) create mode 100644 res/cardsfolder/t/tember_city.txt create mode 100644 res/cardsfolder/t/the_dark_barony.txt create mode 100644 res/cardsfolder/t/the_eon_fog.txt diff --git a/.gitattributes b/.gitattributes index 331c9f1baef..2fb644f330a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -10750,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 @@ -10834,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/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 From ced8c79451fd6c9d3536d1bf56e229300fbe1b8f Mon Sep 17 00:00:00 2001 From: moomarc Date: Wed, 27 Mar 2013 08:42:33 +0000 Subject: [PATCH 11/11] - Made some cards ready for multiplayer --- res/cardsfolder/a/armistice.txt | 2 +- res/cardsfolder/b/bargain.txt | 2 +- res/cardsfolder/b/batwing_brume.txt | 9 ++++----- res/cardsfolder/b/bereavement.txt | 6 ++---- res/cardsfolder/b/blood_oath.txt | 4 ++-- res/cardsfolder/b/brink_of_madness.txt | 4 ++-- res/cardsfolder/y/yawgmoths_edict.txt | 4 ++-- 7 files changed, 14 insertions(+), 17 deletions(-) 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/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.