diff --git a/forge-adventure/src/main/java/forge/adventure/AdventureApplicationAdapter.java b/forge-adventure/src/main/java/forge/adventure/AdventureApplicationAdapter.java index 24ef1836c55..bb5d844ff09 100644 --- a/forge-adventure/src/main/java/forge/adventure/AdventureApplicationAdapter.java +++ b/forge-adventure/src/main/java/forge/adventure/AdventureApplicationAdapter.java @@ -83,7 +83,11 @@ public class AdventureApplicationAdapter extends ApplicationAdapter { private void storeScreen() { if(!(currentScene instanceof ForgeScene)) - lastScreenTexture = ScreenUtils.getFrameBufferTexture(); + { + if(lastScreenTexture!=null) + lastScreenTexture.getTexture().dispose(); + lastScreenTexture = ScreenUtils.getFrameBufferTexture(); + } } diff --git a/forge-adventure/src/main/java/forge/adventure/data/BiomeSpriteData.java b/forge-adventure/src/main/java/forge/adventure/data/BiomeSpriteData.java index 6c997ecc09c..3043eadce73 100644 --- a/forge-adventure/src/main/java/forge/adventure/data/BiomeSpriteData.java +++ b/forge-adventure/src/main/java/forge/adventure/data/BiomeSpriteData.java @@ -1,13 +1,14 @@ package forge.adventure.data; -import java.io.Serializable; +import forge.adventure.util.SaveFileContent; +import forge.adventure.util.SaveFileData; /** * Data class that will be used to read Json configuration files * BiomeSpriteData * contains the information for the sprites on the map like trees and rocks */ -public class BiomeSpriteData implements Serializable { +public class BiomeSpriteData implements SaveFileContent { public String name; public double startArea; public double endArea; @@ -18,4 +19,26 @@ public class BiomeSpriteData implements Serializable { public String key() { return "BiomeSprite&" + name; } + + @Override + public void load(SaveFileData data) { + name=data.readString("name"); + startArea=data.readDouble("startArea"); + endArea=data.readDouble("endArea"); + density=data.readDouble("density"); + resolution=data.readDouble("resolution");; + layer=data.readInt("layer"); + } + + @Override + public SaveFileData save() { + SaveFileData data=new SaveFileData(); + data.store("name",name); + data.store("startArea",startArea); + data.store("endArea",endArea); + data.store("density",density); + data.store("resolution",resolution); + data.store("layer",layer); + return data; + } } diff --git a/forge-adventure/src/main/java/forge/adventure/scene/DeckEditScene.java b/forge-adventure/src/main/java/forge/adventure/scene/DeckEditScene.java index 52bb3662614..f1cbd1d20fb 100644 --- a/forge-adventure/src/main/java/forge/adventure/scene/DeckEditScene.java +++ b/forge-adventure/src/main/java/forge/adventure/scene/DeckEditScene.java @@ -92,8 +92,8 @@ public class DeckEditScene extends ForgeScene { - for (PaperCard card : AdventurePlayer.current().getCards()) - FModel.getQuest().getCards().addSingleCard(card, 1); + for (Map.Entry card : AdventurePlayer.current().getCards()) + FModel.getQuest().getCards().addSingleCard(card.getKey(), card.getValue()); Deck deck = AdventurePlayer.current().getDeck(); diff --git a/forge-adventure/src/main/java/forge/adventure/scene/InnScene.java b/forge-adventure/src/main/java/forge/adventure/scene/InnScene.java index 80913394f2b..0cd895bb630 100644 --- a/forge-adventure/src/main/java/forge/adventure/scene/InnScene.java +++ b/forge-adventure/src/main/java/forge/adventure/scene/InnScene.java @@ -1,5 +1,6 @@ package forge.adventure.scene; +import com.badlogic.gdx.Input; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import forge.adventure.AdventureApplicationAdapter; import forge.adventure.util.Current; @@ -37,5 +38,14 @@ public class InnScene extends UIScene { TextButton doneButton = ui.findActor("done"); } + @Override + public boolean keyPressed(int keycode) + { + if (keycode == Input.Keys.ESCAPE) + { + done(); + } + return true; + } } diff --git a/forge-adventure/src/main/java/forge/adventure/scene/RewardScene.java b/forge-adventure/src/main/java/forge/adventure/scene/RewardScene.java index f38730eb716..c391fd39294 100644 --- a/forge-adventure/src/main/java/forge/adventure/scene/RewardScene.java +++ b/forge-adventure/src/main/java/forge/adventure/scene/RewardScene.java @@ -1,6 +1,7 @@ package forge.adventure.scene; import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.Input; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; @@ -103,6 +104,15 @@ public class RewardScene extends UIScene { doneButton=ui.findActor("done"); } + @Override + public boolean keyPressed(int keycode) + { + if (keycode == Input.Keys.ESCAPE) + { + done(); + } + return true; + } public void loadRewards(Array newRewards, Type type, ShopActor shopActor) diff --git a/forge-adventure/src/main/java/forge/adventure/scene/SaveLoadScene.java b/forge-adventure/src/main/java/forge/adventure/scene/SaveLoadScene.java index 1dd2d6b0284..1e981669645 100644 --- a/forge-adventure/src/main/java/forge/adventure/scene/SaveLoadScene.java +++ b/forge-adventure/src/main/java/forge/adventure/scene/SaveLoadScene.java @@ -1,5 +1,6 @@ package forge.adventure.scene; +import com.badlogic.gdx.Input; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.scenes.scene2d.InputEvent; @@ -36,6 +37,8 @@ public class SaveLoadScene extends UIScene { int currentSlot = -3; Image previewImage; TextButton saveLoadButton; + TextButton quickSave; + TextButton autoSave; public SaveLoadScene() { super("ui/save_load.json"); @@ -44,14 +47,15 @@ public class SaveLoadScene extends UIScene { - private void addSaveSlot(String name, int i) { + private TextButton addSaveSlot(String name, int i) { layout.add(Controls.newLabel(name)); TextButton button = Controls.newTextButton("..."); button.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { try { - select(i); + if(!button.isDisabled()) + select(i); } catch (Exception e) { e.printStackTrace(); } @@ -60,6 +64,7 @@ public class SaveLoadScene extends UIScene { layout.add(button).expandX(); buttons.put(i, button); layout.row(); + return button; } @@ -105,6 +110,15 @@ public class SaveLoadScene extends UIScene { return true; } + @Override + public boolean keyPressed(int keycode) + { + if (keycode == Input.Keys.ESCAPE) + { + back(); + } + return true; + } public void save() { dialog.hide(); if( WorldSave.getCurrentSave().save(textInput.getText(), currentSlot)) @@ -157,6 +171,8 @@ public class SaveLoadScene extends UIScene { header.setText("Load game"); saveLoadButton.setText("Load"); } + autoSave.setDisabled(save); + quickSave.setDisabled(save); this.save = save; } @@ -188,8 +204,8 @@ public class SaveLoadScene extends UIScene { header.setHeight(header.getHeight() * 2); layout.add(header).colspan(2).align(Align.center); layout.row(); - addSaveSlot("Auto save", -2); - addSaveSlot("Quick save", -1); + autoSave=addSaveSlot("Auto save", WorldSave.AUTO_SAVE_SLOT); + quickSave=addSaveSlot("Quick save", WorldSave.QUICK_SAVE_SLOT); for (int i = 1; i < 11; i++) addSaveSlot("Slot:" + i, i); diff --git a/forge-adventure/src/main/java/forge/adventure/scene/SettingsScene.java b/forge-adventure/src/main/java/forge/adventure/scene/SettingsScene.java index c133a71a5cc..4e11a46eec2 100644 --- a/forge-adventure/src/main/java/forge/adventure/scene/SettingsScene.java +++ b/forge-adventure/src/main/java/forge/adventure/scene/SettingsScene.java @@ -1,6 +1,7 @@ package forge.adventure.scene; import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.Input; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.scenes.scene2d.Actor; @@ -53,6 +54,15 @@ public class SettingsScene extends UIScene { } + @Override + public boolean keyPressed(int keycode) + { + if (keycode == Input.Keys.ESCAPE) + { + back(); + } + return true; + } public boolean back() { AdventureApplicationAdapter.instance.switchToLast(); return true; diff --git a/forge-adventure/src/main/java/forge/adventure/scene/StartScene.java b/forge-adventure/src/main/java/forge/adventure/scene/StartScene.java index b8610217a0b..3b849d43355 100644 --- a/forge-adventure/src/main/java/forge/adventure/scene/StartScene.java +++ b/forge-adventure/src/main/java/forge/adventure/scene/StartScene.java @@ -1,6 +1,7 @@ package forge.adventure.scene; import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.Input; import com.badlogic.gdx.scenes.scene2d.Actor; import forge.adventure.AdventureApplicationAdapter; import forge.adventure.world.WorldSave; @@ -18,7 +19,6 @@ public class StartScene extends UIScene { super("ui/start_menu.json"); } - public boolean NewGame() { AdventureApplicationAdapter.instance.switchScene(SceneType.NewGameScene.instance); return true; @@ -67,6 +67,16 @@ public class StartScene extends UIScene { } + @Override + public boolean keyPressed(int keycode) + { + if (keycode == Input.Keys.ESCAPE) + { + if(WorldSave.getCurrentSave().getWorld().getData() != null) + Resume(); + } + return true; + } @Override public void resLoaded() { super.resLoaded(); diff --git a/forge-adventure/src/main/java/forge/adventure/scene/UIScene.java b/forge-adventure/src/main/java/forge/adventure/scene/UIScene.java index 82af2b32bc5..0335f9846b6 100644 --- a/forge-adventure/src/main/java/forge/adventure/scene/UIScene.java +++ b/forge-adventure/src/main/java/forge/adventure/scene/UIScene.java @@ -47,9 +47,19 @@ public class UIScene extends Scene{ { return ui; } + public boolean keyPressed(int keycode) + { + return true; + } @Override public void resLoaded() { - stage = new Stage(new StretchViewport(GetIntendedWidth(), GetIntendedHeight())); + stage = new Stage(new StretchViewport(GetIntendedWidth(), GetIntendedHeight())){ + + @Override + public boolean keyUp(int keycode) { + return keyPressed(keycode); + } + }; ui = new UIActor(Config.instance().getFile(uiFile)); screenImage=ui.findActor("lastScreen"); stage.addActor(ui); @@ -75,6 +85,8 @@ public class UIScene extends Scene{ potPixmap.fillRectangle(0,0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); backgroundTexture = new TextureRegion(new Texture(potPixmap), 0, Gdx.graphics.getHeight(), Gdx.graphics.getWidth(), -Gdx.graphics.getHeight()); screenImage.setDrawable(new TextureRegionDrawable(backgroundTexture)); + pixmap.dispose(); + potPixmap.dispose(); } super.enter(); diff --git a/forge-adventure/src/main/java/forge/adventure/stage/GameHUD.java b/forge-adventure/src/main/java/forge/adventure/stage/GameHUD.java index 95411570640..ad414572f1e 100644 --- a/forge-adventure/src/main/java/forge/adventure/stage/GameHUD.java +++ b/forge-adventure/src/main/java/forge/adventure/stage/GameHUD.java @@ -57,6 +57,7 @@ public class GameHUD extends Stage { addActor(ui); addActor(miniMapPlayer); + WorldSave.getCurrentSave().onLoad(() -> enter()); } public static GameHUD getInstance() { @@ -94,10 +95,9 @@ public class GameHUD extends Stage { Texture miniMapTexture; public void enter() { - if(miniMapTexture==null) - { - miniMapTexture=new Texture(WorldSave.getCurrentSave().getWorld().getBiomeImage()); - } + if(miniMapTexture!=null) + miniMapTexture.dispose(); + miniMapTexture=new Texture(WorldSave.getCurrentSave().getWorld().getBiomeImage()); miniMap.setDrawable(new TextureRegionDrawable(miniMapTexture)); avatar.setDrawable(new TextureRegionDrawable(Current.player().avatar())); diff --git a/forge-adventure/src/main/java/forge/adventure/stage/GameStage.java b/forge-adventure/src/main/java/forge/adventure/stage/GameStage.java index 7a4b3391f46..68569c9f51d 100644 --- a/forge-adventure/src/main/java/forge/adventure/stage/GameStage.java +++ b/forge-adventure/src/main/java/forge/adventure/stage/GameStage.java @@ -1,9 +1,7 @@ package forge.adventure.stage; -import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input; import com.badlogic.gdx.graphics.OrthographicCamera; -import com.badlogic.gdx.graphics.Pixmap; import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.scenes.scene2d.Actor; @@ -16,7 +14,6 @@ import forge.adventure.character.PlayerSprite; import forge.adventure.scene.Scene; import forge.adventure.scene.SceneType; import forge.adventure.world.WorldSave; -import forge.adventure.world.WorldSaveHeader; /** * Base class to render a player sprite on a map @@ -48,6 +45,13 @@ public abstract class GameStage extends Stage { public GameStage() { super(new StretchViewport(Scene.GetIntendedWidth(), Scene.GetIntendedHeight(), new OrthographicCamera())); + WorldSave.getCurrentSave().onLoad(() -> { + if(player==null) + return; + foregroundSprites.removeActor(player); + player=null; + GetPlayer(); + }); camera = (OrthographicCamera) getCamera(); backgroundSprites = new Group(); @@ -157,6 +161,18 @@ public abstract class GameStage extends Stage { { player.getMovementDirection().y = -1; } + if (keycode == Input.Keys.F5)//todo config + { + GetPlayer().storePos(); + WorldSave.getCurrentSave().header.createPreview(); + WorldSave.getCurrentSave().quickSave(); + + } + if (keycode == Input.Keys.F8)//todo config + { + WorldSave.getCurrentSave().quickLoad(); + enter(); + } if (keycode == Input.Keys.F12) { debugCollision(true); @@ -258,15 +274,8 @@ public abstract class GameStage extends Stage { } public void openMenu() { - Pixmap pixmap = Pixmap.createFromFrameBuffer(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); - Pixmap scaled = new Pixmap(WorldSaveHeader.previewImageWidth, (int) (WorldSaveHeader.previewImageWidth / (Scene.GetIntendedWidth() / (float) Scene.GetIntendedHeight())), Pixmap.Format.RGB888); - scaled.drawPixmap(pixmap, - 0, 0, pixmap.getWidth(), pixmap.getHeight(), - 0, 0, scaled.getWidth(), scaled.getHeight()); - pixmap.dispose(); - if (WorldSave.getCurrentSave().header.preview != null) - WorldSave.getCurrentSave().header.preview.dispose(); - WorldSave.getCurrentSave().header.preview = scaled; + + WorldSave.getCurrentSave().header.createPreview(); AdventureApplicationAdapter.instance.switchScene(SceneType.StartScene.instance); } diff --git a/forge-adventure/src/main/java/forge/adventure/stage/WorldBackground.java b/forge-adventure/src/main/java/forge/adventure/stage/WorldBackground.java index 5535738e087..4cd6f8fb76b 100644 --- a/forge-adventure/src/main/java/forge/adventure/stage/WorldBackground.java +++ b/forge-adventure/src/main/java/forge/adventure/stage/WorldBackground.java @@ -128,17 +128,45 @@ public class WorldBackground extends Actor { public void initialize() { tileSize = WorldSave.getCurrentSave().getWorld().getTileSize(); chunkSize = WorldSave.getCurrentSave().getWorld().getChunkSize(); + if(chunks!=null) + { + stage.GetSpriteGroup().clear(); + for(int i=0;i= chunks[0].length || point.x >= chunks.length) + continue; + loadChunk(point.x, point.y); + } + } } + @Override + public void clear() { + super.clear(); + initialize(); + } int transChunkToWorld(int xy) { return xy * tileSize * chunkSize; } diff --git a/forge-adventure/src/main/java/forge/adventure/stage/WorldStage.java b/forge-adventure/src/main/java/forge/adventure/stage/WorldStage.java index 451883aa1f7..bc3f13a8142 100644 --- a/forge-adventure/src/main/java/forge/adventure/stage/WorldStage.java +++ b/forge-adventure/src/main/java/forge/adventure/stage/WorldStage.java @@ -8,8 +8,11 @@ import forge.adventure.character.CharacterSprite; import forge.adventure.character.EnemySprite; import forge.adventure.data.BiomeData; import forge.adventure.data.EnemyData; +import forge.adventure.data.WorldData; import forge.adventure.scene.*; import forge.adventure.util.Current; +import forge.adventure.util.SaveFileContent; +import forge.adventure.util.SaveFileData; import forge.adventure.world.World; import forge.adventure.world.WorldSave; import org.apache.commons.lang3.tuple.Pair; @@ -22,7 +25,7 @@ import java.util.Random; /** * Stage for the over world. Will handle monster spawns */ -public class WorldStage extends GameStage { +public class WorldStage extends GameStage implements SaveFileContent { private static WorldStage instance=null; protected EnemySprite currentMob; @@ -75,6 +78,7 @@ public class WorldStage extends GameStage { AdventureApplicationAdapter.instance.switchScene(SceneType.DuelScene.instance); }); currentMob = mob; + WorldSave.getCurrentSave().autoSave(); break; } } @@ -224,7 +228,6 @@ public class WorldStage extends GameStage { } } - setBounds(WorldSave.getCurrentSave().getWorld().getWidthInPixels(), WorldSave.getCurrentSave().getWorld().getHeightInPixels()); } @@ -232,4 +235,55 @@ public class WorldStage extends GameStage { public void leave() { GetPlayer().storePos(); } + + @Override + public void load(SaveFileData data) { + try { + for(Pair enemy:enemies) + foregroundSprites.removeActor(enemy.getValue()); + enemies.clear(); + background.clear(); + + + List timeouts= (List) data.readObject("timeouts"); + List names = (List) data.readObject("names"); + List x = (List) data.readObject("x"); + List y = (List) data.readObject("y"); + for(int i=0;i timeouts=new ArrayList<>(); + List names=new ArrayList<>(); + List x=new ArrayList<>(); + List y=new ArrayList<>(); + for(Pair enemy:enemies) + { + timeouts.add(enemy.getKey()); + names.add(enemy.getValue().getData().name); + x.add(enemy.getValue().getX()); + y.add(enemy.getValue().getY()); + } + data.storeObject("timeouts",timeouts); + data.storeObject("names",names); + data.storeObject("x",x); + data.storeObject("y",y); + data.store("globalTimer",globalTimer); + return data; + } } diff --git a/forge-adventure/src/main/java/forge/adventure/util/CardUtil.java b/forge-adventure/src/main/java/forge/adventure/util/CardUtil.java index a12b232d215..447ff5eb8f6 100644 --- a/forge-adventure/src/main/java/forge/adventure/util/CardUtil.java +++ b/forge-adventure/src/main/java/forge/adventure/util/CardUtil.java @@ -266,7 +266,7 @@ public class CardUtil { case MythicRare: return 500; default: - return 90000; + return 600; } } diff --git a/forge-adventure/src/main/java/forge/adventure/util/RewardActor.java b/forge-adventure/src/main/java/forge/adventure/util/RewardActor.java index 10ddd4f7bfd..c3a6be7b3c0 100644 --- a/forge-adventure/src/main/java/forge/adventure/util/RewardActor.java +++ b/forge-adventure/src/main/java/forge/adventure/util/RewardActor.java @@ -46,6 +46,7 @@ public class RewardActor extends Actor implements Disposable, ImageFetcher.Callb if(needsToBeDisposed) image.dispose(); + } public Reward getReward() { @@ -54,18 +55,9 @@ public class RewardActor extends Actor implements Disposable, ImageFetcher.Callb @Override public void onImageFetched() { - if(ImageCache.imageKeyFileExists(reward.getCard().getImageKey(false))) - { - setCardImage(ImageCache.getImage(reward.getCard().getImageKey(false),false)); - } + setCardImage(ImageCache.getImage(reward.getCard().getImageKey(false),false)); } - public enum Type - { - Shop, - Loot - - } public RewardActor(Reward reward,boolean flippable) { diff --git a/forge-adventure/src/main/java/forge/adventure/util/SaveFileContent.java b/forge-adventure/src/main/java/forge/adventure/util/SaveFileContent.java index 0a447a0ad59..d52eed4c82c 100644 --- a/forge-adventure/src/main/java/forge/adventure/util/SaveFileContent.java +++ b/forge-adventure/src/main/java/forge/adventure/util/SaveFileContent.java @@ -1,13 +1,9 @@ package forge.adventure.util; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; - /** * Interface to save the content the the save game file */ public interface SaveFileContent { - void writeToSaveFile(ObjectOutputStream saveFile) throws IOException ; - void readFromSaveFile(ObjectInputStream saveFile) throws IOException, ClassNotFoundException; + void load(SaveFileData data); + SaveFileData save(); } diff --git a/forge-adventure/src/main/java/forge/adventure/util/SaveFileData.java b/forge-adventure/src/main/java/forge/adventure/util/SaveFileData.java new file mode 100644 index 00000000000..308f2f6e4d9 --- /dev/null +++ b/forge-adventure/src/main/java/forge/adventure/util/SaveFileData.java @@ -0,0 +1,325 @@ +package forge.adventure.util; + +import com.badlogic.gdx.graphics.Pixmap; +import com.badlogic.gdx.graphics.PixmapIO; +import com.badlogic.gdx.math.Rectangle; +import com.badlogic.gdx.math.Vector2; + +import java.io.*; +import java.util.HashMap; + +public class SaveFileData extends HashMap +{ + public void store(String key,SaveFileData subData) + { + try { + + ByteArrayOutputStream stream=new ByteArrayOutputStream(); + ObjectOutputStream objStream=new ObjectOutputStream(stream); + objStream.writeObject(subData); + objStream.flush(); + put(key,stream.toByteArray()); + + } catch (IOException e) { + e.printStackTrace(); + } + } + + + public void store(String key,float subData) + { + try { + ByteArrayOutputStream stream=new ByteArrayOutputStream(); + ObjectOutputStream objStream=new ObjectOutputStream(stream); + objStream.writeFloat(subData); + objStream.flush(); + put(key,stream.toByteArray()); + } catch (IOException e) { + e.printStackTrace(); + } + } + public void store(String key,double subData) + { + try { + ByteArrayOutputStream stream=new ByteArrayOutputStream(); + ObjectOutputStream objStream=new ObjectOutputStream(stream); + objStream.writeDouble(subData); + objStream.flush(); + put(key,stream.toByteArray()); + } catch (IOException e) { + e.printStackTrace(); + } + } + public void store(String key,int subData) + { + try { + ByteArrayOutputStream stream=new ByteArrayOutputStream(); + ObjectOutputStream objStream=new ObjectOutputStream(stream); + objStream.writeInt(subData); + objStream.flush(); + put(key,stream.toByteArray()); + } catch (IOException e) { + e.printStackTrace(); + } + } + public void store(String key,long subData) + { + try { + ByteArrayOutputStream stream=new ByteArrayOutputStream(); + ObjectOutputStream objStream=new ObjectOutputStream(stream); + objStream.writeLong(subData); + objStream.flush(); + put(key,stream.toByteArray()); + } catch (IOException e) { + e.printStackTrace(); + } + } + public void store(String key,boolean subData) + { + try { + ByteArrayOutputStream stream=new ByteArrayOutputStream(); + ObjectOutputStream objStream=new ObjectOutputStream(stream); + objStream.writeBoolean(subData); + objStream.flush(); + put(key,stream.toByteArray()); + } catch (IOException e) { + e.printStackTrace(); + } + } + public void store(String key, Pixmap pixmap) + { + try { + ByteArrayOutputStream stream=new ByteArrayOutputStream(); + + PixmapIO.PNG png = new PixmapIO.PNG(); + png.setFlipY(false); + png.write(stream, pixmap); + stream.flush(); + put(key,stream.toByteArray()); + } catch (IOException e) { + e.printStackTrace(); + } + } + public void storeObject(String key,Object subData) + { + try { + ByteArrayOutputStream stream=new ByteArrayOutputStream(); + ObjectOutputStream objStream=new ObjectOutputStream(stream); + objStream.writeObject(subData); + objStream.flush(); + put(key,stream.toByteArray()); + } catch (IOException e) { + e.printStackTrace(); + } + } + public void store(String key,String subData) + { + try { + ByteArrayOutputStream stream=new ByteArrayOutputStream(); + ObjectOutputStream objStream=new ObjectOutputStream(stream); + objStream.writeUTF(subData); + objStream.flush(); + put(key,stream.toByteArray()); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public void store(String key, Vector2 vector) { + + try { + ByteArrayOutputStream stream=new ByteArrayOutputStream(); + ObjectOutputStream objStream=new ObjectOutputStream(stream); + objStream.writeFloat(vector.x); + objStream.writeFloat(vector.y); + objStream.flush(); + put(key,stream.toByteArray()); + } catch (IOException e) { + e.printStackTrace(); + } + } + public void store(String key, Rectangle rectangle) { + + try { + ByteArrayOutputStream stream=new ByteArrayOutputStream(); + ObjectOutputStream objStream=new ObjectOutputStream(stream); + objStream.writeFloat(rectangle.x); + objStream.writeFloat(rectangle.y); + objStream.writeFloat(rectangle.width); + objStream.writeFloat(rectangle.height); + objStream.flush(); + put(key,stream.toByteArray()); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public SaveFileData readSubData(String key) + { + if(!containsKey(key)) + return null; + try { + + ByteArrayInputStream stream=new ByteArrayInputStream(get(key)); + ObjectInputStream objStream=new ObjectInputStream(stream); + return (SaveFileData)objStream.readObject(); + + } catch (IOException | ClassNotFoundException e) { + e.printStackTrace(); + } + return null; + } + public Object readObject(String key) + { + if(!containsKey(key)) + return null; + try { + + ByteArrayInputStream stream=new ByteArrayInputStream(get(key)); + ObjectInputStream objStream=new ObjectInputStream(stream); + return objStream.readObject(); + + } catch (IOException | ClassNotFoundException e) { + e.printStackTrace(); + } + return null; + } + public String readString(String key) + { + if(!containsKey(key)) + return null; + try { + + ByteArrayInputStream stream=new ByteArrayInputStream(get(key)); + ObjectInputStream objStream=new ObjectInputStream(stream); + return objStream.readUTF(); + + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + + public long readLong(String key) { + if(!containsKey(key)) + return 0; + try { + + ByteArrayInputStream stream=new ByteArrayInputStream(get(key)); + ObjectInputStream objStream=new ObjectInputStream(stream); + return objStream.readLong(); + + } catch (IOException e) { + e.printStackTrace(); + } + return 0; + } + public float readFloat(String key) + { + if(!containsKey(key)) + return 0.0f; + try { + + ByteArrayInputStream stream=new ByteArrayInputStream(get(key)); + ObjectInputStream objStream=new ObjectInputStream(stream); + return objStream.readFloat(); + + } catch (IOException e) { + e.printStackTrace(); + } + return 0.0f; + } + + public double readDouble(String key) + { + if(!containsKey(key)) + return 0.0; + try { + + ByteArrayInputStream stream=new ByteArrayInputStream(get(key)); + ObjectInputStream objStream=new ObjectInputStream(stream); + return objStream.readDouble(); + + } catch (IOException e) { + e.printStackTrace(); + } + return 0.0; + } + public Vector2 readVector2(String key) + { + if(!containsKey(key)) + return new Vector2(); + try { + + ByteArrayInputStream stream=new ByteArrayInputStream(get(key)); + ObjectInputStream objStream=new ObjectInputStream(stream); + float x= objStream.readFloat(); + float y= objStream.readFloat(); + return new Vector2(x,y); + + } catch (IOException e) { + e.printStackTrace(); + } + return new Vector2(); + } + public Rectangle readRectangle(String key) + { + if(!containsKey(key)) + return new Rectangle(); + try { + + ByteArrayInputStream stream=new ByteArrayInputStream(get(key)); + ObjectInputStream objStream=new ObjectInputStream(stream); + float x= objStream.readFloat(); + float y= objStream.readFloat(); + float width= objStream.readFloat(); + float height= objStream.readFloat(); + return new Rectangle(x,y,width,height); + + } catch (IOException e) { + e.printStackTrace(); + } + return new Rectangle(); + } + + + + public Pixmap readPixmap(String key) + { + if(!containsKey(key)) + return null; + return new Pixmap(get(key), 0, get(key).length); + } + public int readInt(String key) + { + if(!containsKey(key)) + return 0; + try { + + ByteArrayInputStream stream=new ByteArrayInputStream(get(key)); + ObjectInputStream objStream=new ObjectInputStream(stream); + return objStream.readInt(); + + } catch (IOException e) { + e.printStackTrace(); + } + return 0; + } + public boolean readBool(String key) + { + if(!containsKey(key)) + return false; + try { + + ByteArrayInputStream stream=new ByteArrayInputStream(get(key)); + ObjectInputStream objStream=new ObjectInputStream(stream); + return objStream.readBoolean(); + + } catch (IOException e) { + e.printStackTrace(); + } + return false; + } + + +} diff --git a/forge-adventure/src/main/java/forge/adventure/util/Serializer.java b/forge-adventure/src/main/java/forge/adventure/util/Serializer.java index 8b0445d621f..d3cbd5ddbb1 100644 --- a/forge-adventure/src/main/java/forge/adventure/util/Serializer.java +++ b/forge-adventure/src/main/java/forge/adventure/util/Serializer.java @@ -44,10 +44,10 @@ public abstract class Serializer { } - public static void WritePixmap(ObjectOutputStream out, Pixmap pixmap, boolean b) throws IOException { + public static void WritePixmap(ObjectOutputStream out, Pixmap pixmap, boolean flip) throws IOException { if (pixmap != null) { PixmapIO.PNG png = new PixmapIO.PNG(); - png.setFlipY(b); + png.setFlipY(flip); ByteArrayOutputStream stream = new ByteArrayOutputStream(); png.write(stream, pixmap); byte[] data = stream.toByteArray(); diff --git a/forge-adventure/src/main/java/forge/adventure/world/AdventurePlayer.java b/forge-adventure/src/main/java/forge/adventure/world/AdventurePlayer.java index b834347c095..2a21e4d1d0c 100644 --- a/forge-adventure/src/main/java/forge/adventure/world/AdventurePlayer.java +++ b/forge-adventure/src/main/java/forge/adventure/world/AdventurePlayer.java @@ -2,25 +2,19 @@ package forge.adventure.world; import com.badlogic.gdx.files.FileHandle; import com.badlogic.gdx.graphics.g2d.TextureRegion; -import com.badlogic.gdx.utils.Disposable; +import com.google.common.collect.Lists; import forge.adventure.data.DifficultyData; import forge.adventure.data.HeroListData; -import forge.adventure.util.Config; -import forge.adventure.util.Reward; -import forge.adventure.util.SaveFileContent; -import forge.adventure.util.SignalList; +import forge.adventure.util.*; +import forge.deck.CardPool; import forge.deck.Deck; -import forge.item.PaperCard; -import java.io.IOException; import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; /** * Class that represents the player (not the player sprite) */ -public class AdventurePlayer implements Serializable, Disposable, SaveFileContent { +public class AdventurePlayer implements Serializable, SaveFileContent { private Deck deck; private int avatarIndex; private int heroRace; @@ -31,20 +25,25 @@ public class AdventurePlayer implements Serializable, Disposable, SaveFileConten private int gold=0; private int maxLife=20; private int life=20; - private DifficultyData difficultyData; + private final DifficultyData difficultyData=new DifficultyData(); static public AdventurePlayer current() { return WorldSave.currentSave.getPlayer(); } - private List cards=new ArrayList<>(); + private final CardPool cards=new CardPool(); public void create(String n, Deck startingDeck, boolean male, int race, int avatar,DifficultyData difficultyData) { deck = startingDeck; gold =difficultyData.staringMoney; - cards.addAll(deck.getAllCardsInASinglePool().toFlatList()); + cards.clear(); + cards.addAllFlat(deck.getAllCardsInASinglePool().toFlatList()); maxLife=difficultyData.startingLife; - this.difficultyData=difficultyData; + this.difficultyData.startingLife=difficultyData.startingLife; + this.difficultyData.staringMoney=difficultyData.staringMoney; + this.difficultyData.startingDifficulty=difficultyData.startingDifficulty; + this.difficultyData.name=difficultyData.name; + this.difficultyData.enemyLifeFactor=difficultyData.enemyLifeFactor; life=maxLife; avatarIndex = avatar; heroRace = race; @@ -57,7 +56,7 @@ public class AdventurePlayer implements Serializable, Disposable, SaveFileConten public Deck getDeck() { return deck; } - public List getCards() { + public CardPool getCards() { return cards; } @@ -82,47 +81,71 @@ public class AdventurePlayer implements Serializable, Disposable, SaveFileConten this.worldPosY = worldPosY; } - @Override - public void writeToSaveFile(java.io.ObjectOutputStream out) throws IOException { - out.writeUTF(name); - out.writeFloat(worldPosX); - out.writeFloat(worldPosY); - out.writeInt(avatarIndex); - out.writeInt(heroRace); - out.writeBoolean(isFemale); - out.writeInt(gold); - out.writeInt(life); - out.writeInt(maxLife); - out.writeObject(deck); - out.writeObject(cards); - } - @Override - public void readFromSaveFile(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { - name = in.readUTF(); - worldPosX = in.readFloat(); - worldPosY = in.readFloat(); + public void load(SaveFileData data) { - avatarIndex = in.readInt(); - heroRace = in.readInt(); - isFemale = in.readBoolean(); - gold = in.readInt(); - life = in.readInt(); - maxLife = in.readInt(); - deck = (Deck) in.readObject(); - cards = (List) in.readObject(); + this.difficultyData.startingLife=data.readInt("startingLife"); + this.difficultyData.staringMoney=data.readInt("staringMoney"); + this.difficultyData.startingDifficulty=data.readBool("startingDifficulty"); + this.difficultyData.name=data.readString("difficultyName"); + this.difficultyData.enemyLifeFactor=data.readFloat("enemyLifeFactor"); + name = data.readString("name"); + worldPosX = data.readFloat("worldPosX"); + worldPosY = data.readFloat("worldPosY"); + + avatarIndex = data.readInt("avatarIndex"); + heroRace = data.readInt("heroRace"); + isFemale = data.readBool("isFemale"); + gold = data.readInt("gold"); + life = data.readInt("life"); + maxLife = data.readInt("maxLife"); + + deck = new Deck(data.readString("deckName")); + deck.getMain().addAll(CardPool.fromCardList(Lists.newArrayList((String[])data.readObject("deckCards")))); + + cards.clear(); + cards.addAll(CardPool.fromCardList(Lists.newArrayList((String[])data.readObject("cards")))); + onLifeTotalChangeList.emit(); onGoldChangeList.emit(); } - public void dispose() { + @Override + public SaveFileData save() { + SaveFileData data= new SaveFileData(); + + data.store("startingLife",this.difficultyData.startingLife); + data.store("staringMoney",this.difficultyData.staringMoney); + data.store("startingDifficulty",this.difficultyData.startingDifficulty); + data.store("difficultyName",this.difficultyData.name); + data.store("enemyLifeFactor",this.difficultyData.enemyLifeFactor); + + + data.store("name",name); + data.store("worldPosX",worldPosX); + data.store("worldPosY",worldPosY); + data.store("avatarIndex",avatarIndex); + data.store("heroRace",heroRace); + data.store("isFemale",isFemale); + data.store("gold",gold); + data.store("life",life); + data.store("maxLife",maxLife); + data.store("deckName",deck.getName()); + + + data.storeObject("deckCards",deck.getMain().toCardList("\n").split("\n")); + data.storeObject("cards",cards.toCardList("\n").split("\n")); + + return data; } + + public String spriteName() { return HeroListData.getHero(heroRace, isFemale); } diff --git a/forge-adventure/src/main/java/forge/adventure/world/PointOfInterest.java b/forge-adventure/src/main/java/forge/adventure/world/PointOfInterest.java index eec81008109..0b1b59d3a63 100644 --- a/forge-adventure/src/main/java/forge/adventure/world/PointOfInterest.java +++ b/forge-adventure/src/main/java/forge/adventure/world/PointOfInterest.java @@ -7,11 +7,8 @@ import com.badlogic.gdx.utils.Array; import forge.adventure.data.PointOfInterestData; import forge.adventure.util.Config; import forge.adventure.util.SaveFileContent; -import forge.adventure.util.Serializer; +import forge.adventure.util.SaveFileData; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; import java.util.Random; /** @@ -21,23 +18,28 @@ public class PointOfInterest implements SaveFileContent { @Override - public void writeToSaveFile(ObjectOutputStream saveFile) throws IOException { - saveFile.writeUTF(data.name); - Serializer.writeVector(saveFile,position); - Serializer.writeRectangle(saveFile,rectangle); - saveFile.writeInt(spriteIndex); + public void load(SaveFileData saveFileData) { + + data=PointOfInterestData.getPointOfInterest(saveFileData.readString("name")); + position.set(saveFileData.readVector2("position")); + rectangle.set(saveFileData.readRectangle("rectangle")); + spriteIndex=saveFileData.readInt("spriteIndex"); + + + oldMapId=""; + Array textureAtlas = Config.instance().getAtlas(this.data.spriteAtlas).createSprites(this.data.sprite); + sprite = textureAtlas.get(spriteIndex); } @Override - public void readFromSaveFile(ObjectInputStream saveFile) throws IOException { - String name= saveFile.readUTF(); - data=PointOfInterestData.getPointOfInterest(name); - Serializer.readVector(saveFile,position); - Serializer.readRectangle(saveFile,rectangle); - spriteIndex=saveFile.readInt(); - oldMapId=""; - Array textureAtlas = Config.instance().getAtlas(data.spriteAtlas).createSprites(data.sprite); - sprite = textureAtlas.get(spriteIndex); + public SaveFileData save() { + + SaveFileData data=new SaveFileData(); + data.store("name",this.data.name); + data.store("position",position); + data.store("rectangle",rectangle); + data.store("spriteIndex",spriteIndex); + return data; } PointOfInterestData data; diff --git a/forge-adventure/src/main/java/forge/adventure/world/PointOfInterestMap.java b/forge-adventure/src/main/java/forge/adventure/world/PointOfInterestMap.java index b9524b59b8e..9202066a025 100644 --- a/forge-adventure/src/main/java/forge/adventure/world/PointOfInterestMap.java +++ b/forge-adventure/src/main/java/forge/adventure/world/PointOfInterestMap.java @@ -1,10 +1,8 @@ package forge.adventure.world; import forge.adventure.util.SaveFileContent; +import forge.adventure.util.SaveFileData; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; import java.util.ArrayList; import java.util.List; @@ -48,42 +46,48 @@ public class PointOfInterestMap implements SaveFileContent { return mapObjects[chunkX][chunkY]; } - @Override - public void writeToSaveFile(ObjectOutputStream saveFile) throws IOException { - saveFile.writeInt(numberOfChunksX); - saveFile.writeInt(numberOfChunksY); - saveFile.writeInt(tileSize); - saveFile.writeInt(chunkSize); - for (int x = 0; x < numberOfChunksX; x++) { - for (int y = 0; y < numberOfChunksY; y++) { - saveFile.writeInt(mapObjects[x][y].size()); - for(PointOfInterest poi:mapObjects[x][y]) - { - poi.writeToSaveFile(saveFile); - } - } - } - } @Override - public void readFromSaveFile(ObjectInputStream saveFile) throws IOException, ClassNotFoundException { - numberOfChunksX=saveFile.readInt(); - numberOfChunksY=saveFile.readInt(); - tileSize=saveFile.readInt(); - chunkSize=saveFile.readInt(); + public void load(SaveFileData data) { + numberOfChunksX=data.readInt("numberOfChunksX"); + numberOfChunksY=data.readInt("numberOfChunksY"); + tileSize=data.readInt("tileSize"); + chunkSize=data.readInt("chunkSize"); mapObjects = new List[numberOfChunksX][numberOfChunksY]; for (int x = 0; x < numberOfChunksX; x++) { for (int y = 0; y < numberOfChunksY; y++) { mapObjects[x][y] = new ArrayList(); - int arraySize=saveFile.readInt(); + int arraySize=data.readInt("mapObjects["+x +"]["+y+"]"); for(int i=0;i implements SaveFileContent + { + @Override + public void load(SaveFileData data) { + clear(); + List keyList=(List)data.readObject("keyList"); + for(Integer key:keyList) + { + BiomeSpriteData biomeData=new BiomeSpriteData(); + biomeData.load(data.readSubData(key.toString())); + put(key,biomeData); + } + } + @Override + public SaveFileData save() { + + SaveFileData data = new SaveFileData(); + List keyList=new ArrayList<>(); + for(Entry entry:this.entrySet()) + { + keyList.add(entry.getKey()); + data.store(entry.getKey().toString(),entry.getValue().save()); + } + data.storeObject("keyList",keyList); + return data; + } + } private final int numberOfChunks; - HashMap objectData = new HashMap<>(); + BiomeSpriteDataMap objectData = new BiomeSpriteDataMap(); HashMap objectKeys = new HashMap<>(); int tileSize; int chunkSize; @@ -34,25 +61,7 @@ public class SpritesDataMap implements Serializable { } } - private void writeObject(java.io.ObjectOutputStream out) throws IOException { - out.writeObject(mapObjects); - out.writeObject(objectData); - out.writeObject(objectKeys); - out.writeInt(tileSize); - out.writeInt(chunkSize); - } - - private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { - - mapObjects = (List>[][]) in.readObject(); - objectData = (HashMap) in.readObject(); - objectKeys = (HashMap) in.readObject(); - tileSize = in.readInt(); - chunkSize = in.readInt(); - - - } public BiomeSpriteData get(int id) { return objectData.get(id); @@ -86,4 +95,28 @@ public class SpritesDataMap implements Serializable { return new ArrayList<>(); return mapObjects[chunkX][chunkY]; } + + + @Override + public void load(SaveFileData data) { + + objectData.load(data.readSubData("objectData")); + mapObjects = (List>[][])data.readObject("mapObjects"); + objectKeys = (HashMap)data.readObject("objectKeys"); + tileSize = data.readInt("tileSize"); + chunkSize = data.readInt("chunkSize"); + } + + @Override + public SaveFileData save() { + SaveFileData data=new SaveFileData(); + data.store("objectData",objectData.save()); + data.storeObject("mapObjects",mapObjects); + data.storeObject("objectKeys",objectKeys); + data.store("tileSize",tileSize); + data.store("chunkSize",chunkSize); + + return data; + } + } diff --git a/forge-adventure/src/main/java/forge/adventure/world/World.java b/forge-adventure/src/main/java/forge/adventure/world/World.java index 2acb9647664..2fe99fa445f 100644 --- a/forge-adventure/src/main/java/forge/adventure/world/World.java +++ b/forge-adventure/src/main/java/forge/adventure/world/World.java @@ -13,10 +13,9 @@ import forge.adventure.scene.Scene; import forge.adventure.util.Config; import forge.adventure.util.Paths; import forge.adventure.util.SaveFileContent; -import forge.adventure.util.Serializer; +import forge.adventure.util.SaveFileData; import org.apache.commons.lang3.tuple.Pair; -import java.io.IOException; import java.util.ArrayList; import java.util.HashSet; import java.util.List; @@ -39,6 +38,7 @@ public class World implements Disposable, SaveFileContent { private BiomeTexture[] biomeTexture; private long seed; private final Random random = new Random(); + private boolean worldDataLoaded=false; public Random getRandom() { @@ -48,49 +48,65 @@ public class World implements Disposable, SaveFileContent { return (int) (Math.log(Long.highestOneBit(biome)) / Math.log(2)); } - @Override - public void writeToSaveFile(java.io.ObjectOutputStream out) throws IOException { - - - Serializer.WritePixmap(out, biomeImage); - out.writeObject(biomeMap); - out.writeObject(terrainMap); - out.writeInt(width); - out.writeInt(height); - out.writeObject(mapObjectIds); - mapPoiIds.writeToSaveFile(out); - out.writeLong(seed); - } - - @Override - public void readFromSaveFile(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { + public void loadWorldData() + { + if(worldDataLoaded) + return; FileHandle handle = Config.instance().getFile(Paths.WORLD); String rawJson = handle.readString(); - data = (new Json()).fromJson(WorldData.class, rawJson); + this.data = (new Json()).fromJson(WorldData.class, rawJson); + biomeTexture = new BiomeTexture[data.GetBiomes().size() + 1]; - if (biomeImage != null) biomeImage.dispose(); - biomeImage = Serializer.ReadPixmap(in); - biomeMap = (long[][]) in.readObject(); - terrainMap = (int[][]) in.readObject(); - width = in.readInt(); - height = in.readInt(); - mapObjectIds = (SpritesDataMap) in.readObject(); - if(mapPoiIds==null)mapPoiIds=new PointOfInterestMap(1,1,1,1); - mapPoiIds.readFromSaveFile(in); - seed = in.readLong(); + int biomeIndex=0; + for (BiomeData biome : data.GetBiomes()) { - biomeTexture = new BiomeTexture[data.GetBiomes().size()+1]; - for(int i = 0; i townPair : allSortedTowns) { Vector2 currentPoint = townPair.getKey().getTilePosition(data.tileSize); diff --git a/forge-adventure/src/main/java/forge/adventure/world/WorldSave.java b/forge-adventure/src/main/java/forge/adventure/world/WorldSave.java index 6d0a0fec4a1..f9ec6d57ae2 100644 --- a/forge-adventure/src/main/java/forge/adventure/world/WorldSave.java +++ b/forge-adventure/src/main/java/forge/adventure/world/WorldSave.java @@ -1,7 +1,10 @@ package forge.adventure.world; import forge.adventure.data.DifficultyData; +import forge.adventure.stage.WorldStage; import forge.adventure.util.Config; +import forge.adventure.util.SaveFileData; +import forge.adventure.util.SignalList; import forge.deck.Deck; import forge.localinstance.properties.ForgeProfileProperties; import org.jetbrains.annotations.NotNull; @@ -16,16 +19,17 @@ import java.util.zip.InflaterInputStream; */ public class WorldSave { - static final int AUTO_SAVE_SLOT =-1; - static final int QUICK_SAVE_SLOT =-2; - static final int INVALID_SAVE_SLOT =-3; - static WorldSave currentSave=new WorldSave(); + static final public int AUTO_SAVE_SLOT =-1; + static final public int QUICK_SAVE_SLOT =-2; + static final public int INVALID_SAVE_SLOT =-3; + static final WorldSave currentSave=new WorldSave(); public WorldSaveHeader header = new WorldSaveHeader(); private final AdventurePlayer player=new AdventurePlayer(); private final World world=new World(); private final HashMap pointOfInterestChanges=new HashMap<>(); + private final SignalList onLoadList=new SignalList(); public final World getWorld() { @@ -36,6 +40,10 @@ public class WorldSave { return player; } + public void onLoad(Runnable run) + { + onLoadList.add(run); + } public PointOfInterestChanges getPointOfInterestChanges(String id) { if(!pointOfInterestChanges.containsKey(id)) @@ -53,8 +61,13 @@ public class WorldSave { ObjectInputStream oos = new ObjectInputStream(inf)) { currentSave.header = (WorldSaveHeader) oos.readObject(); - currentSave.player.readFromSaveFile(oos); - currentSave.world.readFromSaveFile(oos); + SaveFileData mainData=(SaveFileData)oos.readObject(); + currentSave.player.load(mainData.readSubData("player")); + currentSave.world.load(mainData.readSubData("world")); + WorldStage.getInstance().load(mainData.readSubData("worldStage")); + + currentSave.onLoadList.emit(); + } } catch (ClassNotFoundException | IOException e) { e.printStackTrace(); @@ -105,10 +118,19 @@ public class WorldSave { currentSave.player.create(name, starterDeck, male, race, avatarIndex,diff); currentSave.player.setWorldPosY((int) (currentSave.world.getData().playerStartPosY * currentSave.world.getData().height * currentSave.world.getTileSize())); currentSave.player.setWorldPosX((int) (currentSave.world.getData().playerStartPosX * currentSave.world.getData().width * currentSave.world.getTileSize())); + currentSave.onLoadList.emit(); return currentSave; //return currentSave = ret; } - + public boolean autoSave() { + return save("auto save",AUTO_SAVE_SLOT); + } + public boolean quickSave() { + return save("quick save",QUICK_SAVE_SLOT); + } + public boolean quickLoad() { + return load(QUICK_SAVE_SLOT); + } public boolean save(String text, int currentSlot) { header.name = text; @@ -121,8 +143,12 @@ public class WorldSave { ObjectOutputStream oos = new ObjectOutputStream(def)) { oos.writeObject(header); - player.writeToSaveFile(oos); - world.writeToSaveFile(oos); + SaveFileData mainData=new SaveFileData(); + mainData.store("player",currentSave.player.save()); + mainData.store("world",currentSave.world.save()); + mainData.store("worldStage", WorldStage.getInstance().save()); + + oos.writeObject(mainData); } } catch (IOException e) { @@ -132,11 +158,4 @@ public class WorldSave { return true; } - private void dispose() { - - header.dispose(); - player.dispose(); - world.dispose(); - } - } diff --git a/forge-adventure/src/main/java/forge/adventure/world/WorldSaveHeader.java b/forge-adventure/src/main/java/forge/adventure/world/WorldSaveHeader.java index da4d5d4ab71..8b71eb028d9 100644 --- a/forge-adventure/src/main/java/forge/adventure/world/WorldSaveHeader.java +++ b/forge-adventure/src/main/java/forge/adventure/world/WorldSaveHeader.java @@ -1,7 +1,9 @@ package forge.adventure.world; +import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Pixmap; import com.badlogic.gdx.utils.Disposable; +import forge.adventure.scene.Scene; import forge.adventure.util.Serializer; import java.io.IOException; @@ -27,6 +29,8 @@ public class WorldSaveHeader implements java.io.Serializable, Disposable { private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { name = in.readUTF(); + if(preview!=null) + preview.dispose(); preview = Serializer.ReadPixmap(in); saveDate = (Date) in.readObject(); @@ -35,4 +39,16 @@ public class WorldSaveHeader implements java.io.Serializable, Disposable { public void dispose() { preview.dispose(); } + + public void createPreview() { + Pixmap pixmap = Pixmap.createFromFrameBuffer(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); + Pixmap scaled = new Pixmap(WorldSaveHeader.previewImageWidth, (int) (WorldSaveHeader.previewImageWidth / (Scene.GetIntendedWidth() / (float) Scene.GetIntendedHeight())), Pixmap.Format.RGB888); + scaled.drawPixmap(pixmap, + 0, 0, pixmap.getWidth(), pixmap.getHeight(), + 0, 0, scaled.getWidth(), scaled.getHeight()); + pixmap.dispose(); + if (preview != null) + preview.dispose(); + preview = scaled; + } } \ No newline at end of file diff --git a/forge-ai/src/main/java/forge/ai/AiController.java b/forge-ai/src/main/java/forge/ai/AiController.java index 176aae050f2..b48114b9022 100644 --- a/forge-ai/src/main/java/forge/ai/AiController.java +++ b/forge-ai/src/main/java/forge/ai/AiController.java @@ -712,6 +712,30 @@ public class AiController { return AiPlayDecision.CantPlaySa; } + // Check a predefined condition + if (sa.hasParam("AICheckSVar")) { + final Card host = sa.getHostCard(); + final String svarToCheck = sa.getParam("AICheckSVar"); + String comparator = "GE"; + int compareTo = 1; + + if (sa.hasParam("AISVarCompare")) { + final String fullCmp = sa.getParam("AISVarCompare"); + comparator = fullCmp.substring(0, 2); + final String strCmpTo = fullCmp.substring(2); + try { + compareTo = Integer.parseInt(strCmpTo); + } catch (final Exception ignored) { + compareTo = AbilityUtils.calculateAmount(host, host.getSVar(strCmpTo), sa); + } + } + + int left = AbilityUtils.calculateAmount(host, svarToCheck, sa); + if (!Expressions.compare(left, comparator, compareTo)) { + return AiPlayDecision.AnotherTime; + } + } + int oldCMC = -1; boolean xCost = sa.getPayCosts().hasXInAnyCostPart() || sa.getHostCard().hasStartOfKeyword("Strive"); if (!xCost) { @@ -746,7 +770,7 @@ public class AiController { // one is warded and can't be paid for. if (sa.usesTargeting()) { for (Card tgt : sa.getTargets().getTargetCards()) { - if (tgt.hasKeyword(Keyword.WARD) && tgt.getController().isOpponentOf(sa.getHostCard().getController())) { + if (tgt.hasKeyword(Keyword.WARD) && tgt.isInPlay() && tgt.getController().isOpponentOf(sa.getHostCard().getController())) { int amount = 0; Cost wardCost = ComputerUtilCard.getTotalWardCost(tgt); if (wardCost.hasManaCost()) { diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtilCard.java b/forge-ai/src/main/java/forge/ai/ComputerUtilCard.java index 7b478efb21d..4aca406531a 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtilCard.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtilCard.java @@ -1746,12 +1746,12 @@ public class ComputerUtilCard { int att = 0; if (stAb.hasParam("AddPower")) { String addP = stAb.getParam("AddPower"); - att = AbilityUtils.calculateAmount(addP.startsWith("Affected") ? vCard : c, addP, stAb, true); + att = AbilityUtils.calculateAmount(addP.contains("Affected") ? vCard : c, addP, stAb, true); } int def = 0; if (stAb.hasParam("AddToughness")) { String addT = stAb.getParam("AddToughness"); - def = AbilityUtils.calculateAmount(addT.startsWith("Affected") ? vCard : c, addT, stAb, true); + def = AbilityUtils.calculateAmount(addT.contains("Affected") ? vCard : c, addT, stAb, true); } vCard.addPTBoost(att, def, c.getTimestamp(), stAb.getId()); } diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtilCost.java b/forge-ai/src/main/java/forge/ai/ComputerUtilCost.java index 49fd81fdc35..ff5b74a1a03 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtilCost.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtilCost.java @@ -592,7 +592,7 @@ public class ComputerUtilCost { // Ward - will be accounted for when rechecking a targeted ability if (sa.usesTargeting()) { for (Card tgt : sa.getTargets().getTargetCards()) { - if (tgt.hasKeyword(Keyword.WARD) && tgt.getController().isOpponentOf(sa.getHostCard().getController())) { + if (tgt.hasKeyword(Keyword.WARD) && tgt.isInPlay() && tgt.getController().isOpponentOf(sa.getHostCard().getController())) { Cost wardCost = ComputerUtilCard.getTotalWardCost(tgt); if (wardCost.hasManaCost()) { extraManaNeeded += wardCost.getTotalMana().getCMC(); diff --git a/forge-ai/src/main/java/forge/ai/ability/AttachAi.java b/forge-ai/src/main/java/forge/ai/ability/AttachAi.java index bb444e4fd66..5540f3fec3b 100644 --- a/forge-ai/src/main/java/forge/ai/ability/AttachAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/AttachAi.java @@ -1745,6 +1745,10 @@ public class AttachAi extends SpellAbilityAi { sa.getTargets().add(tgt); } return sa.isTargetNumberValid(); + } else if ("Remembered".equals(sa.getParam("Defined")) && sa.getParent() != null + && sa.getParent().getApi() == ApiType.Token && sa.getParent().hasParam("RememberTokens")) { + // Living Weapon or similar + return true; } return false; } diff --git a/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java b/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java index 2c22a67411d..9eb152ca4a0 100644 --- a/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java @@ -2,6 +2,8 @@ package forge.ai.ability; import java.util.*; +import forge.game.card.*; +import forge.game.keyword.Keyword; import org.apache.commons.lang3.StringUtils; import com.google.common.base.Predicate; @@ -32,14 +34,7 @@ import forge.game.GlobalRuleChange; import forge.game.ability.AbilityKey; import forge.game.ability.AbilityUtils; import forge.game.ability.ApiType; -import forge.game.card.Card; -import forge.game.card.CardCollection; -import forge.game.card.CardCollectionView; -import forge.game.card.CardLists; -import forge.game.card.CardPredicates; import forge.game.card.CardPredicates.Presets; -import forge.game.card.CardUtil; -import forge.game.card.CounterEnumType; import forge.game.combat.Combat; import forge.game.cost.Cost; import forge.game.cost.CostDiscard; @@ -1397,6 +1392,57 @@ public class ChangeZoneAi extends SpellAbilityAi { } } } + // Reload Undying and Persist, get rid of -1/-1 counters, get rid of enemy auras if able + Card bestChoice = null; + int bestEval = 0; + for (Card c : aiPermanents) { + if (c.isCreature()) { + boolean hasValuableAttachments = false; + boolean hasOppAttachments = false; + int numNegativeCounters = 0; + int numTotalCounters = 0; + for (Card attached : c.getAttachedCards()) { + if (attached.isAura()) { + if (attached.getController() == c.getController()) { + hasValuableAttachments = true; + } else if (attached.getController().isOpponentOf(c.getController())) { + hasOppAttachments = true; + } + } + } + Map counters = c.getCounters(); + for (CounterType ct : counters.keySet()) { + int amount = counters.get(ct); + if (ComputerUtil.isNegativeCounter(ct, c)) { + numNegativeCounters += amount; + } + numTotalCounters += amount; + } + if (hasValuableAttachments || (ComputerUtilCard.isUselessCreature(ai, c) && !hasOppAttachments)) { + continue; + } + + Card considered = null; + if ((c.hasKeyword(Keyword.PERSIST) || c.hasKeyword(Keyword.UNDYING)) + && !ComputerUtilCard.hasActiveUndyingOrPersist(c)) { + considered = c; + } else if (hasOppAttachments || (numTotalCounters > 0 && numNegativeCounters > numTotalCounters / 2)) { + considered = c; + } + + if (considered != null) { + int eval = ComputerUtilCard.evaluateCreature(c); + if (eval > bestEval) { + bestEval = eval; + bestChoice = considered; + } + } + } + } + if (bestChoice != null) { + return bestChoice; + } + return null; } diff --git a/forge-core/src/main/java/forge/ImageKeys.java b/forge-core/src/main/java/forge/ImageKeys.java index f7d63c36aac..1fa0b022e94 100644 --- a/forge-core/src/main/java/forge/ImageKeys.java +++ b/forge-core/src/main/java/forge/ImageKeys.java @@ -66,6 +66,10 @@ public final class ImageKeys { } private static final Map cachedCards = new HashMap<>(50000); + private static HashSet missingCards = new HashSet<>(); + public static void clearMissingCards() { + missingCards.clear(); + } public static File getCachedCardsFile(String key) { return cachedCards.get(key); } @@ -101,6 +105,9 @@ public final class ImageKeys { dir = CACHE_CARD_PICS_DIR; } + if (missingCards.contains(filename)) + return null; + File cachedFile = cachedCards.get(filename); if (cachedFile != null) { return cachedFile; @@ -237,6 +244,8 @@ public final class ImageKeys { } // System.out.println("File not found, no image created: " + key); + //add missing cards + missingCards.add(filename); return null; } diff --git a/forge-game/src/main/java/forge/game/GameActionUtil.java b/forge-game/src/main/java/forge/game/GameActionUtil.java index b2eeedb3877..2d0ee677817 100644 --- a/forge-game/src/main/java/forge/game/GameActionUtil.java +++ b/forge-game/src/main/java/forge/game/GameActionUtil.java @@ -178,7 +178,13 @@ public final class GameActionUtil { final String[] k = keyword.split(":"); final Cost disturbCost = new Cost(k[1], true); - final SpellAbility newSA = sa.copyWithManaCostReplaced(activator, disturbCost); + SpellAbility newSA; + if (source.getAlternateState().getType().hasSubtype("Aura")) { + newSA = source.getAlternateState().getFirstAbility().copyWithManaCostReplaced(activator, + disturbCost); + } else { + newSA = sa.copyWithManaCostReplaced(activator, disturbCost); + } newSA.setActivatingPlayer(activator); newSA.putParam("PrecostDesc", "Disturb —"); @@ -190,11 +196,6 @@ public final class GameActionUtil { desc.append("(").append(inst.getReminderText()).append(")"); newSA.setDescription(desc.toString()); newSA.putParam("AfterDescription", "(Disturbed)"); - final String type = source.getAlternateState().getType().toString(); - if (!type.contains("Creature")) { - final String name = source.getAlternateState().getName(); - newSA.putParam("StackDescription", name + " — " + type + " (Disturbed)"); - } newSA.setAlternativeCost(AlternativeCost.Disturb); newSA.getRestrictions().setZone(ZoneType.Graveyard); @@ -733,7 +734,7 @@ public final class GameActionUtil { return list; } CardCollection completeList = new CardCollection(); - PlayerCollection players = game.getPlayers(); + PlayerCollection players = new PlayerCollection(game.getPlayers()); // CR 613.7k use APNAP int indexAP = players.indexOf(game.getPhaseHandler().getPlayerTurn()); if (indexAP != -1) { diff --git a/forge-game/src/main/java/forge/game/GameObjectPredicates.java b/forge-game/src/main/java/forge/game/GameObjectPredicates.java index 69d4d11a830..580a6b02deb 100644 --- a/forge-game/src/main/java/forge/game/GameObjectPredicates.java +++ b/forge-game/src/main/java/forge/game/GameObjectPredicates.java @@ -36,7 +36,7 @@ public final class GameObjectPredicates { return new Predicate() { @Override public boolean apply(final GameObject c) { - return (c != null) && c.isValid(restrictions, sourceController, source, spellAbility); + return c != null && c.isValid(restrictions, sourceController, source, spellAbility); } }; } diff --git a/forge-game/src/main/java/forge/game/card/CardPredicates.java b/forge-game/src/main/java/forge/game/card/CardPredicates.java index 0ed368fdecd..736e629647b 100644 --- a/forge-game/src/main/java/forge/game/card/CardPredicates.java +++ b/forge-game/src/main/java/forge/game/card/CardPredicates.java @@ -197,6 +197,15 @@ public final class CardPredicates { }; } + public static Predicate sharesLandTypeWith(final Card card) { + return new Predicate() { + @Override + public boolean apply(final Card c) { + return c.sharesLandTypeWith(card); + } + }; + } + public static final Predicate possibleBlockers(final Card attacker) { return new Predicate() { @Override 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 98cfe6cd7d9..8efc6986776 100644 --- a/forge-game/src/main/java/forge/game/card/CardProperty.java +++ b/forge-game/src/main/java/forge/game/card/CardProperty.java @@ -825,6 +825,11 @@ public class CardProperty { } } } + } else if (property.startsWith("sharesLandTypeWith")) { + final String restriction = property.split("sharesLandTypeWith ")[1]; + if (!Iterables.any(AbilityUtils.getDefinedCards(source, restriction, spellAbility), CardPredicates.sharesLandTypeWith(card))) { + return false; + } } else if (property.equals("sharesPermanentTypeWith")) { if (!card.sharesPermanentTypeWith(source)) { return false; diff --git a/forge-game/src/main/java/forge/game/cost/Cost.java b/forge-game/src/main/java/forge/game/cost/Cost.java index ab62db3a7d3..84f2e52229c 100644 --- a/forge-game/src/main/java/forge/game/cost/Cost.java +++ b/forge-game/src/main/java/forge/game/cost/Cost.java @@ -832,12 +832,7 @@ public class Cost implements Serializable { sb.append(Cost.NUM_NAMES[i]); } - sb.append(" "); - char firstChar = type.charAt(0); - if (Character.isUpperCase(firstChar)) { //fix case of type before appending - type = Character.toLowerCase(firstChar) + type.substring(1); - } - sb.append(type); + sb.append(" ").append(type); if (1 != i) { sb.append("s"); } diff --git a/forge-game/src/main/java/forge/game/cost/CostDecisionMakerBase.java b/forge-game/src/main/java/forge/game/cost/CostDecisionMakerBase.java index 6dc1a97d347..500ccd93588 100644 --- a/forge-game/src/main/java/forge/game/cost/CostDecisionMakerBase.java +++ b/forge-game/src/main/java/forge/game/cost/CostDecisionMakerBase.java @@ -2,7 +2,7 @@ package forge.game.cost; import forge.game.player.Player; -public abstract class CostDecisionMakerBase implements ICostVisitor { +public abstract class CostDecisionMakerBase implements ICostVisitor { protected final Player player; public CostDecisionMakerBase(Player player0) { diff --git a/forge-game/src/main/java/forge/game/cost/CostDiscard.java b/forge-game/src/main/java/forge/game/cost/CostDiscard.java index 1fd841827f8..dd9cd0c12aa 100644 --- a/forge-game/src/main/java/forge/game/cost/CostDiscard.java +++ b/forge-game/src/main/java/forge/game/cost/CostDiscard.java @@ -199,7 +199,9 @@ public class CostDiscard extends CostPartWithList { // discard itself for cycling cost runParams.put(AbilityKey.Cycling, true); } - return targetCard.getController().discard(targetCard, null, null, runParams); + // if this is caused by 118.12 it's also an effect + SpellAbility cause = targetCard.getGame().getStack().isResolving(ability.getHostCard()) ? ability : null; + return targetCard.getController().discard(targetCard, cause, null, runParams); } /* (non-Javadoc) @@ -226,8 +228,7 @@ public class CostDiscard extends CostPartWithList { protected void handleChangeZoneTrigger(Player payer, SpellAbility ability, CardCollectionView targetCards) { super.handleChangeZoneTrigger(payer, ability, targetCards); - if (!targetCards.isEmpty()) - { + if (!targetCards.isEmpty()) { final Map runParams = AbilityKey.newMap(); runParams.put(AbilityKey.Player, payer); runParams.put(AbilityKey.Cards, new CardCollection(targetCards)); diff --git a/forge-game/src/main/java/forge/game/cost/CostExert.java b/forge-game/src/main/java/forge/game/cost/CostExert.java index c9dc957a715..448f57cbf09 100644 --- a/forge-game/src/main/java/forge/game/cost/CostExert.java +++ b/forge-game/src/main/java/forge/game/cost/CostExert.java @@ -84,7 +84,6 @@ public class CostExert extends CostPartWithList { public final boolean canPay(final SpellAbility ability, final Player payer) { final Card source = ability.getHostCard(); - if (!this.payCostFromSource()) { boolean needsAnnoucement = ability.hasParam("Announce") && this.getType().contains(ability.getParam("Announce")); @@ -94,7 +93,6 @@ public class CostExert extends CostPartWithList { return needsAnnoucement || (amount == null) || (typeList.size() >= amount); - } return true; diff --git a/forge-game/src/main/java/forge/game/cost/CostExileFromStack.java b/forge-game/src/main/java/forge/game/cost/CostExileFromStack.java index 1c6709af67a..28bafa64813 100644 --- a/forge-game/src/main/java/forge/game/cost/CostExileFromStack.java +++ b/forge-game/src/main/java/forge/game/cost/CostExileFromStack.java @@ -120,5 +120,5 @@ public class CostExileFromStack extends CostPart { public T accept(ICostVisitor visitor) { return visitor.visit(this); } - + } diff --git a/forge-game/src/main/java/forge/game/cost/CostGainLife.java b/forge-game/src/main/java/forge/game/cost/CostGainLife.java index 310d7b98ad6..3341d11e8e5 100644 --- a/forge-game/src/main/java/forge/game/cost/CostGainLife.java +++ b/forge-game/src/main/java/forge/game/cost/CostGainLife.java @@ -63,7 +63,7 @@ public class CostGainLife extends CostPart { sb.append("Have an opponent gain ").append(this.getAmount()).append(" life"); return sb.toString(); } - + public List getPotentialTargets(final Player payer, final Card source) { List res = new ArrayList<>(); for (Player p : payer.getGame().getPlayers()) { @@ -121,7 +121,6 @@ public class CostGainLife extends CostPart { return true; } - public T accept(ICostVisitor visitor) { return visitor.visit(this); } diff --git a/forge-game/src/main/java/forge/game/cost/CostPayment.java b/forge-game/src/main/java/forge/game/cost/CostPayment.java index 34f1683168e..34737879f42 100644 --- a/forge-game/src/main/java/forge/game/cost/CostPayment.java +++ b/forge-game/src/main/java/forge/game/cost/CostPayment.java @@ -57,7 +57,7 @@ public class CostPayment extends ManaConversionMatrix { public final SpellAbility getAbility() { return this.ability; } - + /** *

* Constructor for Cost_Payment. diff --git a/forge-game/src/main/java/forge/game/cost/CostPutCounter.java b/forge-game/src/main/java/forge/game/cost/CostPutCounter.java index 464032de59c..4ef24a38cd4 100644 --- a/forge-game/src/main/java/forge/game/cost/CostPutCounter.java +++ b/forge-game/src/main/java/forge/game/cost/CostPutCounter.java @@ -151,7 +151,6 @@ public class CostPutCounter extends CostPartWithList { return !typeList.isEmpty(); } - } /* @@ -204,7 +203,6 @@ public class CostPutCounter extends CostPartWithList { tempTable.triggerCountersPutAll(ability.getHostCard().getGame()); } - /* (non-Javadoc) * @see forge.game.cost.CostPartWithList#resetLists() */ diff --git a/forge-game/src/main/java/forge/game/cost/CostTap.java b/forge-game/src/main/java/forge/game/cost/CostTap.java index f1f40517dc9..8bd6893885e 100644 --- a/forge-game/src/main/java/forge/game/cost/CostTap.java +++ b/forge-game/src/main/java/forge/game/cost/CostTap.java @@ -38,17 +38,16 @@ public class CostTap extends CostPart { } public int paymentOrder() { return -1; } - + @Override public boolean isUndoable() { return true; } - @Override public boolean isReusable() { return true; } @Override public boolean isRenewable() { return true; } - + @Override public final String toString() { return "{T}"; @@ -70,7 +69,7 @@ public class CostTap extends CostPart { ability.getHostCard().tap(true); return true; } - + public T accept(ICostVisitor visitor) { return visitor.visit(this); } diff --git a/forge-game/src/main/java/forge/game/cost/CostTapType.java b/forge-game/src/main/java/forge/game/cost/CostTapType.java index da174237166..3d5a8769874 100644 --- a/forge-game/src/main/java/forge/game/cost/CostTapType.java +++ b/forge-game/src/main/java/forge/game/cost/CostTapType.java @@ -78,7 +78,7 @@ public class CostTapType extends CostPartWithList { @Override public boolean isRenewable() { return true; } - + /* * (non-Javadoc) * @@ -131,7 +131,7 @@ public class CostTapType extends CostPartWithList { String type = this.getType(); boolean sameType = false; - + if (type.contains(".sharesCreatureTypeWith")) { sameType = true; type = TextUtil.fastReplace(type, ".sharesCreatureTypeWith", ""); diff --git a/forge-game/src/main/java/forge/game/cost/CostUntap.java b/forge-game/src/main/java/forge/game/cost/CostUntap.java index 37504d8592d..60c5b7a9693 100644 --- a/forge-game/src/main/java/forge/game/cost/CostUntap.java +++ b/forge-game/src/main/java/forge/game/cost/CostUntap.java @@ -45,11 +45,10 @@ public class CostUntap extends CostPart { @Override public boolean isUndoable() { return true; } - + @Override public boolean isRenewable() { return true; } - /* * (non-Javadoc) * @@ -88,7 +87,7 @@ public class CostUntap extends CostPart { ability.getHostCard().untap(true); return true; } - + public T accept(ICostVisitor visitor) { return visitor.visit(this); } diff --git a/forge-game/src/main/java/forge/game/cost/PaymentDecision.java b/forge-game/src/main/java/forge/game/cost/PaymentDecision.java index bb0e7c2bb51..155d1036a5a 100644 --- a/forge-game/src/main/java/forge/game/cost/PaymentDecision.java +++ b/forge-game/src/main/java/forge/game/cost/PaymentDecision.java @@ -38,7 +38,7 @@ public class PaymentDecision { this.counterTable = counterTable; } - private PaymentDecision(Card chosen) { + private PaymentDecision(Card chosen) { this(null, null, null, null, null); cards.add(chosen); } @@ -81,7 +81,7 @@ public class PaymentDecision { */ @Override public String toString() { - return TextUtil.concatWithSpace("Payment Decision:", TextUtil.addSuffix(String.valueOf(c),","), cards.toString()); + return TextUtil.concatWithSpace("Payment Decision:", TextUtil.addSuffix(String.valueOf(c),","), cards.toString()); } public static PaymentDecision type(String choice) { diff --git a/forge-game/src/main/java/forge/game/mana/Mana.java b/forge-game/src/main/java/forge/game/mana/Mana.java index cc94f03b3df..92f061eb248 100644 --- a/forge-game/src/main/java/forge/game/mana/Mana.java +++ b/forge-game/src/main/java/forge/game/mana/Mana.java @@ -45,7 +45,6 @@ public class Mana { return result; } - @Override public boolean equals(Object other) { if (!(other instanceof Mana)) { @@ -89,12 +88,10 @@ public class Mana { return this.manaAbility != null && (!manaAbility.getManaRestrictions().isEmpty() || !manaAbility.getExtraManaRestriction().isEmpty()); } - public final boolean addsNoCounterMagic(SpellAbility saBeingPaid) { return this.manaAbility != null && manaAbility.cannotCounterPaidWith(saBeingPaid); } - public final boolean addsCounters(SpellAbility saBeingPaid) { return this.manaAbility != null && manaAbility.addsCounters(saBeingPaid); } diff --git a/forge-game/src/main/java/forge/game/mana/ManaCostBeingPaid.java b/forge-game/src/main/java/forge/game/mana/ManaCostBeingPaid.java index 501a59d57e5..4afa116964b 100644 --- a/forge-game/src/main/java/forge/game/mana/ManaCostBeingPaid.java +++ b/forge-game/src/main/java/forge/game/mana/ManaCostBeingPaid.java @@ -154,8 +154,7 @@ public class ManaCostBeingPaid { for (ManaCostShard shard : manaCost) { if (shard == ManaCostShard.X) { cntX++; - } - else { + } else { increaseShard(shard, 1, false); } } @@ -588,8 +587,7 @@ public class ManaCostBeingPaid { for (ManaCostShard shard : extra) { if (shard == ManaCostShard.X) { cntX++; - } - else { + } else { increaseShard(shard, 1, false); } } diff --git a/forge-game/src/main/java/forge/game/phase/ExtraTurn.java b/forge-game/src/main/java/forge/game/phase/ExtraTurn.java index f35c82d7845..49c9dcdb9bb 100644 --- a/forge-game/src/main/java/forge/game/phase/ExtraTurn.java +++ b/forge-game/src/main/java/forge/game/phase/ExtraTurn.java @@ -119,4 +119,4 @@ public class ExtraTurn { this.cantSetSchemesInMotion = noSchemes; } -} //end class Untap +} diff --git a/forge-game/src/main/java/forge/game/phase/Untap.java b/forge-game/src/main/java/forge/game/phase/Untap.java index c95fa0fe207..30916be7c23 100644 --- a/forge-game/src/main/java/forge/game/phase/Untap.java +++ b/forge-game/src/main/java/forge/game/phase/Untap.java @@ -226,8 +226,7 @@ public class Untap extends Phase { // even if they are not creatures for (final Card c : game.getCardsInGame()) { c.removeExertedBy(player); - } - + } } // end doUntap private static void optionalUntap(final Card c) { @@ -261,7 +260,7 @@ public class Untap extends Phase { @Override public boolean apply(final Card c) { - return ((c.isPhasedOut() && c.isDirectlyPhasedOut()) || c.hasKeyword(Keyword.PHASING)); + return (c.isPhasedOut() && c.isDirectlyPhasedOut()) || c.hasKeyword(Keyword.PHASING); } }); diff --git a/forge-game/src/main/java/forge/game/player/PlayerPredicates.java b/forge-game/src/main/java/forge/game/player/PlayerPredicates.java index a4087c20bf2..c2744bda9b0 100644 --- a/forge-game/src/main/java/forge/game/player/PlayerPredicates.java +++ b/forge-game/src/main/java/forge/game/player/PlayerPredicates.java @@ -63,7 +63,6 @@ public final class PlayerPredicates { return Predicates.not(isCardInPlay(cardName)); } - public static final Predicate hasCounters() { return new Predicate() { @Override diff --git a/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java b/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java index d7d7a883143..c0e1920b2ce 100644 --- a/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java +++ b/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java @@ -350,7 +350,6 @@ public class AbilityManaPart implements java.io.Serializable { } } - if (sa.getHostCard() != null) { if (sa.getHostCard().isValid(restriction, this.getSourceCard().getController(), this.getSourceCard(), null)) { return true; @@ -583,7 +582,6 @@ public class AbilityManaPart implements java.io.Serializable { public Card getSourceCard() { return sourceCard; } - public void setSourceCard(final Card host) { sourceCard = host; } diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java b/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java index 7c8dcccbb74..af3e7614277 100644 --- a/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java @@ -682,12 +682,12 @@ public final class StaticAbilityContinuous { // set P/T if (layer == StaticAbilityLayer.SETPT) { - if ((setPower != null) || (setToughness != null)) { + if (setPower != null || setToughness != null) { // non CharacteristicDefining - if (setP.startsWith("Affected")) { + if (setP.contains("Affected")) { setPower = AbilityUtils.calculateAmount(affectedCard, setP, stAb, true); } - if (setT.startsWith("Affected")) { + if (setT.contains("Affected")) { setToughness = AbilityUtils.calculateAmount(affectedCard, setT, stAb, true); } affectedCard.addNewPT(setPower, setToughness, @@ -697,10 +697,10 @@ public final class StaticAbilityContinuous { // add P/T bonus if (layer == StaticAbilityLayer.MODIFYPT) { - if (addP.startsWith("Affected")) { + if (addP.contains("Affected")) { powerBonus = AbilityUtils.calculateAmount(affectedCard, addP, stAb, true); } - if (addT.startsWith("Affected")) { + if (addT.contains("Affected")) { toughnessBonus = AbilityUtils.calculateAmount(affectedCard, addT, stAb, true); } affectedCard.addPTBoost(powerBonus, toughnessBonus, se.getTimestamp(), stAb.getId()); @@ -709,7 +709,7 @@ public final class StaticAbilityContinuous { // add keywords // TODO regular keywords currently don't try to use keyword multiplier // (Although nothing uses it at this time) - if ((addKeywords != null) || (removeKeywords != null) || removeAllAbilities) { + if (addKeywords != null || removeKeywords != null || removeAllAbilities) { List newKeywords = null; if (addKeywords != null) { newKeywords = Lists.newArrayList(addKeywords); diff --git a/forge-game/src/main/java/forge/util/Expressions.java b/forge-game/src/main/java/forge/util/Expressions.java index 0f0b41c8baa..562030bd264 100644 --- a/forge-game/src/main/java/forge/util/Expressions.java +++ b/forge-game/src/main/java/forge/util/Expressions.java @@ -84,6 +84,5 @@ public abstract class Expressions { } return " ? "; } - - -} // end class AllZoneUtil + +} diff --git a/forge-gui-desktop/src/main/java/forge/GuiDesktop.java b/forge-gui-desktop/src/main/java/forge/GuiDesktop.java index ac666bbaff7..333b95d07f9 100644 --- a/forge-gui-desktop/src/main/java/forge/GuiDesktop.java +++ b/forge-gui-desktop/src/main/java/forge/GuiDesktop.java @@ -290,6 +290,7 @@ public class GuiDesktop implements IGuiBase { @Override public void clearImageCache() { ImageCache.clear(); + ImageKeys.clearMissingCards(); } @Override diff --git a/forge-gui-desktop/src/main/java/forge/ImageCache.java b/forge-gui-desktop/src/main/java/forge/ImageCache.java index a8ac38d505b..4763c6c67e1 100644 --- a/forge-gui-desktop/src/main/java/forge/ImageCache.java +++ b/forge-gui-desktop/src/main/java/forge/ImageCache.java @@ -96,6 +96,7 @@ public class ImageCache { public static void clear() { _CACHE.invalidateAll(); _missingIconKeys.clear(); + ImageKeys.clearMissingCards(); } /** diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java index 39e16160f03..5ca80857700 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java @@ -19,6 +19,7 @@ import forge.model.FModel; import forge.player.GamePlayerUtil; import forge.screens.deckeditor.CDeckEditorUI; import forge.screens.deckeditor.controllers.CEditorTokenViewer; +import forge.sound.MusicPlaylist; import forge.sound.SoundSystem; import forge.toolbox.*; import forge.util.Localizer; @@ -27,6 +28,8 @@ import org.apache.commons.lang3.tuple.Pair; import javax.swing.*; import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.io.File; @@ -262,6 +265,8 @@ public enum CSubmenuPreferences implements ICDoc { initializeAutoUpdaterComboBox(); initializeMulliganRuleComboBox(); initializeAiProfilesComboBox(); + initializeSoundSetsComboBox(); + initializeMusicSetsComboBox(); initializeStackAdditionsComboBox(); initializeLandPlayedComboBox(); initializeColorIdentityCombobox(); @@ -466,6 +471,35 @@ public enum CSubmenuPreferences implements ICDoc { panel.setComboBox(comboBox, selectedItem); } + private void initializeSoundSetsComboBox() { + final FPref userSetting = FPref.UI_CURRENT_SOUND_SET; + final FComboBoxPanel panel = this.view.getSoundSetsComboBoxPanel(); + final FComboBox comboBox = createComboBox(SoundSystem.instance.getAvailableSoundSets(), userSetting); + final String selectedItem = this.prefs.getPref(userSetting); + panel.setComboBox(comboBox, selectedItem); + comboBox.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent actionEvent) { + SoundSystem.instance.invalidateSoundCache(); + } + }); + } + + private void initializeMusicSetsComboBox() { + final FPref userSetting = FPref.UI_CURRENT_MUSIC_SET; + final FComboBoxPanel panel = this.view.getMusicSetsComboBoxPanel(); + final FComboBox comboBox = createComboBox(SoundSystem.instance.getAvailableMusicSets(), userSetting); + final String selectedItem = this.prefs.getPref(userSetting); + panel.setComboBox(comboBox, selectedItem); + comboBox.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent actionEvent) { + MusicPlaylist.invalidateMusicPlaylist(); + SoundSystem.instance.changeBackgroundTrack(); + } + }); + } + private void initializeCardArtPreference() { final String latestOpt = Localizer.getInstance().getMessage("latestArtOpt"); final String originalOpt = Localizer.getInstance().getMessage("originalArtOpt"); diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java index 31934975948..e8516fd2874 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java @@ -128,6 +128,8 @@ public enum VSubmenuPreferences implements IVSubmenu { private final FComboBoxPanel cbpCardArtFormat = new FComboBoxPanel<>(localizer.getMessage("cbpCardArtFormat")+":"); private final FComboBoxPanel cbpCardArtPreference = new FComboBoxPanel<>(localizer.getMessage("lblPreferredArt")+":"); private final FComboBoxPanel cbpMulliganRule = new FComboBoxPanel<>(localizer.getMessage("cbpMulliganRule")+":"); + private final FComboBoxPanel cbpSoundSets = new FComboBoxPanel<>(localizer.getMessage("cbpSoundSets")+":"); + private final FComboBoxPanel cbpMusicSets = new FComboBoxPanel<>(localizer.getMessage("cbpMusicSets")+":"); private final FComboBoxPanel cbpAiProfiles = new FComboBoxPanel<>(localizer.getMessage("cbpAiProfiles")+":"); private final FComboBoxPanel cbpStackAdditions = new FComboBoxPanel<>(localizer.getMessage("cbpStackAdditions")+":"); private final FComboBoxPanel cbpLandPlayed = new FComboBoxPanel<>(localizer.getMessage("cbpLandPlayed")+":"); @@ -414,9 +416,15 @@ public enum VSubmenuPreferences implements IVSubmenu { pnlPrefs.add(cbEnableSounds, titleConstraints); pnlPrefs.add(new NoteLabel(localizer.getMessage("nlEnableSounds")), descriptionConstraints); + pnlPrefs.add(cbpSoundSets, comboBoxConstraints); + pnlPrefs.add(new NoteLabel(localizer.getMessage("nlpSoundSets")), descriptionConstraints); + pnlPrefs.add(cbEnableMusic, titleConstraints); pnlPrefs.add(new NoteLabel(localizer.getMessage("nlEnableMusic")), descriptionConstraints); + pnlPrefs.add(cbpMusicSets, comboBoxConstraints); + pnlPrefs.add(new NoteLabel(localizer.getMessage("nlpMusicSets")), descriptionConstraints); + pnlPrefs.add(cbAltSoundSystem, titleConstraints); pnlPrefs.add(new NoteLabel(localizer.getMessage("nlAltSoundSystem")), descriptionConstraints); pnlPrefs.add(cbSROptimize, titleConstraints); @@ -740,6 +748,14 @@ public enum VSubmenuPreferences implements IVSubmenu { return cbpMulliganRule; } + public FComboBoxPanel getSoundSetsComboBoxPanel() { + return cbpSoundSets; + } + + public FComboBoxPanel getMusicSetsComboBoxPanel() { + return cbpMusicSets; + } + public FComboBoxPanel getAiProfilesComboBoxPanel() { return cbpAiProfiles; } diff --git a/forge-gui-desktop/src/main/java/forge/sound/AudioClip.java b/forge-gui-desktop/src/main/java/forge/sound/AudioClip.java index ac2e0be5db5..6438d652d4c 100644 --- a/forge-gui-desktop/src/main/java/forge/sound/AudioClip.java +++ b/forge-gui-desktop/src/main/java/forge/sound/AudioClip.java @@ -40,9 +40,6 @@ import javax.sound.sampled.UnsupportedAudioFileException; import com.google.common.io.Files; import com.sipgate.mp3wav.Converter; -import forge.localinstance.properties.ForgeConstants; - - /** * SoundSystem - a simple sound playback system for Forge. * Do not use directly. Instead, use the {@link forge.sound.SoundEffectType} enumeration. @@ -64,7 +61,7 @@ public class AudioClip implements IAudioClip { } public static boolean fileExists(String fileName) { - File fSound = new File(ForgeConstants.SOUND_DIR, fileName); + File fSound = new File(SoundSystem.instance.getSoundDirectory(), fileName); return fSound.exists(); } @@ -195,7 +192,7 @@ public class AudioClip implements IAudioClip { } private Clip createClip(String filename) { - File fSound = new File(ForgeConstants.SOUND_DIR, filename); + File fSound = new File(SoundSystem.instance.getSoundDirectory(), filename); if (!fSound.exists()) { throw new IllegalArgumentException("Sound file " + fSound.toString() + " does not exist, cannot make a clip of it"); } diff --git a/forge-gui-desktop/src/main/java/forge/toolbox/FCheckBoxTree.java b/forge-gui-desktop/src/main/java/forge/toolbox/FCheckBoxTree.java index 5e44c19b10b..e38ea00e274 100644 --- a/forge-gui-desktop/src/main/java/forge/toolbox/FCheckBoxTree.java +++ b/forge-gui-desktop/src/main/java/forge/toolbox/FCheckBoxTree.java @@ -132,9 +132,9 @@ public class FCheckBoxTree extends JTree { this.selectedChildrenCount = selectedChildrenCount; this.enabledChildrenCount = enabledChildrenCount; } - public boolean hasChildren() { return this.numberOfChildren > 0;} - public boolean allChildrenSelected(){ return this.numberOfChildren == this.selectedChildrenCount; }; - public boolean allChildrenEnabled(){ return this.enabledChildrenCount == this.numberOfChildren; }; + public boolean hasChildren() { return this.numberOfChildren > 0; } + public boolean allChildrenSelected() { return this.numberOfChildren == this.selectedChildrenCount; } + public boolean allChildrenEnabled() { return this.enabledChildrenCount == this.numberOfChildren; } } // == Fields of the FCheckboxTree class == diff --git a/forge-gui-mobile/src/forge/Forge.java b/forge-gui-mobile/src/forge/Forge.java index f447666b60b..0486926899b 100644 --- a/forge-gui-mobile/src/forge/Forge.java +++ b/forge-gui-mobile/src/forge/Forge.java @@ -85,6 +85,7 @@ public class Forge implements ApplicationListener { public static String CJK_Font = ""; public static int hoveredCount = 0; public static boolean afterDBloaded = false; + public static int mouseButtonID = 0; public static ApplicationListener getApp(Clipboard clipboard0, IDeviceAdapter deviceAdapter0, String assetDir0, boolean value, boolean androidOrientation, int totalRAM, boolean isTablet, int AndroidAPI, String AndroidRelease, String deviceName) { if (GuiBase.getInterface() == null) { @@ -771,6 +772,7 @@ public class Forge implements ApplicationListener { } } } + mouseButtonID = button; return super.touchDown(x, y, pointer, button); } diff --git a/forge-gui-mobile/src/forge/GuiMobile.java b/forge-gui-mobile/src/forge/GuiMobile.java index f04a3fcc76c..59a82029b33 100644 --- a/forge-gui-mobile/src/forge/GuiMobile.java +++ b/forge-gui-mobile/src/forge/GuiMobile.java @@ -21,10 +21,7 @@ import forge.screens.LoadingOverlay; import forge.screens.match.MatchController; import forge.screens.quest.QuestMenu; import forge.screens.settings.GuiDownloader; -import forge.sound.AudioClip; -import forge.sound.AudioMusic; -import forge.sound.IAudioClip; -import forge.sound.IAudioMusic; +import forge.sound.*; import forge.toolbox.FOptionPane; import forge.toolbox.GuiChoose; import forge.util.*; @@ -272,7 +269,7 @@ public class GuiMobile implements IGuiBase { @Override public IAudioClip createAudioClip(final String filename) { - return AudioClip.createClip(ForgeConstants.SOUND_DIR + filename); + return AudioClip.createClip(SoundSystem.instance.getSoundDirectory() + filename); } @Override @@ -288,6 +285,7 @@ public class GuiMobile implements IGuiBase { @Override public void clearImageCache() { ImageCache.clear(); + ImageKeys.clearMissingCards(); } @Override diff --git a/forge-gui-mobile/src/forge/assets/ImageCache.java b/forge-gui-mobile/src/forge/assets/ImageCache.java index 270a9c87c09..3eba43c3327 100644 --- a/forge-gui-mobile/src/forge/assets/ImageCache.java +++ b/forge-gui-mobile/src/forge/assets/ImageCache.java @@ -113,6 +113,7 @@ public class ImageCache { public static void clear() { missingIconKeys.clear(); + ImageKeys.clearMissingCards(); } public static void disposeTexture(){ diff --git a/forge-gui-mobile/src/forge/screens/gauntlet/NewGauntletScreen.java b/forge-gui-mobile/src/forge/screens/gauntlet/NewGauntletScreen.java index f3df330f283..0876420dc22 100644 --- a/forge-gui-mobile/src/forge/screens/gauntlet/NewGauntletScreen.java +++ b/forge-gui-mobile/src/forge/screens/gauntlet/NewGauntletScreen.java @@ -113,7 +113,7 @@ public class NewGauntletScreen extends LaunchScreen { }); } }); - chooser.show(null, true); + chooser.show(null, false); /*setting selectMax to true will select all available option*/ } }); } diff --git a/forge-gui-mobile/src/forge/screens/match/views/VCardDisplayArea.java b/forge-gui-mobile/src/forge/screens/match/views/VCardDisplayArea.java index 53797b22aff..30f6773cd40 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VCardDisplayArea.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VCardDisplayArea.java @@ -6,8 +6,10 @@ import java.util.List; import java.util.Map; import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.Input; import com.badlogic.gdx.math.Vector2; +import forge.Forge; import forge.Graphics; import forge.card.CardRenderer.CardStackPosition; import forge.card.CardZoom; @@ -324,7 +326,15 @@ public abstract class VCardDisplayArea extends VDisplayArea implements ActivateH ThreadUtil.invokeInGameThread(new Runnable() { //must invoke in game thread in case a dialog needs to be shown @Override public void run() { - if (!selectCard(false)) { + if (GuiBase.getInterface().isRunningOnDesktop() && Forge.mouseButtonID == Input.Buttons.RIGHT) { + FThreads.invokeInEdtLater(new Runnable() { + @Override + public void run() { + showZoom(); + } + }); + return; + } else if (!selectCard(false)) { //if no cards in stack can be selected, just show zoom/details for card FThreads.invokeInEdtLater(new Runnable() { @Override diff --git a/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java b/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java index fca57671c7b..1cad77a2bc0 100644 --- a/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java +++ b/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java @@ -18,6 +18,7 @@ import forge.screens.TabPageScreen; import forge.screens.TabPageScreen.TabPage; import forge.screens.home.HomeScreen; import forge.screens.match.MatchController; +import forge.sound.MusicPlaylist; import forge.sound.SoundSystem; import forge.toolbox.FCheckBox; import forge.toolbox.FGroupList; @@ -612,6 +613,29 @@ public class SettingsPage extends TabPage { localizer.getMessage("nlVibrateAfterLongPress")), 6); //Sound Options + lstSettings.addItem(new CustomSelectSetting(FPref.UI_CURRENT_SOUND_SET, + localizer.getMessage("cbpSoundSets"), + localizer.getMessage("nlpSoundSets"), + SoundSystem.instance.getAvailableSoundSets()) { + @Override + public void valueChanged(String newValue) { + super.valueChanged(newValue); + SoundSystem.instance.invalidateSoundCache(); + } + }, + 7); + lstSettings.addItem(new CustomSelectSetting(FPref.UI_CURRENT_MUSIC_SET, + localizer.getMessage("cbpMusicSets"), + localizer.getMessage("nlpMusicSets"), + SoundSystem.getAvailableMusicSets()) { + @Override + public void valueChanged(String newValue) { + super.valueChanged(newValue); + MusicPlaylist.invalidateMusicPlaylist(); + SoundSystem.instance.changeBackgroundTrack(); + } + }, + 7); lstSettings.addItem(new CustomSelectSetting(FPref.UI_VOL_SOUNDS, localizer.getMessage("cbAdjustSoundsVolume"), localizer.getMessage("nlAdjustSoundsVolume"), diff --git a/forge-gui/release-files/ANNOUNCEMENTS.txt b/forge-gui/release-files/ANNOUNCEMENTS.txt index 1c2ae20dfd8..852f6232dd2 100644 --- a/forge-gui/release-files/ANNOUNCEMENTS.txt +++ b/forge-gui/release-files/ANNOUNCEMENTS.txt @@ -1,6 +1,8 @@ #Add one announcement per line Get in the discord if you aren't yet. https://discord.gg/3v9JCVr -The Throne of Eldraine quest world is the largest and most meticulously developed quest world to date, combining fascinating fairytales and interesting interactions. If you've never baked a pie into a pie, have you really played Magic? -Innistrad: Midnight Hunt (MID) and Innistrad: Midnight Hunt Commander (MIC) are 100% supported -Various improvements have been made to the desktop and mobile user interface to enhance the experience +Forge now supports 100% of core and expansion set cards from Limited Edition Alpha to Innistrad: Midnight Hunt. This includes Equinox, Chaos Orb, and Falling Star. +Planar Conquest now features a new plane - Forgotten Realms, based on the AFR and AFC sets. +Several planes are now available in Planar Conquest in their Classic form, as originally intended by the author, without support for the newer sets and with the original events not modified with newer cards. These planes are available in addition to the contemporary versions of the planes and are marked as "Classic". +Sound sets are now configurable - you can place your sound sets under "sound" in your Forge cache (as subfolders) and then select them with the "Sound set" option. +Music sets are now configurable - you can place your music sets under "music" in your Forge cache (as subfolders) and then select them with the "Music set" option. The music set folder must have the same structure as "res/music", with "match" and "menus" subfolders containing relevant music tracks. *** Android 7 & 8 support is now deprecated. Support will be dropped in an upcoming release. *** diff --git a/forge-gui/res/adventure/Shandalar/decks/djinni.json b/forge-gui/res/adventure/Shandalar/decks/djinn.json similarity index 78% rename from forge-gui/res/adventure/Shandalar/decks/djinni.json rename to forge-gui/res/adventure/Shandalar/decks/djinn.json index e67b6612549..57070abdbfc 100644 --- a/forge-gui/res/adventure/Shandalar/decks/djinni.json +++ b/forge-gui/res/adventure/Shandalar/decks/djinn.json @@ -1,10 +1,10 @@ { -"name":"Djinni", +"name":"Djinn", "template": { "count":60, "colors":["Blue","Red"], - "tribe":"Djinni", + "tribe":"Djinn", "tribeCards":0.7, "tribeSynergyCards":0.0, "rares":0.5 diff --git a/forge-gui/res/adventure/Shandalar/maps/main.tiled-session b/forge-gui/res/adventure/Shandalar/maps/main.tiled-session index c3a16cf5f9e..88f6a995735 100644 --- a/forge-gui/res/adventure/Shandalar/maps/main.tiled-session +++ b/forge-gui/res/adventure/Shandalar/maps/main.tiled-session @@ -1,8 +1,8 @@ { - "activeFile": "map/swamp_town.tmx", + "activeFile": "map/island_town.tmx", "expandedProjectPaths": [ - "map", "tileset", + "map", "obj" ], "file.lastUsedOpenFilter": "Alle Dateien (*)", @@ -33,10 +33,10 @@ }, "map/island_town.tmx": { "scale": 3, - "selectedLayer": 2, + "selectedLayer": 1, "viewCenter": { - "x": 240, - "y": 136 + "x": 251, + "y": 73 } }, "map/mountain_town.tmx": { @@ -100,9 +100,9 @@ "tileset/buildings.tsx", "tileset/main.tsx", "map/forest_town.tmx", - "map/island_town.tmx", - "map/mountain_town.tmx", + "map/swamp_town.tmx", "map/plains_town.tmx", - "map/swamp_town.tmx" + "map/mountain_town.tmx", + "map/island_town.tmx" ] } diff --git a/forge-gui/res/adventure/Shandalar/maps/map/island_town.tmx b/forge-gui/res/adventure/Shandalar/maps/map/island_town.tmx index dcffd692f2a..b906dc1c82f 100644 --- a/forge-gui/res/adventure/Shandalar/maps/map/island_town.tmx +++ b/forge-gui/res/adventure/Shandalar/maps/map/island_town.tmx @@ -1,5 +1,5 @@ - + @@ -12,7 +12,7 @@ - eJxjYBgFowA/KOWljz2T2BgYJkOxETtCXB8HmxxQRsAvZ9kJs2kBzrEj/J7LgWDncUDkCbmbXEArf2FLM/o4whNX/FIa19jsIpVNCchBisfzOOIXW1xTE9A63SKDEl4ETU97kcGovcQBAKfZHlY= + eJxjYBgFowA/KOWljz2T2BgYJkOxETtCXB8HmxxQRsAvZ9kJs2kBzrEj/J7LgWDncUDkCbmbXEArf2FLM/o4whMmjk5TCxCKU3SaWiAHKR7PY4lfGA2LY1oAWqdbZFDCi6DpaS8yGLWXOAAAywwdJA== @@ -20,22 +20,22 @@ - eJxjYKAfKORgYCgC4mIOOloKBPycDAwCQCzISV97KQVzBRgY5gnQ396dQDt3AbHeIAkvdyEGBg8hTDalIJeLPLlRQB7AFXe44peacY0MRuN2FKCDK+wMDFfZ6W/vQNSHIAAACK8NIg== + eJxjYKAfKORgYCgC4mIOOloKBPycDAwCQCzISV97KQVzBRgY5gnQ396dQDt3AbHeIAkvdyEGBg8hTDalIJeLPLlRQB7AFXcwcXSaVmA0bkcBOrjCzsBwlZ3+9g5EfQgCABETDSI= - eJxjYBgFgxXMFWBgmCcw0K5AAG0hBgYdIUz2KBhaAFfc4Yrf0bgeBaNgeAEArncEPg== + eJxjYBgFgxXMFWBgmCcw0K5AAG0hBgYdIUz2KBhaAFfcwcTR6VEwCkbB8AIAtDsEPg== - + - + diff --git a/forge-gui/res/adventure/Shandalar/world/blue.json b/forge-gui/res/adventure/Shandalar/world/blue.json index ac339cf42bd..09faebedcc5 100644 --- a/forge-gui/res/adventure/Shandalar/world/blue.json +++ b/forge-gui/res/adventure/Shandalar/world/blue.json @@ -23,6 +23,6 @@ "height": 0.7, "color": "10a2e0", "spriteNames":["IslandTree","Coral","Shell"] , - "enemies":[ "Merfok","Merfok warrior","Merfok Avatar","Djinn","Blue Wiz1"] , + "enemies":[ "Merfolk","Merfolk warrior","Merfolk Avatar","Djinn","Blue Wiz1"] , "pointsOfInterest":[ "Island Town"] } \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/world/enemies.json b/forge-gui/res/adventure/Shandalar/world/enemies.json index 9a8f2fb139b..2535bffaaa1 100644 --- a/forge-gui/res/adventure/Shandalar/world/enemies.json +++ b/forge-gui/res/adventure/Shandalar/world/enemies.json @@ -872,7 +872,7 @@ { "name": "Djinn", "sprite": "sprites/djinn.atlas", - "deck": "decks/Djinni.json", + "deck": "decks/Djinn.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 30, diff --git a/forge-gui/res/adventure/Shandalar/world/heroes.json b/forge-gui/res/adventure/Shandalar/world/heroes.json index e0fec1e1030..667d7e57c10 100644 --- a/forge-gui/res/adventure/Shandalar/world/heroes.json +++ b/forge-gui/res/adventure/Shandalar/world/heroes.json @@ -51,7 +51,7 @@ "maleAvatar":"Viashino_m" } , { - "name":"Drawf", + "name":"Dwarf", "female":"sprites/heroes/dwarf_f.atlas", "male":"sprites/heroes/dwarf_m.atlas", "femaleAvatar":"Dwarf_f", diff --git a/forge-gui/res/cardsfolder/a/aquatic_incursion.txt b/forge-gui/res/cardsfolder/a/aquatic_incursion.txt index ce9274e1b18..54149aacdaf 100644 --- a/forge-gui/res/cardsfolder/a/aquatic_incursion.txt +++ b/forge-gui/res/cardsfolder/a/aquatic_incursion.txt @@ -3,7 +3,7 @@ ManaCost:3 U Types:Enchantment T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME enters the battlefield, create two 1/1 blue Merfolk creature tokens with hexproof. SVar:TrigToken:DB$ Token | TokenAmount$ 2 | LegacyImage$ u 1 1 merfolk hexproof rix | TokenScript$ u_1_1_merfolk_hexproof | TokenOwner$ You -A:AB$ Pump | Cost$ 3 U | ValidTgts$ Merfolk | TgtPrompt$ Select target Merfolk | KW$ HIDDEN Unblockable | SpellDescription$ Target Merfolk can't be blocked this turn. +A:AB$ Pump | Cost$ 3 U | ValidTgts$ Merfolk | TgtPrompt$ Select target Merfolk | KW$ HIDDEN Unblockable | SpellDescription$ Target Merfolk can't be blocked this turn. DeckHints:Type$Merfolk SVar:Picture:http://www.wizards.com/global/images/magic/general/aquatic_incursion.jpg Oracle:When Aquatic Incursion enters the battlefield, create two 1/1 blue Merfolk creature tokens with hexproof. (They can't be the targets of spells or abilities your opponents control.)\n{3}{U}: Target Merfolk can't be blocked this turn. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/a/awe_for_the_guilds.txt b/forge-gui/res/cardsfolder/a/awe_for_the_guilds.txt index 80ad8bd3d50..c2e7b6db825 100644 --- a/forge-gui/res/cardsfolder/a/awe_for_the_guilds.txt +++ b/forge-gui/res/cardsfolder/a/awe_for_the_guilds.txt @@ -2,7 +2,7 @@ Name:Awe for the Guilds ManaCost:2 R Types:Sorcery A:SP$ Effect | Cost$ 2 R | Name$ Awe for the Guilds Effect | StaticAbilities$ KWPump | AILogic$ Evasion | SpellDescription$ Monocolored creatures can't block this turn. -SVar:KWPump:Mode$ Continuous | EffectZone$ Command | AffectedZone$ Battlefield | Affected$ Creature.MonoColor| AddHiddenKeyword$ CARDNAME can't block. | Description$ Monocolored creatures can't block this turn. +SVar:KWPump:Mode$ Continuous | EffectZone$ Command | AffectedZone$ Battlefield | Affected$ Creature.MonoColor | AddHiddenKeyword$ CARDNAME can't block. | Description$ Monocolored creatures can't block this turn. SVar:PlayMain1:TRUE AI:RemoveDeck:All SVar:Picture:http://www.wizards.com/global/images/magic/general/awe_for_the_guilds.jpg diff --git a/forge-gui/res/cardsfolder/b/basris_acolyte.txt b/forge-gui/res/cardsfolder/b/basris_acolyte.txt index 67217f84241..c7f303bc81f 100644 --- a/forge-gui/res/cardsfolder/b/basris_acolyte.txt +++ b/forge-gui/res/cardsfolder/b/basris_acolyte.txt @@ -4,6 +4,6 @@ Types:Creature Cat Cleric PT:2/3 K:Lifelink T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPutCounters | TriggerDescription$ When CARDNAME enters the battlefield, put a +1/+1 counter on each of up to two other target creatures you control. -SVar:TrigPutCounters:DB$ PutCounter | CounterType$ P1P1 | CounterNum$ 1 | TargetMin$ 0 | TargetMax$ 2 | ValidTgts$ Creature.YouCtrl+Other | TgtPrompt$ Select target creature you control +SVar:TrigPutCounters:DB$ PutCounter | CounterType$ P1P1 | CounterNum$ 1 | TargetMin$ 0 | TargetMax$ 2 | ValidTgts$ Creature.YouCtrl+Other | TgtPrompt$ Select up to two other target creatures you control DeckHas:Ability$LifeGain & Ability$Counters Oracle:Lifelink (Damage dealt by this creature also causes you to gain that much life.)\nWhen Basri's Acolyte enters the battlefield, put a +1/+1 counter on each of up to two other target creatures you control. diff --git a/forge-gui/res/cardsfolder/d/demonic_tutor.txt b/forge-gui/res/cardsfolder/d/demonic_tutor.txt index 467678aacce..e920eb4c323 100644 --- a/forge-gui/res/cardsfolder/d/demonic_tutor.txt +++ b/forge-gui/res/cardsfolder/d/demonic_tutor.txt @@ -1,8 +1,7 @@ Name:Demonic Tutor ManaCost:1 B Types:Sorcery -A:SP$ ChangeZone | Cost$ 1 B | Origin$ Library | Destination$ Hand | ChangeType$ Card | ChangeNum$ 1 | Mandatory$ True | SpellDescription$ Search your library for a card, put that card into your hand, then shuffle. +A:SP$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Card | ChangeNum$ 1 | Mandatory$ True | StackDescription$ SpellDescription | SpellDescription$ Search your library for a card, put that card into your hand, then shuffle. #TODO: Improve the tutoring logic for the AI. Currently will generally look for the most expensive castable thing in the library (which can, of course, be used to advantage in properly constructed AI decks). AI:RemoveDeck:Random -SVar:Picture:http://resources.wizards.com/magic/cards/3e/en-us/card1155.jpg Oracle:Search your library for a card, put that card into your hand, then shuffle. diff --git a/forge-gui/res/cardsfolder/d/diligent_farmhand.txt b/forge-gui/res/cardsfolder/d/diligent_farmhand.txt index 9f601d50012..6265dd8ac75 100644 --- a/forge-gui/res/cardsfolder/d/diligent_farmhand.txt +++ b/forge-gui/res/cardsfolder/d/diligent_farmhand.txt @@ -3,7 +3,7 @@ ManaCost:G Types:Creature Human Druid PT:1/1 A:AB$ ChangeZone | Cost$ 1 G Sac<1/CARDNAME> | Origin$ Library | Destination$ Battlefield | Tapped$ True | ChangeType$ Land.Basic | ChangeNum$ 1 | SpellDescription$ Search your library for a basic land card, put it onto the battlefield tapped, then shuffle. -S:Mode$ Continuous | Affected$ Card.Self | EffectZone$ Graveyard | AddHiddenKeyword$ CARDNAME count as Muscle Burst. | Description$ If CARDNAME is in a graveyard, effects from spells named Muscle Burst count it as a card named Muscle Burst. +S:Mode$ Continuous | Affected$ Card.Self | EffectZone$ Graveyard | AffectedZone$ Graveyard | AddHiddenKeyword$ CARDNAME count as Muscle Burst. | Description$ If CARDNAME is in a graveyard, effects from spells named Muscle Burst count it as a card named Muscle Burst. DeckHints:Name$Diligent Farmhand|Muscle Burst SVar:Picture:http://www.wizards.com/global/images/magic/general/diligent_farmhand.jpg Oracle:{1}{G}, Sacrifice Diligent Farmhand: Search your library for a basic land card, put that card onto the battlefield tapped, then shuffle.\nIf Diligent Farmhand is in a graveyard, effects from spells named Muscle Burst count it as a card named Muscle Burst. diff --git a/forge-gui/res/cardsfolder/f/followed_footsteps.txt b/forge-gui/res/cardsfolder/f/followed_footsteps.txt index 936b1af41c2..ce02d3e03a9 100644 --- a/forge-gui/res/cardsfolder/f/followed_footsteps.txt +++ b/forge-gui/res/cardsfolder/f/followed_footsteps.txt @@ -2,8 +2,7 @@ Name:Followed Footsteps ManaCost:3 U U Types:Enchantment Aura K:Enchant creature -A:SP$ Attach | Cost$ 3 U U | ValidTgts$ Creature | AILogic$ Curse +A:SP$ Attach | ValidTgts$ Creature | AILogic$ HighestEvaluation T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigCopy | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your upkeep, create a token that's a copy of enchanted creature. -SVar:TrigCopy:DB$ CopyPermanent | Defined$ Enchanted | SpellDescription$ At the beginning of your upkeep, put a token that's a copy of enchanted creature onto the battlefield. -SVar:Picture:http://www.wizards.com/global/images/magic/general/followed_footsteps.jpg +SVar:TrigCopy:DB$ CopyPermanent | Defined$ Enchanted | SpellDescription$ At the beginning of your upkeep, create a token that's a copy of enchanted creature. Oracle:Enchant creature\nAt the beginning of your upkeep, create a token that's a copy of enchanted creature. diff --git a/forge-gui/res/cardsfolder/m/magda_brazen_outlaw.txt b/forge-gui/res/cardsfolder/m/magda_brazen_outlaw.txt index bf4eec8f373..79cb7d22cdd 100644 --- a/forge-gui/res/cardsfolder/m/magda_brazen_outlaw.txt +++ b/forge-gui/res/cardsfolder/m/magda_brazen_outlaw.txt @@ -5,7 +5,7 @@ PT:2/1 S:Mode$ Continuous | Affected$ Dwarf.Other+YouCtrl | AddPower$ 1 | Description$ Other Dwarves you control get +1/+0. T:Mode$ Taps | ValidCard$ Dwarf.YouCtrl | Execute$ TrigToken | TriggerZones$ Battlefield | TriggerDescription$ Whenever a Dwarf you control becomes tapped, create a Treasure token. SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ c_a_treasure_sac | TokenOwner$ You -A:AB$ ChangeZone | Cost$ Sac<5/Treasure> | CostDesc$ Sacrifice five Treasures: | Origin$ Library | Destination$ Battlefield | ChangeType$ Card.Artifact,Card.Dragon | ChangeNum$ 1 | Mandatory$ True | StackDescription$ {p:You} searches their library for an Artifact or Dragon card, puts that card onto the battlefield, then shuffles their library. | SpellDescription$ Search your library for an artifact or Dragon card, put that card onto the battlefield, then shuffle. +A:AB$ ChangeZone | Cost$ Sac<5/Treasure> | Origin$ Library | Destination$ Battlefield | ChangeType$ Card.Artifact,Card.Dragon | ChangeNum$ 1 | Mandatory$ True | StackDescription$ {p:You} searches their library for an Artifact or Dragon card, puts that card onto the battlefield, then shuffles their library. | SpellDescription$ Search your library for an artifact or Dragon card, put that card onto the battlefield, then shuffle. SVar:BuffedBy:Dwarf SVar:PlayMain1:TRUE DeckNeeds:Type$Dwarf diff --git a/forge-gui/res/cardsfolder/n/nahiri_the_harbinger.txt b/forge-gui/res/cardsfolder/n/nahiri_the_harbinger.txt index 037d7ade476..d6dc93ff944 100644 --- a/forge-gui/res/cardsfolder/n/nahiri_the_harbinger.txt +++ b/forge-gui/res/cardsfolder/n/nahiri_the_harbinger.txt @@ -2,9 +2,7 @@ Name:Nahiri, the Harbinger ManaCost:2 R W Types:Legendary Planeswalker Nahiri Loyalty:4 -A:AB$ Discard | Cost$ AddCounter<2/LOYALTY> | Planeswalker$ True | NumCards$ 1 | Optional$ True | Mode$ TgtChoose | RememberDiscarded$ True | SubAbility$ DBDraw | SpellDescription$ You may discard a card. If you do, draw a card. -SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ 1 | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ GE1 | SubAbility$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +A:AB$ Draw | Cost$ AddCounter<2/LOYALTY> | Planeswalker$ True | Defined$ You | NumCards$ 1 | UnlessCost$ Discard<1/Card> | UnlessSwitched$ True | UnlessPayer$ You | SpellDescription$ You may discard a card. If you do, draw a card. A:AB$ ChangeZone | Cost$ SubCounter<2/LOYALTY> | Planeswalker$ True | ValidTgts$ Enchantment,Artifact.tapped,Creature.tapped | TgtPrompt$ Select target enchantment, tapped artifact, or tapped creature | Origin$ Battlefield | Destination$ Exile | SpellDescription$ Exile target enchantment, tapped artifact, or tapped creature. A:AB$ ChangeZone | Cost$ SubCounter<8/LOYALTY> | Planeswalker$ True | Ultimate$ True | Origin$ Library | Destination$ Battlefield | ChangeType$ Artifact,Creature | ChangeNum$ 1 | RememberChanged$ True | SubAbility$ DBPump | SpellDescription$ Search your library for an artifact or creature card, put it onto the battlefield, then shuffle. It gains haste. Return it to your hand at the beginning of the next end step. SVar:DBPump:DB$ Animate | Keywords$ Haste | Duration$ Permanent | AtEOT$ Hand | Defined$ Remembered | SubAbility$ DBCleanup diff --git a/forge-gui/res/cardsfolder/o/olivia_mobilized_for_war.txt b/forge-gui/res/cardsfolder/o/olivia_mobilized_for_war.txt index 4451d9be6c3..956208e13f6 100644 --- a/forge-gui/res/cardsfolder/o/olivia_mobilized_for_war.txt +++ b/forge-gui/res/cardsfolder/o/olivia_mobilized_for_war.txt @@ -3,11 +3,9 @@ ManaCost:1 B R Types:Legendary Creature Vampire Knight PT:3/3 K:Flying -T:Mode$ ChangesZone | ValidCard$ Creature.Other+YouCtrl | Origin$ Any | Destination$ Battlefield | Execute$ TrigDiscard | TriggerZones$ Battlefield | OptionalDecider$ You | TriggerDescription$ Whenever another creature enters the battlefield under your control, you may discard a card. If you do, put a +1/+1 counter on that creature, it gains haste until end of turn, and it becomes a vampire in addition to its other types. -SVar:TrigDiscard:DB$ Discard | Defined$ You | NumCards$ 1 | Mode$ TgtChoose | RememberDiscarded$ True | SubAbility$ DBPutCounter -SVar:DBPutCounter:DB$ PutCounter | Defined$ TriggeredCardLKICopy | CounterType$ P1P1 | CounterNum$ 1 | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ GE1 | SubAbility$ DBPump -SVar:DBPump:DB$ Pump | Defined$ TriggeredCard | KW$ Haste | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ GE1 | SubAbility$ DBAnimate -SVar:DBAnimate:DB$ Animate | Defined$ TriggeredCard | Types$ Vampire | Duration$ Permanent | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ GE1 | SubAbility$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +T:Mode$ ChangesZone | ValidCard$ Creature.Other+YouCtrl | Origin$ Any | Destination$ Battlefield | Execute$ TrigDiscard | TriggerZones$ Battlefield | TriggerDescription$ Whenever another creature enters the battlefield under your control, you may discard a card. If you do, put a +1/+1 counter on that creature, it gains haste until end of turn, and it becomes a vampire in addition to its other types. +SVar:TrigDiscard:AB$ PutCounter | Cost$ Discard<1/Card> | Defined$ TriggeredCardLKICopy | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ DBPump +SVar:DBPump:DB$ Pump | Defined$ TriggeredCard | KW$ Haste | SubAbility$ DBAnimate +SVar:DBAnimate:DB$ Animate | Defined$ TriggeredCard | Types$ Vampire | Duration$ Permanent SVar:Picture:http://www.wizards.com/global/images/magic/general/olivia_mobilized_for_war.jpg Oracle:Flying\nWhenever another creature enters the battlefield under your control, you may discard a card. If you do, put a +1/+1 counter on that creature, it gains haste until end of turn, and it becomes a Vampire in addition to its other types. diff --git a/forge-gui/res/cardsfolder/p/pardic_firecat.txt b/forge-gui/res/cardsfolder/p/pardic_firecat.txt index 6eba5248653..5d6394eadbd 100644 --- a/forge-gui/res/cardsfolder/p/pardic_firecat.txt +++ b/forge-gui/res/cardsfolder/p/pardic_firecat.txt @@ -3,7 +3,7 @@ ManaCost:3 R Types:Creature Elemental Cat PT:2/3 K:Haste -S:Mode$ Continuous | Affected$ Card.Self | EffectZone$ Graveyard | AddHiddenKeyword$ CARDNAME count as Flame Burst. | Description$ If CARDNAME is in a graveyard, effects from spells named Flame Burst count it as a card named Flame Burst. +S:Mode$ Continuous | Affected$ Card.Self | EffectZone$ Graveyard | AffectedZone$ Graveyard | AddHiddenKeyword$ CARDNAME count as Flame Burst. | Description$ If CARDNAME is in a graveyard, effects from spells named Flame Burst count it as a card named Flame Burst. DeckHints:Name$Flame Burst|Pardic Firecat SVar:Picture:http://www.wizards.com/global/images/magic/general/pardic_firecat.jpg Oracle:Haste\nIf Pardic Firecat is in a graveyard, effects from spells named Flame Burst count it as a card named Flame Burst. diff --git a/forge-gui/res/cardsfolder/r/restoration_angel.txt b/forge-gui/res/cardsfolder/r/restoration_angel.txt index 4768ef5fc76..96811a8d1e2 100644 --- a/forge-gui/res/cardsfolder/r/restoration_angel.txt +++ b/forge-gui/res/cardsfolder/r/restoration_angel.txt @@ -5,7 +5,7 @@ PT:3/4 K:Flash K:Flying T:Mode$ ChangesZone | ValidCard$ Creature.Self | Origin$ Any | Destination$ Battlefield | Execute$ RestorationExile | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may exile target non-Angel creature you control, then return that creature to the battlefield under your control. -SVar:RestorationExile:DB$ ChangeZone | ValidTgts$ Creature.nonAngel+YouCtrl | TgtPrompt$ Select target non-Angel creature you control | Origin$ Battlefield | Destination$ Exile | RememberTargets$ True | ForgetOtherTargets$ True | AILogic$ BounceOnce | SubAbility$ RestorationReturn +SVar:RestorationExile:DB$ ChangeZone | ValidTgts$ Creature.nonAngel+YouCtrl | TgtPrompt$ Select target non-Angel creature you control | Origin$ Battlefield | Destination$ Exile | RememberTargets$ True | ForgetOtherTargets$ True | SubAbility$ RestorationReturn SVar:RestorationReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Battlefield | GainControl$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/restoration_angel.jpg Oracle:Flash\nFlying\nWhen Restoration Angel enters the battlefield, you may exile target non-Angel creature you control, then return that card to the battlefield under your control. diff --git a/forge-gui/res/cardsfolder/s/suspicious_stowaway_seafaring_werewolf.txt b/forge-gui/res/cardsfolder/s/suspicious_stowaway_seafaring_werewolf.txt index 3fa1167dc45..8b04f582145 100644 --- a/forge-gui/res/cardsfolder/s/suspicious_stowaway_seafaring_werewolf.txt +++ b/forge-gui/res/cardsfolder/s/suspicious_stowaway_seafaring_werewolf.txt @@ -19,7 +19,7 @@ Colors:green Types:Creature Werewolf PT:2/1 K:Unblockable -T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigDrawN | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, draw a card, then discard a card. +T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigDrawN | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, draw a card. SVar:TrigDrawN:DB$ Draw | NumCards$ 1 | Defined$ You K:Nightbound Oracle:Seafaring Werewolf can't be blocked.\nWhenever Seafaring Werewolf deals combat damage to a player, draw a card.\nNightbound (If a player casts at least two spells during their own turn, it becomes day next turn.) diff --git a/forge-gui/res/cardsfolder/upcoming/alluring_suitor_deadly_dancer.txt b/forge-gui/res/cardsfolder/upcoming/alluring_suitor_deadly_dancer.txt new file mode 100644 index 00000000000..e2ef867f1b5 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/alluring_suitor_deadly_dancer.txt @@ -0,0 +1,22 @@ +Name:Alluring Suitor +ManaCost:2 R +Types:Creature Vampire +PT:2/3 +T:Mode$ AttackersDeclared | Execute$ TrigTransform | IsPresent$ Creature.attacking | PresentCompare$ EQ2 | NoResolvingCheck$ True | TriggerZones$ Battlefield | AttackingPlayer$ You | TriggerDescription$ When you attack with exactly two creatures, transform CARDNAME. +SVar:TrigTransform:DB$ SetState | Defined$ Self | Mode$ Transform +AlternateMode:DoubleFaced +Oracle:When you attack with exactly two creatures, transform Alluring Suitor. + +ALTERNATE + +Name:Deadly Dancer +ManaCost:no cost +Colors:red +Types:Creature Vampire +PT:3/3 +K:Trample +T:Mode$ Transformed | ValidCard$ Card.Self | Execute$ TrigMana | TriggerDescription$ When this creature transforms into CARDNAME, add {R}{R}. Until end of turn, you don't lose this mana as steps and phases end. +SVar:TrigMana:DB$ Mana | Produced$ R | Amount$ 2 | PersistentMana$ True +A:AB$ Pump | Cost$ R R | Defined$ Self | NumAtt$ +1 | SubAbility$ DBPump | StackDescription$ CARDNAME and | SpellDescription$ CARDNAME and another target creature each get +1/+0 until end of turn. +SVar:DBPump:DB$ Pump | ValidTgts$ Creature.Other | TgtPrompt$ Select another target creature | NumAtt$ +1 | StackDescription$ {c:Targeted} each get +1/+0 until end of turn. +Oracle:Trample\nWhen this creature transforms into Deadly Dancer, add {R}{R}. Until end of turn, you don't lose this mana as steps and phases end.\n{R}{R}: Deadly Dancer and another target creature each get +1/+0 until end of turn. diff --git a/forge-gui/res/cardsfolder/upcoming/ancient_lumberknot.txt b/forge-gui/res/cardsfolder/upcoming/ancient_lumberknot.txt new file mode 100644 index 00000000000..48f7d04ea4d --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/ancient_lumberknot.txt @@ -0,0 +1,6 @@ +Name:Ancient Lumberknot +ManaCost:2 B G +Types:Creature Treefolk +PT:1/4 +S:Mode$ Continuous | Affected$ Creature.powerLTtoughness+YouCtrl | AddHiddenKeyword$ CARDNAME assigns combat damage equal to its toughness rather than its power | Description$ Each creature you control with toughness greater than its power assigns combat damage equal to its toughness rather than its power. +Oracle:Each creature you control with toughness greater than its power assigns combat damage equal to its toughness rather than its power. diff --git a/forge-gui/res/cardsfolder/upcoming/angelic_quartermaster.txt b/forge-gui/res/cardsfolder/upcoming/angelic_quartermaster.txt new file mode 100644 index 00000000000..d11f5d8c3c5 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/angelic_quartermaster.txt @@ -0,0 +1,9 @@ +Name:Angelic Quartermaster +ManaCost:3 W W +Types:Creature Angel Soldier +PT:3/3 +K:Flying +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPutCounters | TriggerDescription$ When CARDNAME enters the battlefield, put a +1/+1 counter on each of up to two other target creatures. +SVar:TrigPutCounters:DB$ PutCounter | CounterType$ P1P1 | CounterNum$ 1 | TargetMin$ 0 | TargetMax$ 2 | ValidTgts$ Creature.Other | TgtPrompt$ Select up to two other target creatures +DeckHas:Ability$Counters +Oracle:Flying\nWhen Angelic Quartermaster enters the battlefield, put a +1/+1 counter on each of up to two other target creatures. diff --git a/forge-gui/res/cardsfolder/upcoming/arm_the_cathars.txt b/forge-gui/res/cardsfolder/upcoming/arm_the_cathars.txt new file mode 100644 index 00000000000..f9301006cd2 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/arm_the_cathars.txt @@ -0,0 +1,8 @@ +Name:Arm the Cathars +ManaCost:1 W W +Types:Sorcery +A:SP$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature (+3/+3) | NumAtt$ 3 | NumDef$ 3 | KW$ Vigilance | SubAbility$ DBPump | StackDescription$ Until end of turn, {c:ThisTargetedCard} gets +3/+3, | SpellDescription$ Until end of turn, target creature gets +3/+3, +SVar:DBPump:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select up to one other target creature (+2/+2) | TargetMin$ 0 | TargetMax$ 1 | NumAtt$ 2 | NumDef$ 2 | KW$ Vigilance | TargetUnique$ True | SubAbility$ DBPump2 | StackDescription$ SpellDescription | SpellDescription$ up to one other target creature gets +2/+2, +SVar:DBPump2:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select up to one other target creature (+1/+1) | TargetMin$ 0 | TargetMax$ 1 | NumAtt$ 1 | NumDef$ 1 | KW$ Vigilance | TargetUnique$ True | SubAbility$ DBPump3 | StackDescription$ SpellDescription | SpellDescription$ and up to one other target creature gets +1/1. +SVar:DBPump3:DB$ Pump | Defined$ Targeted | KW$ Vigilance | StackDescription$ SpellDescription | SpellDescription$ Those creatures gain vigilance until end of turn. +Oracle:Until end of turn, target creature gets +3/+3, up to one other target creature gets +2/+2, and up to one other target creature gets +1/+1. Those creatures gain vigilance until end of turn. diff --git a/forge-gui/res/cardsfolder/upcoming/ascendant_packleader.txt b/forge-gui/res/cardsfolder/upcoming/ascendant_packleader.txt new file mode 100644 index 00000000000..5264d0fde28 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/ascendant_packleader.txt @@ -0,0 +1,10 @@ +Name:Ascendant Packleader +ManaCost:G +Types:Creature Wolf +PT:2/1 +K:etbCounter:P1P1:1:IsPresent$ Permanent.YouCtrl+cmcGE4:CARDNAME enters the battlefield with a +1/+1 counter on it if you control a permanent with mana value 4 or greater. +T:Mode$ SpellCast | ValidCard$ Card.cmcGE4 | ValidActivatingPlayer$ You | Execute$ TrigCounter | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast a spell with mana value 4 or greater, put a +1/+1 counter on CARDNAME. +SVar:TrigCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 +DeckHas:Ability$Counters +SVar:BuffedBy:Permanent.cmcGE4 +Oracle:Ascendant Packleader enters the battlefield with a +1/+1 counter on it if you control a permanent with mana value 4 or greater.\nWhenever you cast a spell with mana value 4 or greater, put a +1/+1 counter on Ascendant Packleader. diff --git a/forge-gui/res/cardsfolder/upcoming/belligerent_guest.txt b/forge-gui/res/cardsfolder/upcoming/belligerent_guest.txt new file mode 100644 index 00000000000..582bf5d0f67 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/belligerent_guest.txt @@ -0,0 +1,9 @@ +Name:Belligerent Guest +ManaCost:2 R +Types:Creature Vampire +PT:3/2 +K:Trample +T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigToken | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") +SVar:TrigToken:DB$ Token | TokenScript$ c_a_blood_draw +DeckHas:Ability$Token & Ability$Sacrifice & Type$Blood +Oracle:Trample\nWhenever Belligerent Guest deals combat damage to a player, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") diff --git a/forge-gui/res/cardsfolder/upcoming/blood_hypnotist.txt b/forge-gui/res/cardsfolder/upcoming/blood_hypnotist.txt new file mode 100644 index 00000000000..a87f420e7c6 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/blood_hypnotist.txt @@ -0,0 +1,9 @@ +Name:Blood Hypnotist +ManaCost:2 R +Types:Creature Vampire +PT:3/3 +K:CARDNAME can't block. +T:Mode$ Sacrificed | ValidCard$ Blood.token+YouCtrl | TriggerZone$ Battlefield | Execute$ TrigPump | ActivationLimit$ 1 | TriggerDescription$ Whenever you sacrifice one or more Blood tokens, target creature can't block this turn. This ability triggers only once each turn. +SVar:TrigPump:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ HIDDEN CARDNAME can't block. | IsCurse$ True +DeckNeeds:Type$Blood +Oracle:Blood Hypnotist can't block.\nWhenever you sacrifice one or more Blood tokens, target creature can't block this turn. This ability triggers only once each turn. diff --git a/forge-gui/res/cardsfolder/upcoming/bloodsworn_squire_bloodsworn_knight.txt b/forge-gui/res/cardsfolder/upcoming/bloodsworn_squire_bloodsworn_knight.txt new file mode 100644 index 00000000000..281148e14fa --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/bloodsworn_squire_bloodsworn_knight.txt @@ -0,0 +1,28 @@ +Name:Bloodsworn Squire +ManaCost:3 B +Types:Creature Vampire Soldier +PT:3/3 +A:AB$ Pump | Cost$ 1 B Discard<1/Card> | Defined$ Self | KW$ Indestructible | SubAbility$ DBTap | SpellDescription$ CARDNAME gains indestructible until end of turn. +SVar:DBTap:DB$ Tap | Defined$ Self | SubAbility$ DBTransform | StackDescription$ SpellDescription | SpellDescription$ Tap it. +SVar:DBTransform:DB$ SetState | Defined$ Self | Mode$ Transform | ConditionPresent$ Creature.YouOwn | ConditionCompare$ GE4 | ConditionZone$ Graveyard | StackDescription$ SpellDescription | SpellDescription$ Then if there are four or more creature cards in your graveyard, transform CARDNAME. +AlternateMode:DoubleFaced +SVar:AIPreference:DiscardCost$Creature +DeckHints:Ability$Graveyard +DeckHas:Ability$Discard +Oracle:{1}{B}, Discard a card: Bloodsworn Squire gains indestructible until end of turn. Tap it. Then if there are four or more creature cards in your graveyard, transform Bloodsworn Squire. (Damage and effects that say "destroy" don't destroy it.) + +ALTERNATE + +Name:Bloodsworn Knight +ManaCost:no cost +Colors:black +Types:Creature Vampire Knight +PT:*/* +S:Mode$ Continuous | Affected$ Card.Self | CharacteristicDefining$ True | SetPower$ X | SetToughness$ X | Description$ CARDNAME's power and toughness are each equal to the number of creature cards in your graveyard. +SVar:X:Count$TypeInYourYard.Creature +A:AB$ Pump | Cost$ 1 B Discard<1/Card> | Defined$ Self | KW$ Indestructible | SubAbility$ DBTap | SpellDescription$ CARDNAME gains indestructible until end of turn. +SVar:DBTap:DB$ Tap | Defined$ Self | StackDescription$ SpellDescription | SpellDescription$ Tap it. +SVar:AIPreference:DiscardCost$Creature +DeckHints:Ability$Graveyard +DeckHas:Ability$Discard +Oracle:Bloodsworn Knight's power and toughness are each equal to the number of creature cards in your graveyard.\n{1}{B}, Discard a card: Bloodsworn Knight gains indestructible until end of turn. Tap it. (Damage and effects that say "destroy" don't destroy it.) diff --git a/forge-gui/res/cardsfolder/upcoming/bloodtithe_harvester.txt b/forge-gui/res/cardsfolder/upcoming/bloodtithe_harvester.txt new file mode 100644 index 00000000000..40bd3cfbc91 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/bloodtithe_harvester.txt @@ -0,0 +1,10 @@ +Name:Bloodtithe Harvester +ManaCost:B R +Types:Creature Vampire +PT:3/2 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME enters the battlefield, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") +SVar:TrigToken:DB$ Token | TokenScript$ c_a_blood_draw +A:AB$ Pump | Cost$ T Sac<1/CARDNAME> | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ -X | NumDef$ -X | SorcerySpeed$ True | AILogic$ Curse | SpellDescription$ Target creature gets -X/-X until end of turn, where X is twice the number of Blood tokens you control. Activate only as a sorcery. +SVar:X:Count$Valid Blood.token+YouCtrl/Twice +DeckHas:Ability$Token & Ability$Sacrifice & Type$Blood +Oracle:When Bloodtithe Harvester enters the battlefield, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.")\n{T}, Sacrifice Bloodtithe Harvester: Target creature gets -X/-X until end of turn, where X is twice the number of Blood tokens you control. Activate only as a sorcery. diff --git a/forge-gui/res/cardsfolder/upcoming/bloodvial_purveyor.txt b/forge-gui/res/cardsfolder/upcoming/bloodvial_purveyor.txt new file mode 100644 index 00000000000..86f4b915622 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/bloodvial_purveyor.txt @@ -0,0 +1,13 @@ +Name:Bloodvial Purveyor +ManaCost:2 B B +Types:Creature Vampire +PT:5/6 +K:Flying +K:Trample +T:Mode$ SpellCast | ValidActivatingPlayer$ Opponent | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever an opponent casts a spell, that player creates a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") +SVar:TrigToken:DB$ Token | TokenScript$ c_a_blood_draw | TokenOwner$ TriggeredActivator +T:Mode$ Attacks | ValidCard$ Card.Self | IsPresent$ Blood.token+DefendingPlayerCtrl | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME attacks, it gets +1/+0 until end of turn for each Blood token defending player controls. +SVar:TrigPump:DB$ Pump | Defined$ Self | NumAtt$ X +SVar:X:Count$Valid Blood.token+DefendingPlayerCtrl +SVar:HasAttackEffect:TRUE +Oracle:Flying, trample\nWhenever an opponent casts a spell, that player creates a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.")\nWhenever Bloodvial Purveyor attacks, it gets +1/+0 until end of turn for each Blood token defending player controls. diff --git a/forge-gui/res/cardsfolder/upcoming/boarded_window.txt b/forge-gui/res/cardsfolder/upcoming/boarded_window.txt new file mode 100644 index 00000000000..15bd91760d8 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/boarded_window.txt @@ -0,0 +1,8 @@ +Name:Boarded Window +ManaCost:3 +Types:Artifact +S:Mode$ Continuous | Affected$ Creature.attackingYou | AddPower$ -1 | Description$ Creatures attacking you get -1/-0. +T:Mode$ Phase | Phase$ End of Turn | TriggerZones$ Battlefield | CheckSVar$ X | SVarCompare$ GE4 | Execute$ TrigExile | TriggerDescription$ At the beginning of each end step, if you were dealt 4 or more damage this turn, exile CARDNAME. +SVar:TrigExile:DB$ ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Exile +SVar:X:Count$LifeYouLostThisTurn +Oracle:Creatures attacking you get -1/-0.\nAt the beginning of each end step, if you were dealt 4 or more damage this turn, exile Boarded Window. diff --git a/forge-gui/res/cardsfolder/upcoming/bramble_wurm.txt b/forge-gui/res/cardsfolder/upcoming/bramble_wurm.txt new file mode 100644 index 00000000000..85186be8fa5 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/bramble_wurm.txt @@ -0,0 +1,11 @@ +Name:Bramble Wurm +ManaCost:6 G +Types:Creature Wurm +PT:7/6 +K:Reach +K:Trample +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 +A:AB$ GainLife | Cost$ 2 G ExileFromGrave<1/CARDNAME> | ActivationZone$ Graveyard | LifeAmount$ 5 | SpellDescription$ You gain 5 life. +DeckHas:Ability$LifeGain +Oracle:Reach, trample\nWhen Bramble Wurm enters the battlefield, you gain 5 life.\n{2}{G}, Exile Bramble Wurm from your graveyard: You gain 5 life. diff --git a/forge-gui/res/cardsfolder/upcoming/breathkeeper_seraph.txt b/forge-gui/res/cardsfolder/upcoming/breathkeeper_seraph.txt new file mode 100644 index 00000000000..36318a7a6d4 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/breathkeeper_seraph.txt @@ -0,0 +1,11 @@ +Name:Breathkeeper Seraph +ManaCost:4 W W +Types:Creature Angel +PT:4/4 +K:Flying +K:Soulbond +S:Mode$ Continuous | Affected$ Creature.PairedWith,Creature.Self+Paired | AddTrigger$ DeathTrigger | AddSVar$ DelayedReturn,TrigReturn | Description$ As long as CARDNAME is paired with another creature, each of those creatures have "When this creature dies, you may return it to the battlefield under its owner's control at the beginning of your next upkeep." +SVar:DeathTrigger:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ DelayedReturn | TriggerDescription$ When this creature dies, you may return it to the battlefield under its owner's control at the beginning of your next upkeep. +SVar:DelayedReturn:DB$ DelayedTrigger | Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | OptionalDecider$ You | Execute$ TrigReturn | RememberObjects$ TriggeredNewCardLKICopy | TriggerDescription$ You may return it to the battlefield under its owner's control at the beginning of your next upkeep. +SVar:TrigReturn:DB$ ChangeZone | Defined$ DelayTriggerRememberedLKI | Origin$ Graveyard | Destination$ Battlefield +Oracle:Flying, soulbond (You may pair this creature with another unpaired creature when either enters the battlefield. They remain paired for as long as you control both of them.)\nAs long as Breathkeeper Seraph is paired with another creature, each of those creatures has "When this creature dies, you may return it to the battlefield under its owner's control at the beginning of your next upkeep." diff --git a/forge-gui/res/cardsfolder/upcoming/brine_comber_brinebound_gift.txt b/forge-gui/res/cardsfolder/upcoming/brine_comber_brinebound_gift.txt new file mode 100644 index 00000000000..01fbdd24b88 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/brine_comber_brinebound_gift.txt @@ -0,0 +1,32 @@ +Name:Brine Comber +ManaCost:1 W U +Types:Creature Spirit +PT:1/1 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME enters the battlefield or becomes the target of an Aura spell, create a 1/1 white Spirit creature token with flying. +T:Mode$ BecomesTarget | ValidTarget$ Card.Self | ValidSource$ Aura | SourceType$ Spell | TriggerZones$ Battlefield | Execute$ TrigToken | Secondary$ True | TriggerDescription$ When CARDNAME enters the battlefield or becomes the target of an Aura spell, create a 1/1 white Spirit creature token with flying. +SVar:TrigToken:DB$ Token | TokenScript$ w_1_1_spirit_flying +K:Disturb:W U +AlternateMode:DoubleFaced +SVar:EnchantMe:Multiple +DeckHas:Ability$Graveyard & Ability$Token +DeckHints:Type$Enchantment +Oracle:Whenever Brine Comber enters the battlefield or becomes the target of an Aura spell, create a 1/1 white Spirit creature token with flying.\nDisturb {W}{U} (You may cast this card from your graveyard transformed for its disturb cost.) + +ALTERNATE + +Name:Brinebound Gift +ManaCost:no cost +Colors:white,blue +Types:Enchantment Aura +K:Enchant creature +A:SP$ Attach | ValidTgts$ Creature | TgtPrompt$ Select target creature | AILogic$ Pump +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME enters the battlefield or enchanted creature becomes the target of an Aura spell, create a 1/1 white Spirit creature token with flying. +T:Mode$ BecomesTarget | ValidTarget$ Creature.EnchantedBy | ValidSource$ Aura | SourceType$ Spell | TriggerZones$ Battlefield | Execute$ TrigToken | Secondary$ True | TriggerDescription$ When CARDNAME enters the battlefield or enchanted creature becomes the target of an Aura spell, create a 1/1 white Spirit creature token with flying. +SVar:TrigToken:DB$ Token | TokenScript$ w_1_1_spirit_flying +R:Event$ Moved | ValidCard$ Card.Self | Destination$ Graveyard | ReplaceWith$ Exile | Description$ If CARDNAME would be put into a graveyard from anywhere, exile it instead. +SVar:Exile:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Exile | Defined$ ReplacedCard +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddSVar$ EnchantTarget | Secondary$ True +SVar:EnchantTarget:SVar:EnchantMe:Multiple +DeckHas:Ability$Token +DeckHints:Type$Enchantment +Oracle:Enchant creature\nWhenever Brinebound Gift enters the battlefield or enchanted creature becomes the target of an Aura spell, create a 1/1 white Spirit creature token with flying.\nIf Brinebound Gift would be put into a graveyard from anywhere, exile it instead. diff --git a/forge-gui/res/cardsfolder/upcoming/cemetery_protector.txt b/forge-gui/res/cardsfolder/upcoming/cemetery_protector.txt new file mode 100644 index 00000000000..913eea7fe6e --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/cemetery_protector.txt @@ -0,0 +1,15 @@ +Name:Cemetery Protector +ManaCost:2 W W +Types:Creature Human Soldier +PT:3/4 +K:Flash +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile a card from a graveyard. +SVar:TrigExile:DB$ ChangeZone | Origin$ Graveyard | Destination$ Exile | ChangeType$ Card | ChangeNum$ 1 | SelectPrompt$ Select a card from a graveyard | Mandatory$ True | Hidden$ True | Imprint$ True +T:Mode$ LandPlayed | ValidCard$ Land.YouOwn+sharesCardTypeWith Imprinted.ExiledWithSource | Execute$ TrigToken | TriggerZones$ Battlefield | TriggerDescription$ Whenever you play a land or cast a spell, if it shares a card type with the exiled card, create a 1/1 white Human creature token. +T:Mode$ SpellCast | ValidCard$ Card.sharesCardTypeWith Imprinted.ExiledWithSource | ValidActivatingPlayer$ You | Execute$ TrigToken | TriggerZones$ Battlefield | Secondary$ True | TriggerDescription$ Whenever you play a land or cast a spell, if it shares a card type with the exiled card, create a 1/1 white Human creature token. +SVar:TrigToken:DB$ Token | TokenScript$ w_1_1_human +T:Mode$ ChangesZone | Origin$ Battlefield | ValidCard$ Card.Self | Destination$ Any | Execute$ DBCleanup | Static$ True +SVar:DBCleanup:DB$ Cleanup | ClearImprinted$ True +DeckHas:Ability$Token +DeckHints:Ability$Graveyard & Ability$Discard +Oracle:Flash\nWhen Cemetery Protector enters the battlefield, exile a card from a graveyard.\nWhenever you play a land or cast a spell, if it shares a card type with the exiled card, create a 1/1 white Human creature token. diff --git a/forge-gui/res/cardsfolder/upcoming/chandra_dressed_to_kill.txt b/forge-gui/res/cardsfolder/upcoming/chandra_dressed_to_kill.txt new file mode 100644 index 00000000000..d9977f7a496 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/chandra_dressed_to_kill.txt @@ -0,0 +1,19 @@ +Name:Chandra, Dressed to Kill +ManaCost:1 R R +Types:Legendary Planeswalker Chandra +Loyalty:3 +A:AB$ Mana | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | Produced$ R | SubAbility$ DBDealDamage | SpellDescription$ Add {R}. CARDNAME deals 1 damage to up to one target player or planeswalker. +SVar:DBDealDamage:DB$ DealDamage | ValidTgts$ Player,Planeswalker | TargetMin$ 0 | TargetMax$ 1 | TgtPrompt$ Select up to one target player or planeswalker | NumDmg$ 1 +A:AB$ Dig | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | Defined$ You | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBEffect | StackDescription$ SpellDescription | SpellDescription$ Exile the top card of your library. If it's red, you may cast it this turn. +SVar:DBEffect:DB$ Effect | ConditionDefined$ Remembered | ConditionPresent$ Card.Red | ConditionCompare$ GE1 | RememberObjects$ RememberedCard | StaticAbilities$ STPlay | SubAbility$ DBCleanup | ForgetOnMoved$ Exile +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:STPlay:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered+nonLand | AffectedZone$ Exile | Description$ You may cast the exiled card this turn. +A:AB$ Dig | Cost$ SubCounter<7/LOYALTY> | Planeswalker$ True | Ultimate$ True | Defined$ You | DigNum$ 5 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBEffect2 | StackDescription$ SpellDescription | SpellDescription$ Exile the top five cards of your library. You may cast red spells from among them this turn. You get an emblem with "Whenever you cast a red spell, this emblem deals X damage to any target, where X is the amount of mana spent to cast that spell." +SVar:DBEffect2:DB$ Effect | RememberObjects$ RememberedCard | StaticAbilities$ STPlay2 | SubAbility$ DBEffect3 | ForgetOnMoved$ Exile +SVar:DBEffect3:DB$ Effect | Name$ Emblem - Chandra, Dressed to Kill | Triggers$ TRSpellCast | Duration$ Permanent | SubAbility$ DBCleanup +SVar:STPlay2:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered+Red+nonLand | AffectedZone$ Exile | Description$ You may cast red spells from among the exiled cards this turn. +SVar:TRSpellCast:Mode$ SpellCast | ValidCard$ Card.Red | ValidActivatingPlayer$ You | TriggerZones$ Command | Execute$ TrigDealDamage | TriggerDescription$ Whenever you cast a red spell, this emblem deals X damage to any target, where X is the amount of mana spent to cast that spell." +SVar:TrigDealDamage:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ X +SVar:X:Count$TriggeredManaSpent +SVar:BuffedBy:Card.Red +Oracle:[+1]: Add {R}. Chandra, Dressed to Kill deals 1 damage to up to one target player or planeswalker.\n[+1]: Exile the top card of your library. If it's red, you may cast it this turn.\n[-7]: Exile the top five cards of your library. You may cast red spells from among them this turn. You get an emblem with "Whenever you cast a red spell, this emblem deals X damage to any target, where X is the amount of mana spent to cast that spell." diff --git a/forge-gui/res/cardsfolder/upcoming/child_of_the_pack_savage_packmate.txt b/forge-gui/res/cardsfolder/upcoming/child_of_the_pack_savage_packmate.txt new file mode 100644 index 00000000000..54fd2a38655 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/child_of_the_pack_savage_packmate.txt @@ -0,0 +1,21 @@ +Name:Child of the Pack +ManaCost:2 R G +Types:Creature Human Werewolf +PT:2/5 +A:AB$ Token | Cost$ 2 R G | TokenScript$ g_2_2_wolf | StackDescription$ SpellDescription | SpellDescription$ Create a 2/2 green Wolf creature token. +K:Daybound +AlternateMode:DoubleFaced +DeckHas:Ability$Token & Type$Wolf +Oracle:{2}{R}{G}: Create a 2/2 green Wolf creature token.\nDaybound (If a player casts no spells during their own turn, it becomes night next turn.) + +ALTERNATE + +Name:Savage Packmate +ManaCost:no cost +Colors:red,green +Types:Creature Werewolf +PT:5/5 +K:Trample +S:Mode$ Continuous | Affected$ Creature.Other+YouCtrl | AddPower$ 1 | Description$ Other creatures you control get +1/+0. +K:Nightbound +Oracle:Trample\nOther creatures you control get +1/+0.\nNightbound (If a player casts at least two spells during their own turn, it becomes day next turn.) diff --git a/forge-gui/res/cardsfolder/upcoming/cloaked_cadet.txt b/forge-gui/res/cardsfolder/upcoming/cloaked_cadet.txt new file mode 100644 index 00000000000..4e2532b60b7 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/cloaked_cadet.txt @@ -0,0 +1,9 @@ +Name:Cloaked Cadet +ManaCost:4 G +Types:Creature Human Ranger +PT:2/4 +K:Training +T:Mode$ CounterAddedAll | CounterType$ P1P1 | Valid$ Human.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigDraw | ActivationLimit$ 1 | TriggerDescription$ Whenever one or more +1/+1 counters are put on one or more Humans you control, draw a card. This ability triggers only once each turn. +SVar:TrigDraw:DB$ Draw | NumCards$ 1 +DeckHas:Ability$Counters +Oracle:Training (Whenever this creature attacks with another creature with greater power, put a +1/+1 counter on this creature.)\nWhenever one or more +1/+1 counters are put on one or more Humans you control, draw a card. This ability triggers only once each turn. diff --git a/forge-gui/res/cardsfolder/upcoming/concealing_curtains_revealing_eye.txt b/forge-gui/res/cardsfolder/upcoming/concealing_curtains_revealing_eye.txt new file mode 100644 index 00000000000..48128627453 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/concealing_curtains_revealing_eye.txt @@ -0,0 +1,25 @@ +Name:Concealing Curtains +ManaCost:B +Types:Creature Wall +PT:0/4 +K:Defender +A:AB$ SetState | Cost$ 2 B | Defined$ Self | Mode$ Transform | SorcerySpeed$ True | SpellDescription$ Transform CARDNAME. Activate only as a sorcery. +AlternateMode:DoubleFaced +Oracle:Defender\n{2}{B}: Transform Concealing Curtains. Activate only as a sorcery. + +ALTERNATE + +Name:Revealing Eye +ManaCost:no cost +Colors:black +Types:Creature Eye Horror +PT:3/4 +K:Menace +T:Mode$ Transformed | ValidCard$ Card.Self | Execute$ TrigReveal | TriggerDescription$ When this creature transforms into CARDNAME, target opponent reveals their hand. You may choose a nonland card from it. If you do, that player discards that card, then draws a card. +SVar:TrigReveal:DB$ RevealHand | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | RememberRevealed$ True | SubAbility$ DBChoose +SVar:DBChoose:DB$ ChooseCard | ChoiceZone$ Hand | Amount$ 1 | Choices$ Card.nonLand+IsRemembered | SubAbility$ DBDiscard | ChoiceTitle$ You may choose a nonland card +SVar:DBDiscard:DB$ Discard | DefinedCards$ ChosenCard | Defined$ Targeted | Mode$ Defined | ConditionDefined$ ChosenCard | ConditionPresent$ Card | ConditionCompare$ EQ1 | SubAbility$ DBDraw +SVar:DBDraw:DB$ Draw | Defined$ Targeted | NumCards$ 1 | ConditionDefined$ ChosenCard | ConditionPresent$ Card | ConditionCompare$ EQ1 | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearChosenCard$ True +DeckHas:Ability$Discard +Oracle:Menace\nWhen this creature transforms into Revealing Eye, target opponent reveals their hand. You may choose a nonland card from it. If you do, that player discards that card, then draws a card. diff --git a/forge-gui/res/cardsfolder/upcoming/consuming_tide.txt b/forge-gui/res/cardsfolder/upcoming/consuming_tide.txt new file mode 100644 index 00000000000..79d30e9e8b5 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/consuming_tide.txt @@ -0,0 +1,11 @@ +Name:Consuming Tide +ManaCost:2 U U +Types:Sorcery +A:SP$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ DBChooseCard | SubAbility$ DBReturnAll | SpellDescription$ Each player chooses a nonland permanent they control. Return all nonland permanents not chosen this way to their owners' hands. Then you draw a card for each opponent who has more cards in their hand than you. +SVar:DBChooseCard:DB$ ChooseCard | Defined$ Player.IsRemembered | Choices$ Permanent.nonLand+RememberedPlayerCtrl | ChoiceTitle$ Choose a nonland permanent you control | RememberChosen$ True | AILogic$ BestCard +SVar:DBReturnAll:DB$ ChangeZoneAll | ChangeType$ Permanent.nonLand+IsNotRemembered | Origin$ Battlefield | Destination$ Hand | SubAbility$ DBDraw +SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ X | StackDescription$ None | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:X:PlayerCountOpponents$HasPropertyHasCardsInHand_Card_GTY +SVar:Y:Count$CardsInYourHand +Oracle:Each player chooses a nonland permanent they control. Return all nonland permanents not chosen this way to their owners' hands. Then you draw a card for each opponent who has more cards in their hand than you. diff --git a/forge-gui/res/cardsfolder/upcoming/cultivator_colossus.txt b/forge-gui/res/cardsfolder/upcoming/cultivator_colossus.txt new file mode 100644 index 00000000000..7a7196f519a --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/cultivator_colossus.txt @@ -0,0 +1,15 @@ +Name:Cultivator Colossus +ManaCost:4 G G G +Types:Creature Plant Beast +PT:*/* +K:Trample +S:Mode$ Continuous | EffectZone$ All | CharacteristicDefining$ True | SetPower$ X | SetToughness$ X | Description$ CARDNAME's power and toughness are each equal to the number of lands you control. +SVar:X:Count$Valid Land.YouCtrl +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigRepeat | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may put a land card from your hand onto the battlefield tapped. If you do, draw a card and repeat this process. +SVar:TrigRepeat:DB$ Repeat | RepeatSubAbility$ DBClear | RepeatDefined$ Remembered | RepeatPresent$ Card | RepeatSVarCompare$ EQ1 | SubAbility$ DBCleanup +SVar:DBClear:DB$ Cleanup | ClearRemembered$ True | SubAbility$ DBChangeZone +SVar:DBChangeZone:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | Tapped$ True | ChangeType$ Land.YouOwn | RememberChanged$ True | ForgetOtherRemembered$ True | SubAbility$ DBDraw +SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ 1 | ConditionDefined$ Remembered | ConditionPresent$ Card +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:BuffedBy:Land +Oracle:Trample\nCultivator Colossus's power and toughness are each equal to the number of lands you control.\nWhen Cultivator Colossus enters the battlefield, you may put a land card from your hand onto the battlefield tapped. If you do, draw a card and repeat this process. diff --git a/forge-gui/res/cardsfolder/upcoming/distracting_geist_clever_distraction.txt b/forge-gui/res/cardsfolder/upcoming/distracting_geist_clever_distraction.txt new file mode 100644 index 00000000000..04c3f04a297 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/distracting_geist_clever_distraction.txt @@ -0,0 +1,27 @@ +Name:Distracting Geist +ManaCost:2 W +Types:Creature Spirit +PT:2/1 +T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigTap | TriggerDescription$ Whenever CARDNAME attacks, tap target creature defending player controls. +SVar:TrigTap:DB$ Tap | ValidTgts$ Creature.ControlledBy TriggeredDefendingPlayer | TgtPrompt$ Select target creature defending player controls +SVar:HasAttackEffect:TRUE +K:Disturb:4 W +AlternateMode:DoubleFaced +DeckHas:Ability$Graveyard +Oracle:Whenever Distracting Geist attacks, tap target creature defending player controls.\nDisturb {4}{W} (You may cast this card from your graveyard transformed for its disturb cost.) + +ALTERNATE + +Name:Clever Distraction +ManaCost:no cost +Colors:white +Types:Enchantment Aura +K:Enchant creature +A:SP$ Attach | ValidTgts$ Creature | TgtPrompt$ Select target creature | AILogic$ Pump +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddTrigger$ AttackTrigger | AddSVar$ AE | Description$ Enchanted creature has "Whenever this creature attacks, tap target creature defending player controls." +SVar:AttackTrigger:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigTap | TriggerDescription$ Whenever CARDNAME attacks, tap target creature defending player controls. +SVar:TrigTap:DB$ Tap | ValidTgts$ Creature.ControlledBy TriggeredDefendingPlayer | TgtPrompt$ Select target creature defending player controls +SVar:AE:SVar:HasAttackEffect:TRUE +R:Event$ Moved | ValidCard$ Card.Self | Destination$ Graveyard | ReplaceWith$ Exile | Description$ If CARDNAME would be put into a graveyard from anywhere, exile it instead. +SVar:Exile:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Exile | Defined$ ReplacedCard +Oracle:Enchant creature\nEnchanted creature has "Whenever this creature attacks, tap target creature defending player controls." If Clever Distraction would be put into a graveyard from anywhere, exile it instead. diff --git a/forge-gui/res/cardsfolder/upcoming/diver_skaab.txt b/forge-gui/res/cardsfolder/upcoming/diver_skaab.txt new file mode 100644 index 00000000000..1620ab76ade --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/diver_skaab.txt @@ -0,0 +1,9 @@ +Name:Diver Skaab +ManaCost:3 U U +Types:Creature Zombie +PT:3/5 +K:Exploit +T:Mode$ Exploited | ValidCard$ Creature | ValidSource$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigSubmerge | TriggerDescription$ When CARDNAME exploits a creature, target creature's owner puts it on the top or bottom of their library. +SVar:TrigSubmerge:DB$ ChangeZone | ValidTgts$ Creature | TgtPrompt$ Select target creature | AlternativeDecider$ TargetedController | Origin$ Battlefield | Destination$ Library | LibraryPosition$ 0 | DestinationAlternative$ Library | LibraryPositionAlternative$ -1 | AlternativeDestinationMessage$ Would you like to put the card on the top of your library (and not on the bottom)? +DeckHas:Ability$Sacrifice +Oracle:Exploit (When this creature enters the battlefield, you may sacrifice a creature.)\nWhen Diver Skaab exploits a creature, target creature's owner puts it on the top or bottom of their library. diff --git a/forge-gui/res/cardsfolder/upcoming/dollhouse_of_horrors.txt b/forge-gui/res/cardsfolder/upcoming/dollhouse_of_horrors.txt new file mode 100644 index 00000000000..b95d6d1ef97 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/dollhouse_of_horrors.txt @@ -0,0 +1,10 @@ +Name:Dollhouse of Horrors +ManaCost:5 +Types:Artifact +A:AB$ CopyPermanent | Cost$ 1 T ExileFromGrave<1/Creature> | Defined$ Exiled | SetPower$ 0 | SetToughness$ 0 | AddTypes$ Construct & Artifact | AddStaticAbilities$ ConstructBuff | SorcerySpeed$ True | SubAbility$ DBPump | StackDescription$ Create a token that's a copy of {c:Exiled}, except it's a 0/0 Construct artifact in addition to its other types and it has "This creature gets +1/+1 for each Construct you control." | SpellDescription$ Create a token that's a copy of the exiled card, except it's a 0/0 Construct artifact in addition to its other types and it has "This creature gets +1/+1 for each Construct you control." +SVar:DBPump:DB$ Pump | Defined$ Exiled | StackDescription$ That creature gains haste until end of turn. | SpellDescription$ That creature gains haste until end of turn. Activate only as a sorcery. +SVar:ConstructBuff:Mode$ Continuous | Affected$ Card.Self | AddPower$ X | AddToughness$ X | Description$ This creature gets +1/+1 for each Construct you control. +SVar:X:Count$Valid Construct.YouCtrl +DeckHas:Ability$Token & Ability$Graveyard & Type$Artifact +DeckHints:Type$Construct +Oracle:{1}, {T}: Exile a creature card from your graveyard: Create a token that's a copy of the exiled card, except it's a 0/0 Construct artifact in addition to its other types and it has "This creature gets +1/+1 for each Construct you control." That creature gains haste until end of turn. Activate only as a sorcery. diff --git a/forge-gui/res/cardsfolder/upcoming/dreadfeast_demon.txt b/forge-gui/res/cardsfolder/upcoming/dreadfeast_demon.txt new file mode 100644 index 00000000000..8bdb2bc2ea3 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/dreadfeast_demon.txt @@ -0,0 +1,11 @@ +Name:Dreadfeast Demon +ManaCost:5 B B +Types:Creature Demon +PT:6/6 +K:Flying +T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | Execute$ TrigSac | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your end step, sacrifice a non-Demon creature. If you do, create a token that's a copy of CARDNAME. +SVar:TrigSac:DB$ Sacrifice | SacValid$ Creature.nonDemon | SacMessage$ non-Demon creature | RememberSacrificed$ True | SubAbility$ DBCopy +SVar:DBCopy:DB$ CopyPermanent | Defined$ Self | ConditionDefined$ Remembered | ConditionPresent$ Card | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +DeckHas:Ability$Sacrifice & Ability$Token +Oracle:Flying\nAt the beginning of your end step, sacrifice a non-Demon creature. If you do, create a token that's a copy of Dreadfeast Demon. diff --git a/forge-gui/res/cardsfolder/upcoming/dreamshackle_geist.txt b/forge-gui/res/cardsfolder/upcoming/dreamshackle_geist.txt new file mode 100644 index 00000000000..29644fa782b --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/dreamshackle_geist.txt @@ -0,0 +1,10 @@ +Name:Dreamshackle Geist +ManaCost:1 U U +Types:Creature Spirit +PT:3/1 +K:Flying +T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | Execute$ TrigCharm | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of combat on your turn, ABILITY +SVar:TrigCharm:DB$ Charm | Choices$ Tap,Freeze | CharmNum$ 1 +SVar:Tap:DB$ Tap | ValidTgts$ Creature | TgtPrompt$ Select target creature | SpellDescription$ Tap target creature. +SVar:Freeze:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ HIDDEN This card doesn't untap during your next untap step. | Duration$ Permanent | IsCurse$ True | SpellDescription$ Target creature doesn't untap during its controller's next untap step. +Oracle:Flying\nAt the beginning of combat on your turn, choose up to one —\n• Tap target creature.\n• Target creature doesn't untap during its controller's next untap step. diff --git a/forge-gui/res/cardsfolder/upcoming/dying_to_serve.txt b/forge-gui/res/cardsfolder/upcoming/dying_to_serve.txt new file mode 100644 index 00000000000..731fe77d5b8 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/dying_to_serve.txt @@ -0,0 +1,8 @@ +Name:Dying to Serve +ManaCost:2 B +Types:Enchantment +T:Mode$ DiscardedAll | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigToken | ActivationLimit$ 1 | TriggerDescription$ Whenever you discard one or more cards, create a tapped 2/2 black Zombie creature token. This ability triggers only once each turn. +SVar:TrigToken:DB$ Token | TokenTapped$ True | TokenScript$ b_2_2_zombie +DeckHas:Ability$Token & Type$Zombie +DeckHints:Ability$Discard & Ability$Graveyard +Oracle:Whenever you discard one or more cards, create a tapped 2/2 black Zombie creature token. This ability triggers only once each turn. diff --git a/forge-gui/res/cardsfolder/upcoming/edgars_awakening.txt b/forge-gui/res/cardsfolder/upcoming/edgars_awakening.txt new file mode 100644 index 00000000000..25cefb617a0 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/edgars_awakening.txt @@ -0,0 +1,10 @@ +Name:Edgar's Awakening +ManaCost:3 B B +Types:Sorcery +A:SP$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | TgtPrompt$ Select target creature card in your graveyard | ValidTgts$ Creature.YouOwn | SpellDescription$ Return target creature card from your graveyard to the battlefield. +T:Mode$ Discarded | ValidCard$ Card.Self | Execute$ TrigImmediateTrig | TriggerController$ TriggeredCardController | TriggerDescription$ When you discard CARDNAME, you may pay {B}. When you do, return target creature card from your graveyard to your hand. +SVar:TrigImmediateTrig:AB$ ImmediateTrigger | Cost$ B | Execute$ TrigReturn | TriggerDescription$ When you do, return target creature card from your graveyard to your hand. +SVar:TrigReturn:DB$ ChangeZone | TgtPrompt$ Select target creature card in your graveyard | ValidTgts$ Creature.YouOwn | Origin$ Graveyard | Destination$ Hand +DeckHints:Ability$Discard +DeckHas:Ability$Graveyard +Oracle:Return target creature card from your graveyard to the battlefield.\nWhen you discard Edgar's Awakening, you may pay {B}. When you do, return target creature card from your graveyard to your hand. diff --git a/forge-gui/res/cardsfolder/upcoming/falkenrath_forebear.txt b/forge-gui/res/cardsfolder/upcoming/falkenrath_forebear.txt new file mode 100644 index 00000000000..56eed23a8dc --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/falkenrath_forebear.txt @@ -0,0 +1,11 @@ +Name:Falkenrath Forebear +ManaCost:2 B +Types:Creature Vampire +PT:3/1 +K:Flying +K:CARDNAME can't block. +T:Mode$ DamageDone | ValidSource$ Card.Self | Execute$ TrigToken | CombatDamage$ True | ValidTarget$ Player | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, create a Blood token. +SVar:TrigToken:DB$ Token | TokenScript$ c_a_blood_draw +A:AB$ ChangeZone | Cost$ B Sac<2/Blood.token/Blood token> | Origin$ Graveyard | Destination$ Battlefield | ActivationZone$ Graveyard | SpellDescription$ Return CARDNAME from your graveyard to the battlefield. +DeckHas:Ability$Token & Ability$Sacrifice & Ability$Graveyard & Type$Blood +Oracle:Flying\nFalkenrath Forebear can't block.\nWhenever Falkenrath Forebear deals combat damage to a player, create a Blood token.\n{B}, Sacrifice two Blood tokens: Return Falkenrath Forebear from your graveyard to the battlefield. diff --git a/forge-gui/res/cardsfolder/upcoming/fearful_villager_fearsome_werewolf.txt b/forge-gui/res/cardsfolder/upcoming/fearful_villager_fearsome_werewolf.txt new file mode 100644 index 00000000000..392b9205ad0 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/fearful_villager_fearsome_werewolf.txt @@ -0,0 +1,19 @@ +Name:Fearful Villager +ManaCost:2 R R +Types:Creature Human Werewolf +PT:2/3 +K:Menace +K:Daybound +AlternateMode:DoubleFaced +Oracle:Menace (This creature can't be blocked except by two or more creatures.)\nDaybound (If a player casts no spells during their own turn, it becomes night next turn.) + +ALTERNATE + +Name:Fearsome Werewolf +ManaCost:no cost +Colors:red +Types:Creature Werewolf +PT:4/3 +K:Menace +K:Nightbound +Oracle:Menace (This creature can't be blocked except by two or more creatures.)\nNightbound (If a player casts at least two spells during their own turn, it becomes day next turn.) diff --git a/forge-gui/res/cardsfolder/upcoming/frenzied_devils.txt b/forge-gui/res/cardsfolder/upcoming/frenzied_devils.txt new file mode 100644 index 00000000000..8e54a8ffd73 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/frenzied_devils.txt @@ -0,0 +1,9 @@ +Name:Frenzied Devils +ManaCost:4 R +Types:Creature Devil +PT:3/3 +K:Haste +T:Mode$ SpellCast | ValidCard$ Card.nonCreature | ValidActivatingPlayer$ You | Execute$ TrigPump | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast a noncreature spell, CARDNAME gets +2/+2 until end of turn. +SVar:TrigPump:DB$ Pump | Defined$ Self | NumAtt$ 2 | NumDef$ 2 +SVar:BuffedBy:Card.nonLand+nonCreature +Oracle:Haste\nWhenever you cast a noncreature spell, Frenzied Devils gets +2/+2 until end of turn. diff --git a/forge-gui/res/cardsfolder/upcoming/glorious_sunrise.txt b/forge-gui/res/cardsfolder/upcoming/glorious_sunrise.txt new file mode 100644 index 00000000000..af2a9588ab2 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/glorious_sunrise.txt @@ -0,0 +1,12 @@ +Name:Glorious Sunrise +ManaCost:3 G G +Types:Enchantment +T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | Execute$ TrigCharm | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of combat on your turn, ABILITY +SVar:TrigCharm:DB$ Charm | Choices$ PumpAll,Animate,Draw,Gain | CharmNum$ 1 +SVar:PumpAll:DB$ PumpAll | ValidCards$ Creature.YouCtrl | KW$ Trample | NumAtt$ +1 | NumDef$ +1 | SpellDescription$ Creatures you control get +1/+1 and gain trample until end of turn. +SVar:Animate:DB$ Animate | ValidTgts$ Land | TgtPrompt$ Select target land | Abilities$ ThreeG | SpellDescription$ Target land gains "{T}: Add {G}{G}{G}" until end of turn. +SVar:ThreeG:AB$ Mana | Cost$ T | Produced$ G | Amount$ 3 | SpellDescription$ Add {G}{G}{G} +SVar:Draw:DB$ Draw | Defined$ You | NumCards$ 1 | ConditionPresent$ Creature.YouCtrl+powerGE3 | SpellDescription$ Draw a card if you control a creature with power 3 or greater. +SVar:Gain:DB$ GainLife | LifeAmount$ 3 | SpellDescription$ You gain 3 life. +DeckHas:Ability$LifeGain +Oracle:At the beginning of combat on your turn, choose one —\n• Creatures you control get +1/+1 and gain trample until end of turn.\n• Target land gains "{T}: Add {G}{G}{G}" until end of turn.\n• Draw a card if you control a creature with power 3 or greater.\n• You gain 3 life. diff --git a/forge-gui/res/cardsfolder/upcoming/graf_reaver.txt b/forge-gui/res/cardsfolder/upcoming/graf_reaver.txt new file mode 100644 index 00000000000..78be73efa2b --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/graf_reaver.txt @@ -0,0 +1,11 @@ +Name:Graf Reaver +ManaCost:1 B +Types:Creature Zombie Warrior +PT:3/3 +K:Exploit +T:Mode$ Exploited | ValidCard$ Creature | ValidSource$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigDestroy | TriggerDescription$ When CARDNAME exploits a creature, destroy target planeswalker. +SVar:TrigDestroy:DB$ Destroy | ValidTgts$ Planeswalker | TgtPrompt$ Select target planeswalker +T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDealDamage | TriggerDescription$ At the beginning of your upkeep, CARDNAME deals 1 damage to you. +SVar:TrigDealDamage:DB$ DealDamage | Defined$ You | NumDmg$ 1 +AI:RemoveDeck:Random +Oracle:Exploit (When this creature enters the battlefield, you may sacrifice a creature.)\nWhen Graf Reaver exploits a creature, destroy target planeswalker.\nAt the beginning of your upkeep, Graf Reaver deals 1 damage to you. diff --git a/forge-gui/res/cardsfolder/upcoming/grooms_finery.txt b/forge-gui/res/cardsfolder/upcoming/grooms_finery.txt new file mode 100644 index 00000000000..acf58822cef --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/grooms_finery.txt @@ -0,0 +1,8 @@ +Name:Groom's Finery +ManaCost:1 B +Types:Artifact Equipment +S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 2 | Description$ Equipped creature gets +2/+0. It gets an additional +0/+2 and has deathtouch as long as an Equipment named Bride's Gown is attached to a creature you control. +S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddToughness$ 2 | AddKeyword$ Deathtouch | IsPresent$ Equipment.AttachedTo Creature.YouCtrl+namedBride's Gown | Secondary$ True +K:Equip:2 +DeckHints:Name$Bride's Gown +Oracle:Equipped creature gets +2/+0. It gets an additional +0/+2 and has deathtouch as long as an Equipment named Bride's Gown is attached to a creature you control.\nEquip {2} ({2}: Attach to target creature you control. Equip only as a sorcery.) diff --git a/forge-gui/res/cardsfolder/upcoming/hamlet_vanguard.txt b/forge-gui/res/cardsfolder/upcoming/hamlet_vanguard.txt new file mode 100644 index 00000000000..622fa53e9f4 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/hamlet_vanguard.txt @@ -0,0 +1,10 @@ +Name:Hamlet Vanguard +ManaCost:2 G +Types:Creature Human Warrior +PT:1/1 +K:Ward:2 +K:etbCounter:P1P1:X:no Condition:CARDNAME enters the battlefield with two +1/+1 counters on it for each other nontoken Human you control. +SVar:X:Count$Valid Human.nonToken+YouCtrl/Times.2 +DeckNeeds:Type$Human +DeckHas:Ability$Counters +Oracle:Ward {2} (Whenever this creature becomes the target of a spell or ability an opponent controls, counter it unless that player pays {2}.)\nHamlet Vanguard enters the battlefield with two +1/+1 counters on it for each other nontoken Human you control. diff --git a/forge-gui/res/cardsfolder/upcoming/headless_rider.txt b/forge-gui/res/cardsfolder/upcoming/headless_rider.txt new file mode 100644 index 00000000000..17eea2fdfb5 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/headless_rider.txt @@ -0,0 +1,10 @@ +Name:Headless Rider +ManaCost:2 B +Types:Creature Zombie +PT:3/1 +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Zombie.nonToken+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever CARDNAME or another nontoken Zombie you control dies, create a 2/2 black Zombie creature token. +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigToken | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another nontoken Zombie you control dies, create a 2/2 black Zombie creature token. +SVar:TrigToken:DB$ Token | TokenScript$ b_2_2_zombie +DeckHas:Ability$Token +DeckHints:Type$Zombie +Oracle:Whenever Headless Rider or another nontoken Zombie you control dies, create a 2/2 black Zombie creature token. diff --git a/forge-gui/res/cardsfolder/upcoming/henrika_domnathi_henrika_infernal_seer.txt b/forge-gui/res/cardsfolder/upcoming/henrika_domnathi_henrika_infernal_seer.txt new file mode 100644 index 00000000000..76c447f6f42 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/henrika_domnathi_henrika_infernal_seer.txt @@ -0,0 +1,28 @@ +Name:Henrika Domnathi +ManaCost:2 B B +Types:Legendary Creature Vampire +PT:1/3 +K:Flying +T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | Execute$ TrigCharm | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of combat on your turn, ABILITY +SVar:TrigCharm:DB$ Charm | Choices$ SacDom,DrawDom,TransDom | ChoiceRestriction$ ThisGame | CharmNum$ 1 +SVar:SacDom:DB$ Sacrifice | Amount$ 1 | SacValid$ Creature | Defined$ Player | SpellDescription$ Each player sacrifices a creature. +SVar:DrawDom:DB$ Draw | Defined$ You | NumCards$ 1 | SubAbility$ DBLoseLife | SpellDescription$ You draw a card and you lose 1 life. +SVar:DBLoseLife:DB$ LoseLife | Defined$ You | LifeAmount$ 1 | StackDescription$ None +SVar:TransDom:DB$ SetState | Defined$ Self | Mode$ Transform | SpellDescription$ Transform CARDNAME. +AlternateMode:DoubleFaced +DeckHas:Ability$Sacrifice +Oracle:Flying\nAt the beginning of combat on your turn, choose one that hasn't been chosen –\n• Each player sacrifices a creature.\n• You draw a card and you lose 1 life.\n•Transform Henrika Domnathi. + +ALTERNATE + +Name:Henrika, Infernal Seer +ManaCost:no cost +Colors:black +Types:Legendary Creature Vampire +PT:3/4 +K:Flying +K:Deathtouch +K:Lifelink +A:AB$ PumpAll | Cost$ 1 B B | ValidCards$ Creature.YouCtrl+withFlying,Creature.YouCtrl+withLifelink,Creature.YouCtrl+withDeathtouch | NumAtt$ +1 | SpellDescription$ Each creature you control with flying, deathtouch and/or lifelink gets +1/+0 until end of turn. +DeckHas:Ability$LifeGain +Oracle:Flying, deathtouch, lifelink\n{1}{B}{B}: Each creature you control with flying, deathtouch and/or lifelink gets +1/+0 until end of turn. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/hiveheart_shaman.txt b/forge-gui/res/cardsfolder/upcoming/hiveheart_shaman.txt new file mode 100644 index 00000000000..60550258cff --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/hiveheart_shaman.txt @@ -0,0 +1,15 @@ +Name:Hiveheart Shaman +ManaCost:3 G +Types:Creature Human Shaman +PT:3/5 +T:Mode$ Attacks | ValidCard$ Card.Self | OptionalDecider$ You | Execute$ TrigChange | TriggerDescription$ Whenever CARDNAME attacks, you may search your library for a basic land card that doesn't share a land type with a land you control, put that card onto the battlefield, then shuffle. +SVar:TrigChange:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | ChangeType$ Land.Basic+!sharesLandTypeWith Valid Land.YouCtrl | ChangeNum$ 1 | ShuffleNonMandatory$ True +A:AB$ Token | Cost$ 5 G | TokenScript$ g_1_1_insect | RememberTokens$ True | SorcerySpeed$ True | SubAbility$ DBCounters | StackDescription$ SpellDescription | SpellDescription$ Create a 1/1 green Insect creature token. Put X +1/+1 counters on it, where X is the number of basic land types among lands you control. +SVar:DBCounters:DB$ PutCounter | Defined$ Remembered | CounterType$ P1P1 | CounterNum$ X | StackDescription$ None | SubAbility$ DBCleanup | SpellDescription$ Activate only as a sorcery. +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:X:Count$Domain +SVar:BuffedBy:Plains,Island,Swamp,Mountain,Forest +SVar:HasAttackEffect:TRUE +DeckHints:Color$White|Blue|Red|Black +DeckHas:Ability$Token & Ability$Counters +Oracle:Whenever Hiveheart Shaman attacks, you may search your library for a basic land card that doesn't share a land type with a land you control, put that card onto the battlefield, then shuffle.\n{5}{G}: Create a 1/1 green Insect creature token. Put X +1/+1 counters on it, where X is the number of basic land types among lands you control. Activate only as a sorcery. diff --git a/forge-gui/res/cardsfolder/upcoming/honeymoon_hearse.txt b/forge-gui/res/cardsfolder/upcoming/honeymoon_hearse.txt new file mode 100644 index 00000000000..2889a417b94 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/honeymoon_hearse.txt @@ -0,0 +1,7 @@ +Name:Honeymoon Hearse +ManaCost:2 R +Types:Artifact Vehicle +PT:5/5 +K:Trample +A:AB$ Animate | Cost$ tapXType<2/Creature/creature> | Types$ Artifact,Creature | RemoveCardTypes$ True | StackDescription$ SpellDescription | SpellDescription$ CARDNAME becomes an artifact creature until end of turn. +Oracle:Trample\nTap two untapped creatures you control: Honeymoon Hearse becomes an artifact creature until end of turn. diff --git a/forge-gui/res/cardsfolder/upcoming/honored_heirloom.txt b/forge-gui/res/cardsfolder/upcoming/honored_heirloom.txt new file mode 100644 index 00000000000..f562cb8bbe9 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/honored_heirloom.txt @@ -0,0 +1,5 @@ +Name:Honored Heirloom +Types:Artifact +A:AB$ Mana | Cost$ T | Produced$ Any | SpellDescription$ Add one mana of any color. +A:AB$ ChangeZone | Cost$ 2 T | Origin$ Graveyard | Destination$ Exile | TgtPrompt$ Select target card in a graveyard | ValidTgts$ Card | SpellDescription$ Exile target card from a graveyard. +Oracle:{T}: Add one mana of any color.\n{2}, {T}: Exile target card from a graveyard. diff --git a/forge-gui/res/cardsfolder/upcoming/howlpack_piper_wildsong_howler.txt b/forge-gui/res/cardsfolder/upcoming/howlpack_piper_wildsong_howler.txt new file mode 100644 index 00000000000..bff1a2b379b --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/howlpack_piper_wildsong_howler.txt @@ -0,0 +1,25 @@ +Name:Howlpack Piper +ManaCost:3 G +Types:Creature Human Werewolf +PT:2/2 +K:CARDNAME can't be countered. +A:AB$ ChangeZone | Cost$ 1 G T | Origin$ Hand | Destination$ Battlefield | ChangeType$ Creature | ChangeNum$ 1 | SorcerySpeed$ True | RememberChanged$ True | SubAbility$ DBUntap | StackDescription$ You may put a creature card from your hand onto the battlefield. If it's a Wolf or Werewolf, untap CARDNAME. | SpellDescription$ You may put a creature card from your hand onto the battlefield. If it's a Wolf or Werewolf, untap CARDNAME. Activate only as a sorcery. +SVar:DBUntap:DB$ Untap | Defined$ Self | ConditionDefined$ Remembered | ConditionPresent$ Wolf,Werewolf | ConditionCompare$ EQ1 | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +K:Daybound +AlternateMode:DoubleFaced +DeckHints:Type$Wolf|Werewolf +Oracle:This spell can't be countered.\n{1}{G}, {T}: You may put a creature card from your hand onto the battlefield. If it's a Wolf or Werewolf, untap Howlpack Piper. Activate only as a sorcery.\nDaybound (If a player casts no spells during their own turn, it becomes night next turn.) + +ALTERNATE + +Name:Wildsong Howler +ManaCost:no cost +Colors:green +Types:Creature Werewolf +PT:4/4 +T:Mode$ ChangesZone | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDig | TriggerDescription$ Whenever this creature enters the battlefield or transforms into CARDNAME, look at the top six cards of your library. You may reveal a creature card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. +T:Mode$ Transformed | ValidCard$ Card.Self | Execute$ TrigDig | Secondary$ True | TriggerDescription$ Whenever this creature enters the battlefield or transforms into CARDNAME, look at the top six cards of your library. You may reveal a creature card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. +SVar:TrigDig:DB$ Dig | DigNum$ 6 | ChangeNum$ 1 | Optional$ True | ChangeValid$ Card.Creature | RestRandomOrder$ True | ForceRevealToController$ True +K:Nightbound +Oracle:Whenever this creature enters the battlefield or transforms into Wildsong Howler, look at the top six cards of your library. You may reveal a creature card from among them and put it into your hand. Put the rest on the bottom of your library in a random order.\nNightbound (If a player casts at least two spells during their own turn, it becomes day next turn.) diff --git a/forge-gui/res/cardsfolder/upcoming/innocent_traveler_malicious_invader.txt b/forge-gui/res/cardsfolder/upcoming/innocent_traveler_malicious_invader.txt new file mode 100644 index 00000000000..80ab488a143 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/innocent_traveler_malicious_invader.txt @@ -0,0 +1,19 @@ +Name:Innocent Traveler +ManaCost:2 B B +Types:Creature Human +PT:1/3 +T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigTransform | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your upkeep, any opponent may sacrifice a creature. If no one does, transform CARDNAME. +SVar:TrigTransform:DB$ SetState | Defined$ Self | Mode$ Transform | UnlessCost$ Sac<1/Creature> | UnlessPayer$ Player.Opponent +AlternateMode:DoubleFaced +Oracle:At the beginning of your upkeep, any opponent may sacrifice a creature. If no one does, transform Innocent Traveler. + +ALTERNATE + +Name:Malicious Invader +ManaCost:no cost +Colors:black +Types:Creature Vampire +PT:3/3 +K:Flying +S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 2 | IsPresent$ Human.OppCtrl | Description$ CARDNAME gets +2/+0 as long as an opponent controls a Human. +Oracle:Flying\nMalicious Invader gets +2/+0 as long as an opponent controls a Human. diff --git a/forge-gui/res/cardsfolder/upcoming/inspired_idea.txt b/forge-gui/res/cardsfolder/upcoming/inspired_idea.txt new file mode 100644 index 00000000000..f5adfe28c7c --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/inspired_idea.txt @@ -0,0 +1,8 @@ +Name:Inspired Idea +ManaCost:2 U +Types:Sorcery +A:SP$ Draw | NumCards$ 3 | SubAbility$ DBEffect | SpellDescription$ Draw three cards. [Your maximum hand size is reduced by three for the rest of the game.] +SVar:DBEffect:DB$ Effect | StaticAbilities$ ReduceHand | Duration$ Permanent +SVar:ReduceHand:Mode$ Continuous | Affected$ You | RaiseMaxHandSize$ -3 | Description$ Your maximum hand size is reduced by three for the rest of the game. +A:SP$ Draw | Cost$ 3 U U | NumCards$ 3 | PrecostDesc$ Cleave | CostDesc$ {3}{U}{U} | NonBasicSpell$ True | SpellDescription$ (You may cast this spell for its cleave cost. If you do, remove the words in square brackets.) +Oracle:Cleave {3}{U}{U} (You may cast this spell for its cleave cost. If you do, remove the words in square brackets.)\nDraw three cards. [Your maximum hand size is reduced by three for the rest of the game.] diff --git a/forge-gui/res/cardsfolder/upcoming/into_the_night.txt b/forge-gui/res/cardsfolder/upcoming/into_the_night.txt new file mode 100644 index 00000000000..28f74d88108 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/into_the_night.txt @@ -0,0 +1,9 @@ +Name:Into the Night +ManaCost:3 R +Types:Sorcery +A:SP$ DayTime | Value$ Night | SubAbility$ DBDiscard | SpellDescription$ It becomes night. +SVar:DBDiscard:DB$ Discard | AnyNumber$ True | Optional$ True | Mode$ TgtChoose | RememberDiscarded$ True | SubAbility$ DBDraw | StackDescription$ {p:You} discards any number of cards, | SpellDescription$ Discard any number of cards, +SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ Y | SubAbility$ DBCleanup | StackDescription$ then draws that many cards plus one. | SpellDescription$ then draw that many cards plus one. +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:Y:Remembered$Amount.Plus.1 +Oracle:It becomes night. Discard any number of cards, then draw that many cards plus one. diff --git a/forge-gui/res/cardsfolder/upcoming/kessig_wolfrider.txt b/forge-gui/res/cardsfolder/upcoming/kessig_wolfrider.txt new file mode 100644 index 00000000000..02b5aec336c --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/kessig_wolfrider.txt @@ -0,0 +1,9 @@ +Name:Kessig Wolfrider +ManaCost:R +Types:Creature Human Knight +PT:1/2 +K:Menace +A:AB$ Token | Cost$ 2 R T ExileFromGrave<3/Card> | TokenScript$ r_3_2_wolf | StackDescription$ SpellDescription | SpellDescription$ Create a 3/2 red Wolf creature token. +SVar:AIPreference:ExileFromGraveCost$Card +DeckHas:Ability$Token +Oracle:Menace\n{2}{R}, {T}, Exile three cards from your graveyard: Create a 3/2 red Wolf creature token. diff --git a/forge-gui/res/cardsfolder/upcoming/laid_to_rest.txt b/forge-gui/res/cardsfolder/upcoming/laid_to_rest.txt new file mode 100644 index 00000000000..2ba70d54e82 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/laid_to_rest.txt @@ -0,0 +1,10 @@ +Name:Laid to Rest +ManaCost:3 G +Types:Enchantment +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Human.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever a Human you control dies, draw a card. +SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | TriggerZones$ Battlefield | ValidCard$ Creature.YouCtrl+counters_GE1_P1P1 | Execute$ DBGainLife | TriggerDescription$ Whenever a creature you control with a +1/+1 counter on it dies, you gain 2 life. +SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 2 +DeckNeeds:Type$Human & Ability$Counters +DeckHas:Ability$LifeGain +Oracle:Whenever a Human you control dies, draw a card.\nWhenever a creature you control with a +1/+1 counter on it dies, you gain 2 life. diff --git a/forge-gui/res/cardsfolder/upcoming/lantern_bearer_lanterns_lift.txt b/forge-gui/res/cardsfolder/upcoming/lantern_bearer_lanterns_lift.txt new file mode 100644 index 00000000000..9d44901737b --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/lantern_bearer_lanterns_lift.txt @@ -0,0 +1,22 @@ +Name:Lantern Bearer +ManaCost:U +Types:Creature Spirit +PT:1/1 +K:Flying +K:Disturb:2 U +AlternateMode:DoubleFaced +DeckHas:Ability$Graveyard +Oracle:Flying\nDisturb {2}{U} (You may cast this card from your graveyard transformed for its disturb cost.) + +ALTERNATE + +Name:Lanterns' Lift +ManaCost:no cost +Colors:blue +Types:Enchantment Aura +K:Enchant creature +A:SP$ Attach | ValidTgts$ Creature | TgtPrompt$ Select target creature | AILogic$ Pump +S:Mode$ Continuous | Affected$ Card.EnchantedBy | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Flying | Description$ Enchanted creature gets +1/+1 and has flying. +R:Event$ Moved | ValidCard$ Card.Self | Destination$ Graveyard | ReplaceWith$ Exile | Description$ If CARDNAME would be put into a graveyard from anywhere, exile it instead. +SVar:Exile:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Exile | Defined$ ReplacedCard +Oracle:Enchant creature\nEnchanted creature gets +1/+1 and has flying.\nIf Lanterns' Lift would be put into a graveyard from anywhere, exile it instead. diff --git a/forge-gui/res/cardsfolder/upcoming/lantern_flare.txt b/forge-gui/res/cardsfolder/upcoming/lantern_flare.txt new file mode 100644 index 00000000000..a8af859f7e3 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/lantern_flare.txt @@ -0,0 +1,11 @@ +Name:Lantern Flare +ManaCost:1 W +Types:Instant +A:SP$ DealDamage | ValidTgts$ Creature,Planeswalker | TgtPrompt$ Select target creature or planeswalker | NumDmg$ Y | SubAbility$ DBGainLife | SpellDescription$ CARDNAME deals X damage to target creature or planeswalker and you gain X life. [X is the number of creatures you control.] +SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ Y +A:SP$ DealDamage | Cost$ X R W | ValidTgts$ Creature,Planeswalker | TgtPrompt$ Select target creature or planeswalker | NumDmg$ X | PrecostDesc$ Cleave | SubAbility$ DBGainLifeC | CostDesc$ {X}{R}{W} | NonBasicSpell$ True | SpellDescription$ (You may cast this spell for its cleave cost. If you do, remove the words in square brackets.) +SVar:DBGainLifeC:DB$ GainLife | Defined$ You | LifeAmount$ X +SVar:X:Count$xPaid +SVar:Y:Count$TypeYouCtrl.Creature +DeckHas:Ability$LifeGain +Oracle:Cleave {X}{R}{W} (You may cast this spell for its cleave cost. If you do, remove the words in square brackets.)\nLantern Flare deals X damage to target creature or planeswalker and you gain X life. [X is the number of creatures you control.] diff --git a/forge-gui/res/cardsfolder/upcoming/lunar_rejection.txt b/forge-gui/res/cardsfolder/upcoming/lunar_rejection.txt new file mode 100644 index 00000000000..a1e4d1767a7 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/lunar_rejection.txt @@ -0,0 +1,8 @@ +Name:Lunar Rejection +ManaCost:1 U +Types:Instant +A:SP$ ChangeZone | Origin$ Battlefield | Destination$ Hand | ValidTgts$ Creature.Wolf,Creature.Werewolf | TgtPrompt$ Select target Wolf or Werewolf | SubAbility$ DBDraw | SpellDescription$ Return target [Wolf or Werewolf] creature to its owner's hand. +A:SP$ ChangeZone | Cost$ 3 U | Origin$ Battlefield | Destination$ Hand | ValidTgts$ Creature | TgtPrompt$ Select target creature | PrecostDesc$ Cleave | CostDesc$ {3}{U} | NonBasicSpell$ True | SubAbility$ DBDraw | SpellDescription$ (You may cast this spell for its cleave cost. If you do, remove the words in square brackets.) | StackDescription$ Return {c:Targeted} to its owner's hand. +SVar:DBDraw:DB$ Draw | NumCards$ 1 | SpellDescription$ Draw a card. +AI:RemoveDeck:Random +Oracle:Cleave {3}{U} (You may cast this spell for its cleave cost. If you do, remove the words in square brackets.)\nReturn target [Wolf or Werewolf] creature to its owner's hand.\nDraw a card. diff --git a/forge-gui/res/cardsfolder/upcoming/magma_pummeler.txt b/forge-gui/res/cardsfolder/upcoming/magma_pummeler.txt new file mode 100644 index 00000000000..038e0fb97dd --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/magma_pummeler.txt @@ -0,0 +1,15 @@ +Name:Magma Pummeler +ManaCost:X R R +Types:Creature Elemental +PT:0/0 +K:etbCounter:P1P1:X +SVar:X:Count$xPaid +R:Event$ DamageDone | ActiveZones$ Battlefield | ValidTarget$ Card.Self+counters_GE1_P1P1 | ReplaceWith$ Counters | PreventionEffect$ True | AlwaysReplace$ True | Description$ If damage would be dealt to CARDNAME while it has a +1/+1 counter on it, prevent that damage and remove that many +1/+1 counters from it. When one or more counters are removed from Magma Pummeler this way, it deals that much damage to any target. +SVar:Counters:DB$ RemoveCounter | Defined$ ReplacedTarget | CounterType$ P1P1 | CounterNum$ Y | RememberRemoved$ True | SubAbility$ DBImmediateTrigger +SVar:Y:ReplaceCount$DamageAmount +SVar:DBImmediateTrigger:DB$ ImmediateTrigger | Execute$ TrigDamage | SubAbility$ DBCleanup | TriggerDescription$ When one or more counters are removed from CARDNAME this way, it deals that much damage to any target. +SVar:TrigDamage:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ Z +SVar:Z:Count$RememberedSize +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +DeckHas:Ability$Counters +Oracle:Magma Pummeler enters the battlefield with X +1/+1 counters on it.\nIf damage would be dealt to Magma Pummeler while it has a +1/+1 counter on it, prevent that damage and remove that many +1/+1 counters from it. When one or more counters are removed from Magma Pummeler this way, it deals that much damage to any target. diff --git a/forge-gui/res/cardsfolder/upcoming/markov_purifier.txt b/forge-gui/res/cardsfolder/upcoming/markov_purifier.txt new file mode 100644 index 00000000000..2f73ba6b2a3 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/markov_purifier.txt @@ -0,0 +1,11 @@ +Name:Markov Purifier +ManaCost:1 W B +Types:Creature Vampire Cleric +PT:2/3 +K:Lifelink +T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | CheckSVar$ X | SVarCompare$ GE1 | Execute$ TrigDraw | TriggerDescription$ At the beginning of your end step, if you gained life this turn, you may pay {2}. If you do, draw a card. +SVar:TrigDraw:AB$ Draw | Cost$ 2 | NumCards$ 1 | SpellDescription$ Draw a card. +SVar:X:Count$LifeYouGainedThisTurn +DeckHas:Ability$LifeGain +DeckHints:Ability$LifeGain +Oracle:Lifelink\nAt the beginning of your end step, if you gained life this turn, you may pay {2}. If you do, draw a card. diff --git a/forge-gui/res/cardsfolder/upcoming/markov_retribution.txt b/forge-gui/res/cardsfolder/upcoming/markov_retribution.txt new file mode 100644 index 00000000000..6004c6a844c --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/markov_retribution.txt @@ -0,0 +1,10 @@ +Name:Markov Retribution +ManaCost:2 R +Types:Sorcery +A:SP$ Charm | MinCharmNum$ 1 | CharmNum$ 2 | Choices$ DBPumpAll,DBBite +SVar:DBPumpAll:DB$ PumpAll | ValidCards$ Creature.YouCtrl | NumAtt$ +1 | SpellDescription$ Creatures you control get +1/+0 until end of turn. +SVar:DBBite:DB$ Pump | ValidTgts$ Vampire.YouCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target Vampire you control | SubAbility$ SoulsDamage | StackDescription$ None | SpellDescription$ Target Vampire you control deals damage equal to its power to another target creature. +SVar:SoulsDamage:DB$ DealDamage | ValidTgts$ Creature | AILogic$ PowerDmg | TgtPrompt$ Select another target creature | TargetUnique$ True | NumDmg$ X | DamageSource$ ParentTarget | StackDescription$ {c:ParentTarget} deals damage equal to its power to {c:ThisTargetedCard}. +SVar:X:ParentTargeted$CardPower +DeckHints:Type$Vampire +Oracle:Choose one or both —\n• Creatures you control get +1/+0 until end of turn.\n• Target Vampire you control deals damage equal to its power to another target creature. diff --git a/forge-gui/res/cardsfolder/upcoming/markov_waltzer.txt b/forge-gui/res/cardsfolder/upcoming/markov_waltzer.txt new file mode 100644 index 00000000000..589ece30792 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/markov_waltzer.txt @@ -0,0 +1,9 @@ +Name:Markov Waltzer +ManaCost:2 R W +Types:Creature Vampire +PT:1/3 +K:Flying +K:Haste +T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | Execute$ TrigPump | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of combat on your turn, up to two target creatures you control each get +1/+0 until end of turn. +SVar:TrigPump:DB$ Pump | TargetMin$ 0 | TargetMax$ 2 | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select up to two target creatures you control | NumAtt$ +1 +Oracle:Flying, haste\nAt the beginning of combat on your turn, up to two target creatures you control each get +1/+0 until end of turn. diff --git a/forge-gui/res/cardsfolder/upcoming/mirrorhall_mimic_ghastly_mimicry.txt b/forge-gui/res/cardsfolder/upcoming/mirrorhall_mimic_ghastly_mimicry.txt new file mode 100644 index 00000000000..493b98516f8 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/mirrorhall_mimic_ghastly_mimicry.txt @@ -0,0 +1,25 @@ +Name:Mirrorhall Mimic +ManaCost:3 U +Types:Creature Spirit +PT:0/0 +K:ETBReplacement:Copy:DBCopy:Optional +SVar:DBCopy:DB$ Clone | Choices$ Creature.Other | ChoiceTitle$ Choose a creature on the battlefield to copy | AddTypes$ Spirit | SpellDescription$ You may have CARDNAME enter the battlefield as a copy of any creature on the battlefield, except it's an Spirit in addition to its other types. +K:Disturb:3 U U +AlternateMode:DoubleFaced +DeckHas:Ability$Graveyard +Oracle:You may have Mirrorhall Mimic enter the battlefield as a copy of any creature on the battlefield, except it's a Spirit in addition to its other types.\nDisturb {3}{U}{U} (You may cast this card from your graveyard transformed for its disturb cost.) + +ALTERNATE + +Name:Ghastly Mimicry +ManaCost:no cost +Colors:blue +Types:Enchantment Aura +K:Enchant creature +A:SP$ Attach | ValidTgts$ Creature | TgtPrompt$ Select target creature | AILogic$ HighestEvaluation +T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigCopy | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your upkeep, create a token that's a copy of enchanted creature, except it's a Spirit in addition to its other types. +SVar:TrigCopy:DB$ CopyPermanent | Defined$ Enchanted | AddTypes$ Spirit | SpellDescription$ At the beginning of your upkeep, create a token that's a copy of enchanted creature, except it's a Spirit in addition to its other types. +R:Event$ Moved | ValidCard$ Card.Self | Destination$ Graveyard | ReplaceWith$ Exile | Description$ If CARDNAME would be put into a graveyard from anywhere, exile it instead. +SVar:Exile:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Exile | Defined$ ReplacedCard +DeckHas:Ability$Token +Oracle:Enchant creature\nAt the beginning of your upkeep, create a token that's a copy of enchanted creature, except it's a Spirit in addition to its other types.\nIf Ghastly Mimicry would be put into a graveyard from anywhere, exile it instead. diff --git a/forge-gui/res/cardsfolder/upcoming/mischievous_catgeist_catlike_curiosity.txt b/forge-gui/res/cardsfolder/upcoming/mischievous_catgeist_catlike_curiosity.txt new file mode 100644 index 00000000000..0a4f8ebe170 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/mischievous_catgeist_catlike_curiosity.txt @@ -0,0 +1,24 @@ +Name:Mischievous Catgeist +ManaCost:1 U +Types:Creature Cat Spirit +PT:1/1 +T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, draw a card. +SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 +K:Disturb:2 U +AlternateMode:DoubleFaced +DeckHas:Ability$Graveyard +Oracle:Whenever Mischievous Catgeist deals combat damage to a player, draw card.\nDisturb {2}{U} (You may cast this card from your graveyard transformed for its disturb cost.) + +ALTERNATE + +Name:Catlike Curiosity +ManaCost:no cost +Colors:blue +Types:Enchantment Aura +K:Enchant creature +A:SP$ Attach | ValidTgts$ Creature | TgtPrompt$ Select target creature | AILogic$ Pump +T:Mode$ DamageDone | ValidSource$ Card.AttachedBy | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigDraw | TriggerZones$ Battlefield | TriggerDescription$ Whenever enchanted creature deals combat damage to a player, draw a card. +SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 +R:Event$ Moved | ValidCard$ Card.Self | Destination$ Graveyard | ReplaceWith$ Exile | Description$ If CARDNAME would be put into a graveyard from anywhere, exile it instead. +SVar:Exile:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Exile | Defined$ ReplacedCard +Oracle:Enchant creature\nWhenever enchanted creature deals combat damage to a player, draw a card.\nIf Catlike Curiosity would be put into a graveyard from anywhere, exile it instead. diff --git a/forge-gui/res/cardsfolder/upcoming/necroduality.txt b/forge-gui/res/cardsfolder/upcoming/necroduality.txt new file mode 100644 index 00000000000..fafd1818d00 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/necroduality.txt @@ -0,0 +1,9 @@ +Name:Necroduality +ManaCost:3 U +Types:Enchantment +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Zombie.nonToken+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigCopy | TriggerDescription$ Whenever a nontoken Zombie enters the battlefield under your control, create a token that's a copy of that creature. +SVar:TrigCopy:DB$ CopyPermanent | Defined$ TriggeredCard +DeckNeeds:Type$Zombie +DeckHas:Ability$Token +AI:RemoveDeck:Random +Oracle:Whenever a nontoken Zombie enters the battlefield under your control, create a token that's a copy of that creature. diff --git a/forge-gui/res/cardsfolder/upcoming/ollenbock_escort.txt b/forge-gui/res/cardsfolder/upcoming/ollenbock_escort.txt new file mode 100644 index 00000000000..cbcfdb7ecd3 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/ollenbock_escort.txt @@ -0,0 +1,10 @@ +Name:Ollenbock Escort +ManaCost:W +Types:Creature Human Cleric +PT:1/1 +K:Vigilance +A:AB$ Pump | Cost$ Sac<1/CARDNAME> | ValidTgts$ Creature.YouCtrl+counters_GE1_P1P1 | TgtPrompt$ Select target creature you control with a +1/+1 counter on it | KW$ Lifelink & Indestructible | SpellDescription$ Target creature you control with a +1/+1 counter on it gains lifelink and indestructible until end of turn. +AI:RemoveDeck:Random +DeckNeeds:Ability$Counters +DeckHas:Ability$Sacrifice & Ability$LifeGain +Oracle:Vigilance\nSacrifice Ollenbock Escort: Target creature you control with a +1/+1 counter on it gains lifelink and indestructible until end of turn. diff --git a/forge-gui/res/cardsfolder/upcoming/packsong_pup.txt b/forge-gui/res/cardsfolder/upcoming/packsong_pup.txt new file mode 100644 index 00000000000..f1fe271fde8 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/packsong_pup.txt @@ -0,0 +1,12 @@ +Name:Packsong Pup +ManaCost:1 G +Types:Creature Wolf +PT:1/1 +T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | TriggerZones$ Battlefield | IsPresent$ Wolf.Other+YouCtrl,Werewolf.Other+YouCtrl | Execute$ TrigPutCounter | TriggerDescription$ At the beginning of combat on your turn, if you control another Wolf or Werewolf, put a +1/+1 counter on CARDNAME. +SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigGainLife | TriggerDescription$ When CARDNAME dies, you gain life equal to its power. +SVar:TrigGainLife:DB$ GainLife | Defined$ TriggeredCardController | LifeAmount$ X +SVar:X:TriggeredCard$CardPower +DeckHas:Ability$Counters & Ability$LifeGain +DeckNeeds:Type$Wolf|Werewolf +Oracle:At the beginning of combat on your turn, if you control another Wolf or Werewolf, put a +1/+1 counter on Packsong Pup.\nWhen Packsong Pup dies, you gain life equal to its power. diff --git a/forge-gui/res/cardsfolder/upcoming/parasitic_grasp.txt b/forge-gui/res/cardsfolder/upcoming/parasitic_grasp.txt new file mode 100644 index 00000000000..8c805304c94 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/parasitic_grasp.txt @@ -0,0 +1,8 @@ +Name:Parasitic Grasp +ManaCost:1 B +Types:Instant +A:SP$ DealDamage | NumDmg$ 3 | ValidTgts$ Creature.Human | TgtPrompt$ Select target Human creature | SubAbility$ DBGainLife | SpellDescription$ CARDNAME deals 3 damage to target [Human] creature. +SVar:DBGainLife:DB$ GainLife | LifeAmount$ 3 | SpellDescription$ You gain 3 life. +A:SP$ DealDamage | Cost$ 1 B B | NumDmg$ 3 | ValidTgts$ Creature | TgtPrompt$ Select target creature | SubAbility$ DBGainLife | PrecostDesc$ Cleave | CostDesc$ {1}{B}{B} | NonBasicSpell$ True | SpellDescription$ (You may cast this spell for its cleave cost. If you do, remove the words in square brackets.) +DeckHas:Ability$LifeGain +Oracle:Cleave {1}{B}{B} (You may cast this spell for its cleave cost. If you do, remove the words in square brackets.)\nParasitic Grasp deals 3 damage to target [Human] creature. You gain 3 life. diff --git a/forge-gui/res/cardsfolder/upcoming/patchwork_crawler.txt b/forge-gui/res/cardsfolder/upcoming/patchwork_crawler.txt new file mode 100644 index 00000000000..2c3c9a4317a --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/patchwork_crawler.txt @@ -0,0 +1,12 @@ +Name:Patchwork Crawler +ManaCost:1 U +Types:Creature Zombie Horror +PT:1/2 +A:AB$ ChangeZone | Cost$ 2 U | ValidTgts$ Creature.YouOwn | Origin$ Graveyard | Destination$ Exile | TgtPrompt$ Select target creature from your graveyard | SubAbility$ DBCounter | SpellDescription$ Exile target creature from your graveyard and put a +1/+1 counter on CARDNAME. +SVar:DBCounter:DB$ PutCounter | CounterType$ P1P1 | CounterNum$ 1 | Defined$ Self +T:Mode$ ChangesZone | Origin$ Battlefield | ValidCard$ Card.Self | Destination$ Any | Execute$ DBCleanup | Static$ True +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +S:Mode$ Continuous | Affected$ Card.Self | EffectZone$ Battlefield | GainsAbilitiesOf$ Creature.ExiledWithSource | GainsAbilitiesOfZones$ Exile | Description$ CARDNAME has all activated abilities of all creature cards exiled with it. +DeckHas:Ability$Counters & Ability$Graveyard +DeckHints:Ability$Discard +Oracle:{2}{U}: Exile target creature card from your graveyard and put a +1/+1 counter on Patchwork Crawler.\nPatchwork Crawler has all activated abilities of all creature cards exiled with it. diff --git a/forge-gui/res/cardsfolder/upcoming/radiant_grace_radiant_restraints.txt b/forge-gui/res/cardsfolder/upcoming/radiant_grace_radiant_restraints.txt new file mode 100644 index 00000000000..177336131b5 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/radiant_grace_radiant_restraints.txt @@ -0,0 +1,23 @@ +Name:Radiant Grace +ManaCost:W +Types:Enchantment Aura +K:Enchant creature +A:SP$ Attach | ValidTgts$ Creature | AILogic$ Pump +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 1 | AddKeyword$ Vigilance | Description$ Enchanted creature gets +1/+0 and has vigilance. +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.AttachedBy | Execute$ TrigCurse | TriggerDescription$ When enchanted creature dies, return CARDNAME to the battlefield transformed under your control attached to target opponent. +SVar:TrigCurse:DB$ Pump | ValidTgts$ Opponent | TgtPrompt$ Choose a opponent | IsCurse$ True | SubAbility$ DBChangeZone +SVar:DBChangeZone:DB$ ChangeZone | Defined$ CorrectedSelf | Origin$ Graveyard | Destination$ Battlefield | AttachedToPlayer$ ParentTarget | Transformed$ True | GainControl$ True | AILogic$ Curse +AlternateMode:DoubleFaced +Oracle:Enchant creature\nEnchanted creature gets +1/+0 and has vigilance.\nWhen enchanted creature dies, return Radiant Grace to the battlefield transformed under your control attached to target opponent. + +ALTERNATE + +Name:Radiant Restraints +ManaCost:no cost +Colors:white +Types:Enchantment Aura Curse +K:Enchant player +A:SP$ Attach | ValidTgts$ Player | AILogic$ Curse +R:Event$ Moved | ValidCard$ Creature.EnchantedPlayerCtrl | Destination$ Battlefield | ReplaceWith$ ETBTapped | ActiveZones$ Battlefield | Description$ Creatures your opponents control enter the battlefield tapped. +SVar:ETBTapped:DB$ ChangeZone | Origin$ All | Destination$ Battlefield | Tapped$ True | Defined$ ReplacedCard +Oracle:Creatures enchanted player controls enter the battlefield tapped. diff --git a/forge-gui/res/cardsfolder/upcoming/reckless_impulse.txt b/forge-gui/res/cardsfolder/upcoming/reckless_impulse.txt new file mode 100644 index 00000000000..f3289a7a5ab --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/reckless_impulse.txt @@ -0,0 +1,8 @@ +Name:Reckless Impulse +ManaCost:1 R +Types:Sorcery +A:SP$ Dig | Defined$ You | DigNum$ 2 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | Imprint$ True | SubAbility$ DBEffect | StackDescription$ SpellDescription | SpellDescription$ Exile the top two cards of your library. +SVar:DBEffect:DB$ Effect | RememberObjects$ RememberedCard | StaticAbilities$ STPlay | SubAbility$ DBCleanup | ForgetOnMoved$ Exile | Duration$ UntilTheEndOfYourNextTurn | StackDescription$ SpellDescription | SpellDescription$ Until the end of your next turn, you may play those cards. +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:STPlay:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ Until the end of your next turn, you may play the exiled cards. +Oracle:Exile the top two cards of your library. Until the end of your next turn, you may play those cards. diff --git a/forge-gui/res/cardsfolder/upcoming/reclusive_taxidermist.txt b/forge-gui/res/cardsfolder/upcoming/reclusive_taxidermist.txt new file mode 100644 index 00000000000..4d55a7c4807 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/reclusive_taxidermist.txt @@ -0,0 +1,8 @@ +Name:Reclusive Taxidermist +ManaCost:1 G +Types:Creature Human Druid +PT:1/2 +S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 3 | AddToughness$ 2 | IsPresent$ Creature | PresentCompare$ GE4 | PresentZone$ Graveyard | Description$ CARDNAME gets +3/+2 as long as there are four or more creature cards in your graveyard. +A:AB$ Mana | Cost$ T | Produced$ Any | SpellDescription$ Add one mana of any color. +DeckHints:Ability$Graveyard & Ability$Discard +Oracle:Reclusive Taxidermist gets +3/+2 as long as there are four or more creature cards in your graveyard.\n{T}: Add one mana of any color. diff --git a/forge-gui/res/cardsfolder/upcoming/rending_flame.txt b/forge-gui/res/cardsfolder/upcoming/rending_flame.txt new file mode 100644 index 00000000000..e981483e251 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/rending_flame.txt @@ -0,0 +1,6 @@ +Name:Rending Flame +ManaCost:2 R +Types:Instant +A:SP$ DealDamage | ValidTgts$ Creature,Planeswalker | TgtPrompt$ Select target creature or planeswalker | AITgts$ Spirit.OppCtrl | NumDmg$ 5 | SubAbility$ DBDamagePlayer | SpellDescription$ CARDNAME deals 5 damage to target creature or player. If that permanent is a Spirit, CARDNAME also deals 2 damage to that permanent's controller. +SVar:DBDamagePlayer:DB$ DealDamage | Defined$ TargetedController | NumDmg$ 2 | ConditionDefined$ Targeted | ConditionPresent$ Spirit | StackDescription$ If that permanent is a Spirit, CARDNAME also deals 2 damage to that permanent's controller. +Oracle:Rending Flame deals 5 damage to target creature or planeswalker. If that permanent is a Spirit, Rending Flame also deals 2 damage to that permanent's controller. diff --git a/forge-gui/res/cardsfolder/upcoming/resistance_squad.txt b/forge-gui/res/cardsfolder/upcoming/resistance_squad.txt new file mode 100644 index 00000000000..ba74e33c079 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/resistance_squad.txt @@ -0,0 +1,8 @@ +Name:Resistance Squad +ManaCost:2 W +Types:Creature Human Soldier +PT:3/2 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | IsPresent$ Human.Other+YouCtrl | Execute$ TrigDraw | TriggerDescription$ When CARDNAME enters the battlefield, if you control another Human, draw a card. +SVar:TrigDraw:DB$ Draw | NumCards$ 1 +DeckNeeds:Type$Human +Oracle:When Resistance Squad enters the battlefield, if you control another Human, draw a card. diff --git a/forge-gui/res/cardsfolder/upcoming/retrieve.txt b/forge-gui/res/cardsfolder/upcoming/retrieve.txt new file mode 100644 index 00000000000..1aa9072c706 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/retrieve.txt @@ -0,0 +1,7 @@ +Name:Retrieve +ManaCost:2 G +Types:Sorcery +A:SP$ ChangeZone | Origin$ Graveyard | Destination$ Hand | TgtPrompt$ Select up to one target creature card in your graveyard | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Creature.YouOwn | SubAbility$ DBReturn | StackDescription$ SpellDescription | SpellDescription$ Return up to one target creature card +SVar:DBReturn:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Land.YouOwn | TgtPrompt$ Select up to one target noncreature permanent card in your graveyard | SubAbility$ DBExile | StackDescription$ SpellDescription | SpellDescription$ and up to one target noncreature permanent card +SVar:DBExile:DB$ ChangeZone | Origin$ Stack | Destination$ Exile | StackDescription$ SpellDescription | SpellDescription$ to your hand. Exile CARDNAME. +Oracle:Return up to one target creature card and up to one target noncreature permanent card from your graveyard to your hand. Exile Retrieve. diff --git a/forge-gui/res/cardsfolder/upcoming/runebound_wolf.txt b/forge-gui/res/cardsfolder/upcoming/runebound_wolf.txt new file mode 100644 index 00000000000..805cdf38265 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/runebound_wolf.txt @@ -0,0 +1,8 @@ +Name:Runebound Wolf +ManaCost:1 R +Types:Creature Wolf +PT:2/2 +A:AB$ DealDamage | Cost$ 3 R T | NumDmg$ X | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | SpellDescription$ CARDNAME deals damage equal to the number of Wolves and Werewolves you control to target opponent. +SVar:X:Count$Valid Wolf.YouCtrl,Werewolf.YouCtrl +DeckHints:Type$Wolf|Werewolf +Oracle:{3}{R}, {T}: Runebound Wolf deals damage equal to the number of Wolves and Werewolves you control to target opponent. diff --git a/forge-gui/res/cardsfolder/upcoming/sanctify.txt b/forge-gui/res/cardsfolder/upcoming/sanctify.txt new file mode 100644 index 00000000000..f1082f6ec75 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/sanctify.txt @@ -0,0 +1,8 @@ +Name:Sanctify +ManaCost:1 W +Types:Sorcery +A:SP$ Destroy | ValidTgts$ Artifact,Enchantment | TgtPrompt$ Select target artifact or enchantment | SubAbility$ DBGainLife | SpellDescription$ Destroy target artifact or enchantment. You gain 3 life. +SVar:DBGainLife:DB$ GainLife | LifeAmount$ 3 +DeckHas:Ability$LifeGain +AI:RemoveDeck:Random +Oracle:Destroy target artifact or enchantment. You gain 3 life. diff --git a/forge-gui/res/cardsfolder/upcoming/scattered_thoughts.txt b/forge-gui/res/cardsfolder/upcoming/scattered_thoughts.txt new file mode 100644 index 00000000000..3631dbe3f42 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/scattered_thoughts.txt @@ -0,0 +1,6 @@ +Name:Scattered Thoughts +ManaCost:3 U +Types:Instant +A:SP$ Dig | DigNum$ 4 | ChangeNum$ 2 | DestinationZone2$ Graveyard | StackDescription$ SpellDescription | SpellDescription$ Look at the top four cards of your library. Put two of those cards into your hand and the rest into your graveyard. +DeckHas:Ability$Graveyard +Oracle:Look at the top four cards of your library. Put two of those cards into your hand and the rest into your graveyard. diff --git a/forge-gui/res/cardsfolder/upcoming/screaming_swarm.txt b/forge-gui/res/cardsfolder/upcoming/screaming_swarm.txt new file mode 100644 index 00000000000..b532bf245df --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/screaming_swarm.txt @@ -0,0 +1,12 @@ +Name:Screaming Swarm +ManaCost:5 U +Types:Creature Bird Horror +PT:4/4 +K:Flying +Oracle:Flying +T:Mode$ AttackersDeclared | ValidAttackers$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigMill | TriggerDescription$ Whenever you attack with one or more creatures, target player mills that many cards. (To mill a card, a player puts the top card of their library into their graveyard.) +SVar:TrigMill:DB$ Mill | NumCards$ X | ValidTgts$ Player | TgtPrompt$ Choose a player +SVar:X:TriggerObjectsAttackers$Valid Creature.YouCtrl +A:AB$ ChangeZone | Cost$ 2 U | Origin$ Graveyard | Destination$ Library | LibraryPosition$ 1 | ActivationZone$ Graveyard | StackDescription$ SpellDescription | SpellDescription$ Put CARDNAME from your graveyard into your library second from the top. +DeckHas:Ability$Mill & Ability$Graveyard +Oracle:Whenever you attack with one or more creatures, target player mills that many cards. (To mill a card, a player puts the top card of their library into their graveyard.)\n{2}{U}: Put Screaming Swarm from your graveyard into your library second from the top. diff --git a/forge-gui/res/cardsfolder/upcoming/sigardas_imprisonment.txt b/forge-gui/res/cardsfolder/upcoming/sigardas_imprisonment.txt new file mode 100644 index 00000000000..ffc534c6b77 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/sigardas_imprisonment.txt @@ -0,0 +1,11 @@ +Name:Sigarda's Imprisonment +ManaCost:2 W +Types:Enchantment Aura +K:Enchant creature +A:SP$ Attach | ValidTgts$ Creature | TgtPrompt$ Select target creature | AILogic$ Curse +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddHiddenKeyword$ CARDNAME can't attack or block. | Description$ Enchanted creature can't attack or block. +A:AB$ ChangeZone | Cost$ 4 W | Defined$ Enchanted | Origin$ Battlefield | Destination$ Exile | SubAbility$ DBToken | SpellDescription$ Exile enchanted creature. +SVar:DBToken:DB$ Token | TokenScript$ c_a_blood_draw | SpellDescription$ Create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") +SVar:NonStackingAttachEffect:True +DeckHas:Ability$Token & Ability$Sacrifice & Type$Blood +Oracle:Enchant creature\nEnchanted creature can't attack or block.\n{4}{W}: Exile enchanted creature. Create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") diff --git a/forge-gui/res/cardsfolder/upcoming/sigardian_paladin.txt b/forge-gui/res/cardsfolder/upcoming/sigardian_paladin.txt new file mode 100644 index 00000000000..a31376d48aa --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/sigardian_paladin.txt @@ -0,0 +1,10 @@ +Name:Sigardian Paladin +ManaCost:2 G W +Types:Creature Human Knight +PT:4/4 +S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Trample & Lifelink | CheckSVar$ X | Description$ As long as you've put one or more +1/+1 counters on a creature this turn, Sigardian Paladin has trample and lifelink. +SVar:X:Count$CountersAddedThisTurn P1P1 You Creature +A:AB$ Pump | Cost$ 1 G W | ValidTgts$ Creature.YouCtrl+counters_GE1_P1P1 | TgtPrompt$ Select target creature with a +1/+1 counter on it | KW$ Trample & Lifelink | SpellDescription$ Target creature you control with a +1/+1 counter on it gains trample and lifelink until end of turn. +DeckNeeds:Ability$Counters +DeckHas:Ability$LifeGain +Oracle:As long as you've put one or more +1/+1 counters on a creature this turn, Sigardian Paladin has trample and lifelink.\n{1}{G}{W}: Target creature you control with a +1/+1 counter on it gains trample and lifelink until end of turn. diff --git a/forge-gui/res/cardsfolder/upcoming/skull_skaab.txt b/forge-gui/res/cardsfolder/upcoming/skull_skaab.txt new file mode 100644 index 00000000000..81808e83cb0 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/skull_skaab.txt @@ -0,0 +1,10 @@ +Name:Skull Skaab +ManaCost:U B +Types:Creature Zombie +PT:2/2 +K:Exploit +T:Mode$ Exploited | ValidCard$ Creature.nonToken | ValidSource$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever a creature you control exploits a nontoken creature, create a 2/2 black Zombie creature token. +SVar:TrigToken:DB$ Token | TokenScript$ b_2_2_zombie +DeckHas:Ability$Token & Ability$Sacrifice +DeckHints:Keyword$Exploit +Oracle:Exploit (When this creature enters the battlefield, you may sacrifice a creature.)\nWhenever a creature you control exploits a nontoken creature, create a 2/2 black Zombie creature token. diff --git a/forge-gui/res/cardsfolder/upcoming/spiked_ripsaw.txt b/forge-gui/res/cardsfolder/upcoming/spiked_ripsaw.txt new file mode 100644 index 00000000000..c70c48aea79 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/spiked_ripsaw.txt @@ -0,0 +1,9 @@ +Name:Spiked Ripsaw +ManaCost:2 G +Types:Artifact Equipment +S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 3 | AddToughness$ 3 | AddSVar$ AE | Description$ Equipped creature gets +3/+3. +T:Mode$ Attacks | ValidCard$ Creature.EquippedBy | Execute$ TrigPump | TriggerDescription$ Whenever equipped creature attacks, you may sacrifice a Forest. If you do, that creature gains trample until end of turn. +SVar:TrigPump:AB$ Pump | Cost$ Sac<1/Forest> | Defined$ TriggeredAttacker | KW$ Trample +K:Equip:3 +SVar:AE:SVar:HasAttackEffect:TRUE +Oracle:Equipped creature gets +3/+3.\nWhenever equipped creature attacks, you may sacrifice a Forest. If you do, that creature gains trample until end of turn.\nEquip {3} ({3}: Attach to target creature you control. Equip only as a sorcery.) diff --git a/forge-gui/res/cardsfolder/upcoming/strefan_maurer_progenitor.txt b/forge-gui/res/cardsfolder/upcoming/strefan_maurer_progenitor.txt index cd5b95581c2..a1207c697b4 100644 --- a/forge-gui/res/cardsfolder/upcoming/strefan_maurer_progenitor.txt +++ b/forge-gui/res/cardsfolder/upcoming/strefan_maurer_progenitor.txt @@ -8,7 +8,7 @@ SVar:TrigToken:DB$ Token | TokenAmount$ X | TokenScript$ c_a_blood_draw SVar:X:PlayerCountPlayers$HasPropertyLostLifeThisTurn T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigChangeZone | OptionalDecider$ You | TriggerDescription$ Whenever NICKNAME attacks, you may sacrifice two Blood tokens. If you do, you may put a Vampire card from your hand onto the battlefield tapped and attacking. It gains indestructible until end of turn. SVar:TrigChangeZone:AB$ ChangeZone | Cost$ Sac<2/Blood.token/Blood token> | Origin$ Hand | Destination$ Battlefield | SelectPrompt$ You may select a Vampire card from your hand | ChangeType$ Vampire | Tapped$ True | Attacking$ True | RememberChanged$ True | SubAbility$ DBPump -SVar:DBPump:DB$ Pump | Defined$ Self | KW$ Indestructible | SubAbility$ DBCleanup +SVar:DBPump:DB$ Pump | Defined$ Remembered | KW$ Indestructible | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:HasAttackEffect:TRUE DeckHas:Ability$Token & Ability$Sacrifice diff --git a/forge-gui/res/cardsfolder/upcoming/toxrill_the_corrosive.txt b/forge-gui/res/cardsfolder/upcoming/toxrill_the_corrosive.txt new file mode 100644 index 00000000000..701b5bae5cb --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/toxrill_the_corrosive.txt @@ -0,0 +1,14 @@ +Name:Toxrill, the Corrosive +ManaCost:5 B B +Types:Legendary Creature Slug Horror +PT:7/7 +T:Mode$ Phase | Phase$ End of Turn | TriggerZones$ Battlefield | Execute$ TrigCounters | TriggerDescription$ At the beginning of each end step, put a slime counter on each creature you don't control. +SVar:TrigCounters:DB$ PutCounterAll | ValidCards$ Creature.YouDontCtrl | CounterType$ SLIME | CounterNum$ 1 +S:Mode$ Continuous | Affected$ Creature.YouDontCtrl | AffectedZone$ Battlefield | AddPower$ -AffectedX | AddToughness$ -AffectedX | Description$ Creatures you don't control get -1/-1 for each slime counter on them. +SVar:AffectedX:Count$CardCounters.SLIME +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.YouDontCtrl+counters_GE1_SLIME | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever a creature you don't control with a slime counter on it dies, create a 1/1 black Slug creature token. +SVar:TrigToken:DB$ Token | TokenScript$ b_1_1_slug +A:AB$ Draw | Cost$ U B Sac<1/Slug> | NumCards$ 1 | SpellDescription$ Draw a card. +SVar:AIPreference:SacCost$Slug.token +DeckHas:Ability$Counters & Ability$Token & Ability$Sacrifice +Oracle:At the beginning of each end step, put a slime counter on each creature you don't control.\nCreatures you don't control get -1/-1 for each slime counter on them.\nWhenever a creature you don't control with a slime counter on it dies, create a 1/1 black Slug creature token.\n{U}{B}, Sacrifice a Slug: Draw a card. diff --git a/forge-gui/res/cardsfolder/upcoming/twinblade_geist_twinblade_invocation.txt b/forge-gui/res/cardsfolder/upcoming/twinblade_geist_twinblade_invocation.txt new file mode 100644 index 00000000000..8ed31614ff2 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/twinblade_geist_twinblade_invocation.txt @@ -0,0 +1,22 @@ +Name:Twinblade Geist +ManaCost:1 W +Types:Creature Spirit Warrior +PT:1/1 +K:Double strike +K:Disturb:2 W +AlternateMode:DoubleFaced +DeckHas:Ability$Graveyard +Oracle:Double strike\nDisturb {2}{W} (You may cast this card from your graveyard transformed for its disturb cost.) + +ALTERNATE + +Name:Twinblade Invocation +ManaCost:no cost +Colors:white +Types:Enchantment Aura +K:Enchant creature +A:SP$ Attach | ValidTgts$ Creature | TgtPrompt$ Select target creature | AILogic$ Pump +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Double strike | Description$ Enchanted creature has double strike. +R:Event$ Moved | ValidCard$ Card.Self | Destination$ Graveyard | ReplaceWith$ Exile | Description$ If CARDNAME would be put into a graveyard from anywhere, exile it instead. +SVar:Exile:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Exile | Defined$ ReplacedCard +Oracle:Enchant creature\nEnchanted creature has double strike.\nIf Twinblade Invocation would be put into a graveyard from anywhere, exile it instead. diff --git a/forge-gui/res/cardsfolder/upcoming/ulvenwald_oddity_ulvenwald_behemoth.txt b/forge-gui/res/cardsfolder/upcoming/ulvenwald_oddity_ulvenwald_behemoth.txt new file mode 100644 index 00000000000..9d6a23b8831 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/ulvenwald_oddity_ulvenwald_behemoth.txt @@ -0,0 +1,21 @@ +Name:Ulvenwald Oddity +ManaCost:2 G G +Types:Creature Beast +PT:4/4 +K:Trample +K:Haste +A:AB$ SetState | Cost$ 5 G G | Defined$ Self | Mode$ Transform | AILogic$ Always | SpellDescription$ Transform CARDNAME. +AlternateMode:DoubleFaced +Oracle:Trample, haste\n{5}{G}{G}: Transform Ulvenwald Oddity. + +ALTERNATE + +Name:Ulvenwald Behemoth +ManaCost:no cost +Colors:green +Types:Creature Beast Horror +PT:8/8 +K:Trample +K:Haste +S:Mode$ Continuous | Affected$ Creature.YouCtrl+Other | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Trample & Haste | Description$ Other creatures you control get +1/+1 and have trample and haste. +Oracle:Trample, haste\nOther creatures you control get +1/+1 and have trample and haste. diff --git a/forge-gui/res/cardsfolder/upcoming/undead_butler.txt b/forge-gui/res/cardsfolder/upcoming/undead_butler.txt new file mode 100644 index 00000000000..5a5d43dca2e --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/undead_butler.txt @@ -0,0 +1,12 @@ +Name:Undead Butler +ManaCost:1 B +Types:Creature Zombie +PT:1/2 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigMill | TriggerDescription$ When CARDNAME enters the battlefield, mill three cards. (Put the top three cards of your library into your graveyard.) +SVar:TrigMill:DB$ Mill | NumCards$ 3 | Defined$ You +T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Battlefield | Destination$ Graveyard | Execute$ TrigExile | OptionalDecider$ TriggeredCardController | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, you may exile it. When you do, return target creature card from your graveyard to your hand. +SVar:TrigExile:DB$ ChangeZone | Destination$ Exile | Defined$ TriggeredNewCardLKICopy | RememberChanged$ True | SubAbility$ DBImmediateTrig +SVar:DBImmediateTrig:DB$ ImmediateTrigger | Execute$ TrigReturn | ConditionDefined$ Remembered | ConditionPresent$ Card | SubAbility$ DBCleanup | TriggerDescription$ When you do, return target creature card from your graveyard to your hand. +SVar:TrigReturn:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Creature.YouOwn | TgtPrompt$ Select target creature card in your graveyard +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +Oracle:When Undead Butler enters the battlefield, mill three cards. (Put the top three cards of your library into your graveyard.)\nWhen Undead Butler dies, you may exile it. When you do, return target creature card from your graveyard to your hand. diff --git a/forge-gui/res/cardsfolder/upcoming/vilespawn_spider.txt b/forge-gui/res/cardsfolder/upcoming/vilespawn_spider.txt new file mode 100644 index 00000000000..4eb18f5c37d --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/vilespawn_spider.txt @@ -0,0 +1,12 @@ +Name:Vilespawn Spider +ManaCost:G U +Types:Creature Spider +PT:2/3 +K:Reach +T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigMill | TriggerDescription$ At the beginning of your upkeep, mill a card. (Put the top card of your library into your graveyard.) +SVar:TrigMill:DB$ Mill | Defined$ You | NumCards$ 1 +A:AB$ Token | Cost$ 2 G U T Sac<1/CARDNAME> | TokenScript$ g_1_1_insect | TokenAmount$ X | SorcerySpeed$ True | AICheckSVar$ X | AISVarCompare$ GE4 | StackDescription$ {p:You} creates a 1/1 green Insect creature token for each creature card in their graveyard. | SpellDescription$ Create a 1/1 green Insect creature token for each creature card in your graveyard. Activate only as a sorcery. +SVar:X:Count$TypeInYourYard.Creature +DeckHas:Ability$Mill & Ability$Token & Ability$Sacrifice +DeckHints:Ability$Discard +Oracle:Reach\nAt the beginning of your upkeep, mill a card. (Put the top card of your library into your graveyard.)\n{2}{G}{U}, {T}, Sacrifice Vilespawn Spider: Create a 1/1 green Insect creature token for each creature card in your graveyard. Activate only as a sorcery. diff --git a/forge-gui/res/cardsfolder/upcoming/voice_of_the_blessed.txt b/forge-gui/res/cardsfolder/upcoming/voice_of_the_blessed.txt new file mode 100644 index 00000000000..46f428fb2d3 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/voice_of_the_blessed.txt @@ -0,0 +1,11 @@ +Name:Voice of the Blessed +ManaCost:W W +Types:Creature Spirit Cleric +PT:2/2 +T:Mode$ LifeGained | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever you gain life, put a +1/+1 counter on CARDNAME. +SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 +S:Mode$ Continuous | Affected$ Card.Self+counters_GE4_P1P1 | AddKeyword$ Flying & Vigilance | Description$ As long as CARDNAME has four or more +1/+1 counters on it, it has flying and vigilance. +S:Mode$ Continuous | Affected$ Card.Self+counters_GE10_P1P1 | AddKeyword$ Indestructible | Description$ As long as CARDNAME has ten or more +1/+1 counters on it, it has indestructible. +DeckHints:Ability$LifeGain +DeckHas:Ability$Counters +Oracle:Whenever you gain life, put a +1/+1 counter on Voice of the Blessed.\nAs long as Voice of the Blessed has four or more +1/+1 counters on it, it has flying and vigilance.\nAs long as Voice of the Blessed has ten or more +1/+1 counters on it, it has indestructible. diff --git a/forge-gui/res/cardsfolder/upcoming/voltaic_visionary_volt_charged_berserker.txt b/forge-gui/res/cardsfolder/upcoming/voltaic_visionary_volt_charged_berserker.txt new file mode 100644 index 00000000000..59bb7222dcc --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/voltaic_visionary_volt_charged_berserker.txt @@ -0,0 +1,28 @@ +Name:Voltaic Visionary +ManaCost:1 R +Types:Creature Human Wizard +PT:3/1 +A:AB$ DealDamage | Cost$ T | NumDmg$ 2 | Defined$ You | SorcerySpeed$ True | SubAbility$ DBExile | SpellDescription$ CARDNAME deals 2 damage to you. +SVar:DBExile:DB$ Dig | Defined$ You | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | Imprint$ True | SubAbility$ DBEffect | StackDescription$ SpellDescription | SpellDescription$ Exile the top card of your library. +SVar:DBEffect:DB$ Effect | RememberObjects$ RememberedCard | StaticAbilities$ STPlay | SubAbility$ DBCleanup | ForgetOnMoved$ Exile | StackDescription$ SpellDescription | SpellDescription$ You may play that card this turn. Activate only as a sorcery. +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:STPlay:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ You may play the exiled card this turn. +T:Mode$ SpellCast | ValidCard$ Card.IsImprinted | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigTransform | TriggerDescription$ Whenever you play a card exiled with CARDNAME, transform it. +T:Mode$ LandPlayed | ValidCard$ Land.IsImprinted+YouCtrl | Execute$ TrigTransform | TriggerZones$ Battlefield | Secondary$ True | TriggerDescription$ Whenever you play a card exiled with CARDNAME, transform it. +SVar:TrigTransform:DB$ SetState | Defined$ Self | Mode$ Transform +T:Mode$ ChangesZone | Origin$ Battlefield | ValidCard$ Card.Self | Destination$ Any | Execute$ DBClear | Static$ True +SVar:DBClear:DB$ Cleanup | ClearImprinted$ True +T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsImprinted+ExiledWithSource | Execute$ DBForget +SVar:DBForget:DB$ Pump | ForgetImprinted$ TriggeredCard +AlternateMode:DoubleFaced +Oracle:{T}: Voltaic Visionary deals 2 damage to you. Exile the top card of your library. You may play that card this turn. Activate only as a sorcery.\nWhenever you play a card exiled with Voltaic Visionary, transform it. + +ALTERNATE + +Name:Volt-Charged Berserker +ManaCost:no cost +Colors:red +Types:Creature Human Berserker +PT:4/3 +K:CARDNAME can't block. +Oracle:Volt-Charged Berserker can't block. diff --git a/forge-gui/res/cardsfolder/upcoming/wandering_mind.txt b/forge-gui/res/cardsfolder/upcoming/wandering_mind.txt new file mode 100644 index 00000000000..da5868dee0c --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/wandering_mind.txt @@ -0,0 +1,8 @@ +Name:Wandering Mind +ManaCost:1 U R +Types:Creature Horror +PT:2/1 +K:Flying +T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ TrigDig | TriggerDescription$ When CARDNAME enters the battlefield, look at the top six cards of your library. You may reveal a noncreature, nonland card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. +SVar:TrigDig:DB$ Dig | DigNum$ 6 | ChangeNum$ 1 | Optional$ True | ForceRevealToController$ True | ChangeValid$ Card.nonCreature+nonLand | RestRandomOrder$ True +Oracle:Flying\nWhen Wandering Mind enters the battlefield, look at the top six cards of your library. You may reveal a noncreature, nonland card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. diff --git a/forge-gui/res/cardsfolder/upcoming/weaver_of_blossoms_blossom_clad_werewolf.txt b/forge-gui/res/cardsfolder/upcoming/weaver_of_blossoms_blossom_clad_werewolf.txt new file mode 100644 index 00000000000..66dec84cb53 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/weaver_of_blossoms_blossom_clad_werewolf.txt @@ -0,0 +1,19 @@ +Name:Weaver of Blossoms +ManaCost:2 G +Types:Creature Human Werewolf +PT:2/3 +A:AB$ Mana | Cost$ T | Produced$ Any | SpellDescription$ Add one mana of any color. +K:Daybound +AlternateMode:DoubleFaced +Oracle:{T}: Add one mana of any color.\nDaybound (If a player casts no spells during their own turn, it becomes night next turn.) + +ALTERNATE + +Name:Blossom-Clad Werewolf +ManaCost:no cost +Colors:green +Types:Creature Werewolf +PT:3/4 +A:AB$ Mana | Cost$ T | Produced$ Any | Amount$ 2 | SpellDescription$ Add two mana of any one color. +K:Nightbound +Oracle:{T}: Add two mana of any one color.\nNightbound (If a player casts at least two spells during their own turn, it becomes day next turn.) diff --git a/forge-gui/res/cardsfolder/upcoming/wedding_security.txt b/forge-gui/res/cardsfolder/upcoming/wedding_security.txt new file mode 100644 index 00000000000..12c6cc951d9 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/wedding_security.txt @@ -0,0 +1,11 @@ +Name:Wedding Security +ManaCost:3 B B +Types:Creature Vampire Soldier +PT:4/4 +T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigPutCounter | IsPresent$ Blood.token+YouCtrl | TriggerDescription$ Whenever CARDNAME attacks, you may sacrifice a Blood token. If you do, put a +1/+1 counter on CARDNAME and draw a card. +SVar:TrigPutCounter:AB$ PutCounter | Cost$ Sac<1/Blood.token/Blood token> | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ DBDraw +SVar:DBDraw:DB$ Draw | NumCards$ 1 +DeckNeeds:Type$Blood +DeckHas:Ability$Counters & Ability$Sacrifice +SVar:HasAttackEffect:TRUE +Oracle:Whenever Wedding Security attacks, you may sacrifice a Blood token. If you do, put a +1/+1 counter on Wedding Security and draw a card. diff --git a/forge-gui/res/cardsfolder/upcoming/whispering_wizard.txt b/forge-gui/res/cardsfolder/upcoming/whispering_wizard.txt new file mode 100644 index 00000000000..67533617bc2 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/whispering_wizard.txt @@ -0,0 +1,9 @@ +Name:Whispering Wizard +ManaCost:3 U +Types:Creature Human Wizard +PT:3/2 +T:Mode$ SpellCast | ValidCard$ Card.nonCreature | ValidActivatingPlayer$ You | ActivationLimit$ 1 | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever you cast a noncreature spell, create a 1/1 white Spirit creature token with flying. This ability triggers only once each turn. +SVar:TrigToken:DB$ Token | TokenScript$ w_1_1_spirit_flying +SVar:BuffedBy:Card.nonLand+nonCreature +DeckHas:Ability$Token +Oracle:Whenever you cast a noncreature spell, create a 1/1 white Spirit creature token with flying. This ability triggers only once each turn. diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Arcanis the Omnipotent.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Arcanis the Omnipotent.dck new file mode 100644 index 00000000000..98afe6032c5 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Arcanis the Omnipotent.dck @@ -0,0 +1,50 @@ +[metadata] +Name=Arcanis the Omnipotent +[Avatar] +1 Arcanis, the Omnipotent Avatar|VAN +[Main] +1 Angel of Serenity|C15 +1 Azorius Arrester|RTR +1 Azorius Chancery|C13 +1 Azorius Guildgate|C13 +1 Azorius Herald|C13 +1 Azorius Justiciar|RTR +1 Council of the Absolute|DGM +1 Court Hussar|DIS +1 Court Street Denizen|GTC +1 Crystal Seer|GPT +1 Deputy of Acquittals|DGM +1 Faerie Impostor|RTR +1 Hallowed Fountain|RTR +1 Island|RTR|1 +1 Island|RTR|2 +1 Island|RTR|3 +1 Island|RTR|4 +1 Isperia's Skywatch|RTR +1 Keymaster Rogue|GTC +1 Lavinia of the Tenth|DGM +1 Luminate Primordial|GTC +1 Lyev Skyknight|RTR +1 Order of the Stars|GPT +1 Pillar of the Paruns|DIS +1 Plains|RTR|1 +2 Plains|RTR|3 +2 Plains|RTR|5 +1 Prahv, Spires of Order|DIS +1 Realmwright|GTC +1 Sage's Row Denizen|GTC +2 Soulsworn Spirit|RTR +1 Spawnbroker|RAV +1 Transguild Promenade|C13 +1 Urbis Protector|GTC +1 Vedalken Dismisser|RAV +1 Voidwielder|RTR +1 Walking Archive|DIS +[Sideboard] + +[Planes] + +[Schemes] + +[Conspiracy] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Azor's Elocutors.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Azor's Elocutors.dck new file mode 100644 index 00000000000..284c51f22be --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Azor's Elocutors.dck @@ -0,0 +1,40 @@ +[metadata] +Name=Azor's Elocutors +[Main] +1 AEtherize|C15 +1 AEtherling|DGM +1 AEthermage's Touch|C13 +2 Archon of the Triumvirate|RTR +1 Azor's Elocutors|RTR +1 Azorius Chancery|MM2 +1 Azorius Charm|RTR +1 Azorius Cluestone|DGM +1 Azorius Guildgate|C13 +1 Azorius Guildmage|COM +1 Azorius Keyrune|C13 +1 Azorius Signet|ARC +1 Blazing Archon|PD3 +1 Condemn|C14 +1 Devouring Light|M15 +1 Droning Bureaucrats|GPT +1 Grand Arbiter Augustin IV|MMA +1 Hallowed Fountain|EXP +1 Inaction Injunction|RTR +2 Island|C15|1 +2 Island|C15|4 +1 Isperia, Supreme Judge|RTR +1 Jace, Architect of Thought|DDM +1 Lavinia of the Tenth|DGM +1 Lyev Decree|DGM +1 Martial Law|RTR +1 New Prahv Guildmage|RTR +1 Pillar of the Paruns|DIS +3 Plains|C15|1 +1 Plains|C15|3 +1 Prahv, Spires of Order|DIS +1 Soulsworn Jury|DIS +1 Sphinx's Revelation|RTR +1 Thespian's Stage|GTC +1 Transguild Promenade|C13 +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Azorious Detain.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Azorious Detain.dck new file mode 100644 index 00000000000..933f78acd03 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Azorious Detain.dck @@ -0,0 +1,40 @@ +[metadata] +Name=Azorious Detain +[Main] +1 Archon of the Triumvirate|RTR +1 Ascended Lawmage|DGM +1 Azor's Elocutors|RTR +1 Azorius Arrester|RTR +1 Azorius Chancery|C13 +1 Azorius Charm|RTR +1 Azorius Cluestone|DGM +1 Azorius Guildgate|C13 +1 Azorius Guildmage|DIS +1 Azorius Justiciar|RTR +1 Azorius Keyrune|C13 +1 Azorius Signet|DIS +1 Council of the Absolute|DGM +1 Detention Sphere|RTR +1 Fall of the Gavel|RTR +1 Grand Arbiter Augustin IV|DIS +1 Hallowed Fountain|RTR +1 Inaction Injunction|RTR +1 Island|C13|1 +2 Island|C13|3 +1 Island|C13|4 +1 Isperia's Skywatch|RTR +1 Lavinia of the Tenth|DGM +1 Lyev Decree|DGM +1 Lyev Skyknight|RTR +1 Martial Law|RTR +1 New Prahv Guildmage|RTR +1 Pillar of the Paruns|DIS +1 Plains|C13|1 +2 Plains|C13|2 +2 Plains|C13|3 +1 Render Silent|DGM +1 Restore the Peace|DGM +1 Righteous Authority|RTR +1 Soulsworn Spirit|RTR +1 Sphinx's Revelation|RTR +1 Transguild Promenade|C13 diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Azorious Forecast.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Azorious Forecast.dck new file mode 100644 index 00000000000..9e2261f5825 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Azorious Forecast.dck @@ -0,0 +1,41 @@ +[metadata] +Name=Azorious Forecast +[Main] +1 Azorius AEthermage|DIS +1 Azorius Chancery|C13 +1 Azorius Charm|RTR +1 Azorius Cluestone|DGM +1 Azorius Guildgate|C13 +1 Azorius Guildmage|DIS +1 Azorius Herald|C13 +1 Azorius Keyrune|C13 +1 Azorius Ploy|DIS +1 Azorius Signet|DIS +1 Govern the Guildless|DIS +1 Hallowed Fountain|RTR +1 Island|RTR|1 +1 Island|RTR|2 +1 Island|RTR|3 +1 Island|RTR|5 +1 Jelenn Sphinx|DGM +1 Paladin of Prahv|DIS +1 Palliation Accord|DIS +1 Pillar of the Paruns|DIS +1 Plains|RTR|3 +2 Plains|RTR|4 +2 Plains|RTR|5 +1 Plumes of Peace|DIS +1 Prahv, Spires of Order|DIS +1 Pride of the Clouds|DIS +1 Proclamation of Rebirth|DIS +1 Protect // Serve|DGM +1 Search Warrant|RTR +1 Sky Hussar|DIS +1 Skyscribing|C13 +1 Steeling Stance|DIS +1 Supreme Verdict|RTR +1 Transguild Promenade|C13 +1 Uncovered Clues|DGM +1 Windreaver|DIS +1 Wizened Snitches|RAV +1 Writ of Passage|DIS diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Grand Arbiter Augustin IV.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Grand Arbiter Augustin IV.dck new file mode 100644 index 00000000000..b7201e3ce61 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Grand Arbiter Augustin IV.dck @@ -0,0 +1,45 @@ +[metadata] +Name=Grand Arbiter Augustin IV +[Commander] +1 Grand Arbiter Augustin IV|DIS +[Main] +1 Azor's Elocutors|RTR +1 Azorius Chancery|C13 +1 Azorius Charm|RTR +1 Azorius Guildgate|C13 +1 Cancel|KTK +1 Convolute|RAV +1 Dispel|RTR +1 Dovescape|DIS +1 Fall of the Gavel|RTR +1 Frazzle|GPT +1 Hallowed Fountain|RTR +1 Island|C13|1 +1 Island|C13|2 +1 Island|C13|3 +2 Island|C13|4 +1 Judge's Familiar|RTR +1 Mindstatic|DGM +1 Nullstone Gargoyle|RAV +1 Overrule|DIS +1 Pillar of the Paruns|DIS +1 Pithing Needle|RTR +1 Plains|C13|2 +1 Plains|C13|3 +2 Plains|C13|4 +1 Prahv, Spires of Order|DIS +1 Remand|RAV +1 Render Silent|DGM +1 Runeboggle|GPT +1 Scatter Arc|GTC +1 Soulsworn Jury|DIS +1 Spell Rupture|GTC +1 Spell Snare|DIS +1 Sphinx's Revelation|RTR +1 Supreme Verdict|RTR +1 Swift Silence|DIS +1 Syncopate|RTR +1 Transguild Promenade|C13 +1 Walking Archive|DIS +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Isperia the Inscrutable.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Isperia the Inscrutable.dck new file mode 100644 index 00000000000..7eaa4ca3160 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Isperia the Inscrutable.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Isperia the Inscrutable +[Commander] +1 Isperia the Inscrutable|DIS +[Main] +1 Angel of Serenity|C15 +1 Angelic Skirmisher|GTC +1 Archon of the Triumvirate|RTR +1 Ascended Lawmage|DGM +1 Azorius Chancery|C13 +1 Azorius Charm|RTR +1 Azorius Cluestone|DGM +1 Azorius First-Wing|DIS +1 Azorius Guildgate|C13 +1 Azorius Guildmage|DIS +1 Azorius Keyrune|C13 +1 Azorius Signet|DIS +1 Belltower Sphinx|M12 +1 Blazing Archon|RAV +1 Cerulean Sphinx|RAV +1 Concerted Effort|RAV +1 Dovescape|DIS +1 Hallowed Fountain|RTR +1 Island|C13|1 +1 Island|C13|2 +2 Island|C13|4 +1 Jelenn Sphinx|DGM +1 Judge's Familiar|RTR +1 Lyev Skyknight|RTR +1 New Prahv Guildmage|RTR +1 Pillar of the Paruns|DIS +1 Plains|C13|1 +3 Plains|C13|2 +1 Plains|C13|4 +1 Prahv, Spires of Order|DIS +1 Pride of the Clouds|DIS +1 Sky Hussar|DIS +1 Skymark Roc|RTR +1 Transguild Promenade|C13 +1 Vassal Soul|RTR +1 Windreaver|DIS +1 Wizened Snitches|RAV +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Isperia, Supreme Judge.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Isperia, Supreme Judge.dck new file mode 100644 index 00000000000..d367906117f --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Isperia, Supreme Judge.dck @@ -0,0 +1,43 @@ +[metadata] +Name=Isperia, Supreme Judge +[Commander] +1 Isperia, Supreme Judge|RTR +[Main] +1 Ascended Lawmage|DGM +1 Azorius AEthermage|DIS +1 Azorius Chancery|C13 +1 Azorius Charm|RTR +1 Azorius Cluestone|DGM +1 Azorius Guildgate|C13 +1 Azorius Guildmage|DIS +1 Azorius Keyrune|C13 +1 Azorius Signet|DIS +1 Deputy of Acquittals|DGM +1 Dramatic Rescue|RTR +1 Gideon, Champion of Justice|GTC +1 Hallowed Fountain|RTR +1 Inspiration|RTR +5 Island|RTR|4 +1 Jace, Architect of Thought|RTR +1 Jace, the Living Guildpact|M15 +1 Minister of Impediments|DIS +1 New Prahv Guildmage|RTR +1 Ocular Halo|DIS +1 Overrule|DIS +1 Pillar of the Paruns|DIS +1 Plains|RTR|2 +1 Plains|RTR|3 +1 Plains|RTR|4 +1 Plains|RTR|5 +1 Prahv, Spires of Order|DIS +1 Render Silent|DGM +1 Restore the Peace|DGM +1 Righteous Authority|RTR +1 Search Warrant|RTR +1 Sky Hussar|DIS +1 Sphinx's Revelation|RTR +1 Supreme Verdict|RTR +1 Swift Silence|DIS +1 Walking Archive|DIS +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Jace, Architect of Thought.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Jace, Architect of Thought.dck new file mode 100644 index 00000000000..06b00a6e3db --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Jace, Architect of Thought.dck @@ -0,0 +1,33 @@ +[metadata] +Name=Jace Architect of Thought +[Main] +1 AEtherize|C15 +1 AEtherling|DGM +1 AEtherplasm|GPT +1 Belltower Sphinx|M12 +1 Cerulean Sphinx|RAV +1 Conjured Currency|RTR +1 Diluvian Primordial|GTC +1 Dream Leash|RAV +1 Eye of the Storm|RAV +1 Flow of Ideas|RAV +1 Followed Footsteps|RAV +1 Frazzle|GPT +1 Hover Barrier|RTR +3 Island|RAV|1 +1 Island|RAV|2 +7 Island|RAV|3 +4 Island|RAV|4 +1 Jace, Architect of Thought|RTR +1 Leyline of Anticipation|M11 +1 Mindeye Drake|GTC +1 Mnemonic Nexus|RAV +1 Psychic Spiral|RTR +1 Quicken|M14 +1 Remand|RAV +1 Spawnbroker|RAV +1 Telling Time|RAV +1 Tidespout Tyrant|DIS +1 Tunnel Vision|RAV +1 Vertigo Spawn|GPT +1 Wizened Snitches|RAV diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Lavinia of the Tenth.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Lavinia of the Tenth.dck new file mode 100644 index 00000000000..b3536503a84 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/Lavinia of the Tenth.dck @@ -0,0 +1,42 @@ +[metadata] +Name=Lavinia of the Tenth +[Commander] +1 Lavinia of the Tenth|DGM +[Main] +1 Archon of the Triumvirate|RTR +1 Ascended Lawmage|DGM +1 Azor's Elocutors|RTR +1 Azorius Arrester|RTR +1 Azorius Chancery|C13 +1 Azorius Charm|RTR +1 Azorius Cluestone|DGM +1 Azorius Guildgate|C13 +1 Azorius Guildmage|DIS +1 Azorius Justiciar|RTR +1 Azorius Keyrune|C13 +1 Azorius Signet|DIS +1 Detention Sphere|RTR +1 Fall of the Gavel|RTR +1 Hallowed Fountain|RTR +1 Inaction Injunction|RTR +3 Island|C13|1 +1 Island|C13|4 +1 Isperia's Skywatch|RTR +1 Lyev Decree|DGM +1 Lyev Skyknight|RTR +1 Martial Law|RTR +1 New Prahv Guildmage|RTR +1 Pillar of the Paruns|DIS +3 Plains|C13|1 +2 Plains|C13|2 +1 Plumes of Peace|DIS +1 Prahv, Spires of Order|DIS +1 Render Silent|DGM +1 Restore the Peace|DGM +1 Skymark Roc|RTR +1 Soulsworn Spirit|RTR +1 Sphinx's Revelation|RTR +1 Supreme Verdict|RTR +1 Transguild Promenade|C13 +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/_events.txt b/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/_events.txt new file mode 100644 index 00000000000..85e98ea7504 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Azorius Chancery/_events.txt @@ -0,0 +1,9 @@ +Name:Azorious Detain|Deck:Azorious Detain.dck|Variant:None|Avatar:Archon of the Triumvirate|Desc: +Name:Azorious Forecast|Deck:Azorious Forecast.dck|Variant:None|Avatar:Pride of the Clouds|Desc: +Name:Azor's Elocutors|Deck:Azor's Elocutors.dck|Variant:None|Avatar:Azor's Elocutors|Desc: +Name:Grand Arbiter Augustin IV|Deck:Grand Arbiter Augustin IV.dck|Variant:Commander|Avatar:Grand Arbiter Augustin IV|Desc: +Name:Isperia the Inscrutable|Deck:Isperia the Inscrutable.dck|Variant:Commander|Avatar:Isperia the Inscrutable|Desc: +Name:Isperia, Supreme Judge|Deck:Isperia, Supreme Judge.dck|Variant:Commander|Avatar:Isperia, Supreme Judge|Desc: +Name:Lavinia of the Tenth|Deck:Lavinia of the Tenth.dck|Variant:Commander|Avatar:Lavinia of the Tenth|Desc: +Name:Arcanis the Omnipotent|Deck:Arcanis the Omnipotent.dck|Variant:Vanguard|Avatar:Arcanis the Omnipotent|Desc: +Name:Jace, Architect of Thought|Deck:Jace, Architect of Thought.dck|Variant:Planeswalker|Avatar:Jace, Architect of Thought|Desc: \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Agrus Kos, Wojek Veteran.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Agrus Kos, Wojek Veteran.dck new file mode 100644 index 00000000000..c14ecab0e83 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Agrus Kos, Wojek Veteran.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Agrus Kos, Wojek Veteran +[Commander] +1 Agrus Kos, Wojek Veteran|RAV +[Main] +1 Assemble the Legion|GTC +1 Bathe in Light|RAV +1 Boros Charm|C13 +1 Boros Cluestone|C15 +1 Boros Garrison|C15 +1 Boros Guildgate|C15 +1 Boros Guildmage|RAV +1 Boros Keyrune|GTC +1 Boros Reckoner|GTC +1 Boros Signet|C15 +1 Brightflame|RAV +1 Cleansing Beam|RAV +1 Firemane Angel|RAV +1 Foundry Champion|GTC +1 Gleam of Battle|DGM +1 Incite Hysteria|RAV +1 Leave No Trace|RAV +1 Legion's Initiative|DGM +1 Master Warcraft|RAV +1 Mountain|RAV|1 +2 Mountain|RAV|2 +1 Mountain|RAV|3 +1 Pillar of the Paruns|DIS +1 Plains|RAV|2 +3 Plains|RAV|3 +1 Plains|RAV|4 +1 Rally the Righteous|RAV +1 Razia's Purification|RAV +1 Sacred Foundry|RAV +1 Spark Trooper|GTC +1 Sunhome, Fortress of the Legion|RAV +1 Surge of Zeal|RAV +1 Tablet of the Guilds|RTR +1 Transguild Promenade|C13 +1 Wojek Apothecary|RAV +1 Wojek Embermage|RAV +1 Wojek Siren|RAV +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Aurelia, the Warleader.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Aurelia, the Warleader.dck new file mode 100644 index 00000000000..15f7b3ddb01 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Aurelia, the Warleader.dck @@ -0,0 +1,43 @@ +[metadata] +Name=Aurelia, the Warleader +[Commander] +1 Aurelia, the Warleader|V15 +[Main] +1 Angel of Serenity|C15 +1 Angelic Skirmisher|GTC +1 Assemble the Legion|GTC +1 Aurelia's Fury|GTC +1 Boros Battleshaper|DGM +1 Boros Charm|C13 +1 Boros Cluestone|C15 +1 Boros Fury-Shield|RAV +1 Boros Garrison|C15 +1 Boros Guildgate|C15 +1 Boros Guildmage|RAV +1 Boros Keyrune|GTC +1 Boros Recruit|RAV +1 Boros Signet|C15 +1 Boros Swiftblade|RAV +1 Breath of Fury|RAV +1 Fencing Ace|RTR +1 Firemane Avenger|GTC +1 Five-Alarm Fire|GTC +1 Flash Conscription|RAV +1 Gideon, Champion of Justice|GTC +1 Hellraiser Goblin|GTC +1 Legion's Initiative|DGM +1 Mountain|RAV|2 +2 Mountain|RAV|3 +1 Mountain|RAV|4 +1 Ordruun Veteran|GTC +1 Pillar of the Paruns|DIS +3 Plains|RAV|2 +2 Plains|RAV|3 +1 Precinct Captain|RTR +1 Sacred Foundry|RAV +1 Sunhome Enforcer|RAV +1 Sunhome, Fortress of the Legion|RAV +1 Tablet of the Guilds|RTR +1 Transguild Promenade|C13 +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Boros Battalion.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Boros Battalion.dck new file mode 100644 index 00000000000..ca32f13b3cf --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Boros Battalion.dck @@ -0,0 +1,40 @@ +[metadata] +Name=Boros Battalion +[Main] +1 Assemble the Legion|GTC +1 Aurelia's Fury|GTC +1 Bomber Corps|GTC +1 Boros Battleshaper|DGM +1 Boros Charm|C13 +1 Boros Cluestone|C15 +1 Boros Elite|GTC +1 Boros Garrison|C15 +1 Boros Guildgate|C15 +1 Boros Guildmage|RAV +1 Boros Keyrune|GTC +1 Boros Mastiff|DGM +1 Boros Reckoner|GTC +1 Boros Recruit|RAV +1 Boros Signet|C15 +1 Boros Swiftblade|RAV +1 Daring Skyjek|GTC +1 Firefist Striker|GTC +1 Firemane Avenger|GTC +1 Frontline Medic|GTC +1 Legion Loyalist|GTC +1 Legion's Initiative|DGM +1 Mountain|C13|1 +1 Mountain|C13|3 +2 Mountain|C13|4 +1 Nav Squad Commandos|GTC +1 Ordruun Veteran|GTC +1 Pillar of the Paruns|DIS +1 Plains|C13|2 +3 Plains|C13|3 +1 Plains|C13|4 +1 Sacred Foundry|RAV +1 Sunhome, Fortress of the Legion|RAV +1 Tajic, Blade of the Legion|DGM +1 Transguild Promenade|C13 +1 Warmind Infantry|GTC +1 Wojek Halberdiers|GTC diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Boros Radiance.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Boros Radiance.dck new file mode 100644 index 00000000000..689a2500c4a --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Boros Radiance.dck @@ -0,0 +1,38 @@ +[metadata] +Name=Boros Radiance +[Main] +1 Bathe in Light|RAV +1 Boros Charm|C13 +1 Boros Cluestone|C15 +1 Boros Fury-Shield|RAV +1 Boros Garrison|C15 +1 Boros Guildgate|C15 +1 Boros Guildmage|RAV +1 Boros Keyrune|GTC +1 Boros Recruit|RAV +1 Boros Signet|C15 +1 Boros Swiftblade|RAV +1 Brightflame|RAV +1 Cleansing Beam|RAV +1 Flame-Kin Zealot|RAV +1 Incite Hysteria|RAV +1 Leave No Trace|RAV +1 Lightning Helix|RAV +2 Mountain|RAV|1 +2 Mountain|RAV|4 +1 Pillar of the Paruns|DIS +2 Plains|RAV|2 +1 Plains|RAV|3 +2 Plains|RAV|4 +2 Rally the Righteous|RAV +1 Razia's Purification|RAV +1 Sacred Foundry|RAV +1 Skyknight Legionnaire|RAV +1 Sunhome Enforcer|RAV +1 Sunhome, Fortress of the Legion|RAV +1 Surge of Zeal|RAV +1 Thundersong Trumpeter|RAV +1 Transguild Promenade|C13 +1 Wojek Apothecary|RAV +1 Wojek Embermage|RAV +1 Wojek Siren|RAV diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Coin Flip.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Coin Flip.dck new file mode 100644 index 00000000000..5ad83ab77e1 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Coin Flip.dck @@ -0,0 +1,45 @@ +[metadata] +Name=Coin Flip +[Main] +1 Abrupt Decay|RTR +1 Advent of the Wurm|DGM +1 Assassin's Strike|RTR +1 Axebane Guardian|RTR +1 Birds of Paradise|M12 +1 Blood Crypt|EXP +1 Breeding Pool|EXP +1 Chromatic Lantern|RTR +1 Culling Sun|GPT +1 Disembowel|RAV +1 Dreadbore|RTR +1 Forest|RTR|2 +1 Gaze of Granite|DGM +1 Godless Shrine|EXP +1 Hallowed Fountain|EXP +1 Hour of Reckoning|COM +1 Killing Glare|GTC +1 Molten Sentry|RAV +1 Mortify|CNS +1 Odds // Ends|DIS +1 Overgrown Tomb|EXP +1 Pillar of the Paruns|DIS +1 Plains|RTR|3 +1 Putrefy|C15 +1 Ral Zarek|DGM +1 Sacred Foundry|EXP +1 Spectral Searchlight|CNS +1 Sphinx's Revelation|RTR +1 Steam Vents|EXP +1 Stitch in Time|GPT +1 Stomping Ground|EXP +1 Supreme Verdict|RTR +1 Swamp|RTR|5 +1 Tavern Swindler|DDM +1 Temple Garden|EXP +1 Thespian's Stage|GTC +1 Ultimate Price|DTK +1 Volatile Rig|RTR +1 Watery Grave|EXP +1 Wrecking Ball|MM2 +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Gideon, Champion of Justice.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Gideon, Champion of Justice.dck new file mode 100644 index 00000000000..50b7db94520 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Gideon, Champion of Justice.dck @@ -0,0 +1,33 @@ +[metadata] +Name=Gideon, Champion of Justice +[Main] +1 Angel of Serenity|C15 +1 Angelic Skirmisher|GTC +1 Arrest|RTR +1 Blazing Archon|RAV +1 Brace for Impact|DIS +1 Concerted Effort|RAV +1 Condemn|C14 +1 Fencing Ace|RTR +1 Gideon, Champion of Justice|GTC +1 Guardian of the Guildpact|DIS +1 Holy Mantle|GTC +1 Knight Watch|GTC +1 Knightly Valor|ORI +1 Leyline of Sanctity|M11 +1 Loxodon Gatekeeper|RAV +1 Martial Law|RTR +1 Mistral Charger|DIS +1 Murder Investigation|ORI +1 Oathsworn Giant|RAV +1 Order of the Stars|GPT +1 Paladin of Prahv|DIS +1 Peregrine Mask|RAV +2 Plains|C15|1 +6 Plains|C15|2 +2 Plains|C15|3 +5 Plains|C15|4 +1 Precinct Captain|RTR +1 Security Blockade|RTR +1 Sphere of Safety|RTR +1 Steeple Roc|DGM diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Krenko, Mob Boss.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Krenko, Mob Boss.dck new file mode 100644 index 00000000000..59d5095c6a7 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Krenko, Mob Boss.dck @@ -0,0 +1,36 @@ +[metadata] +Name=Krenko, Mob Boss +[Commander] +1 Krenko, Mob Boss|M13 +[Main] +1 Five-Alarm Fire|GTC +1 Foundry Street Denizen|M15 +1 Frenzied Goblin|M15 +1 Goblin Fire Fiend|RAV +1 Goblin Glory Chaser|ORI +1 Goblin Rally|RTR +1 Goblin Spelunkers|RAV +1 Guild Feud|RTR +1 Guttersnipe|C13 +1 Hellraiser Goblin|GTC +1 Krenko's Command|M13 +1 Krenko's Enforcer|M15 +1 Legion Loyalist|GTC +1 Lobber Crew|RTR +1 Mark for Death|GTC +1 Mizzium Mortars|C15 +3 Mountain|M15|1 +3 Mountain|M15|2 +3 Mountain|M15|3 +6 Mountain|M15|4 +1 Pyrewild Shaman|DGM +1 Rabble-Rouser|GPT +1 Riot Piker|DGM +1 Skinbrand Goblin|GTC +1 Skullcrack|GTC +1 Stoke the Flames|M15 +1 Survey the Wreckage|RTR +1 Utvara Scalper|DIS +1 War-Torch Goblin|RAV +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Serra Angel.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Serra Angel.dck new file mode 100644 index 00000000000..46265dd929e --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Serra Angel.dck @@ -0,0 +1,49 @@ +[metadata] +Name=Serra Angel +[Avatar] +1 Serra Angel Avatar|VAN|1 +[Main] +1 Assemble the Legion|GTC +1 Aurelia's Fury|GTC +1 Aurelia, the Warleader|GTC +1 Boros Cluestone|C15 +1 Boros Garrison|C15 +1 Boros Guildgate|C15 +1 Boros Keyrune|GTC +1 Boros Signet|C15 +1 Brightflame|RAV +1 Condemn|C14 +1 Firemane Angel|RAV +1 Firemane Avenger|GTC +1 Flash Conscription|RAV +1 Foundry Champion|GTC +1 Legion's Initiative|DGM +1 Lightning Helix|RAV +1 Master Warcraft|RAV +2 Mountain|RAV|1 +1 Mountain|RAV|2 +1 Mountain|RAV|4 +1 Pillar of the Paruns|DIS +2 Plains|RAV|1 +3 Plains|RAV|4 +1 Razia's Purification|RAV +1 Sacred Foundry|RAV +1 Searing Meditation|RAV +1 Skullcrack|GTC +1 Spark Trooper|GTC +1 Storm Herd|GPT +1 Sunhome Enforcer|RAV +1 Sunhome, Fortress of the Legion|RAV +1 Swift Justice|RTR +1 Tajic, Blade of the Legion|DGM +1 Trained Caracal|RTR +1 Transguild Promenade|C13 +1 Warleader's Helix|DGM +[Sideboard] + +[Planes] + +[Schemes] + +[Conspiracy] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Tajic, Blade of the Legion.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Tajic, Blade of the Legion.dck new file mode 100644 index 00000000000..3ee8c083465 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/Tajic, Blade of the Legion.dck @@ -0,0 +1,42 @@ +[metadata] +Name=Tajic, Blade of the Legion +[Commander] +1 Tajic, Blade of the Legion|DGM +[Main] +1 Assemble the Legion|GTC +1 Aurelia's Fury|GTC +1 Bomber Corps|GTC +1 Boros Charm|C13 +1 Boros Cluestone|C15 +1 Boros Elite|GTC +1 Boros Garrison|C15 +1 Boros Guildgate|C15 +1 Boros Guildmage|RAV +1 Boros Keyrune|GTC +1 Boros Mastiff|DGM +1 Boros Signet|C15 +1 Daring Skyjek|GTC +1 Firefist Striker|GTC +1 Firemane Avenger|GTC +1 Frontline Medic|GTC +1 Legion Loyalist|GTC +1 Legion's Initiative|DGM +1 Lightning Helix|RAV +1 Martial Glory|GTC +1 Master Warcraft|RAV +1 Mountain|RTR|2 +3 Mountain|RTR|5 +1 Nav Squad Commandos|GTC +1 Ordruun Veteran|GTC +1 Pillar of the Paruns|DIS +1 Plains|RTR|4 +4 Plains|RTR|5 +1 Sacred Foundry|RAV +1 Sunforger|RAV +1 Sunhome, Fortress of the Legion|RAV +1 Tablet of the Guilds|RTR +1 Warleader's Helix|DGM +1 Warmind Infantry|GTC +1 Wojek Halberdiers|GTC +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/_events.txt b/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/_events.txt new file mode 100644 index 00000000000..3fe750e4c67 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Boros Garrison/_events.txt @@ -0,0 +1,9 @@ +Name:Boros Battalion|Deck:Boros Battalion.dck|Variant:None|Avatar:Firemane Avenger|Desc: +Name:Boros Radiance|Deck:Boros Radiance.dck|Variant:None|Avatar:Wojek Embermage|Desc: +Name:Coin Flip|Deck:Coin Flip.dck|Variant:None|Avatar:Volatile Rig|Desc: +Name:Agrus Kos, Wojek Veteran|Deck:Agrus Kos, Wojek Veteran.dck|Variant:Commander|Avatar:Agrus Kos, Wojek Veteran|Desc: +Name:Aurelia, the Warleader|Deck:Aurelia, the Warleader.dck|Variant:Commander|Avatar:Aurelia, the Warleader|Desc: +Name:Krenko, Mob Boss|Deck:Krenko, Mob Boss.dck|Variant:Commander|Avatar:Krenko, Mob Boss|Desc: +Name:Tajic, Blade of the Legion|Deck:Tajic, Blade of the Legion.dck|Variant:Commander|Avatar:Tajic, Blade of the Legion|Desc: +Name:Serra Angel|Deck:Serra Angel.dck|Variant:Vanguard|Avatar:Serra Angel|Desc: +Name:Gideon, Champion of Justice|Deck:Gideon, Champion of Justice.dck|Variant:Planeswalker|Avatar:Gideon, Champion of Justice|Desc: \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Circu, Dimir Lobotomist.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Circu, Dimir Lobotomist.dck new file mode 100644 index 00000000000..21f04a5d662 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Circu, Dimir Lobotomist.dck @@ -0,0 +1,45 @@ +[metadata] +Name=Circu, Dimir Lobotomist +[Commander] +1 Circu, Dimir Lobotomist|RAV +[Main] +1 Balustrade Spy|GTC +1 Bloodletter Quill|RAV +1 Call of the Nightwing|GTC +1 Clutch of the Undercity|RAV +1 Coerced Confession|GTC +1 Consuming Aberration|GTC +1 Dimir Aqueduct|PC2 +1 Dimir Charm|GTC +1 Dimir Cluestone|DGM +1 Dimir Guildgate|C13 +1 Dimir Guildmage|RAV +1 Dimir Keyrune|GTC +1 Dimir Signet|RAV +1 Duskmantle Guildmage|GTC +1 Duskmantle Seer|GTC +1 Duskmantle, House of Shadow|RAV +1 Extract from Darkness|CNS +1 Glimpse the Unthinkable|RAV +1 Grisly Spectacle|GTC +1 Induce Paranoia|RAV +2 Island|PC2|1 +1 Island|PC2|2 +1 Island|PC2|3 +1 Island|PC2|4 +1 Mind Grind|GTC +1 Mirko Vosk, Mind Drinker|DGM +1 Perplex|RAV +1 Pilfered Plans|DGM +1 Pillar of the Paruns|DIS +1 Psychic Drain|RAV +1 Psychic Spiral|RTR +1 Psychic Strike|GTC +2 Swamp|PC2|1 +1 Swamp|PC2|2 +1 Swamp|PC2|4 +1 Tablet of the Guilds|RTR +1 Transguild Promenade|C13 +1 Watery Grave|RAV +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Defender Mill.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Defender Mill.dck new file mode 100644 index 00000000000..94b0c2ee980 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Defender Mill.dck @@ -0,0 +1,45 @@ +[metadata] +Name=Defender Mill +[Main] +1 Axebane Guardian|RTR +1 Basilica Guards|GTC +1 Benevolent Ancestor|RAV +1 Blood Crypt|EXP +1 Breeding Pool|EXP +1 Carven Caryatid|RAV +1 Clinging Anemones|GTC +1 Corpse Blockade|GTC +1 Doorkeeper|RTR +1 Drift of Phantasms|RAV +1 Gatecreeper Vine|DDM +1 Godless Shrine|EXP +1 Grozoth|RAV +1 Hallowed Fountain|EXP +1 Hired Torturer|DGM +1 Hover Barrier|RTR +1 Island|RAV|3 +1 Junktroller|RAV +1 Lobber Crew|RTR +1 Molten Sentry|RAV +1 Murmuring Phantasm|DGM +1 Order of the Stars|GPT +1 Overgrown Tomb|EXP +1 Peregrine Mask|RAV +1 Pillar of the Paruns|DIS +1 Plains|RAV|1 +1 Sacred Foundry|EXP +1 Slithering Shade|DIS +1 Souls of the Faultless|GPT +1 Sprouting Phytohydra|DIS +1 Steam Vents|EXP +1 Stoic Ephemera|DIS +1 Stomping Ground|EXP +1 Swamp|RAV|3 +1 Temple Garden|EXP +1 Thespian's Stage|GTC +1 Vertigo Spawn|GPT +1 Wakestone Gargoyle|CNS +1 Walking Archive|DIS +1 Watery Grave|EXP +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Dimir Cipher.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Dimir Cipher.dck new file mode 100644 index 00000000000..aec4d1f61ce --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Dimir Cipher.dck @@ -0,0 +1,40 @@ +[metadata] +Name=Dimir Cipher +[Main] +1 Call of the Nightwing|GTC +1 Consuming Aberration|GTC +1 Deathcult Rogue|GTC +1 Dimir Aqueduct|PC2 +1 Dimir Charm|GTC +1 Dimir Cluestone|DGM +1 Dimir Guildgate|C13 +1 Dimir Guildmage|RAV +1 Dimir Infiltrator|PC2 +1 Dimir Keyrune|GTC +1 Dimir Signet|RAV +1 Duskmantle Seer|GTC +1 Duskmantle, House of Shadow|RAV +1 Hands of Binding|GTC +1 Hidden Strings|DGM +3 Island|PC2|1 +1 Island|PC2|3 +1 Island|PC2|4 +1 Keymaster Rogue|GTC +1 Last Thoughts|GTC +1 Mental Vapors|GTC +1 Midnight Recovery|GTC +1 Nightveil Specter|GTC +1 Paranoid Delusions|GTC +1 Pillar of the Paruns|DIS +1 Rogue's Passage|C15 +1 Shadow Slice|GTC +1 Soul Ransom|GTC +1 Stolen Identity|GTC +1 Swamp|PC2|3 +1 Swamp|PC2|4 +2 Swamp|PC2|5 +1 Trait Doctoring|DGM +1 Undercity Plague|GTC +1 Voidwalk|GTC +1 Watery Grave|RAV +1 Whispering Madness|GTC \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Dimir Mill.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Dimir Mill.dck new file mode 100644 index 00000000000..0450732786a --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Dimir Mill.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Dimir Mill +[Main] +1 Balustrade Spy|GTC +1 Belltower Sphinx|M12 +1 Cerulean Sphinx|RAV +1 Chronic Flooding|RTR +1 Codex Shredder|RTR +1 Coerced Confession|GTC +1 Consuming Aberration|GTC +1 Dark Confidant|MM2 +1 Dimir Aqueduct|MM2 +1 Dimir Charm|GTC +1 Dimir Guildgate|C13 +1 Dimir Machinations|RAV +1 Duskmantle Guildmage|GTC +1 Duskmantle Seer|GTC +1 Duskmantle, House of Shadow|RAV +1 Extract from Darkness|CNS +1 Glimpse the Unthinkable|RAV +1 Island|C13|1 +1 Island|C13|3 +1 Island|C13|4 +1 Lazav, Dimir Mastermind|GTC +1 Leyline of the Void|M11 +1 Mind Grind|GTC +1 Mindeye Drake|GTC +1 Mirko Vosk, Mind Drinker|DGM +1 Pillar of the Paruns|DIS +1 Psychic Drain|RAV +1 Psychic Spiral|RTR +1 Rogue's Passage|C15 +1 Sins of the Past|RAV +1 Swamp|C13|1 +1 Swamp|C13|3 +2 Swamp|C13|4 +1 Szadek, Lord of Secrets|COM +1 Thespian's Stage|GTC +1 Transguild Promenade|C13 +1 Tunnel Vision|RAV +1 Undercity Informer|GTC +1 Watery Grave|EXP +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Dimir Transmute.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Dimir Transmute.dck new file mode 100644 index 00000000000..9ea58541ccb --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Dimir Transmute.dck @@ -0,0 +1,39 @@ +[metadata] +Name=Dimir Transmute +[Main] +1 Brainspoil|RAV +1 Clutch of the Undercity|RAV +1 Consult the Necrosages|RAV +1 Dimir Aqueduct|PC2 +1 Dimir Charm|GTC +1 Dimir Cluestone|DGM +1 Dimir Guildgate|C13 +1 Dimir Guildmage|RAV +1 Dimir House Guard|RAV +1 Dimir Infiltrator|PC2 +1 Dimir Keyrune|GTC +1 Dimir Machinations|RAV +1 Dimir Signet|RAV +1 Dizzy Spell|RAV +1 Drift of Phantasms|RAV +1 Duskmantle, House of Shadow|RAV +1 Ethereal Usher|RAV +1 Far // Away|DGM +1 Grozoth|RAV +1 Haunter of Nightveil|DGM +1 Island|RAV|1 +3 Island|RAV|2 +1 Island|RAV|4 +1 Lurking Informant|RAV +1 Moroii|RAV +1 Muddle the Mixture|RAV +1 Netherborn Phalanx|RAV +1 Perplex|RAV +1 Pillar of the Paruns|DIS +1 Psychic Drain|RAV +1 Shred Memory|RAV +1 Swamp|RAV|1 +3 Swamp|RAV|3 +1 Transguild Promenade|C13 +1 Warped Physique|DGM +1 Watery Grave|RAV diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Lazav, Dimir Mastermind.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Lazav, Dimir Mastermind.dck new file mode 100644 index 00000000000..63ff719feda --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Lazav, Dimir Mastermind.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Lazav, Dimir Mastermind +[Commander] +1 Lazav, Dimir Mastermind|GTC +[Main] +1 Assassin's Strike|RTR +1 Balustrade Spy|GTC +1 Belltower Sphinx|M12 +1 Codex Shredder|RTR +1 Coerced Confession|GTC +1 Consuming Aberration|GTC +1 Destroy the Evidence|RTR +1 Dimir Aqueduct|PC2 +1 Dimir Charm|GTC +1 Dimir Cluestone|DGM +1 Dimir Guildgate|C13 +1 Dimir Guildmage|RAV +1 Dimir Keyrune|GTC +1 Dimir Signet|RAV +1 Duskmantle Guildmage|GTC +1 Duskmantle, House of Shadow|RAV +1 Extract from Darkness|CNS +1 Glimpse the Unthinkable|RAV +1 Grisly Spectacle|GTC +1 Island|RAV|1 +1 Island|RAV|2 +2 Island|RAV|4 +1 Killing Glare|GTC +1 Mind Grind|GTC +1 Mindeye Drake|GTC +1 Paranoid Delusions|GTC +1 Pilfered Plans|DGM +1 Psychic Drain|RAV +1 Psychic Spiral|RTR +1 Psychic Strike|GTC +2 Swamp|RAV|1 +1 Swamp|RAV|2 +2 Swamp|RAV|4 +1 Tablet of the Guilds|RTR +1 Transguild Promenade|C13 +1 Ultimate Price|DTK +1 Watery Grave|RAV +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Mirko Vosk, Mind Drinker.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Mirko Vosk, Mind Drinker.dck new file mode 100644 index 00000000000..fd65e1d5bbc --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Mirko Vosk, Mind Drinker.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Mirko Vosk, Mind Drinker +[Commander] +1 Mirko Vosk, Mind Drinker|DGM +[Main] +1 Balustrade Spy|GTC +1 Chronic Flooding|RTR +1 Codex Shredder|RTR +1 Coerced Confession|GTC +1 Consuming Aberration|GTC +1 Crosstown Courier|RTR +1 Destroy the Evidence|RTR +1 Dimir Aqueduct|PC2 +1 Dimir Charm|GTC +1 Dimir Cluestone|DGM +1 Dimir Guildgate|C13 +1 Dimir Guildmage|RAV +1 Dimir Keyrune|GTC +1 Dimir Signet|RAV +1 Doorkeeper|RTR +1 Duskmantle Guildmage|GTC +1 Duskmantle Seer|GTC +1 Duskmantle, House of Shadow|RAV +1 Extract from Darkness|CNS +1 Glimpse the Unthinkable|RAV +1 Grisly Spectacle|GTC +2 Island|RAV|1 +2 Island|RAV|3 +1 Island|RAV|4 +1 Mind Grind|GTC +1 Paranoid Delusions|GTC +1 Pilfered Plans|DGM +1 Pillar of the Paruns|DIS +1 Psychic Drain|RAV +1 Psychic Strike|GTC +1 Sage's Row Denizen|GTC +1 Swamp|RAV|1 +2 Swamp|RAV|2 +1 Swamp|RAV|4 +1 Tablet of the Guilds|RTR +1 Transguild Promenade|C13 +1 Watery Grave|RAV +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Royal Assassin.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Royal Assassin.dck new file mode 100644 index 00000000000..5171a8892f8 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Royal Assassin.dck @@ -0,0 +1,51 @@ +[metadata] +Name=Royal Assassin +[Avatar] +1 Royal Assassin Avatar|VAN|1 +[Main] +1 Bane Alley Broker|GTC +1 Circu, Dimir Lobotomist|RAV +1 Consult the Necrosages|RAV +1 Consuming Aberration|GTC +1 Dark Confidant|RAV +1 Dimir Aqueduct|PC2 +1 Dimir Charm|GTC +1 Dimir Cutpurse|RAV +1 Dimir Doppelganger|RAV +1 Dimir Guildgate|C13 +1 Dimir Infiltrator|PC2 +1 Duskmantle Guildmage|GTC +1 Duskmantle Seer|GTC +1 Duskmantle, House of Shadow|RAV +1 Glimpse the Unthinkable|RAV +1 Island|RAV|1 +1 Island|RAV|2 +1 Island|RAV|3 +1 Island|RAV|4 +1 Lurking Informant|RAV +1 Mind Grind|GTC +1 Mindleech Mass|RAV +1 Mirko Vosk, Mind Drinker|DGM +1 Nightveil Specter|GTC +1 Notion Thief|DGM +1 Paranoid Delusions|GTC +1 Perplex|RAV +1 Pilfered Plans|DGM +1 Pillar of the Paruns|DIS +1 Psychic Drain|RAV +1 Psychic Strike|GTC +1 Rogue's Passage|C15 +1 Soul Ransom|GTC +3 Swamp|RAV|2 +1 Swamp|RAV|4 +1 Transguild Promenade|C13 +1 Warped Physique|DGM +1 Watery Grave|RAV +[Sideboard] + +[Planes] + +[Schemes] + +[Conspiracy] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Szadek, Lord of Secrets.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Szadek, Lord of Secrets.dck new file mode 100644 index 00000000000..c20fa0d4924 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/Szadek, Lord of Secrets.dck @@ -0,0 +1,43 @@ +[metadata] +Name=Szadek, Lord of Secrets +[Commander] +1 Szadek, Lord of Secrets|RAV +[Main] +1 Codex Shredder|RTR +1 Coerced Confession|GTC +1 Consuming Aberration|GTC +1 Dimir Aqueduct|PC2 +1 Dimir Charm|GTC +1 Dimir Cluestone|DGM +1 Dimir Cutpurse|RAV +1 Dimir Guildgate|C13 +1 Dimir Guildmage|RAV +1 Dimir Keyrune|GTC +1 Dimir Signet|RAV +1 Duskmantle Guildmage|GTC +1 Duskmantle, House of Shadow|RAV +1 Extract from Darkness|CNS +1 Glimpse the Unthinkable|RAV +1 Island|C13|1 +3 Island|C13|2 +1 Island|C13|4 +1 Mind Grind|GTC +1 Nightveil Specter|GTC +1 Notion Thief|DGM +1 Paranoid Delusions|GTC +1 Pilfered Plans|DGM +1 Pillar of the Paruns|DIS +1 Psychic Drain|RAV +1 Psychic Strike|GTC +1 Reap Intellect|DGM +1 Sage's Row Denizen|GTC +1 Soul Ransom|GTC +2 Swamp|C13|2 +2 Swamp|C13|4 +1 Tablet of the Guilds|RTR +1 Transguild Promenade|C13 +1 Vedalken Entrancer|M13 +1 Watery Grave|RAV +1 Whispering Madness|GTC +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/_events.txt b/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/_events.txt new file mode 100644 index 00000000000..becc8c1532f --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Dimir Aqueduct/_events.txt @@ -0,0 +1,9 @@ +Name:Dimir Cipher|Deck:Dimir Cipher.dck|Variant:None|Avatar:Stolen Identity|Desc: +Name:Dimir Mill|Deck:Dimir Mill.dck|Variant:None|Avatar:Belltower Sphinx|Desc: +Name:Dimir Transmute|Deck:Dimir Transmute.dck|Variant:None|Avatar:Dimir House Guard|Desc: +Name:Defender Mill|Deck:Defender Mill.dck|Variant:None|Avatar:Doorkeeper|Desc: +Name:Circu, Dimir Lobotomist|Deck:Circu, Dimir Lobotomist.dck|Variant:Commander|Avatar:Circu, Dimir Lobotomist|Desc: +Name:Lazav, Dimir Mastermind|Deck:Lazav, Dimir Mastermind.dck|Variant:Commander|Avatar:Lazav, Dimir Mastermind|Desc: +Name:Mirko Vosk, Mind Drinker|Deck:Mirko Vosk, Mind Drinker.dck|Variant:Commander|Avatar:Mirko Vosk, Mind Drinker|Desc: +Name:Szadek, Lord of Secrets|Deck:Szadek, Lord of Secrets.dck|Variant:Commander|Avatar:Szadek, Lord of Secrets|Desc: +Name:Royal Assassin|Deck:Royal Assassin.dck|Variant:Vanguard|Avatar:Royal Assassin|Desc: \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/Golgari Dredge.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/Golgari Dredge.dck new file mode 100644 index 00000000000..bf0aaa3599b --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/Golgari Dredge.dck @@ -0,0 +1,37 @@ +[metadata] +Name=Golgari Dredge +[Main] +1 Abrupt Decay|RTR +1 Darkblast|RAV +1 Deadbridge Chant|DGM +1 Forest|RAV|2 +3 Forest|RAV|4 +1 Gleancrawler|RAV +1 Golgari Brownscale|RAV +1 Golgari Charm|C15 +1 Golgari Cluestone|DGM +1 Golgari Germination|RAV +1 Golgari Grave-Troll|RAV +1 Golgari Guildgate|C15 +1 Golgari Guildmage|C13 +1 Golgari Keyrune|RTR +1 Golgari Longlegs|RTR +1 Golgari Rot Farm|C15 +1 Golgari Signet|C15 +1 Golgari Thug|RAV +1 Grave-Shell Scarab|RAV +1 Greater Mossdog|RAV +1 Life from the Loam|RAV +1 Lotleth Troll|C15 +1 Moldervine Cloak|RAV +1 Necroplasm|RAV +1 Nightmare Void|RAV +1 Overgrown Tomb|RTR +1 Pillar of the Paruns|DIS +1 Shambling Shell|RAV +1 Stinkweed Imp|RAV +1 Svogthos, the Restless Tomb|RAV +5 Swamp|RAV|3 +1 Transguild Promenade|C13 +1 Vraska the Unseen|RTR +1 Woodwraith Corrupter|RAV diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/Golgari Scavenge.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/Golgari Scavenge.dck new file mode 100644 index 00000000000..25f147b9e80 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/Golgari Scavenge.dck @@ -0,0 +1,41 @@ +[metadata] +Name=Golgari Scavenge +[Main] +1 Deadbridge Chant|DGM +1 Deadbridge Goliath|RTR +1 Dreg Mangler|RTR +1 Drudge Beetle|RTR +1 Forest|RTR|1 +1 Forest|RTR|2 +1 Forest|RTR|3 +1 Forest|RTR|4 +1 Forest|RTR|5 +1 Golgari Brownscale|RAV +1 Golgari Charm|C15 +1 Golgari Cluestone|DGM +1 Golgari Decoy|RTR +1 Golgari Grave-Troll|RAV +1 Golgari Guildgate|C15 +1 Golgari Guildmage|C13 +1 Golgari Keyrune|RTR +1 Golgari Longlegs|RTR +1 Golgari Rot Farm|C15 +1 Golgari Rotwurm|RAV +1 Golgari Signet|C15 +1 Grave-Shell Scarab|RAV +1 Korozda Monitor|RTR +1 Life from the Loam|RAV +1 Necroplasm|RAV +1 Overgrown Tomb|RTR +1 Pillar of the Paruns|DIS +1 Sewer Shambler|RTR +1 Shambling Shell|RAV +1 Slitherhead|RTR +1 Sluiceway Scorpion|RTR +3 Swamp|RTR|2 +1 Swamp|RTR|3 +1 Terrus Wurm|RTR +1 Thrashing Mossdog|DGM +1 Transguild Promenade|C13 +1 Varolz, the Scar-Striped|DGM +1 Zanikev Locust|RTR diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/Jarad, Golgari Lich Lord.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/Jarad, Golgari Lich Lord.dck new file mode 100644 index 00000000000..e920e9edb98 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/Jarad, Golgari Lich Lord.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Jarad, Golgari Lich Lord +[Commander] +1 Jarad, Golgari Lich Lord|RTR +[Main] +1 Abrupt Decay|RTR +1 Darkblast|RAV +1 Deadbridge Chant|DGM +1 Forest|C15|1 +1 Forest|C15|2 +2 Forest|C15|3 +1 Golgari Brownscale|RAV +1 Golgari Charm|C15 +1 Golgari Cluestone|DGM +1 Golgari Germination|RAV +1 Golgari Grave-Troll|RAV +1 Golgari Guildgate|C15 +1 Golgari Guildmage|C13 +1 Golgari Keyrune|RTR +1 Golgari Rot Farm|C15 +1 Golgari Signet|C15 +1 Golgari Thug|RAV +1 Grave-Shell Scarab|RAV +1 Greater Mossdog|RAV +1 Korozda Guildmage|C15 +1 Life from the Loam|RAV +1 Necroplasm|RAV +1 Nightmare Void|RAV +1 Overgrown Tomb|RTR +1 Pillar of the Paruns|DIS +1 Plague Boiler|C13 +1 Putrefy|C15 +1 Shambling Shell|RAV +1 Stinkweed Imp|RAV +1 Svogthos, the Restless Tomb|RAV +1 Swamp|C15|1 +3 Swamp|C15|2 +1 Swamp|C15|4 +1 Tablet of the Guilds|RTR +1 Transguild Promenade|C13 +1 Treasured Find|RTR +1 Vraska the Unseen|RTR +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/Mazirek, Kraul Death Priest.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/Mazirek, Kraul Death Priest.dck new file mode 100644 index 00000000000..256a267bc7c --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/Mazirek, Kraul Death Priest.dck @@ -0,0 +1,45 @@ +[metadata] +Name=Mazirek, Kraul Death Priest +[Commander] +1 Mazirek, Kraul Death Priest|C15 +[Main] +1 Abrupt Decay|RTR +1 Deadbridge Chant|DGM +1 Doubling Season|RAV +1 Drooling Groodion|RAV +1 Forest|RTR|1 +1 Forest|RTR|2 +2 Forest|RTR|5 +1 Gobbling Ooze|RTR +1 Golgari Charm|C15 +1 Golgari Cluestone|DGM +1 Golgari Guildgate|C15 +1 Golgari Guildmage|C13 +1 Golgari Keyrune|RTR +1 Golgari Rot Farm|C15 +1 Golgari Rotwurm|RAV +1 Golgari Signet|C15 +1 Grave-Shell Scarab|RAV +1 Korozda Guildmage|C15 +1 Overgrown Tomb|RTR +1 Perilous Forays|RAV +1 Pillar of the Paruns|DIS +1 Plagued Rusalka|GPT +1 Putrefy|C15 +1 Sanguine Praetor|GPT +1 Shambling Shell|RAV +1 Slum Reaper|RTR +1 Starved Rusalka|GPT +1 Svogthos, the Restless Tomb|RAV +2 Swamp|RTR|2 +1 Swamp|RTR|3 +1 Swamp|RTR|4 +1 Swamp|RTR|5 +1 Tablet of the Guilds|RTR +1 Transguild Promenade|C13 +1 Undercity Informer|GTC +1 Varolz, the Scar-Striped|DGM +1 Vindictive Mob|RAV +1 Vraska the Unseen|RTR +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/Savra, Queen of the Golgari.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/Savra, Queen of the Golgari.dck new file mode 100644 index 00000000000..a291e2fb49a --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/Savra, Queen of the Golgari.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Savra, Queen of the Golgari +[Commander] +1 Savra, Queen of the Golgari|RAV +[Main] +1 Abrupt Decay|RTR +1 Deadbridge Chant|DGM +1 Deathrite Shaman|RTR +1 Forest|RAV|1 +1 Forest|RAV|3 +2 Forest|RAV|4 +1 Golgari Brownscale|RAV +1 Golgari Charm|C15 +1 Golgari Cluestone|DGM +1 Golgari Grave-Troll|RAV +1 Golgari Guildgate|C15 +1 Golgari Guildmage|C13 +1 Golgari Keyrune|RTR +1 Golgari Rot Farm|C15 +1 Golgari Signet|C15 +1 Golgari Thug|RAV +1 Grave-Shell Scarab|RAV +1 Greater Mossdog|RAV +1 Killing Glare|GTC +1 Korozda Guildmage|C15 +1 Moldervine Cloak|RAV +1 Necroplasm|RAV +1 Overgrown Tomb|RTR +1 Pack Rat|RTR +1 Pillar of the Paruns|DIS +1 Plague Boiler|C13 +1 Putrefy|C15 +1 Shambling Shell|RAV +1 Stinkweed Imp|RAV +1 Svogthos, the Restless Tomb|RAV +2 Swamp|RAV|1 +2 Swamp|RAV|2 +1 Swamp|RAV|3 +1 Tablet of the Guilds|RTR +1 Transguild Promenade|C13 +1 Treasured Find|RTR +1 Undercity Informer|GTC +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/Sisters of Stone Death.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/Sisters of Stone Death.dck new file mode 100644 index 00000000000..144d5a8a509 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/Sisters of Stone Death.dck @@ -0,0 +1,51 @@ +[metadata] +Name=Sisters of Stone Death +[Avatar] +1 Sisters of Stone Death Avatar|VAN +[Main] +1 Alpha Authority|GTC +1 Beastmaster's Magemark|GPT +1 Corpse Blockade|GTC +1 Deadbridge Chant|DGM +3 Forest|RTR|3 +1 Forest|RTR|5 +1 Gaze of the Gorgon|RAV +1 Golgari Charm|C15 +1 Golgari Cluestone|DGM +1 Golgari Decoy|RTR +1 Golgari Guildgate|C15 +1 Golgari Guildmage|C13 +1 Golgari Keyrune|RTR +1 Golgari Longlegs|RTR +1 Golgari Rot Farm|C15 +1 Golgari Signet|C15 +1 Grave Betrayal|RTR +1 Mantle of Webs|ORI +1 Mortipede|RAV +1 Necropolis Regent|RTR +1 Overgrown Tomb|RTR +1 Pillar of the Paruns|DIS +1 Rust Scarab|GTC +1 Sewer Shambler|RTR +1 Silhana Ledgewalker|PC2 +1 Silhana Starfletcher|GPT +1 Sinister Possession|DGM +1 Spire Tracer|GTC +1 Svogthos, the Restless Tomb|RAV +1 Swamp|RTR|1 +1 Swamp|RTR|2 +1 Swamp|RTR|3 +1 Swamp|RTR|4 +1 Swamp|RTR|5 +1 Thrashing Mossdog|DGM +1 Transguild Promenade|C13 +1 Trestle Troll|RTR +1 Vraska the Unseen|RTR +[Sideboard] + +[Planes] + +[Schemes] + +[Conspiracy] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/Varolz, the Scar-Striped.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/Varolz, the Scar-Striped.dck new file mode 100644 index 00000000000..c936bb5f2b9 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/Varolz, the Scar-Striped.dck @@ -0,0 +1,42 @@ +[metadata] +Name=Varolz, the Scar-Striped +[Commander] +1 Varolz, the Scar-Striped|DGM +[Main] +1 Abrupt Decay|RTR +1 Corpsejack Menace|RTR +1 Deadbridge Chant|DGM +1 Deadbridge Goliath|RTR +1 Deathrite Shaman|RTR +1 Dreg Mangler|RTR +1 Drudge Beetle|RTR +1 Forest|C13|3 +4 Forest|C13|4 +1 Gaze of Granite|DGM +1 Golgari Charm|C15 +1 Golgari Cluestone|DGM +1 Golgari Decoy|RTR +1 Golgari Guildgate|C15 +1 Golgari Guildmage|C13 +1 Golgari Keyrune|RTR +1 Golgari Rot Farm|C15 +1 Golgari Signet|C15 +1 Korozda Guildmage|C15 +1 Korozda Monitor|RTR +1 Overgrown Tomb|RTR +1 Pillar of the Paruns|DIS +1 Plague Boiler|C13 +1 Sewer Shambler|RTR +1 Slitherhead|RTR +1 Sluiceway Scorpion|RTR +1 Svogthos, the Restless Tomb|RAV +2 Swamp|C13|1 +2 Swamp|C13|2 +1 Tablet of the Guilds|RTR +1 Terrus Wurm|RTR +1 Thrashing Mossdog|DGM +1 Transguild Promenade|C13 +1 Vraska the Unseen|RTR +1 Zanikev Locust|RTR +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/Vraska the Unseen.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/Vraska the Unseen.dck new file mode 100644 index 00000000000..c44ba7268a9 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/Vraska the Unseen.dck @@ -0,0 +1,41 @@ +[metadata] +Name=Vraska the Unseen +[Main] +1 Abrupt Decay|RTR +1 Corpsejack Menace|RTR +1 Deadbridge Chant|DGM +1 Deathrite Shaman|RTR +1 Forest|RTR|1 +2 Forest|RTR|2 +1 Forest|RTR|3 +1 Gaze of Granite|DGM +1 Gaze of the Gorgon|RAV +1 Gleancrawler|RAV +1 Golgari Charm|C15 +1 Golgari Cluestone|DGM +1 Golgari Germination|RAV +1 Golgari Guildgate|C15 +1 Golgari Guildmage|C13 +1 Golgari Keyrune|RTR +1 Golgari Longlegs|RTR +1 Golgari Rot Farm|C15 +1 Golgari Rotwurm|RAV +1 Golgari Signet|C15 +1 Grave-Shell Scarab|RAV +1 Jarad's Orders|RTR +1 Korozda Guildmage|C15 +1 Lotleth Troll|C15 +1 Overgrown Tomb|RTR +1 Pillar of the Paruns|DIS +1 Putrefy|C15 +1 Rot Farm Skeleton|DGM +1 Slitherhead|RTR +1 Svogthos, the Restless Tomb|RAV +1 Swamp|RTR|1 +1 Swamp|RTR|3 +3 Swamp|RTR|5 +1 Transguild Promenade|C13 +1 Treasured Find|RTR +1 Vraska the Unseen|RTR +1 Vulturous Zombie|C15 +1 Woodwraith Corrupter|RAV \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/_events.txt b/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/_events.txt new file mode 100644 index 00000000000..22eb78cee09 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Golgari Rot Farm/_events.txt @@ -0,0 +1,8 @@ +Name:Golgari Dredge|Deck:Golgari Dredge.dck|Variant:None|Avatar:Golgari Grave-Troll|Desc: +Name:Golgari Scavenge|Deck:Golgari Scavenge.dck|Variant:None|Avatar:Deadbridge Goliath|Desc: +Name:Mazirek, Kraul Death Priest|Deck:Mazirek, Kraul Death Priest.dck|Variant:Commander|Avatar:Mazirek, Kraul Death Priest|Desc: +Name:Jarad, Golgari Lich Lord|Deck:Jarad, Golgari Lich Lord.dck|Variant:Commander|Avatar:Jarad, Golgari Lich Lord|Desc: +Name:Savra, Queen of the Golgari|Deck:Savra, Queen of the Golgari.dck|Variant:Commander|Avatar:Savra, Queen of the Golgari|Desc: +Name:Varolz, the Scar-Striped|Deck:Varolz, the Scar-Striped.dck|Variant:Commander|Avatar:Varolz, the Scar-Striped|Desc: +Name:Sisters of Stone Death|Deck:Sisters of Stone Death.dck|Variant:Vanguard|Avatar:Sisters of Stone Death|Desc: +Name:Vraska the Unseen|Deck:Vraska the Unseen.dck|Variant:Planeswalker|Avatar:Vraska the Unseen|Desc: \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Borborygmos.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Borborygmos.dck new file mode 100644 index 00000000000..13d08adafca --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Borborygmos.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Borborygmos +[Commander] +1 Borborygmos|GPT +[Main] +1 Battering Wurm|GPT +1 Burning-Tree Bloodscale|GPT +1 Carnage Wurm|M12 +1 Crowned Ceratok|GTC +1 Death's Presence|RTR +1 Doubling Season|RAV +1 Five-Alarm Fire|GTC +2 Forest|PC2|1 +2 Forest|PC2|4 +1 Forest|PC2|6 +1 Furyborn Hellkite|M12 +1 Ghor-Clan Savage|GPT +1 Gristleback|GPT +1 Gruul Charm|GTC +1 Gruul Cluestone|DGM +1 Gruul Guildgate|C13 +1 Gruul Guildmage|GPT +1 Gruul Keyrune|GTC +1 Gruul Signet|GPT +1 Gruul Turf|PC2 +1 Gruul War Plow|GPT +1 Ivy Lane Denizen|GTC +1 Leyline of Lifeforce|GPT +1 Mountain|PC2|2 +2 Mountain|PC2|3 +1 Mountain|PC2|4 +1 Pillar of the Paruns|DIS +1 Rubblebelt Raiders|GTC +1 Savageborn Hydra|DGM +1 Scab-Clan Berserker|ORI +1 Scab-Clan Mauler|GPT +1 Skarrg, the Rage Pits|PC2 +1 Skarrgan Skybreaker|GPT +1 Stomping Ground|GPT +1 Tablet of the Guilds|RTR +1 Transguild Promenade|C13 +1 Wreak Havoc|GPT +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Borboygmos Enraged.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Borboygmos Enraged.dck new file mode 100644 index 00000000000..03b16207b46 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Borboygmos Enraged.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Borboygmos Enraged +[Commander] +1 Borborygmos Enraged|GTC +[Main] +1 Domri Rade|GTC +2 Forest|RTR|2 +1 Forest|RTR|4 +1 Forest|RTR|5 +1 Ghor-Clan Rampager|GTC +1 Gruul Charm|GTC +1 Gruul Cluestone|DGM +1 Gruul Guildgate|C13 +1 Gruul Guildmage|GPT +1 Gruul Keyrune|GTC +1 Gruul Signet|GPT +1 Gruul Turf|PC2 +1 Gruul War Plow|GPT +1 Killer Instinct|GPT +1 Mountain|RTR|1 +1 Mountain|RTR|2 +3 Mountain|RTR|3 +1 Pillar of the Paruns|DIS +1 Pyrewild Shaman|DGM +1 Rubblebelt Maaka|DGM +1 Rubblebelt Raiders|GTC +1 Rubblehulk|GTC +1 Savageborn Hydra|DGM +1 Scab-Clan Charger|GTC +1 Scorchwalker|GTC +1 Skarrg Goliath|GTC +1 Skarrg, the Rage Pits|PC2 +1 Skinbrand Goblin|GTC +1 Slaughterhorn|GTC +1 Stomping Ground|GPT +1 Tablet of the Guilds|RTR +1 Transguild Promenade|C13 +1 Viashino Shanktail|GTC +1 Wasteland Viper|GTC +1 Wrecking Ogre|GTC +1 Zhur-Taa Ancient|DGM +1 Zhur-Taa Swine|GTC +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Domri Rade.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Domri Rade.dck new file mode 100644 index 00000000000..5adb5f4c848 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Domri Rade.dck @@ -0,0 +1,40 @@ +[metadata] +Name=Domri Rade +[Main] +1 Burning-Tree Emissary|GTC +1 Clan Defiance|GTC +1 Domri Rade|GTC +3 Forest|RTR|1 +1 Forest|RTR|4 +1 Forest|RTR|5 +1 Frenzied Tilling|INV +1 Giant Solifuge|GPT +1 Ground Assault|GTC +1 Gruul Charm|GTC +1 Gruul Guildgate|C13 +1 Gruul Turf|PC2 +1 Guild Feud|RTR +1 Killer Instinct|GPT +1 Mountain|RTR|1 +2 Mountain|RTR|2 +1 Mountain|RTR|3 +2 Mountain|RTR|4 +1 Primal Visitation|GTC +1 Primordial Sage|C14 +1 Rubblebelt Raiders|GTC +1 Rubblehulk|GTC +1 Ruination Wurm|GTC +1 Rumbling Slum|GPT +1 Savage Twister|C13 +1 Scab-Clan Mauler|GPT +1 Scion of the Wild|RAV +1 Signal the Clans|GTC +1 Skarrg Guildmage|GTC +1 Skarrg, the Rage Pits|PC2 +1 Stomping Ground|GPT +1 Streetbreaker Wurm|GPT +1 Transguild Promenade|C13 +1 Vinelasher Kudzu|RAV +1 Wild Beastmaster|RTR +1 Worldspine Wurm|RTR +1 Wurmweaver Coil|GPT diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Gruul Bloodrush.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Gruul Bloodrush.dck new file mode 100644 index 00000000000..cda172e2c11 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Gruul Bloodrush.dck @@ -0,0 +1,40 @@ +[metadata] +Name=Gruul Bloodrush +[Main] +1 Clan Defiance|GTC +1 Domri Rade|GTC +2 Forest|PC2|1 +1 Forest|PC2|2 +1 Forest|PC2|4 +1 Ghor-Clan Rampager|GTC +1 Gruul Charm|GTC +1 Gruul Cluestone|DGM +1 Gruul Guildgate|C13 +1 Gruul Guildmage|GPT +1 Gruul Keyrune|GTC +1 Gruul Ragebeast|GTC +1 Gruul Signet|GPT +1 Gruul Turf|PC2 +1 Gruul War Chant|DGM +2 Mountain|PC2|1 +1 Mountain|PC2|3 +2 Mountain|PC2|4 +1 Pillar of the Paruns|DIS +1 Pyrewild Shaman|DGM +1 Rubblebelt Maaka|DGM +1 Rubblebelt Raiders|GTC +1 Rubblehulk|GTC +1 Savageborn Hydra|DGM +1 Scab-Clan Charger|GTC +1 Scorchwalker|GTC +1 Signal the Clans|GTC +1 Skarrg Goliath|GTC +1 Skarrg, the Rage Pits|PC2 +1 Skinbrand Goblin|GTC +1 Slaughterhorn|GTC +1 Stomping Ground|GPT +1 Transguild Promenade|C13 +1 Viashino Shanktail|GTC +1 Wasteland Viper|GTC +1 Wrecking Ogre|GTC +1 Zhur-Taa Swine|GTC diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Gruul Bloodthirst.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Gruul Bloodthirst.dck new file mode 100644 index 00000000000..6422b48cfbf --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Gruul Bloodthirst.dck @@ -0,0 +1,39 @@ +[metadata] +Name=Gruul Bloodthirst +[Main] +1 Battering Wurm|GPT +1 Blood Ogre|M12 +1 Bloodscale Prowler|GPT +1 Burning-Tree Bloodscale|GPT +1 Carnage Wurm|M12 +2 Forest|M12|2 +2 Forest|M12|4 +1 Furyborn Hellkite|M12 +1 Ghor-Clan Savage|GPT +1 Gorehorn Minotaurs|M12 +1 Gristleback|GPT +1 Gruul Charm|GTC +1 Gruul Cluestone|DGM +1 Gruul Guildgate|C13 +1 Gruul Guildmage|GPT +1 Gruul Keyrune|GTC +1 Gruul Ragebeast|GTC +1 Gruul Signet|GPT +1 Gruul Turf|PC2 +1 Gruul War Chant|DGM +1 Gruul War Plow|GPT +1 Lurking Crocodile|M12 +1 Mountain|M12|1 +2 Mountain|M12|2 +2 Mountain|M12|3 +1 Petrified Wood-Kin|GPT +1 Pillar of the Paruns|DIS +1 Rabble-Rouser|GPT +1 Scab-Clan Mauler|GPT +1 Skarrg, the Rage Pits|PC2 +1 Skarrgan Firebird|GPT +1 Skarrgan Pit-Skulk|GPT +1 Skarrgan Skybreaker|GPT +1 Stomping Ground|GPT +1 Stormblood Berserker|M12 +1 Transguild Promenade|C13 diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Nephilim of Ravnica.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Nephilim of Ravnica.dck new file mode 100644 index 00000000000..9a29d3e64e7 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Nephilim of Ravnica.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Nephilim of Ravnica +[Main] +1 Aurora Eidolon|DIS +1 Axebane Guardian|RTR +1 Beck // Call|DGM +1 Birds of Paradise|M12 +1 Blessing of the Nephilim|DIS +1 Blood Crypt|EXP +1 Bound // Determined|DIS +1 Breaking // Entering|DGM +1 Breeding Pool|EXP +1 Catch // Release|DGM +1 Chromatic Lantern|RTR +1 Civic Saber|RTR +1 Crime // Punishment|DIS +1 Dune-Brood Nephilim|GPT +1 Enigma Eidolon|DIS +2 Entropic Eidolon|DIS +1 Ghost Quarter|C15 +1 Glint-Eye Nephilim|GPT +1 Godless Shrine|EXP +1 Gruul Guildgate|C13 +1 Gruul Turf|MM2 +1 Hallowed Fountain|EXP +1 Ink-Treader Nephilim|GPT +1 Might of the Nephilim|DIS +1 Overgrown Tomb|EXP +1 Pillar of the Paruns|DIS +1 Rogue's Passage|C15 +1 Sacred Foundry|EXP +1 Sandstorm Eidolon|DIS +1 Soul of Ravnica|M15 +1 Steam Vents|EXP +1 Stomping Ground|EXP +1 Temple Garden|EXP +1 Terrarion|RAV +1 Thespian's Stage|GTC +1 Verdant Eidolon|DIS +1 Watery Grave|EXP +1 Witch-Maw Nephilim|GPT +1 Yore-Tiller Nephilim|GPT +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Rumbling Slum.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Rumbling Slum.dck new file mode 100644 index 00000000000..8e38bf1b675 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Rumbling Slum.dck @@ -0,0 +1,48 @@ +[metadata] +Name=Rumbling Slum +[Avatar] +1 Rumbling Slum Avatar|VAN +[Main] +1 Blood Ogre|M12 +1 Burning-Tree Bloodscale|GPT +1 Burning-Tree Shaman|GPT +1 Clan Defiance|GTC +2 Forest|C13|1 +3 Forest|C13|2 +1 Ghor-Clan Savage|GPT +1 Ground Assault|GTC +1 Gruul Charm|GTC +1 Gruul Guildgate|C13 +1 Gruul Guildmage|GPT +1 Gruul Ragebeast|GTC +1 Gruul Turf|PC2 +1 Guild Feud|RTR +1 Guttersnipe|C13 +1 Mountain|C13|1 +2 Mountain|C13|2 +2 Mountain|C13|4 +1 Petrified Wood-Kin|GPT +1 Pillar of the Paruns|DIS +1 Pit Fight|GTC +1 Predatory Focus|GPT +1 Rabble-Rouser|GPT +1 Savage Twister|C13 +1 Scab-Clan Berserker|ORI +1 Scab-Clan Giant|DGM +1 Scab-Clan Mauler|GPT +1 Silhana Ledgewalker|PC2 +1 Skarrg, the Rage Pits|PC2 +1 Skarrgan Pit-Skulk|GPT +1 Skarrgan Skybreaker|GPT +1 Stomping Ground|GPT +1 Stormblood Berserker|M12 +1 War's Toll|DIS +1 Zhur-Taa Druid|DGM +[Sideboard] + +[Planes] + +[Schemes] + +[Conspiracy] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Ruric Thar, the Unbowed.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Ruric Thar, the Unbowed.dck new file mode 100644 index 00000000000..98e0987be08 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Ruric Thar, the Unbowed.dck @@ -0,0 +1,42 @@ +[metadata] +Name=Ruric Thar, the Unbowed +[Commander] +1 Ruric Thar, the Unbowed|DGM +[Main] +1 Burning-Tree Bloodscale|GPT +1 Burning-Tree Emissary|GTC +1 Burning-Tree Shaman|GPT +1 Feral Animist|GPT +2 Forest|PC2|3 +2 Forest|PC2|4 +1 Ghor-Clan Rampager|GTC +1 Gruul Cluestone|DGM +1 Gruul Guildgate|C13 +1 Gruul Guildmage|GPT +1 Gruul Keyrune|GTC +1 Gruul Ragebeast|GTC +1 Gruul Signet|GPT +1 Gruul Turf|PC2 +1 Gruul War Plow|GPT +3 Mountain|PC2|2 +2 Mountain|PC2|3 +1 Pillar of the Paruns|DIS +1 Rubblehulk|GTC +1 Ruination Wurm|GTC +1 Rumbling Slum|GPT +1 Savageborn Hydra|DGM +1 Scab-Clan Giant|DGM +1 Scab-Clan Mauler|GPT +1 Skarrg Guildmage|GTC +1 Skarrg, the Rage Pits|PC2 +1 Skarrgan Skybreaker|GPT +1 Stomping Ground|GPT +1 Streetbreaker Wurm|GPT +1 Tablet of the Guilds|RTR +1 Transguild Promenade|C13 +1 Wild Cantor|GPT +1 Zhur-Taa Ancient|DGM +1 Zhur-Taa Druid|DGM +1 Zhur-Taa Swine|GTC +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Ulasht, the Hate Seed.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Ulasht, the Hate Seed.dck new file mode 100644 index 00000000000..84493e862b3 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/Ulasht, the Hate Seed.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Ulasht, the Hate Seed +[Commander] +1 Ulasht, the Hate Seed|GPT +[Main] +1 Burning-Tree Shaman|GPT +1 Clan Defiance|GTC +1 Domri Rade|GTC +1 Forest|RTR|2 +2 Forest|RTR|4 +1 Forest|RTR|5 +1 Ghor-Clan Rampager|GTC +1 Giant Solifuge|GPT +1 Gruul Charm|GTC +1 Gruul Cluestone|DGM +1 Gruul Guildgate|C13 +1 Gruul Guildmage|GPT +1 Gruul Keyrune|GTC +1 Gruul Ragebeast|GTC +1 Gruul Signet|GPT +1 Gruul Turf|PC2 +1 Gruul War Chant|DGM +1 Gruul War Plow|GPT +1 Killer Instinct|GPT +1 Mountain|RTR|3 +3 Mountain|RTR|4 +1 Mountain|RTR|5 +1 Pillar of the Paruns|DIS +1 Rubblebelt Raiders|GTC +1 Rubblehulk|GTC +1 Rumbling Slum|GPT +1 Savageborn Hydra|DGM +1 Scab-Clan Giant|DGM +1 Signal the Clans|GTC +1 Skarrg Guildmage|GTC +1 Skarrg, the Rage Pits|PC2 +1 Skarrgan Skybreaker|GPT +1 Stomping Ground|GPT +1 Tablet of the Guilds|RTR +1 Transguild Promenade|C13 +1 Wreak Havoc|GPT +1 Zhur-Taa Ancient|DGM +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/_events.txt b/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/_events.txt new file mode 100644 index 00000000000..18d61b4cb7a --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Gruul Turf/_events.txt @@ -0,0 +1,9 @@ +Name:Gruul Bloodrush|Deck:Gruul Bloodrush.dck|Variant:None|Avatar:Rubblehulk|Desc: +Name:Gruul Bloodthirst|Deck:Gruul Bloodthirst.dck|Variant:None|Avatar:Furyborn Hellkite|Desc: +Name:Nephilim of Ravnica|Deck:Nephilim of Ravnica.dck|Variant:None|Avatar:Ink-Treader Nephilim|Desc: +Name:Borborygmos|Deck:Borborygmos.dck|Variant:Commander|Avatar:Borborygmos|Desc: +Name:Borboygmos Enraged|Deck:Borboygmos Enraged.dck|Variant:Commander|Avatar:Borboygmos Enraged|Desc: +Name:Ruric Thar, the Unbowed|Deck:Ruric Thar, the Unbowed.dck|Variant:Commander|Avatar:Ruric Thar, the Unbowed|Desc: +Name:Ulasht, the Hate Seed|Deck:Ulasht, the Hate Seed.dck|Variant:Commander|Avatar:Ulasht, the Hate Seed|Desc: +Name:Rumbling Slum|Deck:Rumbling Slum.dck|Variant:Vanguard|Avatar:Rumbling Slum|Desc: +Name:Domri Rade|Deck:Domri Rade.dck|Variant:Planeswalker|Avatar:Domri Rade|Desc: \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Izzet Overload.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Izzet Overload.dck new file mode 100644 index 00000000000..7530d0f785b --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Izzet Overload.dck @@ -0,0 +1,39 @@ +[metadata] +Name=Izzet Overload +[Main] +1 Blustersquall|C15 +1 Chemister's Trick|RTR +1 Counterflux|C15 +1 Cyclonic Rift|C14 +1 Downsize|RTR +1 Dragonshift|DGM +1 Dynacharge|RTR +1 Electrickery|RTR +1 Epic Experiment|C15 +1 Goblin Electromancer|C15 +1 Hypersonic Dragon|RTR +1 Invoke the Firemind|GPT +3 Island|C13|1 +1 Island|C13|2 +1 Island|C13|4 +1 Izzet Boilerworks|C15 +1 Izzet Charm|RTR +1 Izzet Cluestone|DGM +1 Izzet Guildgate|C15 +1 Izzet Guildmage|GPT +1 Izzet Keyrune|RTR +1 Izzet Signet|C15 +1 Mercurial Chemister|RTR +1 Mizzium Mortars|C15 +1 Mizzium Skin|RTR +1 Mizzix of the Izmagnus|C15 +2 Mountain|C13|2 +2 Mountain|C13|4 +1 Nivmagus Elemental|RTR +1 Pillar of the Paruns|DIS +1 Steam Vents|RTR +1 Street Spasm|C13 +1 Teleportal|RTR +1 Transguild Promenade|C13 +1 Vandalblast|C15 +1 Weapon Surge|DGM \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Izzet Replicate.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Izzet Replicate.dck new file mode 100644 index 00000000000..87ca4f710a0 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Izzet Replicate.dck @@ -0,0 +1,40 @@ +[metadata] +Name=Izzet Replicate +[Main] +1 Cerebral Vortex|GPT +1 Djinn Illuminatus|GPT +1 Gigadrowse|GPT +1 Goblin Electromancer|C15 +1 Gridlock|GTC +1 Island|RAV|1 +2 Island|RAV|2 +2 Island|RAV|3 +1 Izzet Boilerworks|C15 +1 Izzet Charm|RTR +1 Izzet Chronarch|GPT +1 Izzet Cluestone|DGM +1 Izzet Guildgate|C15 +1 Izzet Guildmage|GPT +1 Izzet Keyrune|RTR +1 Izzet Signet|C15 +1 Leap of Flame|GPT +1 Mimeofacture|GPT +2 Mountain|RAV|1 +1 Mountain|RAV|3 +1 Mountain|RAV|4 +1 Nivix, Aerie of the Firemind|GPT +1 Pillar of the Paruns|DIS +1 Pyromatics|GPT +1 Quicken|M14 +1 Remand|RAV +1 Reroute|RAV +1 Shattering Spree|GPT +1 Siege of Towers|GPT +1 Steam Vents|RTR +1 Telling Time|RAV +1 Thoughtflare|RTR +1 Thunderheads|GPT +1 Train of Thought|GPT +1 Transguild Promenade|C13 +1 Turn // Burn|DGM +1 Vacuumelt|GPT \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Jhoira of the Ghitu.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Jhoira of the Ghitu.dck new file mode 100644 index 00000000000..06e56072f99 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Jhoira of the Ghitu.dck @@ -0,0 +1,50 @@ +[metadata] +Name=Jhoira of the Ghitu +[Avatar] +1 Jhoira of the Ghitu Avatar|VAN +[Main] +1 Blast of Genius|DGM +1 Blistercoil Weird|RTR +1 Counterflux|C15 +1 Cyclonic Rift|C14 +1 Djinn Illuminatus|GPT +1 Electrolyze|GPT +1 Epic Experiment|C15 +1 Essence Backlash|RTR +1 Eye of the Storm|RAV +1 Fluxcharger|DGM +1 Gelectrode|GPT +1 Goblin Electromancer|C15 +1 Hypersonic Dragon|RTR +1 Invoke the Firemind|GPT +2 Island|C13|1 +1 Island|C13|2 +2 Island|C13|4 +1 Izzet Boilerworks|C15 +1 Izzet Charm|RTR +1 Izzet Chronarch|GPT +1 Izzet Guildgate|C15 +1 Melek, Izzet Paragon|C15 +1 Mizzix of the Izmagnus|C15 +1 Mountain|C13|1 +2 Mountain|C13|3 +1 Mountain|C13|4 +1 Niv-Mizzet, Dracogenius|RTR +1 Nivix Cyclops|DGM +1 Nivix, Aerie of the Firemind|GPT +1 Nivmagus Elemental|RTR +1 Pillar of the Paruns|DIS +1 Quicken|M14 +1 Steam Vents|RTR +1 Stitch in Time|GPT +1 Thoughtflare|RTR +1 Transguild Promenade|C13 +1 Uncovered Clues|DGM +[Sideboard] + +[Planes] + +[Schemes] + +[Conspiracy] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Melek, Izzet Paragon.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Melek, Izzet Paragon.dck new file mode 100644 index 00000000000..16336f426e8 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Melek, Izzet Paragon.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Melek, Izzet Paragon +[Commander] +1 Melek, Izzet Paragon|DGM +[Main] +1 Blistercoil Weird|RTR +1 Cyclonic Rift|C14 +1 Djinn Illuminatus|GPT +1 Epic Experiment|C15 +1 Flow of Ideas|RAV +1 Fluxcharger|DGM +1 Gelectrode|GPT +1 Goblin Electromancer|C15 +1 Goblin Flectomancer|GPT +1 Guttersnipe|C13 +1 Hypersonic Dragon|RTR +2 Island|C13|2 +1 Island|C13|3 +2 Island|C13|4 +1 Izzet Boilerworks|C15 +1 Izzet Charm|RTR +1 Izzet Chronarch|GPT +1 Izzet Cluestone|DGM +1 Izzet Guildgate|C15 +1 Izzet Guildmage|GPT +1 Izzet Keyrune|RTR +1 Izzet Signet|C15 +2 Mountain|C13|2 +1 Mountain|C13|3 +1 Mountain|C13|4 +1 Nivix Cyclops|DGM +1 Nivix Guildmage|C13 +1 Nivix, Aerie of the Firemind|GPT +1 Nivmagus Elemental|RTR +1 Pillar of the Paruns|DIS +1 Steam Vents|RTR +1 Stitch in Time|GPT +1 Tablet of the Guilds|RTR +1 Thoughtflare|RTR +1 Transguild Promenade|C13 +1 Uncovered Clues|DGM +1 Wee Dragonauts|GPT +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Mizzix of the Izmagus.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Mizzix of the Izmagus.dck new file mode 100644 index 00000000000..d919231fd61 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Mizzix of the Izmagus.dck @@ -0,0 +1,41 @@ +[metadata] +Name=Mizzix of the Izmagus +[Commander] +1 Mizzix of the Izmagnus|C15 +[Main] +1 Blast of Genius|DGM +1 Cerebral Vortex|GPT +1 Chemister's Trick|RTR +1 Counterflux|C15 +1 Dragonshift|DGM +1 Electrolyze|GPT +1 Epic Experiment|C15 +1 Essence Backlash|RTR +1 Firemind's Foresight|C15 +1 Goblin Rally|RTR +1 Invoke the Firemind|GPT +3 Island|RTR|1 +2 Island|RTR|5 +1 Izzet Boilerworks|C15 +1 Izzet Charm|RTR +1 Izzet Cluestone|DGM +1 Izzet Guildgate|C15 +1 Izzet Guildmage|GPT +1 Izzet Keyrune|RTR +1 Izzet Signet|C15 +1 Leap of Flame|GPT +1 Mizzium Mortars|C15 +1 Mizzium Transreliquat|GPT +2 Mountain|RTR|2 +3 Mountain|RTR|4 +1 Nivix, Aerie of the Firemind|GPT +1 Schismotivate|GPT +1 Siege of Towers|GPT +1 Steam Vents|RTR +1 Stitch in Time|GPT +1 Tablet of the Guilds|RTR +1 Thoughtflare|RTR +1 Transguild Promenade|C13 +1 Turn // Burn|DGM +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Niv-Mizzet, Dracogenius.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Niv-Mizzet, Dracogenius.dck new file mode 100644 index 00000000000..31ce8d0c9e9 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Niv-Mizzet, Dracogenius.dck @@ -0,0 +1,40 @@ +[metadata] +Name=Niv-Mizzet, Dracogenius +[Commander] +1 Niv-Mizzet, Dracogenius|RTR +[Main] +1 Blast of Genius|DGM +1 Dragonshift|DGM +1 Electrolyze|GPT +1 Epic Experiment|C15 +1 Essence Backlash|RTR +1 Furyborn Hellkite|M12 +1 Gelectrode|GPT +1 Goblin Test Pilot|DGM +1 Hellkite Tyrant|GTC +1 Hunted Dragon|C15 +1 Hypersonic Dragon|RTR +1 Invoke the Firemind|GPT +3 Island|C15|2 +1 Island|C15|4 +1 Izzet Boilerworks|C15 +1 Izzet Charm|RTR +1 Izzet Cluestone|DGM +1 Izzet Guildgate|C15 +1 Izzet Guildmage|GPT +1 Izzet Keyrune|RTR +1 Izzet Signet|C15 +1 Izzet Staticaster|RTR +1 Mercurial Chemister|RTR +1 Mountain|C15|2 +2 Mountain|C15|3 +2 Mountain|C15|4 +1 Nivix, Aerie of the Firemind|GPT +1 Pillar of the Paruns|DIS +1 Ral Zarek|DGM +1 Steam Vents|RTR +1 Tablet of the Guilds|RTR +1 Transguild Promenade|C13 +1 Turn // Burn|DGM +1 Utvara Hellkite|RTR +1 Wee Dragonauts|GPT diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Niv-Mizzet, the Firemind.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Niv-Mizzet, the Firemind.dck new file mode 100644 index 00000000000..3c1a2603a27 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Niv-Mizzet, the Firemind.dck @@ -0,0 +1,41 @@ +[metadata] +Name=Niv-Mizzet, the Firemind +[Commander] +1 Niv-Mizzet, the Firemind|GPT +[Main] +1 Blast of Genius|DGM +1 Cerebral Vortex|GPT +1 Electrolyze|GPT +1 Epic Experiment|C15 +1 Flow of Ideas|RAV +1 Goblin Electromancer|C15 +1 Ignorant Bliss|DIS +1 Invoke the Firemind|GPT +1 Island|RAV|1 +1 Island|RAV|2 +3 Island|RAV|3 +1 Izzet Boilerworks|C15 +1 Izzet Charm|RTR +1 Izzet Cluestone|DGM +1 Izzet Guildgate|C15 +1 Izzet Guildmage|GPT +1 Izzet Keyrune|RTR +1 Izzet Signet|C15 +1 Lore Broker|RAV +1 Mercurial Chemister|RTR +1 Mindmoil|RAV +3 Mountain|RAV|2 +1 Mountain|RAV|4 +1 Niv-Mizzet, Dracogenius|RTR +1 Nivix Guildmage|C13 +1 Nivix, Aerie of the Firemind|GPT +1 Pillar of the Paruns|DIS +1 Quicken|M14 +1 Remand|RAV +1 Reroute|RAV +1 Scatter Arc|GTC +1 Steam Vents|RTR +1 Thoughtflare|RTR +1 Tin Street Market|GTC +1 Train of Thought|GPT +1 Transguild Promenade|C13 diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Ral Zarek.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Ral Zarek.dck new file mode 100644 index 00000000000..e9630297ff1 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Ral Zarek.dck @@ -0,0 +1,40 @@ +[metadata] +Name=Ral Zarek +[Main] +1 Blistercoil Weird|RTR +1 Electrolyze|GPT +1 Epic Experiment|C15 +1 Essence Backlash|RTR +1 Fluxcharger|DGM +1 Gelectrode|GPT +1 Goblin Electromancer|C15 +1 Goblin Test Pilot|DGM +1 Hypersonic Dragon|RTR +1 Invoke the Firemind|GPT +2 Island|RTR|3 +1 Island|RTR|4 +2 Island|RTR|5 +1 Izzet Boilerworks|C15 +1 Izzet Charm|RTR +1 Izzet Cluestone|DGM +1 Izzet Guildgate|C15 +1 Izzet Guildmage|GPT +1 Izzet Keyrune|RTR +1 Izzet Signet|C15 +1 Izzet Staticaster|RTR +1 Mizzix of the Izmagnus|C15 +2 Mountain|RTR|1 +1 Mountain|RTR|3 +1 Mountain|RTR|5 +1 Nivix Cyclops|DGM +1 Nivix Guildmage|C13 +1 Nivix, Aerie of the Firemind|GPT +1 Nivmagus Elemental|RTR +1 Petrahydrox|GPT +1 Pillar of the Paruns|DIS +1 Ral Zarek|DGM +1 Steam Vents|RTR +1 Stitch in Time|GPT +1 Teleportal|RTR +1 Transguild Promenade|C13 +1 Wee Dragonauts|GPT diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Tibor and Lumia.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Tibor and Lumia.dck new file mode 100644 index 00000000000..c94fb33a36c --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/Tibor and Lumia.dck @@ -0,0 +1,43 @@ +[metadata] +Name=Tibor and Lumia +[Commander] +1 Tibor and Lumia|GPT +[Main] +1 Blistercoil Weird|RTR +1 Cerebral Vortex|GPT +1 Chemister's Trick|RTR +1 Counterflux|C15 +1 Djinn Illuminatus|GPT +1 Dragonshift|DGM +1 Epic Experiment|C15 +1 Firemind's Foresight|C15 +1 Fluxcharger|DGM +1 Frostburn Weird|RTR +1 Goblin Electromancer|C15 +1 Goblin Flectomancer|GPT +1 Hypersonic Dragon|RTR +1 Invoke the Firemind|GPT +3 Island|RTR|1 +2 Island|RTR|5 +1 Izzet Boilerworks|C15 +1 Izzet Charm|RTR +1 Izzet Chronarch|GPT +1 Izzet Guildgate|C15 +1 Izzet Guildmage|GPT +1 Leap of Flame|GPT +1 Mercurial Chemister|RTR +1 Mountain|RTR|1 +2 Mountain|RTR|2 +1 Mountain|RTR|4 +1 Nivix Guildmage|C13 +1 Nivix, Aerie of the Firemind|GPT +1 Nivmagus Elemental|RTR +1 Pillar of the Paruns|DIS +1 Steam Vents|RTR +1 Stitch in Time|GPT +1 Tablet of the Guilds|RTR +1 Teleportal|RTR +1 Transguild Promenade|C13 +1 Turn // Burn|DGM +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/_events.txt b/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/_events.txt new file mode 100644 index 00000000000..77210473e69 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Izzet Boilerworks/_events.txt @@ -0,0 +1,9 @@ +Name:Izzet Overload|Deck:Izzet Overload.dck|Variant:None|Avatar:Teleportal|Desc: +Name:Izzet Replicate|Deck:Izzet Replicate.dck|Variant:None|Avatar:Djinn Illuminatus|Desc: +Name:Melek, Izzet Paragon|Deck:Melek, Izzet Paragon.dck|Variant:Commander|Avatar:Melek, Izzet Paragon|Desc: +Name:Niv-Mizzet, Dracogenius|Deck:Niv-Mizzet, Dracogenius.dck|Variant:Commander|Avatar:Niv-Mizzet, Dracogenius|Desc: +Name:Mizzix of the Izmagus|Deck:Mizzix of the Izmagus.dck|Variant:Commander|Avatar:Mizzix of the Izmagus|Desc: +Name:Niv-Mizzet, the Firemind|Deck:Niv-Mizzet, the Firemind.dck|Variant:Commander|Avatar:Niv-Mizzet, the Firemind|Desc: +Name:Tibor and Lumia|Deck:Tibor and Lumia.dck|Variant:Commander|Avatar:Tibor and Lumia|Desc: +Name:Jhoira of the Ghitu|Deck:Jhoira of the Ghitu.dck|Variant:Vanguard|Avatar:Jhoira of the Ghitu|Desc: +Name:Ral Zarek|Deck:Ral Zarek.dck|Variant:Planeswalker|Avatar:Ral Zarek|Desc: \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/Ghost Council of Orzhova.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/Ghost Council of Orzhova.dck new file mode 100644 index 00000000000..39f80544d10 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/Ghost Council of Orzhova.dck @@ -0,0 +1,43 @@ +[metadata] +Name=Ghost Council of Orzhova +[Commander] +1 Ghost Council of Orzhova|GPT +[Main] +1 Absolver Thrull|GPT +1 Belfry Spirit|GPT +1 Benediction of Moons|GPT +1 Blind Hunter|GPT +1 Cartel Aristocrat|GTC +1 Cry of Contrition|GPT +1 Crypt Ghast|C14 +1 Culling Sun|GPT +1 Dark Confidant|RAV +1 Deathpact Angel|GTC +1 Desecration Demon|RTR +1 Empty the Catacombs|RAV +1 Exhumer Thrull|GPT +1 Godless Shrine|GPT +1 Graven Dominator|GPT +1 High Priest of Penance|GTC +1 Merciless Eviction|GTC +1 Mortify|GPT +1 Orzhov Basilica|C15 +1 Orzhov Euthanist|GPT +1 Orzhov Guildgate|C15 +1 Orzhov Pontiff|GPT +1 Orzhova, the Church of Deals|GPT +1 Pillar of the Paruns|DIS +1 Pillory of the Sleepless|GPT +1 Plains|C15|2 +2 Plains|C15|3 +1 Plains|C15|4 +1 Pontiff of Blight|C14 +1 Purge the Profane|GTC +1 Seize the Soul|GPT +4 Swamp|C15|3 +1 Swamp|C15|4 +1 Tablet of the Guilds|RTR +1 Transguild Promenade|C13 +1 Vizkopa Guildmage|C13 +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/Karlov of the Ghost Council.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/Karlov of the Ghost Council.dck new file mode 100644 index 00000000000..26425efb7d1 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/Karlov of the Ghost Council.dck @@ -0,0 +1,45 @@ +[metadata] +Name=Karlov of the Ghost Council +[Commander] +1 Karlov of the Ghost Council|C15 +[Main] +1 Agent of Masks|GPT +1 Alms Beast|GTC +1 Blind Hunter|GPT +1 Blood Baron of Vizkopa|DGM +1 Culling Sun|GPT +1 Debt to the Deathless|DGM +1 Gift of Orzhova|GTC +1 Godless Shrine|GPT +1 Immortal Servitude|GTC +1 Kingpin's Pet|GTC +1 Merciless Eviction|GTC +1 Mourning Thrull|GPT +1 Obzedat's Aid|DGM +1 One Thousand Lashes|GTC +1 Orzhov Basilica|C15 +1 Orzhov Charm|GTC +1 Orzhov Cluestone|C15 +1 Orzhov Guildgate|C15 +1 Orzhov Guildmage|GPT +1 Orzhov Keyrune|GTC +1 Orzhov Signet|C15 +1 Orzhova, the Church of Deals|GPT +1 Pillar of the Paruns|DIS +1 Pillory of the Sleepless|GPT +2 Plains|C13|1 +1 Plains|C13|2 +1 Plains|C13|3 +1 Plains|C13|4 +1 Purge the Profane|GTC +1 Souls of the Faultless|GPT +2 Swamp|C13|2 +1 Swamp|C13|3 +1 Swamp|C13|4 +1 Tablet of the Guilds|RTR +1 Tithe Drinker|DGM +1 Transguild Promenade|C13 +1 Treasury Thrull|C15 +1 Vizkopa Guildmage|C13 +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/Obzedat, Ghost Council.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/Obzedat, Ghost Council.dck new file mode 100644 index 00000000000..374de5cfce3 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/Obzedat, Ghost Council.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Obzedat, Ghost Council +[Commander] +1 Obzedat, Ghost Council|GTC +[Main] +1 Basilica Guards|GTC +1 Basilica Screecher|GTC +1 Blind Obedience|GTC +1 Blood Baron of Vizkopa|DGM +1 Crypt Ghast|C14 +1 Culling Sun|GPT +1 Deathpact Angel|GTC +1 Gift of Orzhova|GTC +1 Godless Shrine|GPT +1 Kingpin's Pet|GTC +1 Knight of Obligation|GTC +1 Merciless Eviction|GTC +1 Obzedat's Aid|DGM +1 Orzhov Basilica|C15 +1 Orzhov Charm|GTC +1 Orzhov Cluestone|C15 +1 Orzhov Guildgate|C15 +1 Orzhov Guildmage|GPT +1 Orzhov Keyrune|GTC +1 Orzhov Signet|C15 +1 Orzhova, the Church of Deals|GPT +1 Pillar of the Paruns|DIS +1 Plains|C15|1 +1 Plains|C15|2 +1 Plains|C15|3 +1 Plains|C15|4 +1 Pontiff of Blight|C14 +2 Swamp|C15|2 +3 Swamp|C15|3 +1 Syndic of Tithes|GTC +1 Syndicate Enforcer|GTC +1 Tablet of the Guilds|RTR +1 Thrull Parasite|GTC +1 Tithe Drinker|DGM +1 Transguild Promenade|C13 +1 Treasury Thrull|C15 +1 Vizkopa Confessor|GTC +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/Orzhov Extort.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/Orzhov Extort.dck new file mode 100644 index 00000000000..eb317b47462 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/Orzhov Extort.dck @@ -0,0 +1,40 @@ +[metadata] +Name=Orzhov Extort +[Main] +1 Basilica Guards|GTC +1 Basilica Screecher|GTC +1 Blind Obedience|GTC +1 Crypt Ghast|C14 +1 Debt to the Deathless|DGM +1 Gift of Orzhova|GTC +1 Godless Shrine|GPT +1 Kingpin's Pet|GTC +1 Knight of Obligation|GTC +1 Merciless Eviction|GTC +1 Mortify|GPT +1 Obzedat's Aid|DGM +1 One Thousand Lashes|GTC +1 Orzhov Basilica|C15 +1 Orzhov Charm|GTC +1 Orzhov Cluestone|C15 +1 Orzhov Guildgate|C15 +1 Orzhov Guildmage|GPT +1 Orzhov Keyrune|GTC +1 Orzhov Signet|C15 +1 Orzhova, the Church of Deals|GPT +1 Pillar of the Paruns|DIS +2 Plains|C14|2 +1 Plains|C14|3 +1 Plains|C14|4 +1 Pontiff of Blight|C14 +1 Purge the Profane|GTC +2 Swamp|C14|1 +1 Swamp|C14|2 +2 Swamp|C14|4 +1 Syndic of Tithes|GTC +1 Syndicate Enforcer|GTC +1 Thrull Parasite|GTC +1 Tithe Drinker|DGM +1 Transguild Promenade|C13 +1 Treasury Thrull|C15 +1 Vizkopa Confessor|GTC diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/Orzhov Haunt.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/Orzhov Haunt.dck new file mode 100644 index 00000000000..221ee139964 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/Orzhov Haunt.dck @@ -0,0 +1,40 @@ +[metadata] +Name=Orzhov Haunt +[Main] +1 Absolver Thrull|GPT +1 Agent of Masks|GPT +1 Belfry Spirit|GPT +1 Benediction of Moons|GPT +1 Blind Hunter|GPT +1 Castigate|GPT +1 Cry of Contrition|GPT +1 Exhumer Thrull|GPT +1 Gift of Orzhova|GTC +1 Godless Shrine|GPT +1 Graven Dominator|GPT +1 Mortify|GPT +1 Mourning Thrull|GPT +1 One Thousand Lashes|GTC +1 Orzhov Basilica|C15 +1 Orzhov Charm|GTC +1 Orzhov Cluestone|C15 +1 Orzhov Euthanist|GPT +1 Orzhov Guildgate|C15 +1 Orzhov Guildmage|GPT +1 Orzhov Keyrune|GTC +1 Orzhov Pontiff|GPT +1 Orzhov Signet|C15 +1 Orzhova, the Church of Deals|GPT +1 Pillar of the Paruns|DIS +1 Pillory of the Sleepless|GPT +1 Plains|C13|1 +2 Plains|C13|3 +2 Plains|C13|4 +1 Profit // Loss|DGM +1 Seize the Soul|GPT +1 Souls of the Faultless|GPT +2 Swamp|C13|1 +1 Swamp|C13|2 +1 Swamp|C13|4 +1 Teysa, Orzhov Scion|GPT +1 Transguild Promenade|C13 diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/Teysa, Envoy of Ghosts.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/Teysa, Envoy of Ghosts.dck new file mode 100644 index 00000000000..ed142647210 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/Teysa, Envoy of Ghosts.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Teysa, Envoy of Ghosts +[Commander] +1 Teysa, Envoy of Ghosts|C15 +[Main] +1 Agent of Masks|GPT +1 Beckon Apparition|EVE +1 Blood Baron of Vizkopa|DGM +1 Castigate|GPT +1 Conjurer's Ban|GPT +1 Culling Sun|GPT +1 Deathpact Angel|GTC +1 Debt to the Deathless|DGM +1 Debtors' Knell|GPT +1 Executioner's Swing|GTC +1 Gift of Orzhova|GTC +1 Godless Shrine|GPT +1 Immortal Servitude|GTC +1 Maw of the Obzedat|DGM +1 Merciless Eviction|GTC +1 Mortify|GPT +1 Obzedat's Aid|DGM +1 One Thousand Lashes|GTC +1 Orzhov Basilica|C15 +1 Orzhov Charm|GTC +1 Orzhov Cluestone|C15 +1 Orzhov Guildgate|C15 +1 Orzhov Guildmage|GPT +1 Orzhov Keyrune|GTC +1 Orzhov Signet|C15 +1 Orzhova, the Church of Deals|GPT +1 Pillar of the Paruns|DIS +1 Pillory of the Sleepless|GPT +1 Plains|C15|1 +1 Plains|C15|2 +3 Plains|C15|3 +1 Purge the Profane|GTC +1 Swamp|C15|2 +1 Swamp|C15|3 +2 Swamp|C15|4 +1 Tablet of the Guilds|RTR +1 Transguild Promenade|C13 +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/Teysa, Orzhov Scion Vanguard.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/Teysa, Orzhov Scion Vanguard.dck new file mode 100644 index 00000000000..cd31387bc92 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/Teysa, Orzhov Scion Vanguard.dck @@ -0,0 +1,48 @@ +[metadata] +Name=Teysa, Orzhov Scion Vanguard +[Avatar] +1 Teysa, Orzhov Scion Avatar|VAN +[Main] +1 Angel of Despair|GPT +1 Beckon Apparition|EVE +1 Culling Sun|GPT +1 Deathpact Angel|GTC +1 Disembowel|RAV +1 Godless Shrine|GPT +1 Grisly Spectacle|GTC +1 Hour of Reckoning|RAV +1 Killing Glare|GTC +1 Leyline of the Meek|GPT +1 Mortify|GPT +1 Necroplasm|RAV +1 Ogre Slumlord|GTC +1 Orzhov Basilica|C15 +1 Orzhov Charm|GTC +1 Orzhov Guildgate|C15 +1 Orzhova, the Church of Deals|GPT +1 Phantom General|RTR +1 Pillar of the Paruns|DIS +1 Plains|DTK|1 +1 Plains|DTK|2 +2 Plains|DTK|3 +1 Precinct Captain|RTR +1 Seal of Doom|C15 +2 Seize the Soul|GPT +1 Smite|STH +1 Souls of the Faultless|GPT +3 Swamp|DTK|1 +2 Swamp|DTK|2 +1 Teysa, Orzhov Scion|GPT +1 Transguild Promenade|C13 +1 Triplicate Spirits|M15 +1 Twilight Drover|RAV +1 Ultimate Price|DTK +1 Wake the Reflections|DGM +[Sideboard] + +[Planes] + +[Schemes] + +[Conspiracy] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/Teysa, Orzhov Scion.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/Teysa, Orzhov Scion.dck new file mode 100644 index 00000000000..1d72987c693 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/Teysa, Orzhov Scion.dck @@ -0,0 +1,45 @@ +[metadata] +Name=Teysa, Orzhov Scion +[Commander] +1 Teysa, Orzhov Scion|GPT +[Main] +1 Absolver Thrull|GPT +1 Belfry Spirit|GPT +1 Benediction of Moons|GPT +1 Blind Hunter|GPT +1 Cartel Aristocrat|GTC +1 Conjurer's Ban|GPT +1 Cry of Contrition|GPT +1 Culling Sun|GPT +1 Debtors' Knell|GPT +1 Exhumer Thrull|GPT +1 Godless Shrine|GPT +1 Graven Dominator|GPT +1 Maw of the Obzedat|DGM +1 Merciless Eviction|GTC +1 Mortify|GPT +1 Obzedat's Aid|DGM +1 One Thousand Lashes|GTC +1 Orzhov Basilica|C15 +1 Orzhov Cluestone|C15 +1 Orzhov Euthanist|GPT +1 Orzhov Guildgate|C15 +1 Orzhov Keyrune|GTC +1 Orzhov Pontiff|GPT +1 Orzhov Signet|C15 +1 Orzhova, the Church of Deals|GPT +1 Pillar of the Paruns|DIS +1 Pillory of the Sleepless|GPT +1 Plains|C15|1 +1 Plains|C15|2 +2 Plains|C15|3 +1 Plains|C15|4 +1 Seize the Soul|GPT +1 Sin Collector|DGM +1 Swamp|C15|1 +2 Swamp|C15|3 +1 Swamp|C15|4 +1 Tablet of the Guilds|RTR +1 Transguild Promenade|C13 +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/_events.txt b/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/_events.txt new file mode 100644 index 00000000000..b61b05f2800 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Orzhov Basilica/_events.txt @@ -0,0 +1,8 @@ +Name:Orzhov Extort|Deck:Orzhov Extort.dck|Variant:None|Avatar:Pontiff of Blight|Desc: +Name:Orzhov Haunt|Deck:Orzhov Haunt.dck|Variant:None|Avatar:Blind Hunter|Desc: +Name:Teysa, Orzhov Scion|Deck:Teysa, Orzhov Scion.dck|Variant:Commander|Avatar:Teysa, Orzhov Scion|Desc: +Name:Ghost Council of Orzhova|Deck:Ghost Council of Orzhova.dck|Variant:Commander|Avatar:Ghost Council of Orzhova|Desc: +Name:Karlov of the Ghost Council|Deck:Karlov of the Ghost Council.dck|Variant:Commander|Avatar:Karlov of the Ghost Council|Desc: +Name:Obzedat, Ghost Council|Deck:Obzedat, Ghost Council.dck|Variant:Commander|Avatar:Obzedat, Ghost Council|Desc: +Name:Teysa, Envoy of Ghosts|Deck:Teysa, Envoy of Ghosts.dck|Variant:Commander|Avatar:Teysa, Envoy of Ghosts|Desc: +Name:Teysa, Orzhov Scion|Deck:Teysa, Orzhov Scion Vanguard.dck|Variant:Vanguard|Avatar:Teysa, Orzhov Scion|Desc: \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Exava, Rakdos Blood Witch.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Exava, Rakdos Blood Witch.dck new file mode 100644 index 00000000000..830e0299713 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Exava, Rakdos Blood Witch.dck @@ -0,0 +1,45 @@ +[metadata] +Name=Exava, Rakdos Blood Witch +[Commander] +1 Exava, Rakdos Blood Witch|DGM +[Main] +1 Avatar of Discord|DIS +1 Blood Crypt|RTR +1 Bloodfray Giant|RTR +1 Carnival Hellsteed|RTR +1 Chaos Imps|RTR +1 Cryptborn Horror|RTR +1 Dead Reveler|RTR +1 Dreadbore|RTR +1 Gore-House Chainwalker|RTR +1 Grim Roustabout|RTR +1 Hellhole Flailer|RTR +1 Mountain|RTR|2 +1 Mountain|RTR|4 +3 Mountain|RTR|5 +1 Pillar of the Paruns|DIS +1 Rain of Gore|DIS +1 Rakdos Cackler|RTR +1 Rakdos Carnarium|C13 +1 Rakdos Charm|RTR +1 Rakdos Cluestone|DGM +1 Rakdos Drake|DGM +1 Rakdos Guildgate|C13 +1 Rakdos Guildmage|DIS +1 Rakdos Keyrune|RTR +1 Rakdos Ragemutt|RTR +1 Rakdos Shred-Freak|RTR +1 Rakdos Signet|DIS +1 Rix Maadi, Dungeon Palace|DIS +1 Slaughter Games|RTR +1 Spawn of Rix Maadi|RTR +1 Splatter Thug|RTR +1 Swamp|RTR|1 +1 Swamp|RTR|3 +1 Swamp|RTR|4 +1 Swamp|RTR|5 +1 Tablet of the Guilds|RTR +1 Thrill-Kill Assassin|RTR +1 Transguild Promenade|C13 +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Lyzolda, the Blood Witch Vanguard.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Lyzolda, the Blood Witch Vanguard.dck new file mode 100644 index 00000000000..f9ffbc79430 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Lyzolda, the Blood Witch Vanguard.dck @@ -0,0 +1,50 @@ +[metadata] +Name=Lyzolda, the Blood Witch Vanguard +[Avatar] +1 Lyzolda, the Blood Witch Avatar|VAN +[Main] +1 Avatar of Discord|DIS +1 Blood Crypt|RTR +1 Brain Pry|DIS +1 Delirium Skeins|DIS +1 Hellhole Rats|DIS +1 Kindle the Carnage|DIS +1 Mountain|RTR|3 +1 Mountain|RTR|4 +2 Mountain|RTR|5 +1 Nihilistic Glee|DIS +1 Pack Rat|RTR +1 Pain Magnification|DIS +1 Pillar of the Paruns|DIS +1 Rakdos Augermage|DIS +1 Rakdos Carnarium|C13 +1 Rakdos Charm|RTR +1 Rakdos Cluestone|DGM +1 Rakdos Guildgate|C13 +1 Rakdos Guildmage|DIS +1 Rakdos Keyrune|RTR +1 Rakdos Pit Dragon|DIS +1 Rakdos Ragemutt|RTR +1 Rakdos Ringleader|RTR +1 Rakdos Riteknife|DIS +1 Rakdos Shred-Freak|RTR +1 Rakdos Signet|DIS +1 Rakdos's Return|RTR +1 Rakdos, Lord of Riots|RTR +1 Rix Maadi, Dungeon Palace|DIS +1 Sire of Insanity|DGM +1 Skull Rend|RTR +1 Skullmead Cauldron|DIS +2 Swamp|RTR|1 +2 Swamp|RTR|2 +1 Swamp|RTR|4 +1 Transguild Promenade|C13 +1 Viashino Racketeer|RTR +[Sideboard] + +[Planes] + +[Schemes] + +[Conspiracy] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Lyzolda, the Blood Witch.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Lyzolda, the Blood Witch.dck new file mode 100644 index 00000000000..7f85babad1b --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Lyzolda, the Blood Witch.dck @@ -0,0 +1,45 @@ +[metadata] +Name=Lyzolda, the Blood Witch +[Commander] +1 Lyzolda, the Blood Witch|DIS +[Main] +1 Anthem of Rakdos|DIS +1 Avatar of Discord|DIS +1 Blood Crypt|RTR +1 Carnage Gladiator|DGM +1 Carnival Hellsteed|RTR +1 Cryptborn Horror|RTR +1 Dread Slag|DIS +1 Havoc Festival|RTR +1 Hellhole Flailer|RTR +1 Hellhole Rats|DIS +1 Jagged Poppet|DIS +1 Master of Cruelties|DGM +1 Morgue Burst|DGM +2 Mountain|RTR|1 +1 Mountain|RTR|4 +1 Mountain|RTR|5 +1 Pain Magnification|DIS +1 Pillar of the Paruns|DIS +1 Rakdos Augermage|DIS +1 Rakdos Carnarium|C13 +1 Rakdos Cluestone|DGM +1 Rakdos Guildgate|C13 +1 Rakdos Guildmage|DIS +1 Rakdos Ragemutt|RTR +1 Rakdos Ringleader|RTR +1 Rakdos Riteknife|DIS +1 Rakdos's Return|RTR +1 Rix Maadi, Dungeon Palace|DIS +1 Sire of Insanity|DGM +1 Skull Rend|RTR +1 Spawn of Rix Maadi|RTR +1 Swamp|RTR|2 +1 Swamp|RTR|3 +1 Swamp|RTR|4 +2 Swamp|RTR|5 +1 Tablet of the Guilds|RTR +1 Transguild Promenade|C13 +1 Twinstrike|DIS +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Rakdos Destruction.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Rakdos Destruction.dck new file mode 100644 index 00000000000..7aee4d88408 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Rakdos Destruction.dck @@ -0,0 +1,45 @@ +[metadata] +Name=Rakdos Destruction +[Main] +1 Abrupt Decay|RTR +1 Angel of Despair|COM +1 Assassin's Strike|RTR +1 Blood Crypt|EXP +1 Breeding Pool|EXP +1 Crime // Punishment|DIS +1 Culling Sun|GPT +1 Dreadbore|RTR +1 Forest|HOP|1 +1 Frenzied Tilling|GTC +1 Gaze of Granite|DGM +1 Godless Shrine|EXP +1 Golgari Charm|C15 +1 Hallowed Fountain|EXP +1 Helldozer|HOP +1 High Priest of Penance|GTC +1 Hour of Reckoning|COM +1 Island|HOP|3 +1 Killing Glare|GTC +1 Mortify|CNS +1 Necroplasm|RAV +1 Overgrown Tomb|EXP +1 Plague Boiler|C13 +1 Plains|HOP|5 +1 Putrefy|C15 +1 Rapid Hybridization|C15 +1 Sacred Foundry|EXP +1 Seize the Soul|GPT +1 Steam Vents|EXP +1 Stomping Ground|EXP +1 Supreme Verdict|RTR +1 Swamp|HOP|5 +1 Temple Garden|EXP +1 Teysa, Envoy of Ghosts|C15 +1 Thespian's Stage|GTC +1 Ultimate Price|DTK +1 Vraska the Unseen|DDM +1 Watery Grave|EXP +1 Wreak Havoc|GPT +1 Wrecking Ball|MM2 +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Rakdos Hellbent.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Rakdos Hellbent.dck new file mode 100644 index 00000000000..736fd6547e8 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Rakdos Hellbent.dck @@ -0,0 +1,40 @@ +[metadata] +Name=Rakdos Hellbent +[Main] +1 Anthem of Rakdos|DIS +1 Blood Crypt|RTR +1 Cackling Flames|DIS +1 Demon's Jester|DIS +1 Demonfire|DIS +1 Dreadbore|RTR +1 Gobhobbler Rats|DIS +1 Infernal Tutor|DIS +1 Jagged Poppet|DIS +1 Mountain|C13|1 +2 Mountain|C13|3 +1 Mountain|C13|4 +1 Nihilistic Glee|DIS +1 Pillar of the Paruns|DIS +1 Ragamuffyn|DIS +1 Rakdos Augermage|DIS +1 Rakdos Carnarium|C13 +1 Rakdos Charm|RTR +1 Rakdos Cluestone|DGM +1 Rakdos Guildgate|C13 +1 Rakdos Guildmage|DIS +1 Rakdos Ickspitter|DIS +1 Rakdos Keyrune|RTR +1 Rakdos Pit Dragon|DIS +1 Rakdos Ragemutt|RTR +1 Rakdos Ringleader|RTR +1 Rakdos Shred-Freak|RTR +1 Rakdos Signet|DIS +1 Rix Maadi, Dungeon Palace|DIS +1 Slaughterhouse Bouncer|DIS +1 Slithering Shade|DIS +2 Swamp|C13|1 +2 Swamp|C13|2 +1 Swamp|C13|3 +1 Taste for Mayhem|DIS +1 Transguild Promenade|C13 +1 Twinstrike|DIS diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Rakdos Unleash.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Rakdos Unleash.dck new file mode 100644 index 00000000000..de464766d70 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Rakdos Unleash.dck @@ -0,0 +1,41 @@ +[metadata] +Name=Rakdos Unleash +[Main] +1 Auger Spree|RTR +1 Blood Crypt|RTR +1 Bloodfray Giant|RTR +1 Carnival Hellsteed|RTR +1 Chaos Imps|RTR +1 Cryptborn Horror|RTR +1 Dead Reveler|RTR +1 Dreadbore|RTR +1 Exava, Rakdos Blood Witch|DGM +1 Gore-House Chainwalker|RTR +1 Grim Roustabout|RTR +1 Hellhole Flailer|RTR +1 Master of Cruelties|DGM +2 Mountain|RTR|2 +2 Mountain|RTR|4 +1 Mountain|RTR|5 +1 Pillar of the Paruns|DIS +1 Rakdos Cackler|RTR +1 Rakdos Carnarium|C13 +1 Rakdos Charm|RTR +1 Rakdos Cluestone|DGM +1 Rakdos Drake|DGM +1 Rakdos Guildgate|C13 +1 Rakdos Guildmage|DIS +1 Rakdos Keyrune|RTR +1 Rakdos Ragemutt|RTR +1 Rakdos Shred-Freak|RTR +1 Rakdos Signet|DIS +1 Rakdos's Return|RTR +1 Rakdos, Lord of Riots|RTR +1 Spawn of Rix Maadi|RTR +1 Splatter Thug|RTR +1 Swamp|RTR|1 +1 Swamp|RTR|2 +1 Swamp|RTR|4 +1 Swamp|RTR|5 +1 Thrill-Kill Assassin|RTR +1 Transguild Promenade|C13 diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Rakdos the Defiler.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Rakdos the Defiler.dck new file mode 100644 index 00000000000..41b9f46b555 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Rakdos the Defiler.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Rakdos the Defiler +[Commander] +1 Rakdos the Defiler|DIS +[Main] +1 Anthem of Rakdos|DIS +1 Auger Spree|RTR +1 Carnage Gladiator|DGM +1 Carnival Hellsteed|RTR +1 Dread Slag|DIS +1 Dreadbore|RTR +1 Havoc Festival|RTR +1 Master of Cruelties|DGM +1 Morgue Burst|DGM +1 Mountain|RTR|1 +1 Mountain|RTR|2 +2 Mountain|RTR|3 +1 Pain Magnification|DIS +1 Rain of Gore|DIS +1 Rakdos Cackler|RTR +1 Rakdos Carnarium|C13 +1 Rakdos Charm|RTR +1 Rakdos Cluestone|DGM +1 Rakdos Guildgate|C13 +1 Rakdos Guildmage|DIS +1 Rakdos Ickspitter|DIS +1 Rakdos Keyrune|RTR +1 Rakdos Ragemutt|RTR +1 Rakdos Shred-Freak|RTR +1 Rakdos Signet|DIS +1 Rakdos's Return|RTR +1 Rix Maadi Guildmage|RTR +1 Showstopper|DGM +1 Sire of Insanity|DGM +1 Skull Rend|RTR +1 Slaughter Games|RTR +1 Spawn of Rix Maadi|RTR +1 Spike Jester|DGM +3 Swamp|RTR|2 +1 Swamp|RTR|3 +1 Swamp|RTR|5 +1 Wrecking Ball|DIS +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Rakdos, Lord of Riots.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Rakdos, Lord of Riots.dck new file mode 100644 index 00000000000..f3106d33bcb --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Rakdos, Lord of Riots.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Rakdos, Lord of Riots +[Commander] +1 Rakdos, Lord of Riots|RTR +[Main] +1 Anthem of Rakdos|DIS +1 Blood Crypt|RTR +1 Char|RAV +1 Demonfire|DIS +1 Dreadbore|RTR +1 Five-Alarm Fire|GTC +1 Hellhole Flailer|RTR +1 Hellhole Rats|DIS +1 Jagged Poppet|DIS +1 Master of Cruelties|DGM +1 Morgue Burst|DGM +2 Mountain|RTR|1 +1 Mountain|RTR|3 +2 Mountain|RTR|4 +1 Pain Magnification|DIS +1 Pillar of the Paruns|DIS +1 Rain of Gore|DIS +1 Rakdos Cackler|RTR +1 Rakdos Carnarium|C13 +1 Rakdos Charm|RTR +1 Rakdos Guildgate|C13 +1 Rakdos Ickspitter|DIS +1 Rakdos Ringleader|RTR +1 Rakdos's Return|RTR +1 Razortip Whip|GTC +1 Rix Maadi Guildmage|RTR +1 Rix Maadi, Dungeon Palace|DIS +1 Showstopper|DGM +1 Skull Rend|RTR +1 Swamp|RTR|3 +2 Swamp|RTR|4 +1 Swamp|RTR|5 +1 Tablet of the Guilds|RTR +1 Toil // Trouble|DGM +1 Transguild Promenade|C13 +1 Twinstrike|DIS +1 Volatile Rig|RTR +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Shattergang Brothers.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Shattergang Brothers.dck new file mode 100644 index 00000000000..1feb5f0f563 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/Shattergang Brothers.dck @@ -0,0 +1,45 @@ +[metadata] +Name=Shattergang Brothers +[Commander] +1 Shattergang Brothers|C13 +[Main] +1 Blood Crypt|RTR +1 Desecration Demon|RTR +1 Doubling Season|RAV +1 Druidic Satchel|C13 +1 Flesh // Blood|DGM +3 Forest|RTR|1 +1 Forest|RTR|2 +1 Forest|RTR|3 +1 Golgari Germination|RAV +1 Golgari Guildmage|C13 +1 Jade Mage|C13 +1 Korozda Guildmage|C15 +1 Krenko, Mob Boss|DDN +1 Mazirek, Kraul Death Priest|C15 +1 Miming Slime|GTC +1 Mountain|RTR|4 +1 Overgrown Tomb|RTR +1 Pack Rat|RTR +1 Pillar of the Paruns|DIS +1 Savra, Queen of the Golgari|RAV +1 Scatter the Seeds|RAV +1 Shambling Shell|RAV +1 Slime Molding|RTR +1 Sporemound|M14 +1 Stomping Ground|GPT +1 Swamp|RTR|2 +1 Swamp|RTR|4 +1 Swamp|RTR|5 +1 Tablet of the Guilds|RTR +1 Thespian's Stage|GTC +1 Transguild Promenade|C13 +1 Ulasht, the Hate Seed|GPT +1 Varolz, the Scar-Striped|DGM +1 Verdant Eidolon|DIS +1 Vraska the Unseen|RTR +1 Wild Cantor|GPT +1 Woebringer Demon|RAV +1 Wurmweaver Coil|GPT +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/_events.txt b/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/_events.txt new file mode 100644 index 00000000000..0cd8f242983 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Rakdos Carnarium/_events.txt @@ -0,0 +1,9 @@ +Name:Rakdos Hellbent|Deck:Rakdos Hellbent.dck|Variant:None|Avatar:Jagged Poppet|Desc: +Name:Rakdos Unleash|Deck:Rakdos Unleash.dck|Variant:None|Avatar:Hellhole Flailer|Desc: +Name:Rakdos Destruction|Deck:Rakdos Destruction.dck|Variant:None|Avatar:Helldozer|Desc: +Name:Exava, Rakdos Blood Witch|Deck:Exava, Rakdos Blood Witch.dck|Variant:Commander|Avatar:Exava, Rakdos Blood Witch|Desc: +Name:Lyzolda, the Blood Witch|Deck:Lyzolda, the Blood Witch.dck|Variant:Commander|Avatar:Lyzolda, Blood Witch|Desc: +Name:Rakdos the Defiler|Deck:Rakdos the Defiler.dck|Variant:Commander|Avatar:Rakdos the Defiler|Desc: +Name:Rakdos, Lord of Riots|Deck:Rakdos, Lord of Riots.dck|Variant:Commander|Avatar:Rakdos, Lord of Riots|Desc: +Name:Shattergang Brothers|Deck:Shattergang Brothers.dck|Variant:Commander|Avatar:Shattergang Brothers|Desc: +Name:Lyzolda, the Blood Witch|Deck:Lyzolda, the Blood Witch Vanguard.dck|Variant:Vanguard|Avatar:Lyzolda, the Blood Witch|Desc: \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Chorus of the Conclave.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Chorus of the Conclave.dck new file mode 100644 index 00000000000..e5dd40d19bc --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Chorus of the Conclave.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Chorus of the Conclave +[Commander] +1 Chorus of the Conclave|COM +[Main] +1 Burst of Strength|GTC +1 Centaur's Herald|RTR +1 Common Bond|RTR +1 Crown of Convergence|RAV +1 Death's Presence|RTR +1 Doubling Season|RAV +1 Druid's Deliverance|RTR +1 Forced Adaptation|GTC +3 Forest|C13|1 +1 Forest|C13|2 +1 Forest|C13|3 +1 Hindervines|GTC +1 Ivy Lane Denizen|GTC +1 Loxodon Smiter|RTR +1 Mutant's Prey|DGM +1 Ooze Flux|GTC +1 Phytohydra|RAV +1 Pillar of the Paruns|DIS +1 Plains|C13|2 +2 Plains|C13|3 +1 Plains|C13|4 +1 Rhox Maulers|ORI +1 Selesnya Charm|C13 +1 Selesnya Cluestone|DGM +1 Selesnya Guildgate|C13 +1 Selesnya Guildmage|C13 +1 Selesnya Keyrune|RTR +1 Selesnya Sanctuary|C13 +1 Selesnya Signet|C13 +1 Silhana Ledgewalker|PC2 +1 Spire Tracer|GTC +1 Tablet of the Guilds|RTR +1 Temple Garden|RTR +1 Transguild Promenade|C13 +1 Twilight Drover|RAV +1 Vinelasher Kudzu|RAV +1 Vitu-Ghazi, the City-Tree|C13 +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Emmara Tandris.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Emmara Tandris.dck new file mode 100644 index 00000000000..02e2c45e012 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Emmara Tandris.dck @@ -0,0 +1,42 @@ +[metadata] +Name=Emmara Tandris +[Commander] +1 Emmara Tandris|DGM +[Main] +1 Doubling Season|RAV +1 Eyes in the Skies|RTR +1 Forest|RAV|2 +3 Forest|RAV|4 +1 Growing Ranks|RTR +1 Hour of Reckoning|RAV +1 Knight Watch|GTC +1 Knightly Valor|ORI +1 Leyline of the Meek|GPT +1 Ooze Flux|GTC +1 Phantom General|RTR +1 Pillar of the Paruns|DIS +2 Plains|RAV|2 +3 Plains|RAV|4 +1 Precinct Captain|RTR +1 Rootborn Defenses|RTR +1 Security Blockade|RTR +1 Seed Spark|RAV +1 Selesnya Charm|C13 +1 Selesnya Cluestone|DGM +1 Selesnya Guildgate|C13 +1 Selesnya Guildmage|C13 +1 Selesnya Keyrune|RTR +1 Selesnya Sanctuary|C13 +1 Selesnya Signet|C13 +1 Seller of Songbirds|RTR +1 Storm Herd|GPT +1 Tablet of the Guilds|RTR +1 Temple Garden|RTR +1 Transguild Promenade|C13 +1 Triplicate Spirits|M15 +1 Trostani's Judgment|RTR +1 Twilight Drover|RAV +1 Vitu-Ghazi, the City-Tree|C13 +1 Wake the Reflections|DGM +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Gatherer of Graces Voltron.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Gatherer of Graces Voltron.dck new file mode 100644 index 00000000000..0381a77f3b3 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Gatherer of Graces Voltron.dck @@ -0,0 +1,45 @@ +[metadata] +Name=Gatherer of Graces Voltron +[Main] +1 Alpha Authority|GTC +1 Auratouched Mage|PC2 +1 Beastmaster's Magemark|GPT +1 Birds of Paradise|M12 +1 Blood Crypt|EXP +1 Bramble Elemental|PC2 +1 Breeding Pool|EXP +1 Chromatic Lantern|RTR +1 Dying Wish|GTC +1 Elemental Resonance|DIS +1 Ethereal Armor|RTR +1 Fencer's Magemark|GPT +1 Fists of Ironwood|COM +1 Followed Footsteps|RAV +1 Forest|PC2|3 +1 Gatherer of Graces|GPT +1 Gift of Orzhova|GTC +1 Godless Shrine|EXP +1 Guardian's Magemark|GPT +1 Hallowed Fountain|EXP +1 Holy Mantle|GTC +1 Infiltrator's Magemark|GPT +1 Knightly Valor|ORI +1 Necromancer's Magemark|GPT +1 One Thousand Lashes|GTC +1 Overgrown Tomb|EXP +1 Plains|PC2|5 +1 Pollenbright Wings|PC2 +1 Rogue's Passage|C15 +1 Sacred Foundry|EXP +1 Shielding Plax|DIS +1 Spectral Searchlight|CNS +1 Steam Vents|EXP +1 Stomping Ground|EXP +1 Swamp|PC2|2 +1 Temple Garden|EXP +1 Thespian's Stage|GTC +1 Three Dreams|PC2 +1 Transguild Promenade|C13 +1 Watery Grave|EXP +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Loxodon Hierarch.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Loxodon Hierarch.dck new file mode 100644 index 00000000000..f9d12538788 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Loxodon Hierarch.dck @@ -0,0 +1,50 @@ +[metadata] +Name=Loxodon Hierarch +[Avatar] +1 Loxodon Hierarch Avatar|VAN +[Main] +1 Advent of the Wurm|DGM +1 Armada Wurm|RTR +1 Call of the Conclave|RTR +1 Centaur's Herald|RTR +1 Coursers' Accord|RTR +1 Doubling Season|RAV +1 Druid's Deliverance|RTR +1 Druidic Satchel|C13 +1 Emmara Tandris|DGM +1 Fists of Ironwood|RAV +1 Forest|C13|1 +3 Forest|C13|2 +1 Forest|C13|4 +1 Grove of the Guardian|RTR +1 Growing Ranks|RTR +1 Jade Mage|C13 +1 Pillar of the Paruns|DIS +1 Plains|C13|1 +2 Plains|C13|3 +1 Pollenbright Wings|PC2 +1 Scatter the Seeds|RAV +1 Selesnya Charm|C13 +1 Selesnya Evangel|RAV +1 Selesnya Guildgate|C13 +1 Selesnya Guildmage|C13 +1 Selesnya Sanctuary|C13 +1 Slime Molding|RTR +1 Sporemound|M14 +1 Sundering Growth|RTR +1 Temple Garden|RTR +1 Tolsimir Wolfblood|RAV +1 Transguild Promenade|C13 +1 Trostani, Selesnya's Voice|RTR +1 Vitu-Ghazi Guildmage|RTR +1 Vitu-Ghazi, the City-Tree|C13 +1 Voice of Resurgence|DGM +1 Wayfaring Temple|RTR +[Sideboard] + +[Planes] + +[Schemes] + +[Conspiracy] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Selesnya Convoke.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Selesnya Convoke.dck new file mode 100644 index 00000000000..e5817c54056 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Selesnya Convoke.dck @@ -0,0 +1,40 @@ +[metadata] +Name=Selesnya Convoke +[Main] +1 Autochthon Wurm|RAV +1 Chant of Vitu-Ghazi|RAV +1 Chord of Calling|M15 +1 Conclave Equenaut|RAV +1 Conclave Phalanx|RAV +1 Conclave's Blessing|RAV +1 Devouring Light|M15 +1 Ephemeral Shields|M15 +1 Feral Incarnation|M15 +1 Forest|C13|1 +1 Forest|C13|2 +2 Forest|C13|4 +1 Gather Courage|M15 +1 Guardian of Vitu-Ghazi|RAV +1 Hour of Reckoning|RAV +1 Living Totem|M15 +1 Meditation Puzzle|M15 +1 Overwhelm|M15 +1 Pillar of the Paruns|DIS +2 Plains|C13|1 +1 Plains|C13|3 +2 Plains|C13|4 +1 Return to the Ranks|M15 +1 Root-Kin Ally|RAV +1 Scatter the Seeds|RAV +1 Selesnya Cluestone|DGM +1 Selesnya Guildgate|C13 +1 Selesnya Keyrune|RTR +1 Selesnya Sanctuary|C13 +1 Selesnya Signet|C13 +1 Seraph of the Masses|M15 +1 Siege Wurm|M15 +1 Sundering Vitae|RAV +1 Temple Garden|RTR +1 Transguild Promenade|C13 +1 Triplicate Spirits|M15 +1 Vitu-Ghazi, the City-Tree|C13 diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Selesnya Populate.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Selesnya Populate.dck new file mode 100644 index 00000000000..0e5328dbbf0 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Selesnya Populate.dck @@ -0,0 +1,40 @@ +[metadata] +Name=Selesnya Populate +[Main] +1 Advent of the Wurm|DGM +1 Call of the Conclave|RTR +2 Coursers' Accord|RTR +1 Doubling Season|RAV +1 Druid's Deliverance|RTR +1 Eyes in the Skies|RTR +1 Forest|RAV|1 +1 Forest|RAV|2 +1 Forest|RAV|3 +1 Forest|RAV|4 +1 Grove of the Guardian|RTR +1 Growing Ranks|RTR +1 Horncaller's Chant|RTR +1 Pillar of the Paruns|DIS +1 Plains|RAV|2 +2 Plains|RAV|3 +2 Plains|RAV|4 +1 Pollenbright Wings|PC2 +1 Rootborn Defenses|RTR +1 Scion of Vitu-Ghazi|DGM +1 Selesnya Charm|C13 +1 Selesnya Cluestone|DGM +1 Selesnya Evangel|RAV +1 Selesnya Guildgate|C13 +1 Selesnya Guildmage|C13 +1 Selesnya Keyrune|RTR +1 Selesnya Sanctuary|C13 +1 Selesnya Signet|C13 +1 Sundering Growth|RTR +1 Temple Garden|RTR +1 Transguild Promenade|C13 +1 Trostani's Judgment|RTR +1 Trostani, Selesnya's Voice|RTR +1 Vitu-Ghazi Guildmage|RTR +1 Vitu-Ghazi, the City-Tree|C13 +1 Wake the Reflections|DGM +1 Wayfaring Temple|RTR \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Tolsimir Wolfblood.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Tolsimir Wolfblood.dck new file mode 100644 index 00000000000..7410df76627 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Tolsimir Wolfblood.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Tolsimir Wolfblood +[Commander] +1 Tolsimir Wolfblood|RAV +[Main] +1 Armada Wurm|RTR +1 Armored Wolf-Rider|DGM +1 Autochthon Wurm|RAV +1 Centaur Healer|RTR +1 Collective Blessing|RTR +1 Common Bond|RTR +1 Congregation at Dawn|RAV +1 Crown of Convergence|RAV +4 Forest|RTR|1 +1 Forest|RTR|4 +1 Guardian of Vitu-Ghazi|RAV +1 Heroes' Reunion|RTR +1 Loxodon Smiter|RTR +1 Phytohydra|RAV +1 Pillar of the Paruns|DIS +1 Plains|RTR|1 +1 Plains|RTR|2 +1 Plains|RTR|4 +1 Plains|RTR|5 +1 Pollenbright Wings|PC2 +1 Risen Sanctuary|RTR +1 Seeds of Strength|RAV +1 Selesnya Charm|C13 +1 Selesnya Cluestone|DGM +1 Selesnya Guildgate|C13 +1 Selesnya Guildmage|C13 +1 Selesnya Keyrune|RTR +1 Selesnya Sagittars|RAV +1 Selesnya Sanctuary|C13 +1 Selesnya Signet|C13 +1 Tablet of the Guilds|RTR +1 Temple Garden|RTR +1 Transguild Promenade|C13 +1 Trostani's Summoner|DGM +1 Unflinching Courage|DGM +1 Vitu-Ghazi, the City-Tree|C13 +1 Voice of Resurgence|DGM +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Trostani, Selesnyas Voice.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Trostani, Selesnyas Voice.dck new file mode 100644 index 00000000000..4e5e3c5afa1 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Trostani, Selesnyas Voice.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Trostani, Selesnya's Voice +[Commander] +1 Trostani, Selesnya's Voice|RTR +[Main] +1 Advent of the Wurm|DGM +1 Alive // Well|DGM +1 Armada Wurm|RTR +1 Call of the Conclave|RTR +1 Coursers' Accord|RTR +1 Crown of Convergence|RAV +1 Doubling Season|RAV +1 Druidic Satchel|C13 +1 Forest|RTR|1 +1 Forest|RTR|3 +2 Forest|RTR|5 +1 Giant Adephage|GTC +1 Grove of the Guardian|RTR +1 Growing Ranks|RTR +1 Hour of Reckoning|RAV +1 Pillar of the Paruns|DIS +1 Plains|RTR|1 +3 Plains|RTR|4 +1 Plains|RTR|5 +1 Pollenbright Wings|PC2 +1 Selesnya Charm|C13 +1 Selesnya Cluestone|DGM +1 Selesnya Evangel|RAV +1 Selesnya Guildgate|C13 +1 Selesnya Guildmage|C13 +1 Selesnya Keyrune|RTR +1 Selesnya Sanctuary|C13 +1 Selesnya Signet|C13 +1 Sundering Growth|RTR +1 Tablet of the Guilds|RTR +1 Temple Garden|RTR +1 Transguild Promenade|C13 +1 Trostani's Summoner|DGM +1 Vitu-Ghazi Guildmage|RTR +1 Vitu-Ghazi, the City-Tree|C13 +1 Voice of Resurgence|DGM +1 Wayfaring Temple|RTR +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Yeva, Natures Herald.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Yeva, Natures Herald.dck new file mode 100644 index 00000000000..4314b42013a --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/Yeva, Natures Herald.dck @@ -0,0 +1,36 @@ +[metadata] +Name=Yeva, Nature's Herald +[Commander] +1 Yeva, Nature's Herald|M13 +[Main] +1 Brushstrider|RTR +1 Carven Caryatid|RAV +1 Centaur's Herald|RTR +1 Civic Wayfinder|RAV +1 Conclave Naturalists|ORI +1 Dryad Sophisticate|GPT +1 Elvish Skysweeper|C14 +1 Forest|M13|1 +3 Forest|M13|2 +8 Forest|M13|3 +3 Forest|M13|4 +1 Gatecreeper Vine|RTR +1 Indrik Stomphowler|C15 +1 Ivy Lane Denizen|GTC +1 Jade Mage|C13 +1 Kraul Warrior|DGM +1 Living Totem|M15 +1 Loaming Shaman|C15 +1 Oak Street Innkeeper|RTR +1 Silhana Ledgewalker|PC2 +1 Silhana Starfletcher|GPT +1 Spire Tracer|GTC +1 Sporemound|M14 +1 Sprouting Phytohydra|DIS +1 Starved Rusalka|GPT +1 Stone-Seeder Hierophant|RAV +1 Sylvan Primordial|GTC +1 Vinelasher Kudzu|RAV +1 Yeva's Forcemage|ORI +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/_events.txt b/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/_events.txt new file mode 100644 index 00000000000..8e978bcd645 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Selesnya Sanctuary/_events.txt @@ -0,0 +1,9 @@ +Name:Selesnya Convoke|Deck:Selesnya Convoke.dck|Variant:None|Avatar:Autochthon Wurm|Desc: +Name:Selesnya Populate|Deck:Selesnya Populate.dck|Variant:None|Avatar:Wayfaring Temple|Desc: +Name:Gatherer of Graces Voltron|Deck:Gatherer of Graces Voltron.dck|Variant:None|Avatar:Gatherer of Graces|Desc: +Name:Chorus of the Conclave|Deck:Chorus of the Conclave.dck|Variant:Commander|Avatar:Chorus of the Conclave|Desc: +Name:Tolsimir Wolfblood|Deck:Tolsimir Wolfblood.dck|Variant:Commander|Avatar:Tolsimir Wolfblood|Desc: +Name:Emmara Tandris|Deck:Emmara Tandris.dck|Variant:Commander|Avatar:Emmara Tandris|Desc: +Name:Trostani, Selesnya's Voice|Deck:Trostani, Selesnya's Voice.dck|Variant:Commander|Avatar:Trostani, Selesnya's Voice|Desc: +Name:Yeva, Nature's Herald|Deck:Yeva, Nature's Herald.dck|Variant:Commander|Avatar:Yeva, Nature's Herald|Desc: +Name:Loxodon Hierarch|Deck:Loxodon Hierarch.dck|Variant:Vanguard|Avatar:Loxodon Hierarch|Desc: \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Biovisionary.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Biovisionary.dck new file mode 100644 index 00000000000..048060ccc5c --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Biovisionary.dck @@ -0,0 +1,41 @@ +[metadata] +Name=Biovisionary +[Main] +1 Biomass Mutation|GTC +1 Biovisionary|GTC +1 Breeding Pool|EXP +1 Copy Enchantment|RAV +1 Cytoshape|DIS +1 Doubling Season|MMA +1 Dryad Sophisticate|GPT +1 Followed Footsteps|RAV +3 Forest|RTR|2 +1 Forest|RTR|3 +1 Forest|RTR|5 +1 Growing Ranks|RTR +1 Island|RTR|2 +3 Island|RTR|3 +1 Island|RTR|5 +1 Novijen, Heart of Progress|C15 +1 Progenitor Mimic|DGM +1 Realmwright|GTC +1 Recollect|10E +1 Remand|MM2 +1 Seek the Horizon|RTR +1 Serene Remembrance|GTC +1 Simic Charm|GTC +1 Simic Cluestone|DGM +1 Simic Growth Chamber|C15 +1 Simic Guildgate|C15 +1 Simic Guildmage|DIS +1 Simic Keyrune|C15 +1 Simic Signet|C15 +1 Slime Molding|RTR +1 Stolen Identity|GTC +1 Stomp and Howl|DIS +1 Sundering Growth|RTR +1 Tablet of the Guilds|RTR +1 Thespian's Stage|GTC +1 Unexpected Results|GTC +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Experiment Kraj.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Experiment Kraj.dck new file mode 100644 index 00000000000..c5fed23c0b1 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Experiment Kraj.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Experiment Kraj +[Commander] +1 Experiment Kraj|DIS +[Main] +1 Beetleform Mage|DGM +1 Bioshift|GTC +1 Birds of Paradise|M12 +1 Breeding Pool|DIS +1 Cytoplast Manipulator|DIS +1 Evolution Vat|DIS +1 Forced Adaptation|GTC +1 Forest|C15|1 +1 Forest|C15|2 +2 Forest|C15|3 +1 Forest|C15|4 +1 Gyre Sage|GTC +3 Island|C15|1 +1 Island|C15|2 +1 Ivy Lane Denizen|GTC +1 Master Biomancer|GTC +1 Novijen, Heart of Progress|C15 +1 Omnibian|DIS +1 Ooze Flux|GTC +1 Pillar of the Paruns|DIS +1 Plaxcaster Frogling|DIS +1 Shielding Plax|DIS +1 Simic Basilisk|DIS +1 Simic Charm|GTC +1 Simic Cluestone|DGM +1 Simic Fluxmage|GTC +1 Simic Growth Chamber|C15 +1 Simic Guildgate|C15 +1 Simic Guildmage|DIS +1 Simic Keyrune|C15 +1 Simic Manipulator|GTC +1 Simic Ragworm|DIS +1 Simic Signet|C15 +1 Tablet of the Guilds|RTR +1 Transguild Promenade|C13 +1 Vigean Graftmage|DIS +1 Zameck Guildmage|GTC +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Jace, the Living Guildpact.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Jace, the Living Guildpact.dck new file mode 100644 index 00000000000..f0bc02fe8d7 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Jace, the Living Guildpact.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Jace, the Living Guildpact +[Main] +1 Azorius Guildgate|C13 +1 Beck // Call|DGM +1 Boros Guildgate|C15 +1 Brace for Impact|DIS +1 Breaking // Entering|DGM +1 Catch // Release|DGM +1 Chromatic Lantern|RTR +1 Dimir Guildgate|C13 +1 Emmara Tandris|DGM +1 Exava, Rakdos Blood Witch|DGM +1 Flesh // Blood|DGM +1 Ghost Quarter|C15 +1 Golgari Guildgate|C15 +1 Gruul Guildgate|C13 +1 Izzet Guildgate|C15 +1 Jace, the Living Guildpact|M15 +1 Lavinia of the Tenth|DGM +1 Lobber Crew|RTR +1 Maze Abomination|DGM +1 Maze Behemoth|DGM +1 Maze Glider|DGM +1 Maze Rusher|DGM +1 Maze Sentinel|DGM +1 Maze's End|DGM +1 Melek, Izzet Paragon|DGM +1 Mirko Vosk, Mind Drinker|DGM +1 Orzhov Guildgate|C15 +1 Psychotic Fury|DIS +1 Pyroconvergence|RTR +1 Rakdos Guildgate|C13 +1 Ready // Willing|DGM +1 Rogue's Passage|C15 +1 Ruric Thar, the Unbowed|DGM +1 Selesnya Guildgate|C13 +1 Simic Guildgate|C15 +1 Tajic, Blade of the Legion|DGM +1 Teysa, Envoy of Ghosts|DGM +1 Thespian's Stage|GTC +1 Transguild Promenade|C13 +1 Varolz, the Scar-Striped|DGM +1 Vorel of the Hull Clade|DGM diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Momir Vig, Simic Visionary.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Momir Vig, Simic Visionary.dck new file mode 100644 index 00000000000..74b5781ff63 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Momir Vig, Simic Visionary.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Momir Vig, Simic Visionary +[Commander] +1 Momir Vig, Simic Visionary|DIS +[Main] +1 Aquastrand Spider|DIS +1 Bioshift|GTC +1 Bred for the Hunt|DGM +1 Breeding Pool|DIS +1 Cytoplast Manipulator|DIS +1 Cytoplast Root-Kin|DIS +1 Cytospawn Shambler|DIS +1 Elusive Krasis|GTC +1 Evolution Vat|DIS +3 Forest|RTR|1 +1 Forest|RTR|3 +1 Forest|RTR|4 +1 Helium Squirter|DIS +1 Island|RTR|2 +2 Island|RTR|4 +1 Island|RTR|5 +1 Krasis Incubation|DGM +1 Master Biomancer|GTC +1 Mystic Genesis|GTC +1 Novijen Sages|DIS +1 Novijen, Heart of Progress|C15 +1 Omnibian|DIS +1 Pillar of the Paruns|DIS +1 Plasm Capture|DGM +1 Plaxcaster Frogling|DIS +1 Simic Basilisk|DIS +1 Simic Cluestone|DGM +1 Simic Growth Chamber|C15 +1 Simic Guildgate|C15 +1 Simic Initiate|DIS +1 Simic Keyrune|C15 +1 Simic Signet|C15 +1 Sporeback Troll|DIS +1 Tablet of the Guilds|RTR +1 Transguild Promenade|C13 +1 Vigean Graftmage|DIS +1 Vigean Hydropon|DIS +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Momir Vig.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Momir Vig.dck new file mode 100644 index 00000000000..f5623eaa0ab --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Momir Vig.dck @@ -0,0 +1,36 @@ +[metadata] +Name=Momir Vig +[Avatar] +1 Momir Vig, Simic Visionary Avatar|VAN +[Main] +1 Biovisionary|GTC +1 Doubling Season|RAV +1 Druid's Deliverance|RTR +1 Followed Footsteps|RAV +3 Forest|RTR|1 +2 Forest|RTR|2 +3 Forest|RTR|3 +4 Forest|RTR|4 +6 Forest|RTR|5 +1 Growing Ranks|RTR +1 Island|RTR|1 +2 Island|RTR|2 +2 Island|RTR|3 +3 Island|RTR|5 +1 Leafdrake Roost|C13 +1 Mystic Genesis|GTC +1 Plasm Capture|DGM +1 Progenitor Mimic|DGM +1 Shielding Plax|DIS +1 Simic Guildmage|DIS +1 Stolen Identity|GTC +1 Sundering Growth|RTR +1 Unexpected Results|GTC +[Sideboard] + +[Planes] + +[Schemes] + +[Conspiracy] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Prime Speaker Zegana.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Prime Speaker Zegana.dck new file mode 100644 index 00000000000..4736d6ba8c8 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Prime Speaker Zegana.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Prime Speaker Zegana +[Commander] +1 Prime Speaker Zegana|C15 +[Main] +1 Biovisionary|GTC +1 Breeding Pool|DIS +1 Cytoshape|DIS +1 Elusive Krasis|GTC +1 Evolution Vat|DIS +1 Experiment One|C15 +1 Fathom Mage|GTC +2 Forest|C15|1 +1 Forest|C15|3 +1 Forest|C15|4 +1 Gyre Sage|GTC +2 Island|C15|1 +1 Island|C15|2 +2 Island|C15|4 +1 Master Biomancer|GTC +1 Mystic Genesis|GTC +1 Novijen, Heart of Progress|C15 +1 Omnibian|DIS +1 Pillar of the Paruns|DIS +1 Plasm Capture|DGM +1 Progenitor Mimic|DGM +1 Renegade Krasis|DGM +1 Shambleshark|GTC +1 Simic Charm|GTC +1 Simic Cluestone|DGM +1 Simic Fluxmage|GTC +1 Simic Growth Chamber|C15 +1 Simic Guildgate|C15 +1 Simic Guildmage|DIS +1 Simic Keyrune|C15 +1 Simic Manipulator|GTC +1 Simic Signet|C15 +1 Simic Sky Swallower|DIS +1 Tablet of the Guilds|RTR +1 Transguild Promenade|C13 +1 Unexpected Results|GTC +1 Voidslime|DIS +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Simic Evolve.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Simic Evolve.dck new file mode 100644 index 00000000000..82c38ab79f6 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Simic Evolve.dck @@ -0,0 +1,39 @@ +[metadata] +Name=Simic Evolve +[Main] +1 Adaptive Snapjaw|GTC +1 Battering Krasis|DGM +1 Biomass Mutation|GTC +1 Breeding Pool|DIS +1 Clinging Anemones|GTC +1 Cloudfin Raptor|GTC +1 Crocanura|GTC +1 Death's Presence|RTR +1 Doubling Season|RAV +1 Elusive Krasis|GTC +1 Experiment One|C15 +1 Fathom Mage|GTC +1 Forest|C15|1 +2 Forest|C15|2 +2 Forest|C15|3 +1 Gyre Sage|GTC +3 Island|C15|1 +1 Island|C15|4 +1 Master Biomancer|GTC +1 Novijen, Heart of Progress|C15 +1 Ooze Flux|GTC +1 Pillar of the Paruns|DIS +1 Progenitor Mimic|DGM +1 Renegade Krasis|DGM +1 Shambleshark|GTC +1 Simic Charm|GTC +1 Simic Cluestone|DGM +1 Simic Fluxmage|GTC +1 Simic Growth Chamber|C15 +1 Simic Guildgate|C15 +1 Simic Guildmage|DIS +1 Simic Keyrune|C15 +1 Simic Manipulator|GTC +1 Simic Signet|C15 +1 Simic Sky Swallower|DIS +1 Transguild Promenade|C13 diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Simic Graft.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Simic Graft.dck new file mode 100644 index 00000000000..13cbe8a3be4 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Simic Graft.dck @@ -0,0 +1,40 @@ +[metadata] +Name=Simic Graft +[Main] +1 Aquastrand Spider|DIS +1 Biomass Mutation|GTC +1 Breeding Pool|DIS +1 Cytoplast Manipulator|DIS +1 Cytoplast Root-Kin|DIS +1 Cytoshape|DIS +1 Cytospawn Shambler|DIS +1 Doubling Season|RAV +2 Forest|C13|2 +2 Forest|C13|3 +1 Forest|C13|4 +1 Helium Squirter|DIS +1 Island|C13|1 +1 Island|C13|2 +2 Island|C13|3 +1 Master Biomancer|GTC +1 Novijen Sages|DIS +1 Novijen, Heart of Progress|C15 +1 Omnibian|DIS +1 Pillar of the Paruns|DIS +1 Plasm Capture|DGM +1 Plaxcaster Frogling|DIS +1 Sapphire Drake|GTC +1 Simic Basilisk|DIS +1 Simic Charm|GTC +1 Simic Cluestone|DGM +1 Simic Growth Chamber|C15 +1 Simic Guildgate|C15 +1 Simic Guildmage|DIS +1 Simic Initiate|DIS +1 Simic Keyrune|C15 +1 Simic Signet|C15 +1 Sporeback Troll|DIS +1 Transguild Promenade|C13 +1 Vigean Graftmage|DIS +1 Vigean Hydropon|DIS +1 Voidslime|DIS \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Vorel of the Hull Clade.dck b/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Vorel of the Hull Clade.dck new file mode 100644 index 00000000000..3655b1835fc --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/Vorel of the Hull Clade.dck @@ -0,0 +1,43 @@ +[metadata] +Name=Vorel of the Hull Clade +[Commander] +1 Vorel of the Hull Clade|DGM +[Main] +1 Adaptive Snapjaw|GTC +1 Battering Krasis|DGM +1 Breeding Pool|DIS +1 Burst of Strength|GTC +1 Clinging Anemones|GTC +1 Cloudfin Raptor|GTC +1 Crocanura|GTC +1 Elusive Krasis|GTC +1 Evolution Vat|DIS +1 Experiment One|C15 +1 Fathom Mage|GTC +1 Forced Adaptation|GTC +3 Forest|C15|2 +2 Forest|C15|3 +1 Gyre Sage|GTC +1 Island|C15|1 +1 Island|C15|3 +2 Island|C15|4 +1 Mutant's Prey|DGM +1 Novijen, Heart of Progress|C15 +1 Pillar of the Paruns|DIS +1 Renegade Krasis|DGM +1 Sapphire Drake|GTC +1 Shambleshark|GTC +1 Simic Charm|GTC +1 Simic Cluestone|DGM +1 Simic Fluxmage|GTC +1 Simic Growth Chamber|C15 +1 Simic Guildgate|C15 +1 Simic Guildmage|DIS +1 Simic Keyrune|C15 +1 Simic Manipulator|GTC +1 Simic Signet|C15 +1 Tablet of the Guilds|RTR +1 Thrive|PCY +1 Transguild Promenade|C13 +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/_events.txt b/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/_events.txt new file mode 100644 index 00000000000..0f92a44eba5 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/Simic Growth Chamber/_events.txt @@ -0,0 +1,9 @@ +Name:Simic Evolve|Deck:Simic Evolve.dck|Variant:None|Avatar:Fathom Mage|Desc: +Name:Simic Graft|Deck:Simic Graft.dck|Variant:None|Avatar:Cytoplast Root-Kin|Desc: +Name:Biovisionary|Deck:Biovisionary.dck|Variant:None|Avatar:Biovisionary|Desc: +Name:Experiment Kraj|Deck:Experiment Kraj.dck|Variant:Commander|Avatar:Experiment Kraj|Desc: +Name:Prime Speaker Zegana|Deck:Prime Speaker Zegana.dck|Variant:Commander|Avatar:Prime Speaker Zegana|Desc: +Name:Momir Vig, Simic Visionary|Deck:Momir Vig, Simic Visionary.dck|Variant:Commander|Avatar:Momir Vig, Simic Visionary|Desc: +Name:Vorel of the Hull Clade|Deck:Vorel of the Hull Clade.dck|Variant:Commander|Avatar:Vorel of the Hull Clade|Desc: +Name:Momir Vig|Deck:Momir Vig.dck|Variant:Vanguard|Avatar:Momir Vig, Simic Visionary|Desc: +Name:Jace, the Living Guildpact|Deck:Jace, the Living Guildpact.dck|Variant:Planeswalker|Avatar:Jace, the Living Guildpact|Desc: \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/banned_cards.txt b/forge-gui/res/conquest/planes/Ravnica_Classic/banned_cards.txt new file mode 100644 index 00000000000..5ea25846a80 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/banned_cards.txt @@ -0,0 +1,22 @@ +Ajani's Chosen +Ancient Amphitheater +Arbiter of Knollridge +Bident of Thassa +Chameleon Colossus +Cold-Eyed Selkie +Crib Swap +Dawnglare Invoker +Dictate of Heliod +Dreamstone Hedron +Eldrazi Monument +Etherium-Horn Sorcerer +Kessig Cagebreakers +Kor Sanctifiers +Oran-Rief, the Vastwood +Orim's Thunder +Orochi Hatchery +Satyr Wayfinder +Taurean Mauler +Urza's Incubator +Urza's Rage +Wistful Selkie \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/cards.txt b/forge-gui/res/conquest/planes/Ravnica_Classic/cards.txt new file mode 100644 index 00000000000..d8da8078250 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/cards.txt @@ -0,0 +1,57 @@ +Druidic Satchel +Gem of Becoming +Obelisk of Urd +Will-Forged Golem +Seraph of the Masses +Soul of Ravnica +Duskhunter Bat +Shattergang Brothers +Blood Ogre +Bloodlord of Vaasgoth +Bloodrage Vampire +Carnage Wurm +Furyborn Hellkite +Gorehorn Minotaurs +Lurking Crocodile +Stormblood Berserker +Vampire Outcasts +Bounding Krasis +Conclave Naturalists +Covenant of Blood +Crowd's Favor +Endless Obedience +Ephemeral Shields +Feral Incarnation +Living Totem +Meditation Puzzle +Return to the Ranks +Stain the Mind +Stoke the Flames +Triplicate Spirits +Unmake the Graves +Deadbridge Shaman +Extract from Darkness +Mizzium Meddler +Mazirek, Kraul Death Priest +Fungal Sprouting +Jade Mage +Sporemound +Jace, the Living Guildpact +Krenko's Command +Krenko's Enforcer +Krenko, Mob Boss +Leyline of Anticipation +Leyline of Punishment +Leyline of Sanctity +Leyline of Vitality +Mantle of Webs +Nightsnare +Shattergang Brothers +Yeva's Forcemage +Yeva, Nature's Herald +Rhox Maulers +Goblin Glory Chaser +Scab-Clan Berserker +Undercity Troll +Orzhov Advokist +Izzet Chemister diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/plane_cards.txt b/forge-gui/res/conquest/planes/Ravnica_Classic/plane_cards.txt new file mode 100644 index 00000000000..a9b95ffa61d --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/plane_cards.txt @@ -0,0 +1,7 @@ +Agyrem +Grand Ossuary +Izzet Steam Maze +Orzhova +Prahv +Selesnya Loft Gardens +Undercity Reaches \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/regions.txt b/forge-gui/res/conquest/planes/Ravnica_Classic/regions.txt new file mode 100644 index 00000000000..2d8f55e3952 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/regions.txt @@ -0,0 +1,10 @@ +Name:Azorius Chancery|Art:Azorius Chancery|Colors:WU +Name:Boros Garrison|Art:Boros Garrison|Colors:RW +Name:Dimir Aqueduct|Art:Dimir Aqueduct|Colors:UB +Name:Golgari Rot Farm|Art:Golgari Rot Farm|Colors:BG +Name:Gruul Turf|Art:Gruul Turf|Colors:RG +Name:Izzet Boilerworks|Art:Izzet Boilerworks|Colors:UR +Name:Orzhov Basilica|Art:Orzhov Basilica|Colors:WB +Name:Rakdos Carnarium|Art:Rakdos Carnarium|Colors:BR +Name:Selesnya Sanctuary|Art:Selesnya Sanctuary|Colors:GW +Name:Simic Growth Chamber|Art:Simic Growth Chamber|Colors:GU \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Ravnica_Classic/sets.txt b/forge-gui/res/conquest/planes/Ravnica_Classic/sets.txt new file mode 100644 index 00000000000..3c3c83e4d79 --- /dev/null +++ b/forge-gui/res/conquest/planes/Ravnica_Classic/sets.txt @@ -0,0 +1,7 @@ +RAV +GPT +DIS +RTR +GTC +DGM +C15 \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Akros/AnaxCymede.dck b/forge-gui/res/conquest/planes/Theros_Classic/Akros/AnaxCymede.dck new file mode 100644 index 00000000000..d74da49cb6d --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Akros/AnaxCymede.dck @@ -0,0 +1,39 @@ +[metadata] +Name=PCTHSAnaxCymede +[Commander] +1 Anax and Cymede|THS +[Main] +1 Ajani's Presence|JOU +1 Akroan Crusader|THS +1 Akroan Skyguard|BNG +1 Arena Athlete|THS +1 Blinding Flare|JOU +1 Coordinated Assault|THS +1 Dawnbringer Charioteers|JOU +1 Desperate Stand|JOU +1 Dragon Mantle|THS +1 Elite Skirmisher|BNG +1 Fabled Hero|THS +1 Favored Hoplite|THS +1 Glimpse the Sun God|BNG +1 Gods Willing|THS +1 Lagonna-Band Trailblazer|JOU +1 Launch the Fleet|JOU +1 Mana Confluence|JOU +1 Mortal's Ardor|BNG +1 Mountain|THS|2 +2 Mountain|THS|3 +2 Mountain|THS|4 +1 Phalanx Formation|JOU +1 Phalanx Leader|THS +2 Plains|THS|1 +3 Plains|THS|3 +3 Plains|THS|4 +1 Rouse the Mob|JOU +1 Satyr Hoplite|JOU +1 Temple of Triumph|THS +1 Tethmos High Priest|JOU +1 Titan's Strength|ORI +1 Wingsteed Rider|THS +[Sideboard] +1 Spite of Mogis|JOU diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Akros/Brimaz.dck b/forge-gui/res/conquest/planes/Theros_Classic/Akros/Brimaz.dck new file mode 100644 index 00000000000..4d14c660a03 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Akros/Brimaz.dck @@ -0,0 +1,31 @@ +[metadata] +Name=PCTHSBrimaz +[Commander] +1 Brimaz, King of Oreskos|BNG +[Main] +1 Ajani Steadfast|M15 +1 Ajani's Chosen|C15 +1 Ajani's Presence|JOU +1 Ajani's Sunstriker|CNS +1 Archetype of Courage|BNG +1 Banishing Light|C15 +1 Chariot of Victory|JOU +1 Chosen by Heliod|THS +1 Divine Verdict|M15 +1 Enlightened Ascetic|ORI +1 Evangel of Heliod|THS +1 God-Favored General|BNG +1 Hall of Triumph|JOU +1 Launch the Fleet|JOU +1 Leonin Snarecaster|THS +1 Oreskos Sun Guide|BNG +1 Oreskos Swiftclaw|M15 +1 Ornitharch|BNG +16 Plains|C15|1 +1 Reprisal|JOU +1 Revoke Existence|BNG +1 Sigil of Valor|ORI +1 Spear of Heliod|THS +1 Vanguard of Brimaz|BNG +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Akros/ElspethPW.dck b/forge-gui/res/conquest/planes/Theros_Classic/Akros/ElspethPW.dck new file mode 100644 index 00000000000..9538313474c --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Akros/ElspethPW.dck @@ -0,0 +1,36 @@ +[metadata] +Name=PCTHSElspethPW +[Commander] +1 Kytheon, Hero of Akros|ORI +[Main] +1 Acolyte's Reward|BNG +1 Ajani's Presence|JOU +1 Armory of Iroas|JOU +1 Banishing Light|C15 +1 Cavalry Pegasus|THS +1 Chariot of Victory|JOU +1 Dawnbringer Charioteers|JOU +1 Divine Verdict|M15 +1 Elspeth, Sun's Champion|THS +1 Fabled Hero|THS +1 Gideon's Avenger|M12 +1 Gideon's Lawkeeper|M12 +1 Gideon's Phalanx|ORI +1 Gods Willing|THS +1 Godsend|JOU +1 Hixus, Prison Warden|ORI +1 Kytheon's Irregulars|ORI +1 Kytheon's Tactics|ORI +1 Nykthos, Shrine to Nyx|THS +1 Ordeal of Heliod|THS +4 Plains|THS|1 +5 Plains|THS|2 +3 Plains|THS|3 +3 Plains|THS|4 +1 Sightless Brawler|JOU +1 Soldier of the Pantheon|THS +1 Suppression Bonds|ORI +1 Traveling Philosopher|THS +1 Wingsteed Rider|THS +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Akros/Iroas.dck b/forge-gui/res/conquest/planes/Theros_Classic/Akros/Iroas.dck new file mode 100644 index 00000000000..f1e71a7cedb --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Akros/Iroas.dck @@ -0,0 +1,38 @@ +[metadata] +Name=PCTHSIroas +[Commander] +1 Iroas, God of Victory|JOU +[Main] +1 Archetype of Aggression|BNG +1 Archetype of Courage|BNG +1 Armament of Nyx|JOU +1 Banishing Light|C15 +1 Chained to the Rocks|THS +1 Dragon Mantle|THS +1 Eidolon of Countless Battles|BNG +1 Everflame Eidolon|BNG +1 Forgeborn Oreads|JOU +1 Ghostblade Eidolon|C15 +1 Harvestguard Alseids|JOU +1 Helm of the Gods|ORI +1 Hero of Iroas|BNG +1 Hopeful Eidolon|THS +1 Iroas's Champion|ORI +1 Mana Confluence|JOU +1 Mogis's Warhound|JOU +3 Mountain|THS|3 +2 Mountain|THS|4 +1 Nyx-Fleece Ram|JOU +1 Nyxborn Rollicker|BNG +1 Nyxborn Shieldmate|BNG +1 Oppressive Rays|M15 +1 Ordeal of Heliod|THS +1 Ordeal of Purphoros|THS +3 Plains|THS|1 +2 Plains|THS|3 +3 Plains|THS|4 +1 Sightless Brawler|JOU +1 Spearpoint Oread|THS +1 Temple of Triumph|THS +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Akros/Kalemne.dck b/forge-gui/res/conquest/planes/Theros_Classic/Akros/Kalemne.dck new file mode 100644 index 00000000000..af830750c85 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Akros/Kalemne.dck @@ -0,0 +1,40 @@ +[metadata] +Name=PCTHSKalemne +[Commander] +1 Kalemne, Disciple of Iroas|C15 +[Main] +1 Aegis Angel|M15 +1 Astral Cornucopia|BNG +1 Banishing Light|C15 +1 Burnished Hart|C15 +1 Chained to the Rocks|THS +1 Cyclops of Eternal Fury|JOU +1 Guardians of Meletis|ORI +1 Hundred-Handed One|THS +1 Kalemne's Captain|C15 +1 Lagonna-Band Trailblazer|JOU +1 Mana Confluence|JOU +2 Mountain|M15|1 +1 Mountain|M15|2 +2 Mountain|M15|3 +1 Mountain|M15|4 +1 Nykthos, Shrine to Nyx|THS +1 Nyx-Fleece Ram|JOU +1 Opaline Unicorn|THS +1 Pharagax Giant|BNG +2 Plains|M15|1 +2 Plains|M15|2 +2 Plains|M15|3 +2 Plains|M15|4 +1 Quarry Colossus|JOU +1 Soul of Theros|M15 +1 Springleaf Drum|BNG +1 Stoneshock Giant|C15 +1 Stormbreath Dragon|THS +1 Suppression Bonds|ORI +1 Temple of Triumph|THS +1 Thunder Brute|BNG +1 Traveler's Amulet|THS +1 Yoked Ox|ORI +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Akros/Mogis.dck b/forge-gui/res/conquest/planes/Theros_Classic/Akros/Mogis.dck new file mode 100644 index 00000000000..21b03208b0c --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Akros/Mogis.dck @@ -0,0 +1,37 @@ +[metadata] +Name=PCTHSMogis +[Commander] +1 Mogis, God of Slaughter|BNG +[Main] +1 Borderland Minotaur|THS +1 Deathbellow Raider|THS +1 Fanatic of Mogis|THS +1 Felhide Brawler|BNG +1 Felhide Minotaur|THS +1 Felhide Petrifier|JOU +1 Felhide Spiritbinder|BNG +1 Flurry of Horns|JOU +1 Gnarled Scarhide|JOU +1 Hero's Downfall|THS +1 Kragma Butcher|BNG +1 Kragma Warcaller|THS +1 Lightning Strike|M15 +1 Magma Spray|JOU +1 Mana Confluence|JOU +1 Minotaur Skullcleaver|THS +6 Mountain|C15|1 +1 Mountain|THS|2 +2 Mountain|THS|4 +1 Necrobite|M15 +1 Oracle of Bones|BNG +1 Pensive Minotaur|JOU +1 Prowler's Helm|THS +1 Rageblood Shaman|THS +1 Ragemonger|BNG +1 Searing Blood|BNG +4 Swamp|C15|1 +1 Swamp|THS|2 +1 Unknown Shores|OGW +1 Warchanter of Mogis|BNG +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Akros/MonoRDev.dck b/forge-gui/res/conquest/planes/Theros_Classic/Akros/MonoRDev.dck new file mode 100644 index 00000000000..dfbdaf5f095 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Akros/MonoRDev.dck @@ -0,0 +1,19 @@ +[metadata] +Name=PCTHSRedDev +[Main] +3 Dragon Mantle|THS +2 Eidolon of the Great Revel|JOU +3 Fanatic of Mogis|THS +3 Firedrinker Satyr|THS +2 Lightning Strike|M15 +2 Mogis's Warhound|JOU +2 Mountain|THS|1 +4 Mountain|THS|3 +5 Mountain|THS|4 +3 Nykthos, Shrine to Nyx|THS +3 Prophetic Flamespeaker|JOU +3 Satyr Hoplite|JOU +2 Searing Blood|BNG +3 Thunderous Might|BNG +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Akros/WRSoldiers.dck b/forge-gui/res/conquest/planes/Theros_Classic/Akros/WRSoldiers.dck new file mode 100644 index 00000000000..3fff80edb82 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Akros/WRSoldiers.dck @@ -0,0 +1,20 @@ +[metadata] +Name=PCTHSWRSoldiers +[Main] +3 Ajani's Presence|JOU +3 Akroan Crusader|THS +3 Akroan Hoplite|THS +2 Banishing Light|C15 +3 Favored Hoplite|THS +3 God-Favored General|BNG +3 Gods Willing|THS +3 Launch the Fleet|JOU +3 Lightning Strike|M15 +3 Mana Confluence|JOU +2 Mountain|THS|4 +4 Plains|THS|1 +1 Plains|THS|3 +1 Plains|THS|4 +3 Temple of Triumph|THS +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Akros/_events.txt b/forge-gui/res/conquest/planes/Theros_Classic/Akros/_events.txt new file mode 100644 index 00000000000..29ac3fe1df3 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Akros/_events.txt @@ -0,0 +1,8 @@ +Name:Anax and Cymede|Deck:AnaxCymede.dck|Variant:Commander|Avatar:Anax and Cymede|Desc: +Name:Devotion to Fight|Deck:MonoRDev.dck|Variant:None|Avatar:Firedrinker Satyr|Desc: +Name:Brimaz|Deck:Brimaz.dck|Variant:Commander|Avatar:Brimaz, King of Oreskos|Desc: +Name:Akroan Soldiers|Deck:WRSoldiers.dck|Variant:None|Avatar:Akroan Hoplite|Desc: +Name:Iroas|Deck:Iroas.dck|Variant:Commander|Avatar:Iroas, God of Victory|Desc: +Name:Kalemne|Deck:Kalemne.dck|Variant:Commander|Avatar:Kalemne, Disciple of Iroas|Desc: +Name:Mogis|Deck:Mogis.dck|Variant:Commander|Avatar:Mogis, God of Slaughter|Desc: +Name:Elspeth|Deck:ElspethPW.dck|Variant:Planeswalker|Avatar:Elspeth, Sun's Champion|Desc: \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Meletis/Daxos.dck b/forge-gui/res/conquest/planes/Theros_Classic/Meletis/Daxos.dck new file mode 100644 index 00000000000..adcc43cac31 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Meletis/Daxos.dck @@ -0,0 +1,38 @@ +[metadata] +Name=PCTHSDaxos +[Commander] +1 Daxos of Meletis|THS +[Main] +1 Aerial Formation|JOU +1 Ajani's Presence|JOU +1 Akroan Skyguard|BNG +1 Aqueous Form|THS +1 Banishing Light|C15 +1 Battlefield Thaumaturge|JOU +1 Battlewise Hoplite|THS +1 Cavalry Pegasus|THS +1 Curse of the Swine|THS +1 Dakra Mystic|JOU +1 Eidolon of Countless Battles|BNG +1 Fabled Hero|THS +1 Favored Hoplite|THS +1 Glimpse the Sun God|BNG +1 Gods Willing|THS +4 Island|C15|1 +1 Island|THS|4 +1 Launch the Fleet|JOU +1 Mana Confluence|JOU +1 Nimbus Naiad|THS +1 Ordeal of Heliod|THS +1 Ordeal of Thassa|THS +1 Phalanx Formation|JOU +1 Phalanx Leader|THS +4 Plains|C15|1 +3 Plains|THS|1 +1 Plains|THS|3 +1 Polymorphous Rush|JOU +1 Temple of Enlightenment|BNG +1 Unknown Shores|OGW +1 War-Wing Siren|JOU +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Meletis/Ephara.dck b/forge-gui/res/conquest/planes/Theros_Classic/Meletis/Ephara.dck new file mode 100644 index 00000000000..96ee980d64e --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Meletis/Ephara.dck @@ -0,0 +1,39 @@ +[metadata] +Name=PCTHSEphara +[Commander] +1 Ephara, God of the Polis|BNG +[Main] +1 Ajani's Chosen|C15 +1 Archetype of Courage|BNG +1 Archetype of Imagination|BNG +1 Armament of Nyx|JOU +1 Banishing Light|C15 +1 Breaching Hippocamp|THS +1 Burnished Hart|C15 +1 Cloaked Siren|JOU +1 Eidolon of Countless Battles|BNG +1 Ephara's Enlightenment|BNG +1 Flitterstep Eidolon|BNG +1 Ghostblade Eidolon|C15 +1 Harvestguard Alseids|JOU +1 Hixus, Prison Warden|ORI +1 Hypnotic Siren|JOU +2 Island|C15|2 +3 Island|C15|3 +1 Mana Confluence|JOU +1 Nimbus Naiad|THS +1 Nyx-Fleece Ram|JOU +1 Observant Alseid|THS +1 Oppressive Rays|M15 +1 Ordeal of Thassa|THS +3 Plains|C15|1 +1 Plains|C15|2 +1 Plains|C15|3 +3 Plains|C15|4 +1 Sightless Brawler|JOU +1 Suppression Bonds|ORI +1 Temple of Enlightenment|BNG +1 Unknown Shores|OGW +1 Whitewater Naiads|JOU +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Meletis/Keranos.dck b/forge-gui/res/conquest/planes/Theros_Classic/Meletis/Keranos.dck new file mode 100644 index 00000000000..f4a83384128 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Meletis/Keranos.dck @@ -0,0 +1,40 @@ +[metadata] +Name=PCTHSKeranos2 +[Commander] +1 Keranos, God of Storms|JOU +[Main] +1 Aqueous Form|THS +1 Bolt of Keranos|BNG +1 Dissolve|THS +1 Fated Infatuation|BNG +1 Flamespeaker Adept|THS +1 Interpret the Signs|JOU +3 Island|THS|1 +1 Island|THS|2 +2 Island|THS|3 +2 Island|THS|4 +1 Knowledge and Power|JOU +1 Lightning Strike|M15 +1 Magma Jet|THS +1 Mana Confluence|JOU +1 Meletis Charlatan|THS +3 Mountain|THS|1 +1 Mountain|THS|2 +1 Mountain|THS|4 +1 Omenspeaker|THS +1 Portent of Betrayal|THS +1 Prescient Chimera|THS +1 Prognostic Sphinx|THS +1 Riddle of Lightning|JOU +1 Sigiled Starfish|ORI +1 Spellheart Chimera|THS +1 Spite of Mogis|JOU +1 Stormcaller of Keranos|BNG +1 Stormchaser Chimera|JOU +1 Sudden Storm|BNG +1 Temple of Epiphany|JOU +1 Titan's Strength|ORI +1 Twinflame|JOU +1 Unknown Shores|OGW +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Meletis/KioraPW.dck b/forge-gui/res/conquest/planes/Theros_Classic/Meletis/KioraPW.dck new file mode 100644 index 00000000000..22932871416 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Meletis/KioraPW.dck @@ -0,0 +1,39 @@ +[metadata] +Name=KioraPW +[Commander] +1 Kruphix, God of Horizons|JOU +[Main] +1 Boon Satyr|THS +1 Courser of Kruphix|BNG +1 Dakra Mystic|JOU +1 Dictate of Kruphix|JOU +1 Dissolve|THS +1 Floodtide Serpent|BNG +3 Forest|THS|1 +2 Forest|THS|3 +1 Island|THS|1 +3 Island|THS|2 +2 Island|THS|3 +3 Island|THS|4 +1 Kiora's Dismissal|JOU +1 Kiora's Follower|BNG +1 Kiora, the Crashing Wave|BNG +1 Kruphix's Insight|JOU +1 Mana Confluence|JOU +1 Nullify|BNG +1 Nykthos, Shrine to Nyx|THS +1 Polukranos, World Eater|THS +1 Prophet of Kruphix|THS +1 Riptide Chimera|JOU +1 Scourge of Fleets|JOU +1 Sealock Monster|THS +1 Setessan Tactics|JOU +1 Shipbreaker Kraken|THS +1 Sylvan Caryatid|THS +1 Temple of Mystery|THS +1 Time to Feed|THS +1 Voyage's End|THS +1 Voyaging Satyr|THS +1 Whelming Wave|BNG +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Meletis/Medomai.dck b/forge-gui/res/conquest/planes/Theros_Classic/Meletis/Medomai.dck new file mode 100644 index 00000000000..0677bbab415 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Meletis/Medomai.dck @@ -0,0 +1,39 @@ +[metadata] +Name=PCTHSMedomai +[Commander] +1 Medomai the Ageless|THS +[Main] +1 Aerie Worshippers|BNG +1 Arbiter of the Ideal|BNG +1 Banishing Light|C15 +1 Celestial Flare|ORI +1 Dawnbringer Charioteers|JOU +1 Gods Willing|THS +1 Hopeful Eidolon|THS +1 Horizon Scholar|THS +1 Hour of Need|JOU +1 Island|ORI|1 +3 Island|ORI|2 +1 Island|ORI|3 +3 Island|ORI|4 +1 Meletis Charlatan|THS +1 Mnemonic Wall|C13 +1 Nimbus Naiad|THS +1 Omenspeaker|THS +1 Phalanx Leader|THS +3 Plains|ORI|1 +1 Plains|ORI|2 +2 Plains|ORI|3 +1 Prognostic Sphinx|THS +1 Reprisal|JOU +1 Retraction Helix|BNG +1 Sage of Hours|JOU +1 Sphinx's Disciple|BNG +1 Supply-Line Cranes|JOU +1 Temple of Enlightenment|BNG +1 Thassa's Emissary|THS +1 Triton Tactics|THS +1 Unknown Shores|OGW +1 Vortex Elemental|BNG +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Meletis/MonoUDev.dck b/forge-gui/res/conquest/planes/Theros_Classic/Meletis/MonoUDev.dck new file mode 100644 index 00000000000..04cb1b9d29b --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Meletis/MonoUDev.dck @@ -0,0 +1,16 @@ +[metadata] +Name=PCTHSBlueDev +[Main] +2 Aqueous Form|THS +3 Bident of Thassa|C15 +3 Claustrophobia|ORI +3 Harbinger of the Tides|ORI +12 Island|C15|1 +3 Master of Waves|THS +3 Nykthos, Shrine to Nyx|THS +3 Thassa, God of the Sea|THS +3 Tidebinder Mage|M14 +3 Triton Shorestalker|JOU +2 Whitewater Naiads|JOU +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Meletis/UWControl.dck b/forge-gui/res/conquest/planes/Theros_Classic/Meletis/UWControl.dck new file mode 100644 index 00000000000..da3ea3a6652 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Meletis/UWControl.dck @@ -0,0 +1,22 @@ +[metadata] +Name=PCTHSUWControl +[Main] +3 Banishing Light|C15 +3 Dissolve|THS +2 Divine Verdict|M15 +2 Elspeth, Sun's Champion|THS +3 Font of Fortunes|JOU +2 Guardians of Meletis|ORI +2 Hixus, Prison Warden|ORI +3 Island|THS|1 +1 Island|THS|2 +5 Island|THS|3 +3 Nullify|BNG +2 Plains|THS|1 +1 Plains|THS|2 +1 Plains|THS|3 +2 Plains|THS|4 +2 Prognostic Sphinx|THS +3 Temple of Enlightenment|BNG +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Meletis/UWHeroic.dck b/forge-gui/res/conquest/planes/Theros_Classic/Meletis/UWHeroic.dck new file mode 100644 index 00000000000..4cfa0f2731a --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Meletis/UWHeroic.dck @@ -0,0 +1,18 @@ +[metadata] +Name=PCTHSUWHeroic +[Main] +3 Ajani's Presence|JOU +3 Aqueous Form|THS +3 Battlewise Hoplite|THS +3 Favored Hoplite|THS +3 Gods Willing|THS +3 Hero of Iroas|BNG +4 Island|C15|1 +3 Lagonna-Band Trailblazer|JOU +2 Ordeal of Heliod|THS +3 Ordeal of Thassa|THS +6 Plains|C15|1 +3 Temple of Enlightenment|BNG +1 Unknown Shores|OGW +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Meletis/_events.txt b/forge-gui/res/conquest/planes/Theros_Classic/Meletis/_events.txt new file mode 100644 index 00000000000..717151241f6 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Meletis/_events.txt @@ -0,0 +1,8 @@ +Name:Battlewise Hoplites|Deck:UWHeroic.dck|Variant:None|Avatar:Battlewise Hoplite|Desc: +Name:Daxos|Deck:Daxos.dck|Variant:Commander|Avatar:Daxos of Meletis|Desc: +Name:Devotion to Wisdom|Deck:MonoUDev.dck|Variant:None|Avatar:Master of Waves|Desc: +Name:Ephara|Deck:Ephara.dck|Variant:Commander|Avatar:Ephara, God of the Polis|Desc: +Name:Control your Nightmares|Deck:UWControl.dck|Variant:None|Avatar:Prognostic Sphinx|Desc: +Name:Keranos|Deck:Keranos.dck|Variant:Commander|Avatar:Keranos, God of Storms|Desc: +Name:Medomai|Deck:Medomai.dck|Variant:Commander|Avatar:Medomai the Ageless|Desc: +Name:Kiora|Deck:KioraPW.dck|Variant:Planeswalker|Avatar:Kiora, the Crashing Wave|Desc: \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Nyx/Erebos.dck b/forge-gui/res/conquest/planes/Theros_Classic/Nyx/Erebos.dck new file mode 100644 index 00000000000..24ae4b9648c --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Nyx/Erebos.dck @@ -0,0 +1,35 @@ +[metadata] +Name=PCTHSErebos +[Commander] +1 Erebos, God of the Dead|THS +[Main] +1 Abhorrent Overlord|THS +1 Agent of Erebos|JOU +1 Agent of the Fates|THS +1 Bile Blight|BNG +1 Boon of Erebos|THS +1 Brain Maggot|JOU +1 Claim of Erebos|BNG +1 Cruel Feeding|JOU +1 Dictate of Erebos|JOU +1 Doomwake Giant|C15 +1 Drown in Sorrow|BNG +1 Erebos's Emissary|THS +1 Erebos's Titan|ORI +1 Gray Merchant of Asphodel|C14 +1 Herald of Torment|BNG +1 Hero's Downfall|THS +1 King Macar, the Gold-Cursed|JOU +1 Master of the Feast|JOU +1 Nykthos, Shrine to Nyx|THS +1 Ordeal of Erebos|THS +1 Silence the Believers|JOU +1 Squelching Leeches|JOU +6 Swamp|THS|1 +2 Swamp|THS|2 +4 Swamp|THS|3 +3 Swamp|THS|4 +1 Thoughtseize|THS +1 Whip of Erebos|THS +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Nyx/Heliod.dck b/forge-gui/res/conquest/planes/Theros_Classic/Nyx/Heliod.dck new file mode 100644 index 00000000000..ebbf56cfeca --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Nyx/Heliod.dck @@ -0,0 +1,34 @@ +[metadata] +Name=PCTHSHeliod +[Commander] +1 Heliod, God of the Sun|THS +[Main] +1 Aegis Angel|M15 +1 Aegis of the Gods|JOU +1 Ajani's Chosen|C15 +1 Archetype of Courage|BNG +1 Banishing Light|C15 +1 Chosen by Heliod|THS +1 Dictate of Heliod|C15 +1 Divine Verdict|M15 +1 Evangel of Heliod|THS +1 God-Favored General|BNG +1 Heliod's Emissary|THS +1 Hopeful Eidolon|THS +1 Nykthos, Shrine to Nyx|THS +1 Nyx-Fleece Ram|JOU +1 Nyxborn Shieldmate|BNG +1 Observant Alseid|THS +1 Oppressive Rays|M15 +1 Ordeal of Heliod|THS +1 Ornitharch|BNG +8 Plains|THS|2 +4 Plains|THS|3 +3 Plains|THS|4 +1 Sightless Brawler|JOU +1 Skybind|JOU +1 Spear of Heliod|THS +1 Spirit of the Labyrinth|BNG +1 Starfield of Nyx|ORI +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Nyx/Nylea.dck b/forge-gui/res/conquest/planes/Theros_Classic/Nyx/Nylea.dck new file mode 100644 index 00000000000..1a521ec7709 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Nyx/Nylea.dck @@ -0,0 +1,34 @@ +[metadata] +Name=PCTHSNylea +[Commander] +1 Nylea, God of the Hunt|THS +[Main] +1 Arbor Colossus|C15 +1 Archetype of Endurance|BNG +1 Boon Satyr|THS +1 Bow of Nylea|THS +1 Courser of Kruphix|BNG +1 Eidolon of Blossoms|JOU +1 Fade into Antiquity|THS +1 Font of Fertility|JOU +8 Forest|THS|1 +6 Forest|THS|2 +1 Forest|THS|4 +1 Herald of the Pantheon|ORI +1 Hunter's Prowess|BNG +1 Leafcrown Dryad|THS +1 Nessian Game Warden|JOU +1 Noble Quarry|C15 +1 Nykthos, Shrine to Nyx|THS +1 Nylea's Disciple|THS +1 Nylea's Emissary|THS +1 Nylea's Presence|THS +1 Ordeal of Nylea|THS +1 Polukranos, World Eater|THS +1 Reverent Hunter|THS +1 Setessan Tactics|JOU +1 Spirespine|JOU +1 Sylvan Caryatid|THS +1 Time to Feed|THS +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Nyx/Purphoros.dck b/forge-gui/res/conquest/planes/Theros_Classic/Nyx/Purphoros.dck new file mode 100644 index 00000000000..7102538a754 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Nyx/Purphoros.dck @@ -0,0 +1,35 @@ +[metadata] +Name=PCTHSPurphoros +[Commander] +1 Purphoros, God of the Forge|THS +[Main] +1 Anger of the Gods|THS +1 Archetype of Aggression|BNG +1 Cyclops of Eternal Fury|JOU +1 Dictate of the Twin Gods|JOU +1 Eidolon of the Great Revel|JOU +1 Ember Swallower|THS +1 Everflame Eidolon|BNG +1 Flame-Wreathed Phoenix|BNG +1 Forgeborn Oreads|JOU +1 Forgestoker Dragon|BNG +1 Hammer of Purphoros|THS +1 Harness by Force|JOU +1 Lightning Strike|M15 +1 Magma Jet|THS +6 Mountain|THS|1 +3 Mountain|THS|2 +3 Mountain|THS|3 +3 Mountain|THS|4 +1 Nykthos, Shrine to Nyx|THS +1 Nyxborn Rollicker|BNG +1 Ordeal of Purphoros|THS +1 Prophetic Flamespeaker|JOU +1 Purphoros's Emissary|THS +1 Rage of Purphoros|THS +1 Satyr Firedancer|BNG +1 Searing Blood|BNG +1 Spearpoint Oread|THS +1 Stormbreath Dragon|THS +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Nyx/Thassa.dck b/forge-gui/res/conquest/planes/Theros_Classic/Nyx/Thassa.dck new file mode 100644 index 00000000000..dc5bc744f06 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Nyx/Thassa.dck @@ -0,0 +1,35 @@ +[metadata] +Name=PCTHSThassa +[Commander] +1 Thassa, God of the Sea|THS +[Main] +1 Aqueous Form|THS +1 Artisan of Forms|THS +1 Bident of Thassa|C15 +1 Dakra Mystic|JOU +1 Daring Thief|JOU +1 Flitterstep Eidolon|BNG +1 Floodtide Serpent|BNG +1 Hypnotic Siren|JOU +4 Island|THS|1 +4 Island|THS|2 +2 Island|THS|3 +5 Island|THS|4 +1 Nykthos, Shrine to Nyx|THS +1 Ordeal of Thassa|THS +1 Perplexing Chimera|BNG +1 Pin to the Earth|JOU +1 Scourge of Fleets|JOU +1 Sealock Monster|THS +1 Shipbreaker Kraken|THS +1 Thassa's Bounty|THS +1 Thassa's Devourer|JOU +1 Thassa's Emissary|THS +1 Thassa's Ire|JOU +1 Thassa's Rebuff|BNG +1 Triton Shorestalker|JOU +1 Tromokratis|BNG +1 Vortex Elemental|BNG +1 Whelming Wave|BNG +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Nyx/XenagosPW.dck b/forge-gui/res/conquest/planes/Theros_Classic/Nyx/XenagosPW.dck new file mode 100644 index 00000000000..4433117f9a3 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Nyx/XenagosPW.dck @@ -0,0 +1,43 @@ +[metadata] +Name=PCTHSXenagosPW +[Commander] +1 Xenagos, God of Revels|BNG +[Main] +1 Anger of the Gods|THS +1 Boon Satyr|THS +1 Centaur Battlemaster|THS +1 Courser of Kruphix|BNG +1 Destructive Revelry|THS +1 Eidolon of the Great Revel|JOU +1 Fanatic of Xenagos|BNG +1 Firedrinker Satyr|THS +1 Forest|M15|1 +1 Forest|M15|2 +1 Forest|M15|3 +3 Forest|M15|4 +1 Lightning Strike|M15 +1 Magma Jet|THS +1 Mana Confluence|JOU +2 Mountain|M15|1 +1 Mountain|M15|2 +2 Mountain|M15|3 +1 Mountain|M15|4 +1 Nykthos, Shrine to Nyx|THS +1 Nyxborn Rollicker|BNG +1 Pheres-Band Raiders|BNG +1 Pheres-Band Thunderhoof|JOU +1 Pheres-Band Tromper|BNG +1 Pheres-Band Warchief|JOU +1 Polukranos, World Eater|THS +1 Reckless Reveler|BNG +1 Satyr Firedancer|BNG +1 Searing Blood|BNG +1 Stormbreath Dragon|THS +1 Swordwise Centaur|BNG +1 Temple of Abandon|THS +1 Traveler's Amulet|THS +1 Unknown Shores|OGW +1 Voyaging Satyr|THS +1 Xenagos, the Reveler|THS +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Nyx/_events.txt b/forge-gui/res/conquest/planes/Theros_Classic/Nyx/_events.txt new file mode 100644 index 00000000000..2480d021156 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Nyx/_events.txt @@ -0,0 +1,6 @@ +Name:Purphoros|Deck:Purphoros.dck|Variant:Commander|Avatar:Purphoros, God of the Forge|Desc: +Name:Nylea|Deck:Nylea.dck|Variant:Commander|Avatar:Nylea, God of the Hunt|Desc: +Name:Thassa|Deck:Thassa.dck|Variant:Commander|Avatar:Thassa, God of the Sea|Desc: +Name:Erebos|Deck:Erebos.dck|Variant:Commander|Avatar:Erebos, God of the Dead|Desc: +Name:Heliod|Deck:Heliod.dck|Variant:Commander|Avatar:Heliod, God of the Sun|Desc: +Name:Defeat a God|Deck:XenagosPW.dck|Variant:Planeswalker|Avatar:Xenagos, the Reveler|Desc: \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Setessa/AjaniPW.dck b/forge-gui/res/conquest/planes/Theros_Classic/Setessa/AjaniPW.dck new file mode 100644 index 00000000000..40df84d538e --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Setessa/AjaniPW.dck @@ -0,0 +1,36 @@ +[metadata] +Name=PCTHSAjaniPW +[Commander] +1 Karametra, God of Harvests|BNG +[Main] +1 Ajani's Presence|JOU +1 Ajani, Mentor of Heroes|JOU +1 Akroan Skyguard|BNG +1 Anthousa, Setessan Hero|THS +1 Banishing Light|JOU +1 Brimaz, King of Oreskos|BNG +1 Chronicler of Heroes|THS +1 Courser of Kruphix|BNG +1 Dawnbringer Charioteers|JOU +1 Fabled Hero|THS +1 Favored Hoplite|THS +8 Forest|BFZ|1 +1 Gods Willing|THS +1 Heroes' Podium|BNG +1 Hixus, Prison Warden|ORI +1 Kytheon, Hero of Akros|ORI +1 Mana Confluence|JOU +1 Phalanx Formation|JOU +1 Phalanx Leader|THS +5 Plains|BFZ|1 +1 Polukranos, World Eater|THS +1 Reap What Is Sown|BNG +1 Setessan Tactics|JOU +1 Solidarity of Heroes|JOU +1 Soul of Theros|M15 +1 Sylvan Caryatid|THS +1 Temple of Plenty|BNG +1 Unknown Shores|OGW +1 Warriors' Lesson|THS +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Setessa/Anthousa.dck b/forge-gui/res/conquest/planes/Theros_Classic/Setessa/Anthousa.dck new file mode 100644 index 00000000000..bb96ac35e23 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Setessa/Anthousa.dck @@ -0,0 +1,34 @@ +[metadata] +Name=PCTHSAnthousa +[Commander] +1 Anthousa, Setessan Hero|THS +[Main] +1 Arbor Colossus|C15 +1 Burnished Hart|C15 +1 Centaur Battlemaster|THS +1 Colossal Heroics|JOU +1 Courser of Kruphix|BNG +1 Fade into Antiquity|THS +1 Fated Intervention|BNG +1 Font of Fertility|JOU +4 Forest|THS|1 +6 Forest|THS|2 +1 Forest|THS|3 +5 Forest|THS|4 +1 Hero of Leina Tower|BNG +1 Nessian Game Warden|JOU +1 Nykthos, Shrine to Nyx|THS +1 Nylea's Disciple|THS +1 Ordeal of Nylea|THS +1 Pheres-Band Centaurs|THS +1 Pheres-Band Raiders|BNG +1 Pheres-Band Thunderhoof|JOU +1 Pheres-Band Tromper|BNG +1 Pheres-Band Warchief|JOU +1 Setessan Oathsworn|BNG +1 Setessan Tactics|JOU +1 Staunch-Hearted Warrior|THS +1 Swordwise Centaur|BNG +1 Voyaging Satyr|THS +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Setessa/BGConstellation.dck b/forge-gui/res/conquest/planes/Theros_Classic/Setessa/BGConstellation.dck new file mode 100644 index 00000000000..a19cd17e6b8 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Setessa/BGConstellation.dck @@ -0,0 +1,22 @@ +[metadata] +Name=PCTHSBGConstellation +[Main] +3 Brain Maggot|JOU +3 Courser of Kruphix|BNG +2 Dictate of Karametra|JOU +3 Doomwake Giant|C15 +3 Eidolon of Blossoms|JOU +3 Font of Fertility|JOU +1 Forest|THS|1 +3 Forest|THS|3 +3 Forest|THS|4 +2 Hero's Downfall|THS +2 Mana Confluence|JOU +2 Silence the Believers|JOU +1 Swamp|THS|1 +1 Swamp|THS|2 +2 Swamp|THS|3 +3 Sylvan Caryatid|THS +3 Temple of Malady|JOU +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Setessa/Hydra.dck b/forge-gui/res/conquest/planes/Theros_Classic/Setessa/Hydra.dck new file mode 100644 index 00000000000..75be796d26a --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Setessa/Hydra.dck @@ -0,0 +1,32 @@ +[metadata] +Name=PCTHSHydra +[Commander] +1 Polukranos, World Eater|THS +[Main] +1 Aspect of Hydra|BNG +1 Astral Cornucopia|BNG +1 Burnished Hart|C15 +1 Consign to Dust|JOU +1 Culling Mark|BNG +1 Defend the Hearth|THS +1 Fade into Antiquity|THS +15 Forest|C15|1 +1 Golden Hind|JOU +1 Heroes' Bane|JOU +1 Hydra Broodmaster|JOU +1 Karametra's Acolyte|THS +1 Mistcutter Hydra|THS +1 Mortal's Resolve|BNG +1 Nessian Asp|THS +1 Nessian Wilds Ravager|BNG +1 Nykthos, Shrine to Nyx|THS +1 Ravenous Leucrocota|JOU +1 Scourge of Skola Vale|BNG +1 Sedge Scorpion|THS +1 Setessan Tactics|JOU +1 Solidarity of Heroes|JOU +1 Sylvan Caryatid|THS +1 Time to Feed|THS +1 Voyaging Satyr|THS +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Setessa/Karametra.dck b/forge-gui/res/conquest/planes/Theros_Classic/Setessa/Karametra.dck new file mode 100644 index 00000000000..337df09fff6 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Setessa/Karametra.dck @@ -0,0 +1,40 @@ +[metadata] +Name=PCTHSKarametra +[Commander] +1 Karametra, God of Harvests|BNG +[Main] +1 Arbor Colossus|C15 +1 Archetype of Endurance|BNG +1 Banishing Light|C15 +1 Burnished Hart|C15 +1 Consign to Dust|JOU +1 Courser of Kruphix|BNG +1 Dawnbringer Charioteers|JOU +1 Dictate of Karametra|JOU +1 Divine Verdict|M15 +1 Eidolon of Blossoms|JOU +1 Excoriate|BNG +1 Fleecemane Lion|THS +1 Font of Fertility|JOU +2 Forest|THS|1 +4 Forest|THS|2 +2 Forest|THS|4 +1 Harvestguard Alseids|JOU +1 Hopeful Eidolon|THS +1 Humbler of Mortals|JOU +1 Karametra's Acolyte|THS +1 Karametra's Favor|BNG +1 Mana Confluence|JOU +1 Nessian Wilds Ravager|BNG +1 Nyx-Fleece Ram|JOU +1 Ordeal of Nylea|THS +1 Peregrination|BNG +1 Plains|THS|1 +1 Plains|THS|2 +1 Plains|THS|3 +2 Plains|THS|4 +1 Sylvan Caryatid|THS +1 Temple of Plenty|BNG +1 Unknown Shores|OGW +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Setessa/MonoGDev.dck b/forge-gui/res/conquest/planes/Theros_Classic/Setessa/MonoGDev.dck new file mode 100644 index 00000000000..5fde0d85461 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Setessa/MonoGDev.dck @@ -0,0 +1,19 @@ +[metadata] +Name=PCTHSMonoGDev +[Main] +3 Arbor Colossus|C15 +3 Aspect of Hydra|BNG +3 Courser of Kruphix|BNG +3 Forest|THS|1 +4 Forest|THS|2 +3 Forest|THS|3 +3 Forest|THS|4 +3 Nykthos, Shrine to Nyx|THS +2 Nylea's Disciple|THS +2 Nylea, God of the Hunt|THS +2 Polukranos, World Eater|THS +3 Reverent Hunter|THS +3 Setessan Tactics|JOU +3 Swordwise Centaur|BNG +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Setessa/Pharika.dck b/forge-gui/res/conquest/planes/Theros_Classic/Setessa/Pharika.dck new file mode 100644 index 00000000000..06565dd2c56 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Setessa/Pharika.dck @@ -0,0 +1,42 @@ +[metadata] +Name=PCTHSPharika +[Commander] +1 Pharika, God of Affliction|JOU +[Main] +1 Aspect of Gorgon|JOU +1 Baleful Eidolon|THS +1 Boon of Erebos|THS +1 Claim of Erebos|BNG +1 Consign to Dust|JOU +1 Courser of Kruphix|BNG +1 Cruel Feeding|JOU +1 Forest|ORI|1 +1 Forest|ORI|2 +1 Forest|ORI|3 +1 Forest|ORI|4 +1 Gorgon's Head|BNG +1 Gray Merchant of Asphodel|C14 +1 Grim Guardian|JOU +1 Herald of Torment|BNG +1 Hero's Downfall|THS +1 Mana Confluence|JOU +1 Nemesis of Mortals|THS +1 Nessian Asp|THS +1 Nykthos, Shrine to Nyx|THS +1 Nyx Weaver|JOU +1 Pharika's Chosen|JOU +1 Pharika's Cure|THS +1 Pharika's Disciple|ORI +1 Pharika's Mender|THS +1 Read the Bones|ORI +1 Reaper of the Wilds|THS +1 Returned Reveler|JOU +1 Snake of the Golden Grove|BNG +1 Swamp|ORI|1 +3 Swamp|ORI|2 +2 Swamp|ORI|3 +2 Swamp|ORI|4 +1 Temple of Malady|JOU +1 Unknown Shores|OGW +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Setessa/WildMonsters.dck b/forge-gui/res/conquest/planes/Theros_Classic/Setessa/WildMonsters.dck new file mode 100644 index 00000000000..0353c3ee703 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Setessa/WildMonsters.dck @@ -0,0 +1,21 @@ +[metadata] +Name=PCTHSNayaMonsters +[Main] +2 Anger of the Gods|THS +2 Arbor Colossus|C15 +2 Banishing Light|C15 +3 Fanatic of Xenagos|BNG +3 Fleecemane Lion|THS +3 Forest|THS|4 +2 Lightning Strike|M15 +2 Magma Jet|THS +3 Mana Confluence|JOU +2 Mountain|THS|4 +2 Plains|THS|3 +3 Polukranos, World Eater|THS +2 Stormbreath Dragon|THS +3 Sylvan Caryatid|THS +3 Temple of Abandon|THS +3 Temple of Plenty|BNG +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Setessa/XenagosPW.dck b/forge-gui/res/conquest/planes/Theros_Classic/Setessa/XenagosPW.dck new file mode 100644 index 00000000000..4433117f9a3 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Setessa/XenagosPW.dck @@ -0,0 +1,43 @@ +[metadata] +Name=PCTHSXenagosPW +[Commander] +1 Xenagos, God of Revels|BNG +[Main] +1 Anger of the Gods|THS +1 Boon Satyr|THS +1 Centaur Battlemaster|THS +1 Courser of Kruphix|BNG +1 Destructive Revelry|THS +1 Eidolon of the Great Revel|JOU +1 Fanatic of Xenagos|BNG +1 Firedrinker Satyr|THS +1 Forest|M15|1 +1 Forest|M15|2 +1 Forest|M15|3 +3 Forest|M15|4 +1 Lightning Strike|M15 +1 Magma Jet|THS +1 Mana Confluence|JOU +2 Mountain|M15|1 +1 Mountain|M15|2 +2 Mountain|M15|3 +1 Mountain|M15|4 +1 Nykthos, Shrine to Nyx|THS +1 Nyxborn Rollicker|BNG +1 Pheres-Band Raiders|BNG +1 Pheres-Band Thunderhoof|JOU +1 Pheres-Band Tromper|BNG +1 Pheres-Band Warchief|JOU +1 Polukranos, World Eater|THS +1 Reckless Reveler|BNG +1 Satyr Firedancer|BNG +1 Searing Blood|BNG +1 Stormbreath Dragon|THS +1 Swordwise Centaur|BNG +1 Temple of Abandon|THS +1 Traveler's Amulet|THS +1 Unknown Shores|OGW +1 Voyaging Satyr|THS +1 Xenagos, the Reveler|THS +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/Setessa/_events.txt b/forge-gui/res/conquest/planes/Theros_Classic/Setessa/_events.txt new file mode 100644 index 00000000000..059a1580d49 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/Setessa/_events.txt @@ -0,0 +1,8 @@ +Name:Devotion to the Hunt|Deck:MonoGDev.dck|Variant:None|Avatar:Courser of Kruphix|Desc: +Name:Anthousa|Deck:Anthousa.dck|Variant:Commander|Avatar:Anthousa, Setessan Hero|Desc: +Name:Wild Monsters|Deck:WildMonsters.dck|Variant:None|Avatar:Fleecemane Lion|Desc: +Name:Karametra|Deck:Karametra.dck|Variant:Commander|Avatar:Karametra, God of Harvests|Desc: +Name:Dark Setessan Night|Deck:BGConstellation.dck|Variant:None|Avatar:Doomwake Giant|Desc: +Name:Pharika|Deck:Pharika.dck|Variant:Commander|Avatar:Pharika, God of Affliction|Desc: +Name:Polukranos|Deck:Hydra.dck|Variant:None|Avatar:Polukranos, World Eater|Desc: +Name:Ajani, Mentor of Heroes|Deck:AjaniPW.dck|Variant:Planeswalker|Avatar:Ajani, Mentor of Heroes|Desc: \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/AshiokPW.dck b/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/AshiokPW.dck new file mode 100644 index 00000000000..a9749132f29 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/AshiokPW.dck @@ -0,0 +1,40 @@ +[metadata] +Name=PCTHSAshiokPW +[Commander] +1 Phenax, God of Deception|BNG +[Main] +1 Ashiok, Nightmare Weaver|THS +1 Black Oak of Odunos|BNG +1 Dakra Mystic|JOU +1 Disciple of Deceit|JOU +1 Disciple of Phenax|THS +1 Dissolve|THS +1 Drown in Sorrow|BNG +1 Fated Return|BNG +1 Gild|C15 +1 Gorgon's Head|BNG +1 Grim Guardian|JOU +1 Guardians of Meletis|ORI +1 Hero's Downfall|THS +2 Island|C15|2 +1 Island|C15|3 +1 Island|C15|4 +1 Mana Confluence|JOU +1 Nighthowler|C15 +1 Psychic Intrusion|THS +1 Read the Bones|ORI +1 Returned Centaur|ORI +1 Returned Phalanx|THS +1 Rotted Hulk|JOU +1 Sigiled Starfish|ORI +1 Silence the Believers|JOU +1 Siren of the Silent Song|BNG +3 Swamp|C15|1 +4 Swamp|C15|3 +2 Swamp|C15|4 +1 Temple of Deceit|THS +1 Thassa's Devourer|JOU +1 Unknown Shores|OGW +1 Worst Fears|JOU +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/Athreos.dck b/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/Athreos.dck new file mode 100644 index 00000000000..636ba61b16a --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/Athreos.dck @@ -0,0 +1,40 @@ +[metadata] +Name=PCTHSAthreos +[Commander] +1 Athreos, God of Passage|JOU +[Main] +1 Baleful Eidolon|THS +1 Banishing Light|C15 +1 Bile Blight|BNG +1 Brain Maggot|JOU +1 Doomwake Giant|C15 +1 Dreadbringer Lampads|C15 +1 Eidolon of Rhetoric|JOU +1 Fate Unraveler|C15 +1 Gnarled Scarhide|JOU +1 Gray Merchant of Asphodel|C14 +1 Grim Guardian|JOU +1 Herald of Torment|BNG +1 Hero's Downfall|THS +1 Hopeful Eidolon|THS +1 Mana Confluence|JOU +1 Nyxborn Shieldmate|BNG +1 Odunos River Trawler|BNG +1 Plains|THS|2 +1 Plains|THS|3 +2 Plains|THS|4 +1 Scholar of Athreos|THS +1 Shadows of the Past|ORI +1 Silence the Believers|JOU +1 Spirit of the Labyrinth|BNG +1 Spiteful Returned|BNG +3 Swamp|THS|1 +3 Swamp|THS|2 +1 Swamp|THS|3 +2 Swamp|THS|4 +1 Temple of Silence|THS +1 Thoughtseize|THS +1 Underworld Coinsmith|C15 +1 Unknown Shores|OGW +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/DaxosReturned.dck b/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/DaxosReturned.dck new file mode 100644 index 00000000000..706a1ef6076 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/DaxosReturned.dck @@ -0,0 +1,40 @@ +[metadata] +Name=PCTHSDaxosReturned +[Commander] +1 Daxos the Returned|C15 +[Main] +1 Archetype of Courage|BNG +1 Armament of Nyx|JOU +1 Banishing Light|C15 +1 Blood-Cursed Knight|ORI +1 Brain Maggot|JOU +1 Daxos's Torment|C15 +1 Doomwake Giant|C15 +1 Dreadbringer Lampads|C15 +1 Eidolon of Countless Battles|BNG +1 Gift of Immortality|THS +1 Gnarled Scarhide|JOU +1 Godsend|JOU +1 Grim Guardian|JOU +1 Harvestguard Alseids|JOU +1 Helm of the Gods|ORI +1 Herald of Torment|BNG +1 Hopeful Eidolon|THS +1 Mana Confluence|JOU +1 Nyx-Fleece Ram|JOU +1 Nyxborn Shieldmate|BNG +1 Oppressive Rays|M15 +1 Plains|C15|1 +3 Plains|C15|2 +1 Plains|C15|3 +3 Plains|C15|4 +1 Sightless Brawler|JOU +1 Suppression Bonds|ORI +2 Swamp|C15|2 +2 Swamp|C15|3 +1 Swamp|C15|4 +1 Temple of Silence|THS +1 Underworld Coinsmith|C15 +1 Unknown Shores|OGW +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/KingMacar.dck b/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/KingMacar.dck new file mode 100644 index 00000000000..6e7f3b942bf --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/KingMacar.dck @@ -0,0 +1,35 @@ +[metadata] +Name=PCTHSKingMacar +[Commander] +1 King Macar, the Gold-Cursed|JOU +[Main] +1 Abhorrent Overlord|THS +1 Archetype of Finality|BNG +1 Baleful Eidolon|THS +1 Black Oak of Odunos|BNG +1 Brain Maggot|JOU +1 Forlorn Pseudamma|BNG +1 Gild|C15 +1 Gorgon Flail|M10 +1 Gray Merchant of Asphodel|C14 +1 Hero's Downfall|THS +1 Hythonia the Cruel|THS +1 Keepsake Gorgon|THS +1 Marshmist Titan|BNG +1 Necrobite|M15 +1 Nykthos, Shrine to Nyx|THS +1 Pain Seer|BNG +1 Pharika's Chosen|JOU +1 Servant of Tymaret|BNG +1 Silence the Believers|JOU +1 Springleaf Drum|BNG +1 Squelching Leeches|JOU +3 Swamp|THS|1 +3 Swamp|THS|2 +2 Swamp|THS|3 +7 Swamp|THS|4 +1 Thoughtseize|THS +1 Witches' Eye|THS +1 Worst Fears|JOU +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/MonoBDev.dck b/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/MonoBDev.dck new file mode 100644 index 00000000000..8542f01bdaf --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/MonoBDev.dck @@ -0,0 +1,18 @@ +[metadata] +Name=PCTHSMonoBDev +[Main] +3 Bile Blight|BNG +3 Erebos's Titan|ORI +3 Gray Merchant of Asphodel|C14 +3 Herald of Torment|BNG +3 Hero's Downfall|THS +3 Nykthos, Shrine to Nyx|THS +3 Squelching Leeches|JOU +3 Swamp|THS|1 +6 Swamp|THS|2 +2 Swamp|THS|3 +2 Swamp|THS|4 +3 Thoughtseize|THS +2 Whip of Erebos|THS +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/Tymaret.dck b/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/Tymaret.dck new file mode 100644 index 00000000000..6511ca72a7d --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/Tymaret.dck @@ -0,0 +1,38 @@ +[metadata] +Name=PCTHSTymaret +[Commander] +1 Tymaret, the Murder King|THS +[Main] +1 Agent of the Fates|THS +1 Akroan Conscriptor|BNG +1 Akroan Crusader|THS +1 Bile Blight|BNG +1 Champion of Stray Souls|C15 +1 Coordinated Assault|THS +1 Dictate of Erebos|JOU +1 Eater of Hope|C15 +1 Everflame Eidolon|BNG +1 Firedrinker Satyr|THS +1 Gnarled Scarhide|JOU +1 Harness by Force|JOU +1 Hero's Downfall|THS +1 Lightning Strike|M15 +1 Mana Confluence|JOU +3 Mountain|M15|1 +2 Mountain|M15|2 +1 Pharika's Chosen|JOU +1 Portent of Betrayal|THS +1 Rescue from the Underworld|THS +1 Searing Blood|BNG +1 Silence the Believers|JOU +1 Spiteful Returned|BNG +1 Swamp|M15|1 +4 Swamp|M15|3 +3 Swamp|M15|4 +1 Temple of Malice|BNG +1 Titan's Strength|ORI +1 Two-Headed Cerberus|THS +1 Underworld Cerberus|THS +1 Unknown Shores|OGW +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/UBControl.dck b/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/UBControl.dck new file mode 100644 index 00000000000..4a6bcb4e6cc --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/UBControl.dck @@ -0,0 +1,24 @@ +[metadata] +Name=PCTHSUBControl +[Main] +3 Ashiok, Nightmare Weaver|THS +2 Bile Blight|BNG +2 Dissolve|THS +1 Divination|M15 +2 Drown in Sorrow|BNG +2 Hero's Downfall|THS +2 Island|THS|3 +4 Island|THS|4 +2 Nullify|BNG +2 Pharika's Cure|THS +1 Read the Bones|ORI +2 Silence the Believers|JOU +1 Swamp|THS|1 +2 Swamp|THS|2 +4 Swamp|THS|3 +2 Swamp|THS|4 +3 Temple of Deceit|THS +1 Thassa's Bounty|THS +2 Thoughtseize|THS +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/UBMiling.dck b/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/UBMiling.dck new file mode 100644 index 00000000000..e833d3ed654 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/UBMiling.dck @@ -0,0 +1,21 @@ +[metadata] +Name=PCTHSUBMiling +[Main] +3 Coastline Chimera|THS +3 Dictate of Kruphix|JOU +3 Drown in Sorrow|BNG +3 Guardians of Meletis|ORI +3 Hero's Downfall|THS +2 Island|ORI|1 +1 Island|ORI|2 +1 Island|ORI|3 +1 Island|ORI|4 +3 Master of the Feast|JOU +3 Phenax, God of Deception|BNG +3 Sigiled Starfish|ORI +4 Swamp|ORI|1 +2 Swamp|ORI|2 +2 Swamp|ORI|3 +3 Temple of Deceit|THS +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/_events.txt b/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/_events.txt new file mode 100644 index 00000000000..0eb8ebfc956 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/The Underworld/_events.txt @@ -0,0 +1,8 @@ +Name:Control your Nightmares|Deck:UBControl.dck|Variant:None|Avatar:Thoughtseize|Desc: +Name:Tymaret|Deck:Tymaret.dck|Variant:Commander|Avatar:Tymaret, the Murder King|Desc: +Name:Death Devotion|Deck:MonoBDev.dck|Variant:None|Avatar:Gray Merchant of Asphodel|Desc: +Name:King Macar|Deck:KingMacar.dck|Variant:Commander|Avatar:King Macar, the Gold-Cursed|Desc: +Name:Mind Drain|Deck:UBMilling.dck|Variant:None|Avatar:Phenax, God of Deception|Desc: +Name:Athreos|Deck:Athreos.dck|Variant:Commander|Avatar:Athreos, God of Passage|Desc: +Name:Daxos the Returned|Deck:DaxosReturned.dck|Variant:Commander|Avatar:Daxos the Returned|Desc: +Name:Ashiok|Deck:AshiokPW.dck|Variant:Planeswalker|Avatar:Ashiok, Nightmare Weaver|Desc: diff --git a/forge-gui/res/conquest/planes/Theros_Classic/banned_cards.txt b/forge-gui/res/conquest/planes/Theros_Classic/banned_cards.txt new file mode 100644 index 00000000000..c829e4affb4 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/banned_cards.txt @@ -0,0 +1,85 @@ +Ancient Den +Arsenal Thresher +Ascendant Evincar +Beetleback Chief +Bloodbraid Elf +Artisan of Kozilek +Azorius Chancery +Azorius Guildmage +Boros Garrison +Boros Guildmage +Boros Signet +Boros Swiftblade +Bosh, Iron Golem +Copper Myr +Darksteel Forge +Dimir Infiltrator +Enigma Sphinx +Festering Goblin +Fractured Powerstone +Furnace of Rath +Glen Elendra Liege +Goblin Offensive +Dimir Aqueduct +Dimir Signet +Dreamstone Hedron +Duergar Hedge-Mage +Evincar's Justice +Flametongue Kavu +Golgari Guildmage +Golgari Rot Farm +Golgari Signet +Gold Myr +Great Furnace +Hearthfire Hobgoblin +Higure, the Still Wind +Ink-Eyes, Servant of Oni +Iron Myr +Kor Sanctifiers +Kor Spiritdancer +Leaden Myr +Lodestone Myr +Master of Etherium +Mistblade Shinobi +Mudbutton Torchrunner +Myr Enforcer +Nest Invader +Ninja of the Deep Hours +Okiba-Gang Shinobi +Razia, Boros Archangel +Sarcomite Myr +Seat of the Synod +Silent-Blade Oni +Silver Myr +Sludge Strider +Sunhome, Fortress of the Legion +Suntouched Myr +Throat Slitter +Tree of Tales +Tukatongue Thallid +Vault of Whispers +Vedalken Engineer +Vitu-Ghazi, the City-Tree +Walker of Secret Ways +Gruul Signet +Gruul Turf +Gwyllion Hedge-Mage +Izzet Boilerworks +Izzet Chronarch +Izzet Signet +Nezumi Graverobber +Orzhov Basilica +Orzhov Guildmage +Orzhov Signet +Patron of the Nezumi +Rakdos Carnarium +Rakdos Signet +Rapacious One +Selesnya Evangel +Selesnya Sanctuary +Selesnya Signet +Simic Growth Chamber +Simic Signet +Simic Sky Swallower +Svogthos, the Restless Tomb +Yavimaya Elder \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Theros_Classic/cards.txt b/forge-gui/res/conquest/planes/Theros_Classic/cards.txt new file mode 100644 index 00000000000..101c122aa34 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/cards.txt @@ -0,0 +1,44 @@ +Gorgon Flail +Helm of the Gods +Sigil of Valor +Aegis Angel +Soul of Theros +Enlightened Ascetic +Ajani's Chosen +Herald of the Pantheon +Ajani Steadfast +Ajani's Sunstriker +Akroan Jailer +Akroan Sergeant +Anchor to the AEther +Blood-Cursed Knight +Daxos the Returned +Daxos's Torment +Kalemne, Disciple of Iroas +Gideon's Avenger +Gideon's Lawkeeper +Gideon's Phalanx +Grasp of the Hieromancer +Kytheon's Irregulars +Kytheon's Tactics +Kytheon, Hero of Akros +Hixus, Prison Warden +Iroas's Champion +Kalemne's Captain +Magmatic Insight +Oath of the Ancient Wood +Prickleboar +Shadows of the Past +Starfield of Nyx +Suppression Bonds +Valor in Akros +Pharika's Disciple +Celestial Flare +Pharika's Disciple +Erebos's Titan +Harbinger of the Tides +Tidebinder Mage +Claustrophobia +Tragic Arrogance +Kynaios and Tiro of Meletis +Xathrid Gorgon \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Theros_Classic/plane_cards.txt b/forge-gui/res/conquest/planes/Theros_Classic/plane_cards.txt new file mode 100644 index 00000000000..dffedf5ded6 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/plane_cards.txt @@ -0,0 +1 @@ +Lethe Lake \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Theros_Classic/regions.txt b/forge-gui/res/conquest/planes/Theros_Classic/regions.txt new file mode 100644 index 00000000000..954cce0821c --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/regions.txt @@ -0,0 +1,5 @@ +Name:Setessa|Art:Temple of Plenty|Colors:GW +Name:Akros|Art:Temple of Triumph|Colors:RW +Name:The Underworld|Art:Temple of Silence|Colors:WB +Name:Meletis|Art:Temple of Enlightenment|Colors:UW +Name:Nyx|Art:Nykthos, Shrine to Nyx|Colors:WURBG \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Theros_Classic/sets.txt b/forge-gui/res/conquest/planes/Theros_Classic/sets.txt new file mode 100644 index 00000000000..7311618d668 --- /dev/null +++ b/forge-gui/res/conquest/planes/Theros_Classic/sets.txt @@ -0,0 +1,5 @@ +THS +BNG +JOU +HOP +PCA \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Akoum Rally.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Akoum Rally.dck new file mode 100644 index 00000000000..b2fb2750e5b --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Akoum Rally.dck @@ -0,0 +1,41 @@ +[metadata] +Name=Akoum Rally +[Main] +1 Agadeem Occultist|WWK +1 Akoum Battlesinger|WWK +1 Akoum Flameseeker|OGW +1 Ally Encampment|BFZ +1 Bala Ged Thief|ZEN +1 Bloodbond Vampire|BFZ +1 Captain's Claws|OGW +1 Chasm Guide|BFZ +1 Drana's Chosen|OGW +1 Drana, Liberator of Malakir|BFZ +1 Firemantle Mage|BFZ +1 Goblin Freerunner|OGW +1 Hagra Diabolist|ZEN +1 Highland Berserker|ZEN +1 Kalastria Healer|BFZ +1 Kalastria Nightwatch|BFZ +1 Kazuul Warlord|ZEN +1 Malakir Soothsayer|OGW +1 Mountain|BFZ|3 +2 Mountain|BFZ|4 +2 Mountain|BFZ|5 +1 Mountain|BFZ|7 +2 Mountain|BFZ|9 +1 Murasa Pyromancer|ZEN +1 Nimana Sell-Sword|ZEN +1 Ondu Champion|BFZ +1 Reckless Bushwhacker|OGW +1 Swamp|BFZ|2 +1 Swamp|BFZ|3 +1 Swamp|BFZ|5 +2 Swamp|BFZ|6 +1 Swamp|BFZ|9 +1 Tuktuk Scrapper|WWK +1 Zada, Hedron Grinder|BFZ +1 Zulaport Chainmage|OGW +1 Zulaport Cutthroat|BFZ +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Anowon, the Ruin Sage.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Anowon, the Ruin Sage.dck new file mode 100644 index 00000000000..0bf7895874d --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Anowon, the Ruin Sage.dck @@ -0,0 +1,41 @@ +[metadata] +Name=Anowon, the Ruin Sage +[Commander] +1 Anowon, the Ruin Sage|WWK +[Main] +1 Arrogant Bloodlord|ROE +1 Blade of the Bloodchief|ZEN +1 Blood Seeker|M12 +1 Blood Tribute|ZEN +1 Bloodbond Vampire|BFZ +1 Bloodghast|ZEN +1 Bloodhusk Ritualist|WWK +1 Bloodrite Invoker|ROE +1 Bloodthrone Vampire|MM2 +1 Butcher of Malakir|C15 +1 Carrier Thrall|BFZ +1 Defiant Bloodlord|BFZ +1 Drana's Chosen|OGW +1 Feast of Blood|ZEN +1 Gatekeeper of Malakir|DDK +1 Guul Draz Assassin|ROE +1 Guul Draz Overseer|BFZ +1 Guul Draz Vampire|ZEN +1 Kalastria Healer|BFZ +1 Kalastria Highborn|WWK +1 Kalastria Nightwatch|BFZ +1 Malakir Bloodwitch|ZEN +1 Malakir Cullblade|ORI +1 Malakir Soothsayer|OGW +1 Nirkana Assassin|BFZ +1 Swamp|BFZ|1 +3 Swamp|BFZ|2 +1 Swamp|BFZ|3 +2 Swamp|BFZ|4 +1 Swamp|BFZ|5 +1 Swamp|BFZ|7 +4 Swamp|BFZ|8 +1 Swamp|BFZ|9 +1 Swamp|BFZ|10 +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Drana, Kalastria Bloodchief.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Drana, Kalastria Bloodchief.dck new file mode 100644 index 00000000000..49c69e24836 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Drana, Kalastria Bloodchief.dck @@ -0,0 +1,36 @@ +[metadata] +Name=Drana, Kalastria Bloodchief +[Commander] +1 Drana, Kalastria Bloodchief|C14 +[Main] +1 Arrogant Bloodlord|ROE +1 Blade of the Bloodchief|ZEN +1 Blood Tribute|ZEN +1 Bloodbond Vampire|BFZ +1 Bloodghast|ZEN +1 Bloodhusk Ritualist|WWK +1 Bone Splinters|BFZ +1 Brink of Disaster|M12 +1 Consume the Meek|ROE +1 Corpsehatch|ROE +1 Defiant Bloodlord|BFZ +1 Drana's Chosen|OGW +1 Feast of Blood|ZEN +1 Gatekeeper of Malakir|DDK +1 Guul Draz Assassin|ROE +1 Heartstabber Mosquito|ZEN +1 Hideous End|DDE +1 Kalastria Highborn|WWK +1 Malakir Bloodwitch|ZEN +1 Mire Blight|ZEN +1 Ob Nixilis Reignited|BFZ +1 Ruinous Path|BFZ +1 Smother|WWK +2 Swamp|ROE|1 +3 Swamp|ROE|2 +4 Swamp|ROE|3 +6 Swamp|ROE|4 +1 Vampire Nighthawk|C13 +1 Vendetta|ROE +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Drana, Liberator of Malakir.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Drana, Liberator of Malakir.dck new file mode 100644 index 00000000000..60e0f9af591 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Drana, Liberator of Malakir.dck @@ -0,0 +1,41 @@ +[metadata] +Name=Drana, Liberator of Malakir +[Commander] +1 Drana, Liberator of Malakir|BFZ +[Main] +1 Basilisk Collar|WWK +1 Blade of the Bloodchief|ZEN +1 Bloodbond Vampire|BFZ +1 Captain's Claws|OGW +1 Chitinous Cloak|OGW +1 Drana's Chosen|OGW +1 Eldrazi Monument|C15 +1 Feast of Blood|ZEN +1 Grappling Hook|ZEN +1 Grasp of Darkness|OGW +1 Grip of Desolation|BFZ +1 Inquisition of Kozilek|ROE +1 Kalastria Healer|BFZ +1 Kalastria Nightwatch|BFZ +1 Malakir Soothsayer|OGW +1 Marsh Casualties|DDM +1 Nirkana Assassin|BFZ +1 Pennon Blade|ROE +1 Ruinous Path|BFZ +1 Smother|WWK +1 Stoneforge Masterwork|OGW +3 Swamp|BFZ|1 +1 Swamp|BFZ|2 +2 Swamp|BFZ|3 +1 Swamp|BFZ|5 +3 Swamp|BFZ|6 +1 Swamp|BFZ|7 +1 Swamp|BFZ|8 +1 Swamp|BFZ|9 +2 Swamp|BFZ|10 +1 Sword of the Animist|ORI +1 Trailblazer's Boots|ZEN +1 Trusty Machete|ZEN +1 Vampire Envoy|OGW +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Kalitas, Bloodchief of Ghet.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Kalitas, Bloodchief of Ghet.dck new file mode 100644 index 00000000000..76e3380b0b3 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Kalitas, Bloodchief of Ghet.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Kalitas, Bloodchief of Ghet +[Commander] +1 Kalitas, Bloodchief of Ghet|ZEN +[Main] +1 Anowon, the Ruin Sage|WWK +1 Arrogant Bloodlord|ROE +1 Basilisk Collar|WWK +1 Blade of the Bloodchief|ZEN +1 Blighted Fen|BFZ +1 Blood Seeker|M12 +1 Blood Tribute|ZEN +1 Bloodbond Vampire|BFZ +1 Bloodghast|ZEN +1 Bloodhusk Ritualist|WWK +1 Bojuka Bog|C14 +1 Butcher of Malakir|C15 +1 Crypt of Agadeem|C14 +1 Defiant Bloodlord|BFZ +1 Feast of Blood|ZEN +1 Gatekeeper of Malakir|DDK +1 Guul Draz Assassin|ROE +1 Guul Draz Overseer|BFZ +1 Kalastria Highborn|WWK +1 Malakir Bloodwitch|ZEN +1 Malakir Cullblade|ORI +1 Mortuary Mire|BFZ +1 Nirkana Cutthroat|ROE +1 Nirkana Revenant|ROE +1 Piranha Marsh|ZEN +1 Pulse Tracker|DDM +1 Quag Vampires|CNS +1 Swamp|BFZ|1 +2 Swamp|BFZ|2 +1 Swamp|BFZ|3 +3 Swamp|BFZ|4 +1 Swamp|BFZ|5 +1 Swamp|BFZ|7 +1 Swamp|BFZ|10 +1 Urge to Feed|DDK +1 Vampire Nighthawk|C13 +1 Vampire's Bite|DDK +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Kalitas, Traitor of Ghet.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Kalitas, Traitor of Ghet.dck new file mode 100644 index 00000000000..5e3901c012f --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Kalitas, Traitor of Ghet.dck @@ -0,0 +1,35 @@ +[metadata] +Name=Kalitas, Traitor of Ghet +[Commander] +1 Kalitas, Traitor of Ghet|OGW +[Main] +1 Arrogant Bloodlord|ROE +1 Bone Splinters|BFZ +1 Complete Disregard|BFZ +1 Consume the Meek|ROE +1 Consuming Vapors|ROE +1 Corpsehatch|ROE +1 Drana's Chosen|OGW +1 Escaped Null|ROE +1 Feast of Blood|ZEN +1 Flaying Tendrils|OGW +1 Grip of Desolation|BFZ +1 Heartstabber Mosquito|ZEN +1 Hideous End|DDE +1 Mindless Null|ZEN +1 Null Caller|OGW +1 Null Champion|ROE +1 Ob Nixilis Reignited|BFZ +1 Oblivion Strike|OGW +1 Quest for the Gravelord|ZEN +1 Ruinous Path|BFZ +1 Smother|WWK +7 Swamp|ROE|1 +4 Swamp|ROE|3 +4 Swamp|ROE|4 +1 Vampire Nighthawk|C13 +1 Vendetta|ROE +1 Voracious Null|BFZ +1 Witness the End|OGW +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Ob Nixilis of the Black Oath.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Ob Nixilis of the Black Oath.dck new file mode 100644 index 00000000000..b9d2aaeea79 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Ob Nixilis of the Black Oath.dck @@ -0,0 +1,41 @@ +[metadata] +Name=Ob Nixilis of the Black Oath +[Main] +1 Archangel of Thune|M14 +1 Basilisk Collar|WWK +1 Blood Seeker|M12 +1 Bloodbond Vampire|BFZ +1 Bloodchief Ascension|ZEN +1 Celestial Mantle|ZEN +1 Cliffhaven Vampire|OGW +1 Consuming Vapors|ROE +1 Curse of Wizardry|ROE +1 Defiant Bloodlord|BFZ +1 Drana's Emissary|BFZ +1 Eternity Vessel|ZEN +1 Feast of Blood|ZEN +1 Felidar Sovereign|BFZ +1 Felidar Umbra|PC2 +1 Kalitas, Traitor of Ghet|OGW +1 Landbind Ritual|ZEN +1 Luminarch Ascension|ZEN +1 Luminous Wake|ROE +1 Marsh Flats|EXP +1 Ob Nixilis of the Black Oath|C14 +1 Oust|ROE +1 Painful Truths|BFZ +2 Plains|C13|1 +2 Plains|C13|2 +1 Plains|C13|3 +1 Plains|C13|4 +1 Retreat to Hagra|BFZ +1 Shambling Vent|BFZ +1 Swamp|C13|1 +4 Swamp|C13|2 +1 Swamp|C13|3 +1 Swamp|C13|4 +1 Transcendent Master|ROE +1 Vampire Nighthawk|C13 +1 Vampiric Rites|BFZ +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Ob Nixilis, Unshackled.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Ob Nixilis, Unshackled.dck new file mode 100644 index 00000000000..8295d2f326a --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Ob Nixilis, Unshackled.dck @@ -0,0 +1,36 @@ +[metadata] +Name=Ob Nixilis, Unshackled +[Commander] +1 Ob Nixilis, Unshackled|M15 +[Main] +1 Arrogant Bloodlord|ROE +1 Basilisk Collar|WWK +1 Blade of the Bloodchief|ZEN +1 Blood Seeker|M12 +1 Bloodchief Ascension|ZEN +1 Bone Splinters|BFZ +1 Brink of Disaster|M12 +1 Consume the Meek|ROE +1 Consuming Vapors|ROE +1 Corpsehatch|ROE +1 Desecrated Earth|ZEN +1 Feast of Blood|ZEN +1 Gatekeeper of Malakir|DDK +1 Giant Scorpion|M13 +1 Heartstabber Mosquito|ZEN +1 Hellcarver Demon|ROE +1 Hideous End|DDE +1 Kalitas, Bloodchief of Ghet|ZEN +1 Mire Blight|ZEN +1 Ob Nixilis Reignited|BFZ +1 Ruinous Path|BFZ +1 Smother|WWK +1 Soul Stair Expedition|ZEN +3 Swamp|ROE|1 +4 Swamp|ROE|2 +3 Swamp|ROE|3 +5 Swamp|ROE|4 +1 Vampire Nighthawk|C13 +1 Vendetta|ROE +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Ob Nixilis, the Fallen.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Ob Nixilis, the Fallen.dck new file mode 100644 index 00000000000..23e691cade8 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Ob Nixilis, the Fallen.dck @@ -0,0 +1,41 @@ +[metadata] +Name=Ob Nixilis, the Fallen +[Commander] +1 Ob Nixilis, the Fallen|ZEN +[Main] +1 Abyssal Persecutor|C14 +1 Altar's Reap|C15 +1 Blighted Fen|BFZ +1 Bojuka Bog|C14 +1 Carrier Thrall|BFZ +1 Complete Disregard|BFZ +1 Consume the Meek|ROE +1 Corpsehatch|ROE +1 Crypt of Agadeem|C14 +1 Demon's Grasp|BFZ +1 Demonic Appetite|ROE +1 Dread Drone|MM2 +1 Essence Feed|ROE +1 Grasp of Darkness|OGW +1 Grave Birthing|BFZ +1 Grip of Desolation|BFZ +1 Halo Hunter|ZEN +1 Hellcarver Demon|ROE +1 Hideous End|DDE +1 Last Kiss|DDM +1 Mortuary Mire|BFZ +1 Null Caller|OGW +1 Pawn of Ulamog|ROE +1 Pestilence Demon|C14 +1 Piranha Marsh|ZEN +1 Quest for the Gravelord|ZEN +1 Sifter of Skulls|OGW +1 Smother|WWK +1 Swamp|ROE|1 +4 Swamp|ROE|2 +1 Swamp|ROE|3 +4 Swamp|ROE|4 +1 Tar Snare|OGW +1 Tomb Hex|WWK +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Sarkhan the Mad.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Sarkhan the Mad.dck new file mode 100644 index 00000000000..6cd0fb804da --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/Sarkhan the Mad.dck @@ -0,0 +1,39 @@ +[metadata] +Name=Sarkhan the Mad +[Main] +1 Akoum Firebird|BFZ +1 Akoum Hellkite|BFZ +1 Chain Reaction|C15 +1 Conquering Manticore|DDL +1 Consume the Meek|ROE +1 Consuming Vapors|ROE +1 Death's Shadow|WWK +1 Devastating Summons|ROE +1 Disaster Radius|C15 +1 Dragonmaster Outcast|BFZ +1 Endless One|BFZ +1 Fall of the Titans|OGW +1 Goblin Guide|ZEN +1 Grappling Hook|ZEN +1 Guul Draz Assassin|ROE +1 Hellion Eruption|PC2 +1 Hellkite Charger|MM2 +1 Kargan Dragonlord|ROE +1 Kazuul, Tyrant of the Cliffs|WWK +1 Lavaclaw Reaches|WWK +1 Lord of Shatterskull Pass|ROE +1 Mordant Dragon|DDG +4 Mountain|ROE|1 +2 Mountain|ROE|2 +1 Mountain|ROE|3 +2 Mountain|ROE|4 +1 Obsidian Fireheart|ZEN +1 Sarkhan the Mad|ROE +1 Smoldering Marsh|EXP +1 Swamp|ROE|1 +2 Swamp|ROE|2 +1 Swamp|ROE|3 +2 Swamp|ROE|4 +1 Tyrant of Valakut|OGW +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/_events.txt b/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/_events.txt new file mode 100644 index 00000000000..379061e50bd --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Akoum/_events.txt @@ -0,0 +1,9 @@ +Name:Akoum Rally|Deck:Akoum Rally.dck|Variant:None|Avatar:Firemantle Mage|Desc: +Name:Anowon, the Ruin Sage|Deck:Anowon, the Ruin Sage.dck|Variant:Commander|Avatar:Anowon, the Ruin Sage|Desc: +Name:Drana, Kalastria Bloodchief|Deck:Drana, Kalastria Bloodchief.dck|Variant:Commander|Avatar:Drana, Kalastria Bloodchief|Desc: +Name:Kalitas, Bloodchief of Ghet|Deck:Kalitas, Bloodchief of Ghet.dck|Variant:Commander|Avatar:Kalitas, Bloodchief of Ghet|Desc: +Name:Ob Nixilis, the Fallen|Deck:Ob Nixilis, the Fallen.dck|Variant:Commander|Avatar:Ob Nixilis, the Fallen|Desc: +Name:Drana, Liberator of Malakir|Deck:Drana, Liberator of Malakir.dck|Variant:Commander|Avatar:Drana, Liberator of Malakir|Desc: +Name:Kalitas, Traitor of Ghet|Deck:Kalitas, Traitor of Ghet.dck|Variant:Commander|Avatar:Kalitas, Traitor of Ghet|Desc: +Name:Ob Nixilis, Unshackled|Deck:Ob Nixilis, Unshackled.dck|Variant:Commander|Avatar:Ob Nixilis, Unshackled|Desc: +Name:Sarkhan the Mad|Deck:Sarkhan the Mad.dck|Variant:Planeswalker|Avatar:Sarkhan the Mad|Desc: \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Annihilator.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Annihilator.dck new file mode 100644 index 00000000000..04b46e1b88a --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Annihilator.dck @@ -0,0 +1,35 @@ +[metadata] +Name=Annihilator +[Main] +1 All Is Dust|MM2 +1 Artisan of Kozilek|MM2 +1 Bane of Bala Ged|BFZ +1 Conduit of Ruin|BFZ +1 Desolation Twin|BFZ +1 Eldrazi Conscription|ROE +1 Eldrazi Temple|MM2 +1 Emrakul, the Aeons Torn|MM2 +1 Endless One|BFZ +1 Eye of Ugin|MM2 +1 Gruesome Slaughter|BFZ +1 Hand of Emrakul|ROE +1 It That Betrays|ROE +1 Kozilek's Channeler|BFZ +1 Kozilek, Butcher of Truth|MM2 +1 Mirrorpool|OGW +1 Not of This World|ROE +1 Pathrazer of Ulamog|ROE +1 Scour from Existence|BFZ +1 Spatial Contortion|OGW +1 Spawning Bed|BFZ +1 Spawnsire of Ulamog|ROE +1 Thought-Knot Seer|OGW +1 Titan's Presence|BFZ +1 Ulamog's Crusher|MM2 +1 Ulamog, the Infinite Gyre|MM2 +1 Walker of the Wastes|OGW +1 Warden of Geometries|OGW +1 Warping Wail|OGW +11 Wastes|OGW|1 +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Devoid.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Devoid.dck new file mode 100644 index 00000000000..d23f0c87d59 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Devoid.dck @@ -0,0 +1,41 @@ +[metadata] +Name=Devoid +[Main] +1 Adverse Conditions|BFZ +1 Barrage Tyrant|BFZ +1 Bearer of Silence|OGW +1 Brood Butcher|BFZ +1 Brood Monitor|BFZ +1 Brutal Expulsion|BFZ +1 Corrupted Crossroads|OGW +1 Deepfathom Skulker|OGW +1 Dimensional Infiltrator|OGW +1 Dread Defiler|OGW +1 Drowner of Hope|BFZ +1 Dust Stalker|BFZ +1 Eldrazi Displacer|OGW +1 Eldrazi Obligator|OGW +1 Fathom Feeder|BFZ +1 Forest|BFZ|2 +1 From Beyond|BFZ +1 Inverter of Truth|OGW +1 Island|BFZ|1 +1 Island|BFZ|4 +1 Kozilek's Return|OGW +1 Mountain|BFZ|9 +1 Mountain|BFZ|10 +1 Plains|BFZ|7 +1 Ruin in Their Wake|OGW +1 Serpentine Spike|BFZ +1 Sifter of Skulls|OGW +1 Sire of Stagnation|BFZ +1 Smothering Abomination|BFZ +1 Swamp|BFZ|4 +1 Swamp|BFZ|9 +1 Swamp|BFZ|10 +1 Vile Redeemer|OGW +1 Wasteland Strangler|BFZ +5 Wastes|OGW|1 +1 World Breaker|OGW +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Emrakul, the Aeons Torn.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Emrakul, the Aeons Torn.dck new file mode 100644 index 00000000000..d2174a55012 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Emrakul, the Aeons Torn.dck @@ -0,0 +1,41 @@ +[metadata] +Name=Emrakul, the Aeons Torn +[Commander] +1 Emrakul, the Aeons Torn|MM2 +[Main] +1 All Is Dust|MM2 +1 Bane of Bala Ged|BFZ +1 Conduit of Ruin|BFZ +1 Deceiver of Form|OGW +1 Desolation Twin|BFZ +1 Dreamstone Hedron|C15 +1 Eldrazi Mimic|OGW +1 Eldrazi Temple|MM2 +1 Endless One|BFZ +1 Everflowing Chalice|MM2 +1 Expedition Map|MM2 +1 Eye of Ugin|MM2 +1 Hedron Archive|BFZ +1 Kozilek's Channeler|BFZ +1 Matter Reshaper|OGW +1 Mirrorpool|OGW +1 Reality Smasher|OGW +1 Ruins of Oran-Rief|OGW +1 Sanctum of Ugin|BFZ +1 Scour from Existence|BFZ +1 Sea Gate Wreckage|OGW +1 Seer's Lantern|OGW +1 Shrine of the Forsaken Gods|BFZ +1 Skittering Invasion|ROE +1 Spatial Contortion|OGW +1 Spawning Bed|BFZ +1 Sword of the Animist|ORI +1 Tectonic Edge|C14 +1 Thought-Knot Seer|OGW +1 Titan's Presence|BFZ +1 Walker of the Wastes|OGW +1 Warden of Geometries|OGW +1 Warping Wail|OGW +7 Wastes|OGW|1 +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Ingest.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Ingest.dck new file mode 100644 index 00000000000..0413cf27597 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Ingest.dck @@ -0,0 +1,40 @@ +[metadata] +Name=Ingest +[Main] +1 Abstruse Interference|OGW +1 Adverse Conditions|BFZ +1 Benthic Infiltrator|BFZ +1 Blight Herder|BFZ +1 Corrupted Crossroads|OGW +1 Cryptic Cruiser|BFZ +1 Culling Drone|BFZ +1 Deepfathom Skulker|OGW +1 Dimensional Infiltrator|OGW +1 Dominator Drone|BFZ +1 Drowner of Hope|BFZ +1 Eldrazi Skyspawner|BFZ +1 Fathom Feeder|BFZ +1 Horribly Awry|BFZ +1 Incubator Drone|BFZ +1 Island|BFZ|1 +2 Island|BFZ|4 +2 Island|BFZ|5 +2 Island|BFZ|7 +1 Island|BFZ|8 +1 Island|BFZ|9 +3 Island|BFZ|10 +1 Mist Intruder|BFZ +1 Mountain|BFZ|4 +1 Murk Strider|BFZ +1 Oracle of Dust|BFZ +1 Ruin Processor|BFZ +1 Ruination Guide|BFZ +1 Salvage Drone|BFZ +1 Sludge Crawler|BFZ +1 Swamp|BFZ|9 +1 Tide Drifter|BFZ +1 Ulamog's Despoiler|BFZ +1 Ulamog's Reclaimer|BFZ +1 Vile Aggregate|BFZ +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Kozilek, Butcher of Truth.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Kozilek, Butcher of Truth.dck new file mode 100644 index 00000000000..97fd1551bab --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Kozilek, Butcher of Truth.dck @@ -0,0 +1,42 @@ +[metadata] +Name=Kozilek, Butcher of Truth +[Commander] +1 Kozilek, Butcher of Truth|MM2 +[Main] +1 All Is Dust|MM2 +1 Bane of Bala Ged|BFZ +1 Conduit of Ruin|BFZ +1 Deceiver of Form|OGW +1 Dread Statuary|DDM +1 Dreamstone Hedron|C15 +1 Eldrazi Mimic|OGW +1 Eldrazi Temple|MM2 +1 Endbringer|OGW +1 Endless One|BFZ +1 Everflowing Chalice|MM2 +1 Expedition Map|MM2 +1 Eye of Ugin|MM2 +1 Hedron Archive|BFZ +1 Hedron Crawler|OGW +1 Kozilek's Channeler|BFZ +1 Kozilek's Pathfinder|OGW +1 Matter Reshaper|OGW +1 Quicksand|CNS +1 Reality Smasher|OGW +1 Ruins of Oran-Rief|OGW +1 Sanctum of Ugin|BFZ +1 Scour from Existence|BFZ +1 Sea Gate Wreckage|OGW +1 Seer's Lantern|OGW +1 Shrine of the Forsaken Gods|BFZ +1 Skittering Invasion|ROE +1 Spatial Contortion|OGW +1 Spawning Bed|BFZ +1 Tectonic Edge|C14 +1 Thought-Knot Seer|OGW +1 Titan's Presence|BFZ +1 Warden of Geometries|OGW +1 Warping Wail|OGW +6 Wastes|OGW|1 +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Kozilek, the Great Distortion.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Kozilek, the Great Distortion.dck new file mode 100644 index 00000000000..df3e83ef5b8 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Kozilek, the Great Distortion.dck @@ -0,0 +1,42 @@ +[metadata] +Name=Kozilek, the Great Distortion +[Commander] +1 Kozilek, the Great Distortion|OGW +[Main] +1 All Is Dust|MM2 +1 Bane of Bala Ged|BFZ +1 Conduit of Ruin|BFZ +1 Deathless Behemoth|BFZ +1 Deceiver of Form|OGW +1 Dread Statuary|DDM +1 Eldrazi Mimic|OGW +1 Eldrazi Temple|MM2 +1 Endless One|BFZ +1 Everflowing Chalice|MM2 +1 Expedition Map|MM2 +1 Eye of Ugin|MM2 +1 Hedron Archive|BFZ +1 It That Betrays|ROE +1 Kozilek's Channeler|BFZ +1 Kozilek's Pathfinder|OGW +1 Matter Reshaper|OGW +1 Quicksand|CNS +1 Ruin Processor|BFZ +1 Ruins of Oran-Rief|OGW +1 Sanctum of Ugin|BFZ +1 Scour from Existence|BFZ +1 Sea Gate Wreckage|OGW +1 Seer's Lantern|OGW +1 Shrine of the Forsaken Gods|BFZ +1 Skittering Invasion|ROE +1 Spatial Contortion|OGW +1 Spawning Bed|BFZ +1 Tectonic Edge|C14 +1 Thought-Knot Seer|OGW +1 Titan's Presence|BFZ +1 Ulamog's Despoiler|BFZ +1 Warden of Geometries|OGW +1 Warping Wail|OGW +6 Wastes|OGW|1 +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Scions.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Scions.dck new file mode 100644 index 00000000000..d296fd98f03 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Scions.dck @@ -0,0 +1,43 @@ +[metadata] +Name=Scions +[Main] +1 Abstruse Interference|OGW +1 Adverse Conditions|BFZ +1 Birthing Hulk|OGW +1 Blight Herder|BFZ +1 Blisterpod|BFZ +1 Brood Butcher|BFZ +1 Brood Monitor|BFZ +1 Call the Scions|BFZ +1 Carrier Thrall|BFZ +1 Catacomb Sifter|BFZ +1 Corrupted Crossroads|OGW +1 Crumbling Vestige|OGW +1 Deathless Behemoth|BFZ +1 Drowner of Hope|BFZ +1 Eldrazi Skyspawner|BFZ +1 Eyeless Watcher|BFZ +2 Forest|BFZ|3 +2 Forest|BFZ|6 +1 Forest|BFZ|10 +1 From Beyond|BFZ +1 Grave Birthing|BFZ +1 Holdout Settlement|OGW +1 Incubator Drone|BFZ +1 Island|BFZ|6 +1 Island|BFZ|7 +1 Khalni Gem|ZEN +1 Kor Castigator|BFZ +1 Lifespring Druid|BFZ +1 Plains|BFZ|8 +1 Scion Summoner|OGW +1 Sifter of Skulls|OGW +1 Spawning Bed|BFZ +1 Swamp|BFZ|7 +1 Swamp|BFZ|10 +1 Unknown Shores|OGW +1 Vile Redeemer|OGW +1 Void Attendant|BFZ +1 Warping Wail|OGW +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Spawn.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Spawn.dck new file mode 100644 index 00000000000..90f50c23fb6 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Spawn.dck @@ -0,0 +1,42 @@ +[metadata] +Name=Spawn +[Main] +1 Awakening Zone|PC2 +1 Beastcaller Savant|BFZ +1 Bone Splinters|BFZ +1 Brood Birthing|ROE +1 Broodwarden|ROE +1 Corpsehatch|ROE +1 Crumbling Vestige|OGW +1 Dread Drone|MM2 +1 Emrakul's Hatcher|ROE +1 Essence Feed|ROE +1 Forest|PC2|1 +2 Forest|PC2|3 +2 Forest|PC2|5 +1 Forest|PC2|6 +1 Growth Spasm|ROE +1 Hand of Emrakul|ROE +1 Hideous End|DDE +1 Holdout Settlement|OGW +1 Khalni Gem|ZEN +1 Kozilek's Predator|MM2 +1 Lifespring Druid|BFZ +1 Lotus Cobra|ZEN +1 Mountain|PC2|2 +1 Mountain|PC2|3 +1 Naturalize|DTK +1 Nest Invader|MM2 +1 Pawn of Ulamog|ROE +1 Prophetic Prism|GTC +1 Rapacious One|COM +1 Reclaiming Vines|BFZ +1 Skittering Invasion|ROE +1 Spawning Breath|ROE +1 Spawnsire of Ulamog|ROE +1 Swamp|PC2|1 +1 Swamp|PC2|2 +2 Swamp|PC2|4 +1 Unknown Shores|OGW +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Ulamog, the Ceaseless Hunger.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Ulamog, the Ceaseless Hunger.dck new file mode 100644 index 00000000000..6a96d6bea59 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Ulamog, the Ceaseless Hunger.dck @@ -0,0 +1,42 @@ +[metadata] +Name=Ulamog, the Ceaseless Hunger +[Commander] +1 Ulamog, the Ceaseless Hunger|BFZ +[Main] +1 All Is Dust|MM2 +1 Artisan of Kozilek|MM2 +1 Bane of Bala Ged|BFZ +1 Breaker of Armies|BFZ +1 Conduit of Ruin|BFZ +1 Deceiver of Form|OGW +1 Desolation Twin|BFZ +1 Dread Statuary|DDM +1 Eldrazi Devastator|BFZ +1 Eldrazi Temple|MM2 +1 Endless One|BFZ +1 Eye of Ugin|MM2 +1 Hand of Emrakul|ROE +1 Kozilek's Channeler|BFZ +1 Kozilek's Pathfinder|OGW +1 Pathrazer of Ulamog|ROE +1 Quicksand|CNS +1 Ruins of Oran-Rief|OGW +1 Sanctum of Ugin|BFZ +1 Scour from Existence|BFZ +1 Sea Gate Wreckage|OGW +1 Shrine of the Forsaken Gods|BFZ +1 Skittering Invasion|ROE +1 Spatial Contortion|OGW +1 Spawning Bed|BFZ +1 Spawnsire of Ulamog|ROE +1 Tectonic Edge|C14 +1 Thought-Knot Seer|OGW +1 Titan's Presence|BFZ +1 Ulamog's Crusher|MM2 +1 Ulamog's Despoiler|BFZ +1 Void Winnower|BFZ +1 Warden of Geometries|OGW +1 Warping Wail|OGW +6 Wastes|OGW|1 +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Ulamog, the Infinite Gyre.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Ulamog, the Infinite Gyre.dck new file mode 100644 index 00000000000..2585b443c1b --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/Ulamog, the Infinite Gyre.dck @@ -0,0 +1,42 @@ +[metadata] +Name=Ulamog, the Infinite Gyre +[Commander] +1 Ulamog, the Infinite Gyre|MM2 +[Main] +1 All Is Dust|MM2 +1 Bane of Bala Ged|BFZ +1 Breaker of Armies|BFZ +1 Conduit of Ruin|BFZ +1 Deathless Behemoth|BFZ +1 Dread Statuary|DDM +1 Eldrazi Devastator|BFZ +1 Eldrazi Temple|MM2 +1 Endbringer|OGW +1 Endless One|BFZ +1 Everflowing Chalice|MM2 +1 Eye of Ugin|MM2 +1 Hedron Crawler|OGW +1 Kozilek's Channeler|BFZ +1 Matter Reshaper|OGW +1 Pathrazer of Ulamog|ROE +1 Quicksand|CNS +1 Ruin Processor|BFZ +1 Ruins of Oran-Rief|OGW +1 Sanctum of Ugin|BFZ +1 Scour from Existence|BFZ +1 Sea Gate Wreckage|OGW +1 Shrine of the Forsaken Gods|BFZ +1 Skittering Invasion|ROE +1 Spatial Contortion|OGW +1 Spawning Bed|BFZ +1 Spawnsire of Ulamog|ROE +1 Tectonic Edge|C14 +1 Thought-Knot Seer|OGW +1 Titan's Presence|BFZ +1 Ulamog's Crusher|MM2 +1 Ulamog's Despoiler|BFZ +1 Warden of Geometries|OGW +1 Warping Wail|OGW +6 Wastes|OGW|1 +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/_events.txt b/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/_events.txt new file mode 100644 index 00000000000..484d31a43f3 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Blind Eternities/_events.txt @@ -0,0 +1,9 @@ +Name:Spawn|Deck:Spawn.dck|Variant:None|Avatar:Broodwarden|Desc: +Name:Ingest|Deck:Ingest.dck|Variant:None|Avatar:Fathom Feeder|Desc: +Name:Scions|Deck:Scions.dck|Variant:None|Avatar:Drowner of Hope|Desc: +Name:Devoid|Deck:Devoid.dck|Variant:None|Avatar:Barrage Tyrant|Desc: +Name:Annihilator|Deck:Annihilator.dck|Variant:None|Avatar:It That Betrays|Desc: +Name:Kozilek, Butcher of Truth|Deck:Kozilek, Butcher of Truth.dck|Variant:Commander|Avatar:Kozilek, Butcher of Truth|Desc: +Name:Kozilek, the Great Distortion|Deck:Kozilek, the Great Distortion.dck|Variant:Commander|Avatar:Kozilek, the Great Distortion|Desc: +Name:Ulamog, the Ceaseless Hunger|Deck:Ulamog, the Ceaseless Hunger.dck|Variant:Commander|Avatar:Ulamog, the Ceaseless Hunger|Desc: +Name:Emrakul, the Aeons Torn|Deck:Emrakul, the Aeons Torn.dck|Variant:Commander|Avatar:Emrakul, the Aeons Torn|Desc: \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/General Tazri.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/General Tazri.dck new file mode 100644 index 00000000000..314ac00b1ca --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/General Tazri.dck @@ -0,0 +1,44 @@ +[metadata] +Name=General Tazri +[Commander] +1 General Tazri|OGW +[Main] +1 Agadeem Occultist|WWK +1 Allied Reinforcements|OGW +1 Ally Encampment|BFZ +1 Angelic Captain|BFZ +1 Beastcaller Savant|BFZ +1 Captain's Claws|OGW +2 Forest|ZEN|5 +1 Forest|ZEN|8 +1 Gideon, Ally of Zendikar|BFZ +1 Harabaz Druid|WWK +1 Hero of Goma Fada|BFZ +1 Holdout Settlement|OGW +2 Island|ZEN|3 +1 Join the Ranks|WWK +1 Jwari Shapeshifter|WWK +1 Kabira Evangel|ZEN +1 Kazuul Warlord|ZEN +1 Khalni Gem|ZEN +1 Lantern Scout|BFZ +1 Lifespring Druid|BFZ +1 March from the Tomb|BFZ +1 Mountain|ZEN|2 +1 Munda's Vanguard|OGW +1 Plains|ZEN|1 +2 Plains|ZEN|3 +1 Plains|ZEN|4 +1 Plains|ZEN|6 +1 Plains|ZEN|7 +1 Prophetic Prism|GTC +1 Retreat to Emeria|BFZ +1 Sea Gate Loremaster|ZEN +1 Swamp|ZEN|3 +1 Turntimber Ranger|ZEN +1 Unified Front|BFZ +1 Unknown Shores|OGW +1 Veteran Warleader|BFZ +1 Zendikar Resurgent|OGW +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/Gideon Jura.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/Gideon Jura.dck new file mode 100644 index 00000000000..1a2c856c537 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/Gideon Jura.dck @@ -0,0 +1,41 @@ +[metadata] +Name=Gideon Jura +[Main] +1 Basilisk Collar|WWK +1 Captain's Claws|OGW +1 Celestial Mantle|ZEN +1 Chitinous Cloak|OGW +1 Dawnglare Invoker|C15 +1 Emeria, the Sky Ruin|C14 +1 Encircling Fissure|BFZ +1 Gideon Jura|M12 +1 Gideon's Reproach|BFZ +1 Grappling Hook|ZEN +1 Harmless Assault|ROE +1 Immolating Glare|OGW +1 Kor Cartographer|DDI +1 Kor Entanglers|BFZ +1 Kor Hookmaster|DDN +1 Kor Line-Slinger|ROE +1 Kor Scythemaster|OGW +1 Lightmine Field|ROE +1 Luminous Wake|ROE +1 Plains|BFZ|1 +1 Plains|BFZ|2 +2 Plains|BFZ|3 +1 Plains|BFZ|4 +3 Plains|BFZ|5 +1 Plains|BFZ|6 +2 Plains|BFZ|7 +2 Plains|BFZ|8 +1 Plains|BFZ|9 +1 Plains|BFZ|10 +1 Puncturing Light|ROE +1 Repel the Darkness|ROE +1 Roil's Retribution|BFZ +1 Searing Light|OGW +1 Sheer Drop|BFZ +1 Spawnbinder Mage|OGW +1 Sword of the Animist|ORI +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/Gideon, Ally of Zendikar.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/Gideon, Ally of Zendikar.dck new file mode 100644 index 00000000000..ada59950f37 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/Gideon, Ally of Zendikar.dck @@ -0,0 +1,38 @@ +[metadata] +Name=Gideon, Ally of Zendikar +[Main] +1 Affa Protector|OGW +1 Allied Reinforcements|OGW +1 Ally Encampment|BFZ +1 Angel of Renewal|BFZ +1 Captain's Claws|OGW +1 Cliffside Lookout|BFZ +1 Expedition Envoy|BFZ +1 Gideon, Ally of Zendikar|BFZ +1 Hada Freeblade|WWK +1 Hero of Goma Fada|BFZ +1 Join the Ranks|WWK +1 Kabira Evangel|ZEN +1 Kazandu Blademaster|ZEN +1 Kor Bladewhirl|BFZ +1 Kor Castigator|BFZ +1 Kor Entanglers|BFZ +1 Kor Scythemaster|OGW +1 Kor Sky Climber|OGW +1 Lantern Scout|BFZ +1 Makindi Aeronaut|OGW +1 Makindi Patrol|BFZ +1 Makindi Shieldmate|ZEN +1 Munda's Vanguard|OGW +1 Oath of Gideon|OGW +1 Ondu Cleric|ZEN +1 Ondu War Cleric|OGW +1 Plains|BFZ|2 +3 Plains|BFZ|6 +2 Plains|BFZ|7 +2 Plains|BFZ|8 +3 Plains|BFZ|9 +3 Plains|BFZ|10 +1 Retreat to Emeria|BFZ +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/Graypelt Support.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/Graypelt Support.dck new file mode 100644 index 00000000000..86f9bc53855 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/Graypelt Support.dck @@ -0,0 +1,41 @@ +[metadata] +Name=Graypelt Support +[Main] +1 Avenger of Zendikar|C13 +1 Baloth Pup|OGW +1 Blade of the Bloodchief|ZEN +1 Endless One|BFZ +1 Expedition Raptor|OGW +1 Forest|ZEN|2 +2 Forest|ZEN|3 +1 Forest|ZEN|4 +1 Forest|ZEN|5 +2 Forest|ZEN|6 +1 Forest|ZEN|7 +2 Forest|ZEN|8 +1 Gladehart Cavalry|OGW +1 Harvester Troll|OGW +1 Joraga Auxiliary|OGW +1 Kabira Vindicator|DDG +1 Lead by Example|OGW +1 Murasa Ranger|BFZ +1 Nissa's Judgment|OGW +1 Nissa, Voice of Zendikar|OGW +1 Ondu Rising|BFZ +1 Oran-Rief, the Vastwood|C15 +1 Plains|ZEN|1 +2 Plains|ZEN|2 +1 Plains|ZEN|6 +1 Quest for the Gemblades|ZEN +1 Relief Captain|OGW +1 Retreat to Kazandu|BFZ +1 Rot Shambler|BFZ +1 Saddleback Lagac|OGW +1 Scute Mob|MM2 +1 Shoulder to Shoulder|OGW +1 Strength of the Tajuru|WWK +1 Talus Paladin|WWK +1 Turntimber Ranger|ZEN +1 Undergrowth Champion|BFZ +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/Munda, Ambush Leader.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/Munda, Ambush Leader.dck new file mode 100644 index 00000000000..303311d5fb8 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/Munda, Ambush Leader.dck @@ -0,0 +1,45 @@ +[metadata] +Name=Munda, Ambush Leader +[Commander] +1 Munda, Ambush Leader|BFZ +[Main] +1 Affa Protector|OGW +1 Akoum Battlesinger|WWK +1 Allied Reinforcements|OGW +1 Ally Encampment|BFZ +1 Angel of Renewal|BFZ +1 Angelic Captain|BFZ +1 Arid Mesa|EXP +1 Captain's Claws|OGW +1 Chasm Guide|BFZ +1 Evolving Wilds|C15 +1 Expedition Envoy|BFZ +1 Gideon, Ally of Zendikar|BFZ +1 Goblin Freerunner|OGW +1 Hada Freeblade|WWK +1 Hero of Goma Fada|BFZ +1 Highland Berserker|ZEN +1 Holdout Settlement|OGW +1 Join the Ranks|WWK +1 Kabira Evangel|ZEN +1 Kazandu Blademaster|ZEN +1 Kazuul Warlord|ZEN +1 Kor Bladewhirl|BFZ +1 Kor Entanglers|BFZ +1 Kor Scythemaster|OGW +1 Mountain|BFZ|3 +1 Mountain|BFZ|4 +2 Mountain|BFZ|8 +1 Mountain|BFZ|9 +1 Munda's Vanguard|OGW +1 Needle Spires|OGW +1 Oath of Gideon|OGW +1 Ondu Cleric|ZEN +2 Plains|BFZ|1 +1 Plains|BFZ|5 +1 Plains|BFZ|9 +1 Plains|BFZ|10 +1 Talus Paladin|WWK +1 Unknown Shores|OGW +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/Nissa Revane.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/Nissa Revane.dck new file mode 100644 index 00000000000..4a5948f679e --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/Nissa Revane.dck @@ -0,0 +1,33 @@ +[metadata] +Name=Nissa Revane +[Main] +1 Arbor Elf|M13 +1 Beastcaller Savant|BFZ +1 Elvish Archdruid|C14 +1 Elvish Mystic|C14 +7 Forest|ROE|1 +2 Forest|ROE|2 +3 Forest|ROE|3 +3 Forest|ROE|4 +1 Frontier Guide|ZEN +1 Gladehart Cavalry|OGW +1 Greenweaver Druid|ZEN +1 Joraga Treespeaker|ROE +1 Joraga Warcaller|C14 +1 Khalni Hydra|ROE +1 Mul Daya Channelers|ROE +1 Nissa Revane|ZEN +1 Nissa's Chosen|ZEN +1 Nissa's Expedition|M15 +1 Nissa's Judgment|OGW +1 Nissa's Pilgrimage|ORI +1 Nissa's Renewal|BFZ +1 Nissa's Revelation|ORI +1 Oath of Nissa|OGW +1 Omnath, Locus of Mana|FVL +1 Oracle of Mul Daya|ZEN +1 Rampaging Baloths|C14 +1 Stoneforge Masterwork|OGW +1 Tajuru Pathwarden|OGW +1 Tajuru Preserver|ROE +1 Wildheart Invoker|ROE \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/Nissa, Vastwood Seer.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/Nissa, Vastwood Seer.dck new file mode 100644 index 00000000000..095df5c06c3 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/Nissa, Vastwood Seer.dck @@ -0,0 +1,37 @@ +[metadata] +Name=Nissa, Vastwood Seer +[Commander] +1 Nissa, Vastwood Seer|ORI +[Main] +1 Arbor Elf|M13 +1 Avenger of Zendikar|C13 +1 Blighted Woodland|BFZ +1 Boundless Realms|M13 +1 Embodiment of Insight|OGW +2 Forest|ORI|1 +1 Forest|ORI|2 +4 Forest|ORI|3 +7 Forest|ORI|4 +1 Frontier Guide|ZEN +1 Greenwarden of Murasa|BFZ +1 Harrow|TPR +1 Khalni Heart Expedition|ZEN +1 Khalni Hydra|ROE +1 Loam Larva|OGW +1 Natural Connection|BFZ +1 Nissa's Expedition|M15 +1 Nissa's Judgment|OGW +1 Nissa's Pilgrimage|ORI +1 Nissa's Renewal|BFZ +1 Nissa's Revelation|ORI +1 Oath of Nissa|OGW +1 Rampaging Baloths|C14 +1 Realms Uncharted|ROE +1 Retreat to Kazandu|BFZ +1 Scute Mob|MM2 +1 Soul of Zendikar|M15 +1 Sylvan Advocate|OGW +1 Sylvan Scrying|BFZ +1 Undergrowth Champion|BFZ +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/Nissa, Worldwaker.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/Nissa, Worldwaker.dck new file mode 100644 index 00000000000..38d388a72d4 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/Nissa, Worldwaker.dck @@ -0,0 +1,39 @@ +[metadata] +Name=Nissa, Worldwaker +[Main] +1 Ancient Stirrings|ROE +1 Bear Umbra|ROE +1 Boundless Realms|M13 +1 Dragonmaster Outcast|BFZ +1 Expedition Map|MM2 +3 Forest|ZEN|1 +1 Forest|ZEN|2 +2 Forest|ZEN|3 +2 Forest|ZEN|4 +2 Forest|ZEN|5 +1 Forest|ZEN|6 +3 Forest|ZEN|7 +1 Forest|ZEN|8 +1 Frontier Guide|ZEN +1 Growth Spasm|ROE +1 Harrow|TPR +1 Khalni Gem|ZEN +1 Khalni Heart Expedition|ZEN +1 Loam Larva|OGW +1 Natural Connection|BFZ +1 Nissa's Expedition|M15 +1 Nissa's Pilgrimage|ORI +1 Nissa's Renewal|BFZ +1 Nissa's Revelation|ORI +1 Nissa, Worldwaker|M15 +1 Oath of Nissa|OGW +1 Ondu Giant|PC2 +1 Pilgrim's Eye|BFZ +1 Scute Mob|MM2 +1 Sword of the Animist|ORI +1 Sylvan Advocate|OGW +1 Sylvan Scrying|BFZ +1 Terra Eternal|WWK +1 Zendikar Incarnate|ORI +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/Omnath, Locus of Mana.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/Omnath, Locus of Mana.dck new file mode 100644 index 00000000000..ec7025e9a54 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/Omnath, Locus of Mana.dck @@ -0,0 +1,37 @@ +[metadata] +Name=Omnath, Locus of Mana +[Commander] +1 Omnath, Locus of Mana|FVL +[Main] +1 Arbor Elf|M13 +1 Avenger of Zendikar|C13 +1 Awakening Zone|PC2 +1 Bear Umbra|ROE +1 Beastcaller Savant|BFZ +1 Beastmaster Ascension|C15 +1 Bestial Menace|MM2 +1 Blighted Woodland|BFZ +1 Bonds of Mortality|OGW +1 Canopy Cover|WWK +1 Daggerback Basilisk|ROE +1 Earthen Arms|BFZ +1 Elemental Bond|ORI +1 Elemental Uprising|OGW +1 Elvish Archdruid|C14 +1 Elvish Mystic|C14 +1 Embodiment of Insight|OGW +1 Explore|DDO +1 Feral Contest|WWK +3 Forest|ORI|1 +6 Forest|ORI|2 +2 Forest|ORI|3 +3 Forest|ORI|4 +1 Frontier Guide|ZEN +1 Gelatinous Genesis|ROE +1 Gigantomancer|ROE +1 Gladehart Cavalry|OGW +1 Gnarlid Pack|MM2 +1 Grappler Spider|WWK +1 Gravity Well|ROE +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/_events.txt b/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/_events.txt new file mode 100644 index 00000000000..eeeb329c8e9 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Graypelt/_events.txt @@ -0,0 +1,9 @@ +Name:Graypelt Support|Deck:Graypelt Support.dck|Variant:None|Avatar:Undergrowth Champion|Desc: +Name:General Tazri|Deck:General Tazri.dck|Variant:Commander|Avatar:General Tazri|Desc: +Name:Munda, Ambush Leader|Deck:Munda, Ambush Leader.dck|Variant:Commander|Avatar:Munda, Ambush Leader|Desc: +Name:Omnath, Locus of Mana|Deck:Omnath, Locus of Mana.dck|Variant:Commander|Avatar:Omnath, Locus of Mana|Desc: +Name:Nissa, Vastwood Seer|Deck:Nissa, Vastwood Seer.dck|Variant:Commander|Avatar:Nissa, Vastwood Seer|Desc: +Name:Nissa Revane|Deck:Nissa Revane.dck|Variant:Planeswalker|Avatar:Nissa Revane|Desc: +Name:Nissa, Worldwaker|Deck:Nissa, Worldwaker.dck|Variant:Planeswalker|Avatar:Nissa, Worldwaker|Desc: +Name:Gideon Jura|Deck:Gideon Jura.dck|Variant:Planeswalker|Avatar:Gideon Jura|Desc: +Name:Gideon, Ally of Zendikar|Deck:Gideon, Ally of Zendikar.dck|Variant:Planeswalker|Avatar:Gideon, Ally of Zendikar|Desc: \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Cohort.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Cohort.dck new file mode 100644 index 00000000000..97d474cbb70 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Cohort.dck @@ -0,0 +1,41 @@ +[metadata] +Name=Cohort +[Main] +1 Agadeem Occultist|WWK +1 Ally Encampment|BFZ +1 Bala Ged Thief|ZEN +1 Bloodbond Vampire|BFZ +1 Bojuka Brigand|WWK +1 Captain's Claws|OGW +1 Coralhelm Guide|BFZ +1 Drana's Chosen|OGW +1 Drana, Liberator of Malakir|BFZ +1 Hagra Diabolist|ZEN +1 Hagra Sharpshooter|BFZ +1 Halimar Excavator|WWK +1 Halimar Tidecaller|BFZ +1 Island|BFZ|2 +1 Island|BFZ|3 +1 Island|BFZ|4 +1 Island|BFZ|9 +1 Island|BFZ|10 +1 Jwari Shapeshifter|WWK +1 Kalastria Healer|BFZ +1 Kalastria Nightwatch|BFZ +1 Malakir Soothsayer|OGW +1 Nimana Sell-Sword|ZEN +1 Nirkana Assassin|BFZ +1 Sea Gate Loremaster|ZEN +1 Seascape Aerialist|ZEN +1 Stonework Puma|ZEN +1 Swamp|BFZ|3 +2 Swamp|BFZ|6 +2 Swamp|BFZ|7 +3 Swamp|BFZ|8 +1 Swamp|BFZ|10 +1 Umara Entangler|OGW +1 Umara Raptor|ZEN +1 Vampire Envoy|OGW +1 Zulaport Cutthroat|BFZ +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Jace, the Mind Sculptor.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Jace, the Mind Sculptor.dck new file mode 100644 index 00000000000..3f4f49ec878 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Jace, the Mind Sculptor.dck @@ -0,0 +1,32 @@ +[metadata] +Name=Jace, the Mind Sculptor +[Main] +1 Adverse Conditions|BFZ +1 Archive Trap|ZEN +1 Archmage Ascension|ZEN +1 Cosi's Trickster|ZEN +1 Domestication|M14 +1 Echo Mage|C13 +1 Enclave Cryptologist|ROE +1 Gift of Tusks|OGW +1 Gomazoa|COM +1 Grip of the Roil|OGW +1 Hedron Crab|ZEN +1 Horribly Awry|BFZ +7 Island|COM|1 +1 Island|COM|2 +4 Island|COM|3 +4 Island|COM|4 +1 Jace, the Mind Sculptor|WWK +1 Lighthouse Chronologist|ROE +1 Lullmage Mentor|ZEN +1 Mind Control|M12 +1 Oath of Jace|OGW +1 Overwhelming Denial|OGW +1 Retreat to Coralhelm|BFZ +1 Roil Elemental|ZEN +1 Scatter to the Winds|BFZ +1 Sphinx of Magosi|C14 +1 Sphinx of the Final Word|OGW +1 Summoner's Bane|DDM +1 Surrakar Spellblade|MM2 \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Kiora, Master of the Depths.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Kiora, Master of the Depths.dck new file mode 100644 index 00000000000..369eb2404a3 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Kiora, Master of the Depths.dck @@ -0,0 +1,38 @@ +[metadata] +Name=Kiora, Master of the Depths +[Main] +1 Beastmaster Ascension|C15 +1 Bring to Light|BFZ +1 Coralhelm Commander|ROE +1 Coralhelm Guide|BFZ +1 Cosi's Trickster|ZEN +1 Crush of Tentacles|OGW +1 Enclave Cryptologist|ROE +1 Forest|ZEN|2 +1 Forest|ZEN|7 +1 Forest|ZEN|8 +5 Island|ZEN|1 +1 Island|ZEN|2 +1 Island|ZEN|4 +2 Island|ZEN|5 +2 Island|ZEN|7 +1 Kiora, Master of the Depths|BFZ +1 Kraken Hatchling|M13 +1 Lorthos, the Tidemaker|C14 +1 Lullmage Mentor|ZEN +1 Lumbering Falls|BFZ +1 Merfolk Seastalkers|ZEN +1 Merfolk Skyscout|ROE +1 Merfolk Wayfinder|DDM +1 Misty Rainforest|EXP +1 Overwhelming Denial|OGW +1 Quest for Ula's Temple|WWK +1 Scatter to the Winds|BFZ +1 Scute Mob|MM2 +1 Sea Gate Loremaster|ZEN +1 Shoal Serpent|ZEN +1 Skywatcher Adept|ROE +1 Sphinx of Magosi|C14 +1 Sphinx of the Final Word|OGW +1 Strength of the Tajuru|WWK +1 Windrider Patrol|BFZ \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Level Up.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Level Up.dck new file mode 100644 index 00000000000..3a6c3cdf818 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Level Up.dck @@ -0,0 +1,42 @@ +[metadata] +Name=Level Up +[Main] +1 Archmage Ascension|ZEN +1 Consume the Meek|ROE +1 Consuming Vapors|ROE +1 Coralhelm Commander|ROE +1 Creeping Tar Pit|WWK +1 Echo Mage|C13 +1 Enclave Cryptologist|ROE +1 Grasp of Darkness|OGW +1 Guul Draz Assassin|ROE +1 Hada Spy Patrol|C13 +1 Halimar Wavewatch|ROE +1 Holdout Settlement|OGW +2 Island|C13|1 +2 Island|C13|2 +1 Island|C13|3 +1 Island|C13|4 +1 Jace, the Mind Sculptor|V13 +1 Jwar Isle Refuge|C13 +1 Lighthouse Chronologist|ROE +1 Nirkana Cutthroat|ROE +1 Null Champion|ROE +1 Overwhelming Denial|OGW +1 Part the Waterveil|BFZ +1 Rite of Replication|C15 +1 Ruinous Path|BFZ +1 Scatter to the Winds|BFZ +1 Skywatcher Adept|ROE +1 Sphinx of Magosi|C14 +1 Sphinx of the Final Word|OGW +1 Submerged Boneyard|OGW +1 Sunken Hollow|EXP +2 Swamp|C13|3 +1 Swamp|C13|4 +1 Training Grounds|ROE +1 Unknown Shores|OGW +1 Venerated Teacher|ROE +1 Zulaport Enforcer|ROE +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Lorthos, the Tidemaker.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Lorthos, the Tidemaker.dck new file mode 100644 index 00000000000..6777bd160fe --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Lorthos, the Tidemaker.dck @@ -0,0 +1,41 @@ +[metadata] +Name=Lorthos, the Tidemaker +[Commander] +1 Lorthos, the Tidemaker|C14 +[Main] +1 Blighted Cataract|BFZ +1 Crush of Tentacles|OGW +1 Domestication|M14 +1 Drake Umbra|ROE +1 Gravitational Shift|ROE +1 Guardian of Tazeem|BFZ +1 Halimar Depths|DDM +2 Island|ZEN|2 +3 Island|ZEN|3 +2 Island|ZEN|4 +3 Island|ZEN|6 +1 Island|ZEN|8 +1 Jwar Isle Avenger|OGW +1 Lay Bare|ROE +1 Merfolk Skyscout|ROE +1 Mind Control|M12 +1 Mysteries of the Deep|WWK +1 Overwhelming Denial|OGW +1 Part the Waterveil|BFZ +1 Recurring Insight|ROE +1 Rite of Replication|C15 +1 Roil Elemental|ZEN +1 Sky Ruin Drake|ZEN +1 Skyline Cascade|BFZ +1 Soaring Seacliff|DDI +1 Sphinx of Jwar Isle|C14 +1 Sphinx of Lost Truths|ZEN +1 Sphinx of Magosi|C14 +1 Sphinx of the Final Word|OGW +1 Summoner's Bane|DDM +1 Tectonic Edge|C14 +1 Ugin's Insight|BFZ +1 Vapor Snare|WWK +1 Windrider Patrol|BFZ +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Ob Nixilis Reignited.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Ob Nixilis Reignited.dck new file mode 100644 index 00000000000..2be0bca14b4 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Ob Nixilis Reignited.dck @@ -0,0 +1,33 @@ +[metadata] +Name=Ob Nixilis Reignited +[Main] +1 Abyssal Persecutor|C14 +1 Baneful Omen|ROE +1 Basilisk Collar|WWK +1 Blade of the Bloodchief|ZEN +1 Captain's Claws|OGW +1 Carrier Thrall|BFZ +1 Corpsehatch|ROE +1 Demon's Grasp|BFZ +1 Demonic Appetite|ROE +1 Desolation Twin|BFZ +1 Drana's Chosen|OGW +1 Dread Drone|MM2 +1 Essence Feed|ROE +1 Grave Birthing|BFZ +1 Halo Hunter|ZEN +1 Hellcarver Demon|ROE +1 Kalitas, Bloodchief of Ghet|ZEN +1 Kalitas, Traitor of Ghet|OGW +1 Mirrorpool|OGW +1 Nirkana Revenant|ROE +1 Null Caller|OGW +1 Ob Nixilis Reignited|BFZ +1 Pawn of Ulamog|ROE +1 Pestilence Demon|C14 +1 Sifter of Skulls|OGW +1 Spawning Bed|BFZ +2 Swamp|ROE|1 +3 Swamp|ROE|2 +6 Swamp|ROE|3 +4 Swamp|ROE|4 \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Sorin Markov.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Sorin Markov.dck new file mode 100644 index 00000000000..a0eddd1f8da --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Sorin Markov.dck @@ -0,0 +1,33 @@ +[metadata] +Name=Sorin Markov +[Main] +1 Baneful Omen|ROE +1 Blood Tribute|ZEN +1 Bloodrite Invoker|ROE +1 Contaminated Ground|GTC +1 Curse of Wizardry|ROE +1 Defiant Bloodlord|BFZ +1 Dread Defiler|OGW +1 Essence Depleter|OGW +1 Essence Feed|ROE +1 Hideous End|DDE +1 Kalastria Healer|BFZ +1 Kalastria Highborn|WWK +1 Malakir Bloodwitch|ZEN +1 Needlebite Trap|ZEN +1 Ob Nixilis, Unshackled|M15 +1 Piranha Marsh|ZEN +1 Pulse Tracker|DDM +1 Retreat to Hagra|BFZ +1 Silent Skimmer|BFZ +1 Sorin Markov|M12 +1 Suffer the Past|ROE +7 Swamp|M12|1 +4 Swamp|M12|2 +5 Swamp|M12|3 +1 Visions of Brutality|OGW +1 Witness the End|OGW +1 Zulaport Chainmage|OGW +1 Zulaport Cutthroat|BFZ +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Surge.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Surge.dck new file mode 100644 index 00000000000..9a2167dc679 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Surge.dck @@ -0,0 +1,40 @@ +[metadata] +Name=Surge +[Main] +1 Archmage Ascension|ZEN +1 Baneful Omen|ROE +1 Basilisk Collar|WWK +1 Blade of the Bloodchief|ZEN +1 Cast Through Time|ROE +1 Comparative Analysis|OGW +1 Consume the Meek|ROE +1 Consuming Vapors|ROE +1 Containment Membrane|OGW +1 Creeping Tar Pit|WWK +1 Crush of Tentacles|OGW +1 Domestication|M14 +1 Dormant Gomazoa|ROE +1 Endless One|BFZ +1 Exert Influence|BFZ +1 Grip of the Roil|OGW +1 Hellcarver Demon|ROE +1 Island|BFZ|2 +1 Island|BFZ|3 +1 Island|BFZ|4 +2 Island|BFZ|6 +1 Island|BFZ|7 +2 Island|BFZ|8 +1 Island|BFZ|9 +1 Jace, the Mind Sculptor|V13 +1 Jwar Isle Avenger|OGW +1 Lighthouse Chronologist|ROE +1 Lorthos, the Tidemaker|C14 +1 Mirrorpool|OGW +1 Overwhelming Denial|OGW +1 Part the Waterveil|BFZ +1 Sire of Stagnation|BFZ +1 Sphinx of the Final Word|OGW +1 Sunken Hollow|EXP +1 Swamp|BFZ|7 +2 Swamp|BFZ|9 +1 Wrexial, the Risen Deep|COM \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Traps.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Traps.dck new file mode 100644 index 00000000000..e5d4b9bea9d --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Traps.dck @@ -0,0 +1,37 @@ +[metadata] +Name=It's a Trap +[Main] +1 Archive Trap|ZEN +1 Cancel|KTK +1 Coastal Discovery|BFZ +1 Deprive|ROE +1 Dispel|BFZ +1 Horribly Awry|BFZ +4 Island|ROE|1 +1 Island|ROE|2 +3 Island|ROE|3 +3 Island|ROE|4 +1 Lay Bare|ROE +1 Lethargy Trap|ZEN +1 Mindbreak Trap|ZEN +1 Mire's Malice|BFZ +1 Needlebite Trap|ZEN +1 Negate|OGW +1 Nemesis Trap|COM +1 Overwhelming Denial|OGW +1 Permafrost Trap|WWK +1 Ravenous Trap|ZEN +1 Rising Miasma|BFZ +1 Ruinous Path|BFZ +1 Rush of Ice|BFZ +1 Scatter to the Winds|BFZ +1 Spell Contortion|WWK +1 Spell Pierce|ZEN +1 Swamp|ROE|1 +2 Swamp|ROE|2 +1 Swamp|ROE|4 +1 Trapfinder's Trick|ZEN +1 Trapmaker's Snare|ZEN +1 Whiplash Trap|DDN +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Wrexial, the Risen Deep.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Wrexial, the Risen Deep.dck new file mode 100644 index 00000000000..b2fdb470fb3 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/Wrexial, the Risen Deep.dck @@ -0,0 +1,45 @@ +[metadata] +Name=Wrexial, the Risen Deep +[Commander] +1 Wrexial, the Risen Deep|COM +[Main] +1 Adverse Conditions|BFZ +1 Archive Trap|ZEN +1 Blighted Cataract|BFZ +1 Blighted Fen|BFZ +1 Coastal Discovery|BFZ +1 Consume the Meek|ROE +1 Consuming Vapors|ROE +1 Corpsehatch|ROE +1 Creeping Tar Pit|WWK +1 Defiant Bloodlord|BFZ +1 Evolving Wilds|C15 +1 Flaying Tendrils|OGW +1 Grip of Desolation|BFZ +1 Grip of the Roil|OGW +1 Halimar Depths|DDM +1 Island|BFZ|3 +1 Island|BFZ|7 +1 Island|BFZ|8 +1 Jwar Isle Refuge|C13 +1 Lighthouse Chronologist|ROE +1 Mindbreak Trap|ZEN +1 Nirkana Revenant|ROE +1 Overwhelming Denial|OGW +1 Rising Miasma|BFZ +1 Roil Elemental|ZEN +1 Ruinous Path|BFZ +1 Scatter to the Winds|BFZ +1 Sire of Stagnation|BFZ +1 Skyline Cascade|BFZ +1 Spell Contortion|WWK +1 Sphinx of Magosi|C14 +1 Sphinx of the Final Word|OGW +1 Submerged Boneyard|OGW +1 Summoner's Bane|DDM +1 Sunken Hollow|EXP +1 Swamp|BFZ|5 +1 Swamp|BFZ|8 +1 Thought Gorger|ROE +1 Unknown Shores|OGW +1 Void Shatter|OGW \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/_events.txt b/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/_events.txt new file mode 100644 index 00000000000..ed1ed1212ff --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Jwar Isle/_events.txt @@ -0,0 +1,9 @@ +Name:Cohort|Deck:Cohort.dck|Variant:None|Avatar:Drana's Chosen|Desc: +Name:Level Up|Deck:Level Up.dck|Variant:None|Avatar:Lighthouse Chronologist|Desc: +Name:Surge|Deck:Surge.dck|Variant:None|Avatar:Crush of Tentacles|Desc: +Name:It's a Trap|Deck:It's a Trap.dck|Variant:None|Avatar:Trapmaker's Snare|Desc: +Name:Lorthos, the Tidemaker|Deck:Lorthos, the Tidemaker.dck|Variant:Commander|Avatar:Lorthos, the Tidemaker|Desc: +Name:Wrexial, the Risen Deep|Deck:Wrexial, the Risen Deep.dck|Variant:Commander|Avatar:Wrexial, the Risen Deep|Desc: +Name:Ob Nixilis Reignited|Deck:Ob Nixilis Reignited.dck|Variant:Planeswalker|Avatar:Ob Nixilis Reignited|Desc: +Name:Kiora, Master of the Depths|Deck:Kiora, Master of the Depths.dck|Variant:Planeswalker|Avatar:Kiora, Master of the Depths|Desc: +Name:Jace, the Mind Sculptor|Deck:Jace, the Mind Sculptor.dck|Variant:Planeswalker|Avatar:Jace, the Mind Sculptor|Desc: \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Chandra Ablaze.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Chandra Ablaze.dck new file mode 100644 index 00000000000..5aaf5abf446 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Chandra Ablaze.dck @@ -0,0 +1,34 @@ +[metadata] +Name=Chandra Ablaze +[Main] +1 Boiling Earth|BFZ +1 Burst Lightning|MM2 +1 Chain Reaction|C15 +1 Chandra Ablaze|ZEN +1 Comet Storm|C15 +1 Devour in Flames|OGW +1 Dragonmaster Outcast|BFZ +1 Elemental Appeal|ZEN +1 Fall of the Titans|OGW +1 Flame Slash|DDK +1 Forked Bolt|ROE +1 Heat Ray|M15 +4 Mountain|ROE|1 +5 Mountain|ROE|2 +5 Mountain|ROE|3 +2 Mountain|ROE|4 +1 Oath of Chandra|OGW +1 Punishing Fire|ZEN +1 Reality Hemorrhage|OGW +1 Roiling Terrain|WWK +1 Rolling Thunder|BFZ +1 Searing Blaze|DDI +1 Seismic Shudder|ZEN +1 Spire Barrage|DDI +1 Staggershock|ROE +1 Stonefury|BFZ +1 Surreal Memoir|ROE +1 Touch of the Void|BFZ +1 Volcanic Upheaval|BFZ +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Chandra, Flamecaller.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Chandra, Flamecaller.dck new file mode 100644 index 00000000000..d93816a4956 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Chandra, Flamecaller.dck @@ -0,0 +1,39 @@ +[metadata] +Name=Chandra, Flamecaller +[Main] +1 Akoum Hellkite|BFZ +1 Akoum Stonewaker|BFZ +1 Boiling Earth|BFZ +1 Chain Reaction|C15 +1 Chandra, Flamecaller|OGW +1 Comet Storm|C15 +1 Cosi's Ravager|DDI +1 Devastating Summons|ROE +1 Electropotence|ZEN +1 Elemental Appeal|ZEN +1 Embodiment of Fury|OGW +1 Fall of the Titans|OGW +1 Geyser Glider|DDI +1 Hellfire Mongrel|DDH +1 Kozilek's Return|OGW +1 Magmaw|ROE +1 Molten Ravager|ZEN +1 Mountain|ZEN|1 +1 Mountain|ZEN|2 +3 Mountain|ZEN|3 +2 Mountain|ZEN|4 +4 Mountain|ZEN|5 +2 Mountain|ZEN|6 +1 Mountain|ZEN|7 +1 Mountain|ZEN|8 +1 Oath of Chandra|OGW +1 Obsidian Fireheart|ZEN +1 Rage Nimbus|ROE +1 Soulsurge Elemental|ROE +1 Valakut Fireboar|ROE +1 Valakut Predator|BFZ +1 Valakut, the Molten Pinnacle|ZEN +1 Vent Sentinel|CNS +1 Zektar Shrine Expedition|ZEN +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Defenders of Zendikar.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Defenders of Zendikar.dck new file mode 100644 index 00000000000..f1ae3183db5 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Defenders of Zendikar.dck @@ -0,0 +1,42 @@ +[metadata] +Name=Defenders of Zendikar +[Main] +1 Avenger of Zendikar|C13 +1 Battle Rampart|ROE +1 Beastcaller Savant|BFZ +1 Bestial Menace|MM2 +1 Cinder Glade|EXP +1 Crumbling Vestige|OGW +1 Devour in Flames|OGW +1 Dragonmaster Outcast|BFZ +1 Forest|BFZ|5 +1 Forest|BFZ|6 +1 Forest|BFZ|9 +1 Forest|BFZ|10 +1 Forest|ROE|3 +1 Gelatinous Genesis|ROE +1 Grotag Siege-Runner|ROE +1 Heat Ray|M15 +1 Holdout Settlement|OGW +1 Jaddi Offshoot|BFZ +1 Lifespring Druid|BFZ +1 Mark of Mutiny|M13 +1 Mountain|BFZ|2 +1 Mountain|BFZ|3 +1 Mountain|BFZ|5 +1 Mountain|ROE|2 +2 Mountain|ROE|3 +1 Nissa's Judgment|OGW +1 Ogre Sentry|ROE +1 Overgrown Battlement|ROE +1 Press into Service|OGW +1 Primal Bellow|ZEN +1 Rage Nimbus|ROE +1 Relic Crush|CNS +1 Rolling Thunder|BFZ +1 Strength of the Tajuru|WWK +1 Sylvan Scrying|BFZ +1 Turn Against|BFZ +1 Unknown Shores|OGW +1 Vent Sentinel|CNS +1 Warmonger's Chariot|CNS \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Kazandu Landfall.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Kazandu Landfall.dck new file mode 100644 index 00000000000..05913fa5c83 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Kazandu Landfall.dck @@ -0,0 +1,38 @@ +[metadata] +Name=Kazandu Landfall +[Main] +1 Adventuring Gear|ZEN +1 Akoum Firebird|BFZ +1 Akoum Hellkite|BFZ +1 Akoum Stonewaker|BFZ +1 Avenger of Zendikar|C13 +1 Baloth Woodcrasher|C13 +1 Belligerent Whiptail|BFZ +1 Cosi's Ravager|DDI +1 Embodiment of Fury|OGW +1 Embodiment of Insight|OGW +1 Eternity Vessel|ZEN +2 Forest|BFZ|1 +1 Forest|BFZ|6 +2 Forest|BFZ|7 +1 Forest|BFZ|8 +1 Forest|BFZ|9 +1 Forest|BFZ|10 +1 Geyser Glider|DDI +1 Grazing Gladehart|DDO +1 Groundswell|WWK +1 Grove Rumbler|BFZ +1 Hedron Rover|WWK +1 Hedron Scrabbler|ZEN +1 Jaddi Offshoot|BFZ +1 Khalni Heart Expedition|ZEN +1 Lotus Cobra|ZEN +1 Makindi Sliderunner|BFZ +2 Mountain|BFZ|1 +1 Mountain|BFZ|3 +1 Mountain|BFZ|4 +3 Mountain|BFZ|6 +1 Murasa Ranger|BFZ +1 Omnath, Locus of Rage|BFZ +1 Oran-Rief Hydra|BFZ +1 Plated Geopede|DDI \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Kazandu Rally.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Kazandu Rally.dck new file mode 100644 index 00000000000..05377b6f63c --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Kazandu Rally.dck @@ -0,0 +1,38 @@ +[metadata] +Name=Kazandu Rally +[Main] +1 Akoum Battlesinger|WWK +1 Akoum Flameseeker|OGW +1 Ally Encampment|BFZ +1 Beastcaller Savant|BFZ +1 Captain's Claws|OGW +1 Chasm Guide|BFZ +1 Firemantle Mage|BFZ +1 Forest|BFZ|1 +1 Forest|BFZ|2 +2 Forest|BFZ|8 +2 Forest|BFZ|9 +1 Forest|BFZ|10 +1 Goblin Freerunner|OGW +1 Graypelt Hunter|WWK +1 Harabaz Druid|WWK +1 Highland Berserker|ZEN +1 Joraga Bard|ZEN +1 Kazuul Warlord|ZEN +1 Mina and Denn, Wildborn|OGW +1 Mountain|BFZ|3 +2 Mountain|BFZ|4 +2 Mountain|BFZ|5 +1 Mountain|BFZ|7 +2 Mountain|BFZ|9 +1 Murasa Pyromancer|ZEN +1 Ondu Champion|BFZ +1 Reckless Bushwhacker|OGW +1 Sylvan Advocate|OGW +1 Tajuru Archer|ZEN +1 Tajuru Beastmaster|BFZ +1 Tajuru Warcaller|BFZ +1 Tuktuk Scrapper|WWK +1 Turntimber Ranger|ZEN +1 Vastwood Animist|WWK +1 Zada, Hedron Grinder|BFZ \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Kazuul, Tyrant of the Cliffs.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Kazuul, Tyrant of the Cliffs.dck new file mode 100644 index 00000000000..0315f0a0836 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Kazuul, Tyrant of the Cliffs.dck @@ -0,0 +1,37 @@ +[metadata] +Name=Kazuul, Tyrant of the Cliffs +[Commander] +1 Kazuul, Tyrant of the Cliffs|WWK +[Main] +1 Brimstone Mage|ROE +1 Chandra, Flamecaller|OGW +1 Conquering Manticore|DDL +1 Cunning Sparkmage|WWK +1 Deathforge Shaman|CNS +1 Devour in Flames|OGW +1 Electropotence|ZEN +1 Forked Bolt|ROE +1 Goblin Ruinblaster|ZEN +1 Heat Ray|M15 +1 Hellion Eruption|PC2 +1 Hellkite Charger|MM2 +1 Kazuul's Toll Collector|OGW +1 Lord of Shatterskull Pass|ROE +1 Lust for War|ROE +1 Mark of Mutiny|M13 +1 Mordant Dragon|DDG +4 Mountain|ROE|1 +3 Mountain|ROE|2 +4 Mountain|ROE|3 +3 Mountain|ROE|4 +1 Obsidian Fireheart|ZEN +1 Ogre Sentry|ROE +1 Ogre's Cleaver|ROE +1 Punishing Fire|COM +1 Rage Nimbus|ROE +1 Rolling Thunder|BFZ +1 Splinter Twin|MM2 +1 Tears of Valakut|OGW +1 Valakut, the Molten Pinnacle|ZEN +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Mina and Denn, Wildborn.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Mina and Denn, Wildborn.dck new file mode 100644 index 00000000000..df4ab83410b --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Mina and Denn, Wildborn.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Mina and Denn, Wildborn +[Commander] +1 Mina and Denn, Wildborn|OGW +[Main] +1 Avenger of Zendikar|C13 +1 Blighted Woodland|BFZ +1 Boundless Realms|M13 +1 Cinder Glade|EXP +1 Dragonmaster Outcast|BFZ +1 Evolving Wilds|C15 +1 Expedition Map|MM2 +1 Fertile Thicket|BFZ +2 Forest|PC2|2 +1 Forest|PC2|4 +1 Frontier Guide|ZEN +1 Growth Spasm|ROE +1 Harrow|TPR +1 Kazandu Refuge|C13 +1 Khalni Garden|C13 +1 Khalni Heart Expedition|ZEN +1 Loam Larva|OGW +1 Lotus Cobra|ZEN +3 Mountain|PC2|1 +1 Natural Connection|BFZ +1 Nissa's Expedition|M15 +1 Nissa's Pilgrimage|ORI +1 Nissa's Renewal|BFZ +1 Nissa, Vastwood Seer|ORI +1 Omnath, Locus of Mana|FVL +1 Omnath, Locus of Rage|BFZ +1 Ondu Giant|PC2 +1 Raging Ravine|WWK +1 Rampaging Baloths|C14 +1 Realms Uncharted|ROE +1 Retreat to Kazandu|BFZ +1 Scute Mob|MM2 +1 Sword of the Animist|ORI +1 Sylvan Scrying|BFZ +1 Timber Gorge|OGW +1 Undergrowth Champion|BFZ +1 Unknown Shores|OGW +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Nissa, Voice of Zendikar.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Nissa, Voice of Zendikar.dck new file mode 100644 index 00000000000..8cfbe7d3a4b --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Nissa, Voice of Zendikar.dck @@ -0,0 +1,35 @@ +[metadata] +Name=Nissa, Voice of Zendikar +[Main] +1 Avenger of Zendikar|C13 +1 Beastcaller Savant|BFZ +1 Boundless Realms|M13 +1 Expedition Map|MM2 +3 Forest|C13|1 +4 Forest|C13|2 +4 Forest|C13|3 +4 Forest|C13|4 +1 Frontier Guide|ZEN +1 Grovetender Druids|BFZ +1 Harabaz Druid|WWK +1 Harrow|TPR +1 Holdout Settlement|OGW +1 Jaddi Offshoot|BFZ +1 Khalni Garden|C13 +1 Khalni Gem|ZEN +1 Khalni Heart Expedition|ZEN +1 Lifespring Druid|BFZ +1 Loam Larva|OGW +1 Lotus Cobra|ZEN +1 Mul Daya Channelers|ROE +1 Natural Connection|BFZ +1 Nissa's Renewal|BFZ +1 Nissa, Voice of Zendikar|OGW +1 Oath of Nissa|OGW +1 Prophetic Prism|GTC +1 Snapping Creeper|WWK +1 Unknown Shores|OGW +1 Vengevine|ROE +1 Zendikar Resurgent|OGW +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Omnath, Locus of Rage.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Omnath, Locus of Rage.dck new file mode 100644 index 00000000000..138b94ff655 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Omnath, Locus of Rage.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Omnath, Locus of Rage +[Commander] +1 Omnath, Locus of Rage|BFZ +[Main] +1 Akoum Firebird|BFZ +1 Akoum Hellkite|BFZ +1 Akoum Stonewaker|BFZ +1 Avenger of Zendikar|C13 +1 Baloth Woodcrasher|C13 +1 Blighted Woodland|BFZ +1 Cinder Glade|EXP +1 Cosi's Ravager|DDI +1 Embodiment of Fury|OGW +1 Embodiment of Insight|OGW +1 Eternity Vessel|ZEN +1 Evolving Wilds|C15 +1 Fertile Thicket|BFZ +1 Forest|BFZ|7 +2 Forest|BFZ|10 +1 Grazing Gladehart|DDO +1 Grove Rumbler|BFZ +1 Jaddi Offshoot|BFZ +1 Kazandu Refuge|C13 +1 Khalni Heart Expedition|ZEN +1 Lotus Cobra|ZEN +2 Mountain|BFZ|2 +2 Mountain|BFZ|3 +1 Murasa Ranger|BFZ +1 Nissa, Voice of Zendikar|OGW +1 Nissa, Worldwaker|M15 +1 Oran-Rief Hydra|BFZ +1 Oran-Rief, the Vastwood|C15 +1 Raging Ravine|WWK +1 Rampaging Baloths|C14 +1 Retreat to Kazandu|BFZ +1 Retreat to Valakut|BFZ +1 Scythe Leopard|BFZ +1 Timber Gorge|OGW +1 Undergrowth Champion|BFZ +1 Valakut, the Molten Pinnacle|ZEN +1 Zektar Shrine Expedition|ZEN +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Tuktuk the Explorer.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Tuktuk the Explorer.dck new file mode 100644 index 00000000000..1644e2482ac --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Tuktuk the Explorer.dck @@ -0,0 +1,43 @@ +[metadata] +Name=Tuktuk the Explorer +[Commander] +1 Tuktuk the Explorer|C14 +[Main] +1 Basilisk Collar|WWK +1 Battle-Rattle Shaman|ROE +1 Blighted Gorge|BFZ +1 Captain's Claws|OGW +1 Chasm Guide|BFZ +1 Dread Statuary|DDM +1 Goblin Arsonist|DDK +1 Goblin Bushwhacker|ZEN +1 Goblin Dark-Dwellers|OGW +1 Goblin Freerunner|OGW +1 Goblin Guide|ZEN +1 Goblin Roughrider|M15 +1 Goblin Ruinblaster|ZEN +1 Goblin Shortcutter|M14 +1 Goblin Tunneler|M12 +1 Goblin War Paint|BFZ +1 Grappling Hook|ZEN +1 Grotag Siege-Runner|ROE +1 Holdout Settlement|OGW +1 Lavafume Invoker|ROE +1 Lavastep Raider|BFZ +1 Looming Spires|BFZ +1 Mountain|ROE|2 +3 Mountain|ROE|3 +3 Mountain|ROE|4 +1 Quest for the Goblin Lord|WWK +1 Quicksand|CNS +1 Reckless Bushwhacker|OGW +1 Smoldering Spires|WWK +1 Tectonic Edge|C14 +1 Teetering Peaks|PD2 +1 Torch Slinger|ZEN +1 Tuktuk Scrapper|WWK +1 Valakut, the Molten Pinnacle|ZEN +1 Warren Instigator|ZEN +1 Zada's Commando|OGW +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Zada, Hedron Grinder.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Zada, Hedron Grinder.dck new file mode 100644 index 00000000000..95de11f7de5 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/Zada, Hedron Grinder.dck @@ -0,0 +1,41 @@ +[metadata] +Name=Zada, Hedron Grinder +[Commander] +1 Zada, Hedron Grinder|BFZ +[Main] +1 Battle-Rattle Shaman|ROE +1 Blighted Gorge|BFZ +1 Brute Strength|OGW +1 Bull Rush|WWK +1 Chain Reaction|C15 +1 Devastating Summons|ROE +1 Devour in Flames|OGW +1 Dragonmaster Outcast|BFZ +1 Expedite|OGW +1 Forked Bolt|ROE +1 Goblin Arsonist|DDK +1 Goblin Dark-Dwellers|OGW +1 Goblin Freerunner|OGW +1 Goblin Guide|ZEN +1 Goblin Roughrider|M15 +1 Goblin Ruinblaster|ZEN +1 Heat Ray|M15 +1 Kargan Dragonlord|ROE +1 Kiln Fiend|DDJ +1 Looming Spires|BFZ +1 Mark of Mutiny|M13 +2 Mountain|BFZ|2 +3 Mountain|BFZ|4 +1 Mountain|BFZ|5 +2 Mountain|BFZ|6 +3 Mountain|BFZ|7 +1 Press into Service|OGW +1 Slaughter Cry|M12 +1 Smoldering Spires|WWK +1 Sure Strike|BFZ +1 Teetering Peaks|PD2 +1 Traitorous Instinct|RTR +1 Turn Against|BFZ +1 Valakut, the Molten Pinnacle|ZEN +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/_events.txt b/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/_events.txt new file mode 100644 index 00000000000..97b680ce63a --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Kazandu/_events.txt @@ -0,0 +1,9 @@ +Name:Defenders of Zendikar|Deck:Defenders of Zendikar.dck|Variant:None|Avatar:Avenger of Zendikar|Desc: +Name:Kazandu Landfall|Deck:Kazandu Landfall.dck|Variant:None|Avatar:Baloth Woodcrasher|Desc: +Name:Kazandu Rally|Deck:Kazandu Rally.dck|Variant:None|Avatar:Chasm Guide|Desc: +Name:Kazuul, Tyrant of the Cliffs|Deck:Kazuul, Tyrant of the Cliffs.dck|Variant:Commander|Avatar:Kazuul, Tyrant of the Cliffs|Desc: +Name:Mina and Denn, Wildborn|Deck:Mina and Denn, Wildborn.dck|Variant:Commander|Avatar:Mina and Denn, Wildborn|Desc: +Name:Omnath, Locus of Rage|Deck:Omnath, Locus of Rage.dck|Variant:Commander|Avatar:Omnath, Locus of Rage|Desc: +Name:Zada, Hedron Grinder|Deck:Zada, Hedron Grinder.dck|Variant:Commander|Avatar:Zada, Hedron Grinder|Desc: +Name:Nissa, Voice of Zendikar|Deck:Nissa, Voice of Zendikar.dck|Variant:Planeswalker|Avatar:Nissa, Voice of Zendikar|Desc: +Name:Chandra Ablaze|Deck:Chandra Ablaze.dck|Variant:Planeswalker|Avatar:Chandra Ablaze|Desc: \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Ayli, Eternal Pilgrim.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Ayli, Eternal Pilgrim.dck new file mode 100644 index 00000000000..35760959886 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Ayli, Eternal Pilgrim.dck @@ -0,0 +1,43 @@ +[metadata] +Name=Ayli, Eternal Pilgrim +[Commander] +1 Ayli, Eternal Pilgrim|OGW +[Main] +1 Angelheart Vial|ROE +1 Archangel of Thune|M14 +1 Bloodchief Ascension|ZEN +1 Captain's Claws|OGW +1 Cliffhaven Vampire|OGW +1 Conqueror's Pledge|ZEN +1 Consuming Vapors|ROE +1 Crypt of Agadeem|C14 +1 Deathless Angel|ROE +1 Defiant Bloodlord|BFZ +1 Drana's Chosen|OGW +1 Drana's Emissary|BFZ +1 Feast of Blood|ZEN +1 Gideon, Ally of Zendikar|BFZ +1 Landbind Ritual|ZEN +1 Luminous Wake|ROE +1 Make a Stand|OGW +1 Malakir Familiar|BFZ +1 Marsh Flats|EXP +1 Ob Nixilis of the Black Oath|C14 +1 Ondu Rising|BFZ +2 Plains|ROE|1 +2 Plains|ROE|2 +1 Plains|ROE|3 +1 Plains|ROE|4 +1 Retreat to Hagra|BFZ +1 Serene Steward|BFZ +1 Shambling Vent|BFZ +1 Sorin Markov|M12 +1 Survival Cache|C13 +2 Swamp|ROE|1 +1 Swamp|ROE|2 +1 Swamp|ROE|3 +2 Swamp|ROE|4 +1 Vampire Nighthawk|C13 +1 Zulaport Cutthroat|BFZ +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Iona, Shield of Emeria.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Iona, Shield of Emeria.dck new file mode 100644 index 00000000000..8d793cee583 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Iona, Shield of Emeria.dck @@ -0,0 +1,36 @@ +[metadata] +Name=Iona, Shield of Emeria +[Commander] +1 Iona, Shield of Emeria|V15 +[Main] +1 Admonition Angel|WWK +1 Angel of Renewal|BFZ +1 Archon of Redemption|WWK +1 Celestial Mantle|ZEN +1 Conqueror's Pledge|ZEN +1 Day of Judgment|M12 +1 Deathless Angel|ROE +1 Emeria Angel|ZEN +1 Emeria Shepherd|BFZ +1 Emeria, the Sky Ruin|C14 +1 Felidar Sovereign|BFZ +1 Ghostly Sentinel|BFZ +1 Harmless Assault|ROE +1 Inspired Charge|BFZ +1 Iona's Blessing|OGW +1 Iona's Judgment|WWK +1 Isolation Zone|OGW +1 Kabira Vindicator|DDG +1 Landbind Ritual|ZEN +1 Makindi Griffin|ROE +1 Marshal's Anthem|C15 +1 Nomads' Assembly|C14 +3 Plains|C14|1 +3 Plains|C14|2 +2 Plains|C14|3 +7 Plains|C14|4 +1 Planar Outburst|BFZ +1 Shepherd of the Lost|ZEN +1 Windborne Charge|ZEN +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Jori En, Ruin Diver.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Jori En, Ruin Diver.dck new file mode 100644 index 00000000000..88e9f94111d --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Jori En, Ruin Diver.dck @@ -0,0 +1,44 @@ +[metadata] +Name=Jori En, Ruin Diver +[Commander] +1 Jori En, Ruin Diver|OGW +[Main] +1 Boulder Salvo|OGW +1 Bull Rush|WWK +1 Burst Lightning|MM2 +1 Clutch of Currents|BFZ +1 Comparative Analysis|OGW +1 Containment Membrane|OGW +1 Crush of Tentacles|OGW +1 Devastating Summons|ROE +1 Dispel|BFZ +1 Distortion Strike|ROE +1 Evolving Wilds|C15 +1 Fall of the Titans|OGW +1 Fleeting Distraction|DDN +1 Gift of Tusks|OGW +1 Goblin Freerunner|OGW +1 Grip of the Roil|OGW +3 Island|BFZ|1 +1 Island|BFZ|7 +1 Island|BFZ|8 +1 Island|BFZ|9 +1 Island|BFZ|10 +1 Jwar Isle Avenger|OGW +1 Mountain|BFZ|4 +2 Mountain|BFZ|6 +1 Mountain|BFZ|9 +1 Mountain|BFZ|10 +1 Overwhelming Denial|OGW +1 Reckless Bushwhacker|OGW +1 Rush of Ice|BFZ +1 Scalding Tarn|EXP +1 Shared Discovery|ROE +1 Slip Through Space|OGW +1 Soulsurge Elemental|ROE +1 Spell Pierce|ZEN +1 Sphinx-Bone Wand|DDJ +1 Tyrant of Valakut|OGW +1 Wandering Fumarole|OGW +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Kickin It.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Kickin It.dck new file mode 100644 index 00000000000..f2a502a17d4 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Kickin It.dck @@ -0,0 +1,38 @@ +[metadata] +Name=Kickin' It +[Main] +1 AEther Figment|DDM +1 Apex Hawks|CNS +1 Basilisk Collar|WWK +1 Bold Defense|ZEN +1 Celestial Colonnade|WWK +1 Celestial Mantle|ZEN +1 Conqueror's Pledge|ZEN +1 Cosi's Trickster|ZEN +1 Day of Judgment|M12 +1 Deathless Angel|ROE +1 Domestication|M14 +1 Dormant Gomazoa|ROE +1 Emeria Angel|ZEN +1 Emeria, the Sky Ruin|C14 +1 Enclave Elite|CNS +1 Everflowing Chalice|MM2 +1 Felidar Sovereign|BFZ +1 Into the Roil|C14 +1 Island|ZEN|2 +1 Island|ZEN|4 +3 Island|ZEN|5 +1 Island|ZEN|7 +1 Kor Aeronaut|DDF +1 Kor Sanctifiers|C15 +1 Lightkeeper of Emeria|COM +1 Marshal's Anthem|C15 +2 Plains|ZEN|3 +3 Plains|ZEN|6 +1 Plains|ZEN|8 +1 Prairie Stream|EXP +1 Rite of Replication|C15 +1 Spell Contortion|WWK +1 Sphinx of Lost Truths|ZEN +1 Tempest Owl|ZEN +1 Voyager Drake|WWK \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Linvala, Keeper of Silence.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Linvala, Keeper of Silence.dck new file mode 100644 index 00000000000..7ae2476962a --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Linvala, Keeper of Silence.dck @@ -0,0 +1,42 @@ +[metadata] +Name=Linvala, Keeper of Silence +[Commander] +1 Linvala, Keeper of Silence|ROE +[Main] +1 Admonition Angel|WWK +1 Angel of Renewal|BFZ +1 Angelheart Vial|ROE +1 Angelic Gift|BFZ +1 Blighted Steppe|BFZ +1 Conqueror's Pledge|ZEN +1 Day of Judgment|M12 +1 Dazzling Reflection|OGW +1 Deathless Angel|ROE +1 Emerge Unscathed|ROE +1 Emeria Angel|ZEN +1 Emeria Shepherd|BFZ +1 Emeria, the Sky Ruin|C14 +1 Everflowing Chalice|MM2 +1 Gideon Jura|M12 +1 Immolating Glare|OGW +1 Iona's Judgment|WWK +1 Kabira Crossroads|DDF +1 Lightkeeper of Emeria|COM +1 Luminarch Ascension|ZEN +1 Mighty Leap|OGW +1 Oust|ROE +4 Plains|BFZ|3 +1 Plains|BFZ|4 +1 Plains|M12|1 +1 Plains|M12|2 +2 Plains|M12|3 +2 Plains|M12|4 +1 Puncturing Light|ROE +1 Sandstone Bridge|BFZ +1 Searing Light|OGW +1 Sejiri Steppe|DDG +1 Shepherd of the Lost|ZEN +1 Smite|TPR +1 Stoneforge Masterwork|OGW +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Linvala, the Preserver.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Linvala, the Preserver.dck new file mode 100644 index 00000000000..a4ebc5f9c54 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Linvala, the Preserver.dck @@ -0,0 +1,37 @@ +[metadata] +Name=Linvala, the Preserver +[Commander] +1 Linvala, the Preserver|OGW +[Main] +1 Angel of Renewal|BFZ +1 Angelheart Vial|ROE +1 Archangel of Thune|M14 +1 Basilisk Collar|WWK +1 Blighted Steppe|BFZ +1 Caravan Hurda|ZEN +1 Celestial Mantle|ZEN +1 Conqueror's Pledge|ZEN +1 Courier Griffin|BFZ +1 Day of Judgment|M12 +1 Emeria, the Sky Ruin|C14 +1 Eternity Vessel|ZEN +1 Felidar Sovereign|BFZ +1 Felidar Umbra|PC2 +1 Landbind Ritual|ZEN +1 Lightkeeper of Emeria|COM +1 Luminarch Ascension|ZEN +1 Luminous Wake|ROE +1 Narrow Escape|DDE +1 Nomads' Assembly|C14 +1 Ondu Rising|BFZ +1 Oust|ROE +3 Plains|M12|1 +1 Plains|M12|2 +7 Plains|M12|3 +3 Plains|M12|4 +1 Planar Outburst|BFZ +1 Serene Steward|BFZ +1 Survival Cache|C13 +1 Transcendent Master|ROE +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Nahiri, the Lithomancer.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Nahiri, the Lithomancer.dck new file mode 100644 index 00000000000..2a6848b600b --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Nahiri, the Lithomancer.dck @@ -0,0 +1,32 @@ +[metadata] +Name=Nahiri, the Lithomancer +[Main] +1 Armament Master|ZEN +1 Basilisk Collar|WWK +1 Blade of the Bloodchief|ZEN +1 Captain's Claws|OGW +1 Chitinous Cloak|OGW +1 Conqueror's Pledge|ZEN +1 Emeria, the Sky Ruin|C14 +1 Ghostly Sentinel|BFZ +1 Grappling Hook|ZEN +1 Kitesail|MM2 +1 Kitesail Apprentice|WWK +1 Kor Duelist|MM2 +1 Kor Outfitter|ZEN +1 Kor Scythemaster|OGW +1 Munda's Vanguard|OGW +1 Nahiri, the Lithomancer|C14 +1 Nomads' Assembly|C14 +1 Oath of Gideon|OGW +1 Pennon Blade|ROE +6 Plains|C14|1 +5 Plains|C14|2 +4 Plains|C14|4 +1 Quest for the Holy Relic|ZEN +1 Retreat to Emeria|BFZ +1 Stone Haven Outfitter|OGW +1 Stoneforge Masterwork|OGW +1 Stoneforge Mystic|WWK +1 Sword of the Animist|ORI +1 Trailblazer's Boots|ZEN \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Noyan Dar, Roil Shaper.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Noyan Dar, Roil Shaper.dck new file mode 100644 index 00000000000..dde211bd75c --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Noyan Dar, Roil Shaper.dck @@ -0,0 +1,47 @@ +[metadata] +Name=Noyan Dar, Roil Shaper +[Commander] +1 Noyan Dar, Roil Shaper|BFZ +[Main] +1 Basilisk Collar|WWK +1 Captain's Claws|OGW +1 Celestial Colonnade|WWK +1 Clutch of Currents|BFZ +1 Coastal Discovery|BFZ +1 Cyclone Sire|OGW +1 Deprive|ROE +1 Emeria Angel|ZEN +1 Encircling Fissure|BFZ +1 Evolving Wilds|C15 +1 Expedition Map|MM2 +1 Halimar Depths|DDM +1 Halimar Tidecaller|BFZ +1 Holdout Settlement|OGW +1 Island|BFZ|1 +1 Island|BFZ|6 +1 Island|BFZ|10 +1 Kabira Crossroads|DDF +1 Luminarch Ascension|ZEN +1 Meandering River|OGW +1 Ondu Rising|BFZ +1 Part the Waterveil|BFZ +1 Perilous Vault|M15 +1 Plains|BFZ|3 +1 Plains|BFZ|5 +1 Planar Outburst|BFZ +1 Prairie Stream|EXP +1 Retreat to Emeria|BFZ +1 Roil Spout|BFZ +1 Rush of Ice|BFZ +1 Sandstone Bridge|BFZ +1 Scatter to the Winds|BFZ +1 Sejiri Refuge|C13 +1 Sejiri Steppe|DDG +1 Sheer Drop|BFZ +1 Soaring Seacliff|DDI +1 Sphinx-Bone Wand|DDJ +1 Surrakar Spellblade|MM2 +1 Terra Eternal|WWK +1 Wall of Resurgence|OGW +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Thada Adel, Acquisitor.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Thada Adel, Acquisitor.dck new file mode 100644 index 00000000000..9ee3017b5d5 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Thada Adel, Acquisitor.dck @@ -0,0 +1,35 @@ +[metadata] +Name=Thada Adel, Acquisitor +[Commander] +1 Thada Adel, Acquisitor|WWK +[Main] +1 Abstruse Interference|OGW +1 Adverse Conditions|BFZ +1 Anticipate|DTK +1 Archmage Ascension|ZEN +1 Caller of Gales|ZEN +1 Coralhelm Commander|ROE +1 Coralhelm Guide|BFZ +1 Cosi's Trickster|ZEN +1 Enclave Cryptologist|ROE +1 Enclave Elite|CNS +1 Frostwind Invoker|ROE +1 Guardian of Tazeem|BFZ +1 Halimar Wavewatch|ROE +6 Island|DTK|1 +6 Island|DTK|2 +3 Island|DTK|3 +1 Lullmage Mentor|ZEN +1 Merfolk Observer|ROE +1 Merfolk Seastalkers|ZEN +1 Merfolk Skyscout|ROE +1 Merfolk Wayfinder|DDM +1 Sea Gate Loremaster|ZEN +1 Seascape Aerialist|ZEN +1 Sejiri Merfolk|WWK +1 Skywatcher Adept|ROE +1 Spreading Seas|ZEN +1 Umara Entangler|OGW +1 Windrider Patrol|BFZ +[Sideboard] + diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Totem Armor.dck b/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Totem Armor.dck new file mode 100644 index 00000000000..ef12b10a0a6 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/Totem Armor.dck @@ -0,0 +1,34 @@ +[metadata] +Name=Totem Armor +[Main] +1 Angelic Gift|BFZ +1 Aura Finesse|ROE +1 Celestial Mantle|ZEN +1 Crab Umbra|ROE +1 Drake Umbra|ROE +1 Eel Umbra|ROE +1 Eland Umbra|ROE +1 Eldrazi Conscription|ROE +1 Felidar Umbra|PC2 +1 Guard Duty|ROE +1 Hyena Umbra|PC2 +1 Iona's Blessing|OGW +2 Island|ROE|1 +1 Island|ROE|2 +4 Island|ROE|4 +1 Kor Spiritdancer|PC2 +1 Luminous Wake|ROE +1 Mammoth Umbra|PC2 +1 Mind Control|M12 +1 Narcolepsy|MM2 +1 Nimbus Wings|ZEN +1 Paralyzing Grasp|RTR +2 Plains|ROE|1 +3 Plains|ROE|2 +3 Plains|ROE|4 +1 Spreading Seas|ZEN +1 Tightening Coils|BFZ +1 Totem-Guide Hartebeest|ORI +1 Umbra Mystic|ROE +1 Vapor Snare|WWK +1 Wind Zendikon|WWK \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/_events.txt b/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/_events.txt new file mode 100644 index 00000000000..9dc8ccf0216 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/Sejiri/_events.txt @@ -0,0 +1,9 @@ +Name:Kickin' It|Deck:Kickin It.dck|Variant:None|Avatar:Sphinx of Lost Truths|Desc: +Name:Totem Armor|Deck:Totem Armor.dck|Variant:None|Avatar:Umbra Mystic|Desc: +Name:Ayli, Eternal Pilgrim|Deck:Ayli, Eternal Pilgrim.dck|Variant:Commander|Avatar:Ayli, Eternal Pilgrim|Desc: +Name:Iona, Shield of Emeria|Deck:Iona, Shield of Emeria.dck|Variant:Commander|Avatar:Iona, Shield of Emeria|Desc: +Name:Jori En, Ruin Diver|Deck:Jori En, Ruin Diver.dck|Variant:Commander|Avatar:Jori En, Ruin Diver|Desc: +Name:Linvala, Keeper of Silence|Deck:Linvala, Keeper of Silence.dck|Variant:Commander|Avatar:Linvala, Keeper of Silence|Desc: +Name:Noyan Dar, Roil Shaper|Deck:Noyan Dar, Roil Shaper.dck|Variant:Commander|Avatar:Noyan Dar, Roil Shaper|Desc: +Name:Thada Adel, Acquisitor|Deck:Thada Adel, Acquisitor.dck|Variant:Commander|Avatar:Thada Adel, Acquisitor|Desc: +Name:Nahiri, the Lithomancer|Deck:Nahiri, the Lithomancer.dck|Variant:Planeswalker|Avatar:Nahiri, the Lithomancer|Desc: \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/banned_cards.txt b/forge-gui/res/conquest/planes/Zendikar_Classic/banned_cards.txt new file mode 100644 index 00000000000..e2cf3eb5d2d --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/banned_cards.txt @@ -0,0 +1,64 @@ +Atraxa, Praetors' Voice +Breya, Etherium Shaper +Cruel Entertainment +Curse of Vengeance +Kynaios and Tiro of Meletis +Yidris, Maelstrom Wielder +Abzan Charm +Abzan Falconer +Akroan Horse +Alesha, Who Smiles at Death +Azorius Chancery +Blood Tyrant +Boros Charm +Boros Garrison +Brutal Hordechief +Citadel Siege +Dauntless Escort +Dimir Aqueduct +Etherium Sculptor +Etherium-Horn Sorcerer +Ethersworn Adjudicator +Ghave, Guru of Spores +Golgari Rot Farm +Golgari Signet +Gruul Signet +Gruul Turf +In Garruk's Wake +Iroas, God of Victory +Izzet Boilerworks +Jor Kadeen, the Prevailer +Korozda Guildmage +Master Biomancer +Master of Etherium +Mirror Entity +Myr Battlesphere +Myr Retriever +Nath of the Gilt-Leaf +Naya Charm +Orzhov Advokist +Orzhov Basilica +Orzhov Signet +Rakdos Carnarium +Rakdos Charm +Rakdos Signet +Satyr Wayfinder +Selesnya Guildmage +Selesnya Sanctuary +Sharuum the Hegemon +Shimmer Myr +Simic Growth Chamber +Simic Signet +Soul of New Phyrexia +Sphinx Summoner +Sydri, Galvanic Genius +Taurean Mauler +Tezzeret's Gambit +Thopter Foundry +Thrummingbird +Transguild Promenade +Vedalken Engineer +Venser's Journal +Vorel of the Hull Clade +Zedruu the Greathearted +Zhur-Taa Druid diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/cards.txt b/forge-gui/res/conquest/planes/Zendikar_Classic/cards.txt new file mode 100644 index 00000000000..b5847c860d2 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/cards.txt @@ -0,0 +1,28 @@ +Perilous Vault +Archangel of Thune +Soul of Zendikar +Boundless Realms +Malakir Cullblade +Nissa's Expedition +Dismiss into Dream +Elemental Bond +Elvish Archdruid +Elvish Mystic +Nahiri, the Lithomancer +Felidar Umbra +Indrik Umbra +Into the Wilds +Joraga Invocation +Mind Control +Nissa's Pilgrimage +Nissa's Revelation +Nissa, Vastwood Seer +Nissa, Worldwaker +Ob Nixilis of the Black Oath +Ob Nixilis, Unshackled +Sword of the Animist +Vastwood Hydra +Wild Instincts +Woodborn Behemoth +Zendikar Incarnate +Zendikar's Roil \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/plane_cards.txt b/forge-gui/res/conquest/planes/Zendikar_Classic/plane_cards.txt new file mode 100644 index 00000000000..97f1bb1bda8 --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/plane_cards.txt @@ -0,0 +1,4 @@ +Akoum +Hedron Fields of Agadeem +Murasa +Tazeem \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/regions.txt b/forge-gui/res/conquest/planes/Zendikar_Classic/regions.txt new file mode 100644 index 00000000000..0184d6428ba --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/regions.txt @@ -0,0 +1,6 @@ +Name:Kazandu|Art:Kazandu Refuge|Colors:RG +Name:Graypelt|Art:Graypelt Refuge|Colors:GW +Name:Sejiri|Art:Sejiri Refuge|Colors:WU +Name:Jwar Isle|Art:Jwar Isle Refuge|Colors:UB +Name:Akoum|Art:Akoum Refuge|Colors:BR +Name:Blind Eternities|Art:Eldrazi Temple|Colors:C \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/Zendikar_Classic/sets.txt b/forge-gui/res/conquest/planes/Zendikar_Classic/sets.txt new file mode 100644 index 00000000000..9103dfff24b --- /dev/null +++ b/forge-gui/res/conquest/planes/Zendikar_Classic/sets.txt @@ -0,0 +1,6 @@ +ZEN +WWK +ROE +BFZ +OGW +C16 \ No newline at end of file diff --git a/forge-gui/res/conquest/planes/planes.txt b/forge-gui/res/conquest/planes/planes.txt index 581246d06ef..cd1b8986b51 100644 --- a/forge-gui/res/conquest/planes/planes.txt +++ b/forge-gui/res/conquest/planes/planes.txt @@ -13,11 +13,14 @@ Name:Mercadia|RegionSize:6|Unreachable:True|Desc: Name:Mirrodin|RegionSize:9|Desc:A dark contagion is taking over this metal planet, breeding wave after wave of Phyrexian horrors.\nConsists of 63 events. Contains cards from MRD, DST, 5DN, SOM, MBS, NPH, and more. Name:Rath|RegionSize:6|Unreachable:True|Desc: Name:Ravnica|RegionSize:9|Desc:A worldwide cityscape of grand halls, decrepit slums, and ancient ruins.\nConsists of 88 events. Contains cards from RAV, GPT, DIS, RTR, GTC, DGM, GRN, GK1, RNA, WAR, and C15. +Name:Ravnica_Classic|RegionSize:9|Desc:A worldwide cityscape of grand halls, decrepit slums, and ancient ruins.\nThis is the Classic version of the plane, without newer sets and with original events. Consists of 88 events. Contains cards from RAV, GPT, DIS, RTR, GTC, DGM, and C15. Name:Regatha|RegionSize:6|Unreachable:True|Desc: Name:Shandalar|RegionSize:9|Unreachable:True|Desc: Name:Tarkir|RegionSize:9|Desc:A plane dominated by five powerful clans... or five powerful dragon lords.\nConsists of 45 events. Contains cards from KTK, FRF, DTK, CMD, CNS/CN2, some C17. Name:Theros|RegionSize:9|Desc:Mortals tremble before an awe-inspiring pantheon of gods.\nConsists of 45 events. Contains cards from THS, BNG, JOU, HOP, PCA, THB, and more. +Name:Theros_Classic|RegionSize:9|Desc:Mortals tremble before an awe-inspiring pantheon of gods.\nThis is the Classic version of the plane, without newer sets and with original events. Consists of 45 events. Contains cards from THS, BNG, JOU, HOP, PCA, and more. Name:Time_Vault|RegionSize:6|Unreachable:True|Desc:A mysterious and legendary Time Vault, allowing one to travel back in time and revisit the ages long past and challenge the legends of Dominaria.\nConsists of 12 events. Contains cards from the early core sets up to 9th edition, Dominaria-themed expansions (Ice Age, Mirage, Urza's Saga, Invasion, Odyssey, Onslaught, and Time Spiral blocks), the original Commander, and Modern Horizons.\n\nThe portal to this plane is unstable and will close soon, so hasten your step, planeswalker, while you have the chance... Name:Ulgrotha|RegionSize:6|Unreachable:True|Desc: Name:Unstable_Realm|RegionSize:6|Unreachable:True|Desc:A realm so unstable that it seems like the planeswalker daring to travel to it could easily become unhinged. Creatures lurking inside appear to be unglued. Using this portal is strictly unsanctioned, so anything from hurt feelings to lost sanity due to traveling through this portal is the planeswalker's own responsibility.\nConsists of 12 events. This plane requires Non-Legal cards to be enabled, make sure you enable this option before playing. Contains cards from UGL, UNH, UST, UND, CMB1, PAST, and PCEL.\n\nThe portal to this plane is unstable and will close soon, so hasten your step, planeswalker, while you have the chance... Name:Zendikar|RegionSize:9|Desc:This land of primal mana was lethal even before its Eldrazi prisoners escaped.\nConsists of 60 events. Contains cards from ZEN, WWK, ROE, BFZ, OGW, C16, ZNR, ZNC, and ZNE. +Name:Zendikar_Classic|RegionSize:9|Desc:This land of primal mana was lethal even before its Eldrazi prisoners escaped.\nThis is the Classic version of the plane, without newer sets and with original events. Consists of 60 events. Contains cards from ZEN, WWK, ROE, BFZ, OGW, and C16. diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index 31a7c12e464..11811320da8 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -111,6 +111,8 @@ cbpGameLogEntryType=Spielberichtsumfang cbpCloseAction=Beenden cbpDefaultFontSize=Standard Schriftgröße cbpCardArtFormat=Kartenbildformat +cbpSoundSets=Sound-Set +cbpMusicSets=Music-Set cbpAiProfiles=KI Persönlichkeit cbpStackAdditions=Nachricht bei Stapeländerung cbpDisplayCurrentCardColors=Zeige detaillierte Kartenfarben @@ -141,6 +143,8 @@ nlCompactMainMenu=Aktiviere, um im Seitenmenü platzsparend immer nur eine Menü nlUseSentry=Aktiviere, um automatische Fehlerberichte an die Entwickler zu senden. GamePlay=Spiel nlpMulliganRule=Wähle die Version der Mulligan Regel +nlpSoundSets=Wähle eines der Sound-Sets aus dem "Sound"-Ordner in deinem Forge-Cache-Verzeichnis. +nlpMusicSets=Choose the music set from the ones present in the "music" folder in your Forge cache directory nlpAiProfiles=Wähle die Spielweise deines KI-Gegners. nlpStackAdditions=Wähle, wann du über Änderungen am Stapel benachrichtigt werden möchtest: Niemals, immer oder nur für durch andere Spieler ausgelöste Effekte und Fähigkeiten nlAnte=Entscheidet, ob um einen Einsatz (Ante) gespielt wird. diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index b8e99398019..5a7e008a628 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -113,6 +113,8 @@ cbpCloseAction=Close Action cbpDefaultFontSize=Default Font Size cbpCardArtFormat=Card Art Format cbpAiProfiles=AI Personality +cbpSoundSets=Sound Set +cbpMusicSets=Music Set cbpStackAdditions=Stack effect notifications cbpDisplayCurrentCardColors=Show Detailed Card Color cbpAutoYieldMode=Auto-Yield @@ -142,6 +144,8 @@ nlCompactMainMenu=Enable for a space efficient sidebar that displays only one me nlUseSentry=When enabled, automatically submits bug reports to developers. GamePlay=Gameplay nlpMulliganRule=Choose the version of the Mulligan rule +nlpSoundSets=Choose the sound set from the ones present in the "sound" folder in your Forge cache directory +nlpMusicSets=Choose the music set from the ones present in the "music" folder in your Forge cache directory nlpAiProfiles=Choose your AI opponent nlpStackAdditions=Choose when you want to get visual notifications for an effect added to the stack: Never, always, or only for the effects cast/activated by a AI player or triggered by any player nlAnte=Determines whether or not the game is played for ante. diff --git a/forge-gui/res/languages/es-ES.properties b/forge-gui/res/languages/es-ES.properties index f5b829e692c..1fa69fe722f 100644 --- a/forge-gui/res/languages/es-ES.properties +++ b/forge-gui/res/languages/es-ES.properties @@ -112,6 +112,8 @@ cbpGameLogEntryType=Registro del juego cbpCloseAction=Acción al cerrar cbpDefaultFontSize=Tamaño de fuente predeterminado cbpCardArtFormat=Card Art Format +cbpSoundSets=Sound Set +cbpMusicSets=Music Set cbpAiProfiles=Personalidad de la IA cbpStackAdditions=Efecto de la pila de notificaciones cbpDisplayCurrentCardColors=Mostrar color de la carta @@ -142,6 +144,8 @@ nlCompactMainMenu=Habilitar para una barra lateral eficiente en espacio que mues nlUseSentry=Cuando está habilitado, envía automáticamente informes de errores a los desarrolladores. GamePlay=Juego nlpMulliganRule=Elige versión de reglas de mulligan +nlpSoundSets=Choose the sound set from the ones present in the "sound" folder in your Forge cache directory +nlpMusicSets=Choose the music set from the ones present in the "music" folder in your Forge cache directory nlpAiProfiles=Elige tu oponente de la IA nlpStackAdditions=Elige cuándo quieres recibir notificaciones visuales para un efecto añadido a la pila: Nunca, siempre o sólo para los efectos lanzados/activados por un jugador IA o activados por cualquier jugador nlAnte=Determina si el juego se juega con apuesta o no. diff --git a/forge-gui/res/languages/it-IT.properties b/forge-gui/res/languages/it-IT.properties index 592706ac924..645a7e7d121 100644 --- a/forge-gui/res/languages/it-IT.properties +++ b/forge-gui/res/languages/it-IT.properties @@ -111,6 +111,8 @@ cbpGameLogEntryType=Verbosità del registro di gioco cbpCloseAction=Chiudi cbpDefaultFontSize=Dimensione carattere predefinita cbpCardArtFormat=Formato dell'Illustrazione delle carte +cbpSoundSets=Sound Set +cbpMusicSets=Music Set cbpAiProfiles=Personalità dell''IA cbpStackAdditions=Notifiche degli effetti in pila cbpDisplayCurrentCardColors=Mostra colore scheda dettagliato @@ -141,6 +143,8 @@ nlCompactMainMenu=Abilitare per una barra laterale efficiente in termini di spaz nlUseSentry=Se abilitato, invia automaticamente segnalazioni di bug agli sviluppatori. GamePlay=Gameplay nlpMulliganRule=Scegli il tipo di Mulligan +nlpSoundSets=Choose the sound set from the ones present in the "sound" folder in your Forge cache directory +nlpMusicSets=Choose the music set from the ones present in the "music" folder in your Forge cache directory nlpAiProfiles=Scegli il tuo avversario (IA) nlpStackAdditions=Scegli quando vuoi ricevere una notifica visiva di un effetto aggiunto alla pila: Mai, sempre, o solo per gli effetti lanciati/attivati da un giocatore IA o innescati da un qualsiasi giocatore nlAnte=Determina se l''incontro è giocato o meno con la posta. diff --git a/forge-gui/res/languages/ja-JP.properties b/forge-gui/res/languages/ja-JP.properties index e01fd21f311..04ef29709e5 100644 --- a/forge-gui/res/languages/ja-JP.properties +++ b/forge-gui/res/languages/ja-JP.properties @@ -112,6 +112,8 @@ cbpGameLogEntryType=ゲームログの詳細レベル cbpCloseAction=閉じる時の動作 cbpDefaultFontSize=デフォルトのフォントサイズ cbpCardArtFormat=カードのアートフォーマット +cbpSoundSets=Sound Set +cbpMusicSets=Music Set cbpAiProfiles=AI の性格 cbpStackAdditions=スタック効果通知 cbpDisplayCurrentCardColors=詳細なカードの色を表示 @@ -142,6 +144,8 @@ nlCompactMainMenu=サイドバーに同時に一つのメニューグループ nlUseSentry=有効にすると、バグレポートが開発者に自動的に送信されます。 GamePlay=ゲーム設定 nlpMulliganRule=マリガンルールを選択する。 +nlpSoundSets=Choose the sound set from the ones present in the "sound" folder in your Forge cache directory +nlpMusicSets=Choose the music set from the ones present in the "music" folder in your Forge cache directory nlpAiProfiles=対戦相手 AI の性格を選択する。 nlpStackAdditions=スタックに追加された能力の視覚通知をいつ取得するかを選択します:(Never[しない]、Always[常時]、またはAIプレーヤーによってキャスト/起動された能力、または任意のプレーヤーによって誘発された能力に対してのみ nlAnte=ゲームでアンティ(賭け)ルールを適用するか選択する。 diff --git a/forge-gui/res/languages/zh-CN.properties b/forge-gui/res/languages/zh-CN.properties index 81b797eb8f1..b9c88336c84 100644 --- a/forge-gui/res/languages/zh-CN.properties +++ b/forge-gui/res/languages/zh-CN.properties @@ -112,6 +112,8 @@ cbpGameLogEntryType=游戏日志详细程度 cbpCloseAction=关闭动作 cbpDefaultFontSize=默认字体大小 cbpCardArtFormat=牌张插画格式 +cbpSoundSets=Sound Set +cbpMusicSets=Music Set cbpAiProfiles=AI强度 cbpStackAdditions=堆叠效应通知 cbpDisplayCurrentCardColors=显示卡牌颜色详情 @@ -142,6 +144,8 @@ nlCompactMainMenu=启用节省空间的侧边栏,一次只显示一个菜单 nlUseSentry=启用后,会自动向开发人员提交错误报告。 GamePlay=游戏 nlpMulliganRule=选择调度规则 +nlpSoundSets=Choose the sound set from the ones present in the "sound" folder in your Forge cache directory +nlpMusicSets=Choose the music set from the ones present in the "music" folder in your Forge cache directory nlpAiProfiles=选择你的AI对手 nlpStackAdditions=选择何时因效应进入堆叠而提供视觉提醒:从不,总是,任何由AI释放或起动以及由任何玩家触发的效应。 nlAnte=确定游戏是否使用赌注 diff --git a/forge-gui/res/puzzle/PS_MID3.pzl b/forge-gui/res/puzzle/PS_MID3.pzl new file mode 100644 index 00000000000..dca43fd8dd4 --- /dev/null +++ b/forge-gui/res/puzzle/PS_MID3.pzl @@ -0,0 +1,17 @@ +[metadata] +Name:Possibility Storm - Innistrad: Midnight Hunt #03 +URL:https://i1.wp.com/www.possibilitystorm.com/wp-content/uploads/2021/10/186.-MID3-scaled.jpg +Goal:Win +Turns:2 +Difficulty:Uncommon +Description:Start in your opponent's end step, and win before their untap step. (They are currently tapped out.) Assume you have at least one additional copy of each card in your hand and on your board left in your library. Mascot Interception is on top of your library (and can draw it in your draw step.) +[state] +humanlife=20 +ailife=28 +turn=1 +activeplayer=ai +activephase=END_OF_TURN +humanhand=Deadly Alliance;Burn the Accursed;Explosive Welcome;Defenestrate;Unexpected Windfall +humanlibrary=Mascot Interception;Deadly Alliance;Burn the Accursed;Explosive Welcome;Defenestrate;Unexpected Windfall;Gisa, Glorious Resurrector;Birgi, God of Storytelling;Varragoth, Bloodsky Sire;Mountain;Mountain;Mountain;Swamp;Swamp;Swamp +humanbattlefield=Gisa, Glorious Resurrector;Birgi, God of Storytelling;Varragoth, Bloodsky Sire;Mountain;Mountain;Mountain;Swamp;Swamp;Swamp +aibattlefield=Biblioplex Assistant;Smoldering Egg|Transformed;Rem Karolus, Stalwart Slayer;Doomskar Titan diff --git a/forge-gui/res/tokenscripts/b_1_1_slug.txt b/forge-gui/res/tokenscripts/b_1_1_slug.txt new file mode 100644 index 00000000000..151da6be975 --- /dev/null +++ b/forge-gui/res/tokenscripts/b_1_1_slug.txt @@ -0,0 +1,6 @@ +Name:Slug +ManaCost:no cost +Types:Creature Slug +Colors:black +PT:1/1 +Oracle: diff --git a/forge-gui/res/tokenscripts/r_3_2_wolf.txt b/forge-gui/res/tokenscripts/r_3_2_wolf.txt new file mode 100644 index 00000000000..16d03d46c73 --- /dev/null +++ b/forge-gui/res/tokenscripts/r_3_2_wolf.txt @@ -0,0 +1,6 @@ +Name:Wolf +ManaCost:no cost +PT:3/2 +Colors:red +Types:Creature Wolf +Oracle: diff --git a/forge-gui/src/main/java/forge/gui/card/CardScriptParser.java b/forge-gui/src/main/java/forge/gui/card/CardScriptParser.java index 4c148d3fa7e..f374adc7930 100644 --- a/forge-gui/src/main/java/forge/gui/card/CardScriptParser.java +++ b/forge-gui/src/main/java/forge/gui/card/CardScriptParser.java @@ -451,7 +451,7 @@ public final class CardScriptParser { "ControllerControls", "AttachedTo", "EnchantedBy", "NotEnchantedBy", "TopGraveyard", "SharesColorWith", "MostProminentColor", "notSharesColorWith", - "sharesCreatureTypeWith", "sharesCardTypeWith", + "sharesCreatureTypeWith", "sharesCardTypeWith", "sharesLandTypeWith", "sharesNameWith", "doesNotShareNameWith", "sharesControllerWith", "sharesOwnerWith", "ThisTurnEntered", "ControlledByPlayerInTheDirection", diff --git a/forge-gui/src/main/java/forge/gui/download/GuiDownloadService.java b/forge-gui/src/main/java/forge/gui/download/GuiDownloadService.java index bf758acf2c1..e5b6bc050dd 100644 --- a/forge-gui/src/main/java/forge/gui/download/GuiDownloadService.java +++ b/forge-gui/src/main/java/forge/gui/download/GuiDownloadService.java @@ -63,12 +63,14 @@ public abstract class GuiDownloadService implements Runnable { private IButton btnStart; private UiCommand cmdClose; private Runnable onUpdate; + private boolean clearImageCache = false; private final UiCommand cmdStartDownload = new UiCommand() { @Override public void run() { //invalidate image cache so newly downloaded images will be loaded - GuiBase.getInterface().clearImageCache(); + if (clearImageCache) + GuiBase.getInterface().clearImageCache(); FThreads.invokeInBackgroundThread(GuiDownloadService.this); btnStart.setEnabled(false); } @@ -95,6 +97,7 @@ public abstract class GuiDownloadService implements Runnable { btnStart = btnStart0; cmdClose = cmdClose0; onUpdate = onUpdate0; + clearImageCache = txtAddress0.getText().contains(".jpg") || txtAddress0.getText().contains(".png"); String startOverrideDesc = getStartOverrideDesc(); if (startOverrideDesc == null) { diff --git a/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java b/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java index 792074b7a8d..2a28fff5b83 100644 --- a/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java +++ b/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java @@ -283,6 +283,8 @@ public final class ForgeConstants { public static final String DB_DIR = CACHE_DIR + "db" + PATH_SEPARATOR; public static final String FONTS_DIR = CACHE_DIR + "fonts" + PATH_SEPARATOR; public static final String CACHE_SKINS_DIR = CACHE_DIR + "skins" + PATH_SEPARATOR; + public static final String CACHE_SOUND_DIR = CACHE_DIR + "sound" + PATH_SEPARATOR; + public static final String CACHE_MUSIC_DIR = CACHE_DIR + "music" + PATH_SEPARATOR; public static final String CACHE_TOKEN_PICS_DIR = PICS_DIR + "tokens" + PATH_SEPARATOR; public static final String CACHE_ICON_PICS_DIR = PICS_DIR + "icons" + PATH_SEPARATOR; public static final String CACHE_SYMBOLS_DIR = PICS_DIR + "symbols" + PATH_SEPARATOR; diff --git a/forge-gui/src/main/java/forge/localinstance/properties/ForgePreferences.java b/forge-gui/src/main/java/forge/localinstance/properties/ForgePreferences.java index 24def10e2a2..beb4cb86770 100644 --- a/forge-gui/src/main/java/forge/localinstance/properties/ForgePreferences.java +++ b/forge-gui/src/main/java/forge/localinstance/properties/ForgePreferences.java @@ -121,6 +121,8 @@ public class ForgePreferences extends PreferencesStore { UI_VOL_SOUNDS ("100"), UI_VOL_MUSIC ("100"), UI_ALT_SOUND_SYSTEM ("false"), + UI_CURRENT_SOUND_SET("Default"), + UI_CURRENT_MUSIC_SET("Default"), UI_CURRENT_AI_PROFILE ("Default"), UI_CLONE_MODE_SOURCE ("false"), UI_MATCH_IMAGE_VISIBLE ("true"), diff --git a/forge-gui/src/main/java/forge/player/HumanPlay.java b/forge-gui/src/main/java/forge/player/HumanPlay.java index 3e537f4b2aa..8279014a25b 100644 --- a/forge-gui/src/main/java/forge/player/HumanPlay.java +++ b/forge-gui/src/main/java/forge/player/HumanPlay.java @@ -585,7 +585,7 @@ public class HumanPlay { return false; } - ((CostDiscard)part).payAsDecided(p, (PaymentDecision.card(Aggregates.random(p.getCardsIn(ZoneType.Hand), amount, new CardCollection()))), sourceAbility); + ((CostDiscard)part).payAsDecided(p, PaymentDecision.card(Aggregates.random(p.getCardsIn(ZoneType.Hand), amount, new CardCollection())), sourceAbility); } else { CardCollectionView list = CardLists.getValidCards(p.getCardsIn(ZoneType.Hand), part.getType(), p, source, sourceAbility); boolean hasPaid = payCostPart(controller, p, sourceAbility, (CostPartWithList)part, amount, list, Localizer.getInstance().getMessage("lbldiscard") + orString); diff --git a/forge-gui/src/main/java/forge/sound/EventVisualizer.java b/forge-gui/src/main/java/forge/sound/EventVisualizer.java index 884a8871127..0f41ff1f5a0 100644 --- a/forge-gui/src/main/java/forge/sound/EventVisualizer.java +++ b/forge-gui/src/main/java/forge/sound/EventVisualizer.java @@ -39,7 +39,6 @@ import forge.gui.events.IUiEventVisitor; import forge.gui.events.UiEventAttackerDeclared; import forge.gui.events.UiEventBlockerAssigned; import forge.gui.events.UiEventNextGameDecision; -import forge.localinstance.properties.ForgeConstants; import forge.util.TextUtil; import forge.util.maps.MapOfLists; @@ -331,7 +330,7 @@ public class EventVisualizer extends IGameEventVisitor.Base imp } // Only proceed if the file actually exists - return new File(ForgeConstants.SOUND_DIR, effect).exists(); + return new File(SoundSystem.instance.getSoundDirectory(), effect).exists(); } diff --git a/forge-gui/src/main/java/forge/sound/MusicPlaylist.java b/forge-gui/src/main/java/forge/sound/MusicPlaylist.java index dd22d4cf8ab..48cf6f958ca 100644 --- a/forge-gui/src/main/java/forge/sound/MusicPlaylist.java +++ b/forge-gui/src/main/java/forge/sound/MusicPlaylist.java @@ -3,7 +3,6 @@ package forge.sound; import java.io.File; import java.io.FilenameFilter; -import forge.localinstance.properties.ForgeConstants; import forge.util.MyRandom; public enum MusicPlaylist { @@ -13,13 +12,18 @@ public enum MusicPlaylist { private final String subDir; private int mostRecentTrackIdx = -1; private String[] filenames; + private static boolean isInvalidated = false; MusicPlaylist(String subDir0) { subDir = subDir0; } + public static void invalidateMusicPlaylist() { + isInvalidated = true; + } + public String getRandomFilename() { - if (filenames == null) { + if (filenames == null || isInvalidated) { try { FilenameFilter filter = new FilenameFilter(){ @Override @@ -27,13 +31,14 @@ public enum MusicPlaylist { return name.endsWith(".mp3") || name.endsWith(".wav") || name.endsWith(".m4a"); } }; - filenames = new File(ForgeConstants.MUSIC_DIR + subDir).list(filter); + filenames = new File(SoundSystem.instance.getMusicDirectory() + subDir).list(filter); if (filenames == null) filenames = new String[0]; } catch (Exception e) { e.printStackTrace(); filenames = new String[0]; } + isInvalidated = false; } if (filenames.length == 0) { return null; } @@ -50,6 +55,6 @@ public enum MusicPlaylist { mostRecentTrackIdx = newIndex; } - return ForgeConstants.MUSIC_DIR + subDir + filenames[mostRecentTrackIdx]; + return SoundSystem.instance.getMusicDirectory() + subDir + filenames[mostRecentTrackIdx]; } } diff --git a/forge-gui/src/main/java/forge/sound/SoundSystem.java b/forge-gui/src/main/java/forge/sound/SoundSystem.java index d1dcab487c0..2087daa34fa 100644 --- a/forge-gui/src/main/java/forge/sound/SoundSystem.java +++ b/forge-gui/src/main/java/forge/sound/SoundSystem.java @@ -1,19 +1,18 @@ package forge.sound; -import java.util.EnumMap; -import java.util.HashMap; -import java.util.Map; - import com.google.common.eventbus.Subscribe; - import forge.game.event.GameEvent; import forge.gui.GuiBase; import forge.gui.events.UiEvent; import forge.localinstance.properties.ForgeConstants; +import forge.localinstance.properties.ForgePreferences; import forge.localinstance.properties.ForgePreferences.FPref; import forge.model.FModel; import forge.player.GamePlayerUtil; +import java.io.File; +import java.util.*; + /** * Manages playback of all sounds for the client. */ @@ -108,7 +107,7 @@ public class SoundSystem { */ public void play(final String resourceFileName, final boolean isSynchronized) { if (isUsingAltSystem()) { - GuiBase.getInterface().startAltSoundSystem(ForgeConstants.SOUND_DIR + resourceFileName, isSynchronized); + GuiBase.getInterface().startAltSoundSystem(getSoundDirectory() + resourceFileName, isSynchronized); } else { final IAudioClip snd = fetchResource(resourceFileName); @@ -123,7 +122,7 @@ public class SoundSystem { */ public void play(final SoundEffectType type, final boolean isSynchronized) { if (isUsingAltSystem()) { - GuiBase.getInterface().startAltSoundSystem(ForgeConstants.SOUND_DIR + type.getResourceFileName(), isSynchronized); + GuiBase.getInterface().startAltSoundSystem(getSoundDirectory() + type.getResourceFileName(), isSynchronized); } else { final IAudioClip snd = fetchResource(type); if (!isSynchronized || snd.isDone()) { @@ -245,4 +244,81 @@ public class SoundSystem { currentTrack = null; } } + + public String[] getAvailableSoundSets() + { + final List availableSets = new ArrayList<>(); + + final File dir = new File(ForgeConstants.CACHE_SOUND_DIR); + if (dir != null && dir.exists()) { + final String[] files = dir.list(); + for (String fileName : files) { + String fullPath = ForgeConstants.CACHE_SOUND_DIR + fileName; + if (!fileName.equals("Default") && new File(fullPath).isDirectory()) { + availableSets.add(fileName); + } + } + } + + Collections.sort(availableSets); + availableSets.add(0, "Default"); + + if (availableSets.size() == 1 || !availableSets.contains(FModel.getPreferences().getPref(FPref.UI_CURRENT_SOUND_SET))) { + // Default profile only or the current set is no longer available - revert the preference setting to default + FModel.getPreferences().setPref(FPref.UI_CURRENT_SOUND_SET, "Default"); + invalidateSoundCache(); + } + + return availableSets.toArray(new String[availableSets.size()]); + } + + public String getSoundDirectory() { + String profileName = FModel.getPreferences().getPref(FPref.UI_CURRENT_SOUND_SET); + if (profileName.equals("Default")) { + return ForgeConstants.SOUND_DIR; + } else { + return ForgeConstants.CACHE_SOUND_DIR + profileName + ForgeConstants.PATH_SEPARATOR; + } + } + + public void invalidateSoundCache() { + loadedClips.clear(); + loadedScriptClips.clear(); + } + + public String getMusicDirectory() { + String profileName = FModel.getPreferences().getPref(ForgePreferences.FPref.UI_CURRENT_MUSIC_SET); + if (profileName.equals("Default")) { + return ForgeConstants.MUSIC_DIR; + } else { + return ForgeConstants.CACHE_MUSIC_DIR + profileName + ForgeConstants.PATH_SEPARATOR; + } + } + + public static String[] getAvailableMusicSets() + { + final List availableSets = new ArrayList<>(); + + final File dir = new File(ForgeConstants.CACHE_MUSIC_DIR); + if (dir != null && dir.exists()) { + final String[] files = dir.list(); + for (String fileName : files) { + String fullPath = ForgeConstants.CACHE_MUSIC_DIR + fileName; + if (!fileName.equals("Default") && new File(fullPath).isDirectory()) { + availableSets.add(fileName); + } + } + } + + Collections.sort(availableSets); + availableSets.add(0, "Default"); + + if (availableSets.size() == 1 || !availableSets.contains(FModel.getPreferences().getPref(FPref.UI_CURRENT_MUSIC_SET))) { + // Default profile only or the current set is no longer available - revert the preference setting to default + FModel.getPreferences().setPref(FPref.UI_CURRENT_MUSIC_SET, "Default"); + MusicPlaylist.invalidateMusicPlaylist(); + } + + return availableSets.toArray(new String[availableSets.size()]); + } }