diff --git a/forge-adventure/src/main/java/forge/adventure/editor/EditorMainWindow.java b/forge-adventure/src/main/java/forge/adventure/editor/EditorMainWindow.java index 229ba565f8b..50f0d877cc9 100644 --- a/forge-adventure/src/main/java/forge/adventure/editor/EditorMainWindow.java +++ b/forge-adventure/src/main/java/forge/adventure/editor/EditorMainWindow.java @@ -14,6 +14,9 @@ public class EditorMainWindow extends JFrame { BorderLayout layout=new BorderLayout(); setLayout(layout); add(tabs); + tabs.addTab("POI",new PointOfInterestEditor()); + tabs.addTab("World",new WorldEditor()); + tabs.addTab("Items",new ItemsEditor()); tabs.addTab("Enemies",new EnemyEditor()); setVisible(true); setSize(800,600); diff --git a/forge-adventure/src/main/java/forge/adventure/editor/EffectEditor.java b/forge-adventure/src/main/java/forge/adventure/editor/EffectEditor.java new file mode 100644 index 00000000000..1cfd9e90fba --- /dev/null +++ b/forge-adventure/src/main/java/forge/adventure/editor/EffectEditor.java @@ -0,0 +1,115 @@ +package forge.adventure.editor; + +import forge.adventure.data.EffectData; + +import javax.swing.*; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; +import java.awt.*; + +public class EffectEditor extends JComponent { + EffectData currentData; + + + JTextField name =new JTextField(); + JSpinner changeStartCards = new JSpinner(new SpinnerNumberModel(0, 0, 1000, 1)); + JSpinner lifeModifier = new JSpinner(new SpinnerNumberModel(0, 0, 1000, 1)); + JSpinner moveSpeed = new JSpinner(new SpinnerNumberModel(0f, 0, 1, 0.1f)); + TextListEdit startBattleWithCard =new TextListEdit(); + JCheckBox colorView =new JCheckBox(); + EffectEditor opponent = null; + private boolean updating=false; + + public EffectEditor(boolean isOpponentEffect) + { + if(!isOpponentEffect) + opponent=new EffectEditor(true); + setLayout(new BoxLayout(this,BoxLayout.Y_AXIS)); + JPanel parameters=new JPanel(); + parameters.setBorder(BorderFactory.createTitledBorder("Effect")); + parameters.setLayout(new GridLayout(7,2)) ; + + parameters.add(new JLabel("Name:")); parameters.add(name); + parameters.add(new JLabel("Start with extra cards:")); parameters.add(changeStartCards); + parameters.add(new JLabel("Change life:")); parameters.add(lifeModifier); + parameters.add(new JLabel("Movement speed:")); parameters.add(moveSpeed); + parameters.add(new JLabel("Start battle with cards:")); parameters.add(startBattleWithCard); + parameters.add(new JLabel("color view:")); parameters.add(colorView); + add(parameters); + if(!isOpponentEffect) + { add(new JLabel("Opponent:")); add(opponent);} + + + changeStartCards.addChangeListener(e -> EffectEditor.this.updateEffect()); + lifeModifier.addChangeListener(e -> EffectEditor.this.updateEffect()); + moveSpeed.addChangeListener(e -> EffectEditor.this.updateEffect()); + colorView.addChangeListener(e -> EffectEditor.this.updateEffect()); + name.getDocument().addDocumentListener(new DocumentChangeListener(() -> EffectEditor.this.updateEffect())); + startBattleWithCard.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(() -> EffectEditor.this.updateEffect())); + if(opponent!=null) + + opponent.addChangeListener(e -> EffectEditor.this.updateEffect()); + + } + + private void updateEffect() { + if(currentData==null||updating) + return; + + + + currentData.name=name.getText(); + currentData.changeStartCards=((Integer)changeStartCards.getValue()).intValue(); + currentData.lifeModifier= ((Integer)lifeModifier.getValue()).intValue(); + currentData.moveSpeed= ((Float)moveSpeed.getValue()).floatValue(); + currentData.startBattleWithCard = startBattleWithCard.getList(); + currentData.colorView = colorView.isSelected(); + currentData.opponent = opponent.currentData; + + ChangeListener[] listeners = listenerList.getListeners(ChangeListener.class); + if (listeners != null && listeners.length > 0) { + ChangeEvent evt = new ChangeEvent(this); + for (ChangeListener listener : listeners) { + listener.stateChanged(evt); + } + } + + } + public void addChangeListener(ChangeListener l) { + listenerList.add(ChangeListener.class, l); + } + public void setCurrentEffect(EffectData data) + { + if(data==null) + return; + currentData=data; + refresh(); + } + public EffectData getCurrentEffect() + { + return currentData; + } + + private void refresh() { + setEnabled(currentData!=null); + if(currentData==null) + { + return; + } + updating=true; + name.setText(currentData.name); + + + + lifeModifier.setValue(currentData.lifeModifier); + changeStartCards.setValue(currentData.changeStartCards); + startBattleWithCard.setText(currentData.startBattleWithCard); + colorView.setSelected(currentData.colorView); + moveSpeed.setValue(currentData.moveSpeed); + if(opponent!=null) + opponent.setCurrentEffect(currentData.opponent); + + + updating=false; + } +} diff --git a/forge-adventure/src/main/java/forge/adventure/editor/EnemyEdit.java b/forge-adventure/src/main/java/forge/adventure/editor/EnemyEdit.java index 8e3511063fc..399d7c88334 100644 --- a/forge-adventure/src/main/java/forge/adventure/editor/EnemyEdit.java +++ b/forge-adventure/src/main/java/forge/adventure/editor/EnemyEdit.java @@ -3,8 +3,6 @@ package forge.adventure.editor; import forge.adventure.data.EnemyData; import javax.swing.*; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; import java.awt.*; /** @@ -15,6 +13,7 @@ public class EnemyEdit extends JComponent { JTextField nameField=new JTextField(); + JTextField colorField=new JTextField(); JSpinner lifeFiled= new JSpinner(new SpinnerNumberModel(0, 0, 1000, 1)); JSpinner spawnRate= new JSpinner(new SpinnerNumberModel(0.0, 0., 1, 0.1)); JSpinner difficulty= new JSpinner(new SpinnerNumberModel(0.0, 0., 1, 0.1)); @@ -30,7 +29,7 @@ public class EnemyEdit extends JComponent { { JComponent center=new JComponent() { }; - center.setLayout(new GridLayout(8,2)); + center.setLayout(new GridLayout(9,2)); center.add(new JLabel("Name:")); center.add(nameField); center.add(new JLabel("Life:")); center.add(lifeFiled); @@ -40,72 +39,24 @@ public class EnemyEdit extends JComponent { center.add(new JLabel("Deck:")); center.add(deck); center.add(new JLabel("Sprite:")); center.add(atlas); center.add(new JLabel("Equipment:")); center.add(equipment); + center.add(new JLabel("Colors:")); center.add(colorField); BorderLayout layout=new BorderLayout(); setLayout(layout); add(center,BorderLayout.PAGE_START); add(rewards,BorderLayout.CENTER); add(preview,BorderLayout.LINE_START); - equipment.getDocument().addDocumentListener(new DocumentChangeListener(new Runnable() { - @Override - public void run() { - EnemyEdit.this.updateEnemy(); - } - })); - atlas.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(new Runnable() { - @Override - public void run() { - EnemyEdit.this.updateEnemy(); - } - })); - nameField.getDocument().addDocumentListener(new DocumentChangeListener(new Runnable() { - @Override - public void run() { - EnemyEdit.this.updateEnemy(); - } - })); - deck.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(new Runnable() { - @Override - public void run() { - EnemyEdit.this.updateEnemy(); - } - })); - lifeFiled.addChangeListener(new ChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - EnemyEdit.this.updateEnemy(); - } - }); - speed.addChangeListener(new ChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - EnemyEdit.this.updateEnemy(); - } - }); - difficulty.addChangeListener(new ChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - EnemyEdit.this.updateEnemy(); - } - }); - spawnRate.addChangeListener(new ChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - EnemyEdit.this.updateEnemy(); - } - }); - rewards.addChangeListener(new ChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - EnemyEdit.this.updateEnemy(); - } - }); - lifeFiled.addChangeListener(new ChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - EnemyEdit.this.updateEnemy(); - } - }); + equipment.getDocument().addDocumentListener(new DocumentChangeListener(() -> EnemyEdit.this.updateEnemy())); + atlas.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(() -> EnemyEdit.this.updateEnemy())); + colorField.getDocument().addDocumentListener(new DocumentChangeListener(() -> EnemyEdit.this.updateEnemy())); + nameField.getDocument().addDocumentListener(new DocumentChangeListener(() -> EnemyEdit.this.updateEnemy())); + deck.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(() -> EnemyEdit.this.updateEnemy())); + lifeFiled.addChangeListener(e -> EnemyEdit.this.updateEnemy()); + speed.addChangeListener(e -> EnemyEdit.this.updateEnemy()); + difficulty.addChangeListener(e -> EnemyEdit.this.updateEnemy()); + spawnRate.addChangeListener(e -> EnemyEdit.this.updateEnemy()); + rewards.addChangeListener(e -> EnemyEdit.this.updateEnemy()); + lifeFiled.addChangeListener(e -> EnemyEdit.this.updateEnemy()); refresh(); } @@ -113,6 +64,7 @@ public class EnemyEdit extends JComponent { if(currentData==null||updating) return; currentData.name=nameField.getText(); + currentData.colors=colorField.getText(); currentData.life= (int) lifeFiled.getValue(); currentData.sprite= atlas.getEdit().getText(); if(equipment.getText().isEmpty()) @@ -141,6 +93,7 @@ public class EnemyEdit extends JComponent { } updating=true; nameField.setText(currentData.name); + colorField.setText(currentData.colors); lifeFiled.setValue(currentData.life); atlas.getEdit().setText(currentData.sprite); if(currentData.equipment!=null) diff --git a/forge-adventure/src/main/java/forge/adventure/editor/ItemEdit.java b/forge-adventure/src/main/java/forge/adventure/editor/ItemEdit.java new file mode 100644 index 00000000000..248bd275914 --- /dev/null +++ b/forge-adventure/src/main/java/forge/adventure/editor/ItemEdit.java @@ -0,0 +1,88 @@ +package forge.adventure.editor; + +import forge.adventure.data.ItemData; + +import javax.swing.*; +import java.awt.*; + +/** + * Editor class to edit configuration, maybe moved or removed + */ +public class ItemEdit extends JComponent { + ItemData currentData; + + + JTextField nameField=new JTextField(); + JTextField equipmentSlot=new JTextField(); + JTextField iconName=new JTextField(); + EffectEditor effect=new EffectEditor(false); + JTextField description=new JTextField(); + JCheckBox questItem=new JCheckBox(); + JSpinner cost= new JSpinner(new SpinnerNumberModel(0, 0, 100000, 1)); + + private boolean updating=false; + + public ItemEdit() + { + + setLayout(new BoxLayout(this,BoxLayout.Y_AXIS)); + JPanel parameters=new JPanel(); + parameters.setBorder(BorderFactory.createTitledBorder("Parameter")); + parameters.setLayout(new GridLayout(6,2)) ; + + parameters.add(new JLabel("Name:")); parameters.add(nameField); + parameters.add(new JLabel("equipmentSlot:")); parameters.add(equipmentSlot); + parameters.add(new JLabel("description:")); parameters.add(description); + parameters.add(new JLabel("iconName")); parameters.add(iconName); + parameters.add(new JLabel("questItem")); parameters.add(questItem); + parameters.add(new JLabel("cost")); parameters.add(cost); + + add(parameters); + add(effect); + + nameField.getDocument().addDocumentListener(new DocumentChangeListener(() -> ItemEdit.this.updateItem())); + equipmentSlot.getDocument().addDocumentListener(new DocumentChangeListener(() -> ItemEdit.this.updateItem())); + description.getDocument().addDocumentListener(new DocumentChangeListener(() -> ItemEdit.this.updateItem())); + iconName.getDocument().addDocumentListener(new DocumentChangeListener(() -> ItemEdit.this.updateItem())); + cost.addChangeListener(e -> ItemEdit.this.updateItem()); + questItem.addChangeListener(e -> ItemEdit.this.updateItem()); + effect.addChangeListener(e -> ItemEdit.this.updateItem()); + refresh(); + } + + private void updateItem() { + if(currentData==null||updating) + return; + currentData.name=nameField.getText(); + currentData.equipmentSlot= equipmentSlot.getText(); + currentData.effect= effect.getCurrentEffect(); + currentData.description=description.getText(); + currentData.iconName=iconName.getText(); + currentData.questItem=questItem.isSelected(); + currentData.cost=((Integer) cost.getValue()).intValue(); + } + + public void setCurrentItem(ItemData data) + { + currentData=data; + refresh(); + } + + private void refresh() { + setEnabled(currentData!=null); + if(currentData==null) + { + return; + } + updating=true; + nameField.setText(currentData.name); + effect.setCurrentEffect(currentData.effect); + equipmentSlot.setText(currentData.equipmentSlot); + description.setText(currentData.description); + iconName.setText(currentData.iconName); + questItem.setSelected(currentData.questItem); + cost.setValue(currentData.cost); + + updating=false; + } +} \ No newline at end of file diff --git a/forge-adventure/src/main/java/forge/adventure/editor/ItemsEditor.java b/forge-adventure/src/main/java/forge/adventure/editor/ItemsEditor.java new file mode 100644 index 00000000000..5df2128006a --- /dev/null +++ b/forge-adventure/src/main/java/forge/adventure/editor/ItemsEditor.java @@ -0,0 +1,128 @@ +package forge.adventure.editor; + +import com.badlogic.gdx.files.FileHandle; +import com.badlogic.gdx.utils.Array; +import com.badlogic.gdx.utils.Json; +import com.badlogic.gdx.utils.JsonWriter; +import forge.adventure.data.ItemData; +import forge.adventure.util.Config; +import forge.adventure.util.Paths; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionListener; + +public class ItemsEditor extends JComponent { + DefaultListModel model = new DefaultListModel<>(); + JList list = new JList<>(model); + JToolBar toolBar = new JToolBar("toolbar"); + ItemEdit edit=new ItemEdit(); + static SwingAtlas itemAtlas; + + + + public class ItemDataRenderer extends DefaultListCellRenderer { + @Override + public Component getListCellRendererComponent( + JList list, Object value, int index, + boolean isSelected, boolean cellHasFocus) { + JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); + if(!(value instanceof ItemData)) + return label; + ItemData Item=(ItemData) value; + // Get the renderer component from parent class + + label.setText(Item.name); + if(itemAtlas==null) + itemAtlas=new SwingAtlas(Config.instance().getFile(Paths.ITEMS_ATLAS)); + + if(itemAtlas.has(Item.iconName)) + label.setIcon(itemAtlas.get(Item.iconName)); + else + { + ImageIcon img=itemAtlas.getAny(); + if(img!=null) + label.setIcon(img); + } + return label; + } + } + public void addButton(String name, ActionListener action) + { + JButton newButton=new JButton(name); + newButton.addActionListener(action); + toolBar.add(newButton); + + } + public ItemsEditor() + { + + list.setCellRenderer(new ItemsEditor.ItemDataRenderer()); + list.addListSelectionListener(e -> ItemsEditor.this.updateEdit()); + addButton("add", e -> ItemsEditor.this.addItem()); + addButton("remove", e -> ItemsEditor.this.remove()); + addButton("copy", e -> ItemsEditor.this.copy()); + addButton("load", e -> ItemsEditor.this.load()); + addButton("save", e -> ItemsEditor.this.save()); + BorderLayout layout=new BorderLayout(); + setLayout(layout); + add(new JScrollPane(list), BorderLayout.LINE_START); + add(toolBar, BorderLayout.PAGE_START); + add(edit,BorderLayout.CENTER); + load(); + } + private void copy() { + + int selected=list.getSelectedIndex(); + if(selected<0) + return; + ItemData data=new ItemData(model.get(selected)); + model.add(model.size(),data); + } + private void updateEdit() { + + int selected=list.getSelectedIndex(); + if(selected<0) + return; + edit.setCurrentItem(model.get(selected)); + } + + void save() + { + Array allEnemies=new Array<>(); + for(int i=0;i allEnemies=new Array<>(); + Json json = new Json(); + FileHandle handle = Config.instance().getFile(Paths.ITEMS); + if (handle.exists()) + { + Array readEnemies=json.fromJson(Array.class, ItemData.class, handle); + allEnemies = readEnemies; + } + for (int i=0;i startBattleWithCards() { Array startCards=new Array<>(); if(startBattleWithCard != null) { diff --git a/forge-gui-mobile/src/forge/adventure/data/ItemData.java b/forge-gui-mobile/src/forge/adventure/data/ItemData.java index 5f980addb62..82fb69a38d7 100644 --- a/forge-gui-mobile/src/forge/adventure/data/ItemData.java +++ b/forge-gui-mobile/src/forge/adventure/data/ItemData.java @@ -23,6 +23,20 @@ public class ItemData { public String iconName; public boolean questItem=false; public int cost=1000; + public ItemData() + { + + } + public ItemData(ItemData cpy) + { + name = cpy.name ; + equipmentSlot = cpy.equipmentSlot; + effect = new EffectData(cpy.effect); + description = cpy.description ; + iconName = cpy.iconName ; + questItem = cpy.questItem ; + cost = cpy.cost ; + } public Sprite sprite() { @@ -67,4 +81,5 @@ public class ItemData { result += effect.getDescription(); return result; } + } diff --git a/forge-gui/res/adventure/Shandalar/world/enemies.json b/forge-gui/res/adventure/Shandalar/world/enemies.json index d89d087227d..409c679b24a 100644 --- a/forge-gui/res/adventure/Shandalar/world/enemies.json +++ b/forge-gui/res/adventure/Shandalar/world/enemies.json @@ -2,7 +2,7 @@ { "name": "Adventurer", "sprite": "sprites/swordsman_3.atlas", - "deck": "decks/adventurer.dck", "colors": "UW", + "deck": "decks/adventurer.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 25, @@ -20,12 +20,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "UW" }, { "name": "Amonkhet Minotaur", "sprite": "sprites/warden.atlas", - "deck": "decks/amonkhet_minotaur.dck", "colors": "BR", + "deck": "decks/amonkhet_minotaur.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 25, @@ -43,11 +44,12 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "BR" }, { "name": "Ape", - "sprite": "sprites/behemoth.atlas", "colors": "GR", + "sprite": "sprites/behemoth.atlas", "deck": "decks/ape.json", "spawnRate": 0.2, "difficulty": 0.1, @@ -66,12 +68,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "GR" }, { "name": "Archer", "sprite": "sprites/archer_2.atlas", - "deck": "decks/human_archer.dck", "colors": "GW", + "deck": "decks/human_archer.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 25, @@ -89,12 +92,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "GW" }, { "name": "Ashmouth Devil", "sprite": "sprites/devil.atlas", - "deck": "decks/ashmouth_devil.dck", "colors": "BR", + "deck": "decks/ashmouth_devil.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 31, @@ -112,12 +116,13 @@ "count": 13, "addMaxCount": 87 } - ] + ], + "colors": "BR" }, { "name": "Axgard Dwarf", "sprite": "sprites/dwarf_8.atlas", - "deck": "decks/axgard_dwarf.dck", "colors": "RW", + "deck": "decks/axgard_dwarf.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 22, @@ -135,11 +140,12 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "RW" }, { "name": "Bandit", - "sprite": "sprites/dwarf_7.atlas", "colors": "BR", + "sprite": "sprites/dwarf_7.atlas", "deck": "decks/bandit.dck", "spawnRate": 0.2, "difficulty": 0.1, @@ -158,11 +164,12 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "BR" }, { "name": "Bear", - "sprite": "sprites/bear.atlas", "colors": "G", + "sprite": "sprites/bear.atlas", "deck": "decks/bear.json", "spawnRate": 0.2, "difficulty": 0.1, @@ -181,12 +188,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "G" }, { "name": "Beholder", "sprite": "sprites/beholder.atlas", - "deck": "decks/beholder.dck", "colors": "BRU", + "deck": "decks/beholder.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 31, @@ -204,12 +212,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "BRU" }, { "name": "Berserker", "sprite": "sprites/dwarf_5.atlas", - "deck": "decks/berserker.json", "colors": "BGR", + "deck": "decks/berserker.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 22, @@ -227,12 +236,13 @@ "count": 5, "addMaxCount": 95 } - ] + ], + "colors": "BGR" }, { "name": "Big Zombie", "sprite": "sprites/zombie_2.atlas", - "deck": "decks/zombie_bad.json", "colors": "B", + "deck": "decks/zombie_bad.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 15, @@ -261,12 +271,13 @@ "Rare" ] } - ] + ], + "colors": "B" }, { "name": "Bird", "sprite": "sprites/griffin_2.atlas", - "deck": "decks/bird_blue.json", "colors": "U", + "deck": "decks/bird_blue.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 31, @@ -284,12 +295,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "U" }, { "name": "Black Wiz1", "sprite": "sprites/black_wizard.atlas", - "deck": "decks/black_bad.json", "colors": "B", + "deck": "decks/black_bad.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 24, @@ -307,12 +319,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "B" }, { "name": "Black Wiz2", "sprite": "sprites/black_wiz2.atlas", - "deck": "decks/fear.dck", "colors": "B", + "deck": "decks/fear.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 24, @@ -330,12 +343,13 @@ "count": 20, "addMaxCount": 80 } - ] + ], + "colors": "B" }, { "name": "Black Wiz3", "sprite": "sprites/black_wiz3.atlas", - "deck": "decks/black_wiz3.dck", "colors": "B", + "deck": "decks/black_wiz3.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 24, @@ -353,12 +367,13 @@ "count": 20, "addMaxCount": 80 } - ] + ], + "colors": "B" }, { "name": "Blue Wiz1", "sprite": "sprites/mage.atlas", - "deck": "decks/blue_bad.json", "colors": "U", + "deck": "decks/blue_bad.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 31, @@ -376,12 +391,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "U" }, { "name": "Blue Wiz2", "sprite": "sprites/blue_wiz2.atlas", - "deck": "decks/mill.dck", "colors": "U", + "deck": "decks/mill.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 24, @@ -399,12 +415,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "U" }, { "name": "Blue Wiz3", "sprite": "sprites/mage_2.atlas", - "deck": "decks/counter.dck", "colors": "U", + "deck": "decks/counter.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 31, @@ -422,12 +439,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "U" }, { "name": "Boggart", "sprite": "sprites/goblin_2.atlas", - "deck": "decks/eyeblight.dck", "colors": "GR", + "deck": "decks/eyeblight.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 27, @@ -456,12 +474,13 @@ "Rare" ] } - ] + ], + "colors": "GR" }, { "name": "Cat", "sprite": "sprites/lion.atlas", - "deck": "decks/cat.json", "colors": "GW", + "deck": "decks/cat.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 27, @@ -479,12 +498,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "GW" }, { "name": "Cathar", "sprite": "sprites/cathar.atlas", - "deck": "decks/cathar.dck", "colors": "GW", + "deck": "decks/cathar.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 25, @@ -502,12 +522,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "GW" }, { "name": "Centaur", "sprite": "sprites/centaur.atlas", - "deck": "decks/centaur.json", "colors": "GW", + "deck": "decks/centaur.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 30, @@ -525,12 +546,13 @@ "count": 15, "addMaxCount": 85 } - ] + ], + "colors": "GW" }, { "name": "Centaur Warrior", "sprite": "sprites/centaur_2.atlas", - "deck": "decks/centaur_warrior.dck", "colors": "GW", + "deck": "decks/centaur_warrior.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 30, @@ -548,12 +570,13 @@ "count": 15, "addMaxCount": 85 } - ] + ], + "colors": "GW" }, { "name": "ClayGolem", "sprite": "sprites/golem_2.atlas", - "deck": "decks/golem_good.json", "colors": "W", + "deck": "decks/golem_good.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 19, @@ -580,12 +603,13 @@ ], "colorType": "Colorless" } - ] + ], + "colors": "W" }, { "name": "Cleric", "sprite": "sprites/cleric.atlas", - "deck": "decks/cleric.json", "colors": "W", + "deck": "decks/cleric.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 24, @@ -603,12 +627,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "W" }, { "name": "Construct", "sprite": "sprites/golem_3.atlas", - "deck": "decks/artificer.dck", "colors": "RU", + "deck": "decks/artificer.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 21, @@ -626,12 +651,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "RU" }, { "name": "Cyclops", "sprite": "sprites/cyclops.atlas", - "deck": "decks/cyclops.dck", "colors": "R", + "deck": "decks/cyclops.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 16, @@ -649,12 +675,13 @@ "count": 15, "addMaxCount": 85 } - ] + ], + "colors": "R" }, { "name": "Dark Knight", "sprite": "sprites/death_knight.atlas", - "deck": "decks/death_knight.json", "colors": "B", + "deck": "decks/death_knight.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 30, @@ -672,12 +699,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "B" }, { "name": "Dawnhart Witch", "sprite": "sprites/dawnhart_witch.atlas", - "deck": "decks/dawnhart_witch.dck", "colors": "GW", + "deck": "decks/dawnhart_witch.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 24, @@ -695,12 +723,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "GW" }, { "name": "Death Knight", "sprite": "sprites/death_knight_2.atlas", - "deck": "decks/death_knight.dck", "colors": "B", + "deck": "decks/death_knight.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 30, @@ -718,12 +747,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "B" }, { "name": "Demon", "sprite": "sprites/demon_3.atlas", - "deck": "decks/demon.json", "colors": "B", + "deck": "decks/demon.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 31, @@ -741,12 +771,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "B" }, { "name": "Devil", "sprite": "sprites/imp.atlas", - "deck": "decks/devil.json", "colors": "R", + "deck": "decks/devil.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 24, @@ -764,12 +795,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "R" }, { "name": "Dino", "sprite": "sprites/ancient.atlas", - "deck": "decks/dinosaurs.json", "colors": "GRW", + "deck": "decks/dinosaurs.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 15, @@ -800,12 +832,13 @@ "Mythic Rare" ] } - ] + ], + "colors": "GRW" }, { "name": "Dinosaur", "sprite": "sprites/ancient_2.atlas", - "deck": "decks/dinosaur_w_r.dck", "colors": "RW", + "deck": "decks/dinosaur_w_r.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 15, @@ -836,12 +869,13 @@ "Mythic Rare" ] } - ] + ], + "colors": "RW" }, { "name": "Djinn", "sprite": "sprites/djinn.atlas", - "deck": "decks/djinn.json", "colors": "RU", + "deck": "decks/djinn.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 32, @@ -859,12 +893,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "RU" }, { "name": "Dragon", "sprite": "sprites/dragon.atlas", - "deck": "decks/dragon.dck", "colors": "R", + "deck": "decks/dragon.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 31, @@ -882,12 +917,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "R" }, { "name": "Dwarf", "sprite": "sprites/dwarf_2.atlas", - "deck": "decks/dwarf.json", "colors": "RW", + "deck": "decks/dwarf.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 22, @@ -905,11 +941,12 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "RW" }, { "name": "Efreet", - "sprite": "sprites/efreet_2.atlas", "colors": "RU", + "sprite": "sprites/efreet_2.atlas", "deck": "decks/efreet.dck", "spawnRate": 0.2, "difficulty": 0.1, @@ -928,12 +965,13 @@ "count": 50, "addMaxCount": 95 } - ] + ], + "colors": "RU" }, { "name": "Eldraine Faerie", "sprite": "sprites/pixie.atlas", - "deck": "decks/eldraine_faerie.dck", "colors": "GU", + "deck": "decks/eldraine_faerie.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 31, @@ -951,12 +989,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "GU" }, { "name": "Eldraine Knight", "sprite": "sprites/paladin_2.atlas", - "deck": "decks/eldraine_knight.dck", "colors": "RW", + "deck": "decks/eldraine_knight.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 30, @@ -974,12 +1013,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "RW" }, { "name": "Eldrazi", "sprite": "sprites/mindelemental.atlas", - "deck": "decks/eldrazi.json", "colors": "BGU", + "deck": "decks/eldrazi.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 15, @@ -997,12 +1037,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "BGU" }, { "name": "Elemental", "sprite": "sprites/crystalelemental.atlas", - "deck": "decks/elemental_blue.json", "colors": "U", + "deck": "decks/elemental_blue.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 31, @@ -1020,12 +1061,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "U" }, { "name": "Elf", "sprite": "sprites/druid.atlas", - "deck": "decks/elf_bad.json", "colors": "G", + "deck": "decks/elf_bad.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 24, @@ -1054,12 +1096,13 @@ "Rare" ] } - ] + ], + "colors": "G" }, { "name": "Elf warrior", "sprite": "sprites/hunter.atlas", - "deck": "decks/elf_mid.json", "colors": "G", + "deck": "decks/elf_mid.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 25, @@ -1088,12 +1131,13 @@ "Rare" ] } - ] + ], + "colors": "G" }, { "name": "Elk", "sprite": "sprites/deer_2.atlas", - "deck": "decks/elk.dck", "colors": "G", + "deck": "decks/elk.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 29, @@ -1111,12 +1155,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "G" }, { "name": "Faerie", "sprite": "sprites/pixie_2.atlas", - "deck": "decks/faerie.json", "colors": "BGU", + "deck": "decks/faerie.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 31, @@ -1134,12 +1179,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "BGU" }, { "name": "Fire Elemental", "sprite": "sprites/fireelemental.atlas", - "deck": "decks/fire_elemental.dck", "colors": "R", + "deck": "decks/fire_elemental.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 24, @@ -1157,12 +1203,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "R" }, { "name": "Flame Elemental", "sprite": "sprites/magmaelemental.atlas", - "deck": "decks/flame_elemental.dck", "colors": "R", + "deck": "decks/flame_elemental.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 23, @@ -1180,12 +1227,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "R" }, { "name": "Gargoyle", "sprite": "sprites/gargoyle.atlas", - "deck": "decks/gargoyle.json", "colors": "RUW", + "deck": "decks/gargoyle.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 31, @@ -1203,12 +1251,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "RUW" }, { "name": "Gargoyle 2", "sprite": "sprites/gargoyle_2.atlas", - "deck": "decks/gargoyle.dck", "colors": "W", + "deck": "decks/gargoyle.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 31, @@ -1226,12 +1275,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "W" }, { "name": "Geist", "sprite": "sprites/ghost.atlas", - "deck": "decks/ghost_blue.dck", "colors": "U", + "deck": "decks/ghost_blue.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 32, @@ -1249,12 +1299,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "U" }, { "name": "Ghoul", "sprite": "sprites/ghoul.atlas", - "deck": "decks/ghoul.dck", "colors": "BU", + "deck": "decks/ghoul.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 15, @@ -1272,12 +1323,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "BU" }, { "name": "Ghost", "sprite": "sprites/ghost_2.atlas", - "deck": "decks/ghost.json", "colors": "B", + "deck": "decks/ghost.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 31, @@ -1295,12 +1347,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "B" }, { "name": "Giant Spider", "sprite": "sprites/spider_2.atlas", - "deck": "decks/spider_token.dck", "colors": "G", + "deck": "decks/spider_token.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 23, @@ -1318,12 +1371,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "G" }, { "name": "Goblin", "sprite": "sprites/goblin.atlas", - "deck": "decks/goblin_bad.json", "colors": "R", + "deck": "decks/goblin_bad.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 27, @@ -1360,12 +1414,13 @@ ], "equipment": [ "Battle Standard" - ] + ], + "colors": "R" }, { "name": "Goblin Chief", "sprite": "sprites/wolf_rider_2.atlas", - "deck": "decks/goblin_good.json", "colors": "BR", + "deck": "decks/goblin_good.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 29, @@ -1394,12 +1449,13 @@ "Mythic Rare" ] } - ] + ], + "colors": "BR" }, { "name": "Goblin Warrior", "sprite": "sprites/wolf_rider.atlas", - "deck": "decks/goblin_mid.json", "colors": "R", + "deck": "decks/goblin_mid.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 28, @@ -1428,12 +1484,13 @@ "Rare" ] } - ] + ], + "colors": "R" }, { "name": "Golem", "sprite": "sprites/golem.atlas", - "deck": "decks/golem.json", "colors": "GW", + "deck": "decks/golem.json", "spawnRate": 0.1, "difficulty": 0.1, "speed": 20, @@ -1466,12 +1523,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "GW" }, { "name": "Golem that is Generous", "sprite": "sprites/golem.atlas", - "deck": "decks/golem.json", "colors": "GW", + "deck": "decks/golem.json", "spawnRate": 0.1, "difficulty": 0.1, "speed": 20, @@ -1516,12 +1574,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "GW" }, { "name": "Gorgon", "sprite": "sprites/gorgone.atlas", - "deck": "decks/gorgon.dck", "colors": "BG", + "deck": "decks/gorgon.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 25, @@ -1539,12 +1598,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "BG" }, { "name": "Gorgon 2", "sprite": "sprites/gorgonen.atlas", - "deck": "decks/gorgon_2.dck", "colors": "BG", + "deck": "decks/gorgon_2.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 25, @@ -1562,12 +1622,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "BG" }, { "name": "Green Beast", "sprite": "sprites/basilisk.atlas", - "deck": "decks/beast_green.json", "colors": "G", + "deck": "decks/beast_green.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 22, @@ -1585,12 +1646,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "G" }, { "name": "Green Wiz1", "sprite": "sprites/green_wiz1.atlas", - "deck": "decks/green_bad.json", "colors": "G", + "deck": "decks/green_bad.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 24, @@ -1608,12 +1670,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "G" }, { "name": "Green Wiz2", "sprite": "sprites/green_wiz2.atlas", - "deck": "decks/trample.dck", "colors": "G", + "deck": "decks/trample.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 24, @@ -1631,12 +1694,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "G" }, { "name": "Green Wiz3", "sprite": "sprites/green_wiz3.atlas", - "deck": "decks/ramp.dck", "colors": "G", + "deck": "decks/ramp.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 24, @@ -1654,12 +1718,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "G" }, { "name": "Griffin", "sprite": "sprites/griffin.atlas", - "deck": "decks/griffin.json", "colors": "W", + "deck": "decks/griffin.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 32, @@ -1677,12 +1742,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "W" }, { "name": "Harpy", "sprite": "sprites/harpy.atlas", - "deck": "decks/harpy.dck", "colors": "B", + "deck": "decks/harpy.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 31, @@ -1700,12 +1766,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "B" }, { "name": "Harpy 2", "sprite": "sprites/harpy_2.atlas", - "deck": "decks/harpy_2.dck", "colors": "BU", + "deck": "decks/harpy_2.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 31, @@ -1723,12 +1790,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "BU" }, { "name": "Hellhound", "sprite": "sprites/hellhound_2.atlas", - "deck": "decks/hellhound.dck", "colors": "BR", + "deck": "decks/hellhound.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 25, @@ -1746,12 +1814,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "BR" }, { "name": "High Elf", "sprite": "sprites/druid_2.atlas", - "deck": "decks/elf_good.json", "colors": "BG", + "deck": "decks/elf_good.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 26, @@ -1780,12 +1849,13 @@ "Mythic Rare" ] } - ] + ], + "colors": "BG" }, { "name": "High Vampire", "sprite": "sprites/vampire_2.atlas", - "deck": "decks/vampire.json", "colors": "B", + "deck": "decks/vampire.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 32, @@ -1803,12 +1873,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "B" }, { "name": "Horseman", "sprite": "sprites/cavalier_2.atlas", - "deck": "decks/horsemanship.dck", "colors": "UW", + "deck": "decks/horsemanship.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 30, @@ -1837,12 +1908,13 @@ "Mythic Rare" ] } - ] + ], + "colors": "UW" }, { "name": "Human", "sprite": "sprites/pikeman.atlas", - "deck": "decks/human_bad.json", "colors": "BRW", + "deck": "decks/human_bad.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 23, @@ -1871,12 +1943,13 @@ "Rare" ] } - ] + ], + "colors": "BRW" }, { "name": "Human elite", "sprite": "sprites/legionite.atlas", - "deck": "decks/human_good.json", "colors": "W", + "deck": "decks/human_good.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 25, @@ -1905,12 +1978,13 @@ "Mythic Rare" ] } - ] + ], + "colors": "W" }, { "name": "Human guard", "sprite": "sprites/swordsman.atlas", - "deck": "decks/human_mid.json", "colors": "BW", + "deck": "decks/human_mid.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 24, @@ -1939,12 +2013,13 @@ "Rare" ] } - ] + ], + "colors": "BW" }, { "name": "Hydra", "sprite": "sprites/hydra.atlas", - "deck": "decks/hydra.json", "colors": "G", + "deck": "decks/hydra.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 15, @@ -1973,12 +2048,13 @@ "Mythic Rare" ] } - ] + ], + "colors": "G" }, { "name": "Immersturm Demon", "sprite": "sprites/devil_2.atlas", - "deck": "decks/immersturm_demon.dck", "colors": "BR", + "deck": "decks/immersturm_demon.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 31, @@ -1996,12 +2072,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "BR" }, { "name": "Khan", "sprite": "sprites/cavalier.atlas", - "deck": "decks/mardu.dck", "colors": "BRW", + "deck": "decks/mardu.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 30, @@ -2019,12 +2096,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "BRW" }, { "name": "Knight", "sprite": "sprites/paladin.atlas", - "deck": "decks/knight.json", "colors": "W", + "deck": "decks/knight.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 30, @@ -2053,12 +2131,13 @@ "Mythic Rare" ] } - ] + ], + "colors": "W" }, { "name": "Lich", "sprite": "sprites/lich_2.atlas", - "deck": "decks/lich.dck", "colors": "B", + "deck": "decks/lich.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 20, @@ -2076,12 +2155,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "B" }, { "name": "Merfolk", "sprite": "sprites/waterelemental.atlas", - "deck": "decks/merfolk_bad.json", "colors": "U", + "deck": "decks/merfolk_bad.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 23, @@ -2110,12 +2190,13 @@ "Rare" ] } - ] + ], + "colors": "U" }, { "name": "Merfolk Avatar", "sprite": "sprites/iceelemental.atlas", - "deck": "decks/merfolk_good.json", "colors": "GU", + "deck": "decks/merfolk_good.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 25, @@ -2144,12 +2225,13 @@ "Mythic Rare" ] } - ] + ], + "colors": "GU" }, { "name": "Merfolk Fighter", "sprite": "sprites/merfolk.atlas", - "deck": "decks/merfolk_lords.dck", "colors": "GU", + "deck": "decks/merfolk_lords.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 22, @@ -2178,12 +2260,13 @@ "Rare" ] } - ] + ], + "colors": "GU" }, { "name": "Merfolk Lord", "sprite": "sprites/merfolk_lord.atlas", - "deck": "decks/merfolk_lord2.dck", "colors": "GU", + "deck": "decks/merfolk_lord2.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 25, @@ -2201,12 +2284,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "GU" }, { "name": "Merfolk Soldier", "sprite": "sprites/mermaid.atlas", - "deck": "decks/merfolk_v_goblins.dck", "colors": "U", + "deck": "decks/merfolk_v_goblins.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 22, @@ -2235,12 +2319,13 @@ "Rare" ] } - ] + ], + "colors": "U" }, { "name": "Merfolk warrior", "sprite": "sprites/airelemental.atlas", - "deck": "decks/merfolk_mid.json", "colors": "U", + "deck": "decks/merfolk_mid.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 24, @@ -2269,12 +2354,13 @@ "Rare" ] } - ] + ], + "colors": "U" }, { "name": "Mimic", "sprite": "sprites/mimic.atlas", - "deck": "decks/mimic.dck", "colors": "BU", + "deck": "decks/mimic.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 15, @@ -2292,12 +2378,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "BU" }, { "name": "Minotaur", "sprite": "sprites/minotaur.atlas", - "deck": "decks/minotaur.json", "colors": "R", + "deck": "decks/minotaur.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 25, @@ -2315,12 +2402,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "R" }, { "name": "Minotaur Flayer", "sprite": "sprites/warden_2.atlas", - "deck": "decks/minotaur.dck", "colors": "BR", + "deck": "decks/minotaur.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 25, @@ -2338,12 +2426,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "BR" }, { "name": "Monk", "sprite": "sprites/monk.atlas", - "deck": "decks/angel.json", "colors": "W", + "deck": "decks/angel.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 24, @@ -2361,12 +2450,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "W" }, { "name": "Rakdos Devil", "sprite": "sprites/juggler.atlas", - "deck": "decks/rakdos_devil.dck", "colors": "BR", + "deck": "decks/rakdos_devil.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 24, @@ -2384,12 +2474,13 @@ "count": 5, "addMaxCount": 95 } - ] + ], + "colors": "BR" }, { "name": "Red Beast", "sprite": "sprites/basilisk_2.atlas", - "deck": "decks/beast_red.json", "colors": "R", + "deck": "decks/beast_red.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 23, @@ -2407,12 +2498,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "R" }, { "name": "Red Wiz1", "sprite": "sprites/enchanter.atlas", - "deck": "decks/red_bad.json", "colors": "R", + "deck": "decks/red_bad.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 24, @@ -2430,12 +2522,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "R" }, { "name": "Red Wiz2", "sprite": "sprites/red_wiz2.atlas", - "deck": "decks/haste_burn.dck", "colors": "R", + "deck": "decks/haste_burn.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 24, @@ -2453,12 +2546,13 @@ "count": 5, "addMaxCount": 95 } - ] + ], + "colors": "R" }, { "name": "Red Wiz3", "sprite": "sprites/red_wiz3.atlas", - "deck": "decks/lava_axe.dck", "colors": "R", + "deck": "decks/lava_axe.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 24, @@ -2476,12 +2570,13 @@ "count": 5, "addMaxCount": 95 } - ] + ], + "colors": "R" }, { "name": "Rogue", "sprite": "sprites/rogue.atlas", - "deck": "decks/rogue.json", "colors": "BU", + "deck": "decks/rogue.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 25, @@ -2499,12 +2594,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "BU" }, { "name": "Satyr", "sprite": "sprites/satyr.atlas", - "deck": "decks/satyr.dck", "colors": "GR", + "deck": "decks/satyr.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 25, @@ -2522,12 +2618,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "GR" }, { "name": "Sea Monster", "sprite": "sprites/leech_2.atlas", - "deck": "decks/sea_monster.dck", "colors": "U", + "deck": "decks/sea_monster.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 15, @@ -2545,12 +2642,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "U" }, { "name": "Shaman", "sprite": "sprites/shaman_2.atlas", - "deck": "decks/shaman.json", "colors": "GR", + "deck": "decks/shaman.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 24, @@ -2568,12 +2666,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "GR" }, { "name": "Skeleton", "sprite": "sprites/skeleton.atlas", - "deck": "decks/skeleton.dck", "colors": "B", + "deck": "decks/skeleton.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 20, @@ -2590,12 +2689,13 @@ "count": 7, "addMaxCount": 32 } - ] + ], + "colors": "B" }, { "name": "Skeleton Soldier", "sprite": "sprites/skeleton_2.atlas", - "deck": "decks/skeleton_2.dck", "colors": "B", + "deck": "decks/skeleton_2.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 20, @@ -2612,12 +2712,13 @@ "count": 7, "addMaxCount": 32 } - ] + ], + "colors": "B" }, { "name": "Sliver", "sprite": "sprites/sliver.atlas", - "deck": "decks/sliver.json", "colors": "GRW", + "deck": "decks/sliver.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 24, @@ -2634,12 +2735,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "GRW" }, { "name": "Snake", "sprite": "sprites/big_snake.atlas", - "deck": "decks/snake.json", "colors": "GU", + "deck": "decks/snake.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 25, @@ -2657,12 +2759,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "GU" }, { "name": "Spider", "sprite": "sprites/spider.atlas", - "deck": "decks/spider.json", "colors": "BG", + "deck": "decks/spider.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 22, @@ -2680,12 +2783,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "BG" }, { "name": "Tarkir Djinn", "sprite": "sprites/djinn_2.atlas", - "deck": "decks/djinn_tarkir.dck", "colors": "RU", + "deck": "decks/djinn_tarkir.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 31, @@ -2703,12 +2807,13 @@ "count": 50, "addMaxCount": 95 } - ] + ], + "colors": "RU" }, { "name": "Treefolk", "sprite": "sprites/treant.atlas", - "deck": "decks/treefolk.json", "colors": "G", + "deck": "decks/treefolk.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 16, @@ -2726,12 +2831,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "G" }, { "name": "Treefolk Guardian", "sprite": "sprites/treant_2.atlas", - "deck": "decks/treefolk.dck", "colors": "G", + "deck": "decks/treefolk.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 16, @@ -2749,12 +2855,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "G" }, { "name": "Troll", "sprite": "sprites/troll.atlas", - "deck": "decks/troll.json", "colors": "GR", + "deck": "decks/troll.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 25, @@ -2772,12 +2879,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "GR" }, { "name": "Vampire", "sprite": "sprites/vampire.atlas", - "deck": "decks/vampire.dck", "colors": "B", + "deck": "decks/vampire.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 31, @@ -2788,12 +2896,13 @@ "count": 2, "addMaxCount": 8 } - ] + ], + "colors": "B" }, { "name": "Vampire Lord", "sprite": "sprites/vampire_3.atlas", - "deck": "decks/vampire_blood_token_fly.dck", "colors": "BR", + "deck": "decks/vampire_blood_token_fly.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 31, @@ -2804,12 +2913,13 @@ "count": 2, "addMaxCount": 8 } - ] + ], + "colors": "BR" }, { "name": "Viashino", "sprite": "sprites/battler.atlas", - "deck": "decks/viashino.dck", "colors": "BGR", + "deck": "decks/viashino.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 25, @@ -2827,12 +2937,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "BGR" }, { "name": "Viper", "sprite": "sprites/big_snake_2.atlas", - "deck": "decks/snake.dck", "colors": "BG", + "deck": "decks/snake.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 25, @@ -2850,12 +2961,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "BG" }, { "name": "Werewolf", "sprite": "sprites/hellhound.atlas", - "deck": "decks/werewolf.dck", "colors": "GR", + "deck": "decks/werewolf.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 26, @@ -2872,12 +2984,13 @@ "count": 7, "addMaxCount": 32 } - ] + ], + "colors": "GR" }, { "name": "White Dwarf", "sprite": "sprites/dwarf_6.atlas", - "deck": "decks/white_dwarf.dck", "colors": "W", + "deck": "decks/white_dwarf.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 22, @@ -2895,12 +3008,13 @@ "count": 20, "addMaxCount": 80 } - ] + ], + "colors": "W" }, { "name": "White Wiz1", "sprite": "sprites/priest.atlas", - "deck": "decks/white_bad.json", "colors": "W", + "deck": "decks/white_bad.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 24, @@ -2918,12 +3032,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "W" }, { "name": "White Wiz2", "sprite": "sprites/white_wiz2.atlas", - "deck": "decks/basri.dck", "colors": "W", + "deck": "decks/basri.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 24, @@ -2941,12 +3056,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "W" }, { "name": "White Wiz3", "sprite": "sprites/white_wiz3.atlas", - "deck": "decks/human_soldier_token.dck", "colors": "W", + "deck": "decks/human_soldier_token.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 24, @@ -2964,15 +3080,16 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "W" }, { "name": "Wurm", "sprite": "sprites/leech.atlas", - "deck": "decks/wurm.json", "colors": "G", + "deck": "decks/wurm.json", + "ai": "reckless", "spawnRate": 0.2, "difficulty": 0.1, - "ai": "reckless", "speed": 15, "life": 19, "rewards": [ @@ -2999,12 +3116,13 @@ "Rare" ] } - ] + ], + "colors": "G" }, { "name": "Yeti", "sprite": "sprites/yeti_2.atlas", - "deck": "decks/yeti.dck", "colors": "GRU", + "deck": "decks/yeti.dck", "spawnRate": 0.2, "difficulty": 0.1, "speed": 25, @@ -3022,12 +3140,13 @@ "count": 10, "addMaxCount": 90 } - ] + ], + "colors": "GRU" }, { "name": "Zombie", "sprite": "sprites/zombie.atlas", - "deck": "decks/zombie_bad.json", "colors": "B", + "deck": "decks/zombie_bad.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 15, @@ -3056,12 +3175,13 @@ "Rare" ] } - ] + ], + "colors": "B" }, { "name": "Zombie Lord", "sprite": "sprites/lich.atlas", - "deck": "decks/zombie_good.json", "colors": "B", + "deck": "decks/zombie_good.json", "spawnRate": 0.2, "difficulty": 0.1, "speed": 21, @@ -3090,14 +3210,15 @@ "Rare" ] } - ] + ], + "colors": "B" }, { "name": "Sliver Queen", "sprite": "sprites/boss/sliver_queen.atlas", - "deck": "decks/boss/sliver_queen.dck", "colors": "BGRUW", + "deck": "decks/boss/sliver_queen.dck", "speed": 1, - "life": 50, + "life": 100, "rewards": [ { "type": "item", @@ -3114,14 +3235,15 @@ ], "equipment": [ "Black Lotus" - ] + ], + "colors": "BGRUW" }, { "name": "Griselbrand", "sprite": "sprites/boss/griselbrand.atlas", - "deck": "decks/boss/griselbrand.dck", "colors": "B", + "deck": "decks/boss/griselbrand.dck", "speed": 1, - "life": 40, + "life": 80, "rewards": [ { "type": "item", @@ -3138,12 +3260,13 @@ ], "equipment": [ "Mox Jet" - ] + ], + "colors": "B" }, { "name": "Akroma", "sprite": "sprites/boss/akroma.atlas", - "deck": "decks/boss/akroma.dck", "colors": "W", + "deck": "decks/boss/akroma.dck", "speed": 1, "life": 80, "rewards": [ @@ -3162,14 +3285,15 @@ ], "equipment": [ "Mox Pearl" - ] + ], + "colors": "W" }, { "name": "Emrakul", "sprite": "sprites/boss/emrakul.atlas", - "deck": "decks/boss/emrakul.dck", "colors": "C", + "deck": "decks/boss/emrakul.dck", "speed": 1, - "life": 40, + "life": 100, "rewards": [ { "type": "item", @@ -3180,12 +3304,13 @@ ], "equipment": [ "Sol Ring" - ] + ], + "colors": "C" }, { "name": "Ghalta", "sprite": "sprites/boss/ghalta.atlas", - "deck": "decks/boss/ghalta.dck", "colors": "G", + "deck": "decks/boss/ghalta.dck", "speed": 1, "life": 80, "rewards": [ @@ -3204,12 +3329,13 @@ ], "equipment": [ "Mox Emerald" - ] + ], + "colors": "G" }, { "name": "Lorthos", "sprite": "sprites/boss/lorthos.atlas", - "deck": "decks/boss/lorthos.dck", "colors": "U", + "deck": "decks/boss/lorthos.dck", "speed": 1, "life": 80, "rewards": [ @@ -3228,12 +3354,13 @@ ], "equipment": [ "Mox Sapphire" - ] + ], + "colors": "U" }, { "name": "Lathliss", "sprite": "sprites/boss/lathiss.atlas", - "deck": "decks/boss/lathliss.dck", "colors": "R", + "deck": "decks/boss/lathliss.dck", "speed": 1, "life": 80, "rewards": [ @@ -3252,6 +3379,7 @@ ], "equipment": [ "Mox Ruby" - ] + ], + "colors": "R" } -] +] \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/world/items.json b/forge-gui/res/adventure/Shandalar/world/items.json index 8c54fdb70ef..c8e1bda7ffa 100644 --- a/forge-gui/res/adventure/Shandalar/world/items.json +++ b/forge-gui/res/adventure/Shandalar/world/items.json @@ -1,706 +1,709 @@ [ - { - "name": "Sol Ring", - "equipmentSlot": "Left", - "iconName": "SolRing", - "effect": { - "startBattleWithCard": [ - "Sol Ring" - ] - } - }, - { - "name": "Mox Emerald", - "equipmentSlot": "Neck", - "iconName": "MoxEmerald", - "effect": { - "startBattleWithCard": [ - "Mox Emerald" - ] - } - }, - { - "name": "Black Lotus", - "equipmentSlot": "Right", - "iconName": "BlackLotus", - "effect": { - "startBattleWithCard": [ - "Black Lotus" - ] - } - }, - { - "name": "Mox Jet", - "equipmentSlot": "Neck", - "iconName": "MoxJet", - "effect": { - "startBattleWithCard": [ - "Mox Jet" - ] - } - }, - { - "name": "Mox Pearl", - "equipmentSlot": "Neck", - "iconName": "MoxPearl", - "effect": { - "startBattleWithCard": [ - "Mox Pearl" - ] - } - }, - { - "name": "Mox Ruby", - "equipmentSlot": "Neck", - "iconName": "MoxRuby", - "effect": { - "startBattleWithCard": [ - "Mox Ruby" - ] - } - }, - { - "name": "Mox Sapphire", - "equipmentSlot": "Neck", - "iconName": "MoxSapphire", - "effect": { - "startBattleWithCard": [ - "Mox Sapphire" - ] - } - }, - { - "name": "Battle Standard", - "equipmentSlot": "Left", - "iconName": "BattleStandard", - "effect": { - "lifeModifier": -1, - "startBattleWithCard": [ - "r_1_1_goblin" - ] - } - }, - { - "name": "Life Amulet", - "equipmentSlot": "Neck", - "iconName": "LifeAmulet", - "effect": { - "lifeModifier": 2 - } - }, - { - "name": "Red Key", - "iconName": "RedKey", - "description": "A mysterious red key.", - "questItem": true - }, - { - "name": "White Key", - "iconName": "WhiteKey", - "description": "A mysterious white key.", - "questItem": true - }, - { - "name": "Blue Key", - "iconName": "BlueKey", - "description": "A mysterious blue key.", - "questItem": true - }, - { - "name": "Green Key", - "iconName": "GreenKey", - "description": "A mysterious green key.", - "questItem": true - }, - { - "name": "Black Key", - "iconName": "BlackKey", - "description": "A mysterious black key.", - "questItem": true - }, - { - "name": "Strange Key", - "iconName": "StrangeKey", - "description": "A mysterious key.", - "questItem": true - }, - { - "name": "Steel Sword", - "equipmentSlot": "Left", - "iconName": "SteelSword", - "effect": { - "startBattleWithCard": [ - "Greatsword" - ] - } - }, - { - "name": "Axt", - "equipmentSlot": "Left", - "iconName": "SteelAxt", - "effect": { - "startBattleWithCard": [ - "Bonesplitter" - ] - } - }, - { - "name": "Steel Boots", - "equipmentSlot": "Boots", - "iconName": "SteelBoots", - "cost": 500, - "effect": { - "lifeModifier": 1, - "moveSpeed": 1.2 - } - }, - { - "name": "Steel Shield", - "equipmentSlot": "Right", - "iconName": "SteelShield", - "cost": 500, - "effect": { - "startBattleWithCard": [ - "w_0_3_wall_defender" - ] - } - }, - { - "name": "Steel Armor", - "equipmentSlot": "Body", - "cost": 500, - "iconName": "SteelArmor", - "effect": { - "lifeModifier": 3 - } - }, - { - "name": "Leather Boots", - "equipmentSlot": "Boots", - "iconName": "LeatherBoots", - "effect": { - "moveSpeed": 1.15 - } - }, - { - "name": "Jungle Shield", - "equipmentSlot": "Right", - "iconName": "JungleShield", - "effect": { - "startBattleWithCard": [ - "g_0_1_plant" - ] - } - }, - { - "name": "Dagger", - "equipmentSlot": "Left", - "iconName": "Dagger", - "effect": { - "startBattleWithCard": [ - "Spare Dagger" - ] - } - }, - { - "name": "Cheat", - "equipmentSlot": "Neck", - "iconName": "Goose", - "effect": { - "startBattleWithCard": [ - "Blightsteel Colossus", - "Lightning Greaves" - ] - } - }, - { - "name": "Aladdin's Ring", - "equipmentSlot": "Right", - "iconName": "AladdinsRing", - "effect": { - "startBattleWithCard": [ - "Aladdin's Ring" - ] - } - }, - { - "name": "Spell Book", - "iconName": "SpellBook", - "equipmentSlot": "Left", - "effect": { - "changeStartCards": 1 - } - }, - { - "name": "Cursed Ring", - "equipmentSlot": "Right", - "iconName": "CursedRing", - "effect": { - "startBattleWithCard": [ - "c_0_1_a_goblin_construct_noblock_ping", - "c_0_1_a_goblin_construct_noblock_ping", - "c_0_1_a_goblin_construct_noblock_ping" - ] - } - }, - { - "name": "Mithril Boots", - "equipmentSlot": "Boots", - "iconName": "MithrilBoots", - "cost": 1500, - "effect": { - "lifeModifier": 2, - "moveSpeed": 1.3 - } - }, - { - "name": "Mithril Shield", - "equipmentSlot": "Right", - "iconName": "MithrilShield", - "cost": 1500, - "effect": { - "startBattleWithCard": [ - "c_0_4_a_wall_defender" - ] - } - - }, - { - "name": "Mithril Armor", - "equipmentSlot": "Body", - "iconName": "MithrilArmor", - "cost": 1500, - "effect": { - "lifeModifier": 5 - } - }, - { - "name": "Death Ring", - "equipmentSlot": "Right", - "iconName": "DeathRing", - "effect": { - "opponent": { - "startBattleWithCard": [ - "c_0_1_a_goblin_construct_noblock_ping", - "c_0_1_a_goblin_construct_noblock_ping", - "c_0_1_a_goblin_construct_noblock_ping" - ] - } - } - }, - { - "name": "Flame Sword", - "equipmentSlot": "Left", - "iconName": "FlameSword", - "effect": { - "opponent": { - "lifeModifier": -5 - } - } - }, - { - "name": "Mirror Shield", - "equipmentSlot": "Right", - "iconName": "MirrorShield", - "effect": { - "startBattleWithCard": [ - "Mirror Shield" - ] - } - }, - { - "name": "Dungeon Map", - "equipmentSlot": "Right", - "iconName": "DungeonMap", - "effect": { - "startBattleWithCard": [ - "Dungeon Map" - ] - } - }, - { - "name": "Aladdin's Lamp", - "equipmentSlot": "Right", - "iconName": "AladdinsLamp", - "effect": { - "startBattleWithCard": [ - "Aladdin's Lamp" - ] - } - }, - { - "name": "Heart-Piercer", - "equipmentSlot": "Left", - "iconName": "CompositeBow", - "effect": { - "startBattleWithCard": [ - "Heart-Piercer Bow" - ] - } - }, - { - "name": "Wood Bow", - "equipmentSlot": "Left", - "iconName": "WoodBow", - "effect": { - "startBattleWithCard": [ "Fyndhorn Bow" ] - } - }, - { - "name": "Sandals", - "equipmentSlot": "Boots", - "iconName": "Sandals", - "effect": { - "moveSpeed": 1.1 - } - }, - { - "name": "Gold Boots", - "equipmentSlot": "Boots", - "iconName": "GoldBoots", - "effect": { - "lifeModifier": 2, - "moveSpeed": 1.3 - } - }, - { - "name": "Gold Shield", - "equipmentSlot": "Right", - "iconName": "GoldShield", - "effect": { - "lifeModifier": 3 - } - }, - { - "name": "Gold Armor", - "equipmentSlot": "Body", - "iconName": "GoldArmor", - "effect": { - "lifeModifier": 4 - } - }, - { - "name": "Dark Boots", - "equipmentSlot": "Boots", - "iconName": "DarkBoots", - "effect": { - "startBattleWithCard": [ - "Clattering Augur" - ], - "lifeModifier": -2, - "moveSpeed": 1.3 - } - }, - { - "name": "Dark Shield", - "equipmentSlot": "Right", - "iconName": "DarkShield", - "effect": { - "startBattleWithCard": [ - "Barrier of Bones" - ], - "lifeModifier": -3 - } - }, - { - "name": "Dark Armor", - "equipmentSlot": "Body", - "iconName": "DarkArmor", - "effect": { - "startBattleWithCard": [ - "Skeletal Snake" - ], - "lifeModifier": -4 - } - }, - { - "name": "Blood Vial", - "equipmentSlot": "Right", - "iconName": "Blood", - "effect": { - "startBattleWithCard": [ - "c_a_blood_draw" - ] - } - }, - { - "name": "Charm", - "equipmentSlot": "Right", - "iconName": "Clue", - "effect": { - "startBattleWithCard": [ - "c_a_clue_draw" - ] - } - }, - { - "name": "Snack", - "equipmentSlot": "Right", - "iconName": "Cheese", - "effect": { - "startBattleWithCard": [ - "c_a_food_sac" - ] - } - }, - { - "name": "Change", - "equipmentSlot": "Right", - "iconName": "Gold", - "effect": { - "startBattleWithCard": [ - "c_a_gold_draw" - ] - } - }, - { - "name": "Treasure", - "equipmentSlot": "Right", - "iconName": "Treasure", - "effect": { - "startBattleWithCard": [ - "c_a_treasure_sac" - ] - } - }, - { - "name": "Magic Shard", - "equipmentSlot": "Right", - "iconName": "Shard", - "effect": { - "startBattleWithCard": [ - "c_e_shard_draw" - ] - } - }, - { - "name": "Mad Staff", - "equipmentSlot": "Left", - "iconName": "MadStaff", - "effect": { - "startBattleWithCard": [ - "Power Struggle" - ] - } - }, - { - "name": "Dark Amulet", - "equipmentSlot": "Neck", - "iconName": "DarkAmulet", - "effect": { - "startBattleWithCard": [ - "Necropolis of Azar" - ] - } - }, - { - "name": "Pandora's Box", - "equipmentSlot": "Right", - "iconName": "PandorasBox", - "effect": { - "startBattleWithCard": [ - "Pandora's Box" - ] - } - }, - { - "name": "Disrupting Scepter", - "equipmentSlot": "Left", - "iconName": "DisruptingScepter", - "effect": { - "startBattleWithCard": [ - "Disrupting Scepter" - ] - } - }, - { - "name": "Entrancing Lyre", - "equipmentSlot": "Right", - "iconName": "EntrancingLyre", - "effect": { - "startBattleWithCard": [ - "Entrancing Lyre" - ] - } - }, - { - "name": "Heavy Arbalest", - "equipmentSlot": "Left", - "iconName": "HeavyArbalest", - "effect": { - "startBattleWithCard": [ - "Heavy Arbalest" - ] - } - }, - { - "name": "Ring of Three Wishes", - "equipmentSlot": "Right", - "iconName": "RingofThreeWishes", - "effect": { - "startBattleWithCard": [ - "Ring of Three Wishes" - ] - } - }, - { - "name": "The Blackstaff of Waterdeep", - "equipmentSlot": "Left", - "iconName": "TheBlackstaffofWaterdeep", - "effect": { - "startBattleWithCard": [ - "The Blackstaff of Waterdeep" - ] - } - }, - { - "name": "Unerring Sling", - "equipmentSlot": "Left", - "iconName": "UnerringSling", - "effect": { - "startBattleWithCard": [ - "Unerring Sling" - ] - } - }, - { - "name": "Jeweled Amulet", - "equipmentSlot": "Neck", - "iconName": "JeweledAmulet", - "effect": { - "startBattleWithCard": [ - "Jeweled Amulet" - ] - } - }, - { - "name": "Traveler's Amulet", - "equipmentSlot": "Neck", - "iconName": "TravelersAmulet", - "effect": { - "startBattleWithCard": [ - "Traveler's Amulet" - ] - } - }, - { - "name": "Relic Amulet", - "equipmentSlot": "Neck", - "iconName": "RelicAmulet", - "effect": { - "startBattleWithCard": [ - "Relic Amulet" - ] - } - }, - { - "name": "Manasight Amulet", - "equipmentSlot": "Neck", - "iconName": "RelicAmulet", - "effect": { - "colorView": true - } - }, - { - "name": "Amulet of Kroog", - "equipmentSlot": "Neck", - "iconName": "AmuletofKroog", - "effect": { - "startBattleWithCard": [ - "Amulet of Kroog" - ] - } - }, - { - "name": "Amulet of Vigor", - "equipmentSlot": "Neck", - "iconName": "AmuletofVigor", - "effect": { - "startBattleWithCard": [ - "Amulet of Vigor" - ] - } - }, - { - "name": "Veilstone Amulet", - "equipmentSlot": "Neck", - "iconName": "VeilstoneAmulet", - "effect": { - "startBattleWithCard": [ - "Veilstone Amulet" - ] - } - }, - { - "name": "Jandor's Ring", - "equipmentSlot": "Right", - "iconName": "JandorsRing", - "effect": { - "startBattleWithCard": [ - "Jandor's Ring" - ] - } - }, - { - "name": "Jinxed Ring", - "equipmentSlot": "Right", - "iconName": "JinxedRing", - "effect": { - "opponent": { - "startBattleWithCard": [ - "Jinxed Ring" - ] - } - } - }, - { - "name": "Nine-Ringed Bo", - "equipmentSlot": "Left", - "iconName": "Nine-RingedBo", - "effect": { - "startBattleWithCard": [ - "Nine-Ringed Bo" - ] - } - }, - { - "name": "Ring of Immortals", - "equipmentSlot": "Right", - "iconName": "RingofImmortals", - "effect": { - "startBattleWithCard": [ - "Ring of Immortals" - ] - } - }, - { - "name": "Prism Ring", - "equipmentSlot": "Right", - "iconName": "PrismRing", - "effect": { - "startBattleWithCard": [ - "Prism Ring" - ] - } - }, - { - "name": "Ring of Renewal", - "equipmentSlot": "Right", - "iconName": "RingofRenewal", - "effect": { - "startBattleWithCard": [ - "Ring of Renewal" - ] - } - }, - { - "name": "Kite Shield", - "equipmentSlot": "Right", - "iconName": "KiteShield", - "effect": { - "startBattleWithCard": [ - "Kite Shield" - ] - } - } -] +{ + "name": "Sol Ring", + "equipmentSlot": "Left", + "effect": { + "startBattleWithCard": [ + "Sol Ring" + ] + }, + "iconName": "SolRing" +}, +{ + "name": "Mox Emerald", + "equipmentSlot": "Neck", + "effect": { + "startBattleWithCard": [ + "Mox Emerald" + ] + }, + "description": "", + "iconName": "MoxEmerald" +}, +{ + "name": "Black Lotus", + "equipmentSlot": "Right", + "effect": { + "startBattleWithCard": [ + "Black Lotus" + ] + }, + "iconName": "BlackLotus" +}, +{ + "name": "Mox Jet", + "equipmentSlot": "Neck", + "effect": { + "startBattleWithCard": [ + "Mox Jet" + ] + }, + "iconName": "MoxJet" +}, +{ + "name": "Mox Pearl", + "equipmentSlot": "Neck", + "effect": { + "startBattleWithCard": [ + "Mox Pearl" + ] + }, + "description": "", + "iconName": "MoxPearl" +}, +{ + "name": "Mox Ruby", + "equipmentSlot": "Neck", + "effect": { + "startBattleWithCard": [ + "Mox Ruby" + ] + }, + "iconName": "MoxRuby" +}, +{ + "name": "Mox Sapphire", + "equipmentSlot": "Neck", + "effect": { + "startBattleWithCard": [ + "Mox Sapphire" + ] + }, + "iconName": "MoxSapphire" +}, +{ + "name": "Battle Standard", + "equipmentSlot": "Left", + "effect": { + "lifeModifier": -1, + "startBattleWithCard": [ + "r_1_1_goblin" + ] + }, + "iconName": "BattleStandard" +}, +{ + "name": "Life Amulet", + "equipmentSlot": "Neck", + "effect": { + "lifeModifier": 2 + }, + "iconName": "LifeAmulet" +}, +{ + "name": "Red Key", + "description": "A mysterious red key.", + "iconName": "RedKey", + "questItem": true +}, +{ + "name": "White Key", + "description": "A mysterious white key.", + "iconName": "WhiteKey", + "questItem": true +}, +{ + "name": "Blue Key", + "description": "A mysterious blue key.", + "iconName": "BlueKey", + "questItem": true +}, +{ + "name": "Green Key", + "description": "A mysterious green key.", + "iconName": "GreenKey", + "questItem": true +}, +{ + "name": "Black Key", + "description": "A mysterious black key.", + "iconName": "BlackKey", + "questItem": true +}, +{ + "name": "Strange Key", + "description": "A mysterious key.", + "iconName": "StrangeKey", + "questItem": true +}, +{ + "name": "Steel Sword", + "equipmentSlot": "Left", + "effect": { + "startBattleWithCard": [ + "Greatsword" + ] + }, + "iconName": "SteelSword" +}, +{ + "name": "Axt", + "equipmentSlot": "Left", + "effect": { + "startBattleWithCard": [ + "Bonesplitter" + ] + }, + "iconName": "SteelAxt" +}, +{ + "name": "Steel Boots", + "equipmentSlot": "Boots", + "effect": { + "lifeModifier": 1, + "moveSpeed": 1.2 + }, + "iconName": "SteelBoots", + "cost": 500 +}, +{ + "name": "Steel Shield", + "equipmentSlot": "Right", + "effect": { + "startBattleWithCard": [ + "w_0_3_wall_defender" + ] + }, + "iconName": "SteelShield", + "cost": 500 +}, +{ + "name": "Steel Armor", + "equipmentSlot": "Body", + "effect": { + "lifeModifier": 3 + }, + "iconName": "SteelArmor", + "cost": 500 +}, +{ + "name": "Leather Boots", + "equipmentSlot": "Boots", + "effect": { + "moveSpeed": 1.15 + }, + "iconName": "LeatherBoots" +}, +{ + "name": "Jungle Shield", + "equipmentSlot": "Right", + "effect": { + "startBattleWithCard": [ + "g_0_1_plant" + ] + }, + "iconName": "JungleShield" +}, +{ + "name": "Dagger", + "equipmentSlot": "Left", + "effect": { + "startBattleWithCard": [ + "Spare Dagger" + ] + }, + "iconName": "Dagger" +}, +{ + "name": "Cheat", + "equipmentSlot": "Neck", + "effect": { + "startBattleWithCard": [ + "Blightsteel Colossus", + "Lightning Greaves" + ] + }, + "iconName": "Goose" +}, +{ + "name": "Aladdin's Ring", + "equipmentSlot": "Right", + "effect": { + "startBattleWithCard": [ + "Aladdin's Ring" + ] + }, + "iconName": "AladdinsRing" +}, +{ + "name": "Spell Book", + "equipmentSlot": "Left", + "effect": { + "changeStartCards": 1 + }, + "iconName": "SpellBook" +}, +{ + "name": "Cursed Ring", + "equipmentSlot": "Right", + "effect": { + "startBattleWithCard": [ + "c_0_1_a_goblin_construct_noblock_ping", + "c_0_1_a_goblin_construct_noblock_ping", + "c_0_1_a_goblin_construct_noblock_ping" + ] + }, + "iconName": "CursedRing" +}, +{ + "name": "Mithril Boots", + "equipmentSlot": "Boots", + "effect": { + "lifeModifier": 2, + "moveSpeed": 1.3 + }, + "iconName": "MithrilBoots", + "cost": 1500 +}, +{ + "name": "Mithril Shield", + "equipmentSlot": "Right", + "effect": { + "startBattleWithCard": [ + "c_0_4_a_wall_defender" + ] + }, + "iconName": "MithrilShield", + "cost": 1500 +}, +{ + "name": "Mithril Armor", + "equipmentSlot": "Body", + "effect": { + "lifeModifier": 5 + }, + "iconName": "MithrilArmor", + "cost": 1500 +}, +{ + "name": "Death Ring", + "equipmentSlot": "Right", + "effect": { + "opponent": { + "startBattleWithCard": [ + "c_0_1_a_goblin_construct_noblock_ping", + "c_0_1_a_goblin_construct_noblock_ping", + "c_0_1_a_goblin_construct_noblock_ping" + ] + } + }, + "iconName": "DeathRing" +}, +{ + "name": "Flame Sword", + "equipmentSlot": "Left", + "effect": { + "opponent": { + "lifeModifier": -5 + } + }, + "iconName": "FlameSword" +}, +{ + "name": "Mirror Shield", + "equipmentSlot": "Right", + "effect": { + "startBattleWithCard": [ + "Mirror Shield" + ] + }, + "iconName": "MirrorShield" +}, +{ + "name": "Dungeon Map", + "equipmentSlot": "Right", + "effect": { + "startBattleWithCard": [ + "Dungeon Map" + ] + }, + "iconName": "DungeonMap" +}, +{ + "name": "Aladdin's Lamp", + "equipmentSlot": "Right", + "effect": { + "startBattleWithCard": [ + "Aladdin's Lamp" + ] + }, + "iconName": "AladdinsLamp" +}, +{ + "name": "Heart-Piercer", + "equipmentSlot": "Left", + "effect": { + "startBattleWithCard": [ + "Heart-Piercer Bow" + ] + }, + "iconName": "CompositeBow" +}, +{ + "name": "Wood Bow", + "equipmentSlot": "Left", + "effect": { + "startBattleWithCard": [ + "Fyndhorn Bow" + ] + }, + "iconName": "WoodBow" +}, +{ + "name": "Sandals", + "equipmentSlot": "Boots", + "effect": { + "moveSpeed": 1.1 + }, + "iconName": "Sandals" +}, +{ + "name": "Gold Boots", + "equipmentSlot": "Boots", + "effect": { + "lifeModifier": 2, + "moveSpeed": 1.3 + }, + "iconName": "GoldBoots" +}, +{ + "name": "Gold Shield", + "equipmentSlot": "Right", + "effect": { + "lifeModifier": 3 + }, + "iconName": "GoldShield" +}, +{ + "name": "Gold Armor", + "equipmentSlot": "Body", + "effect": { + "lifeModifier": 4 + }, + "iconName": "GoldArmor" +}, +{ + "name": "Dark Boots", + "equipmentSlot": "Boots", + "effect": { + "lifeModifier": -2, + "startBattleWithCard": [ + "Clattering Augur" + ], + "moveSpeed": 1.3 + }, + "iconName": "DarkBoots" +}, +{ + "name": "Dark Shield", + "equipmentSlot": "Right", + "effect": { + "lifeModifier": -3, + "startBattleWithCard": [ + "Barrier of Bones" + ] + }, + "iconName": "DarkShield" +}, +{ + "name": "Dark Armor", + "equipmentSlot": "Body", + "effect": { + "lifeModifier": -4, + "startBattleWithCard": [ + "Skeletal Snake" + ] + }, + "iconName": "DarkArmor" +}, +{ + "name": "Blood Vial", + "equipmentSlot": "Right", + "effect": { + "startBattleWithCard": [ + "c_a_blood_draw" + ] + }, + "iconName": "Blood" +}, +{ + "name": "Charm", + "equipmentSlot": "Right", + "effect": { + "startBattleWithCard": [ + "c_a_clue_draw" + ] + }, + "iconName": "Clue" +}, +{ + "name": "Snack", + "equipmentSlot": "Right", + "effect": { + "startBattleWithCard": [ + "c_a_food_sac" + ] + }, + "iconName": "Cheese" +}, +{ + "name": "Change", + "equipmentSlot": "Right", + "effect": { + "startBattleWithCard": [ + "c_a_gold_draw" + ] + }, + "iconName": "Gold" +}, +{ + "name": "Treasure", + "equipmentSlot": "Right", + "effect": { + "startBattleWithCard": [ + "c_a_treasure_sac" + ] + }, + "iconName": "Treasure" +}, +{ + "name": "Magic Shard", + "equipmentSlot": "Right", + "effect": { + "startBattleWithCard": [ + "c_e_shard_draw" + ] + }, + "iconName": "Shard" +}, +{ + "name": "Mad Staff", + "equipmentSlot": "Left", + "effect": { + "startBattleWithCard": [ + "Power Struggle" + ] + }, + "iconName": "MadStaff" +}, +{ + "name": "Dark Amulet", + "equipmentSlot": "Neck", + "effect": { + "startBattleWithCard": [ + "Necropolis of Azar" + ] + }, + "iconName": "DarkAmulet" +}, +{ + "name": "Pandora's Box", + "equipmentSlot": "Right", + "effect": { + "startBattleWithCard": [ + "Pandora's Box" + ] + }, + "iconName": "PandorasBox" +}, +{ + "name": "Disrupting Scepter", + "equipmentSlot": "Left", + "effect": { + "startBattleWithCard": [ + "Disrupting Scepter" + ] + }, + "iconName": "DisruptingScepter" +}, +{ + "name": "Entrancing Lyre", + "equipmentSlot": "Right", + "effect": { + "startBattleWithCard": [ + "Entrancing Lyre" + ] + }, + "iconName": "EntrancingLyre" +}, +{ + "name": "Heavy Arbalest", + "equipmentSlot": "Left", + "effect": { + "startBattleWithCard": [ + "Heavy Arbalest" + ] + }, + "iconName": "HeavyArbalest" +}, +{ + "name": "Ring of Three Wishes", + "equipmentSlot": "Right", + "effect": { + "startBattleWithCard": [ + "Ring of Three Wishes" + ] + }, + "iconName": "RingofThreeWishes" +}, +{ + "name": "The Blackstaff of Waterdeep", + "equipmentSlot": "Left", + "effect": { + "startBattleWithCard": [ + "The Blackstaff of Waterdeep" + ] + }, + "iconName": "TheBlackstaffofWaterdeep" +}, +{ + "name": "Unerring Sling", + "equipmentSlot": "Left", + "effect": { + "startBattleWithCard": [ + "Unerring Sling" + ] + }, + "iconName": "UnerringSling" +}, +{ + "name": "Jeweled Amulet", + "equipmentSlot": "Neck", + "effect": { + "startBattleWithCard": [ + "Jeweled Amulet" + ] + }, + "iconName": "JeweledAmulet" +}, +{ + "name": "Traveler's Amulet", + "equipmentSlot": "Neck", + "effect": { + "startBattleWithCard": [ + "Traveler's Amulet" + ] + }, + "iconName": "TravelersAmulet" +}, +{ + "name": "Relic Amulet", + "equipmentSlot": "Neck", + "effect": { + "startBattleWithCard": [ + "Relic Amulet" + ] + }, + "iconName": "RelicAmulet" +}, +{ + "name": "Manasight Amulet", + "equipmentSlot": "Neck", + "effect": { + "colorView": true + }, + "iconName": "RelicAmulet" +}, +{ + "name": "Amulet of Kroog", + "equipmentSlot": "Neck", + "effect": { + "startBattleWithCard": [ + "Amulet of Kroog" + ] + }, + "iconName": "AmuletofKroog" +}, +{ + "name": "Amulet of Vigor", + "equipmentSlot": "Neck", + "effect": { + "startBattleWithCard": [ + "Amulet of Vigor" + ] + }, + "iconName": "AmuletofVigor" +}, +{ + "name": "Veilstone Amulet", + "equipmentSlot": "Neck", + "effect": { + "startBattleWithCard": [ + "Veilstone Amulet" + ] + }, + "iconName": "VeilstoneAmulet" +}, +{ + "name": "Jandor's Ring", + "equipmentSlot": "Right", + "effect": { + "startBattleWithCard": [ + "Jandor's Ring" + ] + }, + "iconName": "JandorsRing" +}, +{ + "name": "Jinxed Ring", + "equipmentSlot": "Right", + "effect": { + "opponent": { + "startBattleWithCard": [ + "Jinxed Ring" + ] + } + }, + "iconName": "JinxedRing" +}, +{ + "name": "Nine-Ringed Bo", + "equipmentSlot": "Left", + "effect": { + "startBattleWithCard": [ + "Nine-Ringed Bo" + ] + }, + "iconName": "Nine-RingedBo" +}, +{ + "name": "Ring of Immortals", + "equipmentSlot": "Right", + "effect": { + "startBattleWithCard": [ + "Ring of Immortals" + ] + }, + "iconName": "RingofImmortals" +}, +{ + "name": "Prism Ring", + "equipmentSlot": "Right", + "effect": { + "startBattleWithCard": [ + "Prism Ring" + ] + }, + "iconName": "PrismRing" +}, +{ + "name": "Ring of Renewal", + "equipmentSlot": "Right", + "effect": { + "startBattleWithCard": [ + "Ring of Renewal" + ] + }, + "iconName": "RingofRenewal" +}, +{ + "name": "Kite Shield", + "equipmentSlot": "Right", + "effect": { + "startBattleWithCard": [ + "Kite Shield" + ] + }, + "iconName": "KiteShield" +} +] \ No newline at end of file