diff --git a/res/cardsfolder/a/aether_figment.txt b/res/cardsfolder/a/aether_figment.txt index be1a03bf7e2..2794d8ab207 100644 --- a/res/cardsfolder/a/aether_figment.txt +++ b/res/cardsfolder/a/aether_figment.txt @@ -4,7 +4,7 @@ Types:Creature Illusion Text:no text PT:1/1 K:Unblockable -K:Kicker:3 +K:Kicker 3 K:etbCounter:P1P1:2:isValid Card.kicked:If CARDNAME was kicked, it enters the battlefield with two +1/+1 counters on it. SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/aether_figment.jpg diff --git a/res/cardsfolder/a/ardent_soldier.txt b/res/cardsfolder/a/ardent_soldier.txt index c2276fd0bd9..c27698cb8d6 100644 --- a/res/cardsfolder/a/ardent_soldier.txt +++ b/res/cardsfolder/a/ardent_soldier.txt @@ -4,7 +4,7 @@ Types:Creature Human Soldier Text:no text PT:1/2 K:Vigilance -K:Kicker:2 +K:Kicker 2 K:etbCounter:P1P1:1:isValid Card.kicked:If CARDNAME was kicked, it enters the battlefield with a +1/+1 counter on it. SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/ardent_soldier.jpg diff --git a/res/cardsfolder/b/benalish_emissary.txt b/res/cardsfolder/b/benalish_emissary.txt index 68148e83217..d729f2f6b5e 100644 --- a/res/cardsfolder/b/benalish_emissary.txt +++ b/res/cardsfolder/b/benalish_emissary.txt @@ -3,7 +3,7 @@ ManaCost:2 W Types:Creature Human Wizard Text:no text PT:1/4 -K:Kicker:1 G +K:Kicker 1 G T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | Execute$ TrigKicker | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, destroy target land. SVar:TrigKicker:AB$Destroy | Cost$ 0 | ValidTgts$ Land | TgtPrompt$ Select target land SVar:Rarity:Uncommon diff --git a/res/cardsfolder/b/benalish_lancer.txt b/res/cardsfolder/b/benalish_lancer.txt index bedd2367c71..16bbfdf239b 100644 --- a/res/cardsfolder/b/benalish_lancer.txt +++ b/res/cardsfolder/b/benalish_lancer.txt @@ -3,7 +3,7 @@ ManaCost:2 W Types:Creature Human Knight Text:no text PT:2/2 -K:Kicker:2 W +K:Kicker 2 W T:Mode$ ChangesZone | ValidCard$ Card.Self+kicked | Origin$ Any | Destination$ Battlefield | Execute$ TrigPut | Static$ True | TriggerDescription$ If CARDNAME was kicked, it enters the battlefield with two +1/+1 counters on it and with first strike. SVar:TrigPut:AB$ PutCounter | Cost$ 0 | Defined$ Self | CounterType$ P1P1 | CounterNum$ 2 | SubAbility$ DBPump SVar:DBPump:DB$ Pump | Defined$ Self | KW$ First Strike | Permanent$ True diff --git a/res/cardsfolder/c/citanul_woodreaders.txt b/res/cardsfolder/c/citanul_woodreaders.txt index f8bf03a6e66..3ff69088a39 100644 --- a/res/cardsfolder/c/citanul_woodreaders.txt +++ b/res/cardsfolder/c/citanul_woodreaders.txt @@ -3,7 +3,7 @@ ManaCost:2 G Types:Creature Human Druid Text:no text PT:1/4 -K:Kicker:2 G +K:Kicker 2 G T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | Execute$ TrigKicker | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, draw two cards. SVar:TrigKicker:AB$Draw | Cost$ 0 | NumCards$ 2 SVar:Rarity:Common diff --git a/res/cardsfolder/d/desolation_angel.txt b/res/cardsfolder/d/desolation_angel.txt index 78817c0f943..f96f24fa4f8 100644 --- a/res/cardsfolder/d/desolation_angel.txt +++ b/res/cardsfolder/d/desolation_angel.txt @@ -4,7 +4,7 @@ Types:Creature Angel Text:no text PT:5/4 K:Flying -K:Kicker:W W +K:Kicker W W T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+notkicked | Execute$ TrigDestroyYourLand | TriggerDescription$ When CARDNAME enters the battlefield, destroy all lands you control. If it was kicked, destroy all lands instead. SVar:TrigDestroyYourLand:AB$DestroyAll | Cost$ 0 | ValidCards$ Land.YouCtrl | SpellDescription$ CARDNAME destroys all land you control. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | Secondary$ True | Execute$ TrigKicker | TriggerDescription$ Kicker: If you paid the kicker cost, destroy all lands instead. diff --git a/res/cardsfolder/d/desolation_giant.txt b/res/cardsfolder/d/desolation_giant.txt index 6ed141b4fb4..0b58baa8c3e 100644 --- a/res/cardsfolder/d/desolation_giant.txt +++ b/res/cardsfolder/d/desolation_giant.txt @@ -3,7 +3,7 @@ ManaCost:2 R R Types:Creature Giant Text:no text PT:3/3 -K:Kicker:W W +K:Kicker W W T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+notkicked | Execute$ TrigDestroy | TriggerDescription$ When CARDNAME enters the battlefield, destroy all other creatures you control. If it was kicked, destroy all other creatures instead. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | Secondary$ True | Execute$ TrigKicker | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, destroy all other creatures. SVar:TrigDestroy:AB$DestroyAll | Cost$ 0 | ValidCards$ Creature.Other+YouCtrl diff --git a/res/cardsfolder/d/duskwalker.txt b/res/cardsfolder/d/duskwalker.txt index 4d6d07f66cc..e7728576033 100644 --- a/res/cardsfolder/d/duskwalker.txt +++ b/res/cardsfolder/d/duskwalker.txt @@ -3,7 +3,7 @@ ManaCost:B Types:Creature Human Minion Text:no text PT:1/1 -K:Kicker:3 B +K:Kicker 3 B T:Mode$ ChangesZone | ValidCard$ Card.Self+kicked | Origin$ Any | Destination$ Battlefield | Execute$ GatherDust | Static$ True | TriggerDescription$ If CARDNAME was kicked, it enters the battlefield with two +1/+1 counters on it and with fear. (It can't be blocked except by artifact creatures and/or black creatures.) SVar:GatherDust:AB$ PutCounter | Cost$ 0 | Defined$ Self | CounterType$ P1P1 | CounterNum$ 2 | SubAbility$ Dustwalk SVar:Dustwalk:DB$ Pump | Defined$ Self | KW$ Fear | Permanent$ True diff --git a/res/cardsfolder/f/faerie_squadron.txt b/res/cardsfolder/f/faerie_squadron.txt index a1ed79c5c59..1bd1e876fe0 100644 --- a/res/cardsfolder/f/faerie_squadron.txt +++ b/res/cardsfolder/f/faerie_squadron.txt @@ -3,7 +3,7 @@ ManaCost:U Types:Creature Faerie Text:no text PT:1/1 -K:Kicker:3 U +K:Kicker 3 U T:Mode$ ChangesZone | ValidCard$ Card.Self+kicked | Origin$ Any | Destination$ Battlefield | Execute$ SquadronEnlist | Static$ True | TriggerDescription$ If CARDNAME was kicked, it enters the battlefield with two +1/+1 counters on it and with flying. SVar:SquadronEnlist:AB$ PutCounter | Cost$ 0 | Defined$ Self | CounterType$ P1P1 | CounterNum$ 2 | SubAbility$ SquadronLaunch SVar:SquadronLaunch:DB$ Pump | Defined$ Self | KW$ Flying | Permanent$ True diff --git a/res/cardsfolder/g/gatekeeper_of_malakir.txt b/res/cardsfolder/g/gatekeeper_of_malakir.txt index 5724d8bc54c..9e229e1158f 100644 --- a/res/cardsfolder/g/gatekeeper_of_malakir.txt +++ b/res/cardsfolder/g/gatekeeper_of_malakir.txt @@ -3,7 +3,7 @@ ManaCost:B B Types:Creature Vampire Warrior Text:no text PT:2/2 -K:Kicker:B +K:Kicker B T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | Execute$ TrigKicker | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, target player sacrifices a creature. SVar:TrigKicker:DB$ Sacrifice | ValidTgts$ Player | SacValid$ Creature | SacMessage$ Creature SVar:NeedsToPlay:Creature.YouDontCtrl diff --git a/res/cardsfolder/g/goblin_bushwhacker.txt b/res/cardsfolder/g/goblin_bushwhacker.txt index 0e76d70176d..c3877a2780b 100644 --- a/res/cardsfolder/g/goblin_bushwhacker.txt +++ b/res/cardsfolder/g/goblin_bushwhacker.txt @@ -3,7 +3,7 @@ ManaCost:R Types:Creature Goblin Warrior Text:no text PT:1/1 -K:Kicker:R +K:Kicker R T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | Execute$ TrigPumpAll | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, creatures you control get +1/+0 and gain haste until end of turn. SVar:TrigPumpAll:AB$PumpAll | Cost$ 0 | ValidCards$ Creature.YouCtrl | NumAtt$ 1 | KW$ Haste SVar:PlayMain1:TRUE diff --git a/res/cardsfolder/g/goblin_ruinblaster.txt b/res/cardsfolder/g/goblin_ruinblaster.txt index ace6d906d8c..ff04d5d4951 100644 --- a/res/cardsfolder/g/goblin_ruinblaster.txt +++ b/res/cardsfolder/g/goblin_ruinblaster.txt @@ -4,10 +4,9 @@ Types:Creature Goblin Shaman Text:no text PT:2/1 K:Haste -K:Kicker:R +K:Kicker R T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | Execute$ TrigKicker | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, destroy target nonbasic land. SVar:TrigKicker:AB$Destroy | Cost$ 0 | ValidTgts$ Land.nonBasic | TgtPrompt$ Select target nonbasic land. -SVar:PlayMain1:True SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/goblin_ruinblaster.jpg SetInfo:ZEN|Uncommon|http://magiccards.info/scans/en/zen/127.jpg diff --git a/res/cardsfolder/h/heartstabber_mosquito.txt b/res/cardsfolder/h/heartstabber_mosquito.txt index ca11ac50661..caacd6663b9 100644 --- a/res/cardsfolder/h/heartstabber_mosquito.txt +++ b/res/cardsfolder/h/heartstabber_mosquito.txt @@ -4,9 +4,9 @@ Types:Creature Insect Text:no text PT:2/2 K:Flying -K:Kicker:2 B +K:Kicker 2 B T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | Execute$ TrigKicker | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, destroy target creature. -SVar:TrigKicker:AB$Destroy | Cost$ 0 | ValidTgts$ Creature | TgtPrompt$ Select target creature. +SVar:TrigKicker:DB$Destroy | Cost$ 0 | ValidTgts$ Creature | TgtPrompt$ Select target creature. SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/Heartstabber_Mosquito.jpg SetInfo:ZEN|Common|http://magiccards.info/scans/en/zen/97.jpg diff --git a/res/cardsfolder/k/kavu_aggressor.txt b/res/cardsfolder/k/kavu_aggressor.txt index 7de0ad0c91c..56a20c7ee74 100644 --- a/res/cardsfolder/k/kavu_aggressor.txt +++ b/res/cardsfolder/k/kavu_aggressor.txt @@ -4,7 +4,7 @@ Types:Creature Kavu Text:no text PT:3/2 K:CARDNAME can't block. -K:Kicker:4 +K:Kicker 4 K:etbCounter:P1P1:1:isValid Card.kicked:If CARDNAME was kicked, it enters the battlefield with a +1/+1 counter on it. SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/kavu_aggressor.jpg diff --git a/res/cardsfolder/k/kavu_primarch.txt b/res/cardsfolder/k/kavu_primarch.txt index c5455af8a4a..da16c33b05d 100644 --- a/res/cardsfolder/k/kavu_primarch.txt +++ b/res/cardsfolder/k/kavu_primarch.txt @@ -4,7 +4,7 @@ Types:Creature Kavu Text:no text PT:3/3 K:Convoke -K:Kicker:4 +K:Kicker 4 K:etbCounter:P1P1:4:isValid Card.kicked:If CARDNAME was kicked, it enters the battlefield with four +1/+1 counters on it. SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/kavu_primarch.jpg diff --git a/res/cardsfolder/k/kavu_titan.txt b/res/cardsfolder/k/kavu_titan.txt index 73e2ca11bb7..924569c5084 100644 --- a/res/cardsfolder/k/kavu_titan.txt +++ b/res/cardsfolder/k/kavu_titan.txt @@ -3,7 +3,7 @@ ManaCost:1 G Types:Creature Kavu Text:no text PT:2/2 -K:Kicker:2 G +K:Kicker 2 G T:Mode$ ChangesZone | ValidCard$ Card.Self+kicked | Origin$ Any | Destination$ Battlefield | Execute$ TrigPut | Static$ True | TriggerDescription$ If CARDNAME was kicked, it enters the battlefield with three +1/+1 counters on it and with trample. SVar:TrigPut:AB$ PutCounter | Cost$ 0 | Defined$ Self | CounterType$ P1P1 | CounterNum$ 3 | SubAbility$ DBPump SVar:DBPump:DB$ Pump | Defined$ Self | KW$ Trample | Permanent$ True diff --git a/res/cardsfolder/k/kor_aeronaut.txt b/res/cardsfolder/k/kor_aeronaut.txt index e33da9ecedd..26af7b9adfe 100644 --- a/res/cardsfolder/k/kor_aeronaut.txt +++ b/res/cardsfolder/k/kor_aeronaut.txt @@ -4,7 +4,7 @@ Types:Creature Kor Soldier Text:no text PT:2/2 K:Flying -K:Kicker:1 W +K:Kicker 1 W T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | Execute$ TrigKicker | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, target creature gains flying until end of turn. SVar:TrigKicker:AB$Pump | Cost$ 0 | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Flying SVar:PlayMain1:True diff --git a/res/cardsfolder/k/kor_sanctifiers.txt b/res/cardsfolder/k/kor_sanctifiers.txt index 3063d9d49cc..1503ba1d5cc 100644 --- a/res/cardsfolder/k/kor_sanctifiers.txt +++ b/res/cardsfolder/k/kor_sanctifiers.txt @@ -3,7 +3,7 @@ ManaCost:2 W Types:Creature Kor Cleric Text:no text PT:2/3 -K:Kicker:W +K:Kicker W T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | Execute$ TrigKicker | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, destroy target artifact or enchantment. SVar:TrigKicker:AB$Destroy | Cost$ 0 | ValidTgts$ Artifact,Enchantment | TgtPrompt$ Select target artifact or enchantment. SVar:Rarity:Common diff --git a/res/cardsfolder/l/llanowar_elite.txt b/res/cardsfolder/l/llanowar_elite.txt index f95e1490f09..dcf161abc53 100644 --- a/res/cardsfolder/l/llanowar_elite.txt +++ b/res/cardsfolder/l/llanowar_elite.txt @@ -4,7 +4,7 @@ Types:Creature Elf Text:no text PT:1/1 K:Trample -K:Kicker:8 +K:Kicker 8 K:etbCounter:P1P1:5:isValid Card.kicked:If CARDNAME was kicked, it enters the battlefield with five +1/+1 counters on it. SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/llanowar_elite.jpg diff --git a/res/cardsfolder/m/mold_shambler.txt b/res/cardsfolder/m/mold_shambler.txt index a93b52d55a2..8a22ff799e2 100644 --- a/res/cardsfolder/m/mold_shambler.txt +++ b/res/cardsfolder/m/mold_shambler.txt @@ -3,7 +3,7 @@ ManaCost:3 G Types:Creature Fungus Beast Text:no text PT:3/3 -K:Kicker:1 G +K:Kicker 1 G T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | Execute$ TrigKicker | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, destroy target noncreature permanent. SVar:TrigKicker:AB$Destroy | Cost$ 0 | ValidTgts$ Permanent.nonCreature | TgtPrompt$ Select target noncreature permanent. SVar:Rarity:Common diff --git a/res/cardsfolder/o/oran_rief_recluse.txt b/res/cardsfolder/o/oran_rief_recluse.txt index e688f6ffd75..5a518f302a4 100644 --- a/res/cardsfolder/o/oran_rief_recluse.txt +++ b/res/cardsfolder/o/oran_rief_recluse.txt @@ -3,7 +3,7 @@ ManaCost:2 G Types:Creature Spider Text:no text PT:1/3 -K:Kicker:2 G +K:Kicker 2 G K:Reach T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | Execute$ TrigDestroy | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, destroy target creature with flying. SVar:TrigDestroy:AB$Destroy | Cost$ 0 | ValidTgts$ Creature.withFlying | TgtPrompt$ Select target creature with flying. diff --git a/res/cardsfolder/p/pincer_spider.txt b/res/cardsfolder/p/pincer_spider.txt index 49cce737859..92f3193fe74 100644 --- a/res/cardsfolder/p/pincer_spider.txt +++ b/res/cardsfolder/p/pincer_spider.txt @@ -4,7 +4,7 @@ Types:Creature Spider Text:no text PT:2/3 K:Reach -K:Kicker:3 +K:Kicker 3 K:etbCounter:P1P1:1:isValid Card.kicked:If CARDNAME was kicked, it enters the battlefield with a +1/+1 counter on it. SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/pincer_spider.jpg diff --git a/res/cardsfolder/p/pouncing_kavu.txt b/res/cardsfolder/p/pouncing_kavu.txt index 8fe7e1f90d2..af41bc037d4 100644 --- a/res/cardsfolder/p/pouncing_kavu.txt +++ b/res/cardsfolder/p/pouncing_kavu.txt @@ -3,7 +3,7 @@ ManaCost:1 R Types:Creature Kavu Text:no text PT:1/1 -K:Kicker:2 R +K:Kicker 2 R K:First Strike T:Mode$ ChangesZone | ValidCard$ Card.Self+kicked | Origin$ Any | Destination$ Battlefield | Execute$ PounceAdvantage | Static$ True | TriggerDescription$ If CARDNAME was kicked, it enters the battlefield with two +1/+1 counters on it and with haste. SVar:PounceAdvantage:AB$ PutCounter | Cost$ 0 | Defined$ Self | CounterType$ P1P1 | CounterNum$ 2 | SubAbility$ PounceAmbush diff --git a/res/cardsfolder/p/pouncing_wurm.txt b/res/cardsfolder/p/pouncing_wurm.txt index b9583f7b084..a9e637894ee 100644 --- a/res/cardsfolder/p/pouncing_wurm.txt +++ b/res/cardsfolder/p/pouncing_wurm.txt @@ -3,7 +3,7 @@ ManaCost:3 G Types:Creature Wurm Text:no text PT:3/3 -K:Kicker:2 G +K:Kicker 2 G T:Mode$ ChangesZone | ValidCard$ Card.Self+kicked | Origin$ Any | Destination$ Battlefield | Execute$ TrigPut | Static$ True | TriggerDescription$ If CARDNAME was kicked, it enters the battlefield with three +1/+1 counters on it and with haste. SVar:TrigPut:AB$ PutCounter | Cost$ 0 | Defined$ Self | CounterType$ P1P1 | CounterNum$ 3 | SubAbility$ DBPump SVar:DBPump:DB$ Pump | Defined$ Self | KW$ Haste | Permanent$ True diff --git a/res/cardsfolder/r/ravaging_riftwurm.txt b/res/cardsfolder/r/ravaging_riftwurm.txt index 05cd7ab8fdc..c29e1825b32 100644 --- a/res/cardsfolder/r/ravaging_riftwurm.txt +++ b/res/cardsfolder/r/ravaging_riftwurm.txt @@ -3,7 +3,7 @@ ManaCost:1 G G Types:Creature Wurm Text:no text PT:6/6 -K:Kicker:4 +K:Kicker 4 K:Vanishing:2 K:etbCounter:TIME:3:isValid Card.kicked:If CARDNAME was kicked, it enters the battlefield with three additional time counters on it. SVar:Rarity:Uncommon diff --git a/res/cardsfolder/s/shivan_emissary.txt b/res/cardsfolder/s/shivan_emissary.txt index 7a7b1475faa..f2ab4e1ec22 100644 --- a/res/cardsfolder/s/shivan_emissary.txt +++ b/res/cardsfolder/s/shivan_emissary.txt @@ -3,7 +3,7 @@ ManaCost:2 R Types:Creature Human Wizard Text:no text PT:1/1 -K:Kicker:1 B +K:Kicker 1 B T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | Execute$ TrigKicker | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, destroy target nonblack creature. It can't be regenerated. SVar:TrigKicker:AB$Destroy | Cost$ 0 | ValidTgts$ Creature.nonBlack | NoRegen$ True | TgtPrompt$ Select target nonblack creature SVar:RemRandomDeck:True diff --git a/res/cardsfolder/s/skizzik.txt b/res/cardsfolder/s/skizzik.txt index 1ebc6cc92dd..a19ff26e327 100644 --- a/res/cardsfolder/s/skizzik.txt +++ b/res/cardsfolder/s/skizzik.txt @@ -5,7 +5,7 @@ Text:no text PT:5/3 K:Haste K:Trample -K:Kicker:R +K:Kicker R T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | IsPresent$ Card.Self+notkicked | Execute$ TrigNotKicked | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of the end step, sacrifice CARDNAME unless it was kicked. SVar:TrigNotKicked:AB$Sacrifice | Cost$ 0 | Defined$ Self SVar:PlayMain1:TRUE diff --git a/res/cardsfolder/s/sphinx_of_lost_truths.txt b/res/cardsfolder/s/sphinx_of_lost_truths.txt index a9ab9b26197..a6766c9fabb 100644 --- a/res/cardsfolder/s/sphinx_of_lost_truths.txt +++ b/res/cardsfolder/s/sphinx_of_lost_truths.txt @@ -4,7 +4,7 @@ Types:Creature Sphinx Text:no text PT:3/5 K:Flying -K:Kicker:1 U +K:Kicker 1 U T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+notkicked | Execute$ TrigDraw | TriggerDescription$ When CARDNAME enters the battlefield, draw three cards. Then if it wasn't kicked, discard three cards. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | Secondary$ True | Execute$ TrigKicker | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, draw three cards. SVar:TrigKicker:AB$Draw | Cost$ 0 | NumCards$ 3 diff --git a/res/cardsfolder/t/tempest_owl.txt b/res/cardsfolder/t/tempest_owl.txt index 19c266a2687..d7a90f14e9f 100644 --- a/res/cardsfolder/t/tempest_owl.txt +++ b/res/cardsfolder/t/tempest_owl.txt @@ -4,7 +4,7 @@ Types:Creature Bird Text:no text PT:1/2 K:Flying -K:Kicker:4 U +K:Kicker 4 U T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | Execute$ TrigTap | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, tap up to three target permanents. SVar:TrigTap:AB$Tap | Cost$ 0 | TargetMin$ 0 | TargetMax$ 3 | TgtPrompt$ Select up to three target permanents | ValidTgts$ Permanent SVar:Rarity:Common diff --git a/res/cardsfolder/t/thicket_elemental.txt b/res/cardsfolder/t/thicket_elemental.txt index b3e0113f2d5..99e332c2b7a 100644 --- a/res/cardsfolder/t/thicket_elemental.txt +++ b/res/cardsfolder/t/thicket_elemental.txt @@ -3,7 +3,7 @@ ManaCost:3 G G Types:Creature Elemental Text:no text PT:4/4 -K:Kicker:1 G +K:Kicker 1 G T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | Execute$ ThicketKicker | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, you may reveal cards from the top of your library until you reveal a creature card. If you do, put that card onto the battlefield and shuffle all other cards revealed this way into your library. SVar:ThicketKicker:DB$ DigUntil | Valid$ Creature | ValidDescription$ creature card | FoundDestination$ Battlefield | OptionalDecider$ You | RevealedDestination$ Library | Shuffle$ True SVar:Rarity:Rare diff --git a/res/cardsfolder/t/tolarian_emissary.txt b/res/cardsfolder/t/tolarian_emissary.txt index f63e7a3e20e..83753026a71 100644 --- a/res/cardsfolder/t/tolarian_emissary.txt +++ b/res/cardsfolder/t/tolarian_emissary.txt @@ -4,7 +4,7 @@ Types:Creature Human Wizard Text:no text PT:1/2 K:Flying -K:Kicker:1 W +K:Kicker 1 W T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | Execute$ TrigKicker | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, destroy target enchantment. SVar:TrigKicker:AB$Destroy | Cost$ 0 | ValidTgts$ Enchantment | TgtPrompt$ Select target enchantment SVar:Rarity:Uncommon diff --git a/res/cardsfolder/t/torch_slinger.txt b/res/cardsfolder/t/torch_slinger.txt index 9c7ba909760..a16dcc88772 100644 --- a/res/cardsfolder/t/torch_slinger.txt +++ b/res/cardsfolder/t/torch_slinger.txt @@ -3,7 +3,7 @@ ManaCost:2 R Types: Creature Goblin Shaman Text:no text PT:2/2 -K:Kicker:1 R +K:Kicker 1 R T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | Execute$ TrigDamage | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, it deals 2 damage to target creature. SVar:TrigDamage:AB$DealDamage | Cost$ 0 | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ 2 SVar:Rarity:Common diff --git a/res/cardsfolder/u/urborg_emissary.txt b/res/cardsfolder/u/urborg_emissary.txt index 8673cfed567..57ded128593 100644 --- a/res/cardsfolder/u/urborg_emissary.txt +++ b/res/cardsfolder/u/urborg_emissary.txt @@ -3,7 +3,7 @@ ManaCost:2 B Types:Creature Human Wizard Text:no text PT:3/1 -K:Kicker:1 U +K:Kicker 1 U T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | Execute$ TrigKicker | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, return target permanent to its owner's hand. SVar:TrigKicker:AB$ChangeZone | Cost$ 0 | ValidTgts$ Permanent | TgtPrompt$ Select target permanent | Origin$ Battlefield | Destination$ Hand SVar:Rarity:Uncommon diff --git a/res/cardsfolder/u/urborg_skeleton.txt b/res/cardsfolder/u/urborg_skeleton.txt index 6d90f208074..9878294dcd5 100644 --- a/res/cardsfolder/u/urborg_skeleton.txt +++ b/res/cardsfolder/u/urborg_skeleton.txt @@ -3,7 +3,7 @@ ManaCost:B Types:Creature Skeleton Text:no text PT:0/1 -K:Kicker:3 +K:Kicker 3 A:AB$ Regenerate | Cost$ B | SpellDescription$ Regenerate CARDNAME. K:etbCounter:P1P1:1:isValid Card.kicked:If CARDNAME was kicked, it enters the battlefield with a +1/+1 counter on it. SVar:Rarity:Common diff --git a/res/cardsfolder/v/verduran_emissary.txt b/res/cardsfolder/v/verduran_emissary.txt index 3d7097a2859..0f4dfdee532 100644 --- a/res/cardsfolder/v/verduran_emissary.txt +++ b/res/cardsfolder/v/verduran_emissary.txt @@ -3,7 +3,7 @@ ManaCost:2 G Types:Creature Human Wizard Text:no text PT:2/3 -K:Kicker:1 R +K:Kicker 1 R T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | Execute$ TrigKicker | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, destroy target artifact. It can't be regenerated. SVar:TrigKicker:AB$Destroy | Cost$ 0 | ValidTgts$ Artifact | NoRegen$ True | TgtPrompt$ Select target artifact SVar:Rarity:Uncommon diff --git a/res/cardsfolder/v/vodalian_serpent.txt b/res/cardsfolder/v/vodalian_serpent.txt index 284d08a67e8..3197987a931 100644 --- a/res/cardsfolder/v/vodalian_serpent.txt +++ b/res/cardsfolder/v/vodalian_serpent.txt @@ -4,7 +4,7 @@ Types:Creature Serpent Text:no text PT:2/2 K:CARDNAME can't attack unless defending player controls an Island. -K:Kicker:2 +K:Kicker 2 K:etbCounter:P1P1:4:isValid Card.kicked:If CARDNAME was kicked, it enters the battlefield with four +1/+1 counters on it. SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/vodalian_serpent.jpg diff --git a/res/cardsfolder/w/waterspout_elemental.txt b/res/cardsfolder/w/waterspout_elemental.txt index 50c1e2788eb..f5290ce8d2b 100644 --- a/res/cardsfolder/w/waterspout_elemental.txt +++ b/res/cardsfolder/w/waterspout_elemental.txt @@ -4,11 +4,11 @@ Types:Creature Elemental Text:no text PT:3/4 K:Flying -K:Kicker:U +K:Kicker U T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | Execute$ TrigKicker | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, return all other creatures to their owners' hands and you skip your next turn. SVar:TrigKicker:AB$ChangeZoneAll | Cost$ 0 | ChangeType$ Creature.Other | Origin$ Battlefield | Destination$ Hand | SubAbility$ DBSkipTurn SVar:DBSkipTurn:DB$AddTurn | NumTurns$ 1 | Defined$ Opponent -SVar:RemRandomDeck:True +SVar:RemAIDeck:True SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/waterspout_elemental.jpg SetInfo:PLS|Rare|http://magiccards.info/scans/en/ps/38.jpg diff --git a/src/main/java/forge/Card.java b/src/main/java/forge/Card.java index 165696aece4..6d18d855664 100644 --- a/src/main/java/forge/Card.java +++ b/src/main/java/forge/Card.java @@ -2268,6 +2268,9 @@ public class Card extends GameEntity implements Comparable { sbLong.append("\r\n"); } else if (keyword.get(i).startsWith("Alternative Cost")) { sbLong.append("Has alternative cost."); + } else if (keyword.get(i).startsWith("Kicker")) { + final Cost cost = new Cost(this, keyword.get(i).substring(7), false); + sbLong.append("Kicker " + cost.toSimpleString() + "\r\n"); } else if (keyword.get(i).startsWith("Champion")) { final String k = this.getKeyword().get(i); final String[] kk = k.split(":"); diff --git a/src/main/java/forge/GameActionUtil.java b/src/main/java/forge/GameActionUtil.java index 917328e65ed..f351c389f9c 100644 --- a/src/main/java/forge/GameActionUtil.java +++ b/src/main/java/forge/GameActionUtil.java @@ -1996,18 +1996,38 @@ public final class GameActionUtil { return abilities; } - // Buyback + // Buyback, Kicker for (String keyword : source.getKeyword()) { if (keyword.startsWith("Buyback")) { - final SpellAbility newSA = original.copy(); + for (SpellAbility sa : abilities) { + final SpellAbility newSA = sa.copy(); newSA.setBasicSpell(false); newSA.setPayCosts(GameActionUtil.combineCosts(newSA, keyword.substring(8))); newSA.setManaCost(""); - newSA.setDescription(original.getDescription() + " (with Buyback)"); - newSA.setOptionalAdditionalCosts(new ArrayList()); + newSA.setDescription(sa.getDescription() + " (with Buyback)"); + ArrayList newoacs = new ArrayList(); + newoacs.addAll(sa.getOptionalAdditionalCosts()); + newSA.setOptionalAdditionalCosts(newoacs); newSA.addOptionalAdditionalCosts("Buyback"); - abilities.add(abilities.size(), newSA); - break; + newAbilities.add(newAbilities.size(), newSA); + } + abilities.addAll(0, newAbilities); + newAbilities.clear(); + } else if (keyword.startsWith("Kicker")) { + for (SpellAbility sa : abilities) { + final SpellAbility newSA = sa.copy(); + newSA.setBasicSpell(false); + newSA.setPayCosts(GameActionUtil.combineCosts(newSA, keyword.substring(7))); + newSA.setManaCost(""); + newSA.setDescription(sa.getDescription() + " (Kicked)"); + ArrayList newoacs = new ArrayList(); + newoacs.addAll(sa.getOptionalAdditionalCosts()); + newSA.setOptionalAdditionalCosts(newoacs); + newSA.addOptionalAdditionalCosts("Kicked"); + newAbilities.add(newAbilities.size(), newSA); + } + abilities.addAll(0, newAbilities); + newAbilities.clear(); } } diff --git a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java index 68f62b3fb97..36a431a1db1 100644 --- a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java +++ b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java @@ -44,7 +44,6 @@ import forge.Singletons; import forge.card.CardCharacteristics; import forge.card.abilityfactory.AbilityFactory; import forge.card.cost.Cost; -import forge.card.mana.ManaCost; import forge.card.mana.ManaCostShard; import forge.card.replacement.ReplacementEffect; import forge.card.replacement.ReplacementHandler; @@ -4218,7 +4217,7 @@ public class CardFactoryUtil { // TODO - kicker costs can only be mana right now i think? // TODO - this kicker only works for pemanents. maybe we can create an // optional cost class for buyback, kicker, that type of thing - final int kicker = CardFactoryUtil.hasKeyword(card, "Kicker"); + /*final int kicker = CardFactoryUtil.hasKeyword(card, "Kicker"); if (kicker != -1) { final SpellAbility kickedSpell = new Spell(card) { private static final long serialVersionUID = -1598664196463358630L; @@ -4253,7 +4252,7 @@ public class CardFactoryUtil { kickedSpell.setStackDescription(sb.toString()); card.addSpellAbility(kickedSpell); - } + }*/ if (CardFactoryUtil.hasKeyword(card, "Multikicker") != -1) { final int n = CardFactoryUtil.hasKeyword(card, "Multikicker"); diff --git a/src/main/java/forge/card/spellability/SpellAbility.java b/src/main/java/forge/card/spellability/SpellAbility.java index 4bfdaf2d18a..13f2e68d473 100644 --- a/src/main/java/forge/card/spellability/SpellAbility.java +++ b/src/main/java/forge/card/spellability/SpellAbility.java @@ -451,6 +451,17 @@ public abstract class SpellAbility { public boolean isBuyBackAbility() { return this.optionalAdditionalCosts.contains("Buyback"); } + + /** + *

+ * isKicked. + *

+ * + * @return a boolean. + */ + public boolean isKicked() { + return this.optionalAdditionalCosts.contains("Kicked"); + } /** *

diff --git a/src/main/java/forge/card/spellability/SpellPermanent.java b/src/main/java/forge/card/spellability/SpellPermanent.java index 3c77ce1c047..b786a6a1a39 100644 --- a/src/main/java/forge/card/spellability/SpellPermanent.java +++ b/src/main/java/forge/card/spellability/SpellPermanent.java @@ -439,8 +439,11 @@ public class SpellPermanent extends Spell { /** {@inheritDoc} */ @Override public void resolve() { - final Card c = this.getSourceCard(); + Card c = this.getSourceCard(); c.addController(this.getActivatingPlayer()); + if (this.isKicked()) { + c.setKicked(true); + } Singletons.getModel().getGameAction().moveTo(this.getActivatingPlayer().getZone(ZoneType.Battlefield), c); } }