- Converted the old Kicker keyword to a proper optional additional cost.

This commit is contained in:
Sloth
2012-09-09 20:17:54 +00:00
parent d5e9d38f11
commit 2b4fb8eb5d
42 changed files with 85 additions and 50 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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.

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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.

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -2268,6 +2268,9 @@ public class Card extends GameEntity implements Comparable<Card> {
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(":");

View File

@@ -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<String>());
newSA.setDescription(sa.getDescription() + " (with Buyback)");
ArrayList<String> newoacs = new ArrayList<String>();
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<String> newoacs = new ArrayList<String>();
newoacs.addAll(sa.getOptionalAdditionalCosts());
newSA.setOptionalAdditionalCosts(newoacs);
newSA.addOptionalAdditionalCosts("Kicked");
newAbilities.add(newAbilities.size(), newSA);
}
abilities.addAll(0, newAbilities);
newAbilities.clear();
}
}

View File

@@ -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");

View File

@@ -451,6 +451,17 @@ public abstract class SpellAbility {
public boolean isBuyBackAbility() {
return this.optionalAdditionalCosts.contains("Buyback");
}
/**
* <p>
* isKicked.
* </p>
*
* @return a boolean.
*/
public boolean isKicked() {
return this.optionalAdditionalCosts.contains("Kicked");
}
/**
* <p>

View File

@@ -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);
}
}