diff --git a/.mvn/maven.config b/.mvn/maven.config index 2965a02fc81..7a34b434c4d 100644 --- a/.mvn/maven.config +++ b/.mvn/maven.config @@ -1 +1,2 @@ ---settings ./.mvn/local-settings.xml \ No newline at end of file +--settings +./.mvn/local-settings.xml diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java b/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java index b43e975147b..e76cc329aee 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java @@ -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) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/AnimateEffect.java b/forge-game/src/main/java/forge/game/ability/effects/AnimateEffect.java index 175e5b60357..4fda72a8664 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/AnimateEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/AnimateEffect.java @@ -198,6 +198,7 @@ public class AnimateEffect extends AnimateEffectBase { if (sa.hasParam("Crew")) { c.becomesCrewed(sa); + c.updatePowerToughnessForView(); } game.fireEvent(new GameEventCardStatsChanged(c)); diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index 8cf751a1997..673c1c621e0 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -6361,7 +6361,7 @@ public class Card extends GameEntity implements Comparable, IHasSVars { continue; } - if (!tr.getParam("Destination").equals(ZoneType.Battlefield.toString())) { + if (!ZoneType.Battlefield.toString().equals(tr.getParam("Destination"))) { continue; } diff --git a/forge-game/src/main/java/forge/game/card/CardProperty.java b/forge-game/src/main/java/forge/game/card/CardProperty.java index 6d9c56d2889..9c116ea71fb 100644 --- a/forge-game/src/main/java/forge/game/card/CardProperty.java +++ b/forge-game/src/main/java/forge/game/card/CardProperty.java @@ -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; } diff --git a/forge-gui-mobile/src/forge/adventure/character/EnemySprite.java b/forge-gui-mobile/src/forge/adventure/character/EnemySprite.java index 19c2836f7d1..d4eaaacedc9 100644 --- a/forge-gui-mobile/src/forge/adventure/character/EnemySprite.java +++ b/forge-gui-mobile/src/forge/adventure/character/EnemySprite.java @@ -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) { diff --git a/forge-gui-mobile/src/forge/adventure/data/EffectData.java b/forge-gui-mobile/src/forge/adventure/data/EffectData.java index 001dd851902..cb5fda14969 100644 --- a/forge-gui-mobile/src/forge/adventure/data/EffectData.java +++ b/forge-gui-mobile/src/forge/adventure/data/EffectData.java @@ -41,7 +41,7 @@ public class EffectData implements Serializable { } public Array startBattleWithCards() { - Array startCards=new Array<>(); + Array startCards=new Array<>(IPaperCard.class); if(startBattleWithCard != null) { for (String name:startBattleWithCard) { PaperCard C = FModel.getMagicDb().getCommonCards().getCard(name); diff --git a/forge-gui-mobile/src/forge/assets/FSkin.java b/forge-gui-mobile/src/forge/assets/FSkin.java index defde17e3c1..8e713264d35 100644 --- a/forge-gui-mobile/src/forge/assets/FSkin.java +++ b/forge-gui-mobile/src/forge/assets/FSkin.java @@ -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()) { diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/crab.png b/forge-gui/res/adventure/Shandalar/sprites/dungeon/crab.png index 3b35190aba6..504c29a5ee6 100644 Binary files a/forge-gui/res/adventure/Shandalar/sprites/dungeon/crab.png and b/forge-gui/res/adventure/Shandalar/sprites/dungeon/crab.png differ diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/fox.atlas b/forge-gui/res/adventure/Shandalar/sprites/dungeon/fox.atlas index 6e9a6ad1447..d57fdbb72c4 100644 --- a/forge-gui/res/adventure/Shandalar/sprites/dungeon/fox.atlas +++ b/forge-gui/res/adventure/Shandalar/sprites/dungeon/fox.atlas @@ -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 diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/fox.png b/forge-gui/res/adventure/Shandalar/sprites/dungeon/fox.png index aad60b6b5aa..da96f1cae46 100644 Binary files a/forge-gui/res/adventure/Shandalar/sprites/dungeon/fox.png and b/forge-gui/res/adventure/Shandalar/sprites/dungeon/fox.png differ diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/giant_crab.png b/forge-gui/res/adventure/Shandalar/sprites/dungeon/giant_crab.png index d438ade69f1..c0a8ec392dc 100644 Binary files a/forge-gui/res/adventure/Shandalar/sprites/dungeon/giant_crab.png and b/forge-gui/res/adventure/Shandalar/sprites/dungeon/giant_crab.png differ diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/kobold.png b/forge-gui/res/adventure/Shandalar/sprites/dungeon/kobold.png index bf1baf9c2a8..cc44a059b6f 100644 Binary files a/forge-gui/res/adventure/Shandalar/sprites/dungeon/kobold.png and b/forge-gui/res/adventure/Shandalar/sprites/dungeon/kobold.png differ diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/ooze.atlas b/forge-gui/res/adventure/Shandalar/sprites/dungeon/ooze.atlas index 93a676e8172..a676ae23464 100644 --- a/forge-gui/res/adventure/Shandalar/sprites/dungeon/ooze.atlas +++ b/forge-gui/res/adventure/Shandalar/sprites/dungeon/ooze.atlas @@ -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 - diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/ooze.png b/forge-gui/res/adventure/Shandalar/sprites/dungeon/ooze.png index a6a51e31168..af32ad89d52 100644 Binary files a/forge-gui/res/adventure/Shandalar/sprites/dungeon/ooze.png and b/forge-gui/res/adventure/Shandalar/sprites/dungeon/ooze.png differ diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/oozeboss.png b/forge-gui/res/adventure/Shandalar/sprites/dungeon/oozeboss.png index 7651a00f651..36fbea05ee5 100644 Binary files a/forge-gui/res/adventure/Shandalar/sprites/dungeon/oozeboss.png and b/forge-gui/res/adventure/Shandalar/sprites/dungeon/oozeboss.png differ diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/slimefoot.png b/forge-gui/res/adventure/Shandalar/sprites/dungeon/slimefoot.png index 09b983f3de2..344e6b9d297 100644 Binary files a/forge-gui/res/adventure/Shandalar/sprites/dungeon/slimefoot.png and b/forge-gui/res/adventure/Shandalar/sprites/dungeon/slimefoot.png differ diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/squirrel.png b/forge-gui/res/adventure/Shandalar/sprites/dungeon/squirrel.png index 822571b172d..9d908e1f542 100644 Binary files a/forge-gui/res/adventure/Shandalar/sprites/dungeon/squirrel.png and b/forge-gui/res/adventure/Shandalar/sprites/dungeon/squirrel.png differ diff --git a/forge-gui/res/adventure/Shandalar/world/enemies.json b/forge-gui/res/adventure/Shandalar/world/enemies.json index d4adba5bce4..aa8044e14dd 100644 --- a/forge-gui/res/adventure/Shandalar/world/enemies.json +++ b/forge-gui/res/adventure/Shandalar/world/enemies.json @@ -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" ], diff --git a/forge-gui/res/cardsfolder/a/andrios_roaming_explorer.txt b/forge-gui/res/cardsfolder/a/andrios_roaming_explorer.txt index 49841a5bc20..9566b439517 100644 --- a/forge-gui/res/cardsfolder/a/andrios_roaming_explorer.txt +++ b/forge-gui/res/cardsfolder/a/andrios_roaming_explorer.txt @@ -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 diff --git a/forge-gui/res/cardsfolder/b/bess_soul_nourisher.txt b/forge-gui/res/cardsfolder/b/bess_soul_nourisher.txt index 4ca83ed68a8..9ee210ce259 100644 --- a/forge-gui/res/cardsfolder/b/bess_soul_nourisher.txt +++ b/forge-gui/res/cardsfolder/b/bess_soul_nourisher.txt @@ -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 diff --git a/forge-gui/res/cardsfolder/m/meandering_towershell.txt b/forge-gui/res/cardsfolder/m/meandering_towershell.txt index d1618b86b81..cefcf078aa1 100644 --- a/forge-gui/res/cardsfolder/m/meandering_towershell.txt +++ b/forge-gui/res/cardsfolder/m/meandering_towershell.txt @@ -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. diff --git a/forge-gui/res/lists/net-decks-brawl.txt b/forge-gui/res/lists/net-decks-brawl.txt index 01e73a37ece..6832d666b58 100644 --- a/forge-gui/res/lists/net-decks-brawl.txt +++ b/forge-gui/res/lists/net-decks-brawl.txt @@ -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 diff --git a/forge-gui/res/lists/net-decks-commander.txt b/forge-gui/res/lists/net-decks-commander.txt index ad50251bb7f..bf71923930f 100644 --- a/forge-gui/res/lists/net-decks-commander.txt +++ b/forge-gui/res/lists/net-decks-commander.txt @@ -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 diff --git a/forge-gui/res/lists/net-decks.txt b/forge-gui/res/lists/net-decks.txt index da91902cb4c..5de7074955f 100644 --- a/forge-gui/res/lists/net-decks.txt +++ b/forge-gui/res/lists/net-decks.txt @@ -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