Merge branch 'master' into master2

This commit is contained in:
Anthony Calosa
2024-10-30 11:22:35 +08:00
33 changed files with 259 additions and 10 deletions

View File

@@ -49,6 +49,8 @@ public enum CounterEnumType {
AWAKENING("AWAKE", 0, 231, 79),
BAIT("BAIT", 120, 100, 60),
BLAZE("BLAZE", 255, 124, 82),
BLESSING("BLESS", 251, 0, 94),

View File

@@ -148,6 +148,10 @@ public class CostTapType extends CostPartWithList {
String type = this.getType();
boolean sameType = false;
if (type.equals("OriginalHost")) {
return ability.getOriginalHost().canTap();
}
if (type.contains(".sharesCreatureTypeWith")) {
sameType = true;
type = TextUtil.fastReplace(type, ".sharesCreatureTypeWith", "");

View File

@@ -607,10 +607,10 @@ public class MagicStack /* extends MyObservable */ implements Iterable<SpellAbil
}
} else if (sa.getApi() != null) {
AbilityUtils.handleRemembering(sa);
AbilityUtils.resolve(sa);
final Map<AbilityKey, Object> runParams = AbilityKey.mapFromCard(source);
runParams.put(AbilityKey.SpellAbility, sa);
game.getTriggerHandler().runTrigger(TriggerType.AbilityResolves, runParams, false);
AbilityUtils.resolve(sa);
} else {
sa.resolve();
// do creatures ETB from here?

View File

@@ -2,7 +2,7 @@ Name:Ace, Fearless Rebel
ManaCost:3 G
Types:Legendary Creature Human Rebel
PT:2/2
T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigImmediateTrig | OptionalDecider$ You | TriggerDescription$ Nitro-9 — Whenever CARDNAME attacks, you may sacrifice an artifact. When you do, put a +1/+1 counter on CARDNAME, then it fights up to one target creature defending player controls.
T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigImmediateTrig | TriggerDescription$ Nitro-9 — Whenever CARDNAME attacks, you may sacrifice an artifact. When you do, put a +1/+1 counter on CARDNAME, then it fights up to one target creature defending player controls.
SVar:TrigImmediateTrig:AB$ ImmediateTrigger | Cost$ Sac<1/Artifact> | Execute$ TrigPutCounter | TriggerDescription$ When you do, put a +1/+1 counter on CARDNAME, then it fights up to one target creature defending player controls.
SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ DBFight
SVar:DBFight:DB$ Fight | Defined$ Self | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Creature.ControlledBy Spawner>TriggeredDefendingPlayer | TgtPrompt$ Select up to one target creature defending player controls

View File

@@ -0,0 +1,12 @@
Name:Alesha, Who Laughs at Fate
ManaCost:1 B R
Types:Legendary Creature Human Warrior
PT:2/2
K:First Strike
T:Mode$ Attacks | ValidCard$ Creature.Self | Execute$ TrigPutCounter | TriggerDescription$ Whenever NICKNAME attacks, put a +1/+1 counter on it.
SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | CheckSVar$ RaidTest | Execute$ TrigChangeZone | TriggerDescription$ Raid — At the beginning of your end step, if you attacked this turn, return target creature card with mana value less than or equal to NICKNAME's power from your graveyard to the battlefield.
SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | ValidTgts$ Creature.YouOwn+cmcLEX | TgtPrompt$ Select target creature card with mana value less than or equal to Alesha's power
SVar:RaidTest:Count$AttackersDeclared
SVar:X:Count$CardPower
Oracle:First strike\nWhenever Alesha attacks, put a +1/+1 counter on it.\nRaid — At the beginning of your end step, if you attacked this turn, return target creature card with mana value less than or equal to Alesha's power from your graveyard to the battlefield.

View File

@@ -4,8 +4,8 @@ Types:Legendary Creature Jackal Warrior
PT:4/2
K:Trample
S:Mode$ OptionalAttackCost | ValidCard$ Card.Self | Trigger$ TrigExile | Cost$ Exert<1/CARDNAME> | Description$ You may exert CARDNAME as it attacks. When you do, exile the top two cards of your library. Until the end of your next turn, you may play those cards. (An exerted creature won't untap during your next untap step.)
SVar:TrigExile:DB$ Dig | Defined$ You | DigNum$ 2 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBEffect
SVar:TrigExile:DB$ Dig | Defined$ You | DigNum$ 2 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBEffect | SpellDescription$ When you do, exile the top two cards of your library. Until the end of your next turn, you may play those cards.
SVar:DBEffect:DB$ Effect | RememberObjects$ RememberedCard | StaticAbilities$ STPlay | SubAbility$ DBCleanup | ForgetOnMoved$ Exile | Duration$ UntilTheEndOfYourNextTurn
SVar:STPlay:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ Until the end of your next turn, you may play the exiled cards.
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
Oracle:Trample\nYou may exert Anep, Vizier of Hazoret as it attacks. When you do, exile the top two cards of your library. Until the end of your next turn, you may play those cards. (An exerted creature won't untap during your next untap step.)
Oracle:Trample\nYou may exert Anep, Vizier of Hazoret as it attacks. When you do, exile the top two cards of your library. Until the end of your next turn, you may play those cards. (An exerted creature won't untap during your next untap step.)

View File

@@ -0,0 +1,6 @@
Name:Bulk Up
ManaCost:1 R
Types:Instant
A:SP$ Pump | ValidTgts$ Creature | NumAtt$ Double | StackDescription$ REP target creature_{c:Targeted} | SpellDescription$ Double target creature's power until end of turn.
K:Flashback:4 R R
Oracle:Double target creature's power until end of turn.\nFlashback {4}{R}{R} (You may cast this card from your graveyard for its flashback cost. Then exile it.)

View File

@@ -0,0 +1,11 @@
Name:Dionus, Elvish Archdruid
ManaCost:3 G
Types:Legendary Creature Elf Druid
PT:2/3
S:Mode$ Continuous | Affected$ Elf.YouCtrl | AddTrigger$ TrigTapped | Description$ Elves you control have "Whenever this creature becomes tapped during your turn, untap it and put a +1/+1 counter on it. This ability triggers only once each turn."
SVar:TrigTapped:Mode$ Taps | ValidCard$ Card.Self | TriggerZones$ Battlefield | ActivationLimit$ 1 | PlayerTurn$ True | Execute$ TrigUntap | TriggerDescription$ Whenever this creature becomes tapped during your turn, untap it and put a +1/+1 counter on it. This ability triggers only once each turn.
SVar:TrigUntap:DB$ Untap | Defined$ Self | SubAbility$ DBPutCounter
SVar:DBPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1
DeckHas:Ability$Counters
DeckHints:Type$Elf
Oracle:Elves you control have "Whenever this creature becomes tapped during your turn, untap it and put a +1/+1 counter on it. This ability triggers only once each turn."

View File

@@ -0,0 +1,11 @@
Name:Dropkick Bomber
ManaCost:2 R
Types:Creature Goblin Warrior
PT:2/3
S:Mode$ Continuous | Affected$ Goblin.Other+YouCtrl | AddPower$ 1 | AddToughness$ 1 | Description$ Other Goblins you control get +1/+1.
A:AB$ Animate | Cost$ R | ValidTgts$ Goblin.Other+YouCtrl | TgtPrompt$ Select another target Goblin you control | Keywords$ Flying | Triggers$ TrigDamageDealtOnce | SpellDescription$ Until end of turn, another target Goblin you control gains flying and "When this creature deals combat damage, sacrifice it."
SVar:TrigDamageDealtOnce:Mode$ DamageDealtOnce | CombatDamage$ True | ValidSource$ Card.Self | Execute$ TrigSac | TriggerDescription$ When this creature deals combat damage, sacrifice it.
SVar:TrigSac:DB$ Sacrifice
SVar:PlayMain1:TRUE
SVar:BuffedBy:Goblin
Oracle:Other Goblins you control get +1/+1.\n{R}: Until end of turn, another target Goblin you control gains flying and "When this creature deals combat damage, sacrifice it."

View File

@@ -0,0 +1,9 @@
Name:Eidolon of Astral Winds
ManaCost:2 W
Types:Enchantment Creature Spirit
PT:2/4
K:Vigilance
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self,Enchantment.YouCtrl | Execute$ TrigAnimate | TriggerDescription$ Constellation — Whenever CARDNAME or another enchantment you control enters, choose target creature you control. Until end of turn, that creature has base power and toughness 4/4 and gains flying.
SVar:TrigAnimate:DB$ Animate | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | Power$ 4 | Toughness$ 4 | Keywords$ Flying
DeckHints:Type$Enchantment
Oracle:Vigilance\nConstellation — Whenever Eidolon of Astral Winds or another enchantment you control enters, choose target creature you control. Until end of turn, that creature has base power and toughness 4/4 and gains flying.

View File

@@ -0,0 +1,8 @@
Name:Electroduplicate
ManaCost:2 R
Types:Sorcery
K:Flashback:2 R R
A:SP$ CopyPermanent | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | AddKeywords$ Haste | AddTriggers$ TrigEOT | SpellDescription$ Create a token that's a copy of target creature you control, except it has haste and "At the beginning of the end step, sacrifice this token."
SVar:TrigEOT:Mode$ Phase | Phase$ End of Turn | TriggerZones$ Battlefield | Execute$ TrigSac | TriggerDescription$ At the beginning of the end step, sacrifice this token.
SVar:TrigSac:DB$ Sacrifice | SacValid$ Self
Oracle:Create a token that's a copy of target creature you control, except it has haste and "At the beginning of the end step, sacrifice this token."\nFlashback {2}{R}{R} (You may cast this card from your graveyard for its flashback cost. Then exile it.)

View File

@@ -0,0 +1,7 @@
Name:Erudite Wizard
ManaCost:2 U
Types:Creature Human Wizard
PT:2/3
T:Mode$ Drawn | ValidCard$ Card.YouCtrl | Number$ 2 | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever you draw your second card each turn, put a +1/+1 counter on this creature.
SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1
Oracle:Whenever you draw your second card each turn, put a +1/+1 counter on this creature.

View File

@@ -0,0 +1,13 @@
Name:Evereth, Viceroy of Plunder
ManaCost:2 B
Types:Legendary Creature Vampire Soldier
PT:2/2
K:Flying
A:AB$ PutCounter | Cost$ Sac<1/Creature.Other;Artifact.Other/another creature or artifact> | CounterType$ P1P1 | CounterNum$ 1 | SorcerySpeed$ True | SubAbility$ DBPump | SpellDescription$ Put a +1/+1 counter on CARDNAME. If the sacrificed permanent was a Treasure, NICKNAME gains lifelink until end of turn. Activate only as a sorcery.
SVar:DBPump:DB$ Pump | Defined$ Self | ConditionCheckSVar$ X | ConditionSVarCompare$ GE1 | KW$ Lifelink
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | OptionalDecider$ TriggeredCardController | Execute$ TrigImmediateTrig | TriggerDescription$ When NICKNAME dies, you may pay {1}{B/R}. When you do, NICKNAME deals damage equal to its power to each opponent.
SVar:TrigImmediateTrig:AB$ ImmediateTrigger | Cost$ 1 BR | Execute$ TrigDealDamage | SpellDescription$ When you do, NICKNAME deals damage equal to its power to each opponent.
SVar:TrigDealDamage:DB$ DealDamage | Defined$ Opponent | NumDmg$ Y
SVar:X:Sacrificed$Valid Treasure
SVar:Y:Count$CardPower
Oracle:Flying\nSacrifice another creature or artifact: Put a +1/+1 counter on Evereth, Viceroy of Plunder. If the sacrificed permanent was a Treasure, Evereth gains lifelink until end of turn. Activate only as a sorcery.\nWhen Evereth dies, you may pay {1}{B/R}. When you do, Evereth deals damage equal to its power to each opponent.

View File

@@ -0,0 +1,12 @@
Name:Exemplar of Light
ManaCost:2 W W
Types:Creature Angel
PT:3/3
K:Flying
T:Mode$ LifeGained | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever you gain life, put a +1/+1 counter on this creature.
SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1
T:Mode$ CounterAddedOnce | CounterType$ P1P1 | ValidSource$ You | ValidCard$ Card.Self | TriggerZones$ Battlefield | ActivationLimit$ 1 | Execute$ TrigDraw | TriggerDescription$ Whenever you put one or more +1/+1 counters on this creature, draw a card. This ability triggers only once each turn.
SVar:TrigDraw:DB$ Draw
DeckHas:Ability$Counters
DeckHints:Ability$LifeGain
Oracle:Flying\nWhenever you gain life, put a +1/+1 counter on this creature.\nWhenever you put one or more +1/+1 counters on this creature, draw a card. This ability triggers only once each turn.

View File

@@ -0,0 +1,8 @@
Name:Faithful Pikemaster
ManaCost:3 W
Types:Creature Rhino Monk Soldier
PT:3/4
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigScry | TriggerDescription$ When CARDNAME enters, scry 2. (Look at the top two cards of your library, then put any number of them on the bottom and the rest on top in any order.)
SVar:TrigScry:DB$ Scry | ScryNum$ 2
S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ First Strike | Condition$ PlayerTurn | Description$ As long as it's your turn, CARDNAME has first strike.
Oracle:When Faithful Pikemaster enters, scry 2. (Look at the top two cards of your library, then put any number of them on the bottom and the rest on top in any order.)\nAs long as it's your turn, Faithful Pikemaster has first strike.

View File

@@ -0,0 +1,6 @@
Name:Fiery Annihilation
ManaCost:2 R
Types:Instant
A:SP$ DealDamage | NumDmg$ 5 | ValidTgts$ Creature | TgtPrompt$ Select target creature | ReplaceDyingDefined$ Targeted | SubAbility$ DBChangeZone | SpellDescription$ CARDNAME deals 5 damage to target creature. Exile up to one target Equipment attached to that creature. If that creature would die this turn, exile it instead.
SVar:DBChangeZone:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Equipment.AttachedTo ParentTarget | TargetMin$ 0 | TargetMax$ 1
Oracle:Fiery Annihilation deals 5 damage to target creature. Exile up to one target Equipment attached to that creature. If that creature would die this turn, exile it instead.

View File

@@ -0,0 +1,12 @@
Name:Fishing Pole
ManaCost:1
Types:Artifact Equipment
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddAbility$ FishingPoleBaiting | Description$ Equipped creature has "{1}, {T}, Tap CARDNAME: Put a bait counter on CARDNAME."
SVar:FishingPoleBaiting:AB$ PutCounter | Cost$ 1 T tapXType<1/OriginalHost/Fishing Pole> | CounterType$ BAIT | CounterNum$ 1 | Defined$ OriginalHost | SpellDescription$ Put a bait counter on ORIGINALHOST.
T:Mode$ Untaps | ValidCard$ Creature.EquippedBy | TriggerZones$ Battlefield | Execute$ TrigRemoveCounter | TriggerDescription$ Whenever equipped creature becomes untapped, remove a bait counter from this Equipment. If you do, create a 1/1 blue Fish creature token.
SVar:TrigRemoveCounter:DB$ RemoveCounter | Defined$ Self | CounterType$ BAIT | CounterNum$ 1 | RememberRemoved$ True | SubAbility$ DBToken
SVar:DBToken:DB$ Token | TokenAmount$ 1 | ConditionCheckSVar$ X | ConditionSVarCompare$ GE1 | TokenScript$ u_1_1_fish | TokenOwner$ You | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:X:Count$RememberedSize
K:Equip:2
Oracle:Equipped creature has "{1}, {T}, Tap Fishing Pole: Put a bait counter on Fishing Pole."\nWhenever equipped creature becomes untapped, remove a bait counter from this Equipment. If you do, create a 1/1 blue Fish creature token.\nEquip {2} ({2}: Attach to target creature you control. Equip only as a sorcery.)

View File

@@ -0,0 +1,14 @@
Name:Fumulus, the Infestation
ManaCost:3 B
Types:Legendary Creature Vampire Insect
PT:2/2
K:Flying
K:Deathtouch
T:Mode$ Sacrificed | ValidCard$ Creature.nonToken | Execute$ TrigToken | TriggerZones$ Battlefield | TriggerDescription$ Whenever a player sacrifices a nontoken creature, create a 1/1 black Insect creature token with flying.
SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ b_1_1_insect_flying | TokenOwner$ You
T:Mode$ Attacks | ValidCard$ Insect.YouCtrl,Leech.YouCtrl,Slug.YouCtrl,Worm.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigLoseLife | TriggerDescription$ Whenever an Insect, Leech, Slug, or Worm you control attacks, defending player loses 1 life and you gain 1 life.
SVar:TrigLoseLife:DB$ LoseLife | Defined$ TriggeredDefendingPlayer | LifeAmount$ 1 | SubAbility$ DBGainLife
SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 1
SVar:PlayMain1:TRUE
DeckHints:Type$Insect|Leech|Slug|Worm
Oracle:Flying, deathtouch\nWhenever a player sacrifices a nontoken creature, create a 1/1 black Insect creature token with flying.\nWhenever an Insect, Leech, Slug, or Worm you control attacks, defending player loses 1 life and you gain 1 life.

View File

@@ -0,0 +1,9 @@
Name:Gilded Scuttler
ManaCost:2 U
Types:Artifact Creature Crab
PT:1/3
S:Mode$ CantBlockBy | ValidAttacker$ Creature.Self | Description$ CARDNAME can't be blocked.
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigTap | TriggerDescription$ When CARDNAME enters, tap target creature an opponent controls and put a stun counter on it. (If a permanent with a stun counter would become untapped, remove one from it instead.)
SVar:TrigTap:DB$ Tap | ValidTgts$ Creature.OppCtrl | SubAbility$ DBCounter
SVar:DBCounter:DB$ PutCounter | Defined$ Targeted | CounterType$ Stun | CounterNum$ 1
Oracle:Gilded Scuttler can't be blocked.\nWhen Gilded Scuttler enters, tap target creature an opponent controls and put a stun counter on it. (If a permanent with a stun counter would become untapped, remove one from it instead.)

View File

@@ -0,0 +1,7 @@
Name:Go Forth
ManaCost:G
Types:Instant
A:SP$ Charm | Choices$ DBSearch,DBPump | CharmNum$ 1
SVar:DBSearch:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Land.Basic | ChangeNum$ 1 | SpellDescription$ Search your library for a basic land card, reveal it, put it into your hand, then shuffle.
SVar:DBPump:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +2 | NumDef$ +2 | SpellDescription$ Target creature gets +2/+2 until end of turn.
Oracle:Choose one —\n• Search your library for a basic land card, reveal it, put it into your hand, then shuffle.\n• Target creature gets +2/+2 until end of turn.

View File

@@ -0,0 +1,7 @@
Name:Goblin Surprise
ManaCost:2 R
Types:Instant
A:SP$ Charm | Choices$ DBPumpAll,DBToken | CharmNum$ 1
SVar:DBPumpAll:DB$ PumpAll | ValidCards$ Creature.YouCtrl | NumAtt$ +2 | SpellDescription$ Creatures you control get +2/+0 until end of turn.
SVar:DBToken:DB$ Token | TokenAmount$ 2 | TokenScript$ r_1_1_goblin | SpellDescription$ Create two 1/1 red Goblin creature tokens.
Oracle:Choose one —\n• Creatures you control get +2/+0 until end of turn.\n• Create two 1/1 red Goblin creature tokens.

View File

@@ -0,0 +1,12 @@
Name:Gornog, the Red Reaper
ManaCost:2 R
Types:Legendary Creature Minotaur Warrior
PT:2/3
K:Haste
S:Mode$ CantBlockBy | ValidAttacker$ Creature.Warrior | ValidBlocker$ Creature.Coward | Description$ Cowards can't block Warriors.
T:Mode$ AttackersDeclaredOneTarget | AttackedTarget$ Player | ValidAttackers$ Creature.Warrior+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigAnimate | TriggerDescription$ Whenever one or more Warriors you control attack a player, target creature that player controls becomes a Coward.
SVar:TrigAnimate:DB$ Animate | ValidTgts$ Creature | TargetsWithDefinedController$ TriggeredAttackedTarget | TgtPrompt$ Select target creature that player controls | Types$ Coward | RemoveCreatureTypes$ True | Duration$ Permanent
S:Mode$ Continuous | Affected$ Creature.Warrior+attacking+YouCtrl | AddPower$ X | Description$ Attacking Warriors you control get +X/+0, where X is the number of Cowards your opponents control.
SVar:X:Count$Valid Coward.OppCtrl
SVar:PlayMain1:TRUE
Oracle:Haste\nCowards can't block Warriors.\nWhenever one or more Warriors you control attack a player, target creature that player controls becomes a Coward.\nAttacking Warriors you control get +X/+0, where X is the number of Cowards your opponents control.

View File

@@ -0,0 +1,10 @@
Name:Grappling Kraken
ManaCost:4 U U
Types:Creature Kraken
PT:5/6
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Land.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigTap | TriggerDescription$ Landfall — Whenever a land you control enters, tap target creature an opponent controls and put a stun counter on it. (If a permanent with a stun counter would become untapped, remove one from it instead.)
SVar:TrigTap:DB$ Tap | ValidTgts$ Creature.OppCtrl | SubAbility$ DBCounter
SVar:DBCounter:DB$ PutCounter | Defined$ Targeted | CounterType$ Stun | CounterNum$ 1
DeckHas:Ability$Counters
SVar:BuffedBy:Land
Oracle:Landfall — Whenever a land you control enters, tap target creature an opponent controls and put a stun counter on it. (If a permanent with a stun counter would become untapped, remove one from it instead.)

View File

@@ -0,0 +1,8 @@
Name:Guarded Heir
ManaCost:5 W
Types:Creature Human Noble
PT:1/1
K:Lifelink
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When this creature enters, create two 3/3 white Knight creature tokens.
SVar:TrigToken:DB$ Token | TokenAmount$ 2 | TokenScript$ w_3_3_knight | TokenOwner$ You
Oracle:Lifelink (Damage dealt by this creature also causes you to gain that much life.)\nWhen this creature enters, create two 3/3 white Knight creature tokens.

View File

@@ -0,0 +1,8 @@
Name:High Fae Trickster
ManaCost:3 U
Types:Creature Faerie Wizard
PT:4/2
K:Flash
K:Flying
S:Mode$ CastWithFlash | ValidCard$ Card | ValidSA$ Spell | Caster$ You | Description$ You may cast spells as though they had flash.
Oracle:Flash (You may cast this spell any time you could cast an instant.)\nFlying\nYou may cast spells as though they had flash.

View File

@@ -0,0 +1,12 @@
Name:High-Society Hunter
ManaCost:3 B B
Types:Creature Vampire Noble
PT:5/3
K:Flying
T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever this creature attacks, you may sacrifice another creature. If you do, put a +1/+1 counter on this creature.
SVar:TrigPutCounter:AB$ PutCounter | Cost$ Sac<1/Creature.Other/another creature> | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1
T:Mode$ ChangesZone | ValidCard$ Creature.nonToken+Other | Origin$ Battlefield | Destination$ Graveyard | Execute$ TrigDraw | TriggerZones$ Battlefield | TriggerDescription$ Whenever another nontoken creature dies, draw a card.
SVar:TrigDraw:DB$ Draw
SVar:HasAttackEffect:TRUE
DeckHas:Ability$Counters|Sacrifice
Oracle:Flying\nWhenever this creature attacks, you may sacrifice another creature. If you do, put a +1/+1 counter on this creature.\nWhenever another nontoken creature dies, draw a card.

View File

@@ -0,0 +1,7 @@
Name:Hungry Megasloth
ManaCost:2 G
Types:Creature Sloth Beast
PT:3/3
K:Reach
A:AB$ PutCounter | Cost$ 2 T | CounterType$ P1P1 | CounterNum$ 1 | SpellDescription$ Put a +1/+1 counter on CARDNAME.
Oracle:Reach (This creature can block creatures with flying.)\n{2}, {T}: Put a +1/+1 counter on Hungry Megasloth.

View File

@@ -0,0 +1,11 @@
Name:Hurska Sweet-Tooth
ManaCost:2 G
Types:Legendary Creature Bear
PT:3/3
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ Whenever CARDNAME attacks, create a Food token. (It's an artifact with "{2}, {T}, Sacrifice this artifact: You gain 3 life.")
SVar:TrigToken:DB$ Token | TokenScript$ c_a_food_sac
T:Mode$ LifeGained | ValidPlayer$ You | Execute$ TrigImmediateTrig | TriggerZones$ Battlefield | TriggerDescription$ Whenever you gain life, you may pay {G/W}. When you do, target creature gets +X/+X until end of turn, where X is the amount of life you gained.
SVar:TrigImmediateTrig:AB$ ImmediateTrigger | Cost$ GW | Execute$ TrigPump | TriggerDescription$ When you do, target creature gets +X/+X until end of turn, where X is the amount of life you gained.
SVar:TrigPump:DB$ Pump | ValidTgts$ Creature | NumAtt$ Spawner>TriggerCount$LifeAmount | NumDef$ Spawner>TriggerCount$LifeAmount
DeckHas:Ability$Sacrifice|Token & Type$Food|Artifact
Oracle:Whenever Hurska Sweet-Tooth attacks, create a Food token. (It's an artifact with "{2}, {T}, Sacrifice this artifact: You gain 3 life.")\nWhenever you gain life, you may pay {G/W}. When you do, target creature gets +X/+X until end of turn, where X is the amount of life you gained.

View File

@@ -0,0 +1,8 @@
Name:Inspiration from Beyond
ManaCost:2 U
Types:Sorcery
A:SP$ Mill | NumCards$ 3 | Defined$ You | SubAbility$ DBChangeZone | SpellDescription$ Mill three cards, then return an instant or sorcery card from your graveyard to your hand.
SVar:DBChangeZone:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | Mandatory$ True | ChangeType$ Instant.YouOwn,Sorcery.YouOwn | ChangeNum$ 1 | Hidden$ True
K:Flashback:5 U U
DeckHas:Ability$Graveyard
Oracle:Mill three cards, then return an instant or sorcery card from your graveyard to your hand.\nFlashback {5}{U}{U} (You may cast this card from your graveyard for its flashback cost. Then exile it.)

View File

@@ -0,0 +1,6 @@
Name:Knight Token
ManaCost:no cost
Colors:white
Types:Creature Knight
PT:3/3
Oracle:

View File

@@ -1141,16 +1141,18 @@ public class HumanCostDecision extends CostDecisionMakerBase {
String type = cost.getType();
if (cost.payCostFromSource()) {
if (source.getController() == ability.getActivatingPlayer() && source.canBeSacrificedBy(ability, isEffect())) {
return mandatory || confirmAction(cost, Localizer.getInstance().getMessage("lblSacrificeCardConfirm", CardTranslation.getTranslatedName(source.getName()))) ? PaymentDecision.card(source) : null;
if (source.getController() == ability.getActivatingPlayer() && source.canBeSacrificedBy(ability, isEffect()) &&
(mandatory || confirmAction(cost, Localizer.getInstance().getMessage("lblSacrificeCardConfirm", CardTranslation.getTranslatedName(source.getName()))))) {
return PaymentDecision.card(source);
}
return null;
}
if (type.equals("OriginalHost")) {
Card host = ability.getOriginalHost();
if (host.getController() == ability.getActivatingPlayer() && host.canBeSacrificedBy(ability, isEffect())) {
return confirmAction(cost, Localizer.getInstance().getMessage("lblSacrificeCardConfirm", CardTranslation.getTranslatedName(host.getName()))) ? PaymentDecision.card(host) : null;
if (host.getController() == ability.getActivatingPlayer() && host.canBeSacrificedBy(ability, isEffect()) &&
confirmAction(cost, Localizer.getInstance().getMessage("lblSacrificeCardConfirm", CardTranslation.getTranslatedName(host.getName())))) {
return PaymentDecision.card(host);
}
return null;
}
@@ -1218,6 +1220,14 @@ public class HumanCostDecision extends CostDecisionMakerBase {
String type = cost.getType();
final String amount = cost.getAmount();
if (type.equals("OriginalHost")) {
Card host = ability.getOriginalHost();
if (host.canTap()) {
return PaymentDecision.card(host);
}
return null;
}
boolean sameType = false;
if (type.contains(".sharesCreatureTypeWith")) {
sameType = true;
@@ -1232,8 +1242,7 @@ public class HumanCostDecision extends CostDecisionMakerBase {
type = TextUtil.fastReplace(type, TextUtil.concatNoSpace("+withTotalPowerGE", totalP), "");
}
CardCollection typeList = CardLists.getValidCards(player.getCardsIn(ZoneType.Battlefield), type.split(";"), player,
source, ability);
CardCollection typeList = CardLists.getValidCards(player.getCardsIn(ZoneType.Battlefield), type.split(";"), player, source, ability);
typeList = CardLists.filter(typeList, ability.isCrew() ? Presets.CAN_CREW : Presets.CAN_TAP);
Integer c = null;