mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 10:18:01 +00:00
Merge branch 'unset-cards' into 'master'
Add dice rolling, and Waste Land See merge request core-developers/forge!4067
This commit is contained in:
@@ -115,8 +115,8 @@ public final class AbilityFactory {
|
||||
*
|
||||
* @param abString
|
||||
* a {@link java.lang.String} object.
|
||||
* @param hostCard
|
||||
* a {@link forge.game.card.Card} object.
|
||||
* @param state
|
||||
* a {@link forge.game.card.CardState} object.
|
||||
* @return a {@link forge.game.spellability.SpellAbility} object.
|
||||
*/
|
||||
public static final SpellAbility getAbility(final String abString, final CardState state) {
|
||||
@@ -282,6 +282,14 @@ public final class AbilityFactory {
|
||||
}
|
||||
}
|
||||
|
||||
if (api == ApiType.RollDice) {
|
||||
for (String param : mapParams.keySet()) {
|
||||
if (param.startsWith("On") || param.equals("Else")) {
|
||||
spellAbility.setAdditionalAbility(param, getSubAbility(state, mapParams.get(param), sVarHolder));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (spellAbility instanceof SpellApiBased && hostCard.isPermanent()) {
|
||||
String desc = mapParams.containsKey("SpellDescription") ? mapParams.get("SpellDescription")
|
||||
: spellAbility.getHostCard().getName();
|
||||
@@ -386,7 +394,6 @@ public final class AbilityFactory {
|
||||
*
|
||||
* @param sa
|
||||
* a {@link forge.game.spellability.SpellAbility} object.
|
||||
* @param mapParams
|
||||
*/
|
||||
private static final void initializeParams(final SpellAbility sa) {
|
||||
|
||||
@@ -402,7 +409,6 @@ public final class AbilityFactory {
|
||||
*
|
||||
* @param sa
|
||||
* a {@link forge.game.spellability.SpellAbility} object.
|
||||
* @param mapParams
|
||||
*/
|
||||
private static final void makeRestrictions(final SpellAbility sa) {
|
||||
// SpellAbilityRestrictions should be added in here
|
||||
@@ -417,7 +423,6 @@ public final class AbilityFactory {
|
||||
*
|
||||
* @param sa
|
||||
* a {@link forge.game.spellability.SpellAbility} object.
|
||||
* @param mapParams
|
||||
*/
|
||||
private static final void makeConditions(final SpellAbility sa) {
|
||||
// SpellAbilityRestrictions should be added in here
|
||||
|
||||
@@ -143,6 +143,7 @@ public enum ApiType {
|
||||
Reveal (RevealEffect.class),
|
||||
RevealHand (RevealHandEffect.class),
|
||||
ReverseTurnOrder (ReverseTurnOrderEffect.class),
|
||||
RollDice (RollDiceEffect.class),
|
||||
RollPlanarDice (RollPlanarDiceEffect.class),
|
||||
RunChaos (RunChaosEffect.class),
|
||||
Sacrifice (SacrificeEffect.class),
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
package forge.game.ability.effects;
|
||||
|
||||
import forge.game.ability.AbilityKey;
|
||||
import forge.game.ability.AbilityUtils;
|
||||
import forge.game.ability.SpellAbilityEffect;
|
||||
import forge.game.card.Card;
|
||||
import forge.game.player.Player;
|
||||
import forge.game.player.PlayerCollection;
|
||||
import forge.game.spellability.SpellAbility;
|
||||
import forge.game.trigger.TriggerType;
|
||||
import forge.util.Localizer;
|
||||
import forge.util.MyRandom;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class RollDiceEffect extends SpellAbilityEffect {
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see forge.card.abilityfactory.SpellEffect#getStackDescription(java.util.Map, forge.card.spellability.SpellAbility)
|
||||
*/
|
||||
@Override
|
||||
protected String getStackDescription(SpellAbility sa) {
|
||||
final PlayerCollection player = getTargetPlayers(sa);
|
||||
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
if (player.size() == 1 && player.get(0).equals(sa.getActivatingPlayer())) {
|
||||
stringBuilder.append("Roll ");
|
||||
} else {
|
||||
stringBuilder.append(player).append(" rolls ");
|
||||
}
|
||||
stringBuilder.append(sa.getParamOrDefault("Amt", "a")).append(" ");
|
||||
stringBuilder.append(sa.getParamOrDefault("Sides", "6")).append("-sided ");
|
||||
if (sa.getParamOrDefault("Amt", "1").equals("1")) {
|
||||
stringBuilder.append("die.");
|
||||
} else {
|
||||
stringBuilder.append("dice.");
|
||||
}
|
||||
return stringBuilder.toString();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see forge.card.ability.SpellAbilityEffect#resolve(forge.card.spellability.SpellAbility)
|
||||
*/
|
||||
@Override
|
||||
public void resolve(SpellAbility sa) {
|
||||
final Card host = sa.getHostCard();
|
||||
|
||||
int amount = AbilityUtils.calculateAmount(host, sa.getParamOrDefault("Amt", "1"), sa);
|
||||
int sides = AbilityUtils.calculateAmount(host, sa.getParamOrDefault("Sides", "6"), sa);
|
||||
|
||||
final PlayerCollection playersToRoll = getTargetPlayers(sa);
|
||||
|
||||
for(Player player : playersToRoll) {
|
||||
int total = 0;
|
||||
List<Integer> rolls = new ArrayList<>();
|
||||
for (int i = 0; i < amount; i++) {
|
||||
int roll = MyRandom.getRandom().nextInt(sides) + 1;
|
||||
rolls.add(roll);
|
||||
|
||||
final Map<AbilityKey, Object> runParams = AbilityKey.newMap();
|
||||
runParams.put(AbilityKey.Player, player);
|
||||
runParams.put(AbilityKey.Result, roll);
|
||||
player.getGame().getTriggerHandler().runTrigger(TriggerType.RolledDie, runParams, false);
|
||||
|
||||
total += roll;
|
||||
}
|
||||
|
||||
String message = Localizer.getInstance().getMessage("lblPlayerRolledResult", player, StringUtils.join(rolls, ", "));
|
||||
player.getGame().getAction().nofityOfValue(sa, player, message, null);
|
||||
|
||||
if (sa.hasParam("ResultSVar")) {
|
||||
host.setSVar(sa.getParam("ResultSVar"), ""+total);
|
||||
}
|
||||
if (sa.hasAdditionalAbility("OnDoubles") && rolls.get(0).equals(rolls.get(1))) {
|
||||
AbilityUtils.resolve(sa.getAdditionalAbility("OnDoubles"));
|
||||
}
|
||||
if (sa.hasAdditionalAbility("On"+total)) {
|
||||
AbilityUtils.resolve(sa.getAdditionalAbility("On"+total));
|
||||
} else if (sa.hasAdditionalAbility("Else")) {
|
||||
AbilityUtils.resolve(sa.getAdditionalAbility("Else"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -119,6 +119,8 @@ public enum CounterEnumType {
|
||||
|
||||
FUNGUS("FNGUS", 121, 219, 151),
|
||||
|
||||
FUNK("FUNK", 215, 24, 222),
|
||||
|
||||
FURY("FURY", 255, 120, 89),
|
||||
|
||||
FUSE("FUSE", 255, 122, 85),
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
package forge.game.trigger;
|
||||
|
||||
import forge.game.ability.AbilityKey;
|
||||
import forge.game.card.Card;
|
||||
import forge.game.spellability.SpellAbility;
|
||||
import forge.util.Expressions;
|
||||
import forge.util.Localizer;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class TriggerRolledDie extends Trigger {
|
||||
|
||||
public TriggerRolledDie(final Map<String, String> params, final Card host, final boolean intrinsic) {
|
||||
super(params, host, intrinsic);
|
||||
}
|
||||
|
||||
/** {@inheritDoc}
|
||||
* @param runParams*/
|
||||
@Override
|
||||
public final boolean performTest(final Map<AbilityKey, Object> runParams) {
|
||||
if (hasParam("ValidPlayer")) {
|
||||
if (!matchesValid(runParams.get(AbilityKey.Player), getParam("ValidPlayer").split(","),
|
||||
this.getHostCard())) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (hasParam("ValidResult")) {
|
||||
String[] params = getParam("ValidResult").split(",");
|
||||
final int result = (int) runParams.get(AbilityKey.Result);
|
||||
for (String param : params) {
|
||||
if (StringUtils.isNumeric(param)) {
|
||||
if (param.equals("" + result)) return true;
|
||||
} else {
|
||||
final String comp = param.substring(0, 2);
|
||||
final int rightSide = Integer.parseInt(param.substring(2));
|
||||
if (Expressions.compare(result, comp, rightSide)) return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/** {@inheritDoc} */
|
||||
@Override
|
||||
public final void setTriggeringObjects(final SpellAbility sa, Map<AbilityKey, Object> runParams) {
|
||||
sa.setTriggeringObjectsFrom(runParams, AbilityKey.Result, AbilityKey.Player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getImportantStackObjects(SpellAbility sa) {
|
||||
return Localizer.getInstance().getMessage("lblPlayer") + ": " + sa.getTriggeringObject(AbilityKey.Player) + ", " +
|
||||
Localizer.getInstance().getMessage("lblResultIs", sa.getTriggeringObject(AbilityKey.Result));
|
||||
}
|
||||
}
|
||||
@@ -84,6 +84,7 @@ public enum TriggerType {
|
||||
PlaneswalkedTo(TriggerPlaneswalkedTo.class),
|
||||
Regenerated(TriggerRegenerated.class),
|
||||
Revealed(TriggerRevealed.class),
|
||||
RolledDie(TriggerRolledDie.class),
|
||||
Sacrificed(TriggerSacrificed.class),
|
||||
Scry(TriggerScry.class),
|
||||
SearchedLibrary(TriggerSearchedLibrary.class),
|
||||
|
||||
9
forge-gui/res/cardsfolder/a/as_luck_would_have_it.txt
Normal file
9
forge-gui/res/cardsfolder/a/as_luck_would_have_it.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
Name:As Luck Would Have It
|
||||
ManaCost:G
|
||||
Types:Enchantment
|
||||
K:Hexproof
|
||||
T:Mode$ RolledDie | Execute$ TrigCounters | ValidPlayer$ You | TriggerDescription$ Whenever you roll a die, put a number of luck counters on As Luck Would Have It equal to the result. Then if there are 100 or more luck counters on As Luck Would Have It, you win the game.
|
||||
SVar:TrigCounters:DB$ PutCounter | Defined$ Self | CounterType$ LUCK | CounterNum$ X | SubAbility$ DBWin
|
||||
SVar:DBWin:DB$ WinsGame | Defined$ You | ConditionPresent$ Card.Self+counters_GE100_LUCK
|
||||
SVar:X:TriggerCount$Result
|
||||
Oracle:Whenever you roll a die, put a number of luck counters on As Luck Would Have It equal to the result. Then if there are 100 or more luck counters on As Luck Would Have It, you win the game. (Count both rolls if you reroll a die.)
|
||||
@@ -0,0 +1,7 @@
|
||||
Name:Box of Free-Range Goblins
|
||||
ManaCost:4 R R
|
||||
Types:Sorcery
|
||||
A:SP$ RollDice | Cost$ 4 R R | ResultSVar$ Result | SubAbility$ Tokens
|
||||
SVar:Tokens:DB$ Token | TokenAmount$ Result | TokenScript$ r_1_1_goblin | SpellDescription$ Create a number of 1/1 red Goblin creature tokens equal to the result.
|
||||
DeckHas:Ability$Token
|
||||
Oracle:Roll a six-sided die. Create a number of 1/1 red Goblin creature tokens equal to the result.
|
||||
9
forge-gui/res/cardsfolder/c/chicken_a_la_king.txt
Normal file
9
forge-gui/res/cardsfolder/c/chicken_a_la_king.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
Name:Chicken à la King
|
||||
ManaCost:1 U U
|
||||
Types:Creature Bird Noble
|
||||
PT:2/2
|
||||
T:Mode$ RolledDie | Execute$ TrigCounters | ValidResult$ 6 | TriggerDescription$ Whenever a 6 is rolled on a six-sided die, put a +1/+1 counter on each Bird.
|
||||
SVar:TrigCounters:DB$ PutCounterAll | ValidCards$ Bird | CounterType$ P1P1 | CounterNum$ 1
|
||||
A:AB$ RollDice | Cost$ tapXType<1/Bird> | SpellDescription$ Roll a six-sided die.
|
||||
DeckHas:Ability$Counters
|
||||
Oracle:Whenever a 6 is rolled on a six-sided die, put a +1/+1 counter on each Bird. (You may roll dice only when instructed to.)\nTap an untapped Bird you control: Roll a six-sided die. (Like now.)
|
||||
10
forge-gui/res/cardsfolder/c/chicken_egg.txt
Normal file
10
forge-gui/res/cardsfolder/c/chicken_egg.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
Name:Chicken Egg
|
||||
ManaCost:1 R
|
||||
Types:Creature Egg
|
||||
PT:0/1
|
||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigRoll | TriggerDescription$ At the beginning of your upkeep, roll a six-sided die. If you roll a 6, sacrifice CARDNAME and create a 4/4 red Giant Bird creature token.
|
||||
SVar:TrigRoll:DB$ RollDice | On6$ DBSac
|
||||
SVar:DBSac:DB$ Sacrifice | Defined$ Self | SubAbility$ DBToken
|
||||
SVar:DBToken:DB$ Token | TokenScript$ r_4_4_giant_chicken
|
||||
DeckHas:Ability$Token
|
||||
Oracle:At the beginning of your upkeep, roll a six-sided die. If you roll a 6, sacrifice Chicken Egg and create a 4/4 red Giant Bird creature token.
|
||||
7
forge-gui/res/cardsfolder/c/chittering_doom.txt
Normal file
7
forge-gui/res/cardsfolder/c/chittering_doom.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
Name:Chittering Doom
|
||||
ManaCost:3 G
|
||||
Types:Enchantment
|
||||
T:Mode$ RolledDie | Execute$ TrigToken | ValidPlayer$ You | ValidResult$ GE4 | TriggerDescription$ Whenever you roll a 4 or higher on a die, create a 1/1 green Squirrel creature token.
|
||||
SVar:TrigToken:DB$ Token | TokenScript$ g_1_1_squirrel
|
||||
DeckHas:Ability$Token
|
||||
Oracle:Whenever you roll a 4 or higher on a die, create a 1/1 green Squirrel creature token.
|
||||
17
forge-gui/res/cardsfolder/d/dungeon_master.txt
Normal file
17
forge-gui/res/cardsfolder/d/dungeon_master.txt
Normal file
@@ -0,0 +1,17 @@
|
||||
Name:Dungeon Master
|
||||
ManaCost:2 W U
|
||||
Types:Legendary Planeswalker Dungeon-Master
|
||||
Loyalty:1
|
||||
K:ETBReplacement:Other:RollLoyal
|
||||
SVar:RollLoyal:DB$ RollDice | Sides$ 4 | ResultSVar$ Result | SubAbility$ DBLoyalty | SpellDescription$ Add 1d4 loyalty counters to CARDNAME
|
||||
SVar:DBLoyalty:DB$ PutCounter | Defined$ Self | CounterType$ LOYALTY | CounterNum$ Result | ETB$ True
|
||||
A:AB$ Token | Cost$ AddCounter<1/LOYALTY> | ValidTgts$ Opponent | TokenOwner$ Targeted | TokenScript$ b_1_1_skeleton_opp_life | Planeswalker$ True | SpellDescription$ Target opponent creates a 1/1 black Skeleton creature token with "When this creature dies, each opponent gains 2 life.""
|
||||
A:AB$ RollDice | Cost$ AddCounter<1/LOYALTY> | Sides$ 2 | On1$ DBSkipTurn | ResultSVar$ Result | SubAbility$ DBDraw | SpellDescription$ Roll a d20. If you roll a 1, skip your next turn. If you roll a 12 or higher, draw a card.
|
||||
SVar:DBSkipTurn:DB$ SkipTurn | Defined$ You | NumTurns$ 1
|
||||
SVar:DBDraw:DB$ Draw | ConditionCheckSVar$ Result | ConditionSVarCompare$ GE12
|
||||
A:AB$ Token | Cost$ SubCounter<6/LOYALTY> | Planeswalker$ True | TokenScript$ r_3_3_fighter_first_strike | SubAbility$ DBCleric | SpellDescription$ You get an adventuring party. (Your party is a 3/3 red Fighter with first strike, a 1/1 white Cleric with lifelink, a 2/2 black Rogue with hexproof, and a 1/1 blue Wizard with flying.)
|
||||
SVar:DBCleric:DB$ Token | TokenScript$ w_1_1_cleric_lifelink | SubAbility$ DBRogue
|
||||
SVar:DBRogue:DB$ Token | TokenScript$ b_2_2_rogue_hexproof | SubAbility$ DBWizard
|
||||
SVar:DBWizard:DB$ Token | TokenScript$ u_1_1_wizard_flying
|
||||
DeckHas:Ability$Token
|
||||
Oracle:[+1]: Target opponent creates a 1/1 black Skeleton creature token with “When this creature dies, each opponent gains 2 life.”\n[+1]: Roll a d20. If you roll a 1, skip your next turn. If you roll a 12 or higher, draw a card.\n[−6]: You get an adventuring party. (Your party is a 3/3 red Fighter with first strike, a 1/1 white Cleric with lifelink, a 2/2 black Rogue with hexproof, and a 1/1 blue Wizard with flying.)
|
||||
10
forge-gui/res/cardsfolder/e/elvish_impersonators.txt
Normal file
10
forge-gui/res/cardsfolder/e/elvish_impersonators.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
Name:Elvish Impersonators
|
||||
ManaCost:3 G
|
||||
Types:Creature Elf
|
||||
PT:*/*
|
||||
K:Flying
|
||||
K:ETBReplacement:Other:TrigRoll
|
||||
SVar:TrigRoll:DB$ RollDice | ResultSVar$ SetPwr | SubAbility$ RollTough | SpellDescription$ As CARDNAME enters the battlefield, roll a six-sided die twice. Its base power becomes the first result and its base toughness becomes the second result.
|
||||
SVar:RollTough:DB$ RollDice | ResultSVar$ SetTgn | SubAbility$ DBAnimate
|
||||
SVar:DBAnimate:DB$ Animate | Defined$ Self | Power$ SetPwr | Toughness$ SetTgn
|
||||
Oracle:As Elvish Impersonators enters the battlefield, roll a six-sided die twice. Its base power becomes the first result and its base toughness becomes the second result.
|
||||
10
forge-gui/res/cardsfolder/g/goblin_tutor.txt
Normal file
10
forge-gui/res/cardsfolder/g/goblin_tutor.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
Name:Goblin Tutor
|
||||
ManaCost:R
|
||||
Types:Instant
|
||||
A:SP$ RollDice | Cost$ R | On2$ GetGobTut | On3$ GetEnch | On4$ GetArtif | On5$ GetCreat| On6$ GetSpell | SpellDescription$ Roll a six-sided die. Search your library for the indicated card, reveal it, put it into your hand, then shuffle your library.\n2 — A card named Goblin Tutor\n3 — An enchantment\n4 — An artifact\n5 — A creature\n6 — An instant or sorcery
|
||||
SVar:GetGobTut:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Card.namedGoblin Tutor | ChangeNum$ 1
|
||||
SVar:GetEnch:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Enchantment | ChangeNum$ 1
|
||||
SVar:GetArtif:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Artifact | ChangeNum$ 1
|
||||
SVar:GetCreat:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Creature | ChangeNum$ 1
|
||||
SVar:GetSpell:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Instant,Sorcery | ChangeNum$ 1
|
||||
Oracle:Roll a six-sided die. If you roll a 1, Goblin Tutor has no effect. Otherwise, search your library for the indicated card, reveal it, put it into your hand, then shuffle your library.\n2 — A card named Goblin Tutor\n3 — An enchantment\n4 — An artifact\n5 — A creature\n6 — An instant or sorcery
|
||||
9
forge-gui/res/cardsfolder/g/ground_pounder.txt
Normal file
9
forge-gui/res/cardsfolder/g/ground_pounder.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
Name:Ground Pounder
|
||||
ManaCost:1 G
|
||||
Types:Creature Goblin Warrior
|
||||
PT:2/2
|
||||
A:AB$ RollDice | Cost$ 3 G | ResultSVar$ X | SubAbility$ DBPump | SpellDescription$ Roll a six-sided die.
|
||||
SVar:DBPump:DB$ Pump | Defined$ Self | NumAtt$ X | NumDef$ X | SpellDescription$ CARDNAME gets +X/+X until end of turn, where X is the result.
|
||||
T:Mode$ RolledDie | Execute$ TrigTrample | ValidPlayer$ You | ValidResult$ GE5 | TriggerDescription$ Whenever you roll a 5 or higher on a die, CARDNAME gains trample until end of turn.
|
||||
SVar:TrigTrample:DB$ Pump | Defined$ Self | KW$ Trample
|
||||
Oracle:{3}{G}: Roll a six-sided die. Ground Pounder gets +X/+X until end of turn, where X is the result.\nWhenever you roll a 5 or higher on a die, Ground Pounder gains trample until end of turn.
|
||||
6
forge-gui/res/cardsfolder/g/growth_spurt.txt
Normal file
6
forge-gui/res/cardsfolder/g/growth_spurt.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:Growth Spurt
|
||||
ManaCost:1 G
|
||||
Types:Instant
|
||||
A:SP$ RollDice | Cost$ 1 G | ResultSVar$ X | SubAbility$ DBPump
|
||||
SVar:DBPump:DB$ Pump | ValidTgts$ Creature | NumAtt$ X | NumDef$ X | SpellDescription$ Target creature gets +X/+X until end of turn, where X is the result.
|
||||
Oracle:Roll a six-sided die. Target creature gets +X/+X until end of turn, where X is the result.
|
||||
7
forge-gui/res/cardsfolder/h/hammer_helper.txt
Normal file
7
forge-gui/res/cardsfolder/h/hammer_helper.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
Name:Hammer Helper
|
||||
ManaCost:3 R
|
||||
Types:Sorcery
|
||||
A:SP$ GainControl | Cost$ 3 R | ValidTgts$ Creature | TgtPrompt$ Select target creature | Untap$ True | LoseControl$ EOT | SubAbility$ DBRoll | SpellDescription$ Gain control of target creature until end of turn. Untap that creature.
|
||||
SVar:DBRoll:DB$ RollDice | ResultSVar$ X | SubAbility$ DBPump
|
||||
SVar:DBPump:DB$ Pump | Defined$ Targeted | NumAtt$ X | KW$ Haste | SpellDescription$ Until end of turn, it gains haste and gets +X/+0, where X is the result.
|
||||
Oracle:Gain control of target creature until end of turn. Untap that creature and roll a six-sided die. Until end of turn, it gains haste and gets +X/+0, where X is the result.
|
||||
13
forge-gui/res/cardsfolder/h/hammer_jammer.txt
Normal file
13
forge-gui/res/cardsfolder/h/hammer_jammer.txt
Normal file
@@ -0,0 +1,13 @@
|
||||
Name:Hammer Jammer
|
||||
ManaCost:3 R
|
||||
Types:Creature Goblin Warrior
|
||||
PT:0/0
|
||||
K:ETBReplacement:Other:RollCounters
|
||||
SVar:RollCounters:DB$ RollDice | ResultSVar$ Result | SubAbility$ DBCounters | SpellDescription$ As CARDNAME enters the battlefield, roll a six-sided die. CARDNAME enters the battlefield with a number of +1/+1 counters on it equal to the total of those results.
|
||||
SVar:DBCounters:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ Result | ETB$ True
|
||||
T:Mode$ RolledDie | Execute$ TrigRemove | ValidPlayer$ You | TriggerDescription$ Whenever you roll a die, remove all +1/+1 counters from CARDNAME, then put a number of +1/+1 counters on it equal to the result.
|
||||
SVar:TrigRemove:DB$ RemoveCounterAll | ValidCards$ Card.Self | CounterType$ P1P1 | AllCounters$ True | SubAbility$ TrigCounters
|
||||
SVar:X:TriggerCount$Result
|
||||
SVar:TrigCounters:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ X
|
||||
DeckHas:Ability$Counters
|
||||
Oracle:As Hammer Jammer enters the battlefield, roll a six-sided die. Hammer Jammer enters the battlefield with a number of +1/+1 counters on it equal to the result.\nWhenever you roll a die, remove all +1/+1 counters from Hammer Jammer, then put a number of +1/+1 counters on it equal to the result.
|
||||
12
forge-gui/res/cardsfolder/h/hydradoodle.txt
Normal file
12
forge-gui/res/cardsfolder/h/hydradoodle.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
Name:Hydradoodle
|
||||
ManaCost:X X G G
|
||||
Types:Creature Hydra Dog
|
||||
PT:0/0
|
||||
K:ETBReplacement:Other:RollCounters
|
||||
SVar:X:Count$xPaid
|
||||
SVar:RollCounters:DB$ RollDice | Amt$ X | ResultSVar$ Result | SubAbility$ DBCounters | SpellDescription$ As CARDNAME enters the battlefield, roll X six-sided dice. CARDNAME enters the battlefield with a number of +1/+1 counters on it equal to the total of those results.
|
||||
SVar:DBCounters:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ Result | ETB$ True
|
||||
K:Reach
|
||||
K:Trample
|
||||
DeckHas:Ability$Counters
|
||||
Oracle:As Hydradoodle enters the battlefield, roll X six-sided dice. Hydradoodle enters the battlefield with a number of +1/+1 counters on it equal to the total of those results.\nReach, trample
|
||||
11
forge-gui/res/cardsfolder/i/inhumaniac.txt
Normal file
11
forge-gui/res/cardsfolder/i/inhumaniac.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
Name:Inhumaniac
|
||||
ManaCost:1 B
|
||||
Types:Creature Brainiac
|
||||
PT:1/1
|
||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigRoll | TriggerDescription$ At the beginning of your upkeep, roll a six-sided die. On a 3 or 4, put a +1/+1 counter on Inhumaniac. On a 5 or higher, put two +1/+1 counters on it. On a 1, remove all +1/+1 counters from Inhumaniac.
|
||||
SVar:TrigRoll:DB$ RollDice | On3$ DBOne | On4$ DBOne | On5$ DBTwo | On6$ DBTwo | On1$ DBRemove
|
||||
SVar:DBOne:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1
|
||||
SVar:DBTwo:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 2
|
||||
SVar:DBRemove:DB$ RemoveCounterAll | ValidCards$ Card.Self | CounterType$ P1P1 | AllCounters$ True
|
||||
DeckHas:Ability$Counters
|
||||
Oracle:At the beginning of your upkeep, roll a six-sided die. On a 3 or 4, put a +1/+1 counter on Inhumaniac. On a 5 or higher, put two +1/+1 counters on it. On a 1, remove all +1/+1 counters from Inhumaniac.
|
||||
17
forge-gui/res/cardsfolder/j/jumbo_imp.txt
Normal file
17
forge-gui/res/cardsfolder/j/jumbo_imp.txt
Normal file
@@ -0,0 +1,17 @@
|
||||
Name:Jumbo Imp
|
||||
ManaCost:2 B
|
||||
Types:Creature Imp
|
||||
PT:0/0
|
||||
K:ETBReplacement:Other:RollCounters
|
||||
SVar:X:Count$xPaid
|
||||
SVar:RollCounters:DB$ RollDice | ResultSVar$ Result | SubAbility$ DBCountersETB | SpellDescription$ As Jumbo Imp enters the battlefield, roll a six-sided die. Jumbo Imp enters the battlefield with a number of +1/+1 counters on it equal to the result.
|
||||
SVar:DBCountersETB:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ Result | ETB$ True
|
||||
K:Flying
|
||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigRollUpkeep | TriggerDescription$ At the beginning of your upkeep, roll a six-sided die and put a number of +1/+1 counters on CARDNAME equal to the result.
|
||||
SVar:TrigRollUpkeep:DB$ RollDice | ResultSVar$ Result | SubAbility$ DBCountersUpkeep
|
||||
SVar:DBCountersUpkeep:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ Result
|
||||
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigRollEnd | TriggerDescription$ At the beginning of your end step, roll a six-sided die and remove a number of +1/+1 counters from Jumbo Imp equal to the result.
|
||||
SVar:TrigRollEnd:DB$ RollDice | ResultSVar$ Result | SubAbility$ DBCountersEnd
|
||||
SVar:DBCountersEnd:DB$ RemoveCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ Result
|
||||
DeckHas:Ability$Counters
|
||||
Oracle:Flying\nAs Jumbo Imp enters the battlefield, roll a six-sided die. Jumbo Imp enters the battlefield with a number of +1/+1 counters on it equal to the result.\nAt the beginning of your upkeep, roll a six-sided die and put a number of +1/+1 counters on Jumbo Imp equal to the result.\nAt the beginning of your end step, roll a six-sided die and remove a number of +1/+1 counters from Jumbo Imp equal to the result.
|
||||
9
forge-gui/res/cardsfolder/k/krazy_kow.txt
Normal file
9
forge-gui/res/cardsfolder/k/krazy_kow.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
Name:Krazy Kow
|
||||
ManaCost:3 R
|
||||
Types:Creature Cow
|
||||
PT:3/3
|
||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigRoll | TriggerDescription$ At the beginning of your upkeep, roll a six-sided die. If you a roll a 1, sacrifice Krazy Kow and it deals 3 damage to each creature and each player.
|
||||
SVar:TrigRoll:DB$ RollDice | On1$ DBSac
|
||||
SVar:DBSac:DB$ Sacrifice | Defined$ Self | SubAbility$ DBDamage
|
||||
SVar:DBDamage:DB$ DamageAll | ValidCards$ Creature | ValidPlayers$ Player | NumDmg$ 3
|
||||
Oracle:At the beginning of your upkeep, roll a six-sided die. If you a roll a 1, sacrifice Krazy Kow and it deals 3 damage to each creature and each player.
|
||||
14
forge-gui/res/cardsfolder/l/jack_in_the_mox.txt
Normal file
14
forge-gui/res/cardsfolder/l/jack_in_the_mox.txt
Normal file
@@ -0,0 +1,14 @@
|
||||
Name:Jack-in-the-Mox
|
||||
ManaCost:0
|
||||
Types:Artifact
|
||||
A:AB$ RollDice | Cost$ T | On1$ DBSac | On2$ AddW | On3$ AddU | On4$ AddB | On5$ AddR | On6$ AddG | InstantSpeed$ True | SubAbility$ Add0 | SpellDescription$ Roll a six-sided die. This ability has the indicated effect. 1—Sacrifice Jack-in-the-Mox and you lose 5 life. 2—Add {W}. 3—Add {U}. 4—Add {B}. 5-Add {R}. 6-Add {G}.
|
||||
SVar:DBSac:DB$ Sacrifice | Defined$ Self | SubAbility$ DBLoseLife
|
||||
SVar:DBLoseLife:DB$ LoseLife | LifeAmount$ 5
|
||||
SVar:AddW:DB$ Mana | Produced$ W
|
||||
SVar:AddU:DB$ Mana | Produced$ U
|
||||
SVar:AddB:DB$ Mana | Produced$ B
|
||||
SVar:AddR:DB$ Mana | Produced$ R
|
||||
SVar:AddG:DB$ Mana | Produced$ G
|
||||
SVar:Add0:DB$ Mana | Produced$ C | Amount$ 0
|
||||
SVar:PlayMain1:TRUE
|
||||
Oracle:{T}: Roll a six-sided die. This ability has the indicated effect.\n1 — Sacrifice Jack-in-the-Mox and you lose 5 life.\n2 — Add {W}.\n3 — Add {U}.\n4 — Add {B}.\n5 — Add {R}.\n6 — Add {G}.
|
||||
9
forge-gui/res/cardsfolder/l/lobe_lobber.txt
Normal file
9
forge-gui/res/cardsfolder/l/lobe_lobber.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
Name:Lobe Lobber
|
||||
ManaCost:2
|
||||
Types:Artifact Equipment
|
||||
K:Equip:2
|
||||
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddAbility$ WandDamage | AddSVar$ DBWandDmg | Description$ Equipped creature has "{T}: This creature deals 1 damage to target player or planeswalker. Roll a six-sided die. On a 5 or higher, untap it."
|
||||
SVar:WandDamage:AB$ DealDamage | Cost$ T | ValidTgts$ Planeswalker,Player | TgtPrompt$ Select target Planeswalker or player | NumDmg$ 1 | SubAbility$ DBRoll | SpellDescription$ This creature deals 1 damage to target player or planeswalker. Roll a six-sided die. On a 5 or higher, untap it.
|
||||
SVar:DBRoll:DB$ RollDice | On5$ DBUntap | On6$ DBUntap
|
||||
SVar:DBUntap:DB$ Untap
|
||||
Oracle:Equipped creature has “{T}: This creature deals 1 damage to target player or planeswalker. Roll a six-sided die. On a 5 or higher, untap it.”\nEquip {2}
|
||||
9
forge-gui/res/cardsfolder/m/goblin_bowling_team.txt
Normal file
9
forge-gui/res/cardsfolder/m/goblin_bowling_team.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
Name:Goblin Bowling Team
|
||||
ManaCost:3 R
|
||||
Types:Creature - Goblin
|
||||
PT:1/1
|
||||
R:Event$ DamageDone | ActiveZones$ Battlefield | ValidSource$ Card.Self | ReplaceWith$ RollDamage | Description$ If CARDNAME would deal damage to a permanent or player, it deals that much damage plus the result of a six-sided die roll to that permanent or player instead.
|
||||
SVar:RollDamage:DB$ RollDice | ResultSVar$ Result | SubAbility$ DmgPlus
|
||||
SVar:DmgPlus:DB$ ReplaceEffect | VarName$ DamageAmount | VarValue$ X | References$ X
|
||||
SVar:X:ReplaceCount$DamageAmount/Plus.Result
|
||||
Oracle:If Goblin Bowling Team would deal damage to a permanent or player, it deals that much damage plus the result of a six-sided die roll to that permanent or player instead.
|
||||
9
forge-gui/res/cardsfolder/m/mad_science_fair_project.txt
Normal file
9
forge-gui/res/cardsfolder/m/mad_science_fair_project.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
Name:Mad Science Fair Project
|
||||
ManaCost:3
|
||||
Types:Artifact
|
||||
A:AB$ Pump | Cost$ T | ValidTgts$ Player | SubAbility$ DBRoll
|
||||
SVar:DBRoll:DB$ RollDice | On1$ AddC | On2$ AddC | On3$ AddC | Else$ AddAny | SpellDescription$ {T}: Roll a six-sided die. On a 3 or lower, target player adds {C}. Otherwise, that player adds one mana of any color they choose.
|
||||
SVar:AddC:DB$ Mana | Produced$ C | Defined$ Targeted
|
||||
SVar:AddAny:DB$ Mana | Produced$ Any | Defined$ Targeted
|
||||
SVar:PlayMain1:TRUE
|
||||
Oracle:{T}: Roll a six-sided die. On a 3 or lower, target player adds {C}. Otherwise, that player adds one mana of any color they choose.
|
||||
8
forge-gui/res/cardsfolder/p/painiac.txt
Normal file
8
forge-gui/res/cardsfolder/p/painiac.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
Name:Painiac
|
||||
ManaCost:2 R
|
||||
Types:Creature Brainiac
|
||||
PT:0/3
|
||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigRoll | TriggerDescription$ At the beginning of your upkeep, roll a six-sided die. CARDNAME gets +X/+0 until end of turn, where X is the result.
|
||||
SVar:TrigRoll:DB$ RollDice | ResultSVar$ X | SubAbility$ DBPump
|
||||
SVar:DBPump:DB$ Pump | Defined$ Self | NumAtt$ X
|
||||
Oracle:At the beginning of your upkeep, roll a six-sided die. Painiac gets +X/+0 until end of turn, where X is the result.
|
||||
11
forge-gui/res/cardsfolder/p/poultrygeist.txt
Normal file
11
forge-gui/res/cardsfolder/p/poultrygeist.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
Name:Poultrygeist
|
||||
ManaCost:2 B
|
||||
Types:Creature Bird Spirit
|
||||
PT:1/1
|
||||
K:Flying
|
||||
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature | TriggerZones$ Battlefield | Execute$ TrigRoll | TriggerDescription$ Whenever a creature dies, you may roll a six-sided die. If you roll a 1, sacrifice CARDNAME. Otherwise, put a +1/+1 counter on CARDNAME.
|
||||
SVar:TrigRoll:DB$ RollDice | On1$ DBSac | Else$ DBCounter
|
||||
SVar:DBSac:DB$ Sacrifice | Defined$ Self
|
||||
SVar:DBCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1
|
||||
DeckHas:Ability$Counters
|
||||
Oracle:Flying\nWhenever a creature dies, you may roll a six-sided die. If you roll a 1, sacrifice Poultrygeist. Otherwise, put a +1/+1 counter on Poultrygeist.
|
||||
15
forge-gui/res/cardsfolder/s/spark_fiend.txt
Normal file
15
forge-gui/res/cardsfolder/s/spark_fiend.txt
Normal file
@@ -0,0 +1,15 @@
|
||||
Name:Spark Fiend
|
||||
ManaCost:4 R
|
||||
Types:Creature Beast
|
||||
PT:5/6
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigRollETB | TriggerDescription$ When Spark Fiend enters the battlefield, roll two six-sided dice. If you rolled 2, 3, or 12, sacrifice Spark Fiend. If you rolled 7 or 11, don’t roll dice for Spark Fiend during any of your following upkeeps. If you rolled any other total, note that total.
|
||||
SVar:TrigRollETB:DB$ RollDice | Amt$ 2 | On2$ DBSac | On3$ DBSac | On12$ DBSac | On7$ DBSafe | Else$ DBNote | ResultSVar$ Result
|
||||
SVar:DBSac:DB$ Sacrifice | Defined$ Self
|
||||
SVar:Safe:Number$1
|
||||
SVar:Noted:Number$0
|
||||
SVar:DBSafe:DB$ StoreSVar | SVar$ Safe | Type$ Number | Expression$ 0
|
||||
SVar:DBNote:DB$ StoreSVar | SVar$ Noted | Type$ CountSVar | Expression$ Result
|
||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | CheckSVar$ Safe | SVarCompare$ NE0 | TriggerZones$ Battlefield | Execute$ TrigRoll | TriggerDescription$ At the beginning of your upkeep, roll two six-sided dice. If you rolled 7, sacrifice Spark Fiend. If you roll the noted total, don’t roll dice for Spark Fiend during any of your following upkeeps. Otherwise, do nothing.
|
||||
SVar:TrigRoll:DB$ RollDice | Amt$ 2 | On7$ DBSac | ResultSVar$ Result | SubAbility$ DBCheck
|
||||
SVar:DBCheck:DB$ StoreSVar | SVar$ Safe | Type$ CountSVar | Expression$ Result/Minus.Noted
|
||||
Oracle:When Spark Fiend enters the battlefield, roll two six-sided dice. If you rolled 2, 3, or 12, sacrifice Spark Fiend. If you rolled 7 or 11, don’t roll dice for Spark Fiend during any of your following upkeeps. If you rolled any other total, note that total.\nAt the beginning of your upkeep, roll two six-sided dice. If you rolled 7, sacrifice Spark Fiend. If you roll the noted total, don’t roll dice for Spark Fiend during any of your following upkeeps. Otherwise, do nothing.
|
||||
9
forge-gui/res/cardsfolder/s/steel_squirrel.txt
Normal file
9
forge-gui/res/cardsfolder/s/steel_squirrel.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
Name:Steel Squirrel
|
||||
ManaCost:2
|
||||
Types:Artifact Creature Squirrel
|
||||
PT:1/1
|
||||
T:Mode$ RolledDie | Execute$ TrigPump | ValidPlayer$ You | ValidResult$ GE5 | TriggerDescription$ Whenever you roll a 5 or higher on a die, CARDNAME gets +X/+X until end of turn, where X is the result.
|
||||
SVar:TrigPump:DB$ Pump | Defined$ Self | NumAtt$ X | NumDef$ X
|
||||
SVar:X:TriggerCount$Result
|
||||
A:AB$ RollDice | Cost$ 6 | SpellDescription$ Roll a six-sided die.
|
||||
Oracle:{3}{G}: Roll a six-sided die. Ground Pounder gets +X/+X until end of turn, where X is the result.\nWhenever you roll a 5 or higher on a die, Ground Pounder gains trample until end of turn.
|
||||
14
forge-gui/res/cardsfolder/s/strategy_schmategy.txt
Normal file
14
forge-gui/res/cardsfolder/s/strategy_schmategy.txt
Normal file
@@ -0,0 +1,14 @@
|
||||
Name:Strategy, Schmategy
|
||||
ManaCost:1 R
|
||||
Types:Sorcery
|
||||
A:SP$ StoreSVar | Cost$ 1 R | SVar$ Left | Type$ Number | Expression$ 1 | SubAbility$ DBRepeat
|
||||
SVar:DBRepeat:DB$ Repeat | RepeatCheckSVar$ Left | RepeatSVarCompare$ GT0 | RepeatSubAbility$ Roll | StackDescription$ Roll a six-sided die. Strategy, Schmategy has the indicated effect. 1-Do nothing. 2-Destroy all artifacts. 3-Destroy all lands. 4-Strategy, Schmategy deals 3 damage to each creature and each player. 5-Each player discards their hand and draws seven cards. 6-Repeat this process two more times.
|
||||
SVar:Roll:DB$ RollDice | On2$ DBArtif | On3$ DBLand | On4$ DBDamage | On5$ DBWheel | On6$ DBTwoMore | SubAbility$ DBDecr
|
||||
SVar:DBArtif:DB$ DestroyAll | ValidCards$ Artifact
|
||||
SVar:DBLand:DB$ DestroyAll | ValidCards$ Land
|
||||
SVar:DBDamage:DB$ DamageAll | ValidCards$ Creature | ValidPlayers$ Player | NumDmg$ 3
|
||||
SVar:DBWheel:DB$ Discard | Mode$ Hand | Defined$ Player | SubAbility$ DBEachDraw
|
||||
SVar:DBEachDraw:DB$ Draw | Defined$ Player | NumCards$ 7
|
||||
SVar:DBTwoMore:DB$ StoreSVar | SVar$ Left | Type$ CountSVar | Expression$ Left/Plus.2
|
||||
SVar:DBDecr:DB$ StoreSVar | SVar$ Left | Type$ CountSVar | Expression$ Left/Minus.1
|
||||
Oracle:Roll a six-sided die. Strategy, Schmategy has the indicated effect.\n1 — Do nothing.\n2 — Destroy all artifacts.\n3 — Destroy all lands.\n4 — Strategy, Schmategy deals 3 damage to each creature and each player.\n5 — Each player discards their hand and draws seven cards.\n6 — Repeat this process two more times.
|
||||
@@ -6,7 +6,7 @@ S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 2 | AddToughness$
|
||||
T:Mode$ DamageDone | ValidSource$ Creature.EquippedBy | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigLoop | TriggerZones$ Battlefield | TriggerDescription$ Whenever equipped creature deals combat damage to a player, create a 4/4 gold Dragon creature token with flying and roll a d20 (a twenty-sided die). If you roll a 20, repeat this process.
|
||||
SVar:TrigLoop:DB$ Repeat | RepeatCheckSVar$ RepeatCheck | RepeatSVarCompare$ GT0 | RepeatSubAbility$ TrigToken | StackDescription$ Create a 4/4 gold Dragon creature token with flying and roll a d20. If you roll a 20, repeat this process.
|
||||
SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ c_4_4_dragon_flying | TokenOwner$ You | SubAbility$ RollDie
|
||||
SVar:RollDie:DB$ GenericChoice | Choices$ Win,Lose,Lose,Lose,Lose,Lose,Lose,Lose,Lose,Lose,Lose,Lose,Lose,Lose,Lose,Lose,Lose,Lose,Lose,Lose | AtRandom$ True
|
||||
SVar:RollDie:DB$ RollDice | Sides$ 20 | On20$ Win | Else$ Lose
|
||||
SVar:Win:DB$ StoreSVar | SVar$ RepeatCheck | Type$ Number | Expression$ 1
|
||||
SVar:Lose:DB$ StoreSVar | SVar$ RepeatCheck | Type$ Number | Expression$ 0
|
||||
SVar:RepeatCheck:Number$ 1
|
||||
|
||||
14
forge-gui/res/cardsfolder/t/temp_of_the_damned.txt
Normal file
14
forge-gui/res/cardsfolder/t/temp_of_the_damned.txt
Normal file
@@ -0,0 +1,14 @@
|
||||
Name:Temp of the Damned
|
||||
ManaCost:2 B
|
||||
Types:Creature Zombie
|
||||
PT:3/3
|
||||
K:ETBReplacement:Other:RollCounters
|
||||
SVar:RollCounters:DB$ RollDice | ResultSVar$ Result | SubAbility$ DBCounters | SpellDescription$ As CARDNAME enters the battlefield, roll a six-sided die. CARDNAME enters the battlefield with a number of FUNK counters on it equal to the total of those results.
|
||||
SVar:DBCounters:DB$ PutCounter | Defined$ Self | CounterType$ FUNK | CounterNum$ Result | ETB$ True
|
||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigRemove | TriggerDescription$ At the beginning of your upkeep, remove a funk counter from CARDNAME. If you can’t, sacrifice it.
|
||||
SVar:TrigRemove:DB$ RemoveCounter | Defined$ Self | CounterType$ FUNK | CounterNum$ 1 | RememberRemoved$ True | SubAbility$ DBSac
|
||||
SVar:DBSac:DB$ Sacrifice | SacValid$ Self | ConditionCheckSVar$ FadingCheckSVar | ConditionSVarCompare$ EQ0 | SubAbility$ DBCleanup
|
||||
SVar:FadingCheckSVar:Count$RememberedSize
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
DeckHas:Ability$Counters
|
||||
Oracle:As Temp of the Damned enters the battlefield, roll a six-sided die. Temp of the Damned enters the battlefield with a number of funk counters on it equal to the result.\nAt the beginning of your upkeep, remove a funk counter from Temp of the Damned. If you can’t, sacrifice it.
|
||||
6
forge-gui/res/cardsfolder/t/time_out.txt
Normal file
6
forge-gui/res/cardsfolder/t/time_out.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:Time Out
|
||||
ManaCost:4 U
|
||||
Types:Instant
|
||||
A:SP$ RollDice | Cost$ 4 U | ResultSVar$ X | SubAbility$ Tuck
|
||||
SVar:Tuck:DB$ ChangeZone | ValidTgts$ Permanent.nonLand | TgtPrompt$ Select target nonland permanent | Origin$ Battlefield | Destination$ Library | LibraryPosition$ X | SpellDescription$ Put target nonland permanent into its owner's library just beneath the top X cards of that library.
|
||||
Oracle:Roll a six-sided die. Put target nonland permanent into its owner’s library just beneath the top X cards of that library, where X is the result.
|
||||
12
forge-gui/res/cardsfolder/u/urza's_science_fair_project.txt
Normal file
12
forge-gui/res/cardsfolder/u/urza's_science_fair_project.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
Name:Urza's Science Fair Project
|
||||
ManaCost:6
|
||||
Types:Artifact Creature Construct
|
||||
PT:4/4
|
||||
A:AB$ RollDice | Cost$ 2 | On1$ M2 | On2$ Fog | On3$ Vig | On4$ FS | On5$ Fly | On6$ P2 | SpellDescription$ Roll a six-sided die. CARDNAME gets the indicated result: 1-It gets -2/-2 until end of turn. 2-Prevent all combat damage it would deal this turn. 3-It gains vigilance until end of turn. 4-It gains first strike until end of turn. 5-It gains flying until end of turn. 6-It gets +2/+2 until end of turn.
|
||||
SVar:M2:DB$ Pump | Defined$ Self | NumAtt$ -2 | NumDef$ -2
|
||||
SVar:Fog:DB$ Pump | Defined$ Self | KW$ Prevent all combat damage that would be dealt by CARDNAME.
|
||||
SVar:Vig:DB$ Pump | Defined$ Self | KW$ Vigilance
|
||||
SVar:FS:DB$ Pump | Defined$ Self | KW$ First Strike
|
||||
SVar:Fly:DB$ Pump | Defined$ Self | KW$ Flying
|
||||
SVar:P2:DB$ Pump | Defined$ Self | NumAtt$ 2 | NumDef$ 2
|
||||
Oracle:{2}: Roll a six-sided die. Urza’s Science Fair Project gets the indicated result.\n1 — It gets -2/-2 until end of turn.\n2 — Prevent all combat damage it would deal this turn.\n3 — It gains vigilance until end of turn.\n4 — It gains first strike until end of turn.\n5 — It gains flying until end of turn.\n6 — It gets +2/+2 until end of turn.
|
||||
7
forge-gui/res/cardsfolder/w/waste_land.txt
Normal file
7
forge-gui/res/cardsfolder/w/waste_land.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
Name:Waste Land
|
||||
ManaCost:no cost
|
||||
Types:Land
|
||||
A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C}.
|
||||
A:AB$ Destroy | Cost$ T Sac<1/CARDNAME> | ValidTgts$ Land.nonBasic | TgtPrompt$ Select target land. | SubAbility$ DBToken | AILogic$ GhostQuarter | AITgts$ Land.nonBasic | SpellDescription$ Destroy target nonbasicland. That land's controller creates a Wastes land token. (It has {T}: Add {C}.)
|
||||
SVar:DBToken:DB$ Token | TokenScript$ c_l_wastes | TokenOwner$ TargetedController
|
||||
Oracle:{T}: Add {C}.\n{T}, Sacrifice Waste Land: Destroy target nonbasic land. That land's controller creates a Wastes land token. (It has {T}: Add {C}.)
|
||||
10
forge-gui/res/cardsfolder/w/willing_test_subject.txt
Normal file
10
forge-gui/res/cardsfolder/w/willing_test_subject.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
Name:Willing Test Subject
|
||||
ManaCost:2 G
|
||||
Types:Creature Spider Monkey Scientist
|
||||
PT:2/2
|
||||
K:Reach
|
||||
T:Mode$ RolledDie | Execute$ TrigCounter | ValidPlayer$ You | ValidResult$ GE4 | TriggerDescription$ Whenever you roll a 4 or higher on a die, put a +1/+1 counter on CARDNAME.
|
||||
SVar:TrigCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1
|
||||
A:AB$ RollDice | Cost$ 6 | SpellDescription$ Roll a six-sided die.
|
||||
DeckHas:Ability$Counters
|
||||
Oracle:Reach\nWhenever you roll a 4 or higher on a die, put a +1/+1 counter on Willing Test Subject.\n{6}: Roll a six-sided die.
|
||||
@@ -5,5 +5,5 @@ PT:1/1
|
||||
K:Shadow
|
||||
T:Mode$ AttackerUnblocked | ValidCard$ Card.Self | Execute$ TrigDamage | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME attacks and isn't blocked, you may have it deal 1 damage to target creature. If you do, prevent all combat damage CARDNAME would deal this turn.
|
||||
SVar:TrigDamage:DB$ DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ 1 | SubAbility$ DBPump
|
||||
SVar:DBPump:DB$ Pump | Defined$ Self KW$ Prevent all combat damage that would be dealt by CARDNAME.
|
||||
SVar:DBPump:DB$ Pump | Defined$ Self | KW$ Prevent all combat damage that would be dealt by CARDNAME.
|
||||
Oracle:Shadow (This creature can block or be blocked by only creatures with shadow.)\nWhenever Zealot il-Vec attacks and isn't blocked, you may have it deal 1 damage to target creature. If you do, prevent all combat damage Zealot il-Vec would deal this turn.
|
||||
|
||||
@@ -42,6 +42,7 @@ Berserker:Berserkers
|
||||
Bird:Birds
|
||||
Blinkmoth:Blinkmoths
|
||||
Boar:Boars
|
||||
Brainiac:Brainiacs
|
||||
Bringer:Bringers
|
||||
Brushwagg:Brushwaggs
|
||||
Camarid:Camarids
|
||||
@@ -89,6 +90,7 @@ Elk:Elks
|
||||
Eye:Eyes
|
||||
Faerie:Faeries
|
||||
Ferret:Ferrets
|
||||
Fighter:Fighters
|
||||
Fish:Fish
|
||||
Flagbearer:Flagbearers
|
||||
Fox:Foxes
|
||||
@@ -209,6 +211,7 @@ Sand:Sands
|
||||
Saproling:Saprolings
|
||||
Satyr:Satyrs
|
||||
Scarecrow:Scarecrows
|
||||
Scientist:Scientists
|
||||
Scion:Scions
|
||||
Scorpion:Scorpions
|
||||
Scout:Scouts
|
||||
@@ -313,6 +316,7 @@ Davriel
|
||||
Domri
|
||||
Dovin
|
||||
Duck
|
||||
Dungeon-Master
|
||||
Elspeth
|
||||
Estrid
|
||||
Freyalise
|
||||
|
||||
8
forge-gui/res/tokenscripts/b_1_1_skeleton_opp_life.txt
Normal file
8
forge-gui/res/tokenscripts/b_1_1_skeleton_opp_life.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
Name:Skeleton
|
||||
ManaCost:no cost
|
||||
Types:Creature Minion
|
||||
Colors:black
|
||||
PT:1/1
|
||||
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigGainLife | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, each opponent gains 2 life.
|
||||
SVar:TrigGainLife:DB$ GainLife | Defined$ Player.Opponent | LifeAmount$ 2
|
||||
Oracle:When this creature dies, each opponent gains 2 life.
|
||||
7
forge-gui/res/tokenscripts/b_2_2_rogue_hexproof.txt
Normal file
7
forge-gui/res/tokenscripts/b_2_2_rogue_hexproof.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
Name:Rogue
|
||||
ManaCost:no cost
|
||||
Types:Creature Rogue
|
||||
Colors:black
|
||||
PT:2/2
|
||||
K:Hexproof
|
||||
Oracle:Hexproof (This creature can't be the target of spells or abilities your opponents control.)
|
||||
6
forge-gui/res/tokenscripts/c_l_wastes.txt
Normal file
6
forge-gui/res/tokenscripts/c_l_wastes.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:Wastes
|
||||
ManaCost:no cost
|
||||
Types:Land
|
||||
A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C}.
|
||||
DeckHas:Ability$Mana.Colorless
|
||||
Oracle:{T}: Add {C}.
|
||||
@@ -0,0 +1,7 @@
|
||||
Name:Fighter
|
||||
ManaCost:no cost
|
||||
Types:Creature Fighter
|
||||
Colors:red
|
||||
PT:3/3
|
||||
K:First Strike
|
||||
Oracle:First strike
|
||||
@@ -1,6 +1,6 @@
|
||||
Name:Giant Chicken
|
||||
ManaCost:no cost
|
||||
Types:Creature Giant Chicken
|
||||
Types:Creature Giant Bird
|
||||
Colors:red
|
||||
PT:4/4
|
||||
Oracle:
|
||||
7
forge-gui/res/tokenscripts/u_1_1_wizard_flying.txt
Normal file
7
forge-gui/res/tokenscripts/u_1_1_wizard_flying.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
Name:Wizard
|
||||
ManaCost:no cost
|
||||
Types:Creature Wizard
|
||||
Colors:blue
|
||||
PT:1/1
|
||||
K:Flying
|
||||
Oracle:Flying
|
||||
7
forge-gui/res/tokenscripts/w_1_1_cleric_lifelink.txt
Normal file
7
forge-gui/res/tokenscripts/w_1_1_cleric_lifelink.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
Name:Cleric
|
||||
ManaCost:no cost
|
||||
Types:Creature Cleric
|
||||
Colors:white
|
||||
PT:1/1
|
||||
K:Lifelink
|
||||
Oracle:Lifelink
|
||||
Reference in New Issue
Block a user