Save repo in a random state prior to big refactors
This commit is contained in:
parent
7470174ff3
commit
786a1d2e8d
779
src/art/mapdata/maps.ldtk
Normal file
779
src/art/mapdata/maps.ldtk
Normal file
@ -0,0 +1,779 @@
|
|||||||
|
{
|
||||||
|
"__header__": {
|
||||||
|
"fileType": "LDtk Project JSON",
|
||||||
|
"app": "LDtk",
|
||||||
|
"doc": "https://ldtk.io/json",
|
||||||
|
"schema": "https://ldtk.io/files/JSON_SCHEMA.json",
|
||||||
|
"appAuthor": "Sebastien 'deepnight' Benard",
|
||||||
|
"appVersion": "1.5.3",
|
||||||
|
"url": "https://ldtk.io"
|
||||||
|
},
|
||||||
|
"iid": "f7ed7e70-c210-11ef-bffb-911ba1dc425d",
|
||||||
|
"jsonVersion": "1.5.3",
|
||||||
|
"appBuildId": 473703,
|
||||||
|
"nextUid": 9,
|
||||||
|
"identifierStyle": "Capitalize",
|
||||||
|
"toc": [],
|
||||||
|
"worldLayout": "Free",
|
||||||
|
"worldGridWidth": 256,
|
||||||
|
"worldGridHeight": 256,
|
||||||
|
"defaultLevelWidth": 256,
|
||||||
|
"defaultLevelHeight": 256,
|
||||||
|
"defaultPivotX": 0,
|
||||||
|
"defaultPivotY": 0,
|
||||||
|
"defaultGridSize": 16,
|
||||||
|
"defaultEntityWidth": 16,
|
||||||
|
"defaultEntityHeight": 16,
|
||||||
|
"bgColor": "#40465B",
|
||||||
|
"defaultLevelBgColor": "#696A79",
|
||||||
|
"minifyJson": false,
|
||||||
|
"externalLevels": false,
|
||||||
|
"exportTiled": false,
|
||||||
|
"simplifiedExport": false,
|
||||||
|
"imageExportMode": "None",
|
||||||
|
"exportLevelBg": true,
|
||||||
|
"pngFilePattern": null,
|
||||||
|
"backupOnSave": false,
|
||||||
|
"backupLimit": 10,
|
||||||
|
"backupRelPath": null,
|
||||||
|
"levelNamePattern": "Level_%idx",
|
||||||
|
"tutorialDesc": null,
|
||||||
|
"customCommands": [],
|
||||||
|
"flags": [],
|
||||||
|
"defs": { "layers": [
|
||||||
|
{
|
||||||
|
"__type": "Tiles",
|
||||||
|
"identifier": "Floor_2",
|
||||||
|
"type": "Tiles",
|
||||||
|
"uid": 7,
|
||||||
|
"doc": null,
|
||||||
|
"uiColor": null,
|
||||||
|
"gridSize": 32,
|
||||||
|
"guideGridWid": 0,
|
||||||
|
"guideGridHei": 0,
|
||||||
|
"displayOpacity": 1,
|
||||||
|
"inactiveOpacity": 1,
|
||||||
|
"hideInList": false,
|
||||||
|
"hideFieldsWhenInactive": false,
|
||||||
|
"canSelectWhenInactive": true,
|
||||||
|
"renderInWorldView": true,
|
||||||
|
"pxOffsetX": 0,
|
||||||
|
"pxOffsetY": 0,
|
||||||
|
"parallaxFactorX": 0,
|
||||||
|
"parallaxFactorY": 0,
|
||||||
|
"parallaxScaling": true,
|
||||||
|
"requiredTags": [],
|
||||||
|
"excludedTags": [],
|
||||||
|
"autoTilesKilledByOtherLayerUid": null,
|
||||||
|
"uiFilterTags": [],
|
||||||
|
"useAsyncRender": false,
|
||||||
|
"intGridValues": [],
|
||||||
|
"intGridValuesGroups": [],
|
||||||
|
"autoRuleGroups": [],
|
||||||
|
"autoSourceLayerDefUid": null,
|
||||||
|
"tilesetDefUid": 1,
|
||||||
|
"tilePivotX": 0,
|
||||||
|
"tilePivotY": 0,
|
||||||
|
"biomeFieldUid": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type": "Tiles",
|
||||||
|
"identifier": "Walls",
|
||||||
|
"type": "Tiles",
|
||||||
|
"uid": 6,
|
||||||
|
"doc": null,
|
||||||
|
"uiColor": null,
|
||||||
|
"gridSize": 32,
|
||||||
|
"guideGridWid": 0,
|
||||||
|
"guideGridHei": 0,
|
||||||
|
"displayOpacity": 1,
|
||||||
|
"inactiveOpacity": 1,
|
||||||
|
"hideInList": false,
|
||||||
|
"hideFieldsWhenInactive": false,
|
||||||
|
"canSelectWhenInactive": true,
|
||||||
|
"renderInWorldView": true,
|
||||||
|
"pxOffsetX": 0,
|
||||||
|
"pxOffsetY": 0,
|
||||||
|
"parallaxFactorX": 0,
|
||||||
|
"parallaxFactorY": 0,
|
||||||
|
"parallaxScaling": true,
|
||||||
|
"requiredTags": [],
|
||||||
|
"excludedTags": [],
|
||||||
|
"autoTilesKilledByOtherLayerUid": null,
|
||||||
|
"uiFilterTags": [],
|
||||||
|
"useAsyncRender": false,
|
||||||
|
"intGridValues": [],
|
||||||
|
"intGridValuesGroups": [],
|
||||||
|
"autoRuleGroups": [],
|
||||||
|
"autoSourceLayerDefUid": null,
|
||||||
|
"tilesetDefUid": 3,
|
||||||
|
"tilePivotX": 0,
|
||||||
|
"tilePivotY": 0,
|
||||||
|
"biomeFieldUid": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type": "Tiles",
|
||||||
|
"identifier": "Floor",
|
||||||
|
"type": "Tiles",
|
||||||
|
"uid": 5,
|
||||||
|
"doc": null,
|
||||||
|
"uiColor": null,
|
||||||
|
"gridSize": 32,
|
||||||
|
"guideGridWid": 0,
|
||||||
|
"guideGridHei": 0,
|
||||||
|
"displayOpacity": 1,
|
||||||
|
"inactiveOpacity": 1,
|
||||||
|
"hideInList": false,
|
||||||
|
"hideFieldsWhenInactive": false,
|
||||||
|
"canSelectWhenInactive": true,
|
||||||
|
"renderInWorldView": true,
|
||||||
|
"pxOffsetX": 0,
|
||||||
|
"pxOffsetY": 0,
|
||||||
|
"parallaxFactorX": 0,
|
||||||
|
"parallaxFactorY": 0,
|
||||||
|
"parallaxScaling": true,
|
||||||
|
"requiredTags": [],
|
||||||
|
"excludedTags": [],
|
||||||
|
"autoTilesKilledByOtherLayerUid": null,
|
||||||
|
"uiFilterTags": [],
|
||||||
|
"useAsyncRender": false,
|
||||||
|
"intGridValues": [],
|
||||||
|
"intGridValuesGroups": [],
|
||||||
|
"autoRuleGroups": [],
|
||||||
|
"autoSourceLayerDefUid": null,
|
||||||
|
"tilesetDefUid": 2,
|
||||||
|
"tilePivotX": 0,
|
||||||
|
"tilePivotY": 0,
|
||||||
|
"biomeFieldUid": null
|
||||||
|
}
|
||||||
|
], "entities": [], "tilesets": [
|
||||||
|
{
|
||||||
|
"__cWid": 3,
|
||||||
|
"__cHei": 3,
|
||||||
|
"identifier": "Intercut",
|
||||||
|
"uid": 1,
|
||||||
|
"relPath": "../tilesets/intercut.png",
|
||||||
|
"embedAtlas": null,
|
||||||
|
"pxWid": 96,
|
||||||
|
"pxHei": 96,
|
||||||
|
"tileGridSize": 32,
|
||||||
|
"spacing": 0,
|
||||||
|
"padding": 0,
|
||||||
|
"tags": [],
|
||||||
|
"tagsSourceEnumUid": null,
|
||||||
|
"enumTags": [],
|
||||||
|
"customData": [],
|
||||||
|
"savedSelections": [],
|
||||||
|
"cachedPixelData": { "opaqueTiles": "111111111", "averageColors": "f223f223f223f223f223f223f223f223f223" }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__cWid": 1,
|
||||||
|
"__cHei": 1,
|
||||||
|
"identifier": "Base",
|
||||||
|
"uid": 2,
|
||||||
|
"relPath": "../tilesets/base.png",
|
||||||
|
"embedAtlas": null,
|
||||||
|
"pxWid": 32,
|
||||||
|
"pxHei": 32,
|
||||||
|
"tileGridSize": 32,
|
||||||
|
"spacing": 0,
|
||||||
|
"padding": 0,
|
||||||
|
"tags": [],
|
||||||
|
"tagsSourceEnumUid": null,
|
||||||
|
"enumTags": [],
|
||||||
|
"customData": [],
|
||||||
|
"savedSelections": [],
|
||||||
|
"cachedPixelData": { "opaqueTiles": "1", "averageColors": "f111" }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__cWid": 3,
|
||||||
|
"__cHei": 3,
|
||||||
|
"identifier": "Walls",
|
||||||
|
"uid": 3,
|
||||||
|
"relPath": "../tilesets/walls.png",
|
||||||
|
"embedAtlas": null,
|
||||||
|
"pxWid": 96,
|
||||||
|
"pxHei": 96,
|
||||||
|
"tileGridSize": 32,
|
||||||
|
"spacing": 0,
|
||||||
|
"padding": 0,
|
||||||
|
"tags": [],
|
||||||
|
"tagsSourceEnumUid": null,
|
||||||
|
"enumTags": [],
|
||||||
|
"customData": [],
|
||||||
|
"savedSelections": [],
|
||||||
|
"cachedPixelData": { "opaqueTiles": "111111111", "averageColors": "f88af89af88af89af89af89af88af89af88a" }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__cWid": 1,
|
||||||
|
"__cHei": 1,
|
||||||
|
"identifier": "Block",
|
||||||
|
"uid": 4,
|
||||||
|
"relPath": "../tilesets/block.png",
|
||||||
|
"embedAtlas": null,
|
||||||
|
"pxWid": 32,
|
||||||
|
"pxHei": 32,
|
||||||
|
"tileGridSize": 32,
|
||||||
|
"spacing": 0,
|
||||||
|
"padding": 0,
|
||||||
|
"tags": [],
|
||||||
|
"tagsSourceEnumUid": null,
|
||||||
|
"enumTags": [],
|
||||||
|
"customData": [],
|
||||||
|
"savedSelections": [],
|
||||||
|
"cachedPixelData": { "opaqueTiles": "1", "averageColors": "f88a" }
|
||||||
|
}
|
||||||
|
], "enums": [], "externalEnums": [], "levelFields": [] },
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"identifier": "Level_0",
|
||||||
|
"iid": "f7eda580-c210-11ef-bffb-6b05aa089ccc",
|
||||||
|
"uid": 0,
|
||||||
|
"worldX": 0,
|
||||||
|
"worldY": 0,
|
||||||
|
"worldDepth": 0,
|
||||||
|
"pxWid": 384,
|
||||||
|
"pxHei": 288,
|
||||||
|
"__bgColor": "#696A79",
|
||||||
|
"bgColor": null,
|
||||||
|
"useAutoIdentifier": true,
|
||||||
|
"bgRelPath": null,
|
||||||
|
"bgPos": null,
|
||||||
|
"bgPivotX": 0.5,
|
||||||
|
"bgPivotY": 0.5,
|
||||||
|
"__smartColor": "#ADADB5",
|
||||||
|
"__bgPos": null,
|
||||||
|
"externalRelPath": null,
|
||||||
|
"fieldInstances": [],
|
||||||
|
"layerInstances": [
|
||||||
|
{
|
||||||
|
"__identifier": "Floor_2",
|
||||||
|
"__type": "Tiles",
|
||||||
|
"__cWid": 12,
|
||||||
|
"__cHei": 9,
|
||||||
|
"__gridSize": 32,
|
||||||
|
"__opacity": 1,
|
||||||
|
"__pxTotalOffsetX": 0,
|
||||||
|
"__pxTotalOffsetY": 0,
|
||||||
|
"__tilesetDefUid": 1,
|
||||||
|
"__tilesetRelPath": "../tilesets/intercut.png",
|
||||||
|
"iid": "22e79470-c210-11ef-bffb-f789fe121d9f",
|
||||||
|
"levelId": 0,
|
||||||
|
"layerDefUid": 7,
|
||||||
|
"pxOffsetX": 0,
|
||||||
|
"pxOffsetY": 0,
|
||||||
|
"visible": true,
|
||||||
|
"optionalRules": [],
|
||||||
|
"intGridCsv": [],
|
||||||
|
"autoLayerTiles": [],
|
||||||
|
"seed": 7519619,
|
||||||
|
"overrideTilesetUid": null,
|
||||||
|
"gridTiles": [
|
||||||
|
{ "px": [32,32], "src": [0,0], "f": 0, "t": 0, "d": [13], "a": 1 },
|
||||||
|
{ "px": [64,32], "src": [64,0], "f": 0, "t": 2, "d": [14], "a": 1 },
|
||||||
|
{ "px": [288,32], "src": [0,0], "f": 0, "t": 0, "d": [21], "a": 1 },
|
||||||
|
{ "px": [320,32], "src": [64,0], "f": 0, "t": 2, "d": [22], "a": 1 },
|
||||||
|
{ "px": [32,64], "src": [0,64], "f": 0, "t": 6, "d": [25], "a": 1 },
|
||||||
|
{ "px": [64,64], "src": [32,32], "f": 0, "t": 4, "d": [26], "a": 1 },
|
||||||
|
{ "px": [96,64], "src": [32,0], "f": 0, "t": 1, "d": [27], "a": 1 },
|
||||||
|
{ "px": [128,64], "src": [32,0], "f": 0, "t": 1, "d": [28], "a": 1 },
|
||||||
|
{ "px": [160,64], "src": [32,0], "f": 0, "t": 1, "d": [29], "a": 1 },
|
||||||
|
{ "px": [192,64], "src": [32,0], "f": 0, "t": 1, "d": [30], "a": 1 },
|
||||||
|
{ "px": [224,64], "src": [32,0], "f": 0, "t": 1, "d": [31], "a": 1 },
|
||||||
|
{ "px": [256,64], "src": [32,0], "f": 0, "t": 1, "d": [32], "a": 1 },
|
||||||
|
{ "px": [288,64], "src": [32,32], "f": 0, "t": 4, "d": [33], "a": 1 },
|
||||||
|
{ "px": [320,64], "src": [64,64], "f": 0, "t": 8, "d": [34], "a": 1 },
|
||||||
|
{ "px": [64,96], "src": [0,32], "f": 0, "t": 3, "d": [38], "a": 1 },
|
||||||
|
{ "px": [96,96], "src": [32,32], "f": 0, "t": 4, "d": [39], "a": 1 },
|
||||||
|
{ "px": [128,96], "src": [32,64], "f": 0, "t": 7, "d": [40], "a": 1 },
|
||||||
|
{ "px": [160,96], "src": [32,64], "f": 0, "t": 7, "d": [41], "a": 1 },
|
||||||
|
{ "px": [192,96], "src": [32,64], "f": 0, "t": 7, "d": [42], "a": 1 },
|
||||||
|
{ "px": [224,96], "src": [32,64], "f": 0, "t": 7, "d": [43], "a": 1 },
|
||||||
|
{ "px": [256,96], "src": [32,32], "f": 0, "t": 4, "d": [44], "a": 1 },
|
||||||
|
{ "px": [288,96], "src": [64,32], "f": 0, "t": 5, "d": [45], "a": 1 },
|
||||||
|
{ "px": [64,128], "src": [0,32], "f": 0, "t": 3, "d": [50], "a": 1 },
|
||||||
|
{ "px": [96,128], "src": [64,32], "f": 0, "t": 5, "d": [51], "a": 1 },
|
||||||
|
{ "px": [256,128], "src": [0,32], "f": 0, "t": 3, "d": [56], "a": 1 },
|
||||||
|
{ "px": [288,128], "src": [64,32], "f": 0, "t": 5, "d": [57], "a": 1 },
|
||||||
|
{ "px": [64,160], "src": [0,32], "f": 0, "t": 3, "d": [62], "a": 1 },
|
||||||
|
{ "px": [96,160], "src": [32,32], "f": 0, "t": 4, "d": [63], "a": 1 },
|
||||||
|
{ "px": [128,160], "src": [32,0], "f": 0, "t": 1, "d": [64], "a": 1 },
|
||||||
|
{ "px": [160,160], "src": [32,0], "f": 0, "t": 1, "d": [65], "a": 1 },
|
||||||
|
{ "px": [192,160], "src": [32,0], "f": 0, "t": 1, "d": [66], "a": 1 },
|
||||||
|
{ "px": [224,160], "src": [32,0], "f": 0, "t": 1, "d": [67], "a": 1 },
|
||||||
|
{ "px": [256,160], "src": [32,32], "f": 0, "t": 4, "d": [68], "a": 1 },
|
||||||
|
{ "px": [288,160], "src": [64,32], "f": 0, "t": 5, "d": [69], "a": 1 },
|
||||||
|
{ "px": [32,192], "src": [0,0], "f": 0, "t": 0, "d": [73], "a": 1 },
|
||||||
|
{ "px": [64,192], "src": [32,32], "f": 0, "t": 4, "d": [74], "a": 1 },
|
||||||
|
{ "px": [96,192], "src": [32,64], "f": 0, "t": 7, "d": [75], "a": 1 },
|
||||||
|
{ "px": [128,192], "src": [32,64], "f": 0, "t": 7, "d": [76], "a": 1 },
|
||||||
|
{ "px": [160,192], "src": [32,64], "f": 0, "t": 7, "d": [77], "a": 1 },
|
||||||
|
{ "px": [192,192], "src": [32,64], "f": 0, "t": 7, "d": [78], "a": 1 },
|
||||||
|
{ "px": [224,192], "src": [32,64], "f": 0, "t": 7, "d": [79], "a": 1 },
|
||||||
|
{ "px": [256,192], "src": [32,64], "f": 0, "t": 7, "d": [80], "a": 1 },
|
||||||
|
{ "px": [288,192], "src": [32,32], "f": 0, "t": 4, "d": [81], "a": 1 },
|
||||||
|
{ "px": [320,192], "src": [64,0], "f": 0, "t": 2, "d": [82], "a": 1 },
|
||||||
|
{ "px": [32,224], "src": [0,64], "f": 0, "t": 6, "d": [85], "a": 1 },
|
||||||
|
{ "px": [64,224], "src": [64,64], "f": 0, "t": 8, "d": [86], "a": 1 },
|
||||||
|
{ "px": [288,224], "src": [0,64], "f": 0, "t": 6, "d": [93], "a": 1 },
|
||||||
|
{ "px": [320,224], "src": [64,64], "f": 0, "t": 8, "d": [94], "a": 1 }
|
||||||
|
],
|
||||||
|
"entityInstances": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__identifier": "Walls",
|
||||||
|
"__type": "Tiles",
|
||||||
|
"__cWid": 12,
|
||||||
|
"__cHei": 9,
|
||||||
|
"__gridSize": 32,
|
||||||
|
"__opacity": 1,
|
||||||
|
"__pxTotalOffsetX": 0,
|
||||||
|
"__pxTotalOffsetY": 0,
|
||||||
|
"__tilesetDefUid": 3,
|
||||||
|
"__tilesetRelPath": "../tilesets/walls.png",
|
||||||
|
"iid": "857a8620-c210-11ef-bffb-8318132dc9ca",
|
||||||
|
"levelId": 0,
|
||||||
|
"layerDefUid": 6,
|
||||||
|
"pxOffsetX": 0,
|
||||||
|
"pxOffsetY": 0,
|
||||||
|
"visible": true,
|
||||||
|
"optionalRules": [],
|
||||||
|
"intGridCsv": [],
|
||||||
|
"autoLayerTiles": [],
|
||||||
|
"seed": 8442990,
|
||||||
|
"overrideTilesetUid": null,
|
||||||
|
"gridTiles": [
|
||||||
|
{ "px": [0,0], "src": [64,64], "f": 0, "t": 8, "d": [0], "a": 1 },
|
||||||
|
{ "px": [128,0], "src": [0,64], "f": 0, "t": 6, "d": [4], "a": 1 },
|
||||||
|
{ "px": [160,0], "src": [32,64], "f": 0, "t": 7, "d": [5], "a": 1 },
|
||||||
|
{ "px": [192,0], "src": [32,64], "f": 0, "t": 7, "d": [6], "a": 1 },
|
||||||
|
{ "px": [224,0], "src": [64,64], "f": 0, "t": 8, "d": [7], "a": 1 },
|
||||||
|
{ "px": [352,0], "src": [0,64], "f": 0, "t": 6, "d": [11], "a": 1 },
|
||||||
|
{ "px": [64,64], "src": [0,0], "f": 0, "t": 0, "d": [26], "a": 1 },
|
||||||
|
{ "px": [96,64], "src": [64,0], "f": 0, "t": 2, "d": [27], "a": 1 },
|
||||||
|
{ "px": [160,64], "src": [0,0], "f": 0, "t": 0, "d": [29], "a": 1 },
|
||||||
|
{ "px": [256,64], "src": [0,0], "f": 0, "t": 0, "d": [32], "a": 1 },
|
||||||
|
{ "px": [64,96], "src": [0,64], "f": 0, "t": 6, "d": [38], "a": 1 },
|
||||||
|
{ "px": [96,96], "src": [64,64], "f": 0, "t": 8, "d": [39], "a": 1 },
|
||||||
|
{ "px": [160,96], "src": [0,64], "f": 0, "t": 6, "d": [41], "a": 1 },
|
||||||
|
{ "px": [256,96], "src": [0,64], "f": 0, "t": 6, "d": [44], "a": 1 },
|
||||||
|
{ "px": [0,256], "src": [64,0], "f": 0, "t": 2, "d": [96], "a": 1 },
|
||||||
|
{ "px": [128,256], "src": [0,0], "f": 0, "t": 0, "d": [100], "a": 1 },
|
||||||
|
{ "px": [160,256], "src": [32,0], "f": 0, "t": 1, "d": [101], "a": 1 },
|
||||||
|
{ "px": [192,256], "src": [32,0], "f": 0, "t": 1, "d": [102], "a": 1 },
|
||||||
|
{ "px": [224,256], "src": [64,0], "f": 0, "t": 2, "d": [103], "a": 1 },
|
||||||
|
{ "px": [352,256], "src": [0,0], "f": 0, "t": 0, "d": [107], "a": 1 }
|
||||||
|
],
|
||||||
|
"entityInstances": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__identifier": "Floor",
|
||||||
|
"__type": "Tiles",
|
||||||
|
"__cWid": 12,
|
||||||
|
"__cHei": 9,
|
||||||
|
"__gridSize": 32,
|
||||||
|
"__opacity": 1,
|
||||||
|
"__pxTotalOffsetX": 0,
|
||||||
|
"__pxTotalOffsetY": 0,
|
||||||
|
"__tilesetDefUid": 2,
|
||||||
|
"__tilesetRelPath": "../tilesets/base.png",
|
||||||
|
"iid": "3c7c9c60-c210-11ef-bffb-dd5644ced100",
|
||||||
|
"levelId": 0,
|
||||||
|
"layerDefUid": 5,
|
||||||
|
"pxOffsetX": 0,
|
||||||
|
"pxOffsetY": 0,
|
||||||
|
"visible": true,
|
||||||
|
"optionalRules": [],
|
||||||
|
"intGridCsv": [],
|
||||||
|
"autoLayerTiles": [],
|
||||||
|
"seed": 8173604,
|
||||||
|
"overrideTilesetUid": null,
|
||||||
|
"gridTiles": [
|
||||||
|
{ "px": [0,0], "src": [0,0], "f": 0, "t": 0, "d": [0], "a": 1 },
|
||||||
|
{ "px": [32,0], "src": [0,0], "f": 0, "t": 0, "d": [1], "a": 1 },
|
||||||
|
{ "px": [64,0], "src": [0,0], "f": 0, "t": 0, "d": [2], "a": 1 },
|
||||||
|
{ "px": [96,0], "src": [0,0], "f": 0, "t": 0, "d": [3], "a": 1 },
|
||||||
|
{ "px": [128,0], "src": [0,0], "f": 0, "t": 0, "d": [4], "a": 1 },
|
||||||
|
{ "px": [160,0], "src": [0,0], "f": 0, "t": 0, "d": [5], "a": 1 },
|
||||||
|
{ "px": [192,0], "src": [0,0], "f": 0, "t": 0, "d": [6], "a": 1 },
|
||||||
|
{ "px": [224,0], "src": [0,0], "f": 0, "t": 0, "d": [7], "a": 1 },
|
||||||
|
{ "px": [256,0], "src": [0,0], "f": 0, "t": 0, "d": [8], "a": 1 },
|
||||||
|
{ "px": [288,0], "src": [0,0], "f": 0, "t": 0, "d": [9], "a": 1 },
|
||||||
|
{ "px": [320,0], "src": [0,0], "f": 0, "t": 0, "d": [10], "a": 1 },
|
||||||
|
{ "px": [352,0], "src": [0,0], "f": 0, "t": 0, "d": [11], "a": 1 },
|
||||||
|
{ "px": [0,32], "src": [0,0], "f": 0, "t": 0, "d": [12], "a": 1 },
|
||||||
|
{ "px": [32,32], "src": [0,0], "f": 0, "t": 0, "d": [13], "a": 1 },
|
||||||
|
{ "px": [64,32], "src": [0,0], "f": 0, "t": 0, "d": [14], "a": 1 },
|
||||||
|
{ "px": [96,32], "src": [0,0], "f": 0, "t": 0, "d": [15], "a": 1 },
|
||||||
|
{ "px": [128,32], "src": [0,0], "f": 0, "t": 0, "d": [16], "a": 1 },
|
||||||
|
{ "px": [160,32], "src": [0,0], "f": 0, "t": 0, "d": [17], "a": 1 },
|
||||||
|
{ "px": [192,32], "src": [0,0], "f": 0, "t": 0, "d": [18], "a": 1 },
|
||||||
|
{ "px": [224,32], "src": [0,0], "f": 0, "t": 0, "d": [19], "a": 1 },
|
||||||
|
{ "px": [256,32], "src": [0,0], "f": 0, "t": 0, "d": [20], "a": 1 },
|
||||||
|
{ "px": [288,32], "src": [0,0], "f": 0, "t": 0, "d": [21], "a": 1 },
|
||||||
|
{ "px": [320,32], "src": [0,0], "f": 0, "t": 0, "d": [22], "a": 1 },
|
||||||
|
{ "px": [352,32], "src": [0,0], "f": 0, "t": 0, "d": [23], "a": 1 },
|
||||||
|
{ "px": [0,64], "src": [0,0], "f": 0, "t": 0, "d": [24], "a": 1 },
|
||||||
|
{ "px": [32,64], "src": [0,0], "f": 0, "t": 0, "d": [25], "a": 1 },
|
||||||
|
{ "px": [64,64], "src": [0,0], "f": 0, "t": 0, "d": [26], "a": 1 },
|
||||||
|
{ "px": [96,64], "src": [0,0], "f": 0, "t": 0, "d": [27], "a": 1 },
|
||||||
|
{ "px": [128,64], "src": [0,0], "f": 0, "t": 0, "d": [28], "a": 1 },
|
||||||
|
{ "px": [160,64], "src": [0,0], "f": 0, "t": 0, "d": [29], "a": 1 },
|
||||||
|
{ "px": [192,64], "src": [0,0], "f": 0, "t": 0, "d": [30], "a": 1 },
|
||||||
|
{ "px": [224,64], "src": [0,0], "f": 0, "t": 0, "d": [31], "a": 1 },
|
||||||
|
{ "px": [256,64], "src": [0,0], "f": 0, "t": 0, "d": [32], "a": 1 },
|
||||||
|
{ "px": [288,64], "src": [0,0], "f": 0, "t": 0, "d": [33], "a": 1 },
|
||||||
|
{ "px": [320,64], "src": [0,0], "f": 0, "t": 0, "d": [34], "a": 1 },
|
||||||
|
{ "px": [352,64], "src": [0,0], "f": 0, "t": 0, "d": [35], "a": 1 },
|
||||||
|
{ "px": [0,96], "src": [0,0], "f": 0, "t": 0, "d": [36], "a": 1 },
|
||||||
|
{ "px": [32,96], "src": [0,0], "f": 0, "t": 0, "d": [37], "a": 1 },
|
||||||
|
{ "px": [64,96], "src": [0,0], "f": 0, "t": 0, "d": [38], "a": 1 },
|
||||||
|
{ "px": [96,96], "src": [0,0], "f": 0, "t": 0, "d": [39], "a": 1 },
|
||||||
|
{ "px": [128,96], "src": [0,0], "f": 0, "t": 0, "d": [40], "a": 1 },
|
||||||
|
{ "px": [160,96], "src": [0,0], "f": 0, "t": 0, "d": [41], "a": 1 },
|
||||||
|
{ "px": [192,96], "src": [0,0], "f": 0, "t": 0, "d": [42], "a": 1 },
|
||||||
|
{ "px": [224,96], "src": [0,0], "f": 0, "t": 0, "d": [43], "a": 1 },
|
||||||
|
{ "px": [256,96], "src": [0,0], "f": 0, "t": 0, "d": [44], "a": 1 },
|
||||||
|
{ "px": [288,96], "src": [0,0], "f": 0, "t": 0, "d": [45], "a": 1 },
|
||||||
|
{ "px": [320,96], "src": [0,0], "f": 0, "t": 0, "d": [46], "a": 1 },
|
||||||
|
{ "px": [352,96], "src": [0,0], "f": 0, "t": 0, "d": [47], "a": 1 },
|
||||||
|
{ "px": [0,128], "src": [0,0], "f": 0, "t": 0, "d": [48], "a": 1 },
|
||||||
|
{ "px": [32,128], "src": [0,0], "f": 0, "t": 0, "d": [49], "a": 1 },
|
||||||
|
{ "px": [64,128], "src": [0,0], "f": 0, "t": 0, "d": [50], "a": 1 },
|
||||||
|
{ "px": [96,128], "src": [0,0], "f": 0, "t": 0, "d": [51], "a": 1 },
|
||||||
|
{ "px": [128,128], "src": [0,0], "f": 0, "t": 0, "d": [52], "a": 1 },
|
||||||
|
{ "px": [160,128], "src": [0,0], "f": 0, "t": 0, "d": [53], "a": 1 },
|
||||||
|
{ "px": [192,128], "src": [0,0], "f": 0, "t": 0, "d": [54], "a": 1 },
|
||||||
|
{ "px": [224,128], "src": [0,0], "f": 0, "t": 0, "d": [55], "a": 1 },
|
||||||
|
{ "px": [256,128], "src": [0,0], "f": 0, "t": 0, "d": [56], "a": 1 },
|
||||||
|
{ "px": [288,128], "src": [0,0], "f": 0, "t": 0, "d": [57], "a": 1 },
|
||||||
|
{ "px": [320,128], "src": [0,0], "f": 0, "t": 0, "d": [58], "a": 1 },
|
||||||
|
{ "px": [352,128], "src": [0,0], "f": 0, "t": 0, "d": [59], "a": 1 },
|
||||||
|
{ "px": [0,160], "src": [0,0], "f": 0, "t": 0, "d": [60], "a": 1 },
|
||||||
|
{ "px": [32,160], "src": [0,0], "f": 0, "t": 0, "d": [61], "a": 1 },
|
||||||
|
{ "px": [64,160], "src": [0,0], "f": 0, "t": 0, "d": [62], "a": 1 },
|
||||||
|
{ "px": [96,160], "src": [0,0], "f": 0, "t": 0, "d": [63], "a": 1 },
|
||||||
|
{ "px": [128,160], "src": [0,0], "f": 0, "t": 0, "d": [64], "a": 1 },
|
||||||
|
{ "px": [160,160], "src": [0,0], "f": 0, "t": 0, "d": [65], "a": 1 },
|
||||||
|
{ "px": [192,160], "src": [0,0], "f": 0, "t": 0, "d": [66], "a": 1 },
|
||||||
|
{ "px": [224,160], "src": [0,0], "f": 0, "t": 0, "d": [67], "a": 1 },
|
||||||
|
{ "px": [256,160], "src": [0,0], "f": 0, "t": 0, "d": [68], "a": 1 },
|
||||||
|
{ "px": [288,160], "src": [0,0], "f": 0, "t": 0, "d": [69], "a": 1 },
|
||||||
|
{ "px": [320,160], "src": [0,0], "f": 0, "t": 0, "d": [70], "a": 1 },
|
||||||
|
{ "px": [352,160], "src": [0,0], "f": 0, "t": 0, "d": [71], "a": 1 },
|
||||||
|
{ "px": [0,192], "src": [0,0], "f": 0, "t": 0, "d": [72], "a": 1 },
|
||||||
|
{ "px": [32,192], "src": [0,0], "f": 0, "t": 0, "d": [73], "a": 1 },
|
||||||
|
{ "px": [64,192], "src": [0,0], "f": 0, "t": 0, "d": [74], "a": 1 },
|
||||||
|
{ "px": [96,192], "src": [0,0], "f": 0, "t": 0, "d": [75], "a": 1 },
|
||||||
|
{ "px": [128,192], "src": [0,0], "f": 0, "t": 0, "d": [76], "a": 1 },
|
||||||
|
{ "px": [160,192], "src": [0,0], "f": 0, "t": 0, "d": [77], "a": 1 },
|
||||||
|
{ "px": [192,192], "src": [0,0], "f": 0, "t": 0, "d": [78], "a": 1 },
|
||||||
|
{ "px": [224,192], "src": [0,0], "f": 0, "t": 0, "d": [79], "a": 1 },
|
||||||
|
{ "px": [256,192], "src": [0,0], "f": 0, "t": 0, "d": [80], "a": 1 },
|
||||||
|
{ "px": [288,192], "src": [0,0], "f": 0, "t": 0, "d": [81], "a": 1 },
|
||||||
|
{ "px": [320,192], "src": [0,0], "f": 0, "t": 0, "d": [82], "a": 1 },
|
||||||
|
{ "px": [352,192], "src": [0,0], "f": 0, "t": 0, "d": [83], "a": 1 },
|
||||||
|
{ "px": [0,224], "src": [0,0], "f": 0, "t": 0, "d": [84], "a": 1 },
|
||||||
|
{ "px": [32,224], "src": [0,0], "f": 0, "t": 0, "d": [85], "a": 1 },
|
||||||
|
{ "px": [64,224], "src": [0,0], "f": 0, "t": 0, "d": [86], "a": 1 },
|
||||||
|
{ "px": [96,224], "src": [0,0], "f": 0, "t": 0, "d": [87], "a": 1 },
|
||||||
|
{ "px": [128,224], "src": [0,0], "f": 0, "t": 0, "d": [88], "a": 1 },
|
||||||
|
{ "px": [160,224], "src": [0,0], "f": 0, "t": 0, "d": [89], "a": 1 },
|
||||||
|
{ "px": [192,224], "src": [0,0], "f": 0, "t": 0, "d": [90], "a": 1 },
|
||||||
|
{ "px": [224,224], "src": [0,0], "f": 0, "t": 0, "d": [91], "a": 1 },
|
||||||
|
{ "px": [256,224], "src": [0,0], "f": 0, "t": 0, "d": [92], "a": 1 },
|
||||||
|
{ "px": [288,224], "src": [0,0], "f": 0, "t": 0, "d": [93], "a": 1 },
|
||||||
|
{ "px": [320,224], "src": [0,0], "f": 0, "t": 0, "d": [94], "a": 1 },
|
||||||
|
{ "px": [352,224], "src": [0,0], "f": 0, "t": 0, "d": [95], "a": 1 },
|
||||||
|
{ "px": [0,256], "src": [0,0], "f": 0, "t": 0, "d": [96], "a": 1 },
|
||||||
|
{ "px": [32,256], "src": [0,0], "f": 0, "t": 0, "d": [97], "a": 1 },
|
||||||
|
{ "px": [64,256], "src": [0,0], "f": 0, "t": 0, "d": [98], "a": 1 },
|
||||||
|
{ "px": [96,256], "src": [0,0], "f": 0, "t": 0, "d": [99], "a": 1 },
|
||||||
|
{ "px": [128,256], "src": [0,0], "f": 0, "t": 0, "d": [100], "a": 1 },
|
||||||
|
{ "px": [160,256], "src": [0,0], "f": 0, "t": 0, "d": [101], "a": 1 },
|
||||||
|
{ "px": [192,256], "src": [0,0], "f": 0, "t": 0, "d": [102], "a": 1 },
|
||||||
|
{ "px": [224,256], "src": [0,0], "f": 0, "t": 0, "d": [103], "a": 1 },
|
||||||
|
{ "px": [256,256], "src": [0,0], "f": 0, "t": 0, "d": [104], "a": 1 },
|
||||||
|
{ "px": [288,256], "src": [0,0], "f": 0, "t": 0, "d": [105], "a": 1 },
|
||||||
|
{ "px": [320,256], "src": [0,0], "f": 0, "t": 0, "d": [106], "a": 1 },
|
||||||
|
{ "px": [352,256], "src": [0,0], "f": 0, "t": 0, "d": [107], "a": 1 }
|
||||||
|
],
|
||||||
|
"entityInstances": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"__neighbours": [{ "levelIid": "f2e8f060-c210-11ef-bffb-31fe7a15090b", "dir": "e" }]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "Level_1",
|
||||||
|
"iid": "f2e8f060-c210-11ef-bffb-31fe7a15090b",
|
||||||
|
"uid": 8,
|
||||||
|
"worldX": 384,
|
||||||
|
"worldY": 0,
|
||||||
|
"worldDepth": 0,
|
||||||
|
"pxWid": 384,
|
||||||
|
"pxHei": 288,
|
||||||
|
"__bgColor": "#696A79",
|
||||||
|
"bgColor": null,
|
||||||
|
"useAutoIdentifier": true,
|
||||||
|
"bgRelPath": null,
|
||||||
|
"bgPos": null,
|
||||||
|
"bgPivotX": 0.5,
|
||||||
|
"bgPivotY": 0.5,
|
||||||
|
"__smartColor": "#ADADB5",
|
||||||
|
"__bgPos": null,
|
||||||
|
"externalRelPath": null,
|
||||||
|
"fieldInstances": [],
|
||||||
|
"layerInstances": [
|
||||||
|
{
|
||||||
|
"__identifier": "Floor_2",
|
||||||
|
"__type": "Tiles",
|
||||||
|
"__cWid": 12,
|
||||||
|
"__cHei": 9,
|
||||||
|
"__gridSize": 32,
|
||||||
|
"__opacity": 1,
|
||||||
|
"__pxTotalOffsetX": 0,
|
||||||
|
"__pxTotalOffsetY": 0,
|
||||||
|
"__tilesetDefUid": 1,
|
||||||
|
"__tilesetRelPath": "../tilesets/intercut.png",
|
||||||
|
"iid": "f2e8f061-c210-11ef-bffb-6f89236d491a",
|
||||||
|
"levelId": 8,
|
||||||
|
"layerDefUid": 7,
|
||||||
|
"pxOffsetX": 0,
|
||||||
|
"pxOffsetY": 0,
|
||||||
|
"visible": true,
|
||||||
|
"optionalRules": [],
|
||||||
|
"intGridCsv": [],
|
||||||
|
"autoLayerTiles": [],
|
||||||
|
"seed": 9573822,
|
||||||
|
"overrideTilesetUid": null,
|
||||||
|
"gridTiles": [
|
||||||
|
{ "px": [32,32], "src": [0,0], "f": 0, "t": 0, "d": [13], "a": 1 },
|
||||||
|
{ "px": [64,32], "src": [32,0], "f": 0, "t": 1, "d": [14], "a": 1 },
|
||||||
|
{ "px": [96,32], "src": [64,0], "f": 0, "t": 2, "d": [15], "a": 1 },
|
||||||
|
{ "px": [256,32], "src": [0,0], "f": 0, "t": 0, "d": [20], "a": 1 },
|
||||||
|
{ "px": [288,32], "src": [32,0], "f": 0, "t": 1, "d": [21], "a": 1 },
|
||||||
|
{ "px": [320,32], "src": [64,0], "f": 0, "t": 2, "d": [22], "a": 1 },
|
||||||
|
{ "px": [32,64], "src": [32,32], "f": 0, "t": 4, "d": [25], "a": 1 },
|
||||||
|
{ "px": [64,64], "src": [32,32], "f": 0, "t": 4, "d": [26], "a": 1 },
|
||||||
|
{ "px": [96,64], "src": [32,32], "f": 0, "t": 4, "d": [27], "a": 1 },
|
||||||
|
{ "px": [256,64], "src": [0,32], "f": 0, "t": 3, "d": [32], "a": 1 },
|
||||||
|
{ "px": [288,64], "src": [32,32], "f": 0, "t": 4, "d": [33], "a": 1 },
|
||||||
|
{ "px": [320,64], "src": [64,32], "f": 0, "t": 5, "d": [34], "a": 1 },
|
||||||
|
{ "px": [32,192], "src": [0,32], "f": 0, "t": 3, "d": [73], "a": 1 },
|
||||||
|
{ "px": [64,192], "src": [32,32], "f": 0, "t": 4, "d": [74], "a": 1 },
|
||||||
|
{ "px": [96,192], "src": [64,32], "f": 0, "t": 5, "d": [75], "a": 1 },
|
||||||
|
{ "px": [256,192], "src": [0,32], "f": 0, "t": 3, "d": [80], "a": 1 },
|
||||||
|
{ "px": [288,192], "src": [32,32], "f": 0, "t": 4, "d": [81], "a": 1 },
|
||||||
|
{ "px": [320,192], "src": [64,0], "f": 0, "t": 2, "d": [82], "a": 1 },
|
||||||
|
{ "px": [32,224], "src": [0,64], "f": 0, "t": 6, "d": [85], "a": 1 },
|
||||||
|
{ "px": [64,224], "src": [32,64], "f": 0, "t": 7, "d": [86], "a": 1 },
|
||||||
|
{ "px": [96,224], "src": [64,64], "f": 0, "t": 8, "d": [87], "a": 1 },
|
||||||
|
{ "px": [256,224], "src": [0,32], "f": 0, "t": 3, "d": [92], "a": 1 },
|
||||||
|
{ "px": [288,224], "src": [32,64], "f": 0, "t": 7, "d": [93], "a": 1 },
|
||||||
|
{ "px": [320,224], "src": [64,64], "f": 0, "t": 8, "d": [94], "a": 1 }
|
||||||
|
],
|
||||||
|
"entityInstances": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__identifier": "Walls",
|
||||||
|
"__type": "Tiles",
|
||||||
|
"__cWid": 12,
|
||||||
|
"__cHei": 9,
|
||||||
|
"__gridSize": 32,
|
||||||
|
"__opacity": 1,
|
||||||
|
"__pxTotalOffsetX": 0,
|
||||||
|
"__pxTotalOffsetY": 0,
|
||||||
|
"__tilesetDefUid": 3,
|
||||||
|
"__tilesetRelPath": "../tilesets/walls.png",
|
||||||
|
"iid": "f2e8f062-c210-11ef-bffb-b3126f971752",
|
||||||
|
"levelId": 8,
|
||||||
|
"layerDefUid": 6,
|
||||||
|
"pxOffsetX": 0,
|
||||||
|
"pxOffsetY": 0,
|
||||||
|
"visible": true,
|
||||||
|
"optionalRules": [],
|
||||||
|
"intGridCsv": [],
|
||||||
|
"autoLayerTiles": [],
|
||||||
|
"seed": 1645397,
|
||||||
|
"overrideTilesetUid": null,
|
||||||
|
"gridTiles": [
|
||||||
|
{ "px": [160,0], "src": [0,32], "f": 0, "t": 3, "d": [5], "a": 1 },
|
||||||
|
{ "px": [192,0], "src": [64,32], "f": 0, "t": 5, "d": [6], "a": 1 },
|
||||||
|
{ "px": [160,32], "src": [0,32], "f": 0, "t": 3, "d": [17], "a": 1 },
|
||||||
|
{ "px": [192,32], "src": [64,32], "f": 0, "t": 5, "d": [18], "a": 1 },
|
||||||
|
{ "px": [160,64], "src": [0,64], "f": 0, "t": 6, "d": [29], "a": 1 },
|
||||||
|
{ "px": [192,64], "src": [64,64], "f": 0, "t": 8, "d": [30], "a": 1 },
|
||||||
|
{ "px": [0,96], "src": [32,0], "f": 0, "t": 1, "d": [36], "a": 1 },
|
||||||
|
{ "px": [32,96], "src": [32,0], "f": 0, "t": 1, "d": [37], "a": 1 },
|
||||||
|
{ "px": [64,96], "src": [32,0], "f": 0, "t": 1, "d": [38], "a": 1 },
|
||||||
|
{ "px": [96,96], "src": [64,0], "f": 0, "t": 2, "d": [39], "a": 1 },
|
||||||
|
{ "px": [256,96], "src": [0,0], "f": 0, "t": 0, "d": [44], "a": 1 },
|
||||||
|
{ "px": [288,96], "src": [32,0], "f": 0, "t": 1, "d": [45], "a": 1 },
|
||||||
|
{ "px": [320,96], "src": [32,0], "f": 0, "t": 1, "d": [46], "a": 1 },
|
||||||
|
{ "px": [352,96], "src": [32,0], "f": 0, "t": 1, "d": [47], "a": 1 },
|
||||||
|
{ "px": [0,128], "src": [32,32], "f": 0, "t": 4, "d": [48], "a": 1 },
|
||||||
|
{ "px": [32,128], "src": [32,32], "f": 0, "t": 4, "d": [49], "a": 1 },
|
||||||
|
{ "px": [64,128], "src": [32,32], "f": 0, "t": 4, "d": [50], "a": 1 },
|
||||||
|
{ "px": [96,128], "src": [64,32], "f": 0, "t": 5, "d": [51], "a": 1 },
|
||||||
|
{ "px": [256,128], "src": [32,32], "f": 0, "t": 4, "d": [56], "a": 1 },
|
||||||
|
{ "px": [288,128], "src": [32,32], "f": 0, "t": 4, "d": [57], "a": 1 },
|
||||||
|
{ "px": [320,128], "src": [32,32], "f": 0, "t": 4, "d": [58], "a": 1 },
|
||||||
|
{ "px": [352,128], "src": [32,32], "f": 0, "t": 4, "d": [59], "a": 1 },
|
||||||
|
{ "px": [0,160], "src": [32,64], "f": 0, "t": 7, "d": [60], "a": 1 },
|
||||||
|
{ "px": [32,160], "src": [32,64], "f": 0, "t": 7, "d": [61], "a": 1 },
|
||||||
|
{ "px": [64,160], "src": [32,64], "f": 0, "t": 7, "d": [62], "a": 1 },
|
||||||
|
{ "px": [96,160], "src": [64,64], "f": 0, "t": 8, "d": [63], "a": 1 },
|
||||||
|
{ "px": [256,160], "src": [0,64], "f": 0, "t": 6, "d": [68], "a": 1 },
|
||||||
|
{ "px": [288,160], "src": [32,64], "f": 0, "t": 7, "d": [69], "a": 1 },
|
||||||
|
{ "px": [320,160], "src": [32,64], "f": 0, "t": 7, "d": [70], "a": 1 },
|
||||||
|
{ "px": [352,160], "src": [32,64], "f": 0, "t": 7, "d": [71], "a": 1 },
|
||||||
|
{ "px": [160,192], "src": [0,0], "f": 0, "t": 0, "d": [77], "a": 1 },
|
||||||
|
{ "px": [192,192], "src": [64,0], "f": 0, "t": 2, "d": [78], "a": 1 },
|
||||||
|
{ "px": [160,224], "src": [0,32], "f": 0, "t": 3, "d": [89], "a": 1 },
|
||||||
|
{ "px": [192,224], "src": [64,32], "f": 0, "t": 5, "d": [90], "a": 1 },
|
||||||
|
{ "px": [160,256], "src": [0,32], "f": 0, "t": 3, "d": [101], "a": 1 },
|
||||||
|
{ "px": [192,256], "src": [64,32], "f": 0, "t": 5, "d": [102], "a": 1 }
|
||||||
|
],
|
||||||
|
"entityInstances": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__identifier": "Floor",
|
||||||
|
"__type": "Tiles",
|
||||||
|
"__cWid": 12,
|
||||||
|
"__cHei": 9,
|
||||||
|
"__gridSize": 32,
|
||||||
|
"__opacity": 1,
|
||||||
|
"__pxTotalOffsetX": 0,
|
||||||
|
"__pxTotalOffsetY": 0,
|
||||||
|
"__tilesetDefUid": 2,
|
||||||
|
"__tilesetRelPath": "../tilesets/base.png",
|
||||||
|
"iid": "f2e8f063-c210-11ef-bffb-a76072bfa5d6",
|
||||||
|
"levelId": 8,
|
||||||
|
"layerDefUid": 5,
|
||||||
|
"pxOffsetX": 0,
|
||||||
|
"pxOffsetY": 0,
|
||||||
|
"visible": true,
|
||||||
|
"optionalRules": [],
|
||||||
|
"intGridCsv": [],
|
||||||
|
"autoLayerTiles": [],
|
||||||
|
"seed": 1336393,
|
||||||
|
"overrideTilesetUid": null,
|
||||||
|
"gridTiles": [
|
||||||
|
{ "px": [0,0], "src": [0,0], "f": 0, "t": 0, "d": [0], "a": 1 },
|
||||||
|
{ "px": [32,0], "src": [0,0], "f": 0, "t": 0, "d": [1], "a": 1 },
|
||||||
|
{ "px": [64,0], "src": [0,0], "f": 0, "t": 0, "d": [2], "a": 1 },
|
||||||
|
{ "px": [96,0], "src": [0,0], "f": 0, "t": 0, "d": [3], "a": 1 },
|
||||||
|
{ "px": [128,0], "src": [0,0], "f": 0, "t": 0, "d": [4], "a": 1 },
|
||||||
|
{ "px": [160,0], "src": [0,0], "f": 0, "t": 0, "d": [5], "a": 1 },
|
||||||
|
{ "px": [192,0], "src": [0,0], "f": 0, "t": 0, "d": [6], "a": 1 },
|
||||||
|
{ "px": [224,0], "src": [0,0], "f": 0, "t": 0, "d": [7], "a": 1 },
|
||||||
|
{ "px": [256,0], "src": [0,0], "f": 0, "t": 0, "d": [8], "a": 1 },
|
||||||
|
{ "px": [288,0], "src": [0,0], "f": 0, "t": 0, "d": [9], "a": 1 },
|
||||||
|
{ "px": [320,0], "src": [0,0], "f": 0, "t": 0, "d": [10], "a": 1 },
|
||||||
|
{ "px": [352,0], "src": [0,0], "f": 0, "t": 0, "d": [11], "a": 1 },
|
||||||
|
{ "px": [0,32], "src": [0,0], "f": 0, "t": 0, "d": [12], "a": 1 },
|
||||||
|
{ "px": [32,32], "src": [0,0], "f": 0, "t": 0, "d": [13], "a": 1 },
|
||||||
|
{ "px": [64,32], "src": [0,0], "f": 0, "t": 0, "d": [14], "a": 1 },
|
||||||
|
{ "px": [96,32], "src": [0,0], "f": 0, "t": 0, "d": [15], "a": 1 },
|
||||||
|
{ "px": [128,32], "src": [0,0], "f": 0, "t": 0, "d": [16], "a": 1 },
|
||||||
|
{ "px": [160,32], "src": [0,0], "f": 0, "t": 0, "d": [17], "a": 1 },
|
||||||
|
{ "px": [192,32], "src": [0,0], "f": 0, "t": 0, "d": [18], "a": 1 },
|
||||||
|
{ "px": [224,32], "src": [0,0], "f": 0, "t": 0, "d": [19], "a": 1 },
|
||||||
|
{ "px": [256,32], "src": [0,0], "f": 0, "t": 0, "d": [20], "a": 1 },
|
||||||
|
{ "px": [288,32], "src": [0,0], "f": 0, "t": 0, "d": [21], "a": 1 },
|
||||||
|
{ "px": [320,32], "src": [0,0], "f": 0, "t": 0, "d": [22], "a": 1 },
|
||||||
|
{ "px": [352,32], "src": [0,0], "f": 0, "t": 0, "d": [23], "a": 1 },
|
||||||
|
{ "px": [0,64], "src": [0,0], "f": 0, "t": 0, "d": [24], "a": 1 },
|
||||||
|
{ "px": [32,64], "src": [0,0], "f": 0, "t": 0, "d": [25], "a": 1 },
|
||||||
|
{ "px": [64,64], "src": [0,0], "f": 0, "t": 0, "d": [26], "a": 1 },
|
||||||
|
{ "px": [96,64], "src": [0,0], "f": 0, "t": 0, "d": [27], "a": 1 },
|
||||||
|
{ "px": [128,64], "src": [0,0], "f": 0, "t": 0, "d": [28], "a": 1 },
|
||||||
|
{ "px": [160,64], "src": [0,0], "f": 0, "t": 0, "d": [29], "a": 1 },
|
||||||
|
{ "px": [192,64], "src": [0,0], "f": 0, "t": 0, "d": [30], "a": 1 },
|
||||||
|
{ "px": [224,64], "src": [0,0], "f": 0, "t": 0, "d": [31], "a": 1 },
|
||||||
|
{ "px": [256,64], "src": [0,0], "f": 0, "t": 0, "d": [32], "a": 1 },
|
||||||
|
{ "px": [288,64], "src": [0,0], "f": 0, "t": 0, "d": [33], "a": 1 },
|
||||||
|
{ "px": [320,64], "src": [0,0], "f": 0, "t": 0, "d": [34], "a": 1 },
|
||||||
|
{ "px": [352,64], "src": [0,0], "f": 0, "t": 0, "d": [35], "a": 1 },
|
||||||
|
{ "px": [0,96], "src": [0,0], "f": 0, "t": 0, "d": [36], "a": 1 },
|
||||||
|
{ "px": [32,96], "src": [0,0], "f": 0, "t": 0, "d": [37], "a": 1 },
|
||||||
|
{ "px": [64,96], "src": [0,0], "f": 0, "t": 0, "d": [38], "a": 1 },
|
||||||
|
{ "px": [96,96], "src": [0,0], "f": 0, "t": 0, "d": [39], "a": 1 },
|
||||||
|
{ "px": [128,96], "src": [0,0], "f": 0, "t": 0, "d": [40], "a": 1 },
|
||||||
|
{ "px": [160,96], "src": [0,0], "f": 0, "t": 0, "d": [41], "a": 1 },
|
||||||
|
{ "px": [192,96], "src": [0,0], "f": 0, "t": 0, "d": [42], "a": 1 },
|
||||||
|
{ "px": [224,96], "src": [0,0], "f": 0, "t": 0, "d": [43], "a": 1 },
|
||||||
|
{ "px": [256,96], "src": [0,0], "f": 0, "t": 0, "d": [44], "a": 1 },
|
||||||
|
{ "px": [288,96], "src": [0,0], "f": 0, "t": 0, "d": [45], "a": 1 },
|
||||||
|
{ "px": [320,96], "src": [0,0], "f": 0, "t": 0, "d": [46], "a": 1 },
|
||||||
|
{ "px": [352,96], "src": [0,0], "f": 0, "t": 0, "d": [47], "a": 1 },
|
||||||
|
{ "px": [0,128], "src": [0,0], "f": 0, "t": 0, "d": [48], "a": 1 },
|
||||||
|
{ "px": [32,128], "src": [0,0], "f": 0, "t": 0, "d": [49], "a": 1 },
|
||||||
|
{ "px": [64,128], "src": [0,0], "f": 0, "t": 0, "d": [50], "a": 1 },
|
||||||
|
{ "px": [96,128], "src": [0,0], "f": 0, "t": 0, "d": [51], "a": 1 },
|
||||||
|
{ "px": [128,128], "src": [0,0], "f": 0, "t": 0, "d": [52], "a": 1 },
|
||||||
|
{ "px": [160,128], "src": [0,0], "f": 0, "t": 0, "d": [53], "a": 1 },
|
||||||
|
{ "px": [192,128], "src": [0,0], "f": 0, "t": 0, "d": [54], "a": 1 },
|
||||||
|
{ "px": [224,128], "src": [0,0], "f": 0, "t": 0, "d": [55], "a": 1 },
|
||||||
|
{ "px": [256,128], "src": [0,0], "f": 0, "t": 0, "d": [56], "a": 1 },
|
||||||
|
{ "px": [288,128], "src": [0,0], "f": 0, "t": 0, "d": [57], "a": 1 },
|
||||||
|
{ "px": [320,128], "src": [0,0], "f": 0, "t": 0, "d": [58], "a": 1 },
|
||||||
|
{ "px": [352,128], "src": [0,0], "f": 0, "t": 0, "d": [59], "a": 1 },
|
||||||
|
{ "px": [0,160], "src": [0,0], "f": 0, "t": 0, "d": [60], "a": 1 },
|
||||||
|
{ "px": [32,160], "src": [0,0], "f": 0, "t": 0, "d": [61], "a": 1 },
|
||||||
|
{ "px": [64,160], "src": [0,0], "f": 0, "t": 0, "d": [62], "a": 1 },
|
||||||
|
{ "px": [96,160], "src": [0,0], "f": 0, "t": 0, "d": [63], "a": 1 },
|
||||||
|
{ "px": [128,160], "src": [0,0], "f": 0, "t": 0, "d": [64], "a": 1 },
|
||||||
|
{ "px": [160,160], "src": [0,0], "f": 0, "t": 0, "d": [65], "a": 1 },
|
||||||
|
{ "px": [192,160], "src": [0,0], "f": 0, "t": 0, "d": [66], "a": 1 },
|
||||||
|
{ "px": [224,160], "src": [0,0], "f": 0, "t": 0, "d": [67], "a": 1 },
|
||||||
|
{ "px": [256,160], "src": [0,0], "f": 0, "t": 0, "d": [68], "a": 1 },
|
||||||
|
{ "px": [288,160], "src": [0,0], "f": 0, "t": 0, "d": [69], "a": 1 },
|
||||||
|
{ "px": [320,160], "src": [0,0], "f": 0, "t": 0, "d": [70], "a": 1 },
|
||||||
|
{ "px": [352,160], "src": [0,0], "f": 0, "t": 0, "d": [71], "a": 1 },
|
||||||
|
{ "px": [0,192], "src": [0,0], "f": 0, "t": 0, "d": [72], "a": 1 },
|
||||||
|
{ "px": [32,192], "src": [0,0], "f": 0, "t": 0, "d": [73], "a": 1 },
|
||||||
|
{ "px": [64,192], "src": [0,0], "f": 0, "t": 0, "d": [74], "a": 1 },
|
||||||
|
{ "px": [96,192], "src": [0,0], "f": 0, "t": 0, "d": [75], "a": 1 },
|
||||||
|
{ "px": [128,192], "src": [0,0], "f": 0, "t": 0, "d": [76], "a": 1 },
|
||||||
|
{ "px": [160,192], "src": [0,0], "f": 0, "t": 0, "d": [77], "a": 1 },
|
||||||
|
{ "px": [192,192], "src": [0,0], "f": 0, "t": 0, "d": [78], "a": 1 },
|
||||||
|
{ "px": [224,192], "src": [0,0], "f": 0, "t": 0, "d": [79], "a": 1 },
|
||||||
|
{ "px": [256,192], "src": [0,0], "f": 0, "t": 0, "d": [80], "a": 1 },
|
||||||
|
{ "px": [288,192], "src": [0,0], "f": 0, "t": 0, "d": [81], "a": 1 },
|
||||||
|
{ "px": [320,192], "src": [0,0], "f": 0, "t": 0, "d": [82], "a": 1 },
|
||||||
|
{ "px": [352,192], "src": [0,0], "f": 0, "t": 0, "d": [83], "a": 1 },
|
||||||
|
{ "px": [0,224], "src": [0,0], "f": 0, "t": 0, "d": [84], "a": 1 },
|
||||||
|
{ "px": [32,224], "src": [0,0], "f": 0, "t": 0, "d": [85], "a": 1 },
|
||||||
|
{ "px": [64,224], "src": [0,0], "f": 0, "t": 0, "d": [86], "a": 1 },
|
||||||
|
{ "px": [96,224], "src": [0,0], "f": 0, "t": 0, "d": [87], "a": 1 },
|
||||||
|
{ "px": [128,224], "src": [0,0], "f": 0, "t": 0, "d": [88], "a": 1 },
|
||||||
|
{ "px": [160,224], "src": [0,0], "f": 0, "t": 0, "d": [89], "a": 1 },
|
||||||
|
{ "px": [192,224], "src": [0,0], "f": 0, "t": 0, "d": [90], "a": 1 },
|
||||||
|
{ "px": [224,224], "src": [0,0], "f": 0, "t": 0, "d": [91], "a": 1 },
|
||||||
|
{ "px": [256,224], "src": [0,0], "f": 0, "t": 0, "d": [92], "a": 1 },
|
||||||
|
{ "px": [288,224], "src": [0,0], "f": 0, "t": 0, "d": [93], "a": 1 },
|
||||||
|
{ "px": [320,224], "src": [0,0], "f": 0, "t": 0, "d": [94], "a": 1 },
|
||||||
|
{ "px": [352,224], "src": [0,0], "f": 0, "t": 0, "d": [95], "a": 1 },
|
||||||
|
{ "px": [0,256], "src": [0,0], "f": 0, "t": 0, "d": [96], "a": 1 },
|
||||||
|
{ "px": [32,256], "src": [0,0], "f": 0, "t": 0, "d": [97], "a": 1 },
|
||||||
|
{ "px": [64,256], "src": [0,0], "f": 0, "t": 0, "d": [98], "a": 1 },
|
||||||
|
{ "px": [96,256], "src": [0,0], "f": 0, "t": 0, "d": [99], "a": 1 },
|
||||||
|
{ "px": [128,256], "src": [0,0], "f": 0, "t": 0, "d": [100], "a": 1 },
|
||||||
|
{ "px": [160,256], "src": [0,0], "f": 0, "t": 0, "d": [101], "a": 1 },
|
||||||
|
{ "px": [192,256], "src": [0,0], "f": 0, "t": 0, "d": [102], "a": 1 },
|
||||||
|
{ "px": [224,256], "src": [0,0], "f": 0, "t": 0, "d": [103], "a": 1 },
|
||||||
|
{ "px": [256,256], "src": [0,0], "f": 0, "t": 0, "d": [104], "a": 1 },
|
||||||
|
{ "px": [288,256], "src": [0,0], "f": 0, "t": 0, "d": [105], "a": 1 },
|
||||||
|
{ "px": [320,256], "src": [0,0], "f": 0, "t": 0, "d": [106], "a": 1 },
|
||||||
|
{ "px": [352,256], "src": [0,0], "f": 0, "t": 0, "d": [107], "a": 1 }
|
||||||
|
],
|
||||||
|
"entityInstances": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"__neighbours": [{ "levelIid": "f7eda580-c210-11ef-bffb-6b05aa089ccc", "dir": "w" }]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"worlds": [],
|
||||||
|
"dummyWorldIid": "f7ed7e71-c210-11ef-bffb-e5502bfa23c6"
|
||||||
|
}
|
@ -1,71 +0,0 @@
|
|||||||
{
|
|
||||||
"__header__": {
|
|
||||||
"fileType": "LDtk Project JSON",
|
|
||||||
"app": "LDtk",
|
|
||||||
"doc": "https://ldtk.io/json",
|
|
||||||
"schema": "https://ldtk.io/files/JSON_SCHEMA.json",
|
|
||||||
"appAuthor": "Sebastien 'deepnight' Benard",
|
|
||||||
"appVersion": "1.5.3",
|
|
||||||
"url": "https://ldtk.io"
|
|
||||||
},
|
|
||||||
"iid": "018dc430-c210-11ef-bffb-99d47c7356b6",
|
|
||||||
"jsonVersion": "1.5.3",
|
|
||||||
"appBuildId": 473703,
|
|
||||||
"nextUid": 1,
|
|
||||||
"identifierStyle": "Capitalize",
|
|
||||||
"toc": [],
|
|
||||||
"worldLayout": "Free",
|
|
||||||
"worldGridWidth": 256,
|
|
||||||
"worldGridHeight": 256,
|
|
||||||
"defaultLevelWidth": 256,
|
|
||||||
"defaultLevelHeight": 256,
|
|
||||||
"defaultPivotX": 0,
|
|
||||||
"defaultPivotY": 0,
|
|
||||||
"defaultGridSize": 16,
|
|
||||||
"defaultEntityWidth": 16,
|
|
||||||
"defaultEntityHeight": 16,
|
|
||||||
"bgColor": "#40465B",
|
|
||||||
"defaultLevelBgColor": "#696A79",
|
|
||||||
"minifyJson": false,
|
|
||||||
"externalLevels": false,
|
|
||||||
"exportTiled": false,
|
|
||||||
"simplifiedExport": false,
|
|
||||||
"imageExportMode": "None",
|
|
||||||
"exportLevelBg": true,
|
|
||||||
"pngFilePattern": null,
|
|
||||||
"backupOnSave": false,
|
|
||||||
"backupLimit": 10,
|
|
||||||
"backupRelPath": null,
|
|
||||||
"levelNamePattern": "Level_%idx",
|
|
||||||
"tutorialDesc": null,
|
|
||||||
"customCommands": [],
|
|
||||||
"flags": [],
|
|
||||||
"defs": { "layers": [], "entities": [], "tilesets": [], "enums": [], "externalEnums": [], "levelFields": [] },
|
|
||||||
"levels": [
|
|
||||||
{
|
|
||||||
"identifier": "Level_0",
|
|
||||||
"iid": "018deb40-c210-11ef-bffb-151cf6f68a2d",
|
|
||||||
"uid": 0,
|
|
||||||
"worldX": 0,
|
|
||||||
"worldY": 0,
|
|
||||||
"worldDepth": 0,
|
|
||||||
"pxWid": 256,
|
|
||||||
"pxHei": 256,
|
|
||||||
"__bgColor": "#696A79",
|
|
||||||
"bgColor": null,
|
|
||||||
"useAutoIdentifier": true,
|
|
||||||
"bgRelPath": null,
|
|
||||||
"bgPos": null,
|
|
||||||
"bgPivotX": 0.5,
|
|
||||||
"bgPivotY": 0.5,
|
|
||||||
"__smartColor": "#ADADB5",
|
|
||||||
"__bgPos": null,
|
|
||||||
"externalRelPath": null,
|
|
||||||
"fieldInstances": [],
|
|
||||||
"layerInstances": [],
|
|
||||||
"__neighbours": []
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"worlds": [],
|
|
||||||
"dummyWorldIid": "018dc431-c210-11ef-bffb-cb15d2e5f164"
|
|
||||||
}
|
|
BIN
src/art/tilesets/base.png
Normal file
BIN
src/art/tilesets/base.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 388 B |
BIN
src/art/tilesets/block.png
Normal file
BIN
src/art/tilesets/block.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 388 B |
BIN
src/art/tilesets/intercut.png
Normal file
BIN
src/art/tilesets/intercut.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 611 B |
BIN
src/art/tilesets/walls.png
Normal file
BIN
src/art/tilesets/walls.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 473 B |
190
src/game.ts
190
src/game.ts
@ -1,7 +1,7 @@
|
|||||||
import {desiredHeight, desiredWidth, getScreen} from "./screen.ts";
|
import {desiredHeight, desiredWidth, getScreen} from "./screen.ts";
|
||||||
import {BG_OUTER} from "./colors.ts";
|
import {BG_OUTER} from "./colors.ts";
|
||||||
import {AlignX, mainFont} from "./font.ts";
|
|
||||||
import {getInput} from "./input.ts";
|
import {getInput} from "./input.ts";
|
||||||
|
import {checkGrid, ConceptualCell, maps, mapSzX, mapSzY} from "./maps.ts";
|
||||||
|
|
||||||
type Point = {x: number, y: number}
|
type Point = {x: number, y: number}
|
||||||
|
|
||||||
@ -25,14 +25,11 @@ class MenuCamera {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type GameState = "Overview" | "Gameplay" | "Thralls";
|
type GameState = "Gameplay" | "Thralls";
|
||||||
|
|
||||||
function getScreenLocation(state: GameState): {x: number, y: number} {
|
function getScreenLocation(state: GameState): {x: number, y: number} {
|
||||||
if (state === "Overview") {
|
|
||||||
return {x: 0.0, y: 0.0}
|
|
||||||
}
|
|
||||||
if (state === "Gameplay") {
|
if (state === "Gameplay") {
|
||||||
return {x: 1.0, y: 0.0}
|
return {x: 0.0, y: 0.0}
|
||||||
}
|
}
|
||||||
if (state === "Thralls") {
|
if (state === "Thralls") {
|
||||||
return {x: 0.0, y: 1.0}
|
return {x: 0.0, y: 1.0}
|
||||||
@ -44,20 +41,20 @@ function getScreenLocation(state: GameState): {x: number, y: number} {
|
|||||||
export class Game {
|
export class Game {
|
||||||
camera: MenuCamera;
|
camera: MenuCamera;
|
||||||
state: GameState;
|
state: GameState;
|
||||||
|
huntMode: HuntMode;
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
this.camera = new MenuCamera({
|
this.camera = new MenuCamera({
|
||||||
position: {x: 0.0, y: 0.0},
|
position: {x: 0.0, y: 0.0},
|
||||||
target: {x: 0.0, y: 0.0}
|
target: {x: 0.0, y: 0.0}
|
||||||
});
|
});
|
||||||
this.state = "Overview";
|
this.state = "Gameplay";
|
||||||
|
|
||||||
|
this.huntMode = HuntMode.generate({depth: 1});
|
||||||
}
|
}
|
||||||
|
|
||||||
update() {
|
update() {
|
||||||
if (getInput().isPressed("a") || getInput().isPressed("w")) {
|
if (getInput().isPressed("w")) {
|
||||||
this.state = "Overview"
|
|
||||||
}
|
|
||||||
if (getInput().isPressed("d")) {
|
|
||||||
this.state = "Gameplay"
|
this.state = "Gameplay"
|
||||||
}
|
}
|
||||||
if (getInput().isPressed("s")) {
|
if (getInput().isPressed("s")) {
|
||||||
@ -68,7 +65,7 @@ export class Game {
|
|||||||
this.camera.update();
|
this.camera.update();
|
||||||
|
|
||||||
// state-specific updates
|
// state-specific updates
|
||||||
this.updateOverview();
|
this.updateGameplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
draw() {
|
draw() {
|
||||||
@ -79,8 +76,7 @@ export class Game {
|
|||||||
ctx.fillStyle = BG_OUTER;
|
ctx.fillStyle = BG_OUTER;
|
||||||
ctx.fillRect(0, 0, screen.w, screen.h);
|
ctx.fillRect(0, 0, screen.w, screen.h);
|
||||||
|
|
||||||
this.drawOverview();
|
this.drawGameplay();
|
||||||
// this.drawGameplay();
|
|
||||||
|
|
||||||
// we draw all states at once and pan between them
|
// we draw all states at once and pan between them
|
||||||
// mainFont.drawText({ctx: ctx, text: "You have been given a gift.", x: 0, y: 0})
|
// mainFont.drawText({ctx: ctx, text: "You have been given a gift.", x: 0, y: 0})
|
||||||
@ -157,86 +153,106 @@ export class Game {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
updateOverview() {
|
updateGameplay() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
drawOverview() {
|
drawGameplay() {
|
||||||
let region = this.getPaneRegionForGameState("Overview")
|
let region = this.getPaneRegionForGameState("Gameplay")
|
||||||
let ctx = this.makeCameraContext()
|
let ctx = this.makeCameraContext()
|
||||||
ctx.translate(region.small.position.x, region.small.position.y)
|
ctx.translate(region.small.position.x, region.small.position.y)
|
||||||
|
|
||||||
// ctx.strokeStyle = "#ffffff";
|
|
||||||
// ctx.strokeRect(0.5, 0.5, region.small.size.x - 1, region.small.size.y - 1);
|
|
||||||
|
|
||||||
// draw skills menu
|
|
||||||
for (let [i, skillName] of [
|
|
||||||
"Screech", "Stop Talking", "Flatter", "Dazzle", "Chug", "Respect Elders"
|
|
||||||
].entries()) {
|
|
||||||
mainFont.drawText({ctx: ctx, text: skillName, x: 4, y: i * 16, alignX: AlignX.Left})
|
|
||||||
mainFont.drawText({ctx: ctx, text: "150", x: 160 - 4, y: i * 16, alignX: AlignX.Right, color: "#ff0"})
|
|
||||||
}
|
|
||||||
|
|
||||||
mainFont.drawText({ctx: ctx, text: "Stop embarrassing yourself\naround other immortals.\nKeep to yourself and they\nwon't make fun of you.\n\nCost reduced by INT and AGI", x: 160 + 4, y: 0, forceWidth: 384 - 160 - 8})
|
|
||||||
|
|
||||||
ctx.globalCompositeOperation = "difference";
|
|
||||||
ctx.fillStyle = "#fff"
|
|
||||||
ctx.fillRect(0, 16, 160, 16);
|
|
||||||
ctx.fillRect(160, 0, 384 - 160, 96);
|
|
||||||
|
|
||||||
// draw character profile
|
|
||||||
ctx = this.makeCameraContext();
|
|
||||||
ctx.translate(region.small.position.x, region.small.position.y)
|
|
||||||
// ctx.fillStyle = "#200";
|
|
||||||
// ctx.fillRect(0, 96, 384, 192)
|
|
||||||
// ctx.fillStyle = "#ff0"; ctx.fillRect(176, 176, 32, 16);
|
|
||||||
// draw ascii art
|
|
||||||
mainFont.drawText(
|
|
||||||
{ctx, x: 272, y: 160, text: " \n; 0 0 \n \\ / \n \\\\' \n / \n .' '\n/_' ", color: "#334", alignX: AlignX.Center}
|
|
||||||
)
|
|
||||||
mainFont.drawText(
|
|
||||||
{ctx, x: 272, y: 160, text: " \n 0 0 \n . . ", color: "#fff", alignX: AlignX.Center}
|
|
||||||
)
|
|
||||||
mainFont.drawText(
|
|
||||||
{ctx, x: 272, y: 160, text: " ^ ^ \n<; 0 0 ", color: "#448", alignX: AlignX.Center}
|
|
||||||
)
|
|
||||||
mainFont.drawText(
|
|
||||||
{ctx, x: 272, y: 160, text: " \n 0 0 ", color: "#f00", alignX: AlignX.Center}
|
|
||||||
)
|
|
||||||
|
|
||||||
// draw character name
|
|
||||||
mainFont.drawText({ctx, x: 4 + 32, y: 96 + 16 + 0, text: "Pyrex"})
|
|
||||||
mainFont.drawText({ctx, x: 4 + 32, y: 96 + 16 + 16, text: "Level 6", color: "#ccc"})
|
|
||||||
|
|
||||||
// draw attributes
|
|
||||||
for (let [i, {name, value}] of [
|
|
||||||
{name: "AGI", value: 10},
|
|
||||||
{name: "INT", value: 20},
|
|
||||||
{name: "CHA", value: 30},
|
|
||||||
{name: "PSI", value: 40},
|
|
||||||
].entries()) {
|
|
||||||
mainFont.drawText({ctx, x: 32 + 4, y: 96 + 64 + 16 * i, text: name, color: "#fff"})
|
|
||||||
mainFont.drawText({ctx, x: 32 + 4 + 32, y: 96 + 64 + 16 * i, text: "" + value, color: "#ccc"})
|
|
||||||
}
|
|
||||||
|
|
||||||
mainFont.drawText({ctx, x: 32 + 4, y: 96 + 144, text: "MN ", color: "#fff"})
|
|
||||||
mainFont.drawText({ctx, x: 32 + 4 + 24, y: 96 + 144, text: "$400", color: "#ccc"})
|
|
||||||
mainFont.drawText({ctx, x: 32 + 4, y: 96 + 160, text: "BLD", color: "#fff"})
|
|
||||||
mainFont.drawText({ctx, x: 32 + 4 + 32, y: 96 + 160, text: "10cc", color: "#ccc"})
|
|
||||||
|
|
||||||
// draw character thoughts
|
|
||||||
// mainFont.drawText({ctx, x: 256, y: 96 + 16, text: "[I'm peckish!]\n[I must feed.]", alignX: AlignX.Center})
|
|
||||||
mainFont.drawText({ctx, x: 272, y: 96 + 16, text: "[Learn Stop Talking?]", alignX: AlignX.Center})
|
|
||||||
mainFont.drawText({ctx, x: 272, y: 96 + 32, text: "[Yes] [No]", alignX: AlignX.Center})
|
|
||||||
|
|
||||||
// draw thralls
|
|
||||||
ctx.fillStyle = "#f00"
|
|
||||||
ctx.fillRect(0, 288, 128, 96);
|
|
||||||
ctx.fillStyle = "#0f0"
|
|
||||||
ctx.fillRect(128, 288, 128, 96);
|
|
||||||
ctx.fillStyle = "#00f"
|
|
||||||
ctx.fillRect(256, 288, 128, 96);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export let game = new Game();
|
type Stat = "AGI" | "INT" | "CHA" | "PSI";
|
||||||
|
const ALL_STATS: Array<Stat> = ["AGI", "INT", "CHA", "PSI"];
|
||||||
|
type MapCellContent =
|
||||||
|
{type: "statPickup", stat: Stat} |
|
||||||
|
{type: "stairs"} |
|
||||||
|
{type: "block"}
|
||||||
|
|
||||||
|
type MapCell = {
|
||||||
|
content: MapCellContent,
|
||||||
|
revealed: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
class HuntMode {
|
||||||
|
depth: number
|
||||||
|
cells: Array<Array<MapCell>>
|
||||||
|
player: Point | null
|
||||||
|
|
||||||
|
constructor({depth, cells, player}: {depth: number, cells: Array<Array<MapCell>>, player: Point | null}) {
|
||||||
|
this.depth = depth;
|
||||||
|
this.cells = cells;
|
||||||
|
this.player = player;
|
||||||
|
|
||||||
|
checkGrid(this.cells);
|
||||||
|
}
|
||||||
|
|
||||||
|
static generate({depth}: {depth: number}) {
|
||||||
|
let mapNames: Array<string> = Object.keys(maps);
|
||||||
|
let mapName = mapNames[Math.floor(Math.random() * mapNames.length)];
|
||||||
|
let map = maps[mapName];
|
||||||
|
|
||||||
|
let rows = [];
|
||||||
|
for (let y = 0; y < mapSzY; y++) {
|
||||||
|
let row = [];
|
||||||
|
for (let x = 0; x < mapSzX; x++) {
|
||||||
|
let src = map[y][x];
|
||||||
|
row.push(HuntMode.#generateCell(src))
|
||||||
|
}
|
||||||
|
rows.push(row);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Math.random() < 0.75) {
|
||||||
|
while (true) {
|
||||||
|
let x = Math.floor(Math.random() * mapSzX);
|
||||||
|
let y = Math.floor(Math.random() * mapSzY);
|
||||||
|
|
||||||
|
let item = rows[y][x];
|
||||||
|
if (item.content.type != "block") {
|
||||||
|
item.content = {type: "stairs"}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return new HuntMode({depth, cells: rows, player: null})
|
||||||
|
}
|
||||||
|
|
||||||
|
static #generateCell(conceptual: ConceptualCell): MapCell {
|
||||||
|
switch (conceptual) {
|
||||||
|
case "X":
|
||||||
|
return { content: {type: "block"}, revealed: true};
|
||||||
|
case " ":
|
||||||
|
return { content: HuntMode.#generateContent(true), revealed: true };
|
||||||
|
case ".":
|
||||||
|
return { content: HuntMode.#generateContent(false), revealed: true };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static #generateContent(_revealed: boolean): MapCellContent {
|
||||||
|
// stat pickup
|
||||||
|
let gsp = (): MapCellContent => {
|
||||||
|
return {type: "statPickup", stat: choose(ALL_STATS)}
|
||||||
|
};
|
||||||
|
// TODO: Other objects?
|
||||||
|
return choose([
|
||||||
|
gsp, gsp, gsp, gsp
|
||||||
|
])();
|
||||||
|
}
|
||||||
|
|
||||||
|
get(at: Point) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function choose<T>(array: Array<T>): T {
|
||||||
|
if (array.length == 0) {
|
||||||
|
throw `array cannot have length 0 for choose`
|
||||||
|
}
|
||||||
|
return array[Math.floor(Math.random() * array.length)]
|
||||||
|
}
|
||||||
|
|
||||||
|
export let game = new Game();
|
85
src/maps.ts
Normal file
85
src/maps.ts
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
export const mapSzX = 12;
|
||||||
|
export const mapSzY= 9;
|
||||||
|
|
||||||
|
export function checkGrid<T>(cells: Array<Array<T>>): Array<Array<T>> {
|
||||||
|
if (cells.length != mapSzY) {
|
||||||
|
throw `map must be ${mapSzX}x${mapSzY}`
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let row of cells.values()) {
|
||||||
|
if (row.length != mapSzX) {
|
||||||
|
throw `map must be ${mapSzX}x${mapSzY}`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return cells;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ConceptualCell = "X" | "." | " ";
|
||||||
|
|
||||||
|
function loadMap(map: Array<string>): Array<Array<ConceptualCell>> {
|
||||||
|
let newRows: Array<Array<ConceptualCell>> = [];
|
||||||
|
for (let oldRow of map.values()) {
|
||||||
|
let newRow: Array<ConceptualCell> = []
|
||||||
|
for (let i = 0; i < oldRow.length; i++) {
|
||||||
|
let char = oldRow.charAt(i);
|
||||||
|
let cell: ConceptualCell
|
||||||
|
switch(char) {
|
||||||
|
case "X": cell = "X"; break;
|
||||||
|
case ".": cell = "."; break;
|
||||||
|
case " ": cell = " "; break;
|
||||||
|
default:
|
||||||
|
throw `map element not valid: ${char}`
|
||||||
|
}
|
||||||
|
newRow.push(cell);
|
||||||
|
}
|
||||||
|
newRows.push(newRow);
|
||||||
|
}
|
||||||
|
return checkGrid(newRows);
|
||||||
|
}
|
||||||
|
|
||||||
|
export let maps: Record<string, Array<Array<ConceptualCell>>> = {
|
||||||
|
map0: loadMap([
|
||||||
|
"XX XX",
|
||||||
|
"X. .X",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
"X. .X",
|
||||||
|
"XX XX",
|
||||||
|
]),
|
||||||
|
map1: loadMap([
|
||||||
|
"XX. XX",
|
||||||
|
"XXX X .X",
|
||||||
|
".XX XX ",
|
||||||
|
" .XX ",
|
||||||
|
" ",
|
||||||
|
" XX. ",
|
||||||
|
" XX XX.",
|
||||||
|
"X. X XXX",
|
||||||
|
"XX .XX",
|
||||||
|
]),
|
||||||
|
map2: loadMap([
|
||||||
|
"XX XXXX XX",
|
||||||
|
"X. XXXXXX .X",
|
||||||
|
" XX..XX ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" XX..XX ",
|
||||||
|
"X. XXXXXX .X",
|
||||||
|
"XX XXXX XX",
|
||||||
|
]),
|
||||||
|
map3: loadMap([
|
||||||
|
"X XXXX X",
|
||||||
|
" . . ",
|
||||||
|
" . . ",
|
||||||
|
"X XXXX X",
|
||||||
|
"X XXXX X",
|
||||||
|
"X XXXX X",
|
||||||
|
" . . ",
|
||||||
|
" . . ",
|
||||||
|
"X XXXX X",
|
||||||
|
]),
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user