Add condition Hash for start layer (#1506)

Signed-off-by: Gregoire Parant <g.parant@thecodingmachine.com>
This commit is contained in:
grégoire parant 2021-10-05 23:34:18 +02:00 committed by GitHub
parent 908b78fdda
commit 358d9a79d3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 181 additions and 4 deletions

View File

@ -55,10 +55,13 @@ export class StartPositionCalculator {
for (const layer of this.gameMap.flatLayers) {
if (layer.type !== "tilelayer") continue;
//we want to prioritize the selectedLayer other the start layer
if (selectedOrDefaultLayer === layer.name || layer.name.endsWith("/" + selectedOrDefaultLayer)) {
foundLayer = layer;
break;
} else if (selectedOrDefaultLayer === defaultStartLayerName || this.isStartLayer(layer)) {
if (
(selectedOrDefaultLayer === layer.name ||
selectedOrDefaultLayer === `#${layer.name}` ||
layer.name.endsWith("/" + selectedOrDefaultLayer)) &&
layer.type === "tilelayer" &&
(selectedOrDefaultLayer === defaultStartLayerName || this.isStartLayer(layer))
) {
foundLayer = layer;
break;
}

View File

@ -55,6 +55,14 @@
<a href="#" class="testLink" data-testmap="start-tile.json#S2" target="_blank">Test start tile (S2)</a>
</td>
</tr>
<tr>
<td>
<input type="radio" name="test-start-tile-s1tos2"> Success <input type="radio" name="test-start-tile-s1tos2"> Failure <input type="radio" name="test-start-tile-s1tos2" checked> Pending
</td>
<td>
<a href="#" class="testLink" data-testmap="start-tile-teleport.json" target="_blank">Test teleport into the map</a>
</td>
</tr>
<tr>
<td>
<input type="radio" name="test-website-objects"> Success <input type="radio" name="test-website-objects"> Failure <input type="radio" name="test-website-objects" checked> Pending

View File

@ -0,0 +1,166 @@
{ "compressionlevel":-1,
"height":5,
"infinite":false,
"layers":[
{
"data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
"height":5,
"id":1,
"name":"start",
"opacity":1,
"type":"tilelayer",
"visible":true,
"width":5,
"x":0,
"y":0
},
{
"data":[4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
"height":5,
"id":4,
"name":"background",
"opacity":1,
"type":"tilelayer",
"visible":true,
"width":5,
"x":0,
"y":0
},
{
"data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0],
"height":5,
"id":7,
"name":"S2",
"opacity":1,
"properties":[
{
"name":"startLayer",
"type":"bool",
"value":true
}],
"type":"tilelayer",
"visible":true,
"width":5,
"x":0,
"y":0
},
{
"data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
"height":5,
"id":8,
"name":"S1",
"opacity":1,
"properties":[
{
"name":"startLayer",
"type":"bool",
"value":true
}],
"type":"tilelayer",
"visible":true,
"width":5,
"x":0,
"y":0
},
{
"data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
"height":5,
"id":5,
"name":"floor",
"opacity":1,
"type":"tilelayer",
"visible":true,
"width":5,
"x":0,
"y":0
},
{
"data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
"height":5,
"id":6,
"name":"exitLayer-toS2",
"opacity":1,
"properties":[
{
"name":"exitUrl",
"type":"string",
"value":".\/start-tile-teleport.json#S2"
}],
"type":"tilelayer",
"visible":true,
"width":5,
"x":0,
"y":0
},
{
"data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2],
"height":5,
"id":9,
"name":"exitLayer-toS1",
"opacity":1,
"properties":[
{
"name":"exitUrl",
"type":"string",
"value":".\/start-tile-teleport.json#S1"
}],
"type":"tilelayer",
"visible":true,
"width":5,
"x":0,
"y":0
},
{
"draworder":"topdown",
"id":3,
"name":"floorLayer",
"objects":[
{
"height":66.6666666666667,
"id":1,
"name":"",
"rotation":0,
"text":
{
"fontfamily":"Sans Serif",
"pixelsize":11,
"text":"Go to X above S1 and teleport on S2\nGo to X above S2 and teleport on S1",
"wrap":true
},
"type":"",
"visible":true,
"width":155.104166666667,
"x":3.28125,
"y":2.5
}],
"opacity":1,
"type":"objectgroup",
"visible":true,
"x":0,
"y":0
}],
"nextlayerid":10,
"nextobjectid":2,
"orientation":"orthogonal",
"renderorder":"right-down",
"tiledversion":"1.7.2",
"tileheight":32,
"tilesets":[
{
"columns":2,
"firstgid":1,
"image":"function_tiles.png",
"imageheight":64,
"imagewidth":64,
"margin":0,
"name":"function_tiles",
"spacing":0,
"tilecount":4,
"tileheight":32,
"tilewidth":32
}],
"tilewidth":32,
"type":"map",
"version":"1.6",
"width":5
}