mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-14 17:58:01 +00:00
Merge branch 'master' into master2
This commit is contained in:
@@ -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),
|
||||
|
||||
@@ -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", "");
|
||||
|
||||
@@ -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?
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
@@ -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.)
|
||||
|
||||
6
forge-gui/res/cardsfolder/upcoming/bulk_up.txt
Normal file
6
forge-gui/res/cardsfolder/upcoming/bulk_up.txt
Normal 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.)
|
||||
@@ -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."
|
||||
11
forge-gui/res/cardsfolder/upcoming/dropkick_bomber.txt
Normal file
11
forge-gui/res/cardsfolder/upcoming/dropkick_bomber.txt
Normal 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."
|
||||
@@ -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.
|
||||
8
forge-gui/res/cardsfolder/upcoming/electroduplicate.txt
Normal file
8
forge-gui/res/cardsfolder/upcoming/electroduplicate.txt
Normal 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.)
|
||||
7
forge-gui/res/cardsfolder/upcoming/erudite_wizard.txt
Normal file
7
forge-gui/res/cardsfolder/upcoming/erudite_wizard.txt
Normal 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.
|
||||
@@ -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.
|
||||
12
forge-gui/res/cardsfolder/upcoming/exemplar_of_light.txt
Normal file
12
forge-gui/res/cardsfolder/upcoming/exemplar_of_light.txt
Normal 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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
12
forge-gui/res/cardsfolder/upcoming/fishing_pole.txt
Normal file
12
forge-gui/res/cardsfolder/upcoming/fishing_pole.txt
Normal 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.)
|
||||
@@ -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.
|
||||
9
forge-gui/res/cardsfolder/upcoming/gilded_scuttler.txt
Normal file
9
forge-gui/res/cardsfolder/upcoming/gilded_scuttler.txt
Normal 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.)
|
||||
7
forge-gui/res/cardsfolder/upcoming/go_forth.txt
Normal file
7
forge-gui/res/cardsfolder/upcoming/go_forth.txt
Normal 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.
|
||||
7
forge-gui/res/cardsfolder/upcoming/goblin_surprise.txt
Normal file
7
forge-gui/res/cardsfolder/upcoming/goblin_surprise.txt
Normal 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.
|
||||
12
forge-gui/res/cardsfolder/upcoming/gornog_the_red_reaper.txt
Normal file
12
forge-gui/res/cardsfolder/upcoming/gornog_the_red_reaper.txt
Normal 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.
|
||||
10
forge-gui/res/cardsfolder/upcoming/grappling_kraken.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/grappling_kraken.txt
Normal 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.)
|
||||
8
forge-gui/res/cardsfolder/upcoming/guarded_heir.txt
Normal file
8
forge-gui/res/cardsfolder/upcoming/guarded_heir.txt
Normal 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.
|
||||
@@ -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.
|
||||
12
forge-gui/res/cardsfolder/upcoming/high_society_hunter.txt
Normal file
12
forge-gui/res/cardsfolder/upcoming/high_society_hunter.txt
Normal 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.
|
||||
7
forge-gui/res/cardsfolder/upcoming/hungry_megasloth.txt
Normal file
7
forge-gui/res/cardsfolder/upcoming/hungry_megasloth.txt
Normal 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.
|
||||
11
forge-gui/res/cardsfolder/upcoming/hurska_sweet_tooth.txt
Normal file
11
forge-gui/res/cardsfolder/upcoming/hurska_sweet_tooth.txt
Normal 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.
|
||||
@@ -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.)
|
||||
6
forge-gui/res/tokenscripts/w_3_3_knight.txt
Normal file
6
forge-gui/res/tokenscripts/w_3_3_knight.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:Knight Token
|
||||
ManaCost:no cost
|
||||
Colors:white
|
||||
Types:Creature Knight
|
||||
PT:3/3
|
||||
Oracle:
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user