From 9da6f433798a079ba26a777945a7811f79e9d27e Mon Sep 17 00:00:00 2001 From: moomarc Date: Thu, 28 Mar 2013 13:59:56 +0000 Subject: [PATCH] - Made a few more cards multiplayer-ready - Improved OpponentTurn restrictions and conditions for multiplayer --- res/cardsfolder/c/cataclysm.txt | 15 ++++++--------- res/cardsfolder/d/delirium.txt | 4 ++-- res/cardsfolder/d/delirium_skeins.txt | 4 ++-- res/cardsfolder/d/din_of_the_fireherd.txt | 4 ++-- res/cardsfolder/d/disorder.txt | 13 ++++++++----- ...ezumi_graverobber_nighteyes_the_desecrator.txt | 3 --- .../card/spellability/SpellAbilityCondition.java | 2 +- .../spellability/SpellAbilityRestriction.java | 2 +- src/main/java/forge/card/trigger/Trigger.java | 2 +- 9 files changed, 23 insertions(+), 26 deletions(-) diff --git a/res/cardsfolder/c/cataclysm.txt b/res/cardsfolder/c/cataclysm.txt index 742ed4bd5f3..2de98c68379 100644 --- a/res/cardsfolder/c/cataclysm.txt +++ b/res/cardsfolder/c/cataclysm.txt @@ -1,15 +1,12 @@ Name:Cataclysm ManaCost:2 W W Types:Sorcery -A:SP$ ChooseCard | Cost$ 2 W W | Defined$ You | Amount$ 1 | Choices$ Artifact.YouCtrl | ChoiceTitle$ Choose an artifact | SubAbility$ ChooseCrtrYou | RememberChosen$ True | SpellDescription$ Each player chooses from the permanents he or she controls an artifact, a creature, an enchantment, and a land, then sacrifices the rest. -SVar:ChooseCrtrYou:DB$ ChooseCard | Defined$ You | Amount$ 1 | Choices$ Creature.YouCtrl | ChoiceTitle$ Choose a creature | SubAbility$ ChooseEnchYou | RememberChosen$ True -SVar:ChooseEnchYou:DB$ ChooseCard | Defined$ You | Amount$ 1 | Choices$ Enchantment.YouCtrl | ChoiceTitle$ Choose an enchantment | SubAbility$ ChooseLandYou | RememberChosen$ True -SVar:ChooseLandYou:DB$ ChooseCard | Defined$ You | Amount$ 1 | Choices$ Land.YouCtrl | ChoiceTitle$ Choose a land | SubAbility$ ChooseArtfOpp | RememberChosen$ True -SVar:ChooseArtfOpp:DB$ ChooseCard | Defined$ Opponent | Amount$ 1 | Choices$ Artifact.YouDontCtrl | SubAbility$ ChooseCrtrOpp | RememberChosen$ True -SVar:ChooseCrtrOpp:DB$ ChooseCard | Defined$ Opponent | Amount$ 1 | Choices$ Creature.YouDontCtrl | SubAbility$ ChooseEnchOpp | RememberChosen$ True -SVar:ChooseEnchOpp:DB$ ChooseCard | Defined$ Opponent | Amount$ 1 | Choices$ Enchantment.YouDontCtrl | SubAbility$ ChooseLandOpp | RememberChosen$ True -SVar:ChooseLandOpp:DB$ ChooseCard | Defined$ Opponent | Amount$ 1 | Choices$ Land.YouDontCtrl | SubAbility$ SacAllArtf | RememberChosen$ True -SVar:SacAllArtf:DB$SacrificeAll | ValidCards$ Permanent.IsNotRemembered | SubAbility$ DBCleanup +A:SP$ RepeatEach | Cost$ 2 W W | RepeatPlayers$ Player | RepeatSubAbility$ ChooseArtf | SubAbility$ SacAllOthers | SpellDescription$ Each player chooses from the permanents he or she controls an artifact, a creature, an enchantment, and a land, then sacrifices the rest. +SVar:ChooseArtf:DB$ ChooseCard | Defined$ Remembered | Amount$ 1 | Choices$ Artifact.RememberedPlayerCtrl | ChoiceTitle$ Choose an artifact to keep | SubAbility$ ChooseCrtr | RememberChosen$ True +SVar:ChooseCrtr:DB$ ChooseCard | Defined$ Remembered | Amount$ 1 | Choices$ Creature.RememberedPlayerCtrl | ChoiceTitle$ Choose a creature to keep | SubAbility$ ChooseEnch | RememberChosen$ True +SVar:ChooseEnch:DB$ ChooseCard | Defined$ Remembered | Amount$ 1 | Choices$ Enchantment.RememberedPlayerCtrl | ChoiceTitle$ Choose an enchantment to keep | SubAbility$ ChooseLand | RememberChosen$ True +SVar:ChooseLand:DB$ ChooseCard | Defined$ Remembered | Amount$ 1 | Choices$ Land.RememberedPlayerCtrl | ChoiceTitle$ Choose a land to keep | RememberChosen$ True +SVar:SacAllOthers:DB$ SacrificeAll | ValidCards$ Permanent.IsNotRemembered | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:RemAIDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/cataclysm.jpg diff --git a/res/cardsfolder/d/delirium.txt b/res/cardsfolder/d/delirium.txt index a5ff880e909..f7230022e33 100644 --- a/res/cardsfolder/d/delirium.txt +++ b/res/cardsfolder/d/delirium.txt @@ -1,8 +1,8 @@ Name:Delirium ManaCost:1 B R Types:Instant -A:SP$ Tap | Cost$ 1 B R | ValidTgts$ Creature.YouDontCtrl | TgtPrompt$ Select target creature you don't control | OpponentTurn$ True | SubAbility$ DBDamage | SpellDescription$ Cast CARDNAME only during an opponent's turn. Tap target creature that player controls. That creature deals damage equal to its power to the player. Prevent all combat damage that would be dealt to and dealt by the creature this turn. -SVar:DBDamage:DB$ DealDamage | Defined$ Opponent | NumDmg$ X | DamageSource$ Targeted | SubAbility$ DBPump | References$ X +A:SP$ Tap | Cost$ 1 B R | ValidTgts$ Creature.ActivePlayerCtrl | TgtPrompt$ Select target creature current opponent controls | OpponentTurn$ True | SubAbility$ DBDamage | SpellDescription$ Cast CARDNAME only during an opponent's turn. Tap target creature that player controls. That creature deals damage equal to its power to the player. Prevent all combat damage that would be dealt to and dealt by the creature this turn. +SVar:DBDamage:DB$ DealDamage | Defined$ TargetedController | NumDmg$ X | DamageSource$ Targeted | SubAbility$ DBPump | References$ X SVar:DBPump:DB$ Pump | Defined$ Targeted | KW$ HIDDEN Prevent all combat damage that would be dealt to and dealt by CARDNAME. SVar:X:Targeted$CardPower SVar:Picture:http://www.wizards.com/global/images/magic/general/delirium.jpg diff --git a/res/cardsfolder/d/delirium_skeins.txt b/res/cardsfolder/d/delirium_skeins.txt index 6add519c359..560b6184526 100644 --- a/res/cardsfolder/d/delirium_skeins.txt +++ b/res/cardsfolder/d/delirium_skeins.txt @@ -1,8 +1,8 @@ Name:Delirium Skeins ManaCost:2 B Types:Sorcery -A:SP$ Discard | Cost$ 2 B | Mode$ TgtChoose | Defined$ You | NumCards$ 3 | SubAbility$ DBDiscardOpp | SpellDescription$ Each player discards three cards. -SVar:DBDiscardOpp:DB$Discard | Mode$ TgtChoose | Defined$ Opponent | NumCards$ 3 +A:SP$ RepeatEach | Cost$ 2 B | RepeatPlayers$ Player | RepeatSubAbility$ DeliriumDiscard | SpellDescription$ Each player discards three cards. +SVar:DeliriumDiscard:DB$ Discard | Mode$ TgtChoose | Defined$ Remembered | NumCards$ 3 SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/delirium_skeins.jpg Oracle:Each player discards three cards. diff --git a/res/cardsfolder/d/din_of_the_fireherd.txt b/res/cardsfolder/d/din_of_the_fireherd.txt index 11df0766353..44ca6de0c8a 100644 --- a/res/cardsfolder/d/din_of_the_fireherd.txt +++ b/res/cardsfolder/d/din_of_the_fireherd.txt @@ -2,8 +2,8 @@ Name:Din of the Fireherd ManaCost:5 BR BR BR Types:Sorcery A:SP$ Token | Cost$ 5 BR BR BR | TokenOwner$ You | TokenAmount$ 1 | TokenName$ Elemental | TokenColors$ Black,Red | TokenTypes$ Creature,Elemental | TokenPower$ 5 | TokenToughness$ 5 | SubAbility$ DBSac1 | SpellDescription$ Put a 5/5 black and red Elemental creature token onto the battlefield. Target opponent sacrifices a creature for each black creature you control, then sacrifices a land for each red creature you control. -SVar:DBSac1:DB$Sacrifice | SacValid$ Creature | Defined$ Opponent | Amount$ X | SubAbility$ DBSac2 | References$ X -SVar:DBSac2:DB$Sacrifice | SacValid$ Land | Defined$ Opponent | Amount$ Y | References$ Y +SVar:DBSac1:DB$ Sacrifice | SacValid$ Creature | ValidTgts$ Opponent | TgtPrompt$ Select target opponent to make sacrifices | Amount$ X | SubAbility$ DBSac2 | References$ X +SVar:DBSac2:DB$ Sacrifice | SacValid$ Land | Defined$ Targeted | Amount$ Y | References$ Y SVar:X:Count$Valid Creature.Black+YouCtrl SVar:Y:Count$Valid Creature.Red+YouCtrl SVar:Picture:http://www.wizards.com/global/images/magic/general/din_of_the_fireherd.jpg diff --git a/res/cardsfolder/d/disorder.txt b/res/cardsfolder/d/disorder.txt index 47bab90008c..eaf22e09dcb 100644 --- a/res/cardsfolder/d/disorder.txt +++ b/res/cardsfolder/d/disorder.txt @@ -1,11 +1,14 @@ Name:Disorder ManaCost:1 R Types:Sorcery -A:SP$ DamageAll | Cost$ 1 R | ValidCards$ Creature.White | NumDmg$ 2 | SubAbility$ DBDisorderDamageYou | SpellDescription$ Disorder deals 2 damage to each white creature and each player who controls a white creature. -SVar:DBDisorderDamageYou:DB$ DealDamage | Defined$ You | ConditionCheckSVar$ DisorderX | ConditionSVarCompare$ GE1 | NumDmg$ 2 | SubAbility$ DBDisorderDamageOpp | References$ DisorderX -SVar:DBDisorderDamageOpp:DB$ DealDamage | Defined$ Opponent | ConditionCheckSVar$ DisorderY | ConditionSVarCompare$ GE1 | NumDmg$ 2 | References$ DisorderY -SVar:DisorderX:Count$Valid Creature.White+YouCtrl -SVar:DisorderY:Count$Valid Creature.White+YouDontCtrl +A:SP$ DamageAll | Cost$ 1 R | ValidCards$ Creature.White | NumDmg$ 2 | SubAbility$ RepeatedDisorder | RememberDamaged$ True | SpellDescription$ Disorder deals 2 damage to each white creature and each player who controls a white creature. +SVar:RepeatedDisorder:DB$ RepeatEach | Cost$ 2 W W | RepeatPlayers$ Player | RepeatSubAbility$ DisorderPlayerDmg | SubAbility$ DBCleanup +SVar:DisorderPlayerDmg:DB$ DealDamage | Defined$ Player.IsRemembered | ConditionCheckSVar$ DisorderX | ConditionSVarCompare$ GE1 | NumDmg$ 2 | References$ DisorderX,StillInPlay,AlreadyDestroyed +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +#Seeing as it should seal the damage to the creatures and players simultaneously, check whether the player DID have white creatures before the creature damage. +SVar:AlreadyDestroyed:RememberedLKI$Valid Creature.White+RememberedPlayerCtrl +SVar:StillInPlay:Count$Valid Creature.White+RememberedPlayerCtrl +SVar:DisorderX:SVar$AlreadyDestroyed/Plus.StillInPlay SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/disorder.jpg Oracle:Disorder deals 2 damage to each white creature and each player who controls a white creature. diff --git a/res/cardsfolder/n/nezumi_graverobber_nighteyes_the_desecrator.txt b/res/cardsfolder/n/nezumi_graverobber_nighteyes_the_desecrator.txt index 9efabf60129..aad58e7cb38 100644 --- a/res/cardsfolder/n/nezumi_graverobber_nighteyes_the_desecrator.txt +++ b/res/cardsfolder/n/nezumi_graverobber_nighteyes_the_desecrator.txt @@ -7,9 +7,7 @@ SVar:DBFlip:DB$SetState | Defined$ Self | ConditionCheckSVar$ X | ConditionSVarC SVar:X:Count$InOppYard AlternateMode:Flip SVar:Picture:http://www.wizards.com/global/images/magic/general/nezumi_graverobber.jpg -#SetInfo:COM|Uncommon|http://magiccards.info/scans/en/cmd/92a.jpg Oracle:{1}{B}: Exile target card from an opponent's graveyard. If no cards are in that graveyard, flip Nezumi Graverobber. -#I removed the Commander SetInfo because magiccards doesn't have a properly flipped image for COM Nighteyes. ALTERNATE @@ -20,7 +18,6 @@ Types:Legendary Creature Rat Wizard PT:4/2 A:AB$ ChangeZone | Cost$ 4 B | Origin$ Graveyard | Destination$ Battlefield | GainControl$ True | ValidTgts$ Creature | TgtPrompt$ Select target creature. | SpellDescription$ Put target creature card from a graveyard onto the battlefield under your control. SVar:Picture:http://www.wizards.com/global/images/magic/general/nighteyes_the_desecrator.jpg -#SetInfo:COM|Uncommon|http://magiccards.info/scans/en/cmd/92b.jpg Oracle:{4}{B}: Put target creature card from a graveyard onto the battlefield under your control. SetInfo:CHK Uncommon SetInfo:COM Uncommon \ No newline at end of file diff --git a/src/main/java/forge/card/spellability/SpellAbilityCondition.java b/src/main/java/forge/card/spellability/SpellAbilityCondition.java index 13b7e8e7469..608f3f5f02b 100644 --- a/src/main/java/forge/card/spellability/SpellAbilityCondition.java +++ b/src/main/java/forge/card/spellability/SpellAbilityCondition.java @@ -214,7 +214,7 @@ public class SpellAbilityCondition extends SpellAbilityVariables { return false; } - if (this.isOpponentTurn() && Singletons.getModel().getGame().getPhaseHandler().isPlayerTurn(activator)) { + if (this.isOpponentTurn() && !Singletons.getModel().getGame().getPhaseHandler().getPlayerTurn().isOpponentOf(activator)) { return false; } diff --git a/src/main/java/forge/card/spellability/SpellAbilityRestriction.java b/src/main/java/forge/card/spellability/SpellAbilityRestriction.java index 7c0e7b742db..f112d3f620e 100644 --- a/src/main/java/forge/card/spellability/SpellAbilityRestriction.java +++ b/src/main/java/forge/card/spellability/SpellAbilityRestriction.java @@ -230,7 +230,7 @@ public class SpellAbilityRestriction extends SpellAbilityVariables { return false; } - if (this.isOpponentTurn() && Singletons.getModel().getGame().getPhaseHandler().isPlayerTurn(activator)) { + if (this.isOpponentTurn() && !Singletons.getModel().getGame().getPhaseHandler().getPlayerTurn().isOpponentOf(activator)) { return false; } diff --git a/src/main/java/forge/card/trigger/Trigger.java b/src/main/java/forge/card/trigger/Trigger.java index 87988e0efe3..e616afb4f7e 100644 --- a/src/main/java/forge/card/trigger/Trigger.java +++ b/src/main/java/forge/card/trigger/Trigger.java @@ -237,7 +237,7 @@ public abstract class Trigger extends TriggerReplacementBase { } if (this.getMapParams().containsKey("OpponentTurn")) { - if (phaseHandler.isPlayerTurn(this.getHostCard().getController())) { + if (!phaseHandler.getPlayerTurn().isOpponentOf(this.getHostCard().getController())) { return false; } }