mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
Merge remote-tracking branch 'remotes/core/master' into newBranch
This commit is contained in:
@@ -6,6 +6,8 @@ import forge.util.ImageUtil;
|
|||||||
import forge.util.TextUtil;
|
import forge.util.TextUtil;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -119,8 +121,11 @@ public final class ImageKeys {
|
|||||||
// if there's a 1st art variant try without it for .fullborder images
|
// if there's a 1st art variant try without it for .fullborder images
|
||||||
file = findFile(dir, TextUtil.fastReplace(fullborderFile, "1.fullborder", ".fullborder"));
|
file = findFile(dir, TextUtil.fastReplace(fullborderFile, "1.fullborder", ".fullborder"));
|
||||||
if (file != null) { return file; }
|
if (file != null) { return file; }
|
||||||
// if there's a 1st art variant try without it for .full images
|
// if there's an art variant try without it for .full images
|
||||||
file = findFile(dir, TextUtil.fastReplace(filename, "1.full", ".full"));
|
file = findFile(dir, filename.replaceAll("[0-9].full]",".full"));
|
||||||
|
if (file != null) { return file; }
|
||||||
|
// if there's a 1st art variant try with it for .full images
|
||||||
|
file = findFile(dir, filename.replaceAll("[0-9]*.full", "1.full"));
|
||||||
if (file != null) { return file; }
|
if (file != null) { return file; }
|
||||||
}
|
}
|
||||||
//if an image, like phenomenon or planes is missing .full in their filenames but you have an existing images that have .full/.fullborder
|
//if an image, like phenomenon or planes is missing .full in their filenames but you have an existing images that have .full/.fullborder
|
||||||
|
|||||||
@@ -148,21 +148,30 @@ public class CountersPutEffect extends SpellAbilityEffect {
|
|||||||
if (sa.hasParam("Bolster")) {
|
if (sa.hasParam("Bolster")) {
|
||||||
CardCollection creatsYouCtrl = CardLists.filter(activator.getCardsIn(ZoneType.Battlefield), Presets.CREATURES);
|
CardCollection creatsYouCtrl = CardLists.filter(activator.getCardsIn(ZoneType.Battlefield), Presets.CREATURES);
|
||||||
CardCollection leastToughness = new CardCollection(Aggregates.listWithMin(creatsYouCtrl, CardPredicates.Accessors.fnGetDefense));
|
CardCollection leastToughness = new CardCollection(Aggregates.listWithMin(creatsYouCtrl, CardPredicates.Accessors.fnGetDefense));
|
||||||
tgtCards.addAll(pc.chooseCardsForEffect(leastToughness, sa, Localizer.getInstance().getMessage("lblChooseACreatureWithLeastToughness"), 1, 1, false));
|
tgtCards.addAll(activator.getController().chooseCardsForEffect(leastToughness, sa, Localizer.getInstance().getMessage("lblChooseACreatureWithLeastToughness"), 1, 1, false));
|
||||||
tgtObjects.addAll(tgtCards);
|
tgtObjects.addAll(tgtCards);
|
||||||
} else if (sa.hasParam("Choices")) {
|
} else if (sa.hasParam("Choices")) {
|
||||||
ZoneType choiceZone = ZoneType.Battlefield;
|
ZoneType choiceZone = ZoneType.Battlefield;
|
||||||
if (sa.hasParam("ChoiceZone")) {
|
if (sa.hasParam("ChoiceZone")) {
|
||||||
choiceZone = ZoneType.smartValueOf(sa.getParam("ChoiceZone"));
|
choiceZone = ZoneType.smartValueOf(sa.getParam("ChoiceZone"));
|
||||||
}
|
}
|
||||||
|
Player chooser = activator;
|
||||||
|
if (sa.hasParam("Chooser")) {
|
||||||
|
List<Player> choosers = AbilityUtils.getDefinedPlayers(sa.getHostCard(), sa.getParam("Chooser"), sa);
|
||||||
|
if (choosers.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
chooser = choosers.get(0);
|
||||||
|
}
|
||||||
|
|
||||||
CardCollection choices = new CardCollection(game.getCardsIn(choiceZone));
|
CardCollection choices = new CardCollection(game.getCardsIn(choiceZone));
|
||||||
|
|
||||||
int n = sa.hasParam("ChoiceAmount") ? Integer.parseInt(sa.getParam("ChoiceAmount")) : 1;
|
int n = sa.hasParam("ChoiceAmount") ? Integer.parseInt(sa.getParam("ChoiceAmount")) : 1;
|
||||||
|
|
||||||
choices = CardLists.getValidCards(choices, sa.getParam("Choices"), activator, card);
|
choices = CardLists.getValidCards(choices, sa.getParam("Choices"), activator, card, sa);
|
||||||
|
|
||||||
String title = sa.hasParam("ChoiceTitle") ? sa.getParam("ChoiceTitle") : Localizer.getInstance().getMessage("lblChooseaCard") + " ";
|
String title = sa.hasParam("ChoiceTitle") ? sa.getParam("ChoiceTitle") : Localizer.getInstance().getMessage("lblChooseaCard") + " ";
|
||||||
tgtObjects.addAll(new CardCollection(pc.chooseCardsForEffect(choices, sa, title, n, n, !sa.hasParam("ChoiceOptional"))));
|
tgtObjects.addAll(new CardCollection(chooser.getController().chooseCardsForEffect(choices, sa, title, n, n, sa.hasParam("ChoiceOptional"))));
|
||||||
} else {
|
} else {
|
||||||
tgtObjects.addAll(getDefinedOrTargeted(sa, "Defined"));
|
tgtObjects.addAll(getDefinedOrTargeted(sa, "Defined"));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6350,10 +6350,13 @@ public class Card extends GameEntity implements Comparable<Card> {
|
|||||||
|
|
||||||
public final void addGoad(Long timestamp, final Player p) {
|
public final void addGoad(Long timestamp, final Player p) {
|
||||||
goad.put(timestamp, p);
|
goad.put(timestamp, p);
|
||||||
|
updateAbilityTextForView();
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void removeGoad(Long timestamp) {
|
public final void removeGoad(Long timestamp) {
|
||||||
goad.remove(timestamp);
|
if (goad.remove(timestamp) != null) {
|
||||||
|
updateAbilityTextForView();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public final boolean isGoaded() {
|
public final boolean isGoaded() {
|
||||||
|
|||||||
@@ -2,9 +2,8 @@ Name:Eye of Doom
|
|||||||
ManaCost:4
|
ManaCost:4
|
||||||
Types:Artifact
|
Types:Artifact
|
||||||
T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ TrigChoose | TriggerDescription$ When CARDNAME enters the battlefield, each player chooses a nonland permanent and puts a doom counter on it.
|
T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ TrigChoose | TriggerDescription$ When CARDNAME enters the battlefield, each player chooses a nonland permanent and puts a doom counter on it.
|
||||||
SVar:TrigChoose:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ DBChoose
|
SVar:TrigChoose:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ DBPutCounter
|
||||||
SVar:DBChoose:DB$ ChooseCard | Defined$ Player.IsRemembered | Choices$ Permanent.nonLand | AILogic$ OppPreferred | Mandatory$ True | SubAbility$ DBPutCounter
|
SVar:DBPutCounter:DB$ PutCounter | Chooser$ Remembered | Choices$ Permanent.nonLand | CounterType$ DOOM | CounterNum$ 1
|
||||||
SVar:DBPutCounter:DB$ PutCounter | Defined$ ChosenCard | CounterType$ DOOM | CounterNum$ 1
|
|
||||||
A:AB$ DestroyAll | Cost$ 2 T Sac<1/CARDNAME> | ValidCards$ Permanent.counters_GE1_DOOM | SpellDescription$ Destroy each permanent with a doom counter.
|
A:AB$ DestroyAll | Cost$ 2 T Sac<1/CARDNAME> | ValidCards$ Permanent.counters_GE1_DOOM | SpellDescription$ Destroy each permanent with a doom counter.
|
||||||
AI:RemoveDeck:All
|
AI:RemoveDeck:All
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/eye_of_doom.jpg
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/eye_of_doom.jpg
|
||||||
|
|||||||
@@ -3,9 +3,8 @@ ManaCost:2 R
|
|||||||
Types:Creature Insect
|
Types:Creature Insect
|
||||||
PT:2/2
|
PT:2/2
|
||||||
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigRepeat | TriggerDescription$ At the beginning of your end step, each player may put two +1/+1 counters on a creature they control. Goad each creature that had counters put on it this way. (Until your next turn, those creatures attack each combat if able and attack a player other than you if able.)
|
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigRepeat | TriggerDescription$ At the beginning of your end step, each player may put two +1/+1 counters on a creature they control. Goad each creature that had counters put on it this way. (Until your next turn, those creatures attack each combat if able and attack a player other than you if able.)
|
||||||
SVar:TrigRepeat:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ DBChoose | SubAbility$ DBGoad
|
SVar:TrigRepeat:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ DBPutCounter | SubAbility$ DBGoad
|
||||||
SVar:DBChoose:DB$ ChooseCard | Defined$ Player.IsRemembered | Amount$ 1 | MinAmount$ 0 | Choices$ Creature.RememberedPlayerCtrl | SubAbility$ DBPutCounter
|
SVar:DBPutCounter:DB$ PutCounter | Chooser$ Remembered | Choices$ Creature.RememberedPlayerCtrl | ChoiceOptional$ True | CounterType$ P1P1 | CounterNum$ 2 | RememberCards$ True
|
||||||
SVar:DBPutCounter:DB$ PutCounter | Defined$ ChosenCard | CounterType$ P1P1 | CounterNum$ 2 | RememberCards$ True
|
|
||||||
SVar:DBGoad:DB$ Goad | Defined$ Remembered | SubAbility$ DBCleanup
|
SVar:DBGoad:DB$ Goad | Defined$ Remembered | SubAbility$ DBCleanup
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearChosenCard$ True
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
Oracle:At the beginning of your end step, each player may put two +1/+1 counters on a creature they control. Goad each creature that had counters put on it this way. (Until your next turn, those creatures attack each combat if able and attack a player other than you if able.)
|
Oracle:At the beginning of your end step, each player may put two +1/+1 counters on a creature they control. Goad each creature that had counters put on it this way. (Until your next turn, those creatures attack each combat if able and attack a player other than you if able.)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
Name:Bonder's Enclave
|
Name:Bonders' Enclave
|
||||||
ManaCost:no cost
|
ManaCost:no cost
|
||||||
Types:Land
|
Types:Land
|
||||||
A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C}.
|
A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C}.
|
||||||
|
|||||||
@@ -12,4 +12,4 @@ SVar:X:Remembered$CardManaCost
|
|||||||
A:AB$ Effect | Cost$ SubCounter<6/LOYALTY> | Planeswalker$ True | Ultimate$ True | Name$ Emblem - Narset of the Ancient Way | Image$ emblem_narset_of_the_ancient_way | Triggers$ TrigSpellCast | SVars$ EffSpellCast | Duration$ Permanent | Duration$ Permanent | AILogic$ Always | SpellDescription$ You get an emblem with "Whenever you cast a noncreature spell, this emblem deals 2 damage to any target."
|
A:AB$ Effect | Cost$ SubCounter<6/LOYALTY> | Planeswalker$ True | Ultimate$ True | Name$ Emblem - Narset of the Ancient Way | Image$ emblem_narset_of_the_ancient_way | Triggers$ TrigSpellCast | SVars$ EffSpellCast | Duration$ Permanent | Duration$ Permanent | AILogic$ Always | SpellDescription$ You get an emblem with "Whenever you cast a noncreature spell, this emblem deals 2 damage to any target."
|
||||||
SVar:TrigSpellCast:Mode$ SpellCast | ValidActivatingPlayer$ You | ValidCard$ Card.nonCreature | Execute$ EffSpellCast | TriggerDescription$ Whenever you cast a noncreature spell, this emblem deals 2 damage to any target.
|
SVar:TrigSpellCast:Mode$ SpellCast | ValidActivatingPlayer$ You | ValidCard$ Card.nonCreature | Execute$ EffSpellCast | TriggerDescription$ Whenever you cast a noncreature spell, this emblem deals 2 damage to any target.
|
||||||
SVar:EffSpellCast:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 2
|
SVar:EffSpellCast:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 2
|
||||||
Oracle[+1]: You gain 2 life. Add {U}, {R}, or {W}. Spend this mana only to cast a noncreature spell.\n[−2]: Draw a card, then you may discard a card. When you discard a nonland card this way, Narset of the Ancient Way deals damage equal to that card's converted mana cost to target creature or planeswalker.\n[−6]: You get an emblem with "Whenever you cast a noncreature spell, this emblem deals 2 damage to any target."
|
Oracle:[+1]: You gain 2 life. Add {U}, {R}, or {W}. Spend this mana only to cast a noncreature spell.\n[−2]: Draw a card, then you may discard a card. When you discard a nonland card this way, Narset of the Ancient Way deals damage equal to that card's converted mana cost to target creature or planeswalker.\n[−6]: You get an emblem with "Whenever you cast a noncreature spell, this emblem deals 2 damage to any target."
|
||||||
|
|||||||
8
forge-gui/res/cardsfolder/upcoming/serrated_scorpion.txt
Executable file
8
forge-gui/res/cardsfolder/upcoming/serrated_scorpion.txt
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
Name:Serrated Scorpion
|
||||||
|
ManaCost:B
|
||||||
|
Types:Creature Scorpion
|
||||||
|
PT:1/2
|
||||||
|
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigDealDamage | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, it deals 2 damage to each opponent and you gain 2 life.
|
||||||
|
SVar:TrigDealDamage:DB$ DamageAll | ValidPlayers$ Player.Opponent | NumDmg$ 2 | SubAbility$ DBGainLife
|
||||||
|
SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 2
|
||||||
|
Oracle:When Serrated Scorpion dies, it deals 2 damage to each opponent and you gain 2 life.
|
||||||
10
forge-gui/res/cardsfolder/upcoming/skycat_sovereign.txt
Executable file
10
forge-gui/res/cardsfolder/upcoming/skycat_sovereign.txt
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
Name:Skycat Sovereign
|
||||||
|
ManaCost:W U
|
||||||
|
Types:Creature Elemental Cat
|
||||||
|
PT:1/1
|
||||||
|
K:Flying
|
||||||
|
S:Mode$ Continuous | Affected$ Card.Self | AddPower$ X | AddToughness$ X | Description$ CARDNAME gets +1/+1 for each other creature you control with flying.
|
||||||
|
SVar:X:Count$Valid Creature.Other+YouCtrl+withFlying
|
||||||
|
SVar:BuffedBy:Creature.withFlying
|
||||||
|
A:AB$ Token | Cost$ 2 W U | TokenAmount$ 1 | TokenScript$ w_1_1_cat_bird_flying | TokenOwner$ You | SpellDescription$ Create a 1/1 white Cat Bird creature token with flying.
|
||||||
|
Oracle:Flying\nSkycat Sovereign gets +1/+1 for each other creature you control with flying.\n{2}{W}{U}: Create a 1/1 white Cat Bird creature token with flying.
|
||||||
7
forge-gui/res/cardsfolder/upcoming/sleeper_dart.txt
Executable file
7
forge-gui/res/cardsfolder/upcoming/sleeper_dart.txt
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
Name:Sleeper Dart
|
||||||
|
ManaCost:2
|
||||||
|
Types:Artifact
|
||||||
|
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDescription$ When CARDNAME enters the battlefield, draw a card.
|
||||||
|
SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1
|
||||||
|
A:AB$ Pump | Cost$ T Sac<1/CARDNAME> | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ HIDDEN This card doesn't untap during your next untap step. | Permanent$ True | IsCurse$ True | SpellDescription$ Target creature doesn't untap during its controller's next untap step.
|
||||||
|
Oracle:When Sleeper Dart enters the battlefield, draw a card.\n{T}, Sacrifice Sleeper Dart: Target creature doesn't untap during its controller's next untap step.
|
||||||
9
forge-gui/res/cardsfolder/upcoming/slitherwisp.txt
Executable file
9
forge-gui/res/cardsfolder/upcoming/slitherwisp.txt
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
Name:Slitherwisp
|
||||||
|
ManaCost:U B B
|
||||||
|
Types:Creature Elemental Nightmare
|
||||||
|
PT:3/2
|
||||||
|
K:Flash
|
||||||
|
T:Mode$ SpellCast | ValidCard$ Card.hasKeywordFlash+Other | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever you cast another spell with flash, you draw a card and each opponent loses 1 life.
|
||||||
|
SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 | SubAbility$ DBLoseLife
|
||||||
|
SVar:DBLoseLife:DB$ LoseLife | Defined$ Player.Opponent | LifeAmount$ 1
|
||||||
|
Oracle:Flash\nWhenever you cast another spell with flash, you draw a card and each opponent loses 1 life.
|
||||||
8
forge-gui/res/cardsfolder/upcoming/snare_tactician.txt
Executable file
8
forge-gui/res/cardsfolder/upcoming/snare_tactician.txt
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
Name:Snare Tactician
|
||||||
|
ManaCost:2 W
|
||||||
|
Types:Creature Human Soldier
|
||||||
|
PT:2/3
|
||||||
|
T:Mode$ Cycled | ValidCard$ Card.YouOwn | TriggerZones$ Battlefield | Execute$ TrigTap | TriggerDescription$ Whenever you cycle a card, tap target creature an opponent controls.
|
||||||
|
SVar:TrigTap:DB$ Tap | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Choose target creature an opponent controls
|
||||||
|
SVar:PlayMain1:TRUE
|
||||||
|
Oracle:Whenever you cycle a card, tap target creature an opponent controls.
|
||||||
9
forge-gui/res/cardsfolder/upcoming/solid_footing.txt
Executable file
9
forge-gui/res/cardsfolder/upcoming/solid_footing.txt
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
Name:Solid Footing
|
||||||
|
ManaCost:W
|
||||||
|
Types:Enchantment Aura
|
||||||
|
K:Flash
|
||||||
|
K:Enchant creature
|
||||||
|
A:SP$ Attach | Cost$ W | ValidTgts$ Creature | TgtPrompt$ Select target creature | AILogic$ Pump
|
||||||
|
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 1 | AddToughness$ 1 | Description$ Enchanted creature gets +1/+1.
|
||||||
|
S:Mode$ Continuous | Affected$ Creature.EnchantedBy+withVigilance | AddHiddenKeyword$ CARDNAME assigns combat damage equal to its toughness rather than its power | Description$ As long as enchanted creature has vigilance, it assigns combat damage equal to its toughness rather than its power.
|
||||||
|
Oracle:Flash\nEnchant creature\nEnchanted creature gets +1/+1.\nAs long as enchanted creature has vigilance, it assigns combat damage equal to its toughness rather than its power.
|
||||||
9
forge-gui/res/cardsfolder/upcoming/song_of_creation.txt
Executable file
9
forge-gui/res/cardsfolder/upcoming/song_of_creation.txt
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
Name:Song of Creation
|
||||||
|
ManaCost:1 G U R
|
||||||
|
Types:Enchantment
|
||||||
|
S:Mode$ Continuous | Affected$ You | AdjustLandPlays$ 1 | Description$ You may play an additional land on each of your turns.
|
||||||
|
T:Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever you cast a spell, draw two cards.
|
||||||
|
SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 2
|
||||||
|
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDiscard | TriggerDescription$ At the beginning of your end step, discard your hand.
|
||||||
|
SVar:TrigDiscard:DB$ Discard | Mode$ Hand | Defined$ You
|
||||||
|
Oracle:You may play an additional land on each of your turns.\nWhenever you cast a spell, draw two cards.\nAt the beginning of your end step, discard your hand.
|
||||||
8
forge-gui/res/cardsfolder/upcoming/sonorous_howlbonder.txt
Executable file
8
forge-gui/res/cardsfolder/upcoming/sonorous_howlbonder.txt
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
Name:Sonorous Howlbonder
|
||||||
|
ManaCost:1 B/R B/R
|
||||||
|
Types:Creature Human Warrior
|
||||||
|
PT:2/2
|
||||||
|
K:Menace
|
||||||
|
S:Mode$ Continuous | Affected$ Creature.YouCtrl+withMenace | AddHiddenKeyword$ CantBeBlockedByAmount LT3 | Description$ Each creature you control with menace can't be blocked except by three or more creatures.
|
||||||
|
SVar:PlayMain1:TRUE
|
||||||
|
Oracle:Menace\nEach creature you control with menace can't be blocked except by three or more creatures.
|
||||||
7
forge-gui/res/cardsfolder/upcoming/spelleater_wolverine.txt
Executable file
7
forge-gui/res/cardsfolder/upcoming/spelleater_wolverine.txt
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
Name:Spelleater Wolverine
|
||||||
|
ManaCost:2 R
|
||||||
|
Types:Creature Wolverine
|
||||||
|
PT:3/2
|
||||||
|
S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Double Strike | CheckSVar$ X | SVarCompare$ GE3 | Description$ CARDNAME has double strike as long as there are three or more instant and/or sorcery cards in your graveyard.
|
||||||
|
SVar:X:Count$ValidGraveyard Instant.YouOwn,Sorcery.YouOwn
|
||||||
|
Oracle:Spelleater Wolverine has double strike as long as there are three or more instant and/or sorcery cards in your graveyard.
|
||||||
6
forge-gui/res/cardsfolder/upcoming/springjaw_trap.txt
Executable file
6
forge-gui/res/cardsfolder/upcoming/springjaw_trap.txt
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
Name:Springjaw Trap
|
||||||
|
ManaCost:1
|
||||||
|
Types:Artifact
|
||||||
|
K:Flash
|
||||||
|
A:AB$ DealDamage | Cost$ 4 T Sac<1/CARDNAME> | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 3 | SpellDescription$ CARDNAME deals 3 damage to any target.
|
||||||
|
Oracle:Flash\n{4}, {T}, Sacrifice Springjaw Trap: It deals 3 damage to any target.
|
||||||
6
forge-gui/res/cardsfolder/upcoming/startling_development.txt
Executable file
6
forge-gui/res/cardsfolder/upcoming/startling_development.txt
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
Name:Startling Development
|
||||||
|
ManaCost:1 U
|
||||||
|
Types:Instant
|
||||||
|
A:SP$ Animate | Cost$ 1 U | ValidTgts$ Creature | TgtPrompt$ Select target creature | Colors$ Blue | OverwriteColors$ True | Types$ Serpent | RemoveCreatureTypes$ True | Power$ 4 | Toughness$ 4 | StackDescription$ SpellDescription | SpellDescription$ Until end of turn, target creature becomes a blue Serpent with base power and toughness 4/4.
|
||||||
|
K:Cycling:1
|
||||||
|
Oracle:Until end of turn, target creature becomes a blue Serpent with base power and toughness 4/4.\nCycling {1} ({1}, Discard this card: Draw a card.)
|
||||||
7
forge-gui/res/cardsfolder/upcoming/sudden_spinnerets.txt
Executable file
7
forge-gui/res/cardsfolder/upcoming/sudden_spinnerets.txt
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
Name:Sudden Spinnerets
|
||||||
|
ManaCost:G
|
||||||
|
Types:Instant
|
||||||
|
A:SP$ Pump | Cost$ G | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +1 | NumDef$ +3 | SubAbility$ DBPutCounter | SpellDescription$ Target creature gets +1/+3 until end of turn. Put a reach counter on it. Untap it.
|
||||||
|
SVar:DBPutCounter:DB$ PutCounter | Defined$ Targeted | CounterType$ REACH | CounterNum$ 1 | SubAbility$ DBUntap
|
||||||
|
SVar:DBUntap:DB$ Untap | Defined$ Targeted
|
||||||
|
Oracle:Target creature gets +1/+3 until end of turn. Put a reach counter on it. Untap it.
|
||||||
6
forge-gui/res/cardsfolder/upcoming/suffocating_fumes.txt
Executable file
6
forge-gui/res/cardsfolder/upcoming/suffocating_fumes.txt
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
Name:Suffocating Fumes
|
||||||
|
ManaCost:2 B
|
||||||
|
Types:Instant
|
||||||
|
A:SP$ PumpAll | Cost$ 2 B | ValidCards$ Creature.OppCtrl | NumAtt$ -1 | NumDef$ -1 | IsCurse$ True | SpellDescription$ Creatures your opponents control get -1/-1 until end of turn.
|
||||||
|
K:Cycling:2
|
||||||
|
Oracle:Creatures your opponents control get -1/-1 until end of turn.\nCycling {2} ({2}, Discard this card: Draw a card.)
|
||||||
7
forge-gui/res/cardsfolder/upcoming/survivors_bond.txt
Executable file
7
forge-gui/res/cardsfolder/upcoming/survivors_bond.txt
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
Name:Survivors' Bond
|
||||||
|
ManaCost:1 G
|
||||||
|
Types:Sorcery
|
||||||
|
A:SP$ Charm | Cost$ 1 G | MinCharmNum$ 1 | CharmNum$ 2 | Choices$ Human,NonHuman
|
||||||
|
SVar:Human:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | TgtPrompt$ Select target Human creature card in your graveyard | ValidTgts$ Creature.Human+YouOwn | SpellDescription$ Return target Human creature card from your graveyard to your hand.
|
||||||
|
SVar:NonHuman:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | TgtPrompt$ Select target non-Human creature card in your graveyard | ValidTgts$ Creature.nonHuman+YouOwn | SpellDescription$ Return target non-Human creature card from your graveyard to your hand.
|
||||||
|
Oracle:Choose one or both —\n• Return target Human creature card from your graveyard to your hand.\n• Return target non-Human creature card from your graveyard to your hand.
|
||||||
7
forge-gui/res/cardsfolder/upcoming/unexpected_fangs.txt
Executable file
7
forge-gui/res/cardsfolder/upcoming/unexpected_fangs.txt
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
Name:Unexpected Fangs
|
||||||
|
ManaCost:1 B
|
||||||
|
Types:Instant
|
||||||
|
A:SP$ PutCounter | Cost$ 1 B | ValidTgts$ Creature | TgtPrompt$ Select target creature | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ DBPutCounter | SpellDescription$ Put a +1/+1 counter and a lifelink counter on target creature.
|
||||||
|
SVar:DBPutCounter:DB$ PutCounter | CounterType$ LIFELINK | CounterNum$ 1 | Defined$ Targeted
|
||||||
|
DeckHas:Ability$Counters
|
||||||
|
Oracle:Put a +1/+1 counter and a lifelink counter on target creature.
|
||||||
7
forge-gui/res/cardsfolder/upcoming/whirlwind_of_thought.txt
Executable file
7
forge-gui/res/cardsfolder/upcoming/whirlwind_of_thought.txt
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
Name:Whirlwind of Thought
|
||||||
|
ManaCost:1 U R W
|
||||||
|
Types:Enchantment
|
||||||
|
T:Mode$ SpellCast | ValidCard$ Card.nonCreature | ValidActivatingPlayer$ You | Execute$ TrigDraw | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast a noncreature spell, draw a card.
|
||||||
|
SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1
|
||||||
|
SVar:BuffedBy:Card.nonCreature
|
||||||
|
Oracle:Whenever you cast a noncreature spell, draw a card.
|
||||||
8
forge-gui/res/cardsfolder/upcoming/whisper_squad.txt
Executable file
8
forge-gui/res/cardsfolder/upcoming/whisper_squad.txt
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
Name:Whisper Squad
|
||||||
|
ManaCost:B
|
||||||
|
Types:Creature Human Soldier
|
||||||
|
PT:1/1
|
||||||
|
A:AB$ ChangeZone | Cost$ 1 B | Origin$ Library | Destination$ Battlefield | ChangeType$ Card.namedWhisper Squad | ChangeNum$ 1 | Tapped$ True | StackDescription$ SpellDescription | SpellDescription$ Search your library for a card named CARDNAME, put it onto the battlefield tapped, then shuffle your library.
|
||||||
|
DeckHints:Type$Human
|
||||||
|
DeckNeeds:Name$Whisper Squad
|
||||||
|
Oracle:{1}{B}: Search your library for a card named Whisper Squad, put it onto the battlefield tapped, then shuffle your library.
|
||||||
10
forge-gui/res/cardsfolder/upcoming/wingspan_mentor.txt
Executable file
10
forge-gui/res/cardsfolder/upcoming/wingspan_mentor.txt
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
Name:Wingspan Mentor
|
||||||
|
ManaCost:2 U
|
||||||
|
Types:Creature Human Wizard
|
||||||
|
PT:1/3
|
||||||
|
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigPut | TriggerDescription$ When CARDNAME enters the battlefield, put a flying counter on target non-Human creature you control.
|
||||||
|
SVar:TrigPut:DB$PutCounter | ValidTgts$ Creature.nonHuman+YouCtrl | TgtPrompt$ Select target non-Human creature | CounterType$ FLYING | CounterNum$ 1
|
||||||
|
A:AB$ PutCounterAll | Cost$ 2 U T | ValidCards$ Creature.YouCtrl+withFlying | CounterType$ P1P1 | CounterNum$ 1 | StackDescription$ SpellDescription | SpellDescription$ Put a +1/+1 counter on each creature you control with flying.
|
||||||
|
SVar:PlayMain1:TRUE
|
||||||
|
DeckHas:Ability$Counters
|
||||||
|
Oracle:When Wingspan Mentor enters the battlefield, put a flying counter on target non-Human creature you control.\n{2}{U}, {T}: Put a +1/+1 counter on each creature you control with flying.
|
||||||
@@ -228,6 +228,7 @@ Type=Expansion
|
|||||||
222 R Jegantha, the Wellspring
|
222 R Jegantha, the Wellspring
|
||||||
223 U Jubilant Skybonder
|
223 U Jubilant Skybonder
|
||||||
224 R Kaheera, the Orphanguard
|
224 R Kaheera, the Orphanguard
|
||||||
|
225 R Keruga, the Macrosage
|
||||||
226 R Lurrus of the Dream-Den
|
226 R Lurrus of the Dream-Den
|
||||||
227 R Lutri, the Spellchaser
|
227 R Lutri, the Spellchaser
|
||||||
228 R Obosh, the Preypiercer
|
228 R Obosh, the Preypiercer
|
||||||
@@ -247,7 +248,7 @@ Type=Expansion
|
|||||||
242 U Zagoth Crystal
|
242 U Zagoth Crystal
|
||||||
243 C Bloodfell Caves
|
243 C Bloodfell Caves
|
||||||
244 C Blossoming Sands
|
244 C Blossoming Sands
|
||||||
245 R Bonder's Enclave
|
245 R Bonders' Enclave
|
||||||
246 C Dismal Backwater
|
246 C Dismal Backwater
|
||||||
247 C Evolving Wilds
|
247 C Evolving Wilds
|
||||||
248 R Indatha Triome
|
248 R Indatha Triome
|
||||||
@@ -277,10 +278,13 @@ Type=Expansion
|
|||||||
272 L Forest
|
272 L Forest
|
||||||
273 L Forest
|
273 L Forest
|
||||||
274 L Forest
|
274 L Forest
|
||||||
|
#Buy-A-Box Promo
|
||||||
275 M Zilortha, Strength Incarnate
|
275 M Zilortha, Strength Incarnate
|
||||||
|
#Borderless Planeswalkers
|
||||||
276 M Lukka, Coppercoat Outcast
|
276 M Lukka, Coppercoat Outcast
|
||||||
277 M Vivien, Monsters' Advocate
|
277 M Vivien, Monsters' Advocate
|
||||||
278 M Narset of the Ancient Way
|
278 M Narset of the Ancient Way
|
||||||
|
#Showcase Cards
|
||||||
279 R Cubwarden
|
279 R Cubwarden
|
||||||
280 U Huntmaster Liger
|
280 U Huntmaster Liger
|
||||||
281 U Majestic Auricorn
|
281 U Majestic Auricorn
|
||||||
@@ -316,11 +320,62 @@ Type=Expansion
|
|||||||
311 R Raugrin Triome
|
311 R Raugrin Triome
|
||||||
312 R Savai Triome
|
312 R Savai Triome
|
||||||
313 R Zagoth Triome
|
313 R Zagoth Triome
|
||||||
|
314 R Drannith Magistrate
|
||||||
|
315 R Lavabrink Venturer
|
||||||
316 M Luminous Broodmoth
|
316 M Luminous Broodmoth
|
||||||
|
317 R Mythos of Snapdax
|
||||||
|
318 R Mythos of Illuna
|
||||||
|
319 R Shark Typhoon
|
||||||
320 R Voracious Greatshark
|
320 R Voracious Greatshark
|
||||||
|
321 R Extinction Event
|
||||||
|
322 R Hunted Nightmare
|
||||||
|
323 R Mythos of Nethroi
|
||||||
|
324 R Mythos of Vadrok
|
||||||
|
325 R Unpredictable Cyclone
|
||||||
326 R Yidaro, Wandering Monster
|
326 R Yidaro, Wandering Monster
|
||||||
|
327 R Colossification
|
||||||
|
328 R Kogla, the Titan Ape
|
||||||
|
329 R Mythos of Brokkos
|
||||||
|
330 M Chevill, Bane of Monsters
|
||||||
|
331 R Death's Oasis
|
||||||
|
332 R Eerie Ultimatum
|
||||||
|
333 R Emergent Ultimatum
|
||||||
|
334 R Frondland Felidar
|
||||||
|
335 M General Kudro of Drannith
|
||||||
|
336 R Genesis Ultimatum
|
||||||
|
337 R Inspired Ultimatum
|
||||||
|
338 M Kinnan, Bonder Prodigy
|
||||||
|
339 R Labyrinth Raptor
|
||||||
|
340 R Offspring's Revenge
|
||||||
|
341 R Quartzwood Crasher
|
||||||
|
342 M Rielle, the Everwise
|
||||||
|
343 R Ruinous Ultimatum
|
||||||
|
344 R Skycat Sovereign
|
||||||
|
345 R Slitherwisp
|
||||||
|
346 R Song of Creation
|
||||||
|
347 R Titans' Nest
|
||||||
|
348 R Whirlwind of Thought
|
||||||
|
349 M Winota, Joiner of Forces
|
||||||
|
350 M Fiend Artisan
|
||||||
|
351 R Gyruda, Doom of Depths
|
||||||
|
352 R Jegantha, the Wellspring
|
||||||
|
353 R Kaheera, the Orphanguard
|
||||||
354 R Keruga, the Macrosage
|
354 R Keruga, the Macrosage
|
||||||
|
355 R Lurrus of the Dream-Den
|
||||||
|
356 R Lutri, the Spellchaser
|
||||||
|
357 R Obosh, the Preypiercer
|
||||||
|
358 R Umori, the Collector
|
||||||
|
359 R Yorion, Sky Nomad
|
||||||
|
360 R Zirda, the Dawnwaker
|
||||||
|
361 R Crystalline Giant
|
||||||
|
362 R The Ozolith
|
||||||
|
363 R Bonders' Enclave
|
||||||
364 R Colossification
|
364 R Colossification
|
||||||
|
365 U Flourishing Fox
|
||||||
|
366 U Heartless Act
|
||||||
|
367 C Forbidden Friendship
|
||||||
|
368 U Migration Path
|
||||||
|
369 U Sprite Dragon
|
||||||
370 U Huntmaster Liger
|
370 U Huntmaster Liger
|
||||||
371 M Luminous Broodmoth
|
371 M Luminous Broodmoth
|
||||||
372 U Pollywog Symbiote
|
372 U Pollywog Symbiote
|
||||||
|
|||||||
Reference in New Issue
Block a user