This commit is contained in:
churrufli
2019-04-09 14:21:03 +02:00
57 changed files with 570 additions and 17 deletions

View File

@@ -6,7 +6,7 @@
<parent> <parent>
<artifactId>forge</artifactId> <artifactId>forge</artifactId>
<groupId>forge</groupId> <groupId>forge</groupId>
<version>1.6.23-SNAPSHOT</version> <version>1.6.24-SNAPSHOT</version>
</parent> </parent>
<artifactId>forge-ai</artifactId> <artifactId>forge-ai</artifactId>

View File

@@ -6,7 +6,7 @@
<parent> <parent>
<artifactId>forge</artifactId> <artifactId>forge</artifactId>
<groupId>forge</groupId> <groupId>forge</groupId>
<version>1.6.23-SNAPSHOT</version> <version>1.6.24-SNAPSHOT</version>
</parent> </parent>
<artifactId>forge-core</artifactId> <artifactId>forge-core</artifactId>

View File

@@ -6,7 +6,7 @@
<parent> <parent>
<artifactId>forge</artifactId> <artifactId>forge</artifactId>
<groupId>forge</groupId> <groupId>forge</groupId>
<version>1.6.23-SNAPSHOT</version> <version>1.6.24-SNAPSHOT</version>
</parent> </parent>
<artifactId>forge-game</artifactId> <artifactId>forge-game</artifactId>

View File

@@ -1032,8 +1032,9 @@ public class CardFactoryUtil {
// Count$TopOfLibraryCMC // Count$TopOfLibraryCMC
if (sq[0].contains("TopOfLibraryCMC")) { if (sq[0].contains("TopOfLibraryCMC")) {
final Card topCard = cc.getCardsIn(ZoneType.Library).getFirst(); int cmc = cc.getCardsIn(ZoneType.Library).isEmpty() ? 0 :
return doXMath(topCard == null ? 0 : topCard.getCMC(), m, c); cc.getCardsIn(ZoneType.Library).getFirst().getCMC();
return doXMath(cmc, m, c);
} }
// Count$EnchantedControllerCreatures // Count$EnchantedControllerCreatures

View File

@@ -6,7 +6,7 @@
<packaging.type>jar</packaging.type> <packaging.type>jar</packaging.type>
<build.min.memory>-Xms1024m</build.min.memory> <build.min.memory>-Xms1024m</build.min.memory>
<build.max.memory>-Xmx1536m</build.max.memory> <build.max.memory>-Xmx1536m</build.max.memory>
<alpha-version>1.6.22.001</alpha-version> <alpha-version>1.6.23.001</alpha-version>
<sign.keystore>keystore</sign.keystore> <sign.keystore>keystore</sign.keystore>
<sign.alias>alias</sign.alias> <sign.alias>alias</sign.alias>
<sign.storepass>storepass</sign.storepass> <sign.storepass>storepass</sign.storepass>
@@ -19,7 +19,7 @@
<parent> <parent>
<artifactId>forge</artifactId> <artifactId>forge</artifactId>
<groupId>forge</groupId> <groupId>forge</groupId>
<version>1.6.23-SNAPSHOT</version> <version>1.6.24-SNAPSHOT</version>
</parent> </parent>
<artifactId>forge-gui-android</artifactId> <artifactId>forge-gui-android</artifactId>

View File

@@ -4,7 +4,7 @@
<parent> <parent>
<artifactId>forge</artifactId> <artifactId>forge</artifactId>
<groupId>forge</groupId> <groupId>forge</groupId>
<version>1.6.23-SNAPSHOT</version> <version>1.6.24-SNAPSHOT</version>
</parent> </parent>
<artifactId>forge-gui-desktop</artifactId> <artifactId>forge-gui-desktop</artifactId>

View File

@@ -207,6 +207,7 @@ public enum VSubmenuDownloaders implements IVSubmenu<CSubmenuDownloaders> {
public void auditUpdate(FTextArea tar, FScrollPane scr) { public void auditUpdate(FTextArea tar, FScrollPane scr) {
// Get top-level Forge objects // Get top-level Forge objects
CardDb cardDb = StaticData.instance().getCommonCards(); CardDb cardDb = StaticData.instance().getCommonCards();
CardDb variantDb = StaticData.instance().getVariantCards();
CardEdition.Collection editions = StaticData.instance().getEditions(); CardEdition.Collection editions = StaticData.instance().getEditions();
int missingCount = 0; int missingCount = 0;
@@ -248,6 +249,10 @@ public enum VSubmenuDownloaders implements IVSubmenu<CSubmenuDownloaders> {
} }
PaperCard cp = cardDb.getCard(c, e.getCode(), artIndex); PaperCard cp = cardDb.getCard(c, e.getCode(), artIndex);
if (cp == null) {
cp = variantDb.getCard(c, e.getCode(), artIndex);
}
if (cp != null) { if (cp != null) {
String imagePath; String imagePath;

View File

@@ -6,13 +6,13 @@
<packaging.type>jar</packaging.type> <packaging.type>jar</packaging.type>
<build.min.memory>-Xms128m</build.min.memory> <build.min.memory>-Xms128m</build.min.memory>
<build.max.memory>-Xmx2048m</build.max.memory> <build.max.memory>-Xmx2048m</build.max.memory>
<alpha-version>1.6.22.001</alpha-version> <alpha-version>1.6.23.001</alpha-version>
</properties> </properties>
<parent> <parent>
<artifactId>forge</artifactId> <artifactId>forge</artifactId>
<groupId>forge</groupId> <groupId>forge</groupId>
<version>1.6.23-SNAPSHOT</version> <version>1.6.24-SNAPSHOT</version>
</parent> </parent>
<artifactId>forge-gui-ios</artifactId> <artifactId>forge-gui-ios</artifactId>

View File

@@ -4,7 +4,7 @@
<parent> <parent>
<artifactId>forge</artifactId> <artifactId>forge</artifactId>
<groupId>forge</groupId> <groupId>forge</groupId>
<version>1.6.23-SNAPSHOT</version> <version>1.6.24-SNAPSHOT</version>
</parent> </parent>
<artifactId>forge-gui-mobile-dev</artifactId> <artifactId>forge-gui-mobile-dev</artifactId>

View File

@@ -4,7 +4,7 @@
<parent> <parent>
<artifactId>forge</artifactId> <artifactId>forge</artifactId>
<groupId>forge</groupId> <groupId>forge</groupId>
<version>1.6.23-SNAPSHOT</version> <version>1.6.24-SNAPSHOT</version>
</parent> </parent>
<artifactId>forge-gui-mobile</artifactId> <artifactId>forge-gui-mobile</artifactId>

View File

@@ -34,7 +34,7 @@ import java.util.List;
import java.util.Stack; import java.util.Stack;
public class Forge implements ApplicationListener { public class Forge implements ApplicationListener {
public static final String CURRENT_VERSION = "1.6.22.001"; public static final String CURRENT_VERSION = "1.6.23.001";
private static final ApplicationListener app = new Forge(); private static final ApplicationListener app = new Forge();
private static Clipboard clipboard; private static Clipboard clipboard;

View File

@@ -4,7 +4,7 @@
<parent> <parent>
<artifactId>forge</artifactId> <artifactId>forge</artifactId>
<groupId>forge</groupId> <groupId>forge</groupId>
<version>1.6.23-SNAPSHOT</version> <version>1.6.24-SNAPSHOT</version>
</parent> </parent>
<artifactId>forge-gui</artifactId> <artifactId>forge-gui</artifactId>

View File

@@ -1,4 +1,5 @@
#Add one announcement per line #Add one announcement per line
A very drastic change has happened for tokens and token images. Check out the information here: https://www.slightlymagic.net/forum/viewtopic.php?f=26&t=23317
A significant improvement was made to how we cache images which should improve memory usage A significant improvement was made to how we cache images which should improve memory usage
[b]Forge now requires Java 8 (or newer). You will not be able to start the game if you are not yet running Java 8.[/b] [b]Forge now requires Java 8 (or newer). You will not be able to start the game if you are not yet running Java 8.[/b]
We have a Discord server for hanging out with Forge devs and other Forge fans. Feel free to [url=https://discord.gg/3v9JCVr]jump on in and say hi[/url]! We have a Discord server for hanging out with Forge devs and other Forge fans. Feel free to [url=https://discord.gg/3v9JCVr]jump on in and say hi[/url]!

View File

@@ -0,0 +1,7 @@
Name:Banehound
ManaCost:B
Types:Creature Nightmare Hound
PT:1/1
K:Haste
K:Lifelink
Oracle:Lifelink, haste

View File

@@ -0,0 +1,8 @@
Name:Blindblast
ManaCost:2 R
Types:Instant
A:SP$ DealDamage | Cost$ 2 R | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ 1 | SubAbility$ DBPumpCurse | SpellDescription$ CARDNAME deals 1 damage to target creature. That creature can't block this turn.
SVar:DBPumpCurse:DB$ Pump | Defined$ Targeted | IsCurse$ True | KW$ HIDDEN CARDNAME can't block. | SubAbility$ DBDraw
SVar:DBDraw:DB$ Draw | NumCards$ 1 | SpellDescription$ Draw a card.
SVar:PlayMain1:TRUE
Oracle:Blindblast deals 1 damage to target creature. That creature can't block this turn.\nDraw a card.

View File

@@ -0,0 +1,9 @@
Name:Bloom Hulk
ManaCost:3 G
Types:Creature Plant Elemental
PT:4/4
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigProliferate | TriggerDescription$ When CARDNAME enters the battlefield, proliferate. (Choose any number of permanents and/or players, then give each another counter of each kind already there.)
SVar:TrigProliferate:DB$ Proliferate
DeckHas:Ability$Proliferate
DeckNeeds:Ability$Counters
Oracle:When Bloom Hulk enters the battlefield, proliferate. (Choose any number of permanents and/or players, then give each another counter of each kind already there.)

View File

@@ -0,0 +1,7 @@
Name:Bulwark Giant
ManaCost:5 W
Types:Creature Giant Soldier
PT:3/6
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigGainLife | TriggerDescription$ When CARDNAME enters the battlefield, you gain 5 life.
SVar:TrigGainLife:DB$GainLife | LifeAmount$ 5
Oracle:When Bulwark Giant enters the battlefield, you gain 5 life.

View File

@@ -0,0 +1,8 @@
Name:Courage in Crisis
ManaCost:2 G
Types:Sorcery
A:SP$ PutCounter | Cost$ 2 G | ValidTgts$ Creature | TgtPrompt$ Select target creature | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ DBProliferate | SpellDescription$ Put a +1/+1 counter on target creature, then proliferate. (any number of permanents and/or players, then give each another counter of each kind already there.)
SVar:DBProliferate:DB$Proliferate
DeckHas:Ability$Proliferate
DeckNeeds:Ability$Counters
Oracle:Put a +1/+1 counter on target creature, then proliferate. (Choose any number of permanents and/or players, then give each another counter of each kind already there.)

View File

@@ -0,0 +1,9 @@
Name:Cruel Celebrant
ManaCost:W B
Types:Creature Vampire
PT:1/2
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.Other+YouCtrl,Planeswalker.YouCtrl+Other | TriggerZones$ Battlefield | Execute$ TrigDrain | TriggerDescription$ Whenever CARDNAME or another creature you control dies, each opponent loses 1 life and you gain 1 life.
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | TriggerController$ TriggeredCardController | Execute$ TrigDrain | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another creature you control dies, each opponent loses 1 life and you gain 1 life.
SVar:TrigDrain:DB$ LoseLife | Defined$ Player.Opponent | LifeAmount$ 1 | SubAbility$ DBGainLife
SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 1
Oracle:Whenever Cruel Celebrant or another creature or planeswalker you control dies, each opponent loses 1 life and you gain 1 life.

View File

@@ -0,0 +1,8 @@
Name:Cyclops Electromancer
ManaCost:4 R
Types:Creature Cyclops Wizard
PT:4/2
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDealDamage | TriggerDescription$ When CARDNAME enters the battlefield, it deals X damage to target creature an opponent controls, where X is the number of instant and sorcery cards in your graveyard.
SVar:TrigDealDamage:DB$DealDamage | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls | NumDmg$ X | References$ X
SVar:X:Count$ValidGraveyard Instant.YouOwn,Sorcery.YouOwn
Oracle:When Cyclops Electromancer enters the battlefield, it deals X damage to target creature an opponent controls, where X is the number of instant and sorcery cards in your graveyard.

View File

@@ -0,0 +1,9 @@
Name:Davriel, Rogue Shadowmage
ManaCost:2 B
Types:Legendary Planeswalker Davriel
Loyalty:3
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ Opponent | CheckSVar$ CardsInHand | SVarCompare$ LE1 | Execute$ TrigDamage | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of each opponent's upkeep, if that player has one or fewer cards in hand, CARDNAME deals 2 damage to them.
SVar:TrigDamage:DB$ DealDamage | Defined$ TriggeredPlayer | NumDmg$ 2
SVar:CardsInHand:Count$ValidHand Card.ActivePlayerCtrl
A:AB$ Discard | Cost$ SubCounter<1/LOYALTY> | Planeswalker$ True | ValidTgts$ Player | NumCards$ 1 | Mode$ TgtChoose | SpellDescription$ Target player discards a card.
Oracle:At the beginning of each opponent's upkeep, if that player has one or fewer cards in hand, Davriel, Rogue Shadowmage deals 2 damage to them.\n[-1]: Target player discards a card.

View File

@@ -0,0 +1,6 @@
Name:Davriel's Shadowfugue
ManaCost:3 B
Types:Sorcery
A:SP$ Discard | Cost$ 3 B | ValidTgts$ Player | NumCards$ 2 | Mode$ TgtChoose | SubAbility$ DBLoseLife | SpellDescription$ Target player discards two cards and loses 2 life.
SVar:DBLoseLife:DB$ LoseLife | Defined$ Targeted | LifeAmount$ 2
Oracle:Target player discards two cards and loses 2 life.

View File

@@ -0,0 +1,9 @@
Name:Dreadhorde Arcanist
ManaCost:1 R
Types:Creature Zombie Wizard
PT:1/3
K:Trample
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigPlay | TriggerDescription$ Whenever CARDNAME attacks, you may cast target instant or sorcery card with converted mana cost less than or equal to CARDNAME's power from your graveyard without paying its mana cost. If that card would be put into your graveyard this turn, exile it instead.
SVar:TrigPlay:DB$ Play | ValidTgts$ Instant.YouCtrl+cmcLEX,Sorcery.cmcLEX | TgtPrompt$ Select target instant or sorcery card with converted mana cost less than or equal to CARDNAME's power | WithoutManaCost$ True | Optional$ True | ReplaceGraveyard$ Exile | AILogic$ ReplaySpell | SpellDescription$ Play your card, you may cast target instant or sorcery card with converted mana cost less
SVar:X:Count$CardPower
Oracle:Trample\nWhenever Dreadhorde Arcanist attacks, you may cast target instant or sorcery card with converted mana cost less than or equal to Dreadhorde Arcanist's power from your graveyard without paying its mana cost. If that card would be put into your graveyard this turn, exile it instead.

View File

@@ -0,0 +1,7 @@
Name:Erratic Visionary
ManaCost:1 U
Types:Creature Human Wizard
PT:1/3
A:AB$ Draw | Cost$ 1 U T | NumCards$ 1 | SubAbility$ DBDiscard | SpellDescription$ Draw a card, then discard a card.
SVar:DBDiscard:DB$Discard | Defined$ You | NumCards$ 1 | Mode$ TgtChoose
Oracle:{1}{U}, {T}: Draw a card, then discard a card.

View File

@@ -0,0 +1,5 @@
Name:Goblin Assailant
ManaCost:1 R
Types:Creature Goblin Warrior
PT:2/2
Oracle:

View File

@@ -0,0 +1,8 @@
Name:Goblin Assault Team
ManaCost:3 R
Types:Creature Goblin Warrior
PT:4/1
K:Haste
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigPutCounter | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, put a +1/+1 counter on target creature you control.
SVar:TrigPutCounter:DB$PutCounter | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | CounterType$ P1P1 | CounterNum$ 1
Oracle:Haste\nWhen Goblin Assault Team dies, put a +1/+1 counter on target creature you control.

View File

@@ -0,0 +1,7 @@
Name:God-Pharaoh's Statue
ManaCost:6
Types:Legendary Artifact
S:Mode$ RaiseCost | Activator$ Opponent | Type$ Spell | Amount$ 2 | Description$ Spells your opponents cast cost {2} more to cast.
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigLoseLife | TriggerDescription$ At the beginning of your end step, each opponent loses 1 life.
SVar:TrigLoseLife:DB$ LoseLife | Defined$ Player.Opponent | LifeAmount$ 1
Oracle:Spells your opponents cast cost {2} more to cast.\nAt the beginning of your end step, each opponent loses 1 life.

View File

@@ -0,0 +1,10 @@
Name:Grateful Apparition
ManaCost:1 W
Types:Creature Spirit
PT:1/1
K:Flying
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player,Planeswalker | CombatDamage$ True | Execute$ TrigProliferate | TriggerDescription$ Whenever CARDNAME deals combat damage to a player or planeswalker, proliferate. (Choose any number of permanents and/or players, then give each another counter of each kind already there.)
SVar:TrigProliferate:DB$ Proliferate
DeckHas:Ability$Proliferate
DeckNeeds:Ability$Counters
Oracle:Flying\nWhenever Grateful Apparition deals combat damage to a player or planeswalker, proliferate. (Choose any number of permanents and/or players, then give each another counter of each kind already there.)

View File

@@ -0,0 +1,9 @@
Name:Iron Bully
ManaCost:3
Types:Artifact Creature Golem
PT:1/1
K:Menace
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPut | TriggerDescription$ When CARDNAME enters the battlefield, put a +1/+1 counter on target creature.
SVar:TrigPut:DB$PutCounter | ValidTgts$ Creature | TgtPrompt$ Select target creature | CounterType$ P1P1 | CounterNum$ 1
DeckHas:Ability$Counters
Oracle:Menace (This creature can't be blocked except by two or more creatures.)\nWhen Iron Bully enters the battlefield, put a +1/+1 counter on target creature.

View File

@@ -0,0 +1,13 @@
Name:Jace, Wielder of Mysteries
ManaCost:1 U U U
Types:Legendary Planeswalker Jace
Loyalty:4
R:Event$ Draw | ActiveZones$ Battlefield | ValidPlayer$ You | IsPresent$ Card.YouOwn | PresentZone$ Library | PresentCompare$ EQ0 | ReplaceWith$ Win | Description$ If you would draw a card while your library has no cards in it, you win the game instead.
SVar:Win:DB$WinsGame | Defined$ You
A:AB$ Mill | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | NumCards$ 2 | ValidTgts$ Player | TgtPrompt$ Choose a player | RememberMilled$ True | SubAbility$ DBDraw | SpellDescription$ Target player puts the top two cards of their library into their graveyard. Draw a card.
SVar:DBDraw:DB$ Draw | NumCards$ 1
A:AB$ Draw | Cost$ SubCounter<8/LOYALTY> | Planeswalker$ True | NumCards$ 7 | SubAbility$ WinGame | SpellDescription$ Draw seven cards. Then if your library has no cards in it, you win the game.
SVar:Win:DB$WinsGame | Defined$ You | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ0 | References$ X
SVar:X:Count$InYourLibrary
AI:RemoveDeck:Random
Oracle:If you would draw a card while your library has no cards in it, you win the game instead.\n[+1]: Target player puts the top two cards of their library into their graveyard. Draw a card.\n[-8]: Draw seven cards. Then if your library has no cards in it, you win the game.

View File

@@ -0,0 +1,11 @@
Name:Krenko, Tin Street Kingpin
ManaCost:2 R
Types:Legendary Creature Goblin
PT:1/2
T:Mode$ Attacks | ValidCard$ Creature.Self | Execute$ TrigPut | TriggerDescription$ Whenever CARDNAME attacks, put a +1/+1 counter on it, then create a number of 1/1 red Goblin creature tokens equal to CARDNAME's power.
SVar:TrigPut:DB$PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ DBToken
SVar:DBToken:DB$Token | TokenAmount$ 1 | TokenScript$ r_1_1_goblin_war | TokenOwner$ You | LegacyImage$ r 1 1 goblin war | TokenAmount$ X | References$ X
SVar:X:Count$CardPower
DeckHas:Ability$Token
DeckHas:Ability$Counters
Oracle:Whenever Krenko, Tin Street Kingpin attacks, put a +1/+1 counter on it, then create a number of 1/1 red Goblin creature tokens equal to Krenko's power.

View File

@@ -0,0 +1,8 @@
Name:Loxodon Sergeant
ManaCost:3 W
Types:Creature Elephant Soldier
PT:3/3
K:Vigilance
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPumpAll | TriggerDescription$ When CARDNAME enters the battlefield, other creatures you control gain vigilance until end of turn.
SVar:TrigPumpAll:DB$PumpAll | ValidCards$ Creature.Other+YouCtrl | KW$ Vigilance
Oracle:Vigilance\nWhen Loxodon Sergeant enters the battlefield, other creatures you control gain vigilance until end of turn.

View File

@@ -0,0 +1,9 @@
Name:Makeshift Battalion
ManaCost:2 W
Types:Creature Human Soldier
PT:3/2
T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | CheckSVar$ AttackerTest | SVarCompare$ GE2 | Execute$ TrigPutCounter | TriggerDescription$ Whenever CARDNAME and at least two other creatures attack, put a +1/+1 counter on CARDNAME.
SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1
SVar:AttackerTest:Count$Valid Creature.attacking+Other
DeckHas:Ability$Counters
Oracle:Whenever Makeshift Battalion and at least two other creatures attack, put a +1/+1 counter on Makeshift Battalion.

View File

@@ -0,0 +1,7 @@
Name:Mayhem Devil
ManaCost:1 B R
Types:Creature Devil
PT:3/3
T:Mode$ Sacrificed | ValidCard$ Permanent | Execute$ TrigDealDamage | TriggerZones$ Battlefield | TriggerDescription$ Whenever a player sacrifices a permanent, CARDNAME deals 1 damage to any target.
SVar:TrigDealDamage:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 1
Oracle:Whenever a player sacrifices a permanent, Mayhem Devil deals 1 damage to any target.

View File

@@ -0,0 +1,11 @@
Name:Merfolk Skydiver
ManaCost:G U
Types:Creature Merfolk Mutant
PT:1/1
K:Flying
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPutCounter | TriggerDescription$ When CARDNAME enters the battlefield, put a +1/+1 counter on target creature you control.
SVar:TrigPutCounter:DB$PutCounter | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | CounterType$ P1P1 | CounterNum$ 1
A:AB$ Proliferate | Cost$ 3 G U | SpellDescription$ Proliferate.
DeckHas:Ability$Proliferate
DeckNeeds:Ability$Counters
Oracle:Flying\nWhen Merfolk Skydiver enters the battlefield, put a +1/+1 counter on target creature you control.\n{3}{G}{U}: Proliferate. (Choose any number of permanents and/or players, then give each another counter of each kind already there.)

View File

@@ -0,0 +1,5 @@
Name:Naga Eternal
ManaCost:2 U
Types:Creature Zombie Naga
PT:3/2
Oracle:

View File

@@ -0,0 +1,8 @@
Name:Nahiri, Storm of Stone
ManaCost:2 R/W R/W
Types:Legendary Planeswalker Nahiri
Loyalty:6
S:Mode$ Continuous | Affected$ Creature.YouCtrl | EffectZone$ Battlefield | AddKeyword$ First Strike | Condition$ PlayerTurn | Description$ As long as it's your turn, creatures you control have first strike and equip abilities you activate cost {1} less to activate.
A:AB$ DealDamage | Cost$ SubCounter<X/LOYALTY> | ValidTgts$ Creature.tapped | TgtPrompt$ Select target tapped creature | NumDmg$ X | References$ X | SpellDescription$ CARDNAME deals X damage to target tapped creature.
SVar:X:Count$xPaid
Oracle:As long as it's your turn, creatures you control have first strike and equip abilities you activate cost {1} less to activate.\n-X: Nahiri, Storm of Stone deals X damage to target tapped creature.

View File

@@ -0,0 +1,6 @@
Name:No Escape
ManaCost:2 U
Types:Instant
A:SP$ Counter | Cost$ 2 U | TargetType$ Spell | TgtPrompt$ Select target creature or planeswalker spell | ValidTgts$ Creature,Planeswalker | Destination$ Exile | SubAbility$ DBScry | SpellDescription$ Counter target creature or planeswalker spell. If that spell is countered this way, exile it instead of putting it into its owner's graveyard.
SVar:DBScry:DB$ Scry | ScryNum$ 1 | SpellDescription$ Scry 1.
Oracle:Counter target creature or planeswalker spell. If that spell is countered this way, exile it instead of putting it into its owner's graveyard.\nScry 1.

View File

@@ -0,0 +1,6 @@
Name:Pouncing Lynx
ManaCost:1 W
Types:Creature Cat
PT:2/1
S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ First Strike | Condition$ PlayerTurn | Description$ As long as it's your turn, CARDNAME has first strike.
Oracle:As long as it's your turn, Pouncing Lynx has first strike.

View File

@@ -0,0 +1,8 @@
Name:Role Reversal
ManaCost:U U R
Types:Sorcery
A:SP$ Pump | Cost$ 5 U | ValidTgts$ Permanent | TgtPrompt$ Select target permanent | SubAbility$ DBExchange | StackDescription$ None | SpellDescription$ Exchange control of two target permanents that share a permanent type.
SVar:DBExchange:DB$ ExchangeControl | Defined$ ParentTarget | ValidTgts$ Permanent | TgtPrompt$ Select target permanent shares a card type with it | TargetsWithSharedTypes$ Creature,Artifact,Enchantment,Planeswalker,Land | TargetUnique$ True
AI:RemoveDeck:All
AI:RemoveDeck:Random
Oracle:Exchange control of two target permanents that share a permanent type.

View File

@@ -0,0 +1,9 @@
Name:Spellgorger Weird
ManaCost:2 R
Types:Creature Weird
PT:2/2
T:Mode$ SpellCast | ValidCard$ Card.nonCreature | ValidActivatingPlayer$ You | Execute$ TrigPutCounter | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast a noncreature spell, put a +1/+1 counter on CARDNAME.
SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1
SVar:BuffedBy:nonCreature
DeckHas:Ability$Counters
Oracle:Whenever you cast a noncreature spell, put a +1/+1 counter on Spellgorger Weird.

View File

@@ -0,0 +1,6 @@
Name:Spellkeeper Weird
ManaCost:2 U
Types:Creature Weird
PT:1/4
A:AB$ ChangeZone | Cost$ 2 T Sac<1/CARDNAME> | TgtPrompt$ Select target instant or sorcery card in your graveyard | ValidTgts$ Instant.YouCtrl,Sorcery.YouCtrl | Origin$ Graveyard | Destination$ Hand | SpellDescription$ Return target instant or sorcery card from your graveyard to your hand.
Oracle:{2}, {T}, Sacrifice Spellkeeper Weird: Return target instant or sorcery card from your graveyard to your hand.

View File

@@ -0,0 +1,8 @@
Name:Stealth Mission
ManaCost:2 U
Types:Sorcery
A:SP$ PutCounter | Cost$ 2 U | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | CounterType$ P1P1 | CounterNum$ 2 | SubAbility$ DBPump | SpellDescription$ Put two +1/+1 counters on target creature you control. That creature can't be blocked this turn.
SVar:DBPump:DB$ Pump | Defined$ Targeted | KW$ HIDDEN Unblockable | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
DeckHas:Ability$Counters
Oracle:Put two +1/+1 counters on target creature you control. That creature can't be blocked this turn.

View File

@@ -0,0 +1,11 @@
Name:Teferi, Time Raveler
ManaCost:1 W U
Types:Legendary Planeswalker Teferi
Loyalty:4
S:Mode$ CantBeCast | ValidCard$ Card | OnlySorcerySpeed$ True | Description$ Each opponent can cast spells only any time they could cast a sorcery.
A:AB$ Effect | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | StaticAbilities$ STPlay | Duration$ UntilYourNextTurn | SpellDescription$ Until your next turn, you may cast sorcery spells as though they had flash.
SVar:STPlay:Mode$ Continuous | EffectZone$ Command | Affected$ Sorcery | AffectedZone$ Exile,Graveyard,Hand,Library,Command | WithFlash$ You | Description$ Until your next turn, you may cast sorcery spells as though they had flash.
SVar:PlayMain1:TRUE
A:AB$ ChangeZone | Cost$ SubCounter<3/LOYALTY> | Planeswalker$ True | Origin$ Battlefield | Destination$ Hand | TargetMin$ 0 | TargetMax$ 1 | TgtPrompt$ Select target artifact, creature, or enchantment | SpellDescription$ Return up to one target artifact, creature, or enchantment to its owner's hand. Draw a card. | SubAbility$ DBDraw
SVar:DBDraw:DB$Draw | NumCards$ 1
Oracle:Each opponent can cast spells only any time they could cast a sorcery.\n[+1]: Until your next turn, you may cast sorcery spells as though they had flash.\n[-3]: Return up to one target artifact, creature, or enchantment to its owner's hand. Draw a card.

View File

@@ -0,0 +1,10 @@
Name:Tenth District Legionnaire
ManaCost:R W
Types:Creature Human Soldier
PT:2/2
K:Haste
T:Mode$ SpellCast | ValidCard$ Card.Self | ValidActivatingPlayer$ You | TargetsValid$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever you cast a spell that targets CARDNAME, put a +1/+1 counter on CARDNAME, then scry 1.
SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ DBScry
SVar:DBScry:DB$ Scry | ScryNum$ 1
DeckHas:Ability$Counters
Oracle:Haste\nWhenever you cast a spell that targets Tenth District Legionnaire, put a +1/+1 counter on Tenth District Legionnaire, then scry 1.

View File

@@ -0,0 +1,6 @@
Name:Time Wipe
ManaCost:2 W W U
Types:Sorcery
A:SP$ ChooseCard | Cost$ 2 W W U | Choices$ Creature.YouCtrl | Amount$ 1 | Choices$ Creature | SubAbility$ DBDestroy | SpellDescription$ Return a creature you control to its owner's hand, then destroy all creatures.
SVar:DBDestroy:DB$ DestroyAll | ValidCards$ Creature | SpellDescription$ Destroy all creatures.
Oracle:Return a creature you control to its owner's hand, then destroy all creatures.

View File

@@ -0,0 +1,8 @@
Name:Tomik, Distinguished Advokist
ManaCost:W W
Types:Legendary Creature Human Advisor
PT:2/3
K:Flying
S:Mode$ CantTarget | AffectedZone$ Battlefield,Graveyard | ValidCard$ Land | Activator$ Opponent | Description$ Lands on the battlefield and land cards in graveyards can't be the targets of spells or abilities your opponents control.
S:Mode$ CantPlayLand | ValidCard$ Land.OppCtrl | AffectedZone$ Graveyard | Description$ Your opponents can't play land cards from graveyards.
Oracle:Flying\nLands on the battlefield and land cards in graveyards can't be the targets of spells or abilities your opponents control.\nYour opponents can't play land cards from graveyards.

View File

@@ -0,0 +1,7 @@
Name:War Screecher
ManaCost:1 W
Types:Creature Bird
PT:1/3
K:Flying
A:AB$ PumpAll | Cost$ 5 W T | ValidCards$ Creature.Other+YouCtrl | NumAtt$ +1 | NumDef$ +1 | SpellDescription$ Other creatures you control get +1/+1 until end of turn.
Oracle:Flying\n{5}{W}, {T}: Other creatures you control get +1/+1 until end of turn.

View File

@@ -0,0 +1,6 @@
Name:Wardscale Crocodile
ManaCost:4 G
Types:Creature Crocodile
PT:5/3
K:Hexproof
Oracle:Hexproof (This creature can't be the target of spells or abilities your opponents control.)

View File

@@ -167,6 +167,7 @@ Orgg:Orggs
Ouphe:Ouphes Ouphe:Ouphes
Ox:Oxen Ox:Oxen
Oyster:Oysters Oyster:Oysters
Pangolin:Pangolins
Pegasus:Pegasi Pegasus:Pegasi
Pentavite:Pentavites Pentavite:Pentavites
Pest:Pests Pest:Pests
@@ -280,10 +281,11 @@ Bolas
Chandra Chandra
Dack Dack
Daretti Daretti
Davriel
Domri Domri
Dovin Dovin
Estrid
Elspeth Elspeth
Estrid
Freyalise Freyalise
Garruk Garruk
Gideon Gideon
@@ -307,10 +309,12 @@ Sarkhan
Sorin Sorin
Tamiyo Tamiyo
Teferi Teferi
Teyo
Tezzeret Tezzeret
Tibalt Tibalt
Ugin Ugin
Venser Venser
Vivien
Vraska Vraska
Will Will
Windgrace Windgrace

View File

@@ -0,0 +1,52 @@
[shop]
WinsToUnlock=20
Credits=3000
MinDifficulty=0
MaxDifficulty=5
[metadata]
Name=Azorius Guild Kit
Description=Welcome to the Azorius Senate. Your membership has been approved through all proper channels. This box contains your official law-enforcement kit and an insignia representing your new authority. Let justice be your guiding light.
Set=GK2
Image=azorius_guild_kit.jpg
[Avatar]
[Main]
1 Archon of the Triumvirate|GK2
4 Azorius Chancery|GK2
1 Azorius Charm|GK2
2 Azorius Guildgate|RNA|1
2 Azorius Guildgate|RNA|2
1 Azorius Guildmage|GK2
1 Azorius Herald|GK2
1 Azorius Justiciar|GK2
1 Azorius Keyrune|GK2
2 Azorius Signet|GK2
1 Court Hussar|GK2
1 Depose // Deploy|RNA
1 Detention Sphere|GK2
1 Dovescape|GK2
1 Dramatic Rescue|GK2
1 Hover Barrier|GK2
8 Island|GK2|1
1 Isperia the Inscrutable|GK2
1 Isperia, Supreme Judge+|GK2
2 Judge's Familiar|GK2
1 Lavinia of the Tenth|GK2
1 Lyev Skyknight|GK2
8 Plains|GK2|1
1 Pride of the Clouds|GK2
1 Render Silent|GK2
1 Sky Hussar|GK2
1 Sky Tether|RNA
1 Skymark Roc|GK2
1 Sphinx of Foresight|RNA
1 Sphinx of New Prahv|RNA
1 Sphinx's Insight|RNA
1 Sphinx's Revelation|GK2
1 Spirit of the Spires|RNA
1 Stoic Ephemera|GK2
1 Summary Judgment|RNA
1 Unbreakable Formation|RNA
1 Warrant // Warden|RNA
1 Windreaver|GK2
1 Windstorm Drake|RNA

View File

@@ -0,0 +1,51 @@
[shop]
WinsToUnlock=20
Credits=3000
MinDifficulty=0
MaxDifficulty=5
[metadata]
Name=Gruul Guild Kit
Description=Welcome to Gruul Clans. Box is full of things that break other things. Go break everything!
Set=GK2
Image=gruul_guild_kit.jpg
[Avatar]
[Main]
1 Birds of Paradise|GK2
1 Borborygmos|GK2
1 Burning-Tree Emissary|GK2
1 Burning-Tree Shaman|GK2
1 Cindervines|RNA
2 Clan Guildmage|RNA
1 Collision // Colossus|RNA
1 Flames of the Raze-Boar|RNA
8 Forest|GK2|1
1 Ghor-Clan Rampager|GK2
1 Giant Solifuge|GK2
1 Gruul Charm|GK2
2 Gruul Guildgate|RNA|1
2 Gruul Guildgate|RNA|2
2 Gruul Signet|GK2
4 Gruul Turf|GK2
1 Immolation Shaman|RNA
8 Mountain|GK2|2
1 Pit Fight|GK2
1 Protean Hulk|GK2
1 Ravager Wurm|RNA
1 Rhythm of the Wild|RNA
1 Rubblebelt Raiders|GK2
1 Rubblehulk|GK2
1 Rumbling Slum|GK2
1 Ruric Thar, the Unbowed|GK2
1 Savage Twister|GK2
1 Savageborn Hydra|GK2
2 Scab-Clan Mauler|GK2
1 Skarrgan Firebird|GK2
1 Skarrgan Pit-Skulk|GK2
1 Sunder Shaman|RNA
1 Ulasht, the Hate Seed|GK2
1 Wasteland Viper|GK2
1 Wurmweaver Coil|GK2
1 Zhur-Taa Druid|GK2
1 Zhur-Taa Goblin|RNA
1 Zhur-Taa Swine|GK2

View File

@@ -0,0 +1,51 @@
[shop]
WinsToUnlock=20
Credits=3000
MinDifficulty=0
MaxDifficulty=5
[metadata]
Name=Orzhov Guild Kit
Description=Welcom to the Orzhov Syndicate. This box contains everything you need to attain lavish wealth and eternal life to enjoy it… so long as you pay your debts. Claim all that is owed to you.
Set=GK2
Image=orzhov_guild_kit.jpg
[Avatar]
[Main]
1 Angel of Despair|GK2
1 Basilica Bell-Haunt|RNA
1 Belfry Spirit|GK2
1 Consecrate // Consume|RNA
1 Deathpact Angel|GK2
1 Debtors' Knell|GK2
1 Ethereal Absolution|RNA
1 Final Payment|RNA
1 Ghost Council of Orzhova|GK2
2 Imperious Oligarch|RNA
1 Keening Banshee|GK2
1 Martyred Rusalka|GK2
1 Ministrant of Obligation|RNA
1 Mortify|RNA
1 One Thousand Lashes|GK2
4 Orzhov Basilica|GK2
1 Orzhov Charm|GK2
1 Orzhov Enforcer|RNA
2 Orzhov Guildgate|RNA|1
2 Orzhov Guildgate|RNA|2
1 Orzhov Pontiff|GK2
2 Orzhov Signet|GK2
1 Pillory of the Sleepless|GK2
1 Pitiless Pontiff|RNA
1 Plagued Rusalka|GK2
8 Plains|GK2|2
1 Pontiff of Blight|GK2
1 Sin Collector|GK2
1 Skeletal Vampire|GK2
1 Smothering Tithe|RNA
1 Stab Wound|GK2
8 Swamp|GK2|1
1 Teysa Karlov|RNA
1 Teysa, Orzhov Scion+|GK2
1 Treasury Thrull|GK2
1 Ultimate Price|GK2
1 Vindictive Vampire|RNA
2 Vizkopa Guildmage|GK2

View File

@@ -0,0 +1,51 @@
[shop]
WinsToUnlock=20
Credits=3000
MinDifficulty=0
MaxDifficulty=5
[metadata]
Name=Rakdos Guild Kit
Description=Welcome to the Cult of Rakdos. This box holds all the twisted tools you need to cast off the petty rules of society and indulge your darkest desires with abandon. Unleash chaos on the world!
Set=GK2
Image=rakdos_guild_kit.jpg
[Avatar]
[Main]
1 Auger Spree|GK2
1 Avatar of Discord|GK2
1 Blade Juggler|RNA
1 Cackling Flames|GK2
1 Carnival // Carnage|RNA
1 Carnival Hellsteed|GK2
1 Crypt Champion|GK2
1 Dead Revels|RNA
1 Demonfire|GK2
1 Dreadbore|GK2
1 Jagged Poppet|GK2
1 Lyzolda, the Blood Witch|GK2
1 Master of Cruelties|GK2
8 Mountain|GK2|1
2 Rakdos Cackler|GK2
4 Rakdos Carnarium|GK2
1 Rakdos Charm|GK2
1 Rakdos Firewheeler|RNA
2 Rakdos Guildgate|RNA|1
2 Rakdos Guildgate|RNA|2
2 Rakdos Guildmage|GK2
1 Rakdos Keyrune|GK2
1 Rakdos Pit Dragon|GK2
1 Rakdos Shred-Freak|GK2
2 Rakdos Signet|GK2
1 Rakdos the Defiler|GK2
1 Rakdos's Return|GK2
1 Rakdos, Lord of Riots+|GK2
1 Riot Spikes|GK2
1 Rix Maadi Reveler|RNA
1 Skewer the Critics|RNA
1 Spawn of Mayhem|RNA
1 Splatter Thug|GK2
8 Swamp|GK2|2
1 Theater of Horrors|RNA
1 Thrill-Kill Assassin|GK2
1 Utvara Hellkite|GK2
1 Wrecking Ball|GK2

View File

@@ -0,0 +1,48 @@
[shop]
WinsToUnlock=20
Credits=3000
MinDifficulty=0
MaxDifficulty=5
[metadata]
Name=Welcome to the Simic Combine. This box contains the materials you need to delve into the deepest mysteries of biology and bring new truths to light. Let nothing stop your discovery.
Set=GK2
Image=simic_guild_kit.jpg
[Avatar]
[Main]
1 Applied Biomancy|RNA
2 Cloudfin Raptor|GK2
2 Coiling Oracle|GK2
1 Cytoplast Root-Kin|GK2
1 Elusive Krasis|GK2
1 Experiment Kraj|GK2
1 Experiment One|GK2
1 Fathom Mage|GK2
8 Forest|GK2|2
1 Frilled Mystic|RNA
1 Galloping Lizrog|RNA
1 Guardian Project|RNA
1 Gyre Sage|GK2
8 Island|GK2|2
1 Miming Slime|GK2
1 Momir Vig, Simic Visionary|GK2
1 Nimbus Swimmer|GK2
1 Omnibian|GK2
1 Plaxcaster Frogling|GK2
1 Progenitor Mimic|GK2
2 Rapid Hybridization|GK2
1 Simic Ascendancy|RNA
4 Simic Growth Chamber|GK2
2 Simic Guildgate|RNA|1
2 Simic Guildgate|RNA|2
2 Simic Signet|GK2
1 Simic Sky Swallower|GK2
1 Skitter Eel|RNA
1 Trollbred Guardian|RNA
1 Trygon Predator|GK2
1 Urban Evolution|GK2
1 Vinelasher Kudzu|GK2
1 Voidslime|GK2
1 Vorel of the Hull Clade|GK2
2 Zameck Guildmage|GK2
1 Zegana, Utopian Speaker|GK2

View File

@@ -1,6 +1,6 @@
Name:Monkey Name:Monkey
ManaCost:no cost ManaCost:no cost
PT:1/1 PT:2/2
Colors:green Colors:green
Types:Creature Monkey Types:Creature Monkey
Oracle: Oracle:

View File

@@ -5,7 +5,7 @@
<artifactId>forge</artifactId> <artifactId>forge</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>Forge Parent</name> <name>Forge Parent</name>
<version>1.6.23-SNAPSHOT</version> <version>1.6.24-SNAPSHOT</version>
<description> <description>
Forge lets you play the card game Magic: The Gathering against a computer opponent using all of the rules. Forge lets you play the card game Magic: The Gathering against a computer opponent using all of the rules.