Merge branch 'farm' of https://github.com/Simisays/forge into farm
@@ -1 +1,2 @@
|
||||
--settings ./.mvn/local-settings.xml
|
||||
--settings
|
||||
./.mvn/local-settings.xml
|
||||
|
||||
@@ -2040,7 +2040,7 @@ public class ComputerUtilCombat {
|
||||
|
||||
final boolean hasTrample = attacker.hasKeyword(Keyword.TRAMPLE);
|
||||
|
||||
if (combat != null && hasTrample && attacker.isAttacking()) {
|
||||
if (combat != null && remaining != null && hasTrample && attacker.isAttacking()) {
|
||||
// if attacker has trample and some of its blockers are also blocking others it's generally a good idea
|
||||
// to assign those without trample first so we can maximize the damage to the defender
|
||||
for (final Card c : remaining) {
|
||||
|
||||
@@ -198,6 +198,7 @@ public class AnimateEffect extends AnimateEffectBase {
|
||||
|
||||
if (sa.hasParam("Crew")) {
|
||||
c.becomesCrewed(sa);
|
||||
c.updatePowerToughnessForView();
|
||||
}
|
||||
|
||||
game.fireEvent(new GameEventCardStatsChanged(c));
|
||||
|
||||
@@ -6361,7 +6361,7 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!tr.getParam("Destination").equals(ZoneType.Battlefield.toString())) {
|
||||
if (!ZoneType.Battlefield.toString().equals(tr.getParam("Destination"))) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -1722,7 +1722,7 @@ public class CardProperty {
|
||||
return false;
|
||||
}
|
||||
} else if (property.equals("hadToAttackThisCombat")) {
|
||||
AttackRequirement e = combat.getAttackConstraints().getRequirements().get(card);
|
||||
AttackRequirement e = combat == null ? null : combat.getAttackConstraints().getRequirements().get(card);
|
||||
if (e == null || !e.hasCreatureRequirement() || !e.getAttacker().equalsWithTimestamp(card)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -49,7 +49,10 @@ public class EnemySprite extends CharacterSprite {
|
||||
|
||||
@Override
|
||||
void updateBoundingRect() { //We want enemies to take the full tile.
|
||||
boundingRect.set(getX(), getY(), getWidth(), getHeight());
|
||||
float scale = data == null ? 1f : data.scale;
|
||||
if (scale < 0)
|
||||
scale = 1f;
|
||||
boundingRect.set(getX(), getY(), getWidth()*scale, getHeight()*scale);
|
||||
}
|
||||
|
||||
public void moveTo(Actor other, float delta) {
|
||||
|
||||
@@ -41,7 +41,7 @@ public class EffectData implements Serializable {
|
||||
}
|
||||
|
||||
public Array<IPaperCard> startBattleWithCards() {
|
||||
Array<IPaperCard> startCards=new Array<>();
|
||||
Array<IPaperCard> startCards=new Array<>(IPaperCard.class);
|
||||
if(startBattleWithCard != null) {
|
||||
for (String name:startBattleWithCard) {
|
||||
PaperCard C = FModel.getMagicDb().getCommonCards().getCard(name);
|
||||
|
||||
@@ -260,7 +260,9 @@ public class FSkin {
|
||||
final FileHandle f9 = getDefaultSkinFile(ForgeConstants.SPRITE_SLEEVES2_FILE);
|
||||
final FileHandle f10 = getDefaultSkinFile(ForgeConstants.SPRITE_BORDER_FILE);
|
||||
final FileHandle f11 = getSkinFile(ForgeConstants.SPRITE_BUTTONS_FILE);
|
||||
final FileHandle f11b = getDefaultSkinFile(ForgeConstants.SPRITE_BUTTONS_FILE);
|
||||
final FileHandle f12 = getSkinFile(ForgeConstants.SPRITE_START_FILE);
|
||||
final FileHandle f12b = getDefaultSkinFile(ForgeConstants.SPRITE_START_FILE);
|
||||
final FileHandle f13 = getDefaultSkinFile(ForgeConstants.SPRITE_DECKBOX_FILE);
|
||||
final FileHandle f17 = getDefaultSkinFile(ForgeConstants.SPRITE_CRACKS_FILE);
|
||||
final FileHandle f18 = getDefaultSkinFile(ForgeConstants.SPRITE_PHYREXIAN_FILE);
|
||||
@@ -313,6 +315,10 @@ public class FSkin {
|
||||
manager.finishLoadingAsset(f11.path());
|
||||
Forge.hdbuttons = true;
|
||||
}
|
||||
} else if (f11b.exists() && Forge.allowCardBG) {
|
||||
manager.load(f11b.path(), Texture.class, Forge.getAssets().getTextureFilter());
|
||||
manager.finishLoadingAsset(f11b.path());
|
||||
Forge.hdbuttons = true;
|
||||
} else { Forge.hdbuttons = false; } //how to refresh buttons when a theme don't have hd buttons?
|
||||
if (f12.exists()) {
|
||||
if (!Forge.allowCardBG) {
|
||||
@@ -322,6 +328,10 @@ public class FSkin {
|
||||
manager.finishLoadingAsset(f12.path());
|
||||
Forge.hdstart = true;
|
||||
}
|
||||
} else if (f12b.exists() && Forge.allowCardBG) {
|
||||
manager.load(f12b.path(), Texture.class, Forge.getAssets().getTextureFilter());
|
||||
manager.finishLoadingAsset(f12b.path());
|
||||
Forge.hdstart = true;
|
||||
} else { Forge.hdstart = false; }
|
||||
//update colors
|
||||
for (final FSkinColor.Colors c : FSkinColor.Colors.values()) {
|
||||
|
||||
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 17 KiB |
@@ -1,119 +1,119 @@
|
||||
fox.png
|
||||
size: 448,224
|
||||
size: 378, 106
|
||||
format: RGBA8888
|
||||
filter: Nearest,Nearest
|
||||
repeat: none
|
||||
filter: Nearest, Nearest
|
||||
repeat: none
|
||||
Avatar
|
||||
xy: 48, 49
|
||||
size: 11, 10
|
||||
Idle
|
||||
xy: 0, 32
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 32, 32
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 64, 32
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 96, 32
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 128, 32
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 160, 32
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 192, 32
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 224, 32
|
||||
xy: 17, 8
|
||||
size: 16, 16
|
||||
Idle
|
||||
xy: 2, 38
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 256, 32
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 288, 32
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 320, 32
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 352, 32
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 384, 32
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 416, 32
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 0, 96
|
||||
Idle
|
||||
xy: 2, 4
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 32, 96
|
||||
Idle
|
||||
xy: 36, 4
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 64, 96
|
||||
Idle
|
||||
xy: 70, 4
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 96, 96
|
||||
Idle
|
||||
xy: 206, 4
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 128, 96
|
||||
Idle
|
||||
xy: 104, 4
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 160, 96
|
||||
Idle
|
||||
xy: 138, 4
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 192, 96
|
||||
Idle
|
||||
xy: 172, 4
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 224, 96
|
||||
Idle
|
||||
xy: 206, 4
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 256, 96
|
||||
Idle
|
||||
xy: 104, 4
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 288, 96
|
||||
Idle
|
||||
xy: 240, 4
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 320, 96
|
||||
Idle
|
||||
xy: 274, 4
|
||||
size: 32, 32
|
||||
Attack
|
||||
xy: 0, 128
|
||||
Idle
|
||||
xy: 308, 4
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 342, 4
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 2, 38
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 36, 38
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 70, 38
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 104, 38
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 138, 38
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 172, 38
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 206, 38
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 240, 38
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 274, 38
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 308, 38
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 342, 38
|
||||
size: 32, 32
|
||||
Attack
|
||||
xy: 2, 72
|
||||
size: 32, 32
|
||||
Attack
|
||||
xy: 138, 72
|
||||
size: 32, 32
|
||||
Attack
|
||||
xy: 36, 72
|
||||
size: 32, 32
|
||||
Attack
|
||||
xy: 70, 72
|
||||
size: 32, 32
|
||||
Attack
|
||||
xy: 104, 72
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 2, 72
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 138, 72
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 36, 72
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 274, 72
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 172, 72
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 206, 72
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 240, 72
|
||||
size: 32, 32
|
||||
Attack
|
||||
xy: 32, 128
|
||||
size: 32, 32
|
||||
Attack
|
||||
xy: 64, 128
|
||||
size: 32, 32
|
||||
Attack
|
||||
xy: 96, 128
|
||||
size: 32, 32
|
||||
Attack
|
||||
xy: 128, 128
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 0, 192
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 32, 192
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 64, 192
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 96, 192
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 128, 192
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 160, 192
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 192, 192
|
||||
size: 32, 32
|
||||
|
||||
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 8.0 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 40 KiB |
@@ -1,93 +1,90 @@
|
||||
ooze.png
|
||||
size: 256,160
|
||||
size: 242, 106
|
||||
format: RGBA8888
|
||||
filter: Nearest,Nearest
|
||||
repeat: none
|
||||
filter: Nearest, Nearest
|
||||
repeat: none
|
||||
Avatar
|
||||
xy: 9, 151
|
||||
size: 15, 9
|
||||
Idle
|
||||
xy: 0, 0
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 32, 0
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 64, 0
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 96, 0
|
||||
xy: 36, 4
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 0, 96
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 32, 96
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 64, 96
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 96, 96
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 0, 32
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 32, 32
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 64, 32
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 96, 32
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 128, 32
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 160, 32
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 192, 32
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 224, 32
|
||||
size: 32, 32
|
||||
Attack
|
||||
xy: 0, 64
|
||||
size: 32, 32
|
||||
Attack
|
||||
xy: 32, 64
|
||||
size: 32, 32
|
||||
Attack
|
||||
xy: 64, 64
|
||||
size: 32, 32
|
||||
Attack
|
||||
xy: 96, 64
|
||||
size: 32, 32
|
||||
Attack
|
||||
xy: 128, 64
|
||||
size: 32, 32
|
||||
Attack
|
||||
xy: 160, 64
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 0, 128
|
||||
Idle
|
||||
xy: 172, 4
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 2, 4
|
||||
size: 32, 32
|
||||
orig: 32, 32
|
||||
Idle
|
||||
xy: 36, 4
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 172, 4
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 70, 4
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 104, 4
|
||||
size: 32, 32
|
||||
Idle
|
||||
xy: 138, 4
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 172, 4
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 2, 4
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 206, 4
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 2, 38
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 36, 38
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 70, 38
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 104, 38
|
||||
size: 32, 32
|
||||
Walk
|
||||
xy: 138, 38
|
||||
size: 32, 32
|
||||
Attack
|
||||
xy: 172, 4
|
||||
size: 32, 32
|
||||
Attack
|
||||
xy: 2, 4
|
||||
size: 32, 32
|
||||
Attack
|
||||
xy: 172, 38
|
||||
size: 32, 32
|
||||
Attack
|
||||
xy: 206, 38
|
||||
size: 32, 32
|
||||
Attack
|
||||
xy: 2, 72
|
||||
size: 32, 32
|
||||
Attack
|
||||
xy: 36, 72
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 172, 4
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 70, 72
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 104, 72
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 138, 72
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 172, 72
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 206, 72
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 32, 128
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 64, 128
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 96, 128
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 128, 128
|
||||
size: 32, 32
|
||||
Death
|
||||
xy: 160, 128
|
||||
size: 32, 32
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 20 KiB |
@@ -3425,7 +3425,7 @@
|
||||
"spawnRate": 1,
|
||||
"difficulty": 0.1,
|
||||
"speed": 15,
|
||||
"scale": 0.75,
|
||||
"scale": 0.5,
|
||||
"life": 10,
|
||||
"rewards": [
|
||||
{
|
||||
@@ -4180,6 +4180,7 @@
|
||||
{
|
||||
"name": "Ooze",
|
||||
"sprite": "sprites/dungeon/ooze.atlas",
|
||||
"scale": 0.6,
|
||||
"deck": [
|
||||
"decks/ooze.json"
|
||||
],
|
||||
|
||||
@@ -3,7 +3,7 @@ ManaCost:5 G
|
||||
Types:Legendary Artifact Creature Wizard
|
||||
PT:4/3
|
||||
K:Reach
|
||||
S:Mode$ Continuous | CharacteristicDefining$ True | SetPower$ 16 | SetToughness$ 9 | IsPresent$ Card.Self+attacking | Affected$ Creature.basePowerEQ4+baseToughnessEQ3+tapped+YouCtrl | Description$ As long as NICKNAME is attacking, tapped creatures you control with base power and toughness 4/3 have base power and toughness 16/9.
|
||||
S:Mode$ Continuous | SetPower$ 16 | SetToughness$ 9 | IsPresent$ Card.Self+attacking | Affected$ Creature.basePowerEQ4+baseToughnessEQ3+tapped+YouCtrl | Description$ As long as NICKNAME is attacking, tapped creatures you control with base power and toughness 4/3 have base power and toughness 16/9.
|
||||
A:AB$ Mana | Cost$ T | Produced$ W U B R G | TriggersWhenSpent$ TrigChange | SpellDescription$ Add {W}{U}{B}{R}{G}. Creature spells you spend this mana to cast have their base power and toughness become 4/3.
|
||||
SVar:TrigChange:Mode$ SpellCast | ValidCard$ Creature | ValidActivatingPlayer$ You | Execute$ TrigAnimate | TriggerDescription$ Creature spells you spend this mana to cast have their base power and toughness become 4/3.
|
||||
SVar:TrigAnimate:DB$ Animate | Defined$ TriggeredCard | Duration$ Permanent | Power$ 4 | Toughness$ 3
|
||||
|
||||
@@ -5,7 +5,7 @@ PT:1/1
|
||||
T:Mode$ ChangesZoneAll | ValidCards$ Creature.basePowerEQ1+baseToughnessEQ1+Other+YouCtrl | Destination$ Battlefield | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever one or more other creatures with base power and toughness 1/1 enter the battlefield under your control, put a +1/+1 counter on CARDNAME.
|
||||
SVar:TrigPutCounter:DB$ PutCounter | CounterType$ P1P1
|
||||
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigPumpAll | TriggerDescription$ Whenever NICKNAME attacks, each other creature you control with base power and toughness 1/1 gets +X/+X until end of turn, where X is the number of +1/+1 counters on NICKNAME.
|
||||
SVar:TrigPumpAll:DB$ PumpAll | ValidCards$ Creature.basePowerEQ1+baseToughnessEQ1+Other | NumAtt$ +X | NumDef$ +X
|
||||
SVar:TrigPumpAll:DB$ PumpAll | ValidCards$ Creature.basePowerEQ1+baseToughnessEQ1+Other+YouCtrl | NumAtt$ +X | NumDef$ +X
|
||||
SVar:X:Count$CardCounters.P1P1
|
||||
DeckHas:Ability$Counters
|
||||
DeckHints:Type$Citizen
|
||||
|
||||
@@ -5,6 +5,6 @@ PT:5/9
|
||||
K:Islandwalk
|
||||
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigExile | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME attacks, exile it. Return it to the battlefield under your control tapped and attacking at the beginning of the next declare attackers step on your next turn.
|
||||
SVar:TrigExile:DB$ ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ DelTrig
|
||||
SVar:DelTrig:DB$ DelayedTrigger | ConditionDefined$ Remembered | ConditionPresent$ Card | DelayedTriggerDefinedPlayer$ You | ThisTurn$ True | Mode$ Phase | Phase$ Declare Attackers | Execute$ TrigReturn | TriggerDescription$ Return CARDNAME to the battlefield tapped and attacking.
|
||||
SVar:TrigReturn:DB$ ChangeZone | Defined$ Self | Origin$ Exile | Destination$ Battlefield | Attacking$ True | Tapped$ True | GainControl$ True
|
||||
SVar:DelTrig:DB$ DelayedTrigger | ConditionDefined$ Remembered | ConditionPresent$ Card | DelayedTriggerDefinedPlayer$ You | RememberObjects$ RememberedLKI | ThisTurn$ True | Mode$ Phase | Phase$ Declare Attackers | Execute$ TrigReturn | TriggerDescription$ Return CARDNAME to the battlefield tapped and attacking.
|
||||
SVar:TrigReturn:DB$ ChangeZone | Defined$ DelayTriggerRememberedLKI | Origin$ Exile | Destination$ Battlefield | Attacking$ True | Tapped$ True | GainControl$ True
|
||||
Oracle:Islandwalk (This creature can't be blocked as long as defending player controls an Island.)\nWhenever Meandering Towershell attacks, exile it. Return it to the battlefield under your control tapped and attacking at the beginning of the declare attackers step on your next turn.
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
An Uncommon Budget | https://downloads.cardforge.org/decks/uncommonbudget-brawl.zip
|
||||
Brewer's Kitchen | https://downloads.cardforge.org/decks/brewerskitchen-brawl.zip
|
||||
Budget Magic | https://downloads.cardforge.org/decks/budgetmagic-brawl.zip
|
||||
Card Preview | https://downloads.cardforge.org/decks/cardpreview-brawl.zip
|
||||
Commander Clash | https://downloads.cardforge.org/decks/commanderclash-brawl.zip
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
99 Problems | https://downloads.cardforge.org/decks/99problems.zip
|
||||
Brewer's Kitchen | https://downloads.cardforge.org/decks/brewerskitchen-commander.zip
|
||||
Budget Commander | https://downloads.cardforge.org/decks/budgetcommander.zip
|
||||
Card Preview | https://downloads.cardforge.org/decks/cardpreview-commander.zip
|
||||
Command Tower | https://downloads.cardforge.org/decks/commandtower.zip
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
Against the Odds | https://downloads.cardforge.org/decks/againsttheodds.zip
|
||||
An Uncommon Budget | https://downloads.cardforge.org/decks/uncommonbudget.zip
|
||||
Arena Championship | https://downloads.cardforge.org/decks/arenachampionship.zip
|
||||
Breaking Through | https://downloads.cardforge.org/decks/breakingthrough.zip
|
||||
Brewer's Kitchen | https://downloads.cardforge.org/decks/brewerskitchen.zip
|
||||
Brewing on a Budget | https://downloads.cardforge.org/decks/brewingonabudget.zip
|
||||
Budget Magic | https://downloads.cardforge.org/decks/budgetmagic.zip
|
||||
Budget Modern Metagame | https://downloads.cardforge.org/decks/budgetmodernmetagame.zip
|
||||
|
||||