mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 11:18:01 +00:00
expanded teleport actor on maps added capitals
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package forge.adventure.editor;
|
package forge.adventure.editor;
|
||||||
|
|
||||||
import forge.adventure.data.PointOfInterestData;
|
import forge.adventure.data.PointOfInterestData;
|
||||||
|
import forge.adventure.util.Config;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
|
|
||||||
@@ -16,6 +17,7 @@ public class PointOfInterestEdit extends JComponent {
|
|||||||
JTextField sprite = new JTextField();
|
JTextField sprite = new JTextField();
|
||||||
FilePicker map = new FilePicker(new String[]{"tmx"});
|
FilePicker map = new FilePicker(new String[]{"tmx"});
|
||||||
JSpinner radiusFactor= new JSpinner(new SpinnerNumberModel(0.0f, 0.0f, 2.0f, 0.1f));
|
JSpinner radiusFactor= new JSpinner(new SpinnerNumberModel(0.0f, 0.0f, 2.0f, 0.1f));
|
||||||
|
SwingAtlasPreview preview=new SwingAtlasPreview(256,2000);
|
||||||
|
|
||||||
|
|
||||||
private boolean updating=false;
|
private boolean updating=false;
|
||||||
@@ -34,6 +36,7 @@ public class PointOfInterestEdit extends JComponent {
|
|||||||
parameters.add("Sprite:",sprite);
|
parameters.add("Sprite:",sprite);
|
||||||
parameters.add("Map:",map);
|
parameters.add("Map:",map);
|
||||||
parameters.add("Radius factor:",radiusFactor);
|
parameters.add("Radius factor:",radiusFactor);
|
||||||
|
parameters.add(preview);
|
||||||
|
|
||||||
add(parameters);
|
add(parameters);
|
||||||
|
|
||||||
@@ -80,6 +83,7 @@ public class PointOfInterestEdit extends JComponent {
|
|||||||
map.getEdit().setText(currentData.map);
|
map.getEdit().setText(currentData.map);
|
||||||
radiusFactor.setValue(currentData.radiusFactor);
|
radiusFactor.setValue(currentData.radiusFactor);
|
||||||
|
|
||||||
|
preview.setSpritePath(currentData.spriteAtlas,currentData.sprite);
|
||||||
updating=false;
|
updating=false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ public class PointOfInterestEditor extends JComponent {
|
|||||||
JList<PointOfInterestData> list = new JList<>(model);
|
JList<PointOfInterestData> list = new JList<>(model);
|
||||||
JToolBar toolBar = new JToolBar("toolbar");
|
JToolBar toolBar = new JToolBar("toolbar");
|
||||||
PointOfInterestEdit edit=new PointOfInterestEdit();
|
PointOfInterestEdit edit=new PointOfInterestEdit();
|
||||||
|
|
||||||
static HashMap<String,SwingAtlas> atlas=new HashMap<>();
|
static HashMap<String,SwingAtlas> atlas=new HashMap<>();
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import org.apache.commons.lang3.tuple.Pair;
|
|||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -17,9 +18,13 @@ public class SwingAtlasPreview extends Box {
|
|||||||
private String sprite="";
|
private String sprite="";
|
||||||
private String spriteName="";
|
private String spriteName="";
|
||||||
Timer timer;
|
Timer timer;
|
||||||
public SwingAtlasPreview() {
|
public SwingAtlasPreview()
|
||||||
|
{
|
||||||
|
this(32,200);
|
||||||
|
}
|
||||||
|
public SwingAtlasPreview(int imageSize,int timeDelay) {
|
||||||
super(BoxLayout.Y_AXIS);
|
super(BoxLayout.Y_AXIS);
|
||||||
timer = new Timer(200, new AbstractAction() {
|
timer = new Timer(timeDelay, new AbstractAction() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
counter++;
|
counter++;
|
||||||
@@ -28,7 +33,9 @@ public class SwingAtlasPreview extends Box {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
this.imageSize=imageSize;
|
||||||
}
|
}
|
||||||
|
static Map<String,Map<Integer,SwingAtlas>> cache=new HashMap<>();
|
||||||
public SwingAtlasPreview(int size) {
|
public SwingAtlasPreview(int size) {
|
||||||
this();
|
this();
|
||||||
imageSize=size;
|
imageSize=size;
|
||||||
@@ -47,7 +54,16 @@ public class SwingAtlasPreview extends Box {
|
|||||||
labels.clear();
|
labels.clear();
|
||||||
this.sprite=sprite;
|
this.sprite=sprite;
|
||||||
this.spriteName=name;
|
this.spriteName=name;
|
||||||
SwingAtlas atlas=new SwingAtlas(Config.instance().getFile(sprite),imageSize);
|
SwingAtlas atlas;
|
||||||
|
if(!cache.containsKey(sprite))
|
||||||
|
{
|
||||||
|
cache.put(sprite,new HashMap<>() );
|
||||||
|
}
|
||||||
|
if(!cache.get(sprite).containsKey(imageSize))
|
||||||
|
{
|
||||||
|
cache.get(sprite).put(imageSize,new SwingAtlas(Config.instance().getFile(sprite),imageSize) );
|
||||||
|
}
|
||||||
|
atlas=cache.get(sprite).get(imageSize);
|
||||||
int maxCount=0;
|
int maxCount=0;
|
||||||
for(Map.Entry<String, ArrayList<ImageIcon>> element:atlas.getImages().entrySet())
|
for(Map.Entry<String, ArrayList<ImageIcon>> element:atlas.getImages().entrySet())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ public class CharacterSprite extends MapActor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void load(String path) {
|
protected void load(String path) {
|
||||||
|
if(path==null||path.isEmpty())return;
|
||||||
TextureAtlas atlas = Config.instance().getAtlas(path);
|
TextureAtlas atlas = Config.instance().getAtlas(path);
|
||||||
/*
|
/*
|
||||||
for (Texture texture : new ObjectSet.ObjectSetIterator<>( atlas.getTextures()))
|
for (Texture texture : new ObjectSet.ObjectSetIterator<>( atlas.getTextures()))
|
||||||
|
|||||||
@@ -8,17 +8,23 @@ import forge.adventure.util.MapDialog;
|
|||||||
/**
|
/**
|
||||||
* Map actor that will show a text message with optional choices
|
* Map actor that will show a text message with optional choices
|
||||||
*/
|
*/
|
||||||
public class DialogActor extends MapActor {
|
public class DialogActor extends CharacterSprite {
|
||||||
private final MapStage stage;
|
private final MapStage stage;
|
||||||
private final TextureRegion textureRegion;
|
private final TextureRegion textureRegion;
|
||||||
private final MapDialog dialog;
|
private final MapDialog dialog;
|
||||||
|
|
||||||
public DialogActor(MapStage stage, int id, String S, TextureRegion textureRegion) {
|
public DialogActor(MapStage stage, int id, String S, TextureRegion textureRegion) {
|
||||||
super(id);
|
super(id,"");
|
||||||
this.stage = stage;
|
this.stage = stage;
|
||||||
dialog = new MapDialog(S, stage, id);
|
dialog = new MapDialog(S, stage, id);
|
||||||
this.textureRegion = textureRegion;
|
this.textureRegion = textureRegion;
|
||||||
}
|
}
|
||||||
|
public DialogActor(MapStage stage, int id, String S, String sprite) {
|
||||||
|
super(id,sprite);
|
||||||
|
this.stage = stage;
|
||||||
|
dialog = new MapDialog(S, stage, id);
|
||||||
|
this.textureRegion = null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPlayerCollide() {
|
public void onPlayerCollide() {
|
||||||
@@ -29,8 +35,10 @@ public class DialogActor extends MapActor {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void draw(Batch batch, float alpha) {
|
public void draw(Batch batch, float alpha) {
|
||||||
batch.draw(textureRegion, getX(), getY(), getWidth(), getHeight());
|
if(textureRegion!=null)
|
||||||
super.draw(batch, alpha);
|
batch.draw(textureRegion, getX(), getY(), getWidth(), getHeight());
|
||||||
|
else
|
||||||
|
super.draw(batch, alpha);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package forge.adventure.character;
|
package forge.adventure.character;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.math.Vector2;
|
||||||
import forge.adventure.scene.SceneType;
|
import forge.adventure.scene.SceneType;
|
||||||
import forge.adventure.scene.TileMapScene;
|
import forge.adventure.scene.TileMapScene;
|
||||||
import forge.adventure.stage.MapStage;
|
import forge.adventure.stage.MapStage;
|
||||||
@@ -12,29 +13,28 @@ public class EntryActor extends MapActor{
|
|||||||
private final MapStage stage;
|
private final MapStage stage;
|
||||||
String targetMap;
|
String targetMap;
|
||||||
|
|
||||||
public EntryActor(MapStage stage,String sourceMap, int id,String targetMap,float x,float y,float w,float h,String direction)
|
public EntryActor(MapStage stage, int id,String targetMap,float x,float y,float w,float h,String direction,boolean spawnPlayerThere)
|
||||||
{
|
{
|
||||||
super(id);
|
super(id);
|
||||||
this.stage = stage;
|
this.stage = stage;
|
||||||
this.targetMap = targetMap;
|
this.targetMap = targetMap;
|
||||||
|
|
||||||
|
|
||||||
if((targetMap==null||targetMap.isEmpty()&&sourceMap.isEmpty())||//if target is null and "from world"
|
if(spawnPlayerThere) //or if source is this target
|
||||||
!sourceMap.isEmpty()&&targetMap.equals(sourceMap)) //or if source is this target
|
|
||||||
{
|
{
|
||||||
switch(direction)
|
switch(direction)
|
||||||
{
|
{
|
||||||
case "up":
|
case "up":
|
||||||
stage.GetPlayer().setPosition(x,y+h);
|
stage.GetPlayer().setPosition(x+w/2-stage.GetPlayer().getWidth()/2,y+h);
|
||||||
break;
|
break;
|
||||||
case "down":
|
case "down":
|
||||||
stage.GetPlayer().setPosition(x,y-stage.GetPlayer().getHeight());
|
stage.GetPlayer().setPosition(x+w/2-stage.GetPlayer().getWidth()/2,y-stage.GetPlayer().getHeight());
|
||||||
break;
|
break;
|
||||||
case "right":
|
case "right":
|
||||||
stage.GetPlayer().setPosition(x-stage.GetPlayer().getWidth(),y);
|
stage.GetPlayer().setPosition(x-stage.GetPlayer().getWidth(),y+h/2-stage.GetPlayer().getHeight()/2);
|
||||||
break;
|
break;
|
||||||
case "left":
|
case "left":
|
||||||
stage.GetPlayer().setPosition(x+w,y);
|
stage.GetPlayer().setPosition(x+w,y+h/2-stage.GetPlayer().getHeight()/2);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,13 @@ public class ItemData {
|
|||||||
public String iconName;
|
public String iconName;
|
||||||
public boolean questItem=false;
|
public boolean questItem=false;
|
||||||
public int cost=1000;
|
public int cost=1000;
|
||||||
|
|
||||||
|
public boolean usableOnMap;
|
||||||
|
public boolean usableInPoi;
|
||||||
|
public String commandOnUse;
|
||||||
|
public int manaNeeded;
|
||||||
|
|
||||||
|
|
||||||
public ItemData()
|
public ItemData()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,10 @@ public class PointOfInterestData {
|
|||||||
public String sprite;
|
public String sprite;
|
||||||
public String map;
|
public String map;
|
||||||
public float radiusFactor;
|
public float radiusFactor;
|
||||||
|
public float offsetX=0f;
|
||||||
|
public float offsetY=0f;
|
||||||
|
|
||||||
|
public boolean markOnMap;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ public class GameScene extends HudScene {
|
|||||||
Forge.clearTransitionScreen();
|
Forge.clearTransitionScreen();
|
||||||
Forge.clearCurrentScreen();
|
Forge.clearCurrentScreen();
|
||||||
super.enter();
|
super.enter();
|
||||||
|
WorldStage.getInstance().handlePointsOfInterestCollision();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ public class MapStage extends GameStage {
|
|||||||
//These maps are defined as embedded properties within the Tiled maps.
|
//These maps are defined as embedded properties within the Tiled maps.
|
||||||
private EffectData effect; //"Dungeon Effect": Character Effect applied to all adversaries within the map.
|
private EffectData effect; //"Dungeon Effect": Character Effect applied to all adversaries within the map.
|
||||||
private boolean preventEscape = false; //Prevents player from escaping the dungeon by any means that aren't an exit.
|
private boolean preventEscape = false; //Prevents player from escaping the dungeon by any means that aren't an exit.
|
||||||
|
private boolean foundPlayerSpawn;
|
||||||
|
|
||||||
|
|
||||||
public boolean getDialogOnlyInput() {
|
public boolean getDialogOnlyInput() {
|
||||||
@@ -343,6 +344,7 @@ public class MapStage extends GameStage {
|
|||||||
|
|
||||||
GetPlayer().stop();
|
GetPlayer().stop();
|
||||||
spriteLayer = null;
|
spriteLayer = null;
|
||||||
|
foundPlayerSpawn=false;
|
||||||
for (MapLayer layer : map.getLayers()) {
|
for (MapLayer layer : map.getLayers()) {
|
||||||
if (layer.getProperties().containsKey("spriteLayer") && layer.getProperties().get("spriteLayer", boolean.class)) {
|
if (layer.getProperties().containsKey("spriteLayer") && layer.getProperties().get("spriteLayer", boolean.class)) {
|
||||||
spriteLayer = layer;
|
spriteLayer = layer;
|
||||||
@@ -404,7 +406,18 @@ public class MapStage extends GameStage {
|
|||||||
float y = Float.parseFloat(prop.get("y").toString());
|
float y = Float.parseFloat(prop.get("y").toString());
|
||||||
float w = Float.parseFloat(prop.get("width").toString());
|
float w = Float.parseFloat(prop.get("width").toString());
|
||||||
float h = Float.parseFloat(prop.get("height").toString());
|
float h = Float.parseFloat(prop.get("height").toString());
|
||||||
EntryActor entry = new EntryActor(this, sourceMap, id, prop.get("teleport").toString(), x, y, w, h, prop.get("direction").toString());
|
|
||||||
|
String targetMap=prop.get("teleport").toString();
|
||||||
|
boolean spawnPlayerThere=(targetMap==null||targetMap.isEmpty()&&sourceMap.isEmpty())||//if target is null and "from world"
|
||||||
|
!sourceMap.isEmpty()&&targetMap.equals(sourceMap);
|
||||||
|
if(foundPlayerSpawn)
|
||||||
|
spawnPlayerThere=false;
|
||||||
|
if((prop.containsKey("spawn")&&prop.get("spawn").toString()=="true")&&spawnPlayerThere)
|
||||||
|
{
|
||||||
|
foundPlayerSpawn=true;
|
||||||
|
spawnPlayerThere=true;
|
||||||
|
}//set spawn to option with "spawn" over other entries
|
||||||
|
EntryActor entry = new EntryActor(this, id, prop.get("teleport").toString(), x, y, w, h, prop.get("direction").toString(),spawnPlayerThere);
|
||||||
addMapActor(obj, entry);
|
addMapActor(obj, entry);
|
||||||
break;
|
break;
|
||||||
case "reward":
|
case "reward":
|
||||||
@@ -486,7 +499,11 @@ public class MapStage extends GameStage {
|
|||||||
case "dialog":
|
case "dialog":
|
||||||
if(obj instanceof TiledMapTileMapObject) {
|
if(obj instanceof TiledMapTileMapObject) {
|
||||||
TiledMapTileMapObject tiledObj = (TiledMapTileMapObject) obj;
|
TiledMapTileMapObject tiledObj = (TiledMapTileMapObject) obj;
|
||||||
DialogActor dialog = new DialogActor(this, id, prop.get("dialog").toString(), tiledObj.getTextureRegion());
|
DialogActor dialog;
|
||||||
|
if(prop.containsKey("sprite"))
|
||||||
|
dialog= new DialogActor(this, id, prop.get("dialog").toString(), prop.get("sprite").toString());
|
||||||
|
else
|
||||||
|
dialog= new DialogActor(this, id, prop.get("dialog").toString(), tiledObj.getTextureRegion());
|
||||||
addMapActor(obj, dialog);
|
addMapActor(obj, dialog);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ public class WorldBackground extends Actor {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadChunk(int x, int y) {
|
public void loadChunk(int x, int y) {
|
||||||
if (chunksSprites[x][y] == null)
|
if (chunksSprites[x][y] == null)
|
||||||
chunksSprites[x][y] = MapSprite.GetMapSprites(x, y);
|
chunksSprites[x][y] = MapSprite.GetMapSprites(x, y);
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package forge.adventure.stage;
|
package forge.adventure.stage;
|
||||||
|
|
||||||
import com.badlogic.gdx.Gdx;
|
import com.badlogic.gdx.Gdx;
|
||||||
|
import com.badlogic.gdx.math.GridPoint2;
|
||||||
import com.badlogic.gdx.math.Rectangle;
|
import com.badlogic.gdx.math.Rectangle;
|
||||||
import com.badlogic.gdx.math.Vector2;
|
import com.badlogic.gdx.math.Vector2;
|
||||||
import com.badlogic.gdx.scenes.scene2d.Actor;
|
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||||
@@ -176,7 +177,7 @@ public class WorldStage extends GameStage implements SaveFileContent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
private void handlePointsOfInterestCollision() {
|
public void handlePointsOfInterestCollision() {
|
||||||
|
|
||||||
for (Actor actor : foregroundSprites.getChildren()) {
|
for (Actor actor : foregroundSprites.getChildren()) {
|
||||||
if (actor.getClass() == PointOfInterestMapSprite.class) {
|
if (actor.getClass() == PointOfInterestMapSprite.class) {
|
||||||
@@ -286,6 +287,9 @@ public class WorldStage extends GameStage implements SaveFileContent {
|
|||||||
"\nEnemy will use Preconstructed or Random Generated Decks. Genetic AI Decks will be available to some enemies on Hard difficulty.", WorldSave.getCurrentSave().getPlayer().getSelectedDeck());
|
"\nEnemy will use Preconstructed or Random Generated Decks. Genetic AI Decks will be available to some enemies on Hard difficulty.", WorldSave.getCurrentSave().getPlayer().getSelectedDeck());
|
||||||
WorldSave.getCurrentSave().getPlayer().clearAnnounceFantasy();
|
WorldSave.getCurrentSave().getPlayer().clearAnnounceFantasy();
|
||||||
}
|
}
|
||||||
|
GridPoint2 pos = background.translateFromWorldToChunk(player.getX(), player.getY());
|
||||||
|
background.loadChunk(pos.x,pos.y);
|
||||||
|
handlePointsOfInterestCollision();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -426,7 +426,7 @@ public class World implements Disposable, SaveFileContent {
|
|||||||
List<Rectangle> otherPoints = new ArrayList<>();
|
List<Rectangle> otherPoints = new ArrayList<>();
|
||||||
|
|
||||||
clearTerrain((int) (data.width * data.playerStartPosX), (int) (data.height * data.playerStartPosY), 10);
|
clearTerrain((int) (data.width * data.playerStartPosX), (int) (data.height * data.playerStartPosY), 10);
|
||||||
otherPoints.add(new Rectangle(((float) data.width * data.playerStartPosX * (float) data.tileSize) - data.tileSize * 3, ((float) data.height * data.playerStartPosY * data.tileSize) - data.tileSize * 3, data.tileSize * 6, data.tileSize * 6));
|
//otherPoints.add(new Rectangle(((float) data.width * data.playerStartPosX * (float) data.tileSize) - data.tileSize * 3, ((float) data.height * data.playerStartPosY * data.tileSize) - data.tileSize * 3, data.tileSize * 6, data.tileSize * 6));
|
||||||
int biomeIndex2 = -1;
|
int biomeIndex2 = -1;
|
||||||
for (BiomeData biome : data.GetBiomes()) {
|
for (BiomeData biome : data.GetBiomes()) {
|
||||||
biomeIndex2++;
|
biomeIndex2++;
|
||||||
@@ -443,6 +443,9 @@ public class World implements Disposable, SaveFileContent {
|
|||||||
y *= (biome.height * height / 2);
|
y *= (biome.height * height / 2);
|
||||||
y += (height - (biome.startPointY * height));
|
y += (height - (biome.startPointY * height));
|
||||||
|
|
||||||
|
y += (poi.offsetY * (biome.height * height));
|
||||||
|
x += (poi.offsetX * (biome.width * width));
|
||||||
|
|
||||||
if ((int) x < 0 || (int) y <= 0 || (int) y >= height || (int) x >= width || biomeIndex2 != highestBiome(getBiome((int) x, (int) y))) {
|
if ((int) x < 0 || (int) y <= 0 || (int) y >= height || (int) x >= width || biomeIndex2 != highestBiome(getBiome((int) x, (int) y))) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -492,8 +495,16 @@ public class World implements Disposable, SaveFileContent {
|
|||||||
|
|
||||||
|
|
||||||
Color color = biome.GetColor();
|
Color color = biome.GetColor();
|
||||||
pix.setColor(color.r, 0.1f, 0.1f, 1);
|
if(poi.markOnMap)
|
||||||
pix.fillRectangle((int) x / data.tileSize - 3, height - (int) y / data.tileSize - 3, 6, 6);
|
{
|
||||||
|
pix.setColor(0.1f, 0.1f, 1f, 1);
|
||||||
|
pix.fillCircle((int) x / data.tileSize - 3, height - (int) y / data.tileSize - 3, 10);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pix.setColor(1, 0.1f, 0.1f, 1);
|
||||||
|
pix.fillCircle((int) x / data.tileSize - 3, height - (int) y / data.tileSize - 3, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (poi.type != null && poi.type.equals("town")) {
|
if (poi.type != null && poi.type.equals("town")) {
|
||||||
|
|||||||
@@ -3,13 +3,13 @@
|
|||||||
"height": 4300,
|
"height": 4300,
|
||||||
"width": 2
|
"width": 2
|
||||||
},
|
},
|
||||||
"activeFile": "map/main_story/skep.tmx",
|
"activeFile": "map/main_story/spawn.tmx",
|
||||||
"automapping.whileDrawing": false,
|
"automapping.whileDrawing": false,
|
||||||
"expandedProjectPaths": [
|
"expandedProjectPaths": [
|
||||||
"map/main_story",
|
"map/main_story",
|
||||||
"map",
|
"map",
|
||||||
"obj",
|
"tileset",
|
||||||
"tileset"
|
"obj"
|
||||||
],
|
],
|
||||||
"file.lastUsedOpenFilter": "All Files (*)",
|
"file.lastUsedOpenFilter": "All Files (*)",
|
||||||
"fileStates": {
|
"fileStates": {
|
||||||
@@ -1428,14 +1428,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"map/debug_map.tmx": {
|
"map/debug_map.tmx": {
|
||||||
"expandedObjectLayers": [
|
|
||||||
4
|
|
||||||
],
|
|
||||||
"scale": 3,
|
"scale": 3,
|
||||||
"selectedLayer": 4,
|
"selectedLayer": 4,
|
||||||
"viewCenter": {
|
"viewCenter": {
|
||||||
"x": 179.5,
|
"x": 221.66666666666663,
|
||||||
"y": 274.3333333333333
|
"y": 302.83333333333337
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"map/djinnpalace_1.tmx": {
|
"map/djinnpalace_1.tmx": {
|
||||||
@@ -2095,23 +2092,23 @@
|
|||||||
"scale": 2,
|
"scale": 2,
|
||||||
"selectedLayer": 4,
|
"selectedLayer": 4,
|
||||||
"viewCenter": {
|
"viewCenter": {
|
||||||
"x": 235.25,
|
"x": 235.5,
|
||||||
"y": 208.5
|
"y": 208.75
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"map/main_story/blue_castle.tmx": {
|
"map/main_story/blue_castle.tmx": {
|
||||||
"scale": 3,
|
"scale": 3,
|
||||||
"selectedLayer": 4,
|
"selectedLayer": 4,
|
||||||
"viewCenter": {
|
"viewCenter": {
|
||||||
"x": 215.16666666666666,
|
"x": 214.99999999999997,
|
||||||
"y": 331.3333333333333
|
"y": 331.16666666666663
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"map/main_story/colorless_castle.tmx": {
|
"map/main_story/colorless_castle.tmx": {
|
||||||
"scale": 2,
|
"scale": 2,
|
||||||
"selectedLayer": 1,
|
"selectedLayer": 1,
|
||||||
"viewCenter": {
|
"viewCenter": {
|
||||||
"x": 242.75,
|
"x": 243,
|
||||||
"y": 339.25
|
"y": 339.25
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -2124,41 +2121,83 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"map/main_story/final_castle.tmx": {
|
"map/main_story/final_castle.tmx": {
|
||||||
"expandedObjectLayers": [
|
|
||||||
4
|
|
||||||
],
|
|
||||||
"scale": 1.5,
|
"scale": 1.5,
|
||||||
"selectedLayer": 4,
|
"selectedLayer": 4,
|
||||||
"viewCenter": {
|
"viewCenter": {
|
||||||
"x": 273,
|
"x": 240,
|
||||||
"y": 250.66666666666669
|
"y": 912
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"map/main_story/forest_capital.tmx": {
|
||||||
|
"scale": 1,
|
||||||
|
"selectedLayer": 0,
|
||||||
|
"viewCenter": {
|
||||||
|
"x": 240,
|
||||||
|
"y": 136
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"map/main_story/green_castle.tmx": {
|
"map/main_story/green_castle.tmx": {
|
||||||
"scale": 3,
|
"scale": 3,
|
||||||
"selectedLayer": 4,
|
"selectedLayer": 4,
|
||||||
"viewCenter": {
|
"viewCenter": {
|
||||||
"x": 218.5,
|
"x": 232,
|
||||||
"y": 308
|
"y": 239.66666666666666
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"map/main_story/island_capital.tmx": {
|
||||||
|
"scale": 1,
|
||||||
|
"selectedLayer": 0,
|
||||||
|
"viewCenter": {
|
||||||
|
"x": 240,
|
||||||
|
"y": 136
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"map/main_story/mountain_capital.tmx": {
|
||||||
|
"scale": 1,
|
||||||
|
"selectedLayer": 0,
|
||||||
|
"viewCenter": {
|
||||||
|
"x": 240,
|
||||||
|
"y": 136
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"map/main_story/plains_capital.tmx": {
|
||||||
|
"scale": 8,
|
||||||
|
"selectedLayer": 5,
|
||||||
|
"viewCenter": {
|
||||||
|
"x": 320,
|
||||||
|
"y": 320
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"map/main_story/red_castle.tmx": {
|
"map/main_story/red_castle.tmx": {
|
||||||
"scale": 2,
|
"scale": 2,
|
||||||
"selectedLayer": 4,
|
"selectedLayer": 4,
|
||||||
"viewCenter": {
|
"viewCenter": {
|
||||||
"x": 272.25,
|
"x": 232,
|
||||||
"y": 328
|
"y": 240
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"map/main_story/skep.tmx": {
|
"map/main_story/skep.tmx": {
|
||||||
"expandedObjectLayers": [
|
|
||||||
4
|
|
||||||
],
|
|
||||||
"scale": 1.5,
|
"scale": 1.5,
|
||||||
"selectedLayer": 4,
|
"selectedLayer": 4,
|
||||||
"viewCenter": {
|
"viewCenter": {
|
||||||
"x": 232.33333333333331,
|
"x": 358.6666666666667,
|
||||||
"y": 233.3333333333333
|
"y": 348.3333333333333
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"map/main_story/spawn.tmx": {
|
||||||
|
"scale": 1.5,
|
||||||
|
"selectedLayer": 4,
|
||||||
|
"viewCenter": {
|
||||||
|
"x": 840.6666666666667,
|
||||||
|
"y": 323.6666666666667
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"map/main_story/swamp_capital.tmx": {
|
||||||
|
"scale": 1,
|
||||||
|
"selectedLayer": 0,
|
||||||
|
"viewCenter": {
|
||||||
|
"x": 240,
|
||||||
|
"y": 136
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"map/main_story/unbenannt.tmx": {
|
"map/main_story/unbenannt.tmx": {
|
||||||
@@ -2169,6 +2208,14 @@
|
|||||||
"y": 480.34259430595574
|
"y": 480.34259430595574
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"map/main_story/white_capital.tmx": {
|
||||||
|
"scale": 1,
|
||||||
|
"selectedLayer": 0,
|
||||||
|
"viewCenter": {
|
||||||
|
"x": 232,
|
||||||
|
"y": 240
|
||||||
|
}
|
||||||
|
},
|
||||||
"map/main_story/white_castle.tmx": {
|
"map/main_story/white_castle.tmx": {
|
||||||
"scale": 2,
|
"scale": 2,
|
||||||
"selectedLayer": 4,
|
"selectedLayer": 4,
|
||||||
@@ -2707,14 +2754,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"map/waste_town.tmx": {
|
"map/waste_town.tmx": {
|
||||||
"expandedObjectLayers": [
|
|
||||||
4
|
|
||||||
],
|
|
||||||
"scale": 1.5,
|
"scale": 1.5,
|
||||||
"selectedLayer": 4,
|
"selectedLayer": 4,
|
||||||
"viewCenter": {
|
"viewCenter": {
|
||||||
"x": 214.33333333333331,
|
"x": 214.66666666666663,
|
||||||
"y": 298.6666666666667
|
"y": 299
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"map/waste_town_2.tmx": {
|
"map/waste_town_2.tmx": {
|
||||||
@@ -2758,12 +2802,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tileset/buildings.tsx": {
|
"tileset/buildings.tsx": {
|
||||||
"scaleInDock": 1.5,
|
"scaleInDock": 3,
|
||||||
"scaleInEditor": 2
|
"scaleInEditor": 2
|
||||||
},
|
},
|
||||||
"tileset/main.tsx": {
|
"tileset/main.tsx": {
|
||||||
"dynamicWrapping": false,
|
"dynamicWrapping": false,
|
||||||
"scaleInDock": 1,
|
"scaleInDock": 3,
|
||||||
"scaleInEditor": 2
|
"scaleInEditor": 2
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -2774,25 +2818,32 @@
|
|||||||
"map.tileWidth": 16,
|
"map.tileWidth": 16,
|
||||||
"map.width": 90,
|
"map.width": 90,
|
||||||
"openFiles": [
|
"openFiles": [
|
||||||
"map/waste_town.tmx",
|
"map/main_story/green_castle.tmx",
|
||||||
"map/main_story/skep.tmx",
|
"map/main_story/red_castle.tmx",
|
||||||
"map/debug_map.tmx"
|
"map/main_story/white_capital.tmx",
|
||||||
|
"map/main_story/forest_capital.tmx",
|
||||||
|
"map/main_story/swamp_capital.tmx",
|
||||||
|
"map/main_story/mountain_capital.tmx",
|
||||||
|
"map/main_story/island_capital.tmx",
|
||||||
|
"map/main_story/plains_capital.tmx",
|
||||||
|
"map/main_story/spawn.tmx",
|
||||||
|
"map/main_story/final_castle.tmx"
|
||||||
],
|
],
|
||||||
"project": "main.tiled-project",
|
"project": "main.tiled-project",
|
||||||
"property.type": "string",
|
"property.type": "string",
|
||||||
"recentFiles": [
|
"recentFiles": [
|
||||||
"map/magetower_10.tmx",
|
"map/main_story/green_castle.tmx",
|
||||||
"map/magetower_12.tmx",
|
"map/main_story/red_castle.tmx",
|
||||||
"map/magetower_11.tmx",
|
"map/main_story/white_capital.tmx",
|
||||||
"map/main_story/blue_castle.tmx",
|
"map/main_story/forest_capital.tmx",
|
||||||
"map/waste_town.tmx",
|
"map/main_story/swamp_capital.tmx",
|
||||||
"map/debug_map.tmx",
|
"map/main_story/mountain_capital.tmx",
|
||||||
|
"map/main_story/island_capital.tmx",
|
||||||
|
"map/main_story/plains_capital.tmx",
|
||||||
|
"map/main_story/final_castle.tmx",
|
||||||
|
"map/main_story/spawn.tmx",
|
||||||
"map/main_story/skep.tmx",
|
"map/main_story/skep.tmx",
|
||||||
"map/waste_town_3.tmx",
|
"map/debug_map.tmx"
|
||||||
"map/waste_town_2.tmx",
|
|
||||||
"map/snowabbey_1.tmx",
|
|
||||||
"map/snowabbey_2.tmx",
|
|
||||||
"map/snowabbey_3.tmx"
|
|
||||||
],
|
],
|
||||||
"resizeMap.removeObjects": true,
|
"resizeMap.removeObjects": true,
|
||||||
"textEdit.monospace": true
|
"textEdit.monospace": true
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<template>
|
<template>
|
||||||
<tileset firstgid="1" source="../tileset/buildings.tsx"/>
|
<tileset firstgid="1" source="../tileset/buildings.tsx"/>
|
||||||
<object name="Inn" type="spellsmith" gid="1391" width="16" height="16"/>
|
<object name="Spellsmith" type="spellsmith" gid="1391" width="16" height="16"/>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -4,12 +4,6 @@ size: 448,800
|
|||||||
format: RGBA8888
|
format: RGBA8888
|
||||||
filter: Nearest,Nearest
|
filter: Nearest,Nearest
|
||||||
repeat: none
|
repeat: none
|
||||||
IslandTown
|
|
||||||
xy: 144, 0
|
|
||||||
size: 48, 48
|
|
||||||
IslandTown
|
|
||||||
xy: 144, 0
|
|
||||||
size: 48, 48
|
|
||||||
IslandTown
|
IslandTown
|
||||||
xy: 144, 0
|
xy: 144, 0
|
||||||
size: 48, 48
|
size: 48, 48
|
||||||
@@ -19,33 +13,33 @@ MountainTown
|
|||||||
SwampTown
|
SwampTown
|
||||||
xy: 0, 0
|
xy: 0, 0
|
||||||
size: 48, 48
|
size: 48, 48
|
||||||
SwampTown
|
|
||||||
xy: 97, 336
|
|
||||||
size: 32, 32
|
|
||||||
ForestTown
|
ForestTown
|
||||||
xy: 352, 496
|
xy: 352, 496
|
||||||
size: 32, 32
|
size: 32, 32
|
||||||
ForestTown
|
|
||||||
xy: 384, 496
|
|
||||||
size: 32, 32
|
|
||||||
ForestTown
|
|
||||||
xy: 416, 496
|
|
||||||
size: 32, 32
|
|
||||||
ForestTown
|
|
||||||
xy: 0, 48
|
|
||||||
size: 32, 32
|
|
||||||
PlainsTown
|
PlainsTown
|
||||||
xy: 96, 0
|
xy: 96, 0
|
||||||
size: 48, 48
|
size: 48, 48
|
||||||
PlainsTown
|
|
||||||
xy: 160, 272
|
|
||||||
size: 32, 32
|
|
||||||
WasteTown
|
WasteTown
|
||||||
xy: 272, 128
|
xy: 272, 128
|
||||||
size: 48, 48
|
size: 48, 48
|
||||||
WasteTown
|
IslandCapital
|
||||||
xy: 320, 128
|
xy: 128, 592
|
||||||
size: 48, 48
|
size: 64, 64
|
||||||
|
MountainCapital
|
||||||
|
xy: 128, 720
|
||||||
|
size: 64, 64
|
||||||
|
SwampCapital
|
||||||
|
xy: 128, 464
|
||||||
|
size: 64, 64
|
||||||
|
ForestCapital
|
||||||
|
xy: 64, 656
|
||||||
|
size: 64, 64
|
||||||
|
PlainsCapital
|
||||||
|
xy: 0, 464
|
||||||
|
size: 64, 64
|
||||||
|
Spawn
|
||||||
|
xy: 304, 288
|
||||||
|
size: 16, 16
|
||||||
Gate
|
Gate
|
||||||
xy: 384, 128
|
xy: 384, 128
|
||||||
size: 64, 48
|
size: 64, 48
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 228 KiB After Width: | Height: | Size: 228 KiB |
Binary file not shown.
@@ -234,3 +234,24 @@ FortuneCoin
|
|||||||
SpiritGuard
|
SpiritGuard
|
||||||
xy: 192,160
|
xy: 192,160
|
||||||
size: 16, 16
|
size: 16, 16
|
||||||
|
MulticolorRune
|
||||||
|
xy: 352,64
|
||||||
|
size: 16, 16
|
||||||
|
ColorlessRune
|
||||||
|
xy: 336,80
|
||||||
|
size: 16, 16
|
||||||
|
BlackRune
|
||||||
|
xy: 352,80
|
||||||
|
size: 16, 16
|
||||||
|
RedRune
|
||||||
|
xy: 336,96
|
||||||
|
size: 16, 16
|
||||||
|
GreenRune
|
||||||
|
xy: 352,96
|
||||||
|
size: 16, 16
|
||||||
|
BlueRune
|
||||||
|
xy: 336,112
|
||||||
|
size: 16, 16
|
||||||
|
WhiteRune
|
||||||
|
xy: 352,112
|
||||||
|
size: 16, 16
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 267 KiB After Width: | Height: | Size: 270 KiB |
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
player.png
|
knight.png
|
||||||
size: 64,96
|
size: 64,96
|
||||||
format: RGBA8888
|
format: RGBA8888
|
||||||
filter: Nearest,Nearest
|
filter: Nearest,Nearest
|
||||||
|
|||||||
@@ -59,6 +59,7 @@
|
|||||||
"pointsOfInterest": [
|
"pointsOfInterest": [
|
||||||
"Black Castle",
|
"Black Castle",
|
||||||
"Swamp Town",
|
"Swamp Town",
|
||||||
|
"Swamp Capital",
|
||||||
"Swamp Town2",
|
"Swamp Town2",
|
||||||
"Zombie Town",
|
"Zombie Town",
|
||||||
"Graveyard",
|
"Graveyard",
|
||||||
|
|||||||
@@ -49,6 +49,7 @@
|
|||||||
"pointsOfInterest": [
|
"pointsOfInterest": [
|
||||||
"Blue Castle",
|
"Blue Castle",
|
||||||
"Island Town",
|
"Island Town",
|
||||||
|
"Island Capital",
|
||||||
"NestU",
|
"NestU",
|
||||||
"MerfolkPool",
|
"MerfolkPool",
|
||||||
"MerfolkPool1",
|
"MerfolkPool1",
|
||||||
|
|||||||
@@ -63,6 +63,7 @@
|
|||||||
],
|
],
|
||||||
"pointsOfInterest": [
|
"pointsOfInterest": [
|
||||||
"Green Castle",
|
"Green Castle",
|
||||||
|
"Forest Capital",
|
||||||
"Forest Town",
|
"Forest Town",
|
||||||
"ElfTown",
|
"ElfTown",
|
||||||
"WurmPond",
|
"WurmPond",
|
||||||
|
|||||||
@@ -1,317 +1,387 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "Sol Ring",
|
"name": "Sol Ring",
|
||||||
"equipmentSlot": "Left",
|
"equipmentSlot": "Left",
|
||||||
"effect": {
|
"effect": {
|
||||||
"startBattleWithCard": [
|
"startBattleWithCard": [
|
||||||
"Sol Ring"
|
"Sol Ring"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"iconName": "SolRing"
|
"iconName": "SolRing"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Mox Emerald",
|
"name": "Mox Emerald",
|
||||||
"equipmentSlot": "Neck",
|
"equipmentSlot": "Neck",
|
||||||
"effect": {
|
"effect": {
|
||||||
"startBattleWithCard": [
|
"startBattleWithCard": [
|
||||||
"Mox Emerald"
|
"Mox Emerald"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"description": "",
|
"description": "",
|
||||||
"iconName": "MoxEmerald"
|
"iconName": "MoxEmerald"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Black Lotus",
|
"name": "Black Lotus",
|
||||||
"equipmentSlot": "Right",
|
"equipmentSlot": "Right",
|
||||||
"effect": {
|
"effect": {
|
||||||
"startBattleWithCard": [
|
"startBattleWithCard": [
|
||||||
"Black Lotus"
|
"Black Lotus"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"iconName": "BlackLotus"
|
"iconName": "BlackLotus"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Mox Jet",
|
"name": "Mox Jet",
|
||||||
"equipmentSlot": "Neck",
|
"equipmentSlot": "Neck",
|
||||||
"effect": {
|
"effect": {
|
||||||
"startBattleWithCard": [
|
"startBattleWithCard": [
|
||||||
"Mox Jet"
|
"Mox Jet"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"iconName": "MoxJet"
|
"iconName": "MoxJet"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Mox Pearl",
|
"name": "Mox Pearl",
|
||||||
"equipmentSlot": "Neck",
|
"equipmentSlot": "Neck",
|
||||||
"effect": {
|
"effect": {
|
||||||
"startBattleWithCard": [
|
"startBattleWithCard": [
|
||||||
"Mox Pearl"
|
"Mox Pearl"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"description": "",
|
"description": "",
|
||||||
"iconName": "MoxPearl"
|
"iconName": "MoxPearl"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Mox Ruby",
|
"name": "Mox Ruby",
|
||||||
"equipmentSlot": "Neck",
|
"equipmentSlot": "Neck",
|
||||||
"effect": {
|
"effect": {
|
||||||
"startBattleWithCard": [
|
"startBattleWithCard": [
|
||||||
"Mox Ruby"
|
"Mox Ruby"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"iconName": "MoxRuby"
|
"iconName": "MoxRuby"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Mox Sapphire",
|
"name": "Mox Sapphire",
|
||||||
"equipmentSlot": "Neck",
|
"equipmentSlot": "Neck",
|
||||||
"effect": {
|
"effect": {
|
||||||
"startBattleWithCard": [
|
"startBattleWithCard": [
|
||||||
"Mox Sapphire"
|
"Mox Sapphire"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"iconName": "MoxSapphire"
|
"iconName": "MoxSapphire"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Life Amulet",
|
"name": "Life Amulet",
|
||||||
"equipmentSlot": "Neck",
|
"equipmentSlot": "Neck",
|
||||||
"effect": {
|
"effect": {
|
||||||
"lifeModifier": 2
|
"lifeModifier": 2
|
||||||
},
|
},
|
||||||
"iconName": "LifeAmulet"
|
"iconName": "LifeAmulet"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Red Key",
|
"name": "Red Key",
|
||||||
"description": "A mysterious red key.",
|
"description": "A mysterious red key.",
|
||||||
"iconName": "RedKey",
|
"iconName": "RedKey",
|
||||||
"questItem": true
|
"questItem": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "White Key",
|
"name": "White Key",
|
||||||
"description": "A mysterious white key.",
|
"description": "A mysterious white key.",
|
||||||
"iconName": "WhiteKey",
|
"iconName": "WhiteKey",
|
||||||
"questItem": true
|
"questItem": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Blue Key",
|
"name": "Blue Key",
|
||||||
"description": "A mysterious blue key.",
|
"description": "A mysterious blue key.",
|
||||||
"iconName": "BlueKey",
|
"iconName": "BlueKey",
|
||||||
"questItem": true
|
"questItem": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Green Key",
|
"name": "Green Key",
|
||||||
"description": "A mysterious green key.",
|
"description": "A mysterious green key.",
|
||||||
"iconName": "GreenKey",
|
"iconName": "GreenKey",
|
||||||
"questItem": true
|
"questItem": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Black Key",
|
"name": "Black Key",
|
||||||
"description": "A mysterious black key.",
|
"description": "A mysterious black key.",
|
||||||
"iconName": "BlackKey",
|
"iconName": "BlackKey",
|
||||||
"questItem": true
|
"questItem": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Strange Key",
|
"name": "Strange Key",
|
||||||
"description": "A mysterious key.",
|
"description": "A mysterious key.",
|
||||||
"iconName": "StrangeKey",
|
"iconName": "StrangeKey",
|
||||||
"questItem": true
|
"questItem": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Jungle Shield",
|
"name": "Jungle Shield",
|
||||||
"equipmentSlot": "Right",
|
"equipmentSlot": "Right",
|
||||||
"effect": {
|
"effect": {
|
||||||
"startBattleWithCard": [
|
"startBattleWithCard": [
|
||||||
"g_0_1_plant"
|
"g_0_1_plant"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"iconName": "JungleShield"
|
"iconName": "JungleShield"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Iron Shield",
|
"name": "Iron Shield",
|
||||||
"equipmentSlot": "Right",
|
"equipmentSlot": "Right",
|
||||||
"effect": {
|
"effect": {
|
||||||
"startBattleWithCard": [
|
"startBattleWithCard": [
|
||||||
"c_0_2_a_wall_defender"
|
"c_0_2_a_wall_defender"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"iconName": "IronShield",
|
"iconName": "IronShield",
|
||||||
"cost": 500
|
"cost": 500
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Steel Shield",
|
"name": "Steel Shield",
|
||||||
"equipmentSlot": "Right",
|
"equipmentSlot": "Right",
|
||||||
"effect": {
|
"effect": {
|
||||||
"lifeModifier": 1,
|
"lifeModifier": 1,
|
||||||
"startBattleWithCard": [
|
"startBattleWithCard": [
|
||||||
"w_0_3_wall_defender"
|
"w_0_3_wall_defender"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"iconName": "SteelShield",
|
"iconName": "SteelShield",
|
||||||
"cost": 1500
|
"cost": 1500
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Spirit Guard",
|
"name": "Spirit Guard",
|
||||||
"equipmentSlot": "Right",
|
"equipmentSlot": "Right",
|
||||||
"effect": {
|
"effect": {
|
||||||
"lifeModifier": 2,
|
"lifeModifier": 2,
|
||||||
"startBattleWithCard": [
|
"startBattleWithCard": [
|
||||||
"Geist of the Archives"
|
"Geist of the Archives"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"iconName": "SpiritGuard"
|
"iconName": "SpiritGuard"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Iron Armor",
|
"name": "Iron Armor",
|
||||||
"equipmentSlot": "Body",
|
"equipmentSlot": "Body",
|
||||||
"effect": {
|
"effect": {
|
||||||
"lifeModifier": 3
|
"lifeModifier": 3
|
||||||
},
|
},
|
||||||
"iconName": "IronArmor",
|
"iconName": "IronArmor",
|
||||||
"cost": 500
|
"cost": 500
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Steel Armor",
|
"name": "Steel Armor",
|
||||||
"equipmentSlot": "Body",
|
"equipmentSlot": "Body",
|
||||||
"effect": {
|
"effect": {
|
||||||
"lifeModifier": 5
|
"lifeModifier": 5
|
||||||
},
|
},
|
||||||
"iconName": "SteelArmor",
|
"iconName": "SteelArmor",
|
||||||
"cost": 1500
|
"cost": 1500
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Leather Boots",
|
"name": "Leather Boots",
|
||||||
"equipmentSlot": "Boots",
|
"equipmentSlot": "Boots",
|
||||||
"effect": {
|
"effect": {
|
||||||
"moveSpeed": 1.2
|
"moveSpeed": 1.2
|
||||||
},
|
},
|
||||||
"iconName": "LeatherBoots"
|
"iconName": "LeatherBoots"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Iron Boots",
|
"name": "Iron Boots",
|
||||||
"equipmentSlot": "Boots",
|
"equipmentSlot": "Boots",
|
||||||
"effect": {
|
"effect": {
|
||||||
"lifeModifier": 1,
|
"lifeModifier": 1,
|
||||||
"moveSpeed": 1.35
|
"moveSpeed": 1.35
|
||||||
},
|
},
|
||||||
"iconName": "IronBoots",
|
"iconName": "IronBoots",
|
||||||
"cost": 500
|
"cost": 500
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Steel Boots",
|
"name": "Steel Boots",
|
||||||
"equipmentSlot": "Boots",
|
"equipmentSlot": "Boots",
|
||||||
"effect": {
|
"effect": {
|
||||||
"lifeModifier": 2,
|
"lifeModifier": 2,
|
||||||
"moveSpeed": 1.4
|
"moveSpeed": 1.4
|
||||||
},
|
},
|
||||||
"iconName": "SteelBoots",
|
"iconName": "SteelBoots",
|
||||||
"cost": 1500
|
"cost": 1500
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Cheat",
|
"name": "Cheat",
|
||||||
"equipmentSlot": "Neck",
|
"equipmentSlot": "Neck",
|
||||||
"effect": {
|
"effect": {
|
||||||
"startBattleWithCard": [
|
"startBattleWithCard": [
|
||||||
"Blightsteel Colossus",
|
"Blightsteel Colossus",
|
||||||
"Lightning Greaves"
|
"Lightning Greaves"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"iconName": "Goose"
|
"iconName": "Goose"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Shell Wand",
|
"name": "Shell Wand",
|
||||||
"equipmentSlot": "Left",
|
"equipmentSlot": "Left",
|
||||||
"effect": {
|
"effect": {
|
||||||
"opponent": {
|
"opponent": {
|
||||||
"lifeModifier": -2
|
"lifeModifier": -2
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"iconName": "ShellWand"
|
"iconName": "ShellWand"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Flame Sword",
|
"name": "Flame Sword",
|
||||||
"equipmentSlot": "Left",
|
"equipmentSlot": "Left",
|
||||||
"effect": {
|
"effect": {
|
||||||
"opponent": {
|
"opponent": {
|
||||||
"lifeModifier": -5
|
"lifeModifier": -5
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"iconName": "FlameSword"
|
"iconName": "FlameSword"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Dungeon Map",
|
"name": "Dungeon Map",
|
||||||
"equipmentSlot": "Right",
|
"equipmentSlot": "Right",
|
||||||
"effect": {
|
"effect": {
|
||||||
"startBattleWithCard": [
|
"startBattleWithCard": [
|
||||||
"Dungeon Map"
|
"Dungeon Map"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"iconName": "DungeonMap"
|
"iconName": "DungeonMap"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Blood Vial",
|
"name": "Blood Vial",
|
||||||
"equipmentSlot": "Right",
|
"equipmentSlot": "Right",
|
||||||
"effect": {
|
"effect": {
|
||||||
"startBattleWithCard": [
|
"startBattleWithCard": [
|
||||||
"c_a_blood_draw"
|
"c_a_blood_draw"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"iconName": "Blood"
|
"iconName": "Blood"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Charm",
|
"name": "Charm",
|
||||||
"equipmentSlot": "Right",
|
"equipmentSlot": "Right",
|
||||||
"effect": {
|
"effect": {
|
||||||
"startBattleWithCard": [
|
"startBattleWithCard": [
|
||||||
"c_a_clue_draw"
|
"c_a_clue_draw"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"iconName": "Clue"
|
"iconName": "Clue"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Snack",
|
"name": "Snack",
|
||||||
"equipmentSlot": "Right",
|
"equipmentSlot": "Right",
|
||||||
"effect": {
|
"effect": {
|
||||||
"startBattleWithCard": [
|
"startBattleWithCard": [
|
||||||
"c_a_food_sac"
|
"c_a_food_sac"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"iconName": "Cheese"
|
"iconName": "Cheese"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Change",
|
"name": "Change",
|
||||||
"equipmentSlot": "Right",
|
"equipmentSlot": "Right",
|
||||||
"effect": {
|
"effect": {
|
||||||
"startBattleWithCard": [
|
"startBattleWithCard": [
|
||||||
"c_a_gold_sac"
|
"c_a_gold_sac"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"iconName": "Gold"
|
"iconName": "Gold"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Treasure",
|
"name": "Treasure",
|
||||||
"equipmentSlot": "Right",
|
"equipmentSlot": "Right",
|
||||||
"effect": {
|
"effect": {
|
||||||
"startBattleWithCard": [
|
"startBattleWithCard": [
|
||||||
"c_a_treasure_sac"
|
"c_a_treasure_sac"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"iconName": "Treasure"
|
"iconName": "Treasure"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Manasight Amulet",
|
"name": "Manasight Amulet",
|
||||||
"equipmentSlot": "Neck",
|
"equipmentSlot": "Neck",
|
||||||
"description": "Grants Manasight, letting you know the colors used by your adversaries.",
|
"effect": {
|
||||||
"effect": {
|
"colorView": true
|
||||||
"colorView": true
|
},
|
||||||
},
|
"description": "Grants Manasight, letting you know the colors used by your adversaries.",
|
||||||
"iconName": "RelicAmulet"
|
"iconName": "RelicAmulet"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Fortune Coin",
|
"name": "Fortune Coin",
|
||||||
"equipmentSlot": "Left",
|
"equipmentSlot": "Left",
|
||||||
"effect": {
|
"effect": {
|
||||||
"goldModifier": 0.85,
|
"name": "",
|
||||||
"cardRewardBonus": 1
|
"goldModifier": 0.85,
|
||||||
},
|
"cardRewardBonus": 1
|
||||||
"iconName": "FortuneCoin"
|
},
|
||||||
}
|
"description": "",
|
||||||
|
"iconName": "FortuneCoin"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Colorless rune",
|
||||||
|
"equipmentSlot": "",
|
||||||
|
"effect": {
|
||||||
|
"name": "",
|
||||||
|
"goldModifier": 0.85,
|
||||||
|
"cardRewardBonus": 1
|
||||||
|
},
|
||||||
|
"description": "Teleports you to the center",
|
||||||
|
"iconName": "ColorlessRune",
|
||||||
|
"questItem": true,
|
||||||
|
"cost": 100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "White rune",
|
||||||
|
"equipmentSlot": "",
|
||||||
|
"effect": {
|
||||||
|
"name": ""
|
||||||
|
},
|
||||||
|
"description": "Teleports you to the plains",
|
||||||
|
"iconName": "WhiteRune",
|
||||||
|
"questItem": true,
|
||||||
|
"cost": 100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Black rune",
|
||||||
|
"equipmentSlot": "",
|
||||||
|
"effect": {
|
||||||
|
"name": ""
|
||||||
|
},
|
||||||
|
"description": "Teleports you to the swamp",
|
||||||
|
"iconName": "BlackRune",
|
||||||
|
"questItem": true,
|
||||||
|
"cost": 100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Blue rune",
|
||||||
|
"equipmentSlot": "",
|
||||||
|
"effect": {
|
||||||
|
"name": ""
|
||||||
|
},
|
||||||
|
"description": "Teleports you to the island",
|
||||||
|
"iconName": "BlueRune",
|
||||||
|
"questItem": true,
|
||||||
|
"cost": 100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Red rune",
|
||||||
|
"equipmentSlot": "",
|
||||||
|
"effect": {
|
||||||
|
"name": ""
|
||||||
|
},
|
||||||
|
"description": "Teleports you to the mountain",
|
||||||
|
"iconName": "RedRune",
|
||||||
|
"questItem": true,
|
||||||
|
"cost": 100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Green rune",
|
||||||
|
"equipmentSlot": "",
|
||||||
|
"effect": {
|
||||||
|
"name": ""
|
||||||
|
},
|
||||||
|
"description": "Teleports you to the forest",
|
||||||
|
"iconName": "GreenRune",
|
||||||
|
"questItem": true,
|
||||||
|
"cost": 100
|
||||||
|
}
|
||||||
]
|
]
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -63,6 +63,7 @@
|
|||||||
"pointsOfInterest": [
|
"pointsOfInterest": [
|
||||||
"Red Castle",
|
"Red Castle",
|
||||||
"Mountain Town",
|
"Mountain Town",
|
||||||
|
"Mountain Capital",
|
||||||
"YuleTown",
|
"YuleTown",
|
||||||
"BarbarianCamp",
|
"BarbarianCamp",
|
||||||
"BarbarianCamp1",
|
"BarbarianCamp1",
|
||||||
|
|||||||
@@ -54,6 +54,7 @@
|
|||||||
"Doppelganger"
|
"Doppelganger"
|
||||||
],
|
],
|
||||||
"pointsOfInterest": [
|
"pointsOfInterest": [
|
||||||
|
"Spawn",
|
||||||
"Final Castle",
|
"Final Castle",
|
||||||
"Colorless Castle",
|
"Colorless Castle",
|
||||||
"Skep",
|
"Skep",
|
||||||
|
|||||||
@@ -51,6 +51,7 @@
|
|||||||
"pointsOfInterest": [
|
"pointsOfInterest": [
|
||||||
"White Castle",
|
"White Castle",
|
||||||
"Plains Town",
|
"Plains Town",
|
||||||
|
"Plains Capital",
|
||||||
"Monastery",
|
"Monastery",
|
||||||
"Monastery1",
|
"Monastery1",
|
||||||
"Monastery2",
|
"Monastery2",
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"width": 700,
|
"width": 700,
|
||||||
"height": 700,
|
"height": 700,
|
||||||
"playerStartPosX": 0.5025,
|
"playerStartPosX": 0.5,
|
||||||
"playerStartPosY": 0.495,
|
"playerStartPosY": 0.5,
|
||||||
"noiseZoomBiome": 30,
|
"noiseZoomBiome": 30,
|
||||||
"tileSize": 16,
|
"tileSize": 16,
|
||||||
"roadTileset": {
|
"roadTileset": {
|
||||||
|
|||||||
Reference in New Issue
Block a user