diff --git a/public/favicon.png b/public/favicon.png index a789abc..25233a5 100644 Binary files a/public/favicon.png and b/public/favicon.png differ diff --git a/src/assets/BatDie.png b/src/assets/BatDie.png new file mode 100644 index 0000000..bd0824f Binary files /dev/null and b/src/assets/BatDie.png differ diff --git a/src/assets/BatFly.png b/src/assets/BatFly.png new file mode 100644 index 0000000..da978e6 Binary files /dev/null and b/src/assets/BatFly.png differ diff --git a/src/assets/char_a/spritesheet.png b/src/assets/char_a/spritesheet.png new file mode 100644 index 0000000..92eb4df Binary files /dev/null and b/src/assets/char_a/spritesheet.png differ diff --git a/src/assets/char_b/spritesheet.png b/src/assets/char_b/spritesheet.png new file mode 100644 index 0000000..9bb8bd8 Binary files /dev/null and b/src/assets/char_b/spritesheet.png differ diff --git a/src/assets/char_c/spritesheet.png b/src/assets/char_c/spritesheet.png new file mode 100644 index 0000000..6958005 Binary files /dev/null and b/src/assets/char_c/spritesheet.png differ diff --git a/src/assets/char_d/spritesheet.png b/src/assets/char_d/spritesheet.png new file mode 100644 index 0000000..b3983c4 Binary files /dev/null and b/src/assets/char_d/spritesheet.png differ diff --git a/src/assets/logo.png b/src/assets/logo.png deleted file mode 100644 index a37a23a..0000000 Binary files a/src/assets/logo.png and /dev/null differ diff --git a/src/assets/map.json b/src/assets/map.json new file mode 100644 index 0000000..e3f94a9 --- /dev/null +++ b/src/assets/map.json @@ -0,0 +1,1047 @@ +{ + "height": 17, + "infinite": false, + "layers": [ + { + "data": "LQAAADUAAAAtAAAALQAAADQAAAA0AAAALQAAAC0AAAA0AAAANAAAADQAAAAtAAAANAAAADUAAAAtAAAANQAAADQAAAA1AAAALQAAADUAAAA0AAAALQAAAC0AAAA1AAAANAAAADUAAAA1AAAANQAAAC0AAAA1AAAANQAAADUAAAA1AAAANQAAADQAAAA0AAAALQAAAC0AAAA0AAAANQAAADUAAAAtAAAANQAAADUAAAA1AAAALQAAADQAAAA0AAAANQAAADUAAAA1AAAANAAAAC0AAAA0AAAANAAAAC0AAAAtAAAANAAAADQAAAA0AAAANAAAADQAAAAtAAAANAAAAC0AAAA0AAAALQAAADQAAAAtAAAALQAAAC0AAAA0AAAANAAAADQAAAA1AAAANAAAAC0AAAA0AAAANAAAADUAAAA1AAAANQAAADQAAAA0AAAANAAAADQAAAA0AAAANQAAADUAAAAtAAAALQAAAC0AAAA1AAAANAAAADUAAAA0AAAALQAAADQAAAA0AAAANQAAADUAAAA1AAAANAAAAC0AAAA0AAAANAAAADQAAAA0AAAANAAAADQAAAA0AAAANQAAAC0AAAA1AAAALQAAADQAAAAtAAAANQAAADUAAAAtAAAALQAAADQAAAA0AAAANQAAADQAAAA0AAAALQAAADQAAAA1AAAANQAAAC0AAAAtAAAANQAAADQAAAA1AAAALQAAADUAAAA0AAAANQAAADQAAAAtAAAANQAAADQAAAA0AAAANAAAAC0AAAA0AAAANQAAAC0AAAA1AAAANAAAAC0AAAAtAAAALQAAAC0AAAA1AAAANAAAAC0AAAA0AAAANQAAAC0AAAA0AAAALQAAADQAAAA1AAAANQAAADQAAAA0AAAALQAAAC0AAAAtAAAANQAAAC0AAAA0AAAALQAAADQAAAA1AAAANAAAADQAAAA0AAAANQAAADUAAAA1AAAANAAAADUAAAA0AAAANQAAADUAAAAtAAAALQAAADUAAAAtAAAANAAAADUAAAA1AAAANAAAADQAAAA1AAAANQAAADUAAAA1AAAANQAAADQAAAA0AAAALQAAADQAAAAtAAAANQAAAC0AAAA1AAAALQAAAC0AAAA0AAAALQAAADQAAAA0AAAALQAAADQAAAA0AAAANQAAADQAAAAtAAAALQAAADQAAAA0AAAANAAAAC0AAAA1AAAANQAAAC0AAAAtAAAANQAAAC0AAAA1AAAALQAAADQAAAA0AAAALQAAADQAAAAtAAAALQAAADQAAAA1AAAANQAAADQAAAA0AAAALQAAADUAAAA0AAAANAAAADQAAAA1AAAALQAAAC0AAAA0AAAALQAAADUAAAA1AAAANAAAADQAAAA0AAAANAAAAC0AAAA0AAAANQAAAC0AAAA1AAAANQAAAC0AAAA1AAAANAAAAC0AAAA1AAAALQAAAC0AAAA1AAAANAAAADQAAAA0AAAANQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAA1AAAALQAAADUAAAA0AAAALQAAADUAAAAtAAAANAAAAC0AAAAtAAAANQAAAC0AAAA0AAAANAAAADQAAAA1AAAANQAAAC0AAAA1AAAANQAAAC0AAAA1AAAANAAAADUAAAA1AAAANQAAADQAAAAtAAAANQAAADUAAAA1AAAANAAAADQAAAA1AAAANAAAAC0AAAAtAAAANAAAAC0AAAAtAAAALQAAADQAAAAtAAAANAAAADQAAAA0AAAALQAAAC0AAAA0AAAANQAAADUAAAA0AAAANAAAADUAAAAtAAAALQAAADUAAAA0AAAANQAAADUAAAA0AAAANAAAAC0AAAA0AAAANAAAADQAAAAtAAAANQAAAC0AAAAtAAAANAAAADUAAAA0AAAANQAAAC0AAAA1AAAANAAAADUAAAA1AAAALQAAADQAAAA0AAAANQAAADQAAAA0AAAANAAAAC0AAAAtAAAANQAAADUAAAA1AAAALQAAADUAAAA0AAAANAAAADUAAAAtAAAALQAAAC0AAAA0AAAANAAAADQAAAAtAAAANAAAADUAAAAtAAAANQAAADUAAAA0AAAALQAAAC0AAAA0AAAALQAAADUAAAA0AAAANQAAADUAAAA0AAAANAAAADQAAAA1AAAANQAAAC0AAAA0AAAANAAAADQAAAA1AAAALQAAADQAAAA1AAAANAAAADQAAAA0AAAANQAAADQAAAA1AAAANQAAADQAAAAtAAAALQAAADUAAAAtAAAANQAAADQAAAA1AAAANQAAAC0AAAA0AAAANAAAADUAAAA0AAAALQAAAC0AAAA0AAAANQAAAC0AAAA1AAAALQAAAC0AAAAtAAAANQAAAC0AAAA1AAAANQAAADQAAAAtAAAANAAAADUAAAA1AAAALQAAADUAAAAtAAAANQAAADQAAAA1AAAANAAAAC0AAAAtAAAANQAAADUAAAAtAAAALQAAADQAAAA1AAAALQAAAC0AAAA1AAAANAAAADQAAAA0AAAANQAAAC0AAAAtAAAANQAAADUAAAA0AAAANQAAADUAAAA1AAAALQAAAC0AAAA0AAAANQAAADUAAAAtAAAANQAAADUAAAA0AAAALQAAADUAAAA0AAAANQAAADUAAAA0AAAANQAAADQAAAAtAAAANAAAAC0AAAA1AAAALQAAADUAAAAtAAAANQAAAC0AAAA1AAAALQAAADUAAAA1AAAANQAAADUAAAA0AAAALQAAADUAAAA1AAAANQAAADQAAAA1AAAALQAAADUAAAA0AAAANQAAADUAAAA0AAAANAAAADUAAAA0AAAANQAAADUAAAA1AAAANAAAADUAAAAtAAAANAAAAC0AAAA1AAAANAAAADQAAAAtAAAALQAAAC0AAAA1AAAALQAAAC0AAAAtAAAANQAAADUAAAA0AAAANAAAADQAAAA1AAAANAAAADUAAAA1AAAANQAAADQAAAA1AAAALQAAADUAAAA1AAAANQAAADQAAAAtAAAANAAAAC0AAAA0AAAALQAAADQAAAAtAAAALQAAADUAAAA0AAAANAAAAC0AAAA0AAAALQAAADUAAAA0AAAALQAAAC0AAAA0AAAANAAAAC0AAAA0AAAALQAAADQAAAA0AAAANAAAAC0AAAA0AAAALQAAADUAAAA0AAAALQAAAC0AAAA1AAAANQAAAC0AAAAtAAAANAAAAC0AAAAtAAAALQAAADQAAAA1AAAALQAAADUAAAA1AAAALQAAADUAAAAtAAAALQAAADQAAAAtAAAALQAAADQAAAA0AAAANAAAADQAAAAtAAAANQAAADUAAAA1AAAALQAAAC0AAAAtAAAALQAAADQAAAA0AAAANAAAADUAAAAtAAAALQAAADQAAAAtAAAALQAAAC0AAAA1AAAANAAAADQAAAAtAAAANQAAADQAAAA1AAAANQAAADUAAAAtAAAALQAAAC0AAAAtAAAANQAAADQAAAAtAAAANAAAADUAAAA1AAAANQAAADQAAAAtAAAANAAAADUAAAAtAAAANQAAADQAAAAtAAAALQAAAC0AAAAtAAAANAAAADUAAAA1AAAALQAAAC0AAAA1AAAANQAAADQAAAA1AAAANQAAADQAAAA0AAAANAAAADQAAAA0AAAANAAAADQAAAAtAAAALQAAADUAAAA1AAAANQAAAC0AAAA1AAAANQAAADQAAAA1AAAALQAAADQAAAA1AAAANAAAADQAAAAtAAAANAAAAC0AAAA0AAAALQAAAC0AAAA1AAAANAAAADUAAAAtAAAANQAAADUAAAA1AAAANQAAADUAAAA0AAAANQAAADUAAAA1AAAANAAAADQAAAA1AAAALQAAAC0AAAA0AAAALQAAADUAAAA0AAAANQAAAC0AAAA0AAAALQAAAC0AAAA0AAAANQAAADQAAAA1AAAALQAAAC0AAAAtAAAALQAAADQAAAAtAAAANAAAAC0AAAAtAAAANAAAADQAAAA1AAAALQAAADQAAAAtAAAANAAAADQAAAA0AAAANAAAADQAAAA1AAAALQAAADUAAAAtAAAANAAAADQAAAAtAAAANQAAAC0AAAA0AAAANAAAADUAAAA0AAAANQAAAC0AAAAtAAAANAAAADQAAAAtAAAANQAAADUAAAA1AAAALQAAADQAAAAtAAAANQAAADUAAAA1AAAANAAAADQAAAA0AAAALQAAAC0AAAA1AAAANAAAADUAAAA1AAAANQAAADQAAAAtAAAANAAAADQAAAAtAAAALQAAADQAAAAtAAAANQAAADQAAAAtAAAALQAAAC0AAAAtAAAA", + "encoding": "base64", + "height": 17, + "id": 16, + "name": "Back", + "opacity": 1, + "type": "tilelayer", + "visible": true, + "width": 48, + "x": 0, + "y": 0 + }, + { + "data": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkAAAAaAAAAGgAAABsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAiAAAAIgAAAB0AAAAbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAiAAAAIgAAACIAAAAdAAAAGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAiAAAAIgAAACIAAAAiAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkAAAAkAAAAIgAAACIAAAAiAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApAAAAJAAAACIAAAAiAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAACIAAAAiAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAACIAAAAiAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAACIAAAAiAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAACIAAAAiAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKQAAACoAAAAqAAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "encoding": "base64", + "height": 17, + "id": 17, + "name": "Back2", + "opacity": 1, + "type": "tilelayer", + "visible": true, + "width": 48, + "x": 0, + "y": 0 + }, + { + "data": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAACAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAA0AAAAOAAAACwAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAABIAAAASAAAAEwAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHwAAAB8AAAAfAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAQAAAAMAAAAAwAAAAAAAAAAAAAAAQAAAAwAAAAEAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAOAAAABgAAAAYAAAANAAAACwAAAAAAAAAAAAAAEQAAABIAAAASAAAAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "encoding": "base64", + "height": 17, + "id": 18, + "name": "Main", + "opacity": 1, + "type": "tilelayer", + "visible": true, + "width": 48, + "x": 0, + "y": 0 + }, + { + "draworder": "topdown", + "id": 5, + "name": "Objects", + "objects": [ + { + "height": 0, + "id": 1, + "name": "player", + "point": true, + "rotation": 0, + "type": "", + "visible": true, + "width": 0, + "x": 83.25, + "y": 228.5 + }, + { + "height": 0, + "id": 3, + "name": "bat", + "point": true, + "properties": [ + { + "name": "vel", + "type": "int", + "value": -90 + } + ], + "rotation": 0, + "type": "90", + "visible": true, + "width": 0, + "x": 160.666666666667, + "y": 69.3333333333333 + }, + { + "height": 0, + "id": 5, + "name": "bat", + "point": true, + "properties": [ + { + "name": "vel", + "type": "int", + "value": 50 + } + ], + "rotation": 0, + "type": "-80", + "visible": true, + "width": 0, + "x": 396, + "y": 91.3333333333333 + }, + { + "height": 0, + "id": 6, + "name": "bat", + "point": true, + "properties": [ + { + "name": "vel", + "type": "int", + "value": 90 + } + ], + "rotation": 0, + "type": "-50", + "visible": true, + "width": 0, + "x": 587.333333333333, + "y": 46.6666666666667 + } + ], + "opacity": 1, + "type": "objectgroup", + "visible": true, + "x": 0, + "y": 0 + }, + { + "data": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "encoding": "base64", + "height": 17, + "id": 19, + "name": "Front", + "opacity": 1, + "type": "tilelayer", + "visible": true, + "width": 48, + "x": 0, + "y": 0 + } + ], + "nextlayerid": 20, + "nextobjectid": 7, + "orientation": "orthogonal", + "renderorder": "right-down", + "tiledversion": "1.2.5", + "tileheight": 16, + "tilesets": [ + { + "columns": 8, + "firstgid": 1, + "image": "tileset.png", + "imageheight": 198, + "imagewidth": 144, + "margin": 1, + "name": "tileset", + "spacing": 2, + "tilecount": 88, + "tileheight": 16, + "tiles": [ + { + "id": 0, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": true + } + ] + }, + { + "id": 1, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": true + } + ] + }, + { + "id": 2, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": true + } + ] + }, + { + "id": 3, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": true + } + ] + }, + { + "id": 4, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 5, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 6, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 7, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 8, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": true + } + ] + }, + { + "id": 9, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": true + } + ] + }, + { + "id": 10, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": true + } + ] + }, + { + "id": 11, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": true + } + ] + }, + { + "id": 12, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 13, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 14, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 15, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 16, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": true + } + ] + }, + { + "id": 17, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": true + } + ] + }, + { + "id": 18, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": true + } + ] + }, + { + "id": 19, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 20, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 21, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 22, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 23, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 24, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 25, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 26, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 27, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 28, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 29, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": true + } + ] + }, + { + "id": 30, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": true + } + ] + }, + { + "id": 31, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": true + } + ] + }, + { + "id": 32, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 33, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 34, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 35, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 36, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 37, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 38, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 39, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": true + } + ] + }, + { + "id": 40, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 41, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 42, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 43, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 44, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 45, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 46, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 47, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 48, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": true + } + ] + }, + { + "id": 49, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": true + } + ] + }, + { + "id": 50, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 51, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 52, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 53, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 54, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 55, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 56, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": true + } + ] + }, + { + "id": 57, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": true + } + ] + }, + { + "id": 58, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 59, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": true + } + ] + }, + { + "id": 60, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 61, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 62, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 63, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 64, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": true + } + ] + }, + { + "id": 65, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": true + } + ] + }, + { + "id": 66, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": true + } + ] + }, + { + "id": 67, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 68, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 69, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 70, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 71, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 72, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 73, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 74, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": true + } + ] + }, + { + "id": 75, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": true + } + ] + }, + { + "id": 76, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 77, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 78, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 79, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 80, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 81, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 82, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 83, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 84, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 85, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 86, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + }, + { + "id": 87, + "properties": [ + { + "name": "collides", + "type": "bool", + "value": false + } + ] + } + ], + "tilewidth": 16, + "transparentcolor": "#ff00ff" + } + ], + "tilewidth": 16, + "type": "map", + "version": 1.2, + "width": 48 +} \ No newline at end of file diff --git a/src/assets/map.tmx b/src/assets/map.tmx new file mode 100644 index 0000000..de7005f --- /dev/null +++ b/src/assets/map.tmx @@ -0,0 +1,489 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LQAAADUAAAAtAAAALQAAADQAAAA0AAAALQAAAC0AAAA0AAAANAAAADQAAAAtAAAANAAAADUAAAAtAAAANQAAADQAAAA1AAAALQAAADUAAAA0AAAALQAAAC0AAAA1AAAANAAAADUAAAA1AAAANQAAAC0AAAA1AAAANQAAADUAAAA1AAAANQAAADQAAAA0AAAALQAAAC0AAAA0AAAANQAAADUAAAAtAAAANQAAADUAAAA1AAAALQAAADQAAAA0AAAANQAAADUAAAA1AAAANAAAAC0AAAA0AAAANAAAAC0AAAAtAAAANAAAADQAAAA0AAAANAAAADQAAAAtAAAANAAAAC0AAAA0AAAALQAAADQAAAAtAAAALQAAAC0AAAA0AAAANAAAADQAAAA1AAAANAAAAC0AAAA0AAAANAAAADUAAAA1AAAANQAAADQAAAA0AAAANAAAADQAAAA0AAAANQAAADUAAAAtAAAALQAAAC0AAAA1AAAANAAAADUAAAA0AAAALQAAADQAAAA0AAAANQAAADUAAAA1AAAANAAAAC0AAAA0AAAANAAAADQAAAA0AAAANAAAADQAAAA0AAAANQAAAC0AAAA1AAAALQAAADQAAAAtAAAANQAAADUAAAAtAAAALQAAADQAAAA0AAAANQAAADQAAAA0AAAALQAAADQAAAA1AAAANQAAAC0AAAAtAAAANQAAADQAAAA1AAAALQAAADUAAAA0AAAANQAAADQAAAAtAAAANQAAADQAAAA0AAAANAAAAC0AAAA0AAAANQAAAC0AAAA1AAAANAAAAC0AAAAtAAAALQAAAC0AAAA1AAAANAAAAC0AAAA0AAAANQAAAC0AAAA0AAAALQAAADQAAAA1AAAANQAAADQAAAA0AAAALQAAAC0AAAAtAAAANQAAAC0AAAA0AAAALQAAADQAAAA1AAAANAAAADQAAAA0AAAANQAAADUAAAA1AAAANAAAADUAAAA0AAAANQAAADUAAAAtAAAALQAAADUAAAAtAAAANAAAADUAAAA1AAAANAAAADQAAAA1AAAANQAAADUAAAA1AAAANQAAADQAAAA0AAAALQAAADQAAAAtAAAANQAAAC0AAAA1AAAALQAAAC0AAAA0AAAALQAAADQAAAA0AAAALQAAADQAAAA0AAAANQAAADQAAAAtAAAALQAAADQAAAA0AAAANAAAAC0AAAA1AAAANQAAAC0AAAAtAAAANQAAAC0AAAA1AAAALQAAADQAAAA0AAAALQAAADQAAAAtAAAALQAAADQAAAA1AAAANQAAADQAAAA0AAAALQAAADUAAAA0AAAANAAAADQAAAA1AAAALQAAAC0AAAA0AAAALQAAADUAAAA1AAAANAAAADQAAAA0AAAANAAAAC0AAAA0AAAANQAAAC0AAAA1AAAANQAAAC0AAAA1AAAANAAAAC0AAAA1AAAALQAAAC0AAAA1AAAANAAAADQAAAA0AAAANQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAA1AAAALQAAADUAAAA0AAAALQAAADUAAAAtAAAANAAAAC0AAAAtAAAANQAAAC0AAAA0AAAANAAAADQAAAA1AAAANQAAAC0AAAA1AAAANQAAAC0AAAA1AAAANAAAADUAAAA1AAAANQAAADQAAAAtAAAANQAAADUAAAA1AAAANAAAADQAAAA1AAAANAAAAC0AAAAtAAAANAAAAC0AAAAtAAAALQAAADQAAAAtAAAANAAAADQAAAA0AAAALQAAAC0AAAA0AAAANQAAADUAAAA0AAAANAAAADUAAAAtAAAALQAAADUAAAA0AAAANQAAADUAAAA0AAAANAAAAC0AAAA0AAAANAAAADQAAAAtAAAANQAAAC0AAAAtAAAANAAAADUAAAA0AAAANQAAAC0AAAA1AAAANAAAADUAAAA1AAAALQAAADQAAAA0AAAANQAAADQAAAA0AAAANAAAAC0AAAAtAAAANQAAADUAAAA1AAAALQAAADUAAAA0AAAANAAAADUAAAAtAAAALQAAAC0AAAA0AAAANAAAADQAAAAtAAAANAAAADUAAAAtAAAANQAAADUAAAA0AAAALQAAAC0AAAA0AAAALQAAADUAAAA0AAAANQAAADUAAAA0AAAANAAAADQAAAA1AAAANQAAAC0AAAA0AAAANAAAADQAAAA1AAAALQAAADQAAAA1AAAANAAAADQAAAA0AAAANQAAADQAAAA1AAAANQAAADQAAAAtAAAALQAAADUAAAAtAAAANQAAADQAAAA1AAAANQAAAC0AAAA0AAAANAAAADUAAAA0AAAALQAAAC0AAAA0AAAANQAAAC0AAAA1AAAALQAAAC0AAAAtAAAANQAAAC0AAAA1AAAANQAAADQAAAAtAAAANAAAADUAAAA1AAAALQAAADUAAAAtAAAANQAAADQAAAA1AAAANAAAAC0AAAAtAAAANQAAADUAAAAtAAAALQAAADQAAAA1AAAALQAAAC0AAAA1AAAANAAAADQAAAA0AAAANQAAAC0AAAAtAAAANQAAADUAAAA0AAAANQAAADUAAAA1AAAALQAAAC0AAAA0AAAANQAAADUAAAAtAAAANQAAADUAAAA0AAAALQAAADUAAAA0AAAANQAAADUAAAA0AAAANQAAADQAAAAtAAAANAAAAC0AAAA1AAAALQAAADUAAAAtAAAANQAAAC0AAAA1AAAALQAAADUAAAA1AAAANQAAADUAAAA0AAAALQAAADUAAAA1AAAANQAAADQAAAA1AAAALQAAADUAAAA0AAAANQAAADUAAAA0AAAANAAAADUAAAA0AAAANQAAADUAAAA1AAAANAAAADUAAAAtAAAANAAAAC0AAAA1AAAANAAAADQAAAAtAAAALQAAAC0AAAA1AAAALQAAAC0AAAAtAAAANQAAADUAAAA0AAAANAAAADQAAAA1AAAANAAAADUAAAA1AAAANQAAADQAAAA1AAAALQAAADUAAAA1AAAANQAAADQAAAAtAAAANAAAAC0AAAA0AAAALQAAADQAAAAtAAAALQAAADUAAAA0AAAANAAAAC0AAAA0AAAALQAAADUAAAA0AAAALQAAAC0AAAA0AAAANAAAAC0AAAA0AAAALQAAADQAAAA0AAAANAAAAC0AAAA0AAAALQAAADUAAAA0AAAALQAAAC0AAAA1AAAANQAAAC0AAAAtAAAANAAAAC0AAAAtAAAALQAAADQAAAA1AAAALQAAADUAAAA1AAAALQAAADUAAAAtAAAALQAAADQAAAAtAAAALQAAADQAAAA0AAAANAAAADQAAAAtAAAANQAAADUAAAA1AAAALQAAAC0AAAAtAAAALQAAADQAAAA0AAAANAAAADUAAAAtAAAALQAAADQAAAAtAAAALQAAAC0AAAA1AAAANAAAADQAAAAtAAAANQAAADQAAAA1AAAANQAAADUAAAAtAAAALQAAAC0AAAAtAAAANQAAADQAAAAtAAAANAAAADUAAAA1AAAANQAAADQAAAAtAAAANAAAADUAAAAtAAAANQAAADQAAAAtAAAALQAAAC0AAAAtAAAANAAAADUAAAA1AAAALQAAAC0AAAA1AAAANQAAADQAAAA1AAAANQAAADQAAAA0AAAANAAAADQAAAA0AAAANAAAADQAAAAtAAAALQAAADUAAAA1AAAANQAAAC0AAAA1AAAANQAAADQAAAA1AAAALQAAADQAAAA1AAAANAAAADQAAAAtAAAANAAAAC0AAAA0AAAALQAAAC0AAAA1AAAANAAAADUAAAAtAAAANQAAADUAAAA1AAAANQAAADUAAAA0AAAANQAAADUAAAA1AAAANAAAADQAAAA1AAAALQAAAC0AAAA0AAAALQAAADUAAAA0AAAANQAAAC0AAAA0AAAALQAAAC0AAAA0AAAANQAAADQAAAA1AAAALQAAAC0AAAAtAAAALQAAADQAAAAtAAAANAAAAC0AAAAtAAAANAAAADQAAAA1AAAALQAAADQAAAAtAAAANAAAADQAAAA0AAAANAAAADQAAAA1AAAALQAAADUAAAAtAAAANAAAADQAAAAtAAAANQAAAC0AAAA0AAAANAAAADUAAAA0AAAANQAAAC0AAAAtAAAANAAAADQAAAAtAAAANQAAADUAAAA1AAAALQAAADQAAAAtAAAANQAAADUAAAA1AAAANAAAADQAAAA0AAAALQAAAC0AAAA1AAAANAAAADUAAAA1AAAANQAAADQAAAAtAAAANAAAADQAAAAtAAAALQAAADQAAAAtAAAANQAAADQAAAAtAAAALQAAAC0AAAAtAAAA + + + + + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkAAAAaAAAAGgAAABsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAiAAAAIgAAAB0AAAAbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAiAAAAIgAAACIAAAAdAAAAGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAiAAAAIgAAACIAAAAiAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkAAAAkAAAAIgAAACIAAAAiAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApAAAAJAAAACIAAAAiAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAACIAAAAiAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAACIAAAAiAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAACIAAAAiAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAACIAAAAiAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKQAAACoAAAAqAAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAACAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAA0AAAAOAAAACwAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAABIAAAASAAAAEwAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHwAAAB8AAAAfAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAQAAAAMAAAAAwAAAAAAAAAAAAAAAQAAAAwAAAAEAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAOAAAABgAAAAYAAAANAAAACwAAAAAAAAAAAAAAEQAAABIAAAASAAAAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + + + + + + + + + + + + + + + + + + + + + + + + + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + diff --git a/src/assets/tileset.png b/src/assets/tileset.png new file mode 100644 index 0000000..e7c476c Binary files /dev/null and b/src/assets/tileset.png differ diff --git a/src/entities/Attacks/AttackA.js b/src/entities/Attacks/AttackA.js new file mode 100644 index 0000000..acd591b --- /dev/null +++ b/src/entities/Attacks/AttackA.js @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2020. Pascal Syma + * All rights reserved. + */ + +import Hitbox from "./Hitbox"; + +export default class AttackA extends Hitbox { + + constructor(player) { + super(player, 5); + + this.body.setSize(42, 32, true); + this.body.setOffset(1, -10); + } + + start() { + this.setData('active', true); + this.player.play('attack_a', true) + .once('animationcomplete', () => { + this.setData('active', false) + }); + } +} \ No newline at end of file diff --git a/src/entities/Attacks/Hitbox.js b/src/entities/Attacks/Hitbox.js new file mode 100644 index 0000000..f013045 --- /dev/null +++ b/src/entities/Attacks/Hitbox.js @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2020. Pascal Syma + * All rights reserved. + */ + +import Entity from "../Entity"; + +export default class Hitbox extends Entity { + constructor(player, dmg) { + super(player.scene, player.body.x, player.body.y, null); + this.setData('dmg', dmg); + this.player = player; + this.setSize(0, 0); + this.setOrigin(0, 0); + this.alpha = 0; + this.body.setAllowGravity(false); + + this.setData('active', false); + this.body.setSize(0, 0); + } + + update(...args) { + this.setPosition(this.player.body.x, this.player.body.y); + } + + start() { + + } + + overlap(obj) { + this.setData('active', false); + obj.setData('hp', obj.getData('hp') - this.getData('dmg')); + obj.hit(); + } +} \ No newline at end of file diff --git a/src/entities/Enemys/Bat.js b/src/entities/Enemys/Bat.js new file mode 100644 index 0000000..eb2dae9 --- /dev/null +++ b/src/entities/Enemys/Bat.js @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2020. Pascal Syma + * All rights reserved. + */ + +import FlyingEnemy from "./FlyingEnemy"; + +export default class Bat extends FlyingEnemy { + + constructor(scene, spawnPoint) { + super(scene, spawnPoint, 'batFly'); + this.setData('hp', 5); + + this.dieAnimation = 'batDie'; + + this.body.setCollideWorldBounds(true); + this.body.setBounceX(1); + this.play('batIdle'); + } + + fly(velocity) { + this.body.velocity.x = velocity; + } + + update(...args) { + this.setFlipX(this.body.velocity.x > 0); + } + + die() { + this.body.velocity.x = 0; + super.die(); + } +} \ No newline at end of file diff --git a/src/entities/Enemys/Enemy.js b/src/entities/Enemys/Enemy.js new file mode 100644 index 0000000..3230b5c --- /dev/null +++ b/src/entities/Enemys/Enemy.js @@ -0,0 +1,13 @@ +/* + * Copyright (c) 2020. Pascal Syma + * All rights reserved. + */ + +import Entity from "../Entity"; + +export default class Enemy extends Entity { + + constructor(scene, spawnPoint, texture) { + super(scene, spawnPoint.x, spawnPoint.y, texture); + } +} \ No newline at end of file diff --git a/src/entities/Enemys/FlyingEnemy.js b/src/entities/Enemys/FlyingEnemy.js new file mode 100644 index 0000000..34fdddb --- /dev/null +++ b/src/entities/Enemys/FlyingEnemy.js @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2020. Pascal Syma + * All rights reserved. + */ + +import Enemy from "./Enemy"; + +export default class FlyingEnemy extends Enemy { + + constructor(scene, spawnPoint, texture) { + super(scene, spawnPoint, texture); + this.body.setAllowGravity(false); + } + +} \ No newline at end of file diff --git a/src/entities/Entity.js b/src/entities/Entity.js new file mode 100644 index 0000000..2830e34 --- /dev/null +++ b/src/entities/Entity.js @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2020. Pascal Syma + * All rights reserved. + */ + +export default class Entity extends Phaser.GameObjects.Sprite { + + constructor(scene, x, y, key) { + super(scene, x, y, key); + this.setData('hp', 1); + this.setData('dmg', 0); + this.scene = scene; + this.scene.add.existing(this); + this.scene.physics.world.enableBody(this, 0); + this.hitAnimation = null; + this.dieAnimation = null; + } + + hit() { + // play hit animation + const shouldDie = this.getData('hp') <= 0; + if (this.hitAnimation !== null) { + this.play(this.hitAnimation) + .once('animationcomplete', () => { + if (shouldDie) this.die() + }); + } else { + if (shouldDie) + this.die(); + } + } + + die() { + if (this.dieAnimation !== null) { + this.play(this.dieAnimation) + .once('animationcomplete', () => this.destroy()); + } else + this.destroy(); + } + + update(...args) { + super.update(...args); + } +} \ No newline at end of file diff --git a/src/entities/Player.js b/src/entities/Player.js new file mode 100644 index 0000000..2e5d952 --- /dev/null +++ b/src/entities/Player.js @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2020. Pascal Syma + * All rights reserved. + */ + +import Entity from "./Entity"; +import AttackA from "./Attacks/AttackA"; + +export default class Player extends Entity { + + constructor(scene, spawnPoint, texture) { + super(scene, spawnPoint.x, spawnPoint.y, texture); + this.setData("speed", 100); + this.setData('hp', 20); + this.setOrigin(0.5, 1).setScale(32 / 48); + + this.body.setSize(48, 48, false); + this.body.setOffset(4, 16); + + this.body.setCollideWorldBounds(true); + this.play('idle'); + + this.attackA = new AttackA(this); + this.attackHitbox = this.scene.add.group([ + this.attackA + ]); + } + + update(...args) { + if (this.scene.dieActive()) { + this.pause = true; + this.play('die', true) + .on('animationcomplete', () => { + this.setFrame(51); + this.scene.scene.pause(); + }) + } + + if (this.pause) + return; + + this.body.velocity.x = 0; + + // Jumping, Dashing + if (this.scene.upActive() && this.body.blocked.down) { + this.body.velocity.y = -this.getData('speed') * 1.5; + } else if (this.scene.downActive() && !this.body.blocked.down) { + this.body.velocity.y = this.getData('speed'); + } + + // Walking L R + if (this.scene.leftActive()) { + this.body.velocity.x = -this.getData('speed'); + if (!this.flipX) + this.x -= 16; + this.setFlipX(true); + this.body.setOffset(32 - 4, 16); + } else if (this.scene.rightActive()) { + this.body.velocity.x = this.getData('speed'); + if (this.flipX) + this.x += 16; + this.setFlipX(false); + this.body.setOffset(4, 16); + } + + this.setData('speed', 100); + + // animation + if (this.anims.getCurrentKey().startsWith('attack_')) { + this.setData('speed', 50); + } else if (this.scene.keySpace.isDown) { + // const nextAttack = [this.attackA].sort(() => 0.5 - Math.random())[0]; + // nextAttack.start(); + this.attackA.start(); + } else if (this.body.blocked.down) { + if (this.body.velocity.x !== 0) { + this.play('run', true); + } else { + this.play('idle', true); + } + } else if (this.anims.getCurrentKey() !== 'jump_start' && this.anims.getCurrentKey() !== 'jump') { + // this.play('jump', true) + this.play('jump_start', true).on('animationcomplete', () => this.play('jump', true)); + } + + this.attackHitbox.getChildren().forEach(c => { + c.update() + }); + } +} \ No newline at end of file diff --git a/src/index.js b/src/index.js index f0b5de3..d9fa02d 100644 --- a/src/index.js +++ b/src/index.js @@ -5,23 +5,27 @@ import Phaser from "phaser"; import Menu from "./scenes/Menu"; +import Preload from "./scenes/Preload"; +import Game from "./scenes/Game"; const ratio = 16 / 9; // any ratio you want, 16/9 landscape or 9/16 portrait -const DEFAULT_HEIGHT = 1080; // any height you want +const DEFAULT_HEIGHT = 1080 / 4; // any height you want const DEFAULT_WIDTH = ratio * DEFAULT_HEIGHT; const config = { - type: Phaser.AUTO, - scale: { - mode: Phaser.Scale.FIT, - autoCenter: Phaser.Scale.CENTER_BOTH, - width: DEFAULT_WIDTH, - height: DEFAULT_HEIGHT - }, - parent: "phaser-example", - scene: [Menu], - // pixelArt: true, - // roundPixels: true + type: Phaser.AUTO, + scale: { + mode: Phaser.Scale.FIT, + autoCenter: Phaser.Scale.CENTER_BOTH, + width: DEFAULT_WIDTH, + height: DEFAULT_HEIGHT + }, + parent: "phaser-example", + scene: [Preload, Menu, Game], + pixelArt: true, + antialias: false, + // pixelArt: true, + // roundPixels: true }; const game = new Phaser.Game(config); diff --git a/src/scenes/Game.js b/src/scenes/Game.js new file mode 100644 index 0000000..1e7384b --- /dev/null +++ b/src/scenes/Game.js @@ -0,0 +1,229 @@ +/* + * Copyright (c) 2020. Pascal Syma + * All rights reserved. + */ + +import Player from "../entities/Player"; +import Bat from "../entities/Enemys/Bat"; + +export default class Game extends Phaser.Scene { + + constructor() { + super({ + key: "Game", + pixelArt: true, + physics: { + default: 'arcade', + arcade: { + gravity: {y: 300}, + // debug: true + } + } + }); + } + + static setTileCollision(mapLayer, idxOrArray, dirs) { + + let mFunc; // tile index matching function + if (idxOrArray.length) { + // if idxOrArray is an array, use a function with a loop + mFunc = function (inp) { + for (let i = 0; i < idxOrArray.length; i++) { + if (idxOrArray[i] === inp - 1) { + return true; + } + } + return false; + }; + } else { + // if idxOrArray is a single number, use a simple function + mFunc = function (inp) { + return inp - 1 === idxOrArray; + }; + } + + // get the 2-dimensional tiles array for this layer + // const d = mapLayer.map.layers[mapLayer.index].data; + const d = mapLayer.layer.data; + + for (let i = 0; i < d.length; i++) { + for (let j = 0; j < d[i].length; j++) { + const t = d[i][j]; + if (mFunc(t.index)) { + + t.collideUp = dirs.top; + t.collideDown = dirs.bottom; + t.collideLeft = dirs.left; + t.collideRight = dirs.right; + + t.faceTop = dirs.top; + t.faceBottom = dirs.bottom; + t.faceLeft = dirs.left; + t.faceRight = dirs.right; + + } + } + } + } + + create() { + + this.anims.create({ + key: 'idle', + frames: this.anims.generateFrameNumbers('char', {start: 126, end: 131}), + frameRate: 10, + repeat: -1 + }); + + this.anims.create({ + key: 'run', + frames: this.anims.generateFrameNumbers('char', {start: 154, end: 161}), + frameRate: 10, + repeat: -1 + }); + + this.anims.create({ + key: 'jump_start', + frames: this.anims.generateFrameNumbers('char', {start: 140, end: 143}), + frameRate: 10 + }); + + this.anims.create({ + key: 'jump', + frames: this.anims.generateFrameNumbers('char', {start: 144, end: 145}), + frameRate: 10, + repeat: -1 + }); + + this.anims.create({ + key: 'attack_a', + frames: this.anims.generateFrameNumbers('char', {start: 0, end: 13}), + frameRate: 15 + }); + + this.anims.create({ + key: 'attack_b', + frames: this.anims.generateFrameNumbers('char', {start: 14, end: 26}), + frameRate: 15 + }); + + this.anims.create({ + key: 'attack_c', + frames: this.anims.generateFrameNumbers('char', {start: 28, end: 41}), + frameRate: 15 + }); + + this.anims.create({ + key: 'die', + frames: this.anims.generateFrameNumbers('char', {start: 42, end: 51}), + frameRate: 10 + }); + + this.anims.create({ + key: 'batIdle', + frames: this.anims.generateFrameNumbers('batFly', {start: 0, end: 5}), + frameRate: 10, + repeat: -1 + }); + + this.anims.create({ + key: 'batDie', + frames: this.anims.generateFrameNumbers('batDie', {start: 0, end: 4}), + frameRate: 15 + }); + + + const map = this.make.tilemap({key: "map"}); + const tileset = map.addTilesetImage("tileset", "tiles", 16, 16, 1, 2); + + this.backLayer = map.createStaticLayer("Back", tileset, 0, 0); + this.backLayer2 = map.createStaticLayer("Back2", tileset, 0, 0); + + this.worldLayer = map.createDynamicLayer("Main", tileset, 0, 0); + + + const spawnPoint = map.findObject("Objects", obj => obj.name === "player"); + + this.enemys = this.add.group(); + this.player = new Player(this, spawnPoint, 'char'); + + const batSpawns = map.objects[0].objects.filter(obj => obj.name === "bat"); + + + batSpawns.forEach(s => { + let bat = new Bat(this, s); + bat.fly(s.type === "" ? 90 : parseInt(s.type)); + this.enemys.add(bat) + }); + + + this.worldLayer.setCollisionByProperty({collides: true}); + Game.setTileCollision(this.worldLayer, [29, 30, 31, 39], { + top: true, + bottom: false, + right: false, + left: false + }) + + this.physics.world.bounds.width = this.backLayer.width; + this.physics.world.bounds.height = this.backLayer.height; + + this.cameras.main.setBounds(0, 0, map.widthInPixels, map.heightInPixels); + + + this.cameras.main.setBackgroundColor('#ccccff'); + + + this.cameras.main.startFollow(this.player); + + this.physics.add.collider(this.player, this.worldLayer); + this.physics.add.overlap(this.player.attackHitbox, this.enemys, (h, b) => { + if (h.getData('active') && h.overlap !== undefined) { + h.overlap(b); + } + }) + + this.keyW = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.W); + this.keyS = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.S); + this.keyA = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.A); + this.keyD = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.D); + this.keySpace = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.SPACE); + this.keyUp = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.UP); + this.keyLeft = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.LEFT); + this.keyRight = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.RIGHT); + this.keyDown = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.DOWN); + this.keyDie = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.C); + } + + update(time, delta) { + this.enemys.getChildren().forEach(c => { + c.update() + }); + this.player.update(time, delta); + + } + + dieActive() { + return this.keyDie.isDown; + } + + rightActive() { + return this.keyRight.isDown || this.keyD.isDown/* || (this.game.input.activePointer.isDown && + this.game.input.activePointer.x > 2*this.game.config.width/3)*/; + } + + leftActive() { + return this.keyLeft.isDown || this.keyA.isDown/* || (this.game.input.activePointer.isDown && + this.game.input.activePointer.x < this.game.config.width/3)*/; + } + + downActive() { + return this.keyDown.isDown || this.keyS.isDown/* || (this.game.input.activePointer.isDown && + this.game.input.activePointer.y > 2*this.game.config.height/3)*/; + } + + upActive() { + return this.keyUp.isDown || this.keyW.isDown/* || (this.game.input.activePointer.isDown && + this.game.input.activePointer.y < this.game.config.height/3)*/; + } +} \ No newline at end of file diff --git a/src/scenes/Menu.js b/src/scenes/Menu.js index 6bf623e..9316e5b 100644 --- a/src/scenes/Menu.js +++ b/src/scenes/Menu.js @@ -3,29 +3,53 @@ * All rights reserved. */ -import logoImg from "../assets/logo.png"; +import Player from "../entities/Player"; export default class Menu extends Phaser.Scene { constructor() { - super("Menu"); - } - - preload() { - this.load.image("logo", logoImg); - } - - create() { - const logo = this.add.image(this.cameras.main.centerX, this.cameras.main.centerY * 1.5, "logo").setOrigin(0.5, 0.5); - - this.tweens.add({ - targets: logo, - y: this.cameras.main.centerY, - duration: 2000, - ease: "Power2", - yoyo: true, - loop: -1 + super({ + key: "Menu", + pixelArt: true, + physics: { + default: 'arcade', + arcade: { + gravity: {y: 0}, + // debug: true + } + } }); } + create() { + const w = this.cameras.main.centerX; + const h = this.cameras.main.centerY; + [{x: w / 2, y: h / 2, key: 'A'}, + {x: w / 2 + w, y: h / 2, key: 'B'}, + {x: w / 2, y: h / 2 + h, key: 'C'}, + {x: w / 2 + w, y: h / 2 + h, key: 'D'}] + .forEach((e) => this.addOption(e)); + + } + + addOption(options) { + this.anims.create({ + key: 'idle' + options.key, + frames: this.anims.generateFrameNumbers('char' + options.key, {start: 126, end: 131}), + frameRate: 10, + repeat: -1 + }); + + new Player(this, options, 'char' + options.key).play('idle' + options.key, true) + .setInteractive() + .on('pointerdown', () => { + + this.textures.addSpriteSheet('char', this.textures.get('char' + options.key).getSourceImage(), { + frameWidth: 79, + frameHeight: 63 + }); + + this.scene.start('Game'); + }) + } } \ No newline at end of file diff --git a/src/scenes/Preload.js b/src/scenes/Preload.js new file mode 100644 index 0000000..1cef85f --- /dev/null +++ b/src/scenes/Preload.js @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2020. Pascal Syma + * All rights reserved. + */ + +import logoImg from "../../public/favicon.png"; +import map from "../assets/map.json"; +import charA from "../assets/char_a/spritesheet.png"; +import charB from "../assets/char_b/spritesheet.png"; +import charC from "../assets/char_c/spritesheet.png"; +import charD from "../assets/char_d/spritesheet.png"; +import tiles from "../assets/tileset.png"; +import batFly from "../assets/BatFly.png"; +import batDie from "../assets/BatDie.png"; + +export default class Preload extends Phaser.Scene { + + constructor() { + super('Loading'); + } + + preload() { + this.loadingScreen(); + this.load.image("logo", logoImg); + this.load.spritesheet('charA', charA, {frameWidth: 79, frameHeight: 63/*, margin: 1, spacing: 2*/}); + this.load.spritesheet('charB', charB, {frameWidth: 79, frameHeight: 63/*, margin: 1, spacing: 2*/}); + this.load.spritesheet('charC', charC, {frameWidth: 79, frameHeight: 63/*, margin: 1, spacing: 2*/}); + this.load.spritesheet('charD', charD, {frameWidth: 79, frameHeight: 63/*, margin: 1, spacing: 2*/}); + this.load.spritesheet('tiles', tiles, {frameWidth: 16, frameHeight: 16, margin: 1, spacing: 2}); + this.load.spritesheet('batFly', batFly, {frameWidth: 48, frameHeight: 32/*, margin: 1, spacing: 2*/}); + this.load.spritesheet('batDie', batDie, {frameWidth: 48, frameHeight: 32/*, margin: 1, spacing: 2*/}); + this.load.tilemapTiledJSON("map", map); + } + + create() { + this.add.image(this.cameras.main.centerX, this.cameras.main.centerY, 'logo').setOrigin(0.5, 0.5).setDisplaySize(this.cameras.main.centerX, this.cameras.main.centerX); + setTimeout(() => { + this.scene.start('Menu'); + }, 2 * 1000) + } + + loadingScreen() { + const progressBar = this.add.graphics(); + const progressBox = this.add.graphics(); + const width = this.cameras.main.width; + const height = this.cameras.main.height; + + progressBox.fillStyle(0x222222, 0.8); + progressBox.fillRect(width / 4, height / 2 - 25, width / 2, 50); + + const loadingText = this.make.text({ + x: width / 2, + y: height / 2 - 25 - 20, + text: 'Loading...', + style: { + font: '20px monospace', + fill: '#ffffff' + } + }); + loadingText.setOrigin(0.5, 1); + + const percentText = this.make.text({ + x: width / 2, + y: height / 2, + text: '0%', + style: { + font: '18px monospace', + fill: '#ffffff' + } + }); + percentText.setOrigin(0.5, 0.5); + + this.load.on('progress', (value) => { + percentText.setText(parseInt(value * 100) + '%'); + progressBar.clear(); + progressBar.fillStyle(0xffffff, 1); + progressBar.fillRect(width / 4 + 10, height / 2 - 25 + 10, (width / 2 - 20) * value, 50 - 20); + }); + + this.load.on('complete', () => { + progressBar.destroy(); + progressBox.destroy(); + loadingText.destroy(); + percentText.destroy(); + + }); + } + +} \ No newline at end of file