Render world map with more details
Changed SpellSmithScene to not display empty edition and fixed edition filter.
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 77 KiB |
@@ -69,10 +69,12 @@ public class RewardData {
|
||||
private static Iterable<PaperCard> allCards;
|
||||
private static Iterable<PaperCard> allEnemyCards;
|
||||
|
||||
private void initializeAllCards(){
|
||||
static private void initializeAllCards(){
|
||||
RewardData legals = Config.instance().getConfigData().legalCards;
|
||||
if(legals==null) allCards = FModel.getMagicDb().getCommonCards().getUniqueCardsNoAlt();
|
||||
else allCards = Iterables.filter(FModel.getMagicDb().getCommonCards().getUniqueCardsNoAlt(), new CardUtil.CardPredicate(legals, true));
|
||||
if(legals==null)
|
||||
allCards = FModel.getMagicDb().getCommonCards().getUniqueCardsNoAlt();
|
||||
else
|
||||
allCards = Iterables.filter(FModel.getMagicDb().getCommonCards().getUniqueCardsNoAlt(), new CardUtil.CardPredicate(legals, true));
|
||||
//Filter out specific cards.
|
||||
allCards = Iterables.filter(allCards, new Predicate<PaperCard>() {
|
||||
@Override
|
||||
@@ -92,7 +94,7 @@ public class RewardData {
|
||||
});
|
||||
}
|
||||
|
||||
public Iterable<PaperCard> getAllCards() {
|
||||
static public Iterable<PaperCard> getAllCards() {
|
||||
if(allCards == null) initializeAllCards();
|
||||
return allCards;
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ public class WorldData implements Serializable {
|
||||
public float playerStartPosY;
|
||||
public float noiseZoomBiome;
|
||||
public int tileSize;
|
||||
public int miniMapTileSize;
|
||||
public BiomeData roadTileset;
|
||||
public String biomesSprites;
|
||||
public float maxRoadDistance;
|
||||
|
||||
@@ -93,8 +93,8 @@ public class AdventurePlayer implements Serializable, SaveFileContent {
|
||||
gold = 0;
|
||||
maxLife = 20;
|
||||
life = 20;
|
||||
maxMana = 100;
|
||||
mana = 100;
|
||||
maxMana = 10;
|
||||
mana = 10;
|
||||
clearDecks();
|
||||
inventoryItems.clear();
|
||||
equippedItems.clear();
|
||||
|
||||
@@ -132,7 +132,6 @@ public class ArenaScene extends UIScene implements IAfterMatch {
|
||||
private void startButton() {
|
||||
if(roundsWon ==0)
|
||||
{
|
||||
goldLabel.setVisible(false);
|
||||
startDialog.show(stage);
|
||||
}
|
||||
else
|
||||
@@ -143,6 +142,7 @@ public class ArenaScene extends UIScene implements IAfterMatch {
|
||||
|
||||
int roundsWon =0;
|
||||
private void startArena() {
|
||||
goldLabel.setVisible(false);
|
||||
arenaStarted=true;
|
||||
startButton.setText(Forge.getLocalizer().getMessage("lblContinue"));
|
||||
doneButton.setText(Forge.getLocalizer().getMessage("lblConcede"));
|
||||
@@ -286,10 +286,10 @@ public class ArenaScene extends UIScene implements IAfterMatch {
|
||||
doneButton.setText(Forge.getLocalizer().getMessage("lblDone"));
|
||||
arenaData=data;
|
||||
//rand.setSeed(seed); allow to reshuffle arena enemies for now
|
||||
|
||||
enemies.clear();
|
||||
for(Actor fighter:fighters)
|
||||
arenaPlane.removeActor(fighter);
|
||||
fighters.clear();
|
||||
arenaPlane.clear();
|
||||
roundsWon =0;
|
||||
int numberOfEnemies= (int) (Math.pow(2f, data.rounds)-1);
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ import forge.adventure.util.RewardActor;
|
||||
import forge.card.CardEdition;
|
||||
import forge.card.ColorSet;
|
||||
import forge.item.PaperCard;
|
||||
import forge.model.FModel;
|
||||
import forge.util.MyRandom;
|
||||
|
||||
import java.util.*;
|
||||
@@ -59,7 +60,14 @@ public class SpellSmithScene extends UIScene {
|
||||
|
||||
List<CardEdition> editions = StaticData.instance().getSortedEditions();
|
||||
editions = editions.stream().filter(input -> {
|
||||
if(input == null) return false;
|
||||
if(input == null)
|
||||
return false;
|
||||
if(input.getType()== CardEdition.Type.REPRINT||input.getType()== CardEdition.Type.PROMO||input.getType()== CardEdition.Type.COLLECTOR_EDITION)
|
||||
return false;
|
||||
List<PaperCard> it = StreamSupport.stream(RewardData.getAllCards().spliterator(), false)
|
||||
.filter(input2 -> input2.getEdition().equals(input.getCode())).collect(Collectors.toList());
|
||||
if(it.size()==0)
|
||||
return false;
|
||||
return(!Arrays.asList(Config.instance().getConfigData().restrictedEditions).contains(input.getCode()));
|
||||
}).collect(Collectors.toList());
|
||||
editionList = ui.findActor("BSelectPlane");
|
||||
@@ -222,8 +230,7 @@ public class SpellSmithScene extends UIScene {
|
||||
|
||||
|
||||
public void filterResults() {
|
||||
RewardData R = new RewardData();
|
||||
Iterable<PaperCard> P = R.getAllCards();
|
||||
Iterable<PaperCard> P = RewardData.getAllCards();
|
||||
goldLabel.setText("Gold: "+ Current.player().getGold());
|
||||
float totalCost = basePrice * Current.player().goldModifier();
|
||||
final List<String> colorFilter = new ArrayList<>();
|
||||
@@ -251,7 +258,9 @@ public class SpellSmithScene extends UIScene {
|
||||
P = StreamSupport.stream(P.spliterator(), false).filter(input -> {
|
||||
//L|Basic Land, C|Common, U|Uncommon, R|Rare, M|Mythic Rare, S|Special, N|None
|
||||
if (input == null) return false;
|
||||
if(!edition.isEmpty()) if (!input.getEdition().equals(edition)) return false;
|
||||
final CardEdition cardEdition = FModel.getMagicDb().getEditions().get(edition);
|
||||
|
||||
if(cardEdition!=null&&cardEdition.getCardInSet(input.getName()).size()==0) return false;
|
||||
if(colorFilter.size() > 0) if(input.getRules().getColor() != ColorSet.fromNames(colorFilter)) return false;
|
||||
if(!rarity.isEmpty()) if (!input.getRarity().toString().equals(rarity)) return false;
|
||||
if(cost_low > -1) {
|
||||
|
||||
@@ -154,6 +154,18 @@ public static ConsoleCommandInterpreter getInstance()
|
||||
Current.player().giveGold(amount);
|
||||
return "Added "+amount+" gold";
|
||||
});
|
||||
registerCommand(new String[]{"give", "mana"}, s -> {
|
||||
if(s.length<1) return "Command needs 1 parameter: Amount.";
|
||||
int amount;
|
||||
try {
|
||||
amount=Integer.parseInt(s[0]);
|
||||
}
|
||||
catch (Exception e) {
|
||||
return "Can not convert " + s[0] + " to number";
|
||||
}
|
||||
Current.player().addMaxMana(amount);
|
||||
return "Added " + amount + " max mana";
|
||||
});
|
||||
registerCommand(new String[]{"give", "life"}, s -> {
|
||||
if(s.length<1) return "Command needs 1 parameter: Amount.";
|
||||
int amount;
|
||||
|
||||
@@ -283,7 +283,9 @@ public class CardUtil {
|
||||
if(reward.getType()== Reward.Type.Life)
|
||||
return reward.getCount()*500;
|
||||
if(reward.getType()== Reward.Type.Mana)
|
||||
return reward.getCount()*50;
|
||||
return reward.getCount()*500;
|
||||
if(reward.getType()== Reward.Type.Gold)
|
||||
return reward.getCount();
|
||||
return 1000;
|
||||
}
|
||||
|
||||
|
||||
@@ -24,9 +24,9 @@ public abstract class DrawOnPixmap {
|
||||
textureData.prepare();
|
||||
}
|
||||
on.drawPixmap(textureData.consumePixmap(), x, y, from.getRegionX(), from.getRegionY(), from.getRegionWidth(), from.getRegionHeight());
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static void drawText(Pixmap drawingMap, String itemText, int x, int y, float width, boolean bigText, Color color) {
|
||||
//used for big numbers on Gold/Life for reward...
|
||||
BitmapFont font = bigText ? Controls.getBitmapFont("big") : Controls.getBitmapFont("default");
|
||||
|
||||
@@ -33,7 +33,6 @@ import java.util.*;
|
||||
*/
|
||||
public class World implements Disposable, SaveFileContent {
|
||||
private WorldData data;
|
||||
static final private int hudMapScale=4;
|
||||
private Pixmap biomeImage;
|
||||
private long[][] biomeMap;
|
||||
private int[][] terrainMap;
|
||||
@@ -292,6 +291,9 @@ public class World implements Disposable, SaveFileContent {
|
||||
long startTime = System.currentTimeMillis();
|
||||
|
||||
loadWorldData();
|
||||
//////////////////
|
||||
///////// initialize
|
||||
//////////////////
|
||||
|
||||
if (seed == 0) {
|
||||
seed = random.nextLong();
|
||||
@@ -306,7 +308,6 @@ public class World implements Disposable, SaveFileContent {
|
||||
//save at all data
|
||||
biomeMap = new long[width][height];
|
||||
terrainMap = new int[width][height];
|
||||
Pixmap pix = new Pixmap(width*hudMapScale, height*hudMapScale, Pixmap.Format.RGBA8888);
|
||||
|
||||
for (int x = 0; x < width; x++) {
|
||||
for (int y = 0; y < height; y++) {
|
||||
@@ -315,13 +316,13 @@ public class World implements Disposable, SaveFileContent {
|
||||
}
|
||||
}
|
||||
|
||||
pix.setColor(1, 0, 0, 1);
|
||||
pix.fill();
|
||||
|
||||
final int[] biomeIndex = {-1};
|
||||
currentTime[0] = measureGenerationTime("loading data", currentTime[0]);
|
||||
HashMap<BiomeStructureData, BiomeStructure> structureDataMap = new HashMap<>();
|
||||
|
||||
//////////////////
|
||||
///////// calculation structure position with wavefunctioncollapse
|
||||
//////////////////
|
||||
for (BiomeData biome : data.GetBiomes()) {
|
||||
if (biome.structures != null) {
|
||||
int biomeWidth = (int) Math.round(biome.width * (double) width);
|
||||
@@ -338,6 +339,10 @@ public class World implements Disposable, SaveFileContent {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//////////////////
|
||||
///////// calculation each biome position based on noise and radius
|
||||
//////////////////
|
||||
FThreads.invokeInEdtNowOrLater(() -> {
|
||||
for (BiomeData biome : data.GetBiomes()) {
|
||||
|
||||
@@ -371,9 +376,6 @@ public class World implements Disposable, SaveFileContent {
|
||||
color.toHsv(hsv);
|
||||
int count = (int) ((noiseValue - 0.5) * 10 / 4);
|
||||
//hsv[2]+=(count*0.2);
|
||||
color.fromHsv(hsv);
|
||||
pix.setColor(color.r, color.g, color.b, 1);
|
||||
pix.fillRectangle(x*hudMapScale, y*hudMapScale,hudMapScale,hudMapScale);
|
||||
biomeMap[x][y] |= (1L << biomeIndex[0]);
|
||||
int terrainCounter = 1;
|
||||
terrainMap[x][y] = 0;
|
||||
@@ -382,6 +384,7 @@ public class World implements Disposable, SaveFileContent {
|
||||
float terrainNoise = ((float) noise.eval(x / (float) width * (noiseZoom * terrain.resolution), y / (float) height * (noiseZoom * terrain.resolution)) + 1) / 2;
|
||||
if (terrainNoise >= terrain.min && terrainNoise <= terrain.max) {
|
||||
terrainMap[x][y] = terrainCounter;
|
||||
//pix.fillRectangle(x*data.miniMapTileSize, y*data.miniMapTileSize,data.miniMapTileSize,data.miniMapTileSize);
|
||||
}
|
||||
terrainCounter++;
|
||||
}
|
||||
@@ -404,8 +407,8 @@ public class World implements Disposable, SaveFileContent {
|
||||
|
||||
int structureIndex = structure.objectID(structureXStart, structureYStart);
|
||||
if (structureIndex >= 0) {
|
||||
pix.setColor(data.mappingInfo[structureIndex].getColor());
|
||||
pix.fillRectangle(x*hudMapScale, y*hudMapScale,hudMapScale,hudMapScale);
|
||||
//pix.setColor(data.mappingInfo[structureIndex].getColor());
|
||||
//pix.fillRectangle(x*data.miniMapTileSize, y*data.miniMapTileSize,data.miniMapTileSize,data.miniMapTileSize);
|
||||
terrainMap[x][y] = terrainCounter + structureIndex;
|
||||
if (structure.collision(structureXStart, structureYStart))
|
||||
terrainMap[x][y] |= collisionBit;
|
||||
@@ -423,6 +426,9 @@ public class World implements Disposable, SaveFileContent {
|
||||
}
|
||||
currentTime[0] = measureGenerationTime("biomes in total", currentTime[0]);
|
||||
|
||||
//////////////////
|
||||
///////// set poi placement
|
||||
//////////////////
|
||||
mapPoiIds = new PointOfInterestMap(getChunkSize(), data.tileSize, data.width / getChunkSize(), data.height / getChunkSize());
|
||||
List<PointOfInterest> towns = new ArrayList<>();
|
||||
List<PointOfInterest> notTowns = new ArrayList<>();
|
||||
@@ -505,8 +511,8 @@ public class World implements Disposable, SaveFileContent {
|
||||
|
||||
if(marker!=null)
|
||||
{
|
||||
int xInPixels= (int) ((x / data.tileSize)*hudMapScale);
|
||||
int yInPixels= (int) ((height-(y / data.tileSize))*hudMapScale);
|
||||
int xInPixels= (int) ((x / data.tileSize)*data.miniMapTileSize);
|
||||
int yInPixels= (int) ((height-(y / data.tileSize))*data.miniMapTileSize);
|
||||
xInPixels-=(marker.getRegionWidth() /2);
|
||||
yInPixels-=(marker.getRegionHeight() /2);
|
||||
drawPixmapLater(mapMarkerPixmap,marker.getRegionX(),marker.getRegionY(),
|
||||
@@ -527,7 +533,9 @@ public class World implements Disposable, SaveFileContent {
|
||||
}
|
||||
currentTime[0] = measureGenerationTime("poi placement", currentTime[0]);
|
||||
|
||||
//sort towns
|
||||
//////////////////
|
||||
///////// sort towns and build roads in between
|
||||
//////////////////
|
||||
List<Pair<PointOfInterest, PointOfInterest>> allSortedTowns = new ArrayList<>();
|
||||
|
||||
HashSet<Long> usedEdges = new HashSet<>();//edge is first 32 bits id of first id and last 32 bits id of second
|
||||
@@ -583,7 +591,6 @@ public class World implements Disposable, SaveFileContent {
|
||||
allPOIPathsToNextTown.add(Pair.of(poi, towns.get(smallestIndex)));
|
||||
}
|
||||
biomeIndex[0]++;
|
||||
pix.setColor(0.8f, 0.8f, 0.9f, 1f);
|
||||
|
||||
//reset terrain path to the next town
|
||||
for (Pair<PointOfInterest, PointOfInterest> poiToTown : allPOIPathsToNextTown) {
|
||||
@@ -635,11 +642,10 @@ public class World implements Disposable, SaveFileContent {
|
||||
int sy = startY < y1 ? 1 : -1;
|
||||
int err = dx - dy;
|
||||
int e2;
|
||||
while (true) {
|
||||
for (int i=0;i<1000;i++) {
|
||||
if (startX < 0 || startY <= 0 || startX >= width || startY > height) continue;
|
||||
biomeMap[startX][height - startY] |= (1L << biomeIndex[0]);
|
||||
terrainMap[startX][height - startY] = 0;
|
||||
pix.fillRectangle(startX*hudMapScale, (height - startY)*hudMapScale,hudMapScale,hudMapScale);
|
||||
|
||||
if (startX == x1 && startY == y1)
|
||||
break;
|
||||
@@ -655,6 +661,70 @@ public class World implements Disposable, SaveFileContent {
|
||||
}
|
||||
currentTime[0] = measureGenerationTime("roads", currentTime[0]);
|
||||
|
||||
//////////////////
|
||||
///////// draw mini map
|
||||
//////////////////
|
||||
|
||||
Pixmap pix = new Pixmap(width*data.miniMapTileSize, height*data.miniMapTileSize, Pixmap.Format.RGBA8888);
|
||||
pix.setColor(1, 0, 0, 1);
|
||||
pix.fill();
|
||||
for (int x = 0; x < width; x++) {
|
||||
for (int y = 0; y < height; y++) {
|
||||
if(highestBiome(biomeMap[x][y])>=data.GetBiomes().size())
|
||||
{
|
||||
Pixmap smallPixmap=createSmallPixmap(data.roadTileset.tilesetAtlas,data.roadTileset.tilesetName,0);
|
||||
pix.drawPixmap(smallPixmap,x*data.miniMapTileSize, y*data.miniMapTileSize);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
BiomeData biome=data.GetBiomes().get( highestBiome(biomeMap[x][y]));
|
||||
int terrainIndex=terrainMap[x][y]&~terrainMask;
|
||||
if(terrainIndex>biome.terrain.length)
|
||||
{
|
||||
Pixmap smallPixmap=createSmallPixmap(biome.tilesetAtlas,biome.tilesetName,0);
|
||||
pix.drawPixmap(smallPixmap,x*data.miniMapTileSize, y*data.miniMapTileSize);
|
||||
|
||||
terrainIndex-=biome.terrain.length;
|
||||
terrainIndex--;
|
||||
for(BiomeStructureData structData:biome.structures)
|
||||
{
|
||||
if(terrainIndex>=structData.mappingInfo.length)
|
||||
{
|
||||
terrainIndex-=structData.mappingInfo.length;
|
||||
continue;
|
||||
}
|
||||
smallPixmap=createSmallPixmap(structData.structureAtlasPath,structData.mappingInfo[terrainIndex].name,0);
|
||||
pix.drawPixmap(smallPixmap,x*data.miniMapTileSize, y*data.miniMapTileSize);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Pixmap smallPixmap=createSmallPixmap(biome.tilesetAtlas,biome.tilesetName,terrainIndex);
|
||||
pix.drawPixmap(smallPixmap,x*data.miniMapTileSize, y*data.miniMapTileSize);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
for(Map.Entry<String, Pair<Pixmap, HashMap<String, Pixmap>>> entry:pixmapHash.entrySet())
|
||||
{
|
||||
entry.getValue().getLeft().dispose();
|
||||
for(Map.Entry<String, Pixmap> pairEntry:entry.getValue().getRight().entrySet())
|
||||
{
|
||||
pairEntry.getValue().dispose();
|
||||
}
|
||||
}
|
||||
drawPixmapNow(pix);
|
||||
currentTime[0] = measureGenerationTime("mini map", currentTime[0]);
|
||||
|
||||
|
||||
//////////////////
|
||||
///////// distribute small rocks and trees across the map
|
||||
//////////////////
|
||||
mapObjectIds = new SpritesDataMap(getChunkSize(), data.tileSize, data.width / getChunkSize());
|
||||
for (int x = 0; x < width; x++) {
|
||||
for (int y = 0; y < height; y++) {
|
||||
@@ -685,7 +755,6 @@ public class World implements Disposable, SaveFileContent {
|
||||
}
|
||||
}
|
||||
}
|
||||
drawPixmapNow(pix);
|
||||
mapMarkerPixmap.dispose();
|
||||
biomeImage = pix;
|
||||
measureGenerationTime("sprites", currentTime[0]);
|
||||
@@ -699,6 +768,42 @@ public class World implements Disposable, SaveFileContent {
|
||||
return this;
|
||||
}
|
||||
|
||||
HashMap<String,Pair<Pixmap,HashMap<String,Pixmap>>> pixmapHash=new HashMap<>();
|
||||
private Pixmap createSmallPixmap(String tilesetName, String key, int i) {
|
||||
|
||||
if(i>2)i=2;
|
||||
String tileSetNameWithIndex;
|
||||
if(i==0)
|
||||
tileSetNameWithIndex=(key);
|
||||
else
|
||||
tileSetNameWithIndex=(key+"_"+i);
|
||||
if(!pixmapHash.containsKey(tilesetName))
|
||||
{
|
||||
TextureAtlas.AtlasRegion region;
|
||||
TextureAtlas atlas=Config.instance().getAtlas(tilesetName);
|
||||
region=atlas.findRegion(tileSetNameWithIndex);
|
||||
TextureData data=region.getTexture().getTextureData();
|
||||
if (!data.isPrepared()) {
|
||||
data.prepare();
|
||||
}
|
||||
pixmapHash.put(tilesetName,Pair.of(data.consumePixmap(),new HashMap<>()));
|
||||
}
|
||||
Pair<Pixmap,HashMap<String,Pixmap>> pair=pixmapHash.get(tilesetName);
|
||||
if(!pair.getRight().containsKey(tileSetNameWithIndex))
|
||||
{
|
||||
TextureAtlas atlas=Config.instance().getAtlas(tilesetName);
|
||||
TextureAtlas.AtlasRegion region=atlas.findRegion(tileSetNameWithIndex);
|
||||
int tileSize=data.tileSize;
|
||||
Pixmap smallPixmap=new Pixmap(data.miniMapTileSize,data.miniMapTileSize, Pixmap.Format.RGBA8888);
|
||||
smallPixmap.setColor(0,0,0,0);
|
||||
smallPixmap.fill();
|
||||
smallPixmap.drawPixmap(pair.getLeft(),0,0,region.getRegionX(),region.getRegionY(),data.miniMapTileSize,data.miniMapTileSize);
|
||||
pair.getRight().put(tileSetNameWithIndex,smallPixmap);
|
||||
}
|
||||
return pair.getRight().get(tileSetNameWithIndex);
|
||||
|
||||
}
|
||||
|
||||
class DrawInfo
|
||||
{
|
||||
Pixmap mapMarkerPixmap;
|
||||
|
||||
@@ -36,11 +36,28 @@
|
||||
"Study Hall",
|
||||
"Witch's Clinic"
|
||||
],
|
||||
"restrictedEditions": [],
|
||||
"restrictedEditions": [
|
||||
"HTR",
|
||||
"HTR17",
|
||||
"HTR18",
|
||||
"HTR19",
|
||||
"HTR20",
|
||||
"PCEL",
|
||||
"DS0",
|
||||
"HHO",
|
||||
"CMB1",
|
||||
"UNF",
|
||||
"UGL",
|
||||
"UNH",
|
||||
"UND",
|
||||
"PUST",
|
||||
"UST"
|
||||
],
|
||||
"difficulties": [
|
||||
{
|
||||
"name": "Easy",
|
||||
"startingLife": 16,
|
||||
"startingMana": 32,
|
||||
"staringMoney": 500,
|
||||
"enemyLifeFactor": 0.8,
|
||||
"spawnRank": 0,
|
||||
@@ -68,6 +85,7 @@
|
||||
},{
|
||||
"name": "Normal",
|
||||
"startingLife": 12,
|
||||
"startingMana": 25,
|
||||
"staringMoney": 250,
|
||||
"startingDifficulty": true,
|
||||
"enemyLifeFactor": 1.0,
|
||||
@@ -95,6 +113,7 @@
|
||||
},{
|
||||
"name": "Hard",
|
||||
"startingLife": 8,
|
||||
"startingMana": 10,
|
||||
"staringMoney": 125,
|
||||
"enemyLifeFactor": 1.5,
|
||||
"spawnRank": 2,
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
"activeFile": "map/main_story/plains_capital.tmx",
|
||||
"automapping.whileDrawing": false,
|
||||
"expandedProjectPaths": [
|
||||
"map",
|
||||
"tileset",
|
||||
"obj",
|
||||
"map",
|
||||
"map/main_story"
|
||||
],
|
||||
"file.lastUsedOpenFilter": "All Files (*)",
|
||||
@@ -1548,11 +1548,14 @@
|
||||
}
|
||||
},
|
||||
"map/forest_town.tmx": {
|
||||
"expandedObjectLayers": [
|
||||
4
|
||||
],
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 254.99999999999997,
|
||||
"y": 133
|
||||
"x": 239.66666666666666,
|
||||
"y": 154
|
||||
}
|
||||
},
|
||||
"map/fort_1.tmx": {
|
||||
@@ -2124,48 +2127,60 @@
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 93,
|
||||
"y": 911.3333333333333
|
||||
"x": 239.66666666666666,
|
||||
"y": 911.6666666666666
|
||||
}
|
||||
},
|
||||
"map/main_story/forest_capital.tmx": {
|
||||
"scale": 2,
|
||||
"selectedLayer": 1,
|
||||
"expandedObjectLayers": [
|
||||
4
|
||||
],
|
||||
"scale": 3,
|
||||
"selectedLayer": 5,
|
||||
"viewCenter": {
|
||||
"x": 320.25,
|
||||
"y": 320
|
||||
"x": 319.8333333333333,
|
||||
"y": 319.8333333333333
|
||||
}
|
||||
},
|
||||
"map/main_story/green_castle.tmx": {
|
||||
"scale": 3,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 245.66666666666666,
|
||||
"y": 239.66666666666666
|
||||
"x": 239.83333333333331,
|
||||
"y": 239.83333333333331
|
||||
}
|
||||
},
|
||||
"map/main_story/island_capital.tmx": {
|
||||
"scale": 3,
|
||||
"selectedLayer": 1,
|
||||
"expandedObjectLayers": [
|
||||
4
|
||||
],
|
||||
"scale": 1,
|
||||
"selectedLayer": 5,
|
||||
"viewCenter": {
|
||||
"x": 237.83333333333331,
|
||||
"y": 227
|
||||
"x": 319.5,
|
||||
"y": 319.5
|
||||
}
|
||||
},
|
||||
"map/main_story/mountain_capital.tmx": {
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 2,
|
||||
"expandedObjectLayers": [
|
||||
4
|
||||
],
|
||||
"scale": 4,
|
||||
"selectedLayer": 5,
|
||||
"viewCenter": {
|
||||
"x": 117.66666666666663,
|
||||
"y": 412
|
||||
"x": 373.125,
|
||||
"y": 216.75
|
||||
}
|
||||
},
|
||||
"map/main_story/plains_capital.tmx": {
|
||||
"scale": 3,
|
||||
"selectedLayer": 4,
|
||||
"expandedObjectLayers": [
|
||||
4
|
||||
],
|
||||
"scale": 2,
|
||||
"selectedLayer": 5,
|
||||
"viewCenter": {
|
||||
"x": 527.8333333333333,
|
||||
"y": 385.66666666666663
|
||||
"x": 410.75,
|
||||
"y": 173.5
|
||||
}
|
||||
},
|
||||
"map/main_story/red_castle.tmx": {
|
||||
@@ -2173,7 +2188,7 @@
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 239.75,
|
||||
"y": 240
|
||||
"y": 239.75
|
||||
}
|
||||
},
|
||||
"map/main_story/skep.tmx": {
|
||||
@@ -2188,16 +2203,19 @@
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 240.9999999999999,
|
||||
"y": 239.33333333333331
|
||||
"x": 239.66666666666666,
|
||||
"y": 239.66666666666669
|
||||
}
|
||||
},
|
||||
"map/main_story/swamp_capital.tmx": {
|
||||
"expandedObjectLayers": [
|
||||
4
|
||||
],
|
||||
"scale": 3,
|
||||
"selectedLayer": 5,
|
||||
"viewCenter": {
|
||||
"x": 408.16666666666663,
|
||||
"y": 257.3333333333333
|
||||
"x": 319.8333333333333,
|
||||
"y": 319.8333333333333
|
||||
}
|
||||
},
|
||||
"map/main_story/unbenannt.tmx": {
|
||||
@@ -2220,8 +2238,8 @@
|
||||
"scale": 4,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 302.875,
|
||||
"y": 185
|
||||
"x": 239.875,
|
||||
"y": 239.875
|
||||
}
|
||||
},
|
||||
"map/maze_1.tmx": {
|
||||
@@ -2829,13 +2847,15 @@
|
||||
"map/main_story/final_castle.tmx",
|
||||
"map/main_story/white_castle.tmx",
|
||||
"tileset/main.tsx",
|
||||
"tileset/buildings.tsx"
|
||||
"tileset/buildings.tsx",
|
||||
"map/forest_town.tmx"
|
||||
],
|
||||
"project": "main.tiled-project",
|
||||
"property.type": "string",
|
||||
"recentFiles": [
|
||||
"map/main_story/green_castle.tmx",
|
||||
"map/main_story/red_castle.tmx",
|
||||
"map/forest_town.tmx",
|
||||
"tileset/buildings.tsx",
|
||||
"tileset/main.tsx",
|
||||
"map/main_story/white_castle.tmx",
|
||||
@@ -2844,8 +2864,7 @@
|
||||
"map/main_story/island_capital.tmx",
|
||||
"map/main_story/mountain_capital.tmx",
|
||||
"map/main_story/swamp_capital.tmx",
|
||||
"map/main_story/forest_capital.tmx",
|
||||
"map/main_story/plains_capital.tmx"
|
||||
"map/main_story/forest_capital.tmx"
|
||||
],
|
||||
"resizeMap.removeObjects": true,
|
||||
"textEdit.monospace": true
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.5" tiledversion="1.7.2" orientation="orthogonal" renderorder="right-down" width="40" height="40" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="64">
|
||||
<map version="1.9" tiledversion="1.9.1" orientation="orthogonal" renderorder="right-down" width="40" height="40" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="71">
|
||||
<editorsettings>
|
||||
<export target="wastetown..tmx" format="tmx"/>
|
||||
</editorsettings>
|
||||
@@ -30,55 +30,20 @@
|
||||
</layer>
|
||||
<layer id="5" name="Overlay" width="40" height="40">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJzt1DsKgDAMBuB/8QEKnTP0PHoq9Up6OVezi0UwEEn/Dzq0U54FiIjemTIwZ+8ofLEGdlhLW7sAh3hHYYfz8T+D9mMM2hOveWt0Z9tAe0tlkXYo4h/9lFOnb/3HXCPWi4jqtCRg1bMl70juTinfiaheFwqTDNA=
|
||||
eJzt1DkKgDAQBdDfuAupp8h59FTqlfRytk4vBsHAyOQ/SJFUswYgInpnisAcraOwxRrkw1rmtQtwiHUU+XA+/qfTfvROe2I1b5XubO1obylt0BkbneyQxz/6KadG39qPuXqsFxGVaQnAqmcL1pHcnZK+E1G5Ls9cDMw=
|
||||
</data>
|
||||
</layer>
|
||||
<objectgroup id="4" name="Objects">
|
||||
<object id="41" template="../../obj/shop.tx" x="513" y="242">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="56" template="../../obj/shop.tx" x="208" y="162">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="57" template="../../obj/shop.tx" x="449" y="132">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="43" template="../../obj/shop.tx" x="97" y="419">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="47" template="../../obj/inn.tx" x="199" y="419"/>
|
||||
<object id="49" template="../../obj/shop.tx" x="466" y="417">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="50" template="../../obj/shop.tx" x="450" y="309">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="51" template="../../obj/shop.tx" x="530" y="390">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="52" template="../../obj/shop.tx" x="256" y="194">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="53" template="../../obj/spellsmith.tx" x="327" y="228"/>
|
||||
<object id="55" template="../../obj/shop.tx" x="479" y="453">
|
||||
<properties>
|
||||
<property name="shopList" value="Plains"/>
|
||||
<property name="shopList" value="Forest"/>
|
||||
<property name="signYOffset" type="float" value="0"/>
|
||||
</properties>
|
||||
</object>
|
||||
@@ -92,15 +57,50 @@
|
||||
<object id="61" template="../../obj/arena.tx" x="352" y="583"/>
|
||||
<object id="62" template="../../obj/shop.tx" x="361" y="370">
|
||||
<properties>
|
||||
<property name="shopList" value="Plains"/>
|
||||
<property name="shopList" value="GreenEquipment"/>
|
||||
<property name="signYOffset" type="float" value="0"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="63" template="../../obj/shop.tx" x="216" y="290">
|
||||
<properties>
|
||||
<property name="shopList" value="Plains"/>
|
||||
<property name="shopList" value="GreenItems"/>
|
||||
<property name="signYOffset" type="float" value="0"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="64" template="../../obj/shop.tx" x="466" y="417">
|
||||
<properties>
|
||||
<property name="shopList" value="Instant,Creature,Green,Gruul,Selesnya,Golgari,Simic,Elf "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="65" template="../../obj/shop.tx" x="529" y="386">
|
||||
<properties>
|
||||
<property name="shopList" value="Instant,Creature,Green,Gruul,Selesnya,Golgari,Simic,Elf "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="66" template="../../obj/shop.tx" x="449" y="305">
|
||||
<properties>
|
||||
<property name="shopList" value="Instant,Creature,Green,Gruul,Selesnya,Golgari,Simic,Elf "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="67" template="../../obj/shop.tx" x="513" y="241">
|
||||
<properties>
|
||||
<property name="shopList" value="Instant,Creature,Green,Gruul,Selesnya,Golgari,Simic,Elf "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="68" template="../../obj/shop.tx" x="448" y="130">
|
||||
<properties>
|
||||
<property name="shopList" value="Instant,Creature,Green,Gruul,Selesnya,Golgari,Simic,Elf "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="69" template="../../obj/shop.tx" x="257" y="194">
|
||||
<properties>
|
||||
<property name="shopList" value="Instant,Creature,Green,Gruul,Selesnya,Golgari,Simic,Elf "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="70" template="../../obj/shop.tx" x="97" y="417">
|
||||
<properties>
|
||||
<property name="shopList" value="Instant,Creature,Green,Gruul,Selesnya,Golgari,Simic,Elf "/>
|
||||
</properties>
|
||||
</object>
|
||||
</objectgroup>
|
||||
</map>
|
||||
|
||||
@@ -90,13 +90,13 @@
|
||||
<object id="61" template="../../obj/arena.tx" x="216" y="403"/>
|
||||
<object id="62" template="../../obj/shop.tx" x="360" y="370">
|
||||
<properties>
|
||||
<property name="shopList" value="Plains"/>
|
||||
<property name="shopList" value="BlueItems"/>
|
||||
<property name="signYOffset" type="float" value="0"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="63" template="../../obj/shop.tx" x="263" y="371">
|
||||
<properties>
|
||||
<property name="shopList" value="Plains"/>
|
||||
<property name="shopList" value="BlueEquipment"/>
|
||||
<property name="signYOffset" type="float" value="0"/>
|
||||
</properties>
|
||||
</object>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
</layer>
|
||||
<layer id="2" name="Ground" width="40" height="40">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJzdmc1u00AQx4dYFFo1uTT2IcYhCKQCByRUPs4InqDwJnAnLULio6SJKB8VZy6FlymovAAtJ9QmHHJmB+/K4/Xsem2Z4DDSX7vtbta//MfeeqerLYCXzay2hFRs+ABP/Ljd1PRY6EKQzL0s1rvagkysNwBeeQAT0U6ljoW2vUQnZEzpOcP2rJm+xvkgZsC2J9SXXL0gzWaLMcM09LJzJkQ4f7WV5rpi+P400MdIcB213dgwBtKfX43s2Eibo9iwNXmmxw7pKx9t3l0/xTPqnunzBl46566eucZrx3kcvx54z+Jz8Ebobc30rhl7iXxrwrsbNdNNmU/Ma535MOaN77bQlxnrVgE+OjarsDHMK9/BCkDgV6tvK9Xx+X71PpnWNDHs1JzPNqbWOt0BWOjE/bALcK6bXf8oAvgRJT+HoZgXxv1ItN3w7/EtLAKccdBHy9jZRZ5P/R2exf13Zyl/TpX+PWwXezaRL2/OI8M7I8fwczmfvUi4+GcKjgHPCsfL9eXD4N6v5oHvotgPLsk9waXP8X0X+82h3HM+y3Zbtp9kO4zsfNz7H4657ilUd5fM+0pZ//LGioQpv3uaZ3uad+htUb4q8lskivKVye89je9pJ+kPNe8Gmqf/Mr8u8T/x7ZY8ryJf2bP0+6Y7XxnheshX1VlwHvhM7wd14Xsha5D7rfLn1gPZfpV8+9rvywrXw/eXw3ZSx+NqSlhDesDU7LjQn1/usx/clvoTmN/NnFrj2FBTdOHDz255APcbsSjrNUN9bUT6mN++zzOuyzWxZmy6hgvflNRr1Tqu+cD8bshacl9jpPXiE3INm5ccH62HTwknZRxBNtS9oWrJ3SDt45isperueR6Y+CYap+176nlDLlWL75G6MlerpvV3vY7M8Q0s/zvQPVRs1AvUb9TBixY=
|
||||
eJzdmc1u00AQx4dYFFo1uTT2IalDEEgFDkiIFs4InqDwJnAnLULio6SJaPkQ515KX6ag8gK0nFCbcMiZHbwrj9ez67VlgsNIf62TXa9/+Y+9XU9XGgCv62ltCanY8AGe+VG7qemp0OUgHntNzHejAalYrwG88QDGop1InQpte7HOSJ/SS4btRT15jUtBxIBtV6gnubpBks0WI4Zp4KXHjIlw/EojyXXd8PtpoI+h4DppurFh9KU/v2rpvqE2RrFha/JMjx1yrHy0eXfrHM+oe6aP63vJnLt65hpvHcdx/HrgPYvPwa7Qu4rpfT3yEvluC+9WK6Y1mU/Ma5X5MGaN767QlynrTg4+2jetsDHMKt/REkDgl6tvS+Xx+X75PpnmNDHsVJzP1qfmOt8CmGtFx+0OwHInPf9JCPAjjD+HbYBOW54j2uX23+Obmwe44KA9S9/FeZ5P/R2exv13byF7TJn+PW7mezaRL2vME8OekWP4uZjNnidc/DMFx4DvCqeL1eXD4PZXs8B3RawHV+Wa4HLM8X0X682xXHMOZLst28+yHYR2Pm7/h32uawrV/QXzulLUv6y+PGHK777m2b7mHXqbl6+M/OaJvHxF8vtA43veio8Hmnd9zdN/mV+X+J/4PhZ8X0W+ou/SH+rufEWE8yFfWe+Cs8Bn2h9Uhe+VrEEeNoq/tx7J9qvkO9S+LyqcD/cvx824jsfVlLCG9Iip2XGhP7/cuZ/cpvoTmN/NjFrjyFBTdOHDc7c8gIe1SJT1pqG+NiTHmN+ezzOuyzmxZmy6hgvfhNRr1Tyu+cD8bshack9jpPXiM3INm5ccH62HTwgnZRxCOtS9oWrJnSDp44jMperuWR6Y+MYap+136nlDLlWL75K6MlerpvV3vY7M8fUt/zvQPVRs1AvUb9TxixY=
|
||||
</data>
|
||||
</layer>
|
||||
<layer id="6" name="Ground2" width="40" height="40">
|
||||
@@ -92,13 +92,13 @@
|
||||
<object id="61" template="../../obj/arena.tx" x="200" y="258"/>
|
||||
<object id="62" template="../../obj/shop.tx" x="361" y="258">
|
||||
<properties>
|
||||
<property name="shopList" value="Plains"/>
|
||||
<property name="shopList" value="RedEquipment"/>
|
||||
<property name="signYOffset" type="float" value="0"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="63" template="../../obj/shop.tx" x="409" y="259">
|
||||
<properties>
|
||||
<property name="shopList" value="Plains"/>
|
||||
<property name="shopList" value="RedItems"/>
|
||||
<property name="signYOffset" type="float" value="0"/>
|
||||
</properties>
|
||||
</object>
|
||||
|
||||
@@ -25,12 +25,12 @@
|
||||
<property name="spriteLayer" type="bool" value="true"/>
|
||||
</properties>
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJztmEsOgjAQhmdnaAIrVxo3ngIfG+M59CZ6EB9svBO683ESbaSx4vTFIJbYP5mknTrTD5AhU4B2aBMDbD2xXfzJlyYAo8KmDzsSbFIhx0Taf5zo+bB1F6UVcpj2T6VrPv2AL5fuo4qPet/qyKWKbTvfIaLvQYk15Zwx+h6U2MBHi5X9w8HLL8aCD1uTfU3wXR4snehp12I8Z+9zeXxjdntwLfoAyz6ND5NPzxeTT3yrHsC65y8fVot1fOXfN/l+CJsjPmEu70cdfJh8er6YfOLT1efyOjb/ZX0u1+jw/7PL6QNfpun3OJ9tD7qPv8On6gl5v8T5csW6KqZuPszfLb5zZ/Y+/5aa6I8oCnw0tZkv05wfmbRBzp8wnyleVZuo50NYvEtOm/Mhsa6q06aarOMz5cTiZbnUXtvaXDUn9fwsKOhfdAehc9Wd
|
||||
eJztmEsOgjAQhmdnJMGVK4gbT4HixnAO3eol9CC+Nt4J3fk4iRBpLDh9wACW2D+ZpJ06088WhrQA3dDOBdgbYgf3my8YAEwymyV2IVhYIUfIzT8dyPmw8TIKKuRQzR9w//n6A76YW0cRH3Xd6sgliu0637lPn4MSq8o5d+hzUGItHy2W949HHz9rMz5sjPe1wXdPWHr9tz2yduTk+3z76ejNkWrhAyx9Gh8mk/YXk0l8Gw9g6+nxrZK9Whf2q2k+rBbL1q/4+zbfD2YR4mNW5v2ogw+TSc8fJpP4ZPW5OI71f1mfizXaPn96OU3gO0nOeymf7hn06DbDJzoTpuellC8WjIti6ubD/MPsO3dz8v2m1Mb5iCLLR1OX+U6S+yOVdsj9E+ZTxYtqE/V+CIsvk1PnfoiNi+q0qibL+FQ5sXheZWqvbm2umpN6f2Zl9S96AU0B1qI=
|
||||
</data>
|
||||
</layer>
|
||||
<layer id="5" name="Overlay" width="40" height="40">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJzt1E0OgjAQBeC3UnasK+lhYCOJXgI3LZdAjuXRXDI7IpZGw88ovC9p0r/FSzodgIimcAbwMmqjnYRCjhZIrHaKV4+TdoLlHGx4PnY2vPPP8gwoMu0U+1bJ37p9+L8u8lbXkfc6S12WNj4P3Z2Tk2ye9bRLS9VfrD+H9rbUn4m+1aTAXUabaid59zTxNRER9X65nxPRejqGURMa
|
||||
eJzt1E0OgjAQBeC3EnddF9LD6EYSvARswEsIx/JoLp2dEUqDkTKA70ua9G/xkmkHIKJf1BZoZNysdhLySRxwdNopPj1S7QTxHJx/PnbWv7Nlpww4Z9op/lspf6ua+L8KqdV1pF4XeZe5C899d4nmEOv9hfqzb29P/ZnoW3cDtDI6o51k6GnDayIieltzPyei5bwA2sMSFQ==
|
||||
</data>
|
||||
</layer>
|
||||
<objectgroup id="4" name="Objects">
|
||||
@@ -133,7 +133,7 @@
|
||||
"itemNames": ["Gold Armor","Gold Shield","Gold Boots","Bronze Sword"]
|
||||
}
|
||||
],[{
|
||||
"type": "items",
|
||||
"type": "item",
|
||||
"probability": 1,
|
||||
"count": 1,
|
||||
"itemNames": ["Gold Armor","Gold Shield","Gold Boots","Bronze Sword"]
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.5" tiledversion="1.7.2" orientation="orthogonal" renderorder="right-down" width="40" height="40" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="64">
|
||||
<map version="1.9" tiledversion="1.9.1" orientation="orthogonal" renderorder="right-down" width="40" height="40" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="64">
|
||||
<editorsettings>
|
||||
<export format="tmx"/>
|
||||
</editorsettings>
|
||||
@@ -92,13 +92,13 @@
|
||||
<object id="61" template="../../obj/arena.tx" x="168" y="178"/>
|
||||
<object id="62" template="../../obj/shop.tx" x="216" y="241">
|
||||
<properties>
|
||||
<property name="shopList" value="Plains"/>
|
||||
<property name="shopList" value="BlackItems"/>
|
||||
<property name="signYOffset" type="float" value="0"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="63" template="../../obj/shop.tx" x="115" y="241">
|
||||
<properties>
|
||||
<property name="shopList" value="Plains"/>
|
||||
<property name="shopList" value="BlackEquipment"/>
|
||||
<property name="signYOffset" type="float" value="0"/>
|
||||
</properties>
|
||||
</object>
|
||||
|
||||
@@ -754,7 +754,7 @@
|
||||
"commandOnUse": "teleport to poi Spawn",
|
||||
"iconName": "ColorlessRune",
|
||||
"questItem": true,
|
||||
"manaNeeded": 10,
|
||||
"manaNeeded": 1,
|
||||
"cost": 100
|
||||
},
|
||||
{
|
||||
@@ -767,7 +767,7 @@
|
||||
"commandOnUse": "teleport to poi \"Plains Capital\"",
|
||||
"iconName": "WhiteRune",
|
||||
"questItem": true,
|
||||
"manaNeeded": 10,
|
||||
"manaNeeded": 1,
|
||||
"cost": 100
|
||||
},
|
||||
{
|
||||
@@ -780,7 +780,7 @@
|
||||
"commandOnUse": "teleport to poi \"Swamp Capital\"",
|
||||
"iconName": "BlackRune",
|
||||
"questItem": true,
|
||||
"manaNeeded": 10,
|
||||
"manaNeeded": 1,
|
||||
"cost": 100
|
||||
},
|
||||
{
|
||||
@@ -793,7 +793,7 @@
|
||||
"commandOnUse": "teleport to poi \"Island Capital\"",
|
||||
"iconName": "BlueRune",
|
||||
"questItem": true,
|
||||
"manaNeeded": 10,
|
||||
"manaNeeded": 1,
|
||||
"cost": 100
|
||||
},
|
||||
{
|
||||
@@ -806,7 +806,7 @@
|
||||
"commandOnUse": "teleport to poi \"Mountain Capital\"",
|
||||
"iconName": "RedRune",
|
||||
"questItem": true,
|
||||
"manaNeeded": 10,
|
||||
"manaNeeded": 1,
|
||||
"cost": 100
|
||||
},
|
||||
{
|
||||
@@ -819,7 +819,7 @@
|
||||
"commandOnUse": "teleport to poi \"Forest Capital\"",
|
||||
"iconName": "GreenRune",
|
||||
"questItem": true,
|
||||
"manaNeeded": 10,
|
||||
"manaNeeded": 1,
|
||||
"cost": 100
|
||||
},
|
||||
{
|
||||
@@ -833,7 +833,7 @@
|
||||
"commandOnUse": "heal percent 0.5",
|
||||
"iconName": "WhiteStaff",
|
||||
"questItem": true,
|
||||
"manaNeeded": 50,
|
||||
"manaNeeded": 5,
|
||||
"cost": 1000
|
||||
},
|
||||
{
|
||||
@@ -847,7 +847,7 @@
|
||||
"commandOnUse": "hide 10",
|
||||
"iconName": "BlackStaff",
|
||||
"questItem": true,
|
||||
"manaNeeded": 50,
|
||||
"manaNeeded": 5,
|
||||
"cost": 1000
|
||||
},
|
||||
{
|
||||
@@ -858,8 +858,9 @@
|
||||
},
|
||||
"description": "Lets you fly for some time",
|
||||
"commandOnUse": "fly 10",
|
||||
"iconName": "BlueStaff",
|
||||
"questItem": true,
|
||||
"manaNeeded": 50,
|
||||
"manaNeeded": 5,
|
||||
"cost": 1000
|
||||
},
|
||||
{
|
||||
@@ -872,7 +873,7 @@
|
||||
"commandOnUse": "remove enemy nearest",
|
||||
"iconName": "RedStaff",
|
||||
"questItem": true,
|
||||
"manaNeeded": 50,
|
||||
"manaNeeded": 5,
|
||||
"cost": 1000
|
||||
},
|
||||
{
|
||||
@@ -886,7 +887,7 @@
|
||||
"commandOnUse": "sprint 10",
|
||||
"iconName": "GreenStaff",
|
||||
"questItem": true,
|
||||
"manaNeeded": 50,
|
||||
"manaNeeded": 5,
|
||||
"cost": 1000
|
||||
}
|
||||
]
|
||||
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 41 KiB |
@@ -4,6 +4,7 @@
|
||||
"playerStartPosX": 0.5,
|
||||
"playerStartPosY": 0.5,
|
||||
"noiseZoomBiome": 30,
|
||||
"miniMapTileSize": 4,
|
||||
"tileSize": 16,
|
||||
"roadTileset": {
|
||||
"tilesetAtlas": "world/tilesets/terrain.atlas",
|
||||
|
||||