From 898b2487a234bb41f8716a5f060fee67dcc0da9b Mon Sep 17 00:00:00 2001 From: jendave Date: Sat, 6 Aug 2011 15:51:49 +0000 Subject: [PATCH] *Added Triggermode "Drawn". *Updated to trigger Mind's Eye Nether Traitor Nettle Sentinel Nikko-Onna Niv Mizzet, the Firemind --- .gitattributes | 1 + res/cardsfolder/minds_eye.txt | 3 ++- res/cardsfolder/nether_traitor.txt | 3 ++- res/cardsfolder/nettle_sentinel.txt | 3 ++- res/cardsfolder/nikko_onna.txt | 8 +++--- res/cardsfolder/niv_mizzet_the_firemind.txt | 5 ++-- src/forge/Player.java | 5 ++++ src/forge/TriggerHandler.java | 4 +++ src/forge/Trigger_Drawn.java | 29 +++++++++++++++++++++ 9 files changed, 53 insertions(+), 8 deletions(-) create mode 100644 src/forge/Trigger_Drawn.java diff --git a/.gitattributes b/.gitattributes index 7c2aa78a361..b870c4461fa 100644 --- a/.gitattributes +++ b/.gitattributes @@ -6837,6 +6837,7 @@ src/forge/Trigger_Blocks.java -text svneol=native#text/plain src/forge/Trigger_ChangesZone.java -text svneol=native#text/plain src/forge/Trigger_DamageDone.java -text svneol=native#text/plain src/forge/Trigger_Discarded.java -text svneol=native#text/plain +src/forge/Trigger_Drawn.java -text svneol=native#text/plain src/forge/Trigger_LifeGained.java -text svneol=native#text/plain src/forge/Trigger_LifeLost.java -text svneol=native#text/plain src/forge/Trigger_Phase.java -text svneol=native#text/plain diff --git a/res/cardsfolder/minds_eye.txt b/res/cardsfolder/minds_eye.txt index d98c04a1a01..956cd9cebd6 100644 --- a/res/cardsfolder/minds_eye.txt +++ b/res/cardsfolder/minds_eye.txt @@ -2,7 +2,8 @@ Name:Mind's Eye ManaCost:5 Types:Artifact Text:no text -K:WheneverKeyword:DrawCard:ControllingPlayer_Opponent:Play:DrawCards/1:ControllingPlayer_Self:ASAP:PayMana/1:No Special Condition:Whenever an opponent draws a card, you may pay 1. If you do, draw a card. +T:Mode$ Drawn | ValidCard$ Card.YouDontCtrl | TriggerZones$ Battlefield | Optional$ True | Execute$ TrigDraw | TriggerDescription$ Whenever an opponent draws a card, you may pay 1. If you do, draw a card. +SVar:TrigDraw:AB$Draw | Cost$ 1 | Defined$ You | NumCards$ 1 SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/minds_eye.jpg SetInfo:MRD|Rare|http://magiccards.info/scans/en/mi/205.jpg diff --git a/res/cardsfolder/nether_traitor.txt b/res/cardsfolder/nether_traitor.txt index eb921bd3f7a..5e26e11651c 100644 --- a/res/cardsfolder/nether_traitor.txt +++ b/res/cardsfolder/nether_traitor.txt @@ -5,7 +5,8 @@ Text:no text PT:1/1 K:Haste K:Shadow -K:WheneverKeyword:PermanentIntoGraveyard:Type/Creature:Graveyard:MoveFrom-Graveyard-Play:Self:ASAP:PayMana/B:Initiator - Other than Self!Initiator - OwnedByController:Whenever another creature is put into your graveyard from the battlefield, you may pay B. If you do, return Nether Traitor from your graveyard to the battlefield. +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.YouCtrl+Other | Optional$ True | TriggerZones$ Graveyard | Execute$ TrigReturn | TriggerDescription$ Whenever another creature is put into your graveyard from the battlefield, you may pay B. If you do, return CARDNAME from your graveyard to the battlefield. +SVar:TrigReturn:AB$ChangeZone | Cost$ B | Defined$ Self | Origin$ Graveyard | Destination$ Battlefield SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/nether_traitor.jpg SetInfo:TSP|Rare|http://magiccards.info/scans/en/ts/120.jpg diff --git a/res/cardsfolder/nettle_sentinel.txt b/res/cardsfolder/nettle_sentinel.txt index 5e3cfd14e66..4273d7c41e0 100644 --- a/res/cardsfolder/nettle_sentinel.txt +++ b/res/cardsfolder/nettle_sentinel.txt @@ -4,7 +4,8 @@ Types:Creature Elf Warrior Text:no text PT:2/2 K:CARDNAME doesn't untap during your untap step. -K:WheneverKeyword:CastSpell/Controller:Color/green:Play:UntapPermanent:Self:ASAP:Yes_No:No Special Condition:Whenever you cast a green spell, you may untap Nettle Sentinel. +T:Mode$ SpellCast | ValidCard$ Card.Green+YouCtrl | TriggerZones$ Battlefield | Optional$ True | Execute$ TrigUntap | TriggerDescription$ Whenever you cast a green spell, you may untap CARDNAME. +SVar:TrigUntap:AB$Untap | Cost$ 0 | Defined$ Self SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/nettle_sentinel.jpg SetInfo:EVE|Common|http://magiccards.info/scans/en/eve/71.jpg diff --git a/res/cardsfolder/nikko_onna.txt b/res/cardsfolder/nikko_onna.txt index c7a04f5c1b4..815e5a8fea6 100644 --- a/res/cardsfolder/nikko_onna.txt +++ b/res/cardsfolder/nikko_onna.txt @@ -1,10 +1,12 @@ Name:Nikko-Onna ManaCost:2 W Types:Creature Spirit -Text:When Nikko-Onna enters the battlefield, destroy target enchantment. +Text:no text PT:2/2 -K:etbDestroyTgt:Enchantment -K:WheneverKeyword:CastSpell/Controller:OneTypeOfMany/Arcane/Spirit:Play:MoveFrom-Play-Hand:Self:ASAP:Yes_No:No Special Condition:Whenever you cast a Spirit or Arcane spell, you may return Nikko-Onna to its owner's hand. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | Execute$ TrigDestroy | TriggerDescription$ When CARDNAME enters the battlefield, destroy target enchantment. +T:Mode$ SpellCast | ValidCard$ Spirit.YouCtrl,Arcane.YouCtrl | TriggerZones$ Battlefield | Optional$ True | Execute$ TrigReturn | TriggerDescription$ Whenever you cast a Spirit or Arcane spell, you may return CARDNAME to its owner's hand. +SVar:TrigReturn:AB$ChangeZone | Cost$ 0 | Defined$ Self | Origin$ Battlefield | Destination$ Hand +SVar:TrigDestroy:AB$Destroy | Cost$ 0 | ValidTgts$ Enchantment | TgtPrompt$ Choose target enchantment SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/nikko_onna.jpg SetInfo:SOK|Uncommon|http://magiccards.info/scans/en/sok/21.jpg diff --git a/res/cardsfolder/niv_mizzet_the_firemind.txt b/res/cardsfolder/niv_mizzet_the_firemind.txt index 6211f16589a..8cac4f8f584 100644 --- a/res/cardsfolder/niv_mizzet_the_firemind.txt +++ b/res/cardsfolder/niv_mizzet_the_firemind.txt @@ -1,11 +1,12 @@ Name:Niv-Mizzet, the Firemind -ManaCost:2 U U R R +ManaCost:0 Types:Legendary Creature Dragon Wizard Text:no text PT:4/4 K:Flying A:AB$Draw | Cost$ T | NumCards$ 1 | SpellDescription$ Draw a card. -K:WheneverKeyword:DrawCard:ControllingPlayer_Self:Play:Damage/1:InputType - CreatureORPlayer:ASAP:No_Condition:SingleTarget:Whenever you draw a card, Niv-Mizzet, the Firemind deals 1 damage to target creature or player +T:Mode$ Drawn | ValidCard$ Card.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigDealDamage | TriggerDescription$ Whenever you draw a card, CARDNAME deals 1 damage to target creature or player. +SVar:TrigDealDamage:AB$DealDamage | Cost$ 0 | Tgt$ TgtCP | NumDmg$ 1 SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/niv_mizzet_the_firemind.jpg SetInfo:GPT|Rare|http://magiccards.info/scans/en/gp/123.jpg diff --git a/src/forge/Player.java b/src/forge/Player.java index fd74ad20dab..9efda80ff10 100644 --- a/src/forge/Player.java +++ b/src/forge/Player.java @@ -556,6 +556,11 @@ public abstract class Player extends MyObservable{ numDrawnThisTurn++; GameActionUtil.executeDrawCardTriggeredEffects(this); + + //Run triggers + HashMap runParams = new HashMap(); + runParams.put("Drawn", c); + AllZone.TriggerHandler.runTrigger("Drawn", runParams); } //lose: else if (!Constant.Runtime.DevMode[0] || AllZone.Display.canLoseByDecking()) { diff --git a/src/forge/TriggerHandler.java b/src/forge/TriggerHandler.java index 94128dfc540..ad18b703b7e 100644 --- a/src/forge/TriggerHandler.java +++ b/src/forge/TriggerHandler.java @@ -45,6 +45,10 @@ public class TriggerHandler { { ret = new Trigger_Discarded(mapParams,host); } + else if(mode.equals("Drawn")) + { + ret = new Trigger_Drawn(mapParams,host); + } else if(mode.equals("LifeGained")) { ret = new Trigger_LifeGained(mapParams,host); diff --git a/src/forge/Trigger_Drawn.java b/src/forge/Trigger_Drawn.java new file mode 100644 index 00000000000..4f446197360 --- /dev/null +++ b/src/forge/Trigger_Drawn.java @@ -0,0 +1,29 @@ +package forge; + +import java.util.HashMap; + +public class Trigger_Drawn extends Trigger { + + public Trigger_Drawn(HashMap params, Card host) { + super(params, host); + } + + @Override + public boolean performTest(HashMap runParams) { + Card draw = ((Card)runParams.get("Drawn")); + + if(mapParams.containsKey("ValidCard")) + { + if(!draw.isValidCard(mapParams.get("ValidCard").split(","), hostCard.getController(), hostCard)) + { + return false; + } + } + return true; + } + + @Override + public Trigger getCopy() { + return new Trigger_Drawn(mapParams,hostCard); + } +}