mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
Merge remote-tracking branch 'upstream/master' into collector-number-in-card-list-and-card-db-refactoring
This commit is contained in:
@@ -1079,7 +1079,7 @@ public class DamageDealAi extends DamageAiBase {
|
|||||||
saTgt.resetTargets();
|
saTgt.resetTargets();
|
||||||
saTgt.getTargets().add(tgtCreature != null && dmg < opponent.getLife() ? tgtCreature : opponent);
|
saTgt.getTargets().add(tgtCreature != null && dmg < opponent.getLife() ? tgtCreature : opponent);
|
||||||
|
|
||||||
sa.setXManaCostPaid(dmg);
|
saTgt.setXManaCostPaid(dmg);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import java.io.OutputStream;
|
|||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
import java.io.Reader;
|
import java.io.Reader;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
import java.nio.charset.Charset;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -208,7 +209,8 @@ public final class FileUtil {
|
|||||||
if ((file == null) || !file.exists()) {
|
if ((file == null) || !file.exists()) {
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
return FileUtil.readAllLines(new FileReader(file), false);
|
Charset charset = Charset.forName("UTF-8");
|
||||||
|
return FileUtil.readAllLines(new FileReader(file, charset), false);
|
||||||
} catch (final Exception ex) {
|
} catch (final Exception ex) {
|
||||||
throw new RuntimeException("FileUtil : readFile() error, " + ex);
|
throw new RuntimeException("FileUtil : readFile() error, " + ex);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -100,7 +100,12 @@ public class ChangeTargetsEffect extends SpellAbilityEffect {
|
|||||||
changingTgtSA.resetTargets();
|
changingTgtSA.resetTargets();
|
||||||
List<GameEntity> candidates = changingTgtSA.getTargetRestrictions().getAllCandidates(changingTgtSA, true);
|
List<GameEntity> candidates = changingTgtSA.getTargetRestrictions().getAllCandidates(changingTgtSA, true);
|
||||||
if (sa.hasParam("RandomTargetRestriction")) {
|
if (sa.hasParam("RandomTargetRestriction")) {
|
||||||
candidates.removeIf(c -> !c.isValid(sa.getParam("RandomTargetRestriction").split(","), sa.getActivatingPlayer(), sa.getHostCard(), sa));
|
candidates.removeIf(new java.util.function.Predicate<GameEntity>() {
|
||||||
|
@Override
|
||||||
|
public boolean test(GameEntity c) {
|
||||||
|
return !c.isValid(sa.getParam("RandomTargetRestriction").split(","), sa.getActivatingPlayer(), sa.getHostCard(), sa);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
GameEntity choice = Aggregates.random(candidates);
|
GameEntity choice = Aggregates.random(candidates);
|
||||||
changingTgtSA.getTargets().add(choice);
|
changingTgtSA.getTargets().add(choice);
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package forge.game.ability.effects;
|
|||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.function.Predicate;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Iterables;
|
||||||
@@ -166,7 +167,12 @@ public class CopySpellAbilityEffect extends SpellAbilityEffect {
|
|||||||
if (sa.hasParam("RandomTarget")){
|
if (sa.hasParam("RandomTarget")){
|
||||||
List<GameEntity> candidates = copy.getTargetRestrictions().getAllCandidates(chosenSA, true);
|
List<GameEntity> candidates = copy.getTargetRestrictions().getAllCandidates(chosenSA, true);
|
||||||
if (sa.hasParam("RandomTargetRestriction")) {
|
if (sa.hasParam("RandomTargetRestriction")) {
|
||||||
candidates.removeIf(c -> !c.isValid(sa.getParam("RandomTargetRestriction").split(","), sa.getActivatingPlayer(), sa.getHostCard(), sa));
|
candidates.removeIf(new Predicate<GameEntity>() {
|
||||||
|
@Override
|
||||||
|
public boolean test(GameEntity c) {
|
||||||
|
return !c.isValid(sa.getParam("RandomTargetRestriction").split(","), sa.getActivatingPlayer(), sa.getHostCard(), sa);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
GameEntity choice = Aggregates.random(candidates);
|
GameEntity choice = Aggregates.random(candidates);
|
||||||
resetFirstTargetOnCopy(copy, choice, chosenSA);
|
resetFirstTargetOnCopy(copy, choice, chosenSA);
|
||||||
|
|||||||
@@ -87,6 +87,20 @@ public class DigEffect extends SpellAbilityEffect {
|
|||||||
final boolean mayBeSkipped = sa.hasParam("PromptToSkipOptionalAbility");
|
final boolean mayBeSkipped = sa.hasParam("PromptToSkipOptionalAbility");
|
||||||
final String optionalAbilityPrompt = sa.hasParam("OptionalAbilityPrompt") ? sa.getParam("OptionalAbilityPrompt") : "";
|
final String optionalAbilityPrompt = sa.hasParam("OptionalAbilityPrompt") ? sa.getParam("OptionalAbilityPrompt") : "";
|
||||||
|
|
||||||
|
boolean remZone1 = false;
|
||||||
|
boolean remZone2 = false;
|
||||||
|
if (sa.hasParam("RememberChanged")) {
|
||||||
|
remZone1 = true;
|
||||||
|
}
|
||||||
|
if (sa.hasParam("RememberMovedToZone")) {
|
||||||
|
if (sa.getParam("RememberMovedToZone").contains("1")) {
|
||||||
|
remZone1 = true;
|
||||||
|
}
|
||||||
|
if (sa.getParam("RememberMovedToZone").contains("2")) {
|
||||||
|
remZone2 = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
boolean changeAll = false;
|
boolean changeAll = false;
|
||||||
boolean allButOne = false;
|
boolean allButOne = false;
|
||||||
|
|
||||||
@@ -341,7 +355,7 @@ public class DigEffect extends SpellAbilityEffect {
|
|||||||
if (sa.hasParam("ForgetOtherRemembered")) {
|
if (sa.hasParam("ForgetOtherRemembered")) {
|
||||||
host.clearRemembered();
|
host.clearRemembered();
|
||||||
}
|
}
|
||||||
if (sa.hasParam("RememberChanged")) {
|
if (remZone1) {
|
||||||
host.addRemembered(c);
|
host.addRemembered(c);
|
||||||
}
|
}
|
||||||
rest.remove(c);
|
rest.remove(c);
|
||||||
@@ -376,6 +390,9 @@ public class DigEffect extends SpellAbilityEffect {
|
|||||||
if (m != null && !origin.equals(m.getZone().getZoneType())) {
|
if (m != null && !origin.equals(m.getZone().getZoneType())) {
|
||||||
table.put(origin, m.getZone().getZoneType(), m);
|
table.put(origin, m.getZone().getZoneType(), m);
|
||||||
}
|
}
|
||||||
|
if (remZone2) {
|
||||||
|
host.addRemembered(m);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -395,6 +412,9 @@ public class DigEffect extends SpellAbilityEffect {
|
|||||||
}
|
}
|
||||||
c.setExiledWith(effectHost);
|
c.setExiledWith(effectHost);
|
||||||
c.setExiledBy(effectHost.getController());
|
c.setExiledBy(effectHost.getController());
|
||||||
|
if (remZone2) {
|
||||||
|
host.addRemembered(c);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -595,6 +595,8 @@ public class CombatUtil {
|
|||||||
walkTypes.add("Land.Legendary");
|
walkTypes.add("Land.Legendary");
|
||||||
} else if (keyword.equals("Nonbasic landwalk")) {
|
} else if (keyword.equals("Nonbasic landwalk")) {
|
||||||
walkTypes.add("Land.nonBasic");
|
walkTypes.add("Land.nonBasic");
|
||||||
|
} else if (keyword.equals("Artifact landwalk")) {
|
||||||
|
walkTypes.add("Land.Artifact");
|
||||||
} else if (keyword.equals("Snow landwalk")) {
|
} else if (keyword.equals("Snow landwalk")) {
|
||||||
walkTypes.add("Land.Snow");
|
walkTypes.add("Land.Snow");
|
||||||
} else if (keyword.endsWith("walk")) {
|
} else if (keyword.endsWith("walk")) {
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
Name:Infuse with Vitality
|
Name:Infuse with Vitality
|
||||||
ManaCost:B G
|
ManaCost:B G
|
||||||
Types:Instant
|
Types:Instant
|
||||||
A:SP$ Pump | Cost$ B G | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Deathtouch | SpellDescription$ Until end of turn, target creature gains deathtouch and "When this creature dies, return it to the battlefield tapped under its owner's control." | SubAbility$ DBAnimate
|
A:SP$ Pump | Cost$ B G | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Deathtouch | StackDescription$ Until end of turn, {c:Targeted} gains deathtouch and "When this creature dies, return it to the battlefield tapped under its owner's control." | SpellDescription$ Until end of turn, target creature gains deathtouch and "When this creature dies, return it to the battlefield tapped under its owner's control." | SubAbility$ DBAnimate
|
||||||
SVar:DBAnimate:DB$ Animate | Triggers$ SupernaturalStaminaChangeZone | sVars$ SupernaturalStaminaTrigChangeZone | Defined$ ParentTarget
|
SVar:DBAnimate:DB$ Animate | Triggers$ DiesTrigger | Defined$ ParentTarget | SubAbility$ DBGainLife | StackDescription$ None
|
||||||
SVar:SupernaturalStaminaChangeZone:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ SupernaturalStaminaTrigChangeZone | TriggerController$ TriggeredCardController | TriggerDescription$ When this creature dies, return it to the battlefield tapped under its owner's control.
|
SVar:DiesTrigger:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigChangeZone | TriggerDescription$ When this creature dies, return it to the battlefield tapped under its owner's control.
|
||||||
SVar:SupernaturalStaminaTrigChangeZone:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | Tapped$ True | Defined$ TriggeredNewCardLKICopy | SubAbility$ DBGainLife
|
SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | Tapped$ True | Defined$ TriggeredNewCardLKICopy
|
||||||
SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 2
|
SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 2
|
||||||
DeckHas:Ability$LifeGain
|
DeckHas:Ability$LifeGain
|
||||||
Oracle:Until end of turn, target creature gains deathtouch and "When this creature dies, return it to the battlefield tapped under its owner's control."\nYou gain 2 life.
|
Oracle:Until end of turn, target creature gains deathtouch and "When this creature dies, return it to the battlefield tapped under its owner's control."\nYou gain 2 life.
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ A:AB$ Token | Cost$ SubCounter<X/LOYALTY> | Planeswalker$ True | TokenScript$ gu
|
|||||||
SVar:DBPutCounter:DB$ PutCounter | Defined$ Remembered | CounterType$ P1P1 | CounterNum$ X | SubAbility$ DBCleanup
|
SVar:DBPutCounter:DB$ PutCounter | Defined$ Remembered | CounterType$ P1P1 | CounterNum$ X | SubAbility$ DBCleanup
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
SVar:X:Count$xPaid
|
SVar:X:Count$xPaid
|
||||||
A:AB$ ChangeZone | Cost$ SubCounter<8/LOYALTY> | Planeswalker$ True | Origin$ Library | Destination$ Exile | ChangeType$ Instant.SharesColorWith Card.Self,Sorcery.SharesColorWith Card.Self | ChangeNum$ 1 | SubAbility$ DBPlay | RememberChanged$ True | SpellDescription$ Search your library for an instant or sorcery card that shares a color with this planeswalker, exile that card, then shuffle. You may cast that card without paying its mana cost.
|
A:AB$ ChangeZone | Cost$ SubCounter<8/LOYALTY> | Planeswalker$ True | Ultimate$ True | Origin$ Library | Destination$ Exile | ChangeType$ Instant.SharesColorWith Card.Self,Sorcery.SharesColorWith Card.Self | ChangeNum$ 1 | SubAbility$ DBPlay | RememberChanged$ True | SpellDescription$ Search your library for an instant or sorcery card that shares a color with this planeswalker, exile that card, then shuffle. You may cast that card without paying its mana cost.
|
||||||
SVar:DBPlay:DB$ Play | Defined$ Remembered | WithoutManaCost$ True | Optional$ True | SubAbility$ DBCleanup
|
SVar:DBPlay:DB$ Play | Defined$ Remembered | WithoutManaCost$ True | Optional$ True | SubAbility$ DBCleanup
|
||||||
DeckHints:Type$Instant|Sorcery
|
DeckHints:Type$Instant|Sorcery
|
||||||
DeckHas:Ability$Token & Ability$Counters
|
DeckHas:Ability$Token & Ability$Counters
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ Loyalty:4
|
|||||||
S:Mode$ ReduceCost | ValidCard$ Instant,Sorcery | Type$ Spell | Activator$ You | Amount$ 1 | Description$ Instant and sorcery spells you cast cost {1} less to cast.
|
S:Mode$ ReduceCost | ValidCard$ Instant,Sorcery | Type$ Spell | Activator$ You | Amount$ 1 | Description$ Instant and sorcery spells you cast cost {1} less to cast.
|
||||||
A:AB$ Animate | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | ValidTgts$ Creature | TgtPrompt$ Select up to one target creature | TargetMin$ 0 | TargetMax$ 1 | Power$ 0 | Toughness$ 2 | Duration$ UntilYourNextTurn | SpellDescription$ Up to one target creature has base power and toughness 0/2 until your next turn.
|
A:AB$ Animate | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | ValidTgts$ Creature | TgtPrompt$ Select up to one target creature | TargetMin$ 0 | TargetMax$ 1 | Power$ 0 | Toughness$ 2 | Duration$ UntilYourNextTurn | SpellDescription$ Up to one target creature has base power and toughness 0/2 until your next turn.
|
||||||
A:AB$ Draw | Cost$ SubCounter<3/LOYALTY> | Planeswalker$ True | NumCards$ 3 | SpellDescription$ Draw three cards.
|
A:AB$ Draw | Cost$ SubCounter<3/LOYALTY> | Planeswalker$ True | NumCards$ 3 | SpellDescription$ Draw three cards.
|
||||||
A:AB$ ChangeZone | Cost$ SubCounter<7/LOYALTY> | Planeswalker$ True | ValidTgts$ Permanent | TgtPrompt$ Select up to five target permanents | TargetMin$ 0 | TargetMax$ 5 | Origin$ Battlefield | Destination$ Exile | RememberLKI$ True | SubAbility$ DBRepeat | SpellDescription$ Exile up to five target permanents. For each permanent exiled this way, its controller creates a 4/4 blue and red Elemental creature token.
|
A:AB$ ChangeZone | Cost$ SubCounter<7/LOYALTY> | Planeswalker$ True | Ultimate$ True | ValidTgts$ Permanent | TgtPrompt$ Select up to five target permanents | TargetMin$ 0 | TargetMax$ 5 | Origin$ Battlefield | Destination$ Exile | RememberLKI$ True | SubAbility$ DBRepeat | SpellDescription$ Exile up to five target permanents. For each permanent exiled this way, its controller creates a 4/4 blue and red Elemental creature token.
|
||||||
SVar:DBRepeat:DB$ RepeatEach | DefinedCards$ DirectRemembered | UseImprinted$ True | RepeatSubAbility$ DBToken | SubAbility$ DBCleanup | ChangeZoneTables$ True
|
SVar:DBRepeat:DB$ RepeatEach | DefinedCards$ DirectRemembered | UseImprinted$ True | RepeatSubAbility$ DBToken | SubAbility$ DBCleanup | ChangeZoneTables$ True
|
||||||
SVar:DBToken:DB$ Token | TokenScript$ ur_4_4_elemental | TokenOwner$ ImprintedController
|
SVar:DBToken:DB$ Token | TokenScript$ ur_4_4_elemental | TokenOwner$ ImprintedController
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
|
|||||||
8
forge-gui/res/cardsfolder/upcoming/arcbound_mouser.txt
Normal file
8
forge-gui/res/cardsfolder/upcoming/arcbound_mouser.txt
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Name:Arcbound Mouser
|
||||||
|
ManaCost:W
|
||||||
|
Types:Artifact Creature Cat
|
||||||
|
PT:0/0
|
||||||
|
K:Lifelink
|
||||||
|
K:Modular:1
|
||||||
|
DeckHas:Ability$Counters & Ability$LifeGain
|
||||||
|
Oracle:Lifelink\nModular 1 (This creature enters the battlefield with a +1/+1 counter on it. When it dies, you may put its +1/+1 counters on target artifact creature.)
|
||||||
10
forge-gui/res/cardsfolder/upcoming/calibrated_blast.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/calibrated_blast.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Name:Calibrated Blast
|
||||||
|
ManaCost:2 R
|
||||||
|
Types:Instant
|
||||||
|
A:SP$ DigUntil | Valid$ Card.nonLand | ValidDescription$ nonland | RevealedDestination$ Library | RevealedLibraryPosition$ -1 | RevealRandomOrder$ True | RememberFound$ True | SubAbility$ DBImmediateTrigger | StackDescription$ Reveal cards from the top of your library until you reveal a nonland card. Put the revealed cards on the bottom of your library in a random order. | SpellDescription$ Reveal cards from the top of your library until you reveal a nonland card. Put the revealed cards on the bottom of your library in a random order. When you reveal a nonland card this way, CARDNAME deals damage equal to that card's mana value to any target.
|
||||||
|
SVar:DBImmediateTrigger:DB$ ImmediateTrigger | ConditionDefined$ Remembered | ConditionPresent$ Card.nonLand | Execute$ TrigDamage | TriggerDescription$ When you reveal a nonland card this way, CARDNAME deals damage equal to that card's mana value to any target.
|
||||||
|
SVar:TrigDamage:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ X | SubAbility$ DBCleanup
|
||||||
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
|
SVar:X:Remembered$CardManaCost
|
||||||
|
K:Flashback:3 R R
|
||||||
|
Oracle:Reveal cards from the top of your library until you reveal a nonland card. Put the revealed cards on the bottom of your library in a random order. When you reveal a nonland card this way, Calibrated Blast deals damage equal to that card's mana value to any target.\nFlashback {3}{R}{R} (You may cast this card from your graveyard for its flashback cost. Then exile it.)
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
Name:Constable of the Realm
|
||||||
|
ManaCost:4 W
|
||||||
|
Types:Creature Giant Soldier
|
||||||
|
PT:3/3
|
||||||
|
K:Renown:2
|
||||||
|
T:Mode$ CounterAddedOnce | ValidCard$ Card.Self | CounterType$ P1P1 | TriggerZones$ Battlefield | Execute$ TrigChangeZone | TriggerDescription$ Whenever one or more +1/+1 counters are put on CARDNAME, exile up to one other target nonland permanent until CARDNAME leaves the battlefield.
|
||||||
|
SVar:TrigChangeZone:DB$ ChangeZone | ValidTgts$ Permanent.Other+nonLand | TgtPrompt$ Select up to one other target nonland permanent | TargetMin$ 0 | TargetMax$ 1 | Origin$ Battlefield | Destination$ Exile | Duration$ UntilHostLeavesPlay
|
||||||
|
DeckHas:Ability$Counters
|
||||||
|
DeckHints:Ability$Counters & Ability$Proliferate
|
||||||
|
Oracle:Renown 2 (When this creature deals combat damage to a player, if it isn't renowned, put two +1/+1 counters on it and it becomes renowned.)\nWhenever one or more +1/+1 counters are put on Constable of the Realm, exile up to one other target nonland permanent until Constable of the Realm leaves the battlefield.
|
||||||
8
forge-gui/res/cardsfolder/upcoming/darkmoss_bridge.txt
Normal file
8
forge-gui/res/cardsfolder/upcoming/darkmoss_bridge.txt
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Name:Darkmoss Bridge
|
||||||
|
ManaCost:no cost
|
||||||
|
Types:Artifact Land
|
||||||
|
A:AB$ Mana | Cost$ T | Produced$ B | SpellDescription$ Add {B}.
|
||||||
|
A:AB$ Mana | Cost$ T | Produced$ G | SpellDescription$ Add {G}.
|
||||||
|
K:CARDNAME enters the battlefield tapped.
|
||||||
|
K:Indestructible
|
||||||
|
Oracle:Darkmoss Bridge enters the battlefield tapped.\nIndestructible\n{T}: Add {B} or {G}.
|
||||||
9
forge-gui/res/cardsfolder/upcoming/dermotaxi.txt
Normal file
9
forge-gui/res/cardsfolder/upcoming/dermotaxi.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Name:Dermotaxi
|
||||||
|
ManaCost:2
|
||||||
|
Types:Artifact Vehicle
|
||||||
|
PT:0/0
|
||||||
|
K:ETBReplacement:Other:Imprint
|
||||||
|
SVar:Imprint:DB$ ChangeZone | Imprint$ True | ChangeType$ Creature | ChangeNum$ 1 | Origin$ Graveyard | Destination$ Exile | Mandatory$ True | Hidden$ True | Chooser$ You | SpellDescription$ Imprint - As CARDNAME enters the battlefield, exile a creature card from a graveyard.
|
||||||
|
A:AB$ Clone | Cost$ tapXType<2/Creature> | Defined$ Imprinted | Duration$ UntilEndOfTurn | AddTypes$ Vehicle & Artifact | StackDescription$ Until end of turn, CARDNAME becomes a copy of {c:Imprinted}, except it’s a Vehicle artifact in addition to its other types. | SpellDescription$ Until end of turn, CARDNAME becomes a copy of the imprinted card, except it’s a Vehicle artifact in addition to its other types.
|
||||||
|
SVar:NeedsToPlay:Creature.inZoneGraveyard
|
||||||
|
Oracle:Imprint — As Dermotaxi enters the battlefield, exile a creature card from a graveyard.\nTap two untapped creatures you control: Until end of turn, Dermotaxi becomes a copy of the imprinted card, except it’s a Vehicle artifact in addition to its other types.
|
||||||
10
forge-gui/res/cardsfolder/upcoming/discerning_taste.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/discerning_taste.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Name:Discerning Taste
|
||||||
|
ManaCost:2 B
|
||||||
|
Types:Sorcery
|
||||||
|
A:SP$ Dig | DigNum$ 4 | DestinationZone2$ Graveyard | RememberMovedToZone$ 2 | SubAbility$ DBLifeGain | StackDescription$ SpellDescription | SpellDescription$ Look at the top four cards of your library. Put one of them into your hand and the rest into your graveyard. You gain life equal to the greatest power among creature cards put into your graveyard this way.
|
||||||
|
SVar:DBLifeGain:DB$ GainLife | Defined$ You | LifeAmount$ X | SubAbility$ DBCleanup | StackDescription$ None
|
||||||
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
|
SVar:X:Count$GreatestPowerGraveyard_Creature.IsRemembered
|
||||||
|
DeckHints:Ability$Graveyard
|
||||||
|
DeckHas:Ability$LifeGain
|
||||||
|
Oracle:Look at the top four cards of your library. Put one of them into your hand and the rest into your graveyard. You gain life equal to the greatest power among creature cards put into your graveyard this way.
|
||||||
13
forge-gui/res/cardsfolder/upcoming/dress_down.txt
Normal file
13
forge-gui/res/cardsfolder/upcoming/dress_down.txt
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
Name:Dress Down
|
||||||
|
ManaCost:1 U
|
||||||
|
Types:Enchantment
|
||||||
|
K:Flash
|
||||||
|
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
|
||||||
|
S:Mode$ Continuous | Affected$ Creature | RemoveAllAbilities$ True | Description$ All creatures lose all abilities.
|
||||||
|
T:Mode$ Phase | Phase$ End of Turn | TriggerZones$ Battlefield | Execute$ TrigSac | TriggerDescription$ At the beginning of the end step, sacrifice CARDNAME.
|
||||||
|
SVar:TrigSac:DB$ Sacrifice | SacValid$ Self
|
||||||
|
SVar:EndOfTurnLeavePlay:True
|
||||||
|
AI:RemoveDeck:Random
|
||||||
|
DeckHas:Ability$Sacrifice
|
||||||
|
Oracle:Flash\nWhen Dress Down enters the battlefield, draw a card.\nAll creatures lose all abilities.\nAt the beginning of the end step, sacrifice Dress Down.
|
||||||
8
forge-gui/res/cardsfolder/upcoming/drossforge_bridge.txt
Normal file
8
forge-gui/res/cardsfolder/upcoming/drossforge_bridge.txt
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Name:Drossforge Bridge
|
||||||
|
ManaCost:no cost
|
||||||
|
Types:Artifact Land
|
||||||
|
A:AB$ Mana | Cost$ T | Produced$ B | SpellDescription$ Add {B}.
|
||||||
|
A:AB$ Mana | Cost$ T | Produced$ R | SpellDescription$ Add {R}.
|
||||||
|
K:CARDNAME enters the battlefield tapped.
|
||||||
|
K:Indestructible
|
||||||
|
Oracle:Drossforge Bridge enters the battlefield tapped.\nIndestructible\n{T}: Add {B} or {R}.
|
||||||
9
forge-gui/res/cardsfolder/upcoming/ghost_lit_drifter.txt
Normal file
9
forge-gui/res/cardsfolder/upcoming/ghost_lit_drifter.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Name:Ghost-Lit Drifter
|
||||||
|
ManaCost:2 U
|
||||||
|
Types:Creature Spirit
|
||||||
|
PT:2/2
|
||||||
|
K:Flying
|
||||||
|
A:AB$ Pump | Cost$ 2 U | ValidTgts$ Creature.Other | KW$ Flying | TgtPrompt$ Select another target creature | SpellDescription$ Another target creature gains flying until end of turn.
|
||||||
|
A:AB$ Pump | Cost$ X U Discard<1/CARDNAME> | TargetMin$ X | TargetMax$ X | KW$ Flying | ValidTgts$ Creature | TgtPrompt$ Select X target creatures | ActivationZone$ Hand | PrecostDesc$ Channel — | SpellDescription$ X target creatures gain flying until end of turn.
|
||||||
|
SVar:X:Count$xPaid
|
||||||
|
Oracle:Flying\n{2}{U}: Another target creature gains flying until end of turn.\nChannel — {X}{U}, discard Ghost-Lit Drifter: X target creatures gain flying until end of turn.
|
||||||
11
forge-gui/res/cardsfolder/upcoming/glorious_enforcer.txt
Normal file
11
forge-gui/res/cardsfolder/upcoming/glorious_enforcer.txt
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
Name:Glorious Enforcer
|
||||||
|
ManaCost:5 W W
|
||||||
|
Types:Creature Angel
|
||||||
|
PT:5/5
|
||||||
|
K:Flying
|
||||||
|
K:Lifelink
|
||||||
|
T:Mode$ Phase | Phase$ BeginCombat | TriggerZones$ Battlefield | Execute$ TrigPump | CheckSVar$ Y | SVarCompare$ GTX | TriggerDescription$ At the beginning of each combat, if you have more life than an opponent, CARDNAME gains double strike until end of turn.
|
||||||
|
SVar:TrigPump:DB$ Pump | Defined$ Self | KW$ Double Strike
|
||||||
|
SVar:X:PlayerCountOpponents$LowestLifeTotal
|
||||||
|
SVar:Y:Count$YourLifeTotal
|
||||||
|
Oracle:Flying, lifelink\nAt the beginning of each combat, if you have more life than an opponent, Glorious Enforcer gains double strike until end of turn.
|
||||||
8
forge-gui/res/cardsfolder/upcoming/goldmire_bridge.txt
Normal file
8
forge-gui/res/cardsfolder/upcoming/goldmire_bridge.txt
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Name:Goldmire Bridge
|
||||||
|
ManaCost:no cost
|
||||||
|
Types:Artifact Land
|
||||||
|
A:AB$ Mana | Cost$ T | Produced$ W | SpellDescription$ Add {W}.
|
||||||
|
A:AB$ Mana | Cost$ T | Produced$ B | SpellDescription$ Add {B}.
|
||||||
|
K:CARDNAME enters the battlefield tapped.
|
||||||
|
K:Indestructible
|
||||||
|
Oracle:Goldmire Bridge enters the battlefield tapped.\nIndestructible\n{T}: Add {W} or {B}.
|
||||||
8
forge-gui/res/cardsfolder/upcoming/harmonic_prodigy.txt
Normal file
8
forge-gui/res/cardsfolder/upcoming/harmonic_prodigy.txt
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Name:Harmonic Prodigy
|
||||||
|
ManaCost:1 R
|
||||||
|
Types:Creature Human Wizard
|
||||||
|
PT:1/3
|
||||||
|
K:Prowess
|
||||||
|
S:Mode$ Panharmonicon | ValidCard$ Shaman.YouCtrl,Wizard.Other+YouCtrl | Description$ If an ability of a Shaman or another Wizard you control triggers, that ability triggers an additional time.
|
||||||
|
DeckHints:Type$Shaman|Wizard
|
||||||
|
Oracle:Prowess (Whenever you cast a noncreature spell, this creature gets +1/+1 until end of turn.)\nIf an ability of a Shaman or another Wizard you control triggers, that ability triggers an additional time.
|
||||||
10
forge-gui/res/cardsfolder/upcoming/junk_winder.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/junk_winder.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Name:Junk Winder
|
||||||
|
ManaCost:5 U U
|
||||||
|
Types:Creature Serpent
|
||||||
|
PT:5/6
|
||||||
|
K:Affinity:Permanent.token
|
||||||
|
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Permanent.token+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigTap | TriggerDescription$ Whenever a token enters the battlefield under your control, tap target nonland permanent an opponent controls. It doesn't untap during its controller's next untap step.
|
||||||
|
SVar:TrigTap:DB$ Tap | ValidTgts$ Permanent.nonLand+OppCtrl | TgtPrompt$ Choose target nonland permanent an opponent controls | SubAbility$ DBPump
|
||||||
|
SVar:DBPump:DB$ Pump | Defined$ Targeted | KW$ HIDDEN This card doesn't untap during your next untap step. | Permanent$ True
|
||||||
|
DeckNeeds:Ability$Token
|
||||||
|
Oracle:Affinity for tokens (This spell costs {1} less to cast for each token you control.)\nWhenever a token enters the battlefield under your control, tap target nonland permanent an opponent controls. It doesn't untap during its controller's next untap step.
|
||||||
8
forge-gui/res/cardsfolder/upcoming/landscaper_colos.txt
Normal file
8
forge-gui/res/cardsfolder/upcoming/landscaper_colos.txt
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Name:Landscaper Colos
|
||||||
|
ManaCost:5 W
|
||||||
|
Types:Creature Goat Beast
|
||||||
|
PT:4/6
|
||||||
|
T:Mode$ ChangesZone | ValidCard$ Card.Self | Destination$ Battlefield | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, put target card from an opponent's graveyard on the bottom of their library.
|
||||||
|
SVar:TrigChange:DB$ ChangeZone | ValidTgts$ Card.OppOwn | TgtPrompt$ Select target card in an opponent's graveyard | Origin$ Graveyard | Destination$ Library | LibraryPosition$ -1
|
||||||
|
K:TypeCycling:Basic:1 W
|
||||||
|
Oracle:When Landscaper Colos enters the battlefield, put target card from an opponent's graveyard on the bottom of their library.\nBasic landcycling {1}{W} ({1}{W}, Discard this card: Search your library for a basic land card, reveal it, put it into your hand, then shuffle.)
|
||||||
6
forge-gui/res/cardsfolder/upcoming/mental_journey.txt
Normal file
6
forge-gui/res/cardsfolder/upcoming/mental_journey.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
Name:Mental Journey
|
||||||
|
ManaCost:4 U U
|
||||||
|
Types:Instant
|
||||||
|
A:SP$ Draw | Cost$ 4 U U | NumCards$ 3 | SpellDescription$ Draw three cards.
|
||||||
|
K:TypeCycling:Basic:1 U
|
||||||
|
Oracle:Draw three cards.\nBasic landcycling {1}{U} ({1}{U}, Discard this card: Search your library for a basic land card, reveal it, put it into your hand, then shuffle.)
|
||||||
8
forge-gui/res/cardsfolder/upcoming/mistvault_bridge.txt
Normal file
8
forge-gui/res/cardsfolder/upcoming/mistvault_bridge.txt
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Name:Mistvault Bridge
|
||||||
|
ManaCost:no cost
|
||||||
|
Types:Artifact Land
|
||||||
|
A:AB$ Mana | Cost$ T | Produced$ U | SpellDescription$ Add {U}.
|
||||||
|
A:AB$ Mana | Cost$ T | Produced$ B | SpellDescription$ Add {B}.
|
||||||
|
K:CARDNAME enters the battlefield tapped.
|
||||||
|
K:Indestructible
|
||||||
|
Oracle:Mistvault Bridge enters the battlefield tapped.\nIndestructible\n{T}: Add {U} or {B}.
|
||||||
8
forge-gui/res/cardsfolder/upcoming/mystic_redaction.txt
Normal file
8
forge-gui/res/cardsfolder/upcoming/mystic_redaction.txt
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Name:Mystic Redaction
|
||||||
|
ManaCost:2 U
|
||||||
|
Types:Enchantment
|
||||||
|
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigScry | TriggerDescription$ At the beginning of your upkeep, scry 1.
|
||||||
|
SVar:TrigScry:DB$ Scry | ScryNum$ 1
|
||||||
|
T:Mode$ Discarded | ValidCard$ Card.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigMill | TriggerDescription$ Whenever you discard a card, each opponent mills two cards.
|
||||||
|
SVar:TrigMill:DB$ Mill | Defined$ Player.Opponent | NumCards$ 2
|
||||||
|
Oracle:At the beginning of your upkeep, scry 1.\nWhenever you discard a card, each opponent mills two cards.
|
||||||
15
forge-gui/res/cardsfolder/upcoming/out_of_time.txt
Normal file
15
forge-gui/res/cardsfolder/upcoming/out_of_time.txt
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
Name:Out of Time
|
||||||
|
ManaCost:1 W W
|
||||||
|
Types:Enchantment
|
||||||
|
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigUntap | TriggerDescription$ When CARDNAME enters the battlefield, untap all creatures, then phase them out until CARDNAME leaves the battlefield. Put a time counter on CARDNAME for each creature phased out this way.
|
||||||
|
SVar:TrigUntap:DB$ UntapAll | ValidCards$ Creature | RememberUntapped$ True | SubAbility$ DBPhase
|
||||||
|
SVar:DBPhase:DB$ Phases | Defined$ Remembered | WontPhaseInNormal$ True | ConditionPresent$ Card.Self | SubAbility$ DBEffect
|
||||||
|
SVar:DBEffect:DB$ Effect | Triggers$ TrigComeBack | RememberObjects$ Remembered | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnPhasedIn$ True | SubAbility$ DBPutCounter
|
||||||
|
SVar:TrigComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ DBPhaseIn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ These creatures phase out until CARDNAME leaves the battlefield.
|
||||||
|
SVar:DBPhaseIn:DB$ Phases | Defined$ Remembered | PhaseInOrOut$ True | SubAbility$ DBExileSelf
|
||||||
|
SVar:DBExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self
|
||||||
|
SVar:DBPutCounter:DB$ PutCounter | CounterType$ TIME | CounterNum$ X | SubAbility$ DBCleanup
|
||||||
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
|
SVar:X:Count$RememberedSize
|
||||||
|
K:Vanishing:0
|
||||||
|
Oracle:When Out of Time enters the battlefield, untap all creatures, then phase them out until Out of Time leaves the battlefield. Put a time counter on Out of Time for each creature phased out this way.\nVanishing (At the beginning of your upkeep, remove a time counter from this enchantment. When the last is removed, sacrifice it.)
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
Name:Phantasmal Dreadmaw
|
||||||
|
ManaCost:2 U U
|
||||||
|
Types:Creature Dinosaur Illusion
|
||||||
|
PT:6/6
|
||||||
|
K:Trample
|
||||||
|
T:Mode$ BecomesTarget | ValidTarget$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigSac | TriggerDescription$ When CARDNAME becomes the target of a spell or ability, sacrifice it.
|
||||||
|
SVar:TrigSac:DB$Sacrifice | Defined$ Self
|
||||||
|
SVar:Targeting:Dies
|
||||||
|
Oracle:Flying\nWhen Phantasmal Dreadmaw becomes the target of a spell or ability, sacrifice it.
|
||||||
8
forge-gui/res/cardsfolder/upcoming/razortide_bridge.txt
Normal file
8
forge-gui/res/cardsfolder/upcoming/razortide_bridge.txt
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Name:Razortide Bridge
|
||||||
|
ManaCost:no cost
|
||||||
|
Types:Artifact Land
|
||||||
|
A:AB$ Mana | Cost$ T | Produced$ W | SpellDescription$ Add {W}.
|
||||||
|
A:AB$ Mana | Cost$ T | Produced$ U | SpellDescription$ Add {U}.
|
||||||
|
K:CARDNAME enters the battlefield tapped.
|
||||||
|
K:Indestructible
|
||||||
|
Oracle:Razortide Bridge enters the battlefield tapped.\nIndestructible\n{T}: Add {W} or {U}.
|
||||||
8
forge-gui/res/cardsfolder/upcoming/rustvale_bridge.txt
Normal file
8
forge-gui/res/cardsfolder/upcoming/rustvale_bridge.txt
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Name:Rustvale Bridge
|
||||||
|
ManaCost:no cost
|
||||||
|
Types:Artifact Land
|
||||||
|
A:AB$ Mana | Cost$ T | Produced$ R | SpellDescription$ Add {R}.
|
||||||
|
A:AB$ Mana | Cost$ T | Produced$ W | SpellDescription$ Add {W}.
|
||||||
|
K:CARDNAME enters the battlefield tapped.
|
||||||
|
K:Indestructible
|
||||||
|
Oracle:Rustvale Bridge enters the battlefield tapped.\nIndestructible\n{T}: Add {R} or {W}.
|
||||||
10
forge-gui/res/cardsfolder/upcoming/serras_emissary.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/serras_emissary.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Name:Serra's Emissary
|
||||||
|
ManaCost:4 W W W
|
||||||
|
Types:Creature Angel
|
||||||
|
PT:7/7
|
||||||
|
K:Flying
|
||||||
|
K:ETBReplacement:Other:ChooseCT
|
||||||
|
SVar:ChooseCT:DB$ ChooseType | Defined$ You | Type$ Card | AILogic$ MostProminentOppControls | SpellDescription$ As CARDNAME enters the battlefield, choose a card type.
|
||||||
|
S:Mode$ Continuous | Affected$ You,Creature.YouCtrl | AddKeyword$ Protection from ChosenType | Description$ You and creatures you control have protection from the chosen type.
|
||||||
|
SVar:PlayMain1:TRUE
|
||||||
|
Oracle:As Serra's Emissary enters the battlefield, choose a card type. \nYou and creatures you control have protection from the chosen type.
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
Name:Silverbluff Bridge
|
||||||
|
ManaCost:no cost
|
||||||
|
Types:Artifact Land
|
||||||
|
A:AB$ Mana | Cost$ T | Produced$ U | SpellDescription$ Add {U}.
|
||||||
|
A:AB$ Mana | Cost$ T | Produced$ R | SpellDescription$ Add {R}.
|
||||||
|
K:CARDNAME enters the battlefield tapped.
|
||||||
|
K:Indestructible
|
||||||
|
Oracle:Silverbluff Bridge enters the battlefield tapped.\nIndestructible\n{T}: Add {U} or {R}.
|
||||||
8
forge-gui/res/cardsfolder/upcoming/slagwoods_bridge.txt
Normal file
8
forge-gui/res/cardsfolder/upcoming/slagwoods_bridge.txt
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Name:Slagwoods Bridge
|
||||||
|
ManaCost:no cost
|
||||||
|
Types:Artifact Land
|
||||||
|
A:AB$ Mana | Cost$ T | Produced$ R | SpellDescription$ Add {R}.
|
||||||
|
A:AB$ Mana | Cost$ T | Produced$ G | SpellDescription$ Add {G}.
|
||||||
|
K:CARDNAME enters the battlefield tapped.
|
||||||
|
K:Indestructible
|
||||||
|
Oracle:Slagwoods Bridge enters the battlefield tapped.\nIndestructible\n{T}: Add {R} or {G}.
|
||||||
13
forge-gui/res/cardsfolder/upcoming/so_shiny.txt
Normal file
13
forge-gui/res/cardsfolder/upcoming/so_shiny.txt
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
Name:So Shiny
|
||||||
|
ManaCost:2 U
|
||||||
|
Types:Enchantment Aura
|
||||||
|
K:Enchant creature
|
||||||
|
A:SP$ Attach | Cost$ 2 U | ValidTgts$ Creature | AILogic$ KeepTapped
|
||||||
|
T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | IsPresent$ Card.YouCtrl+token | PresentCompare$ GE1 | Execute$ TrigTap | TriggerDescription$ When CARDNAME enters the battlefield, if you control a token, tap enchanted creature, then scry 2.
|
||||||
|
SVar:TrigTap:DB$ Tap | Defined$ Enchanted | SubAbility$ DBScry
|
||||||
|
SVar:DBScry:DB$ Scry | ScryNum$ 2
|
||||||
|
S:Mode$ Continuous | Affected$ Creature.AttachedBy | AddHiddenKeyword$ CARDNAME doesn't untap during your untap step. | Description$ Enchanted creature doesn't untap during its controller's untap step.
|
||||||
|
DeckNeeds:Ability$Token
|
||||||
|
SVar:NeedsToPlayVar:Y GE1
|
||||||
|
SVar:Y:Count$Valid Permanent.token+YouCtrl
|
||||||
|
Oracle:Enchant creature\nWhen So Shiny enters the battlefield, if you control a token, tap enchanted creature, then scry 2.\nEnchanted creature doesn't untap during its controller's untap step.
|
||||||
6
forge-gui/res/cardsfolder/upcoming/step_through.txt
Normal file
6
forge-gui/res/cardsfolder/upcoming/step_through.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
Name:Step Through
|
||||||
|
ManaCost:3 U U
|
||||||
|
Types:Sorcery
|
||||||
|
K:TypeCycling:Wizard:2
|
||||||
|
A:SP$ ChangeZone | Cost$ 3 U U | TargetMin$ 2 | TargetMax$ 2 | ValidTgts$ Creature | TgtPrompt$ Select target creature | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Return two target creatures to their owners' hands.
|
||||||
|
Oracle:Return two target creatures to their owners' hands.\nWizardcycling {2} ({2}, Discard this card: Search your library for a Wizard card, reveal it, put it into your hand, then shuffle.)
|
||||||
10
forge-gui/res/cardsfolder/upcoming/subtlety.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/subtlety.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Name:Subtlety
|
||||||
|
ManaCost:2 U U
|
||||||
|
Types:Creature Elemental Incarnation
|
||||||
|
PT:3/3
|
||||||
|
K:Flash
|
||||||
|
K:Flying
|
||||||
|
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigTuck | TriggerDescription$ When CARDNAME enters the battlefield, choose up to one target creature spell or planeswalker spell. Its owner puts it on the top or bottom of their library.
|
||||||
|
SVar:TrigTuck:DB$ ChangeZone | ValidTgts$ Card.inZoneStack+Creature,Card.inZoneStack+Planeswalker | TgtZone$ Stack | TgtPrompt$ Select up to one target creature spell or planeswalker spell | AlternativeDecider$ TargetedController | Origin$ Stack | Fizzle$ True | Destination$ Library | LibraryPosition$ 0 | DestinationAlternative$ Library | LibraryPositionAlternative$ -1 | AlternativeDestinationMessage$ Would you like to put the card on the top of your library (and not on the bottom)? | SpellDescription$ Choose up to one target creature spell or planeswalker spell. Its owner puts it on the top or bottom of their library.
|
||||||
|
K:Evoke:ExileFromHand<1/Card.Blue+Other>
|
||||||
|
Oracle:Flash\nFlying\nWhen Subtlety enters the battlefield, choose up to one target creature spell or planeswalker spell. Its owner puts it on the top or bottom of their library.\nEvoke — Exile a blue card from your hand.
|
||||||
7
forge-gui/res/cardsfolder/upcoming/suspend.txt
Normal file
7
forge-gui/res/cardsfolder/upcoming/suspend.txt
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Name:Suspend
|
||||||
|
ManaCost:U
|
||||||
|
Types:Instant
|
||||||
|
A:SP$ ChangeZone | A:SP$ ChangeZone | Cost$ U | ValidTgts$ Creature | TgtPrompt$ Select target creature | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ DBPutCounter | SpellDescription$ Exile target creature and put two time counters on it. If it doesn't have suspend, it gains suspend.
|
||||||
|
SVar:DBPutCounter:DB$ PutCounter | Defined$ Remembered | CounterNum$ 2 | CounterType$ TIME | SubAbility$ DBPump
|
||||||
|
SVar:DBPump:DB$ PumpAll | ValidCards$ Card.IsRemembered+withoutSuspend | PumpZone$ Exile | KW$ Suspend | Permanent$ True | SubAbility$ DBCleanup | StackDescription$ If it doesn't have suspend, it gains suspend.
|
||||||
|
Oracle:Exile target creature and put two time counters on it. If it doesn't have suspend, it gains suspend. (At the beginning of its owner's upkeep, remove a time counter from that card. When the last is removed, the player plays it without paying its mana cost. If it's a creature, it has haste.)
|
||||||
8
forge-gui/res/cardsfolder/upcoming/tanglepool_bridge.txt
Normal file
8
forge-gui/res/cardsfolder/upcoming/tanglepool_bridge.txt
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Name:Tanglepool Bridge
|
||||||
|
ManaCost:no cost
|
||||||
|
Types:Artifact Land
|
||||||
|
A:AB$ Mana | Cost$ T | Produced$ G | SpellDescription$ Add {G}.
|
||||||
|
A:AB$ Mana | Cost$ T | Produced$ U | SpellDescription$ Add {U}.
|
||||||
|
K:CARDNAME enters the battlefield tapped.
|
||||||
|
K:Indestructible
|
||||||
|
Oracle:Tanglepool Bridge enters the battlefield tapped.\nIndestructible\n{T}: Add {G} or {U}.
|
||||||
8
forge-gui/res/cardsfolder/upcoming/thornglint_bridge.txt
Normal file
8
forge-gui/res/cardsfolder/upcoming/thornglint_bridge.txt
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Name:Thornglint Bridge
|
||||||
|
ManaCost:no cost
|
||||||
|
Types:Artifact Land
|
||||||
|
A:AB$ Mana | Cost$ T | Produced$ G | SpellDescription$ Add {G}.
|
||||||
|
A:AB$ Mana | Cost$ T | Produced$ W | SpellDescription$ Add {W}.
|
||||||
|
K:CARDNAME enters the battlefield tapped.
|
||||||
|
K:Indestructible
|
||||||
|
Oracle:Thornglint Bridge enters the battlefield tapped.\nIndestructible\n{T}: Add {G} or {W}.
|
||||||
6
forge-gui/res/cardsfolder/upcoming/vectis_gloves.txt
Normal file
6
forge-gui/res/cardsfolder/upcoming/vectis_gloves.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
Name:Vectis Gloves
|
||||||
|
ManaCost:2
|
||||||
|
Types:Artifact Equipment
|
||||||
|
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 2 | AddKeyword$ Artifact landwalk | Description$ Equipped creature gets +2/+0 and has artifact landwalk. (It can’t be blocked as long as defending player controls an artifact land.)
|
||||||
|
K:Equip:2
|
||||||
|
Oracle:Equipped creature gets +2/+0 and has artifact landwalk. (It can’t be blocked as long as defending player controls an artifact land.)\nEquip {2}
|
||||||
@@ -13,6 +13,9 @@ Type=Other
|
|||||||
18 U Shenanigans
|
18 U Shenanigans
|
||||||
19 R Ayula, Queen Among Bears
|
19 R Ayula, Queen Among Bears
|
||||||
20 R Deep Forest Hermit
|
20 R Deep Forest Hermit
|
||||||
|
22 U Llanowar Tribe
|
||||||
|
23 U Scale Up
|
||||||
|
26 M The First Sliver
|
||||||
28 U Ingenious Infiltrator
|
28 U Ingenious Infiltrator
|
||||||
30 U Soulherder
|
30 U Soulherder
|
||||||
32 M Sword of Truth and Justice
|
32 M Sword of Truth and Justice
|
||||||
|
|||||||
@@ -7,34 +7,64 @@ MciCode=mh2
|
|||||||
Type=Other
|
Type=Other
|
||||||
|
|
||||||
[cards]
|
[cards]
|
||||||
|
3 C Arcbound Mouser
|
||||||
8 C Break Ties
|
8 C Break Ties
|
||||||
|
10 U Constable of the Realm
|
||||||
|
18 C Landscaper Colos
|
||||||
19 C Late to Dinner
|
19 C Late to Dinner
|
||||||
25 U Prismatic Ending
|
25 U Prismatic Ending
|
||||||
30 M Serra's Emissary
|
30 M Serra's Emissary
|
||||||
35 R Timeless Dragon
|
35 R Timeless Dragon
|
||||||
|
39 R Disapprove
|
||||||
44 R Fractured Sanity
|
44 R Fractured Sanity
|
||||||
|
48 U Junk Winder
|
||||||
50 U Lucid Dreams
|
50 U Lucid Dreams
|
||||||
|
51 C Mental Journey
|
||||||
|
53 U Mystic Redaction
|
||||||
|
55 C Phantasmal Dreadmaw
|
||||||
58 R Rise and Shine
|
58 R Rise and Shine
|
||||||
59 R Rishadan Dockhand
|
59 R Rishadan Dockhand
|
||||||
63 C So Shiny
|
63 C So Shiny
|
||||||
|
66 C Step Through
|
||||||
67 M Subtlety
|
67 M Subtlety
|
||||||
|
68 C Suspend
|
||||||
|
70 U Sweep the Skies
|
||||||
|
73 U Vedalken Rogue
|
||||||
|
76 C Bone Shards
|
||||||
|
82 C Discerning Taste
|
||||||
|
85 U Flay Essence
|
||||||
87 M Grief
|
87 M Grief
|
||||||
89 C Kitchen Imp
|
89 C Kitchen Imp
|
||||||
94 U Necromancer's Familiar
|
94 U Necromancer's Familiar
|
||||||
|
96 R Persist
|
||||||
97 R Profane Tutor
|
97 R Profane Tutor
|
||||||
102 M Tourach, Dread Chanter
|
102 M Tourach, Dread Chanter
|
||||||
103 C Tourach's Canticle
|
103 C Tourach's Canticle
|
||||||
105 U Underworld Hermit
|
105 U Underworld Hermit
|
||||||
106 R Unmarked Grave
|
106 R Unmarked Grave
|
||||||
|
109 C World-Weary
|
||||||
110 U Young Necromancer
|
110 U Young Necromancer
|
||||||
|
113 U Arcbound Whelp
|
||||||
|
114 C Battle Plan
|
||||||
|
118 R Calibrated Blast
|
||||||
120 R Chef's Kiss
|
120 R Chef's Kiss
|
||||||
|
121 U Dragon's Rage Channeler
|
||||||
125 U Flametongue Yearling
|
125 U Flametongue Yearling
|
||||||
|
127 C Glavanic Relay
|
||||||
|
129 R Glimpse of Tomorrow
|
||||||
|
132 R Harmonic Prodigy
|
||||||
|
137 R Obsidian Charmaw
|
||||||
|
140 C Skophos Reaver
|
||||||
142 U Spreading Insurrection
|
142 U Spreading Insurrection
|
||||||
147 C Abundant Harvest
|
147 C Abundant Harvest
|
||||||
148 R Aeve, Progenitor Ooze
|
148 R Aeve, Progenitor Ooze
|
||||||
151 M Chatterfang, Squirrel General
|
151 M Chatterfang, Squirrel General
|
||||||
152 C Chatterstorm
|
152 C Chatterstorm
|
||||||
167 C "Bushitoad"
|
158 U Gifts of the Fae
|
||||||
|
162 R Gaea's Will
|
||||||
|
166 R Ignoble Hierarch
|
||||||
|
169 C Orchard Strider
|
||||||
|
170 C Rift Sower
|
||||||
172 U Scurry Oak
|
172 U Scurry Oak
|
||||||
174 U Squirrel Sanctuary
|
174 U Squirrel Sanctuary
|
||||||
175 U Squirrel Sovereign
|
175 U Squirrel Sovereign
|
||||||
@@ -43,96 +73,148 @@ Type=Other
|
|||||||
178 M Thrasta, Tempest's Roar
|
178 M Thrasta, Tempest's Roar
|
||||||
182 R Verdant Command
|
182 R Verdant Command
|
||||||
184 U Arcbound Shikari
|
184 U Arcbound Shikari
|
||||||
|
186 R Asmoranomardicadaistinaculdacar
|
||||||
189 R Carth the Lion
|
189 R Carth the Lion
|
||||||
192 M Dakkon, Shadow Slayer
|
192 M Dakkon, Shadow Slayer
|
||||||
194 C Drey Keeper
|
194 C Drey Keeper
|
||||||
197 M Garth One-Eye
|
197 M Garth One-Eye
|
||||||
|
198 R General Ferrous Rokiric
|
||||||
202 M Grist, the Hunger Tide
|
202 M Grist, the Hunger Tide
|
||||||
|
201 U Graceful Restoration
|
||||||
|
204 R Lonis, Cryptozoologist
|
||||||
208 R Priest of Fell Rites
|
208 R Priest of Fell Rites
|
||||||
211 U Ravenous Squirrel
|
211 U Ravenous Squirrel
|
||||||
|
212 U Road // Ruin
|
||||||
218 R Yusri, Fortune's Flame
|
218 R Yusri, Fortune's Flame
|
||||||
|
219 R Academy Manufacturer
|
||||||
222 C Bottle Golems
|
222 C Bottle Golems
|
||||||
223 U Brainstone
|
223 U Brainstone
|
||||||
225 R Diamond Lion
|
225 R Diamond Lion
|
||||||
228 U Liquimetal Torque
|
228 U Liquimetal Torque
|
||||||
229 U Monoskelion
|
229 U Monoskelion
|
||||||
234 M Scion of Draco
|
234 M Scion of Draco
|
||||||
237 U Steel Camel
|
237 U Steel Dromedary
|
||||||
238 M Sword of Hearth and Home
|
238 M Sword of Hearth and Home
|
||||||
|
239 C Tormod's Cryptkeeper
|
||||||
|
240 U The Underworld Cookbook
|
||||||
|
241 U Vectis Gloves
|
||||||
242 R Void Mirror
|
242 R Void Mirror
|
||||||
243 R Zabaz, the Glimmerwasp
|
243 R Zabaz, the Glimmerwasp
|
||||||
244 R Arid Mesa
|
244 R Arid Mesa
|
||||||
|
245 C Darkmoss Bridge
|
||||||
|
246 C Drossforge Bridge
|
||||||
|
247 C Goldmire Bridge
|
||||||
248 R Marsh Flats
|
248 R Marsh Flats
|
||||||
|
249 C Mistvault Bridge
|
||||||
250 R Misty Rainforest
|
250 R Misty Rainforest
|
||||||
|
252 C Razortide Bridge
|
||||||
|
253 C Rustvale Bridge
|
||||||
254 R Scalding Tarn
|
254 R Scalding Tarn
|
||||||
|
255 C Silverbluff Bridge
|
||||||
|
256 C Slagwoods Bridge
|
||||||
|
257 C Tanglepool Bridge
|
||||||
|
258 C Thornglint Bridge
|
||||||
259 R Urza's Saga
|
259 R Urza's Saga
|
||||||
260 R Verdant Catacombs
|
260 R Verdant Catacombs
|
||||||
|
264 U Seal of Cleansing
|
||||||
|
266 U Soul Snare
|
||||||
267 U Counterspell
|
267 U Counterspell
|
||||||
269 U Seal of Removal
|
269 U Seal of Removal
|
||||||
271 R Wonder
|
271 R Wonder
|
||||||
|
274 U Greed
|
||||||
275 R Patriarch's Bidding
|
275 R Patriarch's Bidding
|
||||||
276 U Skirge Familiar
|
276 U Skirge Familiar
|
||||||
277 R Chance Encounter
|
277 R Chance Encounter
|
||||||
|
278 U Flame Rift
|
||||||
279 R Goblin Bombardment
|
279 R Goblin Bombardment
|
||||||
|
281 M Imperial Recruiter
|
||||||
282 U Mogg Salvage
|
282 U Mogg Salvage
|
||||||
|
285 U Quirion Ranger
|
||||||
286 R Squirrel Mob
|
286 R Squirrel Mob
|
||||||
296 U Extruder
|
296 U Extruder
|
||||||
300 U Zuran Orb
|
300 U Zuran Orb
|
||||||
301 M Cabal Coffers
|
301 M Cabal Coffers
|
||||||
|
302 U Mishra's Factory
|
||||||
304 M Dakkon, Shadow Slayer
|
304 M Dakkon, Shadow Slayer
|
||||||
308 U Counterspell
|
306 M Grist, the Hunger Tide
|
||||||
|
308 R Counterspell
|
||||||
309 M Subtlety
|
309 M Subtlety
|
||||||
311 M Grief
|
311 M Grief
|
||||||
312 M Tourach, Dread Chanter
|
312 M Tourach, Dread Chanter
|
||||||
|
314 M Imperial Recruiter
|
||||||
316 M Chatterfang, Squirrel General
|
316 M Chatterfang, Squirrel General
|
||||||
318 M Thrasta, Tempest's Roar
|
318 M Thrasta, Tempest's Roar
|
||||||
323 M Scion of Draco
|
323 M Scion of Draco
|
||||||
324 M Sword of Hearth and Home
|
324 M Sword of Hearth and Home
|
||||||
325 M Cabal Coffers
|
325 M Cabal Coffers
|
||||||
|
326 R Mishra's Factory
|
||||||
329 C Late to Dinner
|
329 C Late to Dinner
|
||||||
333 M Serra's Emissary
|
333 M Serra's Emissary
|
||||||
|
334 R Disapprove
|
||||||
336 R Fractured Sanity
|
336 R Fractured Sanity
|
||||||
|
338 U Mystic Redaction
|
||||||
340 R Rise and Shine
|
340 R Rise and Shine
|
||||||
|
343 C Kitchen Imp
|
||||||
|
345 R Persist
|
||||||
347 U Underworld Hermit
|
347 U Underworld Hermit
|
||||||
350 U Flametongue Yearling
|
350 U Flametongue Yearling
|
||||||
|
352 R Harmonic Prodigy
|
||||||
354 C Abundant Harvest
|
354 C Abundant Harvest
|
||||||
357 R Sylvan Anthem
|
357 R Sylvan Anthem
|
||||||
359 R Verdant Command
|
359 R Verdant Command
|
||||||
360 U Arcbound Shikari
|
360 U Arcbound Shikari
|
||||||
363 M Dakkon, Shadow Slayer
|
363 M Dakkon, Shadow Slayer
|
||||||
364 U Prismatic Ending
|
|
||||||
365 M Garth One-Eye
|
365 M Garth One-Eye
|
||||||
|
366 R General Ferrous Rokiric
|
||||||
|
368 M Grist, the Hunger Tide
|
||||||
372 R Priest of Fell Rites
|
372 R Priest of Fell Rites
|
||||||
375 U Ravenous Squirrel
|
375 U Ravenous Squirrel
|
||||||
|
376 U Road // Ruin
|
||||||
380 R Urza's Saga
|
380 R Urza's Saga
|
||||||
385 R Timeless Dragon
|
384 U Prismatic Ending
|
||||||
|
388 R Timeless Dragon
|
||||||
391 R Rishadan Dockhand
|
391 R Rishadan Dockhand
|
||||||
|
392 C Step Through
|
||||||
|
395 C Bone Shards
|
||||||
|
400 R Persist
|
||||||
401 R Profane Tutor
|
401 R Profane Tutor
|
||||||
|
402 M Tourach, Dread Chanter
|
||||||
|
407 R Glimpse of Tomorrow
|
||||||
409 R Aeve, Progenitor Ooze
|
409 R Aeve, Progenitor Ooze
|
||||||
410 M Chatterfang, Squirrel General
|
410 M Chatterfang, Squirrel General
|
||||||
411 C Chatterstorm
|
411 C Chatterstorm
|
||||||
415 U Squirrel Sovereign
|
415 U Squirrel Sovereign
|
||||||
|
417 R Asmoranomardicadaistinaculdacar
|
||||||
418 R Carth the Lion
|
418 R Carth the Lion
|
||||||
420 M Garth One-Eye
|
420 M Garth One-Eye
|
||||||
426 U Brainstone
|
426 U Brainstone
|
||||||
427 R Diamond Lion
|
427 R Diamond Lion
|
||||||
|
428 U Liquimetal Torque
|
||||||
|
429 U Monoskelion
|
||||||
|
431 M Scion of Draco
|
||||||
433 M Sword of Hearth and Home
|
433 M Sword of Hearth and Home
|
||||||
|
434 U The Underworld Cookbook
|
||||||
435 R Void Mirror
|
435 R Void Mirror
|
||||||
436 R Arid Mesa
|
436 R Arid Mesa
|
||||||
437 R Marsh Flats
|
437 R Marsh Flats
|
||||||
438 R Misty Rainforest
|
438 R Misty Rainforest
|
||||||
439 R Scalding Tarn
|
439 R Scalding Tarn
|
||||||
440 R Verdant Catacombs
|
440 R Verdant Catacombs
|
||||||
443 R Timeless Dragon
|
442 R Out of Time
|
||||||
|
445 R Timeless Dragon
|
||||||
447 R Rishadan Dockhand
|
447 R Rishadan Dockhand
|
||||||
|
448 R Suspend
|
||||||
452 R Profane Tutor
|
452 R Profane Tutor
|
||||||
453 R Unmarked Grave
|
453 R Unmarked Grave
|
||||||
457 R Chef's Kiss
|
457 R Chef's Kiss
|
||||||
|
458 R Glimpse of Tomorrow
|
||||||
459 R Aeve, Progenitor Ooze
|
459 R Aeve, Progenitor Ooze
|
||||||
|
463 R Asmoranomardicadaistinaculdacar
|
||||||
464 R Carth the Lion
|
464 R Carth the Lion
|
||||||
468 R Yusri, Fortune's Flame
|
468 R Yusri, Fortune's Flame
|
||||||
470 R Diamond Lion
|
470 R Diamond Lion
|
||||||
473 R Void Mirror
|
473 R Void Mirror
|
||||||
|
474 R Zabaz, the Glimmerwasp
|
||||||
475 R Arid Mesa
|
475 R Arid Mesa
|
||||||
476 R Marsh Flats
|
476 R Marsh Flats
|
||||||
477 R Misty Rainforest
|
477 R Misty Rainforest
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ package forge.util;
|
|||||||
|
|
||||||
import forge.gui.FThreads;
|
import forge.gui.FThreads;
|
||||||
|
|
||||||
|
import java.awt.event.KeyEvent;
|
||||||
|
|
||||||
public class OperatingSystem {
|
public class OperatingSystem {
|
||||||
private static String os = System.getProperty("os.name").toLowerCase();
|
private static String os = System.getProperty("os.name").toLowerCase();
|
||||||
|
|
||||||
@@ -47,7 +49,10 @@ public class OperatingSystem {
|
|||||||
try {
|
try {
|
||||||
//use robot to simulate user action so system standby timer resets
|
//use robot to simulate user action so system standby timer resets
|
||||||
java.awt.Robot robot = new java.awt.Robot();
|
java.awt.Robot robot = new java.awt.Robot();
|
||||||
robot.keyPress(0xF002); //simulate F15 key press since that won't do anything noticable
|
if (isMac())
|
||||||
|
robot.keyPress(KeyEvent.VK_F1); // F15 increases Display Brightness by default. Switch to F1
|
||||||
|
else
|
||||||
|
robot.keyPress(KeyEvent.VK_F15); //simulate F15 key press since that won't do anything noticeable
|
||||||
|
|
||||||
delayedKeepAwakeTask = ThreadUtil.delay(30000, keepSystemAwake); //repeat every 30 seconds until flag cleared
|
delayedKeepAwakeTask = ThreadUtil.delay(30000, keepSystemAwake); //repeat every 30 seconds until flag cleared
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user