diff --git a/assets/map/elements/item/crate/crate.element.yaml b/assets/map/elements/item/crate/crate.element.yaml index ad1891a365..2cd0a22d81 100644 --- a/assets/map/elements/item/crate/crate.element.yaml +++ b/assets/map/elements/item/crate/crate.element.yaml @@ -6,7 +6,7 @@ builtin: !Crate atlas: ./crate.atlas.yaml breaking_atlas: ./crate_breaking.atlas.yaml - breaking_anim_length: 25 + breaking_anim_frames: 25 breaking_anim_fps: 30 # TODO: Better break sound diff --git a/assets/map/elements/item/mine/arm.ogg b/assets/map/elements/item/mine/arm.ogg new file mode 100755 index 0000000000..6e80dfd461 Binary files /dev/null and b/assets/map/elements/item/mine/arm.ogg differ diff --git a/assets/map/elements/item/mine/explosion.atlas.yaml b/assets/map/elements/item/mine/explosion.atlas.yaml new file mode 100644 index 0000000000..87686e3634 --- /dev/null +++ b/assets/map/elements/item/mine/explosion.atlas.yaml @@ -0,0 +1,4 @@ +image: ./explosion.png +tile_size: [144, 112] +rows: 1 +columns: 13 diff --git a/assets/map/elements/item/mine/explosion.ogg b/assets/map/elements/item/mine/explosion.ogg new file mode 100755 index 0000000000..95bc9aeb74 Binary files /dev/null and b/assets/map/elements/item/mine/explosion.ogg differ diff --git a/assets/map/elements/item/mine/explosion.png b/assets/map/elements/item/mine/explosion.png new file mode 100644 index 0000000000..787407869e Binary files /dev/null and b/assets/map/elements/item/mine/explosion.png differ diff --git a/assets/map/elements/item/mine/mine.atlas.yaml b/assets/map/elements/item/mine/mine.atlas.yaml new file mode 100644 index 0000000000..bbdb2a6f8d --- /dev/null +++ b/assets/map/elements/item/mine/mine.atlas.yaml @@ -0,0 +1,4 @@ +image: ./mine.png +tile_size: [33, 35] +rows: 1 +columns: 13 diff --git a/assets/map/elements/item/mine/mine.element.yaml b/assets/map/elements/item/mine/mine.element.yaml new file mode 100644 index 0000000000..c29be16bb4 --- /dev/null +++ b/assets/map/elements/item/mine/mine.element.yaml @@ -0,0 +1,24 @@ +name: Mine +category: Weapons +builtin: !Mine + throw_velocity: [7, 5] + + atlas: ./mine.atlas.yaml + + explosion_atlas: ./explosion.atlas.yaml + explosion_anim_frames: 12 + explosion_anim_fps: 8 + explosion_sound: ./explosion.ogg + + arm_sound: ./arm.ogg + armed_anim_start: 1 + armed_anim_end: 13 + armed_anim_fps: 15 + + damage_region_size: [60, 60] + damage_region_lifetime: 0.6 + + arm_delay: 0.5 + body_size: [34, 36] + body_offset: [0, 0] + grab_offset: [14, -2] diff --git a/assets/map/elements/item/mine/mine.png b/assets/map/elements/item/mine/mine.png new file mode 100644 index 0000000000..ab498a52cc Binary files /dev/null and b/assets/map/elements/item/mine/mine.png differ diff --git a/assets/map/elements/item/mines/mines.element.yaml b/assets/map/elements/item/mines/mines.element.yaml deleted file mode 100644 index 529141d8ee..0000000000 --- a/assets/map/elements/item/mines/mines.element.yaml +++ /dev/null @@ -1,2 +0,0 @@ -name: Mines -category: Weapons diff --git a/assets/map/levels/lev01.map.json b/assets/map/levels/lev01.map.json index 8cf69f993f..d0aeb7f69d 100644 --- a/assets/map/levels/lev01.map.json +++ b/assets/map/levels/lev01.map.json @@ -1,1889 +1,1109 @@ { - "name": "lev01", - "background_color": "7EA8A6", - "grid_size": [ - 27, - 21 - ], - "tile_size": [ - 32, - 32 - ], - "layers": [ - { - "id": "main layer", - "kind": { - "tile": { - "has_collision": true, - "tiles": [ - { - "pos": [ - 0, - 20 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 20 - ], - "idx": 9 - }, - { - "pos": [ - 25, - 20 - ], - "idx": 7 - }, - { - "pos": [ - 26, - 20 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 19 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 19 - ], - "idx": 9 - }, - { - "pos": [ - 25, - 19 - ], - "idx": 7 - }, - { - "pos": [ - 26, - 19 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 18 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 18 - ], - "idx": 9 - }, - { - "pos": [ - 25, - 18 - ], - "idx": 7 - }, - { - "pos": [ - 26, - 18 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 17 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 17 - ], - "idx": 9 - }, - { - "pos": [ - 8, - 17 - ], - "idx": 32 - }, - { - "pos": [ - 9, - 17 - ], - "idx": 34 - }, - { - "pos": [ - 17, - 17 - ], - "idx": 32 - }, - { - "pos": [ - 18, - 17 - ], - "idx": 34 - }, - { - "pos": [ - 25, - 17 - ], - "idx": 7 - }, - { - "pos": [ - 26, - 17 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 16 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 16 - ], - "idx": 9 - }, - { - "pos": [ - 8, - 16 - ], - "idx": 39 - }, - { - "pos": [ - 9, - 16 - ], - "idx": 40 - }, - { - "pos": [ - 10, - 16 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 11, - 16 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 12, - 16 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 13, - 16 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 14, - 16 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 15, - 16 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 16, - 16 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 17, - 16 - ], - "idx": 39 - }, - { - "pos": [ - 18, - 16 - ], - "idx": 41 - }, - { - "pos": [ - 25, - 16 - ], - "idx": 7 - }, - { - "pos": [ - 26, - 16 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 15 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 15 - ], - "idx": 9 - }, - { - "pos": [ - 6, - 15 - ], - "idx": 56, - "jump_through": true - }, - { - "pos": [ - 7, - 15 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 8, - 15 - ], - "idx": 46 - }, - { - "pos": [ - 9, - 15 - ], - "idx": 48 - }, - { - "pos": [ - 17, - 15 - ], - "idx": 46 - }, - { - "pos": [ - 18, - 15 - ], - "idx": 48 - }, - { - "pos": [ - 19, - 15 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 20, - 15 - ], - "idx": 60, - "jump_through": true - }, - { - "pos": [ - 25, - 15 - ], - "idx": 7 - }, - { - "pos": [ - 26, - 15 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 14 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 14 - ], - "idx": 9 - }, - { - "pos": [ - 2, - 14 - ], - "idx": 60, - "jump_through": true - }, - { - "pos": [ - 24, - 14 - ], - "idx": 56, - "jump_through": true - }, - { - "pos": [ - 25, - 14 - ], - "idx": 7 - }, - { - "pos": [ - 26, - 14 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 13 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 13 - ], - "idx": 9 - }, - { - "pos": [ - 25, - 13 - ], - "idx": 7 - }, - { - "pos": [ - 26, - 13 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 12 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 12 - ], - "idx": 9 - }, - { - "pos": [ - 25, - 12 - ], - "idx": 7 - }, - { - "pos": [ - 26, - 12 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 11 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 11 - ], - "idx": 9 - }, - { - "pos": [ - 2, - 11 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 3, - 11 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 4, - 11 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 5, - 11 - ], - "idx": 60, - "jump_through": true - }, - { - "pos": [ - 21, - 11 - ], - "idx": 56, - "jump_through": true - }, - { - "pos": [ - 22, - 11 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 23, - 11 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 24, - 11 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 25, - 11 - ], - "idx": 7 - }, - { - "pos": [ - 26, - 11 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 10 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 10 - ], - "idx": 9 - }, - { - "pos": [ - 11, - 10 - ], - "idx": 0 - }, - { - "pos": [ - 12, - 10 - ], - "idx": 1 - }, - { - "pos": [ - 13, - 10 - ], - "idx": 1 - }, - { - "pos": [ - 14, - 10 - ], - "idx": 1 - }, - { - "pos": [ - 15, - 10 - ], - "idx": 2 - }, - { - "pos": [ - 25, - 10 - ], - "idx": 7 - }, - { - "pos": [ - 26, - 10 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 9 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 9 - ], - "idx": 9 - }, - { - "pos": [ - 11, - 9 - ], - "idx": 7 - }, - { - "pos": [ - 12, - 9 - ], - "idx": 8 - }, - { - "pos": [ - 13, - 9 - ], - "idx": 8 - }, - { - "pos": [ - 14, - 9 - ], - "idx": 8 - }, - { - "pos": [ - 15, - 9 - ], - "idx": 9 - }, - { - "pos": [ - 25, - 9 - ], - "idx": 7 - }, - { - "pos": [ - 26, - 9 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 8 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 8 - ], - "idx": 9 - }, - { - "pos": [ - 7, - 8 - ], - "idx": 56, - "jump_through": true - }, - { - "pos": [ - 8, - 8 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 9, - 8 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 10, - 8 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 11, - 8 - ], - "idx": 14 - }, - { - "pos": [ - 12, - 8 - ], - "idx": 15 - }, - { - "pos": [ - 13, - 8 - ], - "idx": 15 - }, - { - "pos": [ - 14, - 8 - ], - "idx": 15 - }, - { - "pos": [ - 15, - 8 - ], - "idx": 16 - }, - { - "pos": [ - 16, - 8 - ], - "idx": 56, - "jump_through": true - }, - { - "pos": [ - 17, - 8 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 18, - 8 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 19, - 8 - ], - "idx": 60, - "jump_through": true - }, - { - "pos": [ - 25, - 8 - ], - "idx": 7 - }, - { - "pos": [ - 26, - 8 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 7 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 7 - ], - "idx": 9 - }, - { - "pos": [ - 25, - 7 - ], - "idx": 7 - }, - { - "pos": [ - 26, - 7 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 6 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 6 - ], - "idx": 9 - }, - { - "pos": [ - 25, - 6 - ], - "idx": 7 - }, - { - "pos": [ - 26, - 6 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 5 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 5 - ], - "idx": 20 - }, - { - "pos": [ - 2, - 5 - ], - "idx": 40 - }, - { - "pos": [ - 3, - 5 - ], - "idx": 40 - }, - { - "pos": [ - 4, - 5 - ], - "idx": 23 - }, - { - "pos": [ - 22, - 5 - ], - "idx": 21 - }, - { - "pos": [ - 23, - 5 - ], - "idx": 40 - }, - { - "pos": [ - 24, - 5 - ], - "idx": 40 - }, - { - "pos": [ - 25, - 5 - ], - "idx": 13 - }, - { - "pos": [ - 26, - 5 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 4 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 4 - ], - "idx": 9 - }, - { - "pos": [ - 25, - 4 - ], - "idx": 7 - }, - { - "pos": [ - 26, - 4 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 3 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 3 - ], - "idx": 9 - }, - { - "pos": [ - 25, - 3 - ], - "idx": 7 - }, - { - "pos": [ - 26, - 3 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 2 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 2 - ], - "idx": 11 - }, - { - "pos": [ - 2, - 2 - ], - "idx": 1 - }, - { - "pos": [ - 3, - 2 - ], - "idx": 1 - }, - { - "pos": [ - 4, - 2 - ], - "idx": 1 - }, - { - "pos": [ - 5, - 2 - ], - "idx": 1 - }, - { - "pos": [ - 6, - 2 - ], - "idx": 1 - }, - { - "pos": [ - 7, - 2 - ], - "idx": 1 - }, - { - "pos": [ - 8, - 2 - ], - "idx": 1 - }, - { - "pos": [ - 9, - 2 - ], - "idx": 1 - }, - { - "pos": [ - 10, - 2 - ], - "idx": 1 - }, - { - "pos": [ - 11, - 2 - ], - "idx": 1 - }, - { - "pos": [ - 12, - 2 - ], - "idx": 1 - }, - { - "pos": [ - 13, - 2 - ], - "idx": 1 - }, - { - "pos": [ - 14, - 2 - ], - "idx": 1 - }, - { - "pos": [ - 15, - 2 - ], - "idx": 1 - }, - { - "pos": [ - 16, - 2 - ], - "idx": 1 - }, - { - "pos": [ - 17, - 2 - ], - "idx": 1 - }, - { - "pos": [ - 18, - 2 - ], - "idx": 1 - }, - { - "pos": [ - 19, - 2 - ], - "idx": 1 - }, - { - "pos": [ - 20, - 2 - ], - "idx": 1 - }, - { - "pos": [ - 21, - 2 - ], - "idx": 1 - }, - { - "pos": [ - 22, - 2 - ], - "idx": 1 - }, - { - "pos": [ - 23, - 2 - ], - "idx": 1 - }, - { - "pos": [ - 24, - 2 - ], - "idx": 1 - }, - { - "pos": [ - 25, - 2 - ], - "idx": 12 - }, - { - "pos": [ - 26, - 2 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 2, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 3, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 4, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 5, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 6, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 7, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 8, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 9, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 10, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 11, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 12, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 13, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 14, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 15, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 16, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 17, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 18, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 19, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 20, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 21, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 22, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 23, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 24, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 25, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 26, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 1, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 2, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 3, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 4, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 5, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 6, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 7, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 8, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 9, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 10, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 11, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 12, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 13, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 14, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 15, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 16, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 17, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 18, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 19, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 20, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 21, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 22, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 23, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 24, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 25, - 0 - ], - "idx": 15 - }, - { - "pos": [ - 26, - 0 - ], - "idx": 15 + "name": "lev01", + "background_color": "7EA8A6", + "grid_size": [27, 21], + "tile_size": [32, 32], + "layers": [ + { + "id": "main layer", + "kind": { + "tile": { + "has_collision": true, + "tiles": [ + { + "pos": [0, 20], + "idx": 8 + }, + { + "pos": [1, 20], + "idx": 9 + }, + { + "pos": [25, 20], + "idx": 7 + }, + { + "pos": [26, 20], + "idx": 8 + }, + { + "pos": [0, 19], + "idx": 8 + }, + { + "pos": [1, 19], + "idx": 9 + }, + { + "pos": [25, 19], + "idx": 7 + }, + { + "pos": [26, 19], + "idx": 8 + }, + { + "pos": [0, 18], + "idx": 8 + }, + { + "pos": [1, 18], + "idx": 9 + }, + { + "pos": [25, 18], + "idx": 7 + }, + { + "pos": [26, 18], + "idx": 8 + }, + { + "pos": [0, 17], + "idx": 8 + }, + { + "pos": [1, 17], + "idx": 9 + }, + { + "pos": [8, 17], + "idx": 32 + }, + { + "pos": [9, 17], + "idx": 34 + }, + { + "pos": [17, 17], + "idx": 32 + }, + { + "pos": [18, 17], + "idx": 34 + }, + { + "pos": [25, 17], + "idx": 7 + }, + { + "pos": [26, 17], + "idx": 8 + }, + { + "pos": [0, 16], + "idx": 8 + }, + { + "pos": [1, 16], + "idx": 9 + }, + { + "pos": [8, 16], + "idx": 39 + }, + { + "pos": [9, 16], + "idx": 40 + }, + { + "pos": [10, 16], + "idx": 58, + "jump_through": true + }, + { + "pos": [11, 16], + "idx": 58, + "jump_through": true + }, + { + "pos": [12, 16], + "idx": 58, + "jump_through": true + }, + { + "pos": [13, 16], + "idx": 58, + "jump_through": true + }, + { + "pos": [14, 16], + "idx": 58, + "jump_through": true + }, + { + "pos": [15, 16], + "idx": 58, + "jump_through": true + }, + { + "pos": [16, 16], + "idx": 58, + "jump_through": true + }, + { + "pos": [17, 16], + "idx": 39 + }, + { + "pos": [18, 16], + "idx": 41 + }, + { + "pos": [25, 16], + "idx": 7 + }, + { + "pos": [26, 16], + "idx": 8 + }, + { + "pos": [0, 15], + "idx": 8 + }, + { + "pos": [1, 15], + "idx": 9 + }, + { + "pos": [6, 15], + "idx": 56, + "jump_through": true + }, + { + "pos": [7, 15], + "idx": 58, + "jump_through": true + }, + { + "pos": [8, 15], + "idx": 46 + }, + { + "pos": [9, 15], + "idx": 48 + }, + { + "pos": [17, 15], + "idx": 46 + }, + { + "pos": [18, 15], + "idx": 48 + }, + { + "pos": [19, 15], + "idx": 58, + "jump_through": true + }, + { + "pos": [20, 15], + "idx": 60, + "jump_through": true + }, + { + "pos": [25, 15], + "idx": 7 + }, + { + "pos": [26, 15], + "idx": 8 + }, + { + "pos": [0, 14], + "idx": 8 + }, + { + "pos": [1, 14], + "idx": 9 + }, + { + "pos": [2, 14], + "idx": 60, + "jump_through": true + }, + { + "pos": [24, 14], + "idx": 56, + "jump_through": true + }, + { + "pos": [25, 14], + "idx": 7 + }, + { + "pos": [26, 14], + "idx": 8 + }, + { + "pos": [0, 13], + "idx": 8 + }, + { + "pos": [1, 13], + "idx": 9 + }, + { + "pos": [25, 13], + "idx": 7 + }, + { + "pos": [26, 13], + "idx": 8 + }, + { + "pos": [0, 12], + "idx": 8 + }, + { + "pos": [1, 12], + "idx": 9 + }, + { + "pos": [25, 12], + "idx": 7 + }, + { + "pos": [26, 12], + "idx": 8 + }, + { + "pos": [0, 11], + "idx": 8 + }, + { + "pos": [1, 11], + "idx": 9 + }, + { + "pos": [2, 11], + "idx": 58, + "jump_through": true + }, + { + "pos": [3, 11], + "idx": 58, + "jump_through": true + }, + { + "pos": [4, 11], + "idx": 58, + "jump_through": true + }, + { + "pos": [5, 11], + "idx": 60, + "jump_through": true + }, + { + "pos": [21, 11], + "idx": 56, + "jump_through": true + }, + { + "pos": [22, 11], + "idx": 58, + "jump_through": true + }, + { + "pos": [23, 11], + "idx": 58, + "jump_through": true + }, + { + "pos": [24, 11], + "idx": 58, + "jump_through": true + }, + { + "pos": [25, 11], + "idx": 7 + }, + { + "pos": [26, 11], + "idx": 8 + }, + { + "pos": [0, 10], + "idx": 8 + }, + { + "pos": [1, 10], + "idx": 9 + }, + { + "pos": [11, 10], + "idx": 0 + }, + { + "pos": [12, 10], + "idx": 1 + }, + { + "pos": [13, 10], + "idx": 1 + }, + { + "pos": [14, 10], + "idx": 1 + }, + { + "pos": [15, 10], + "idx": 2 + }, + { + "pos": [25, 10], + "idx": 7 + }, + { + "pos": [26, 10], + "idx": 8 + }, + { + "pos": [0, 9], + "idx": 8 + }, + { + "pos": [1, 9], + "idx": 9 + }, + { + "pos": [11, 9], + "idx": 7 + }, + { + "pos": [12, 9], + "idx": 8 + }, + { + "pos": [13, 9], + "idx": 8 + }, + { + "pos": [14, 9], + "idx": 8 + }, + { + "pos": [15, 9], + "idx": 9 + }, + { + "pos": [25, 9], + "idx": 7 + }, + { + "pos": [26, 9], + "idx": 8 + }, + { + "pos": [0, 8], + "idx": 8 + }, + { + "pos": [1, 8], + "idx": 9 + }, + { + "pos": [7, 8], + "idx": 56, + "jump_through": true + }, + { + "pos": [8, 8], + "idx": 58, + "jump_through": true + }, + { + "pos": [9, 8], + "idx": 58, + "jump_through": true + }, + { + "pos": [10, 8], + "idx": 58, + "jump_through": true + }, + { + "pos": [11, 8], + "idx": 14 + }, + { + "pos": [12, 8], + "idx": 15 + }, + { + "pos": [13, 8], + "idx": 15 + }, + { + "pos": [14, 8], + "idx": 15 + }, + { + "pos": [15, 8], + "idx": 16 + }, + { + "pos": [16, 8], + "idx": 56, + "jump_through": true + }, + { + "pos": [17, 8], + "idx": 58, + "jump_through": true + }, + { + "pos": [18, 8], + "idx": 58, + "jump_through": true + }, + { + "pos": [19, 8], + "idx": 60, + "jump_through": true + }, + { + "pos": [25, 8], + "idx": 7 + }, + { + "pos": [26, 8], + "idx": 8 + }, + { + "pos": [0, 7], + "idx": 8 + }, + { + "pos": [1, 7], + "idx": 9 + }, + { + "pos": [25, 7], + "idx": 7 + }, + { + "pos": [26, 7], + "idx": 8 + }, + { + "pos": [0, 6], + "idx": 8 + }, + { + "pos": [1, 6], + "idx": 9 + }, + { + "pos": [25, 6], + "idx": 7 + }, + { + "pos": [26, 6], + "idx": 8 + }, + { + "pos": [0, 5], + "idx": 8 + }, + { + "pos": [1, 5], + "idx": 20 + }, + { + "pos": [2, 5], + "idx": 40 + }, + { + "pos": [3, 5], + "idx": 40 + }, + { + "pos": [4, 5], + "idx": 23 + }, + { + "pos": [22, 5], + "idx": 21 + }, + { + "pos": [23, 5], + "idx": 40 + }, + { + "pos": [24, 5], + "idx": 40 + }, + { + "pos": [25, 5], + "idx": 13 + }, + { + "pos": [26, 5], + "idx": 8 + }, + { + "pos": [0, 4], + "idx": 8 + }, + { + "pos": [1, 4], + "idx": 9 + }, + { + "pos": [25, 4], + "idx": 7 + }, + { + "pos": [26, 4], + "idx": 8 + }, + { + "pos": [0, 3], + "idx": 8 + }, + { + "pos": [1, 3], + "idx": 9 + }, + { + "pos": [25, 3], + "idx": 7 + }, + { + "pos": [26, 3], + "idx": 8 + }, + { + "pos": [0, 2], + "idx": 8 + }, + { + "pos": [1, 2], + "idx": 11 + }, + { + "pos": [2, 2], + "idx": 1 + }, + { + "pos": [3, 2], + "idx": 1 + }, + { + "pos": [4, 2], + "idx": 1 + }, + { + "pos": [5, 2], + "idx": 1 + }, + { + "pos": [6, 2], + "idx": 1 + }, + { + "pos": [7, 2], + "idx": 1 + }, + { + "pos": [8, 2], + "idx": 1 + }, + { + "pos": [9, 2], + "idx": 1 + }, + { + "pos": [10, 2], + "idx": 1 + }, + { + "pos": [11, 2], + "idx": 1 + }, + { + "pos": [12, 2], + "idx": 1 + }, + { + "pos": [13, 2], + "idx": 1 + }, + { + "pos": [14, 2], + "idx": 1 + }, + { + "pos": [15, 2], + "idx": 1 + }, + { + "pos": [16, 2], + "idx": 1 + }, + { + "pos": [17, 2], + "idx": 1 + }, + { + "pos": [18, 2], + "idx": 1 + }, + { + "pos": [19, 2], + "idx": 1 + }, + { + "pos": [20, 2], + "idx": 1 + }, + { + "pos": [21, 2], + "idx": 1 + }, + { + "pos": [22, 2], + "idx": 1 + }, + { + "pos": [23, 2], + "idx": 1 + }, + { + "pos": [24, 2], + "idx": 1 + }, + { + "pos": [25, 2], + "idx": 12 + }, + { + "pos": [26, 2], + "idx": 8 + }, + { + "pos": [0, 1], + "idx": 8 + }, + { + "pos": [1, 1], + "idx": 8 + }, + { + "pos": [2, 1], + "idx": 8 + }, + { + "pos": [3, 1], + "idx": 8 + }, + { + "pos": [4, 1], + "idx": 8 + }, + { + "pos": [5, 1], + "idx": 8 + }, + { + "pos": [6, 1], + "idx": 8 + }, + { + "pos": [7, 1], + "idx": 8 + }, + { + "pos": [8, 1], + "idx": 8 + }, + { + "pos": [9, 1], + "idx": 8 + }, + { + "pos": [10, 1], + "idx": 8 + }, + { + "pos": [11, 1], + "idx": 8 + }, + { + "pos": [12, 1], + "idx": 8 + }, + { + "pos": [13, 1], + "idx": 8 + }, + { + "pos": [14, 1], + "idx": 8 + }, + { + "pos": [15, 1], + "idx": 8 + }, + { + "pos": [16, 1], + "idx": 8 + }, + { + "pos": [17, 1], + "idx": 8 + }, + { + "pos": [18, 1], + "idx": 8 + }, + { + "pos": [19, 1], + "idx": 8 + }, + { + "pos": [20, 1], + "idx": 8 + }, + { + "pos": [21, 1], + "idx": 8 + }, + { + "pos": [22, 1], + "idx": 8 + }, + { + "pos": [23, 1], + "idx": 8 + }, + { + "pos": [24, 1], + "idx": 8 + }, + { + "pos": [25, 1], + "idx": 8 + }, + { + "pos": [26, 1], + "idx": 8 + }, + { + "pos": [0, 0], + "idx": 15 + }, + { + "pos": [1, 0], + "idx": 15 + }, + { + "pos": [2, 0], + "idx": 15 + }, + { + "pos": [3, 0], + "idx": 15 + }, + { + "pos": [4, 0], + "idx": 15 + }, + { + "pos": [5, 0], + "idx": 15 + }, + { + "pos": [6, 0], + "idx": 15 + }, + { + "pos": [7, 0], + "idx": 15 + }, + { + "pos": [8, 0], + "idx": 15 + }, + { + "pos": [9, 0], + "idx": 15 + }, + { + "pos": [10, 0], + "idx": 15 + }, + { + "pos": [11, 0], + "idx": 15 + }, + { + "pos": [12, 0], + "idx": 15 + }, + { + "pos": [13, 0], + "idx": 15 + }, + { + "pos": [14, 0], + "idx": 15 + }, + { + "pos": [15, 0], + "idx": 15 + }, + { + "pos": [16, 0], + "idx": 15 + }, + { + "pos": [17, 0], + "idx": 15 + }, + { + "pos": [18, 0], + "idx": 15 + }, + { + "pos": [19, 0], + "idx": 15 + }, + { + "pos": [20, 0], + "idx": 15 + }, + { + "pos": [21, 0], + "idx": 15 + }, + { + "pos": [22, 0], + "idx": 15 + }, + { + "pos": [23, 0], + "idx": 15 + }, + { + "pos": [24, 0], + "idx": 15 + }, + { + "pos": [25, 0], + "idx": 15 + }, + { + "pos": [26, 0], + "idx": 15 + } + ], + "tilemap": "../resources/default_tileset.png" + } } - ], - "tilemap": "../resources/default_tileset.png" - } - } - }, - { - "id": "decorations", - "kind": { - "element": { - "elements": [ - { - "pos": [ - 434.74872000000005, - 361.5 - ], - "element": "../elements/environment/sproinger/sproinger.element.yaml" - }, - { - "pos": [ - 84.00005999999999, - 201.5 - ], - "element": "../elements/environment/sproinger/sproinger.element.yaml" - }, - { - "pos": [ - 787.7431999999999, - 201.5 - ], - "element": "../elements/environment/sproinger/sproinger.element.yaml" - }, - { - "pos": [ - 90.666664, - 121.5 - ], - "element": "../elements/decoration/anemones/anemones.element.yaml" - }, - { - "pos": [ - 776, - 121.5 - ], - "element": "../elements/decoration/anemones/anemones.element.yaml" - }, - { - "pos": [ - 672, - 121.5 - ], - "element": "../elements/decoration/seaweed/seaweed.element.yaml" - }, - { - "pos": [ - 192, - 121.5 - ], - "element": "../elements/decoration/seaweed/seaweed.element.yaml" - }, - { - "pos": [ - 448, - 121.5 - ], - "element": "../elements/decoration/anemones/anemones.element.yaml" - }, - { - "pos": [ - 437.2876, - 377.5 - ], - "element": "../elements/decoration/seaweed/seaweed.element.yaml" - }, - { - "pos": [ - 608, - 313.5 - ], - "element": "../elements/decoration/anemones/anemones.element.yaml" - }, - { - "pos": [ - 441.66668000000004, - 569.5 - ], - "element": "../elements/decoration/anemones/anemones.element.yaml" - }, - { - "pos": [ - 256, - 313.5 - ], - "element": "../elements/decoration/anemones/anemones.element.yaml" - }, - { - "pos": [ - 291.83331999999996, - 601.5 - ], - "element": "../elements/decoration/seaweed/seaweed.element.yaml" - }, - { - "pos": [ - 777.6371999999999, - 409.5 - ], - "element": "../elements/decoration/seaweed/seaweed.element.yaml" - }, - { - "pos": [ - 576, - 601.5 - ], - "element": "../elements/decoration/seaweed/seaweed.element.yaml" - }, - { - "pos": [ - 88, - 409.5 - ], - "element": "../elements/decoration/seaweed/seaweed.element.yaml" + }, + { + "id": "decorations", + "kind": { + "element": { + "elements": [ + { + "pos": [434.74872000000005, 361.5], + "element": "../elements/environment/sproinger/sproinger.element.yaml" + }, + { + "pos": [84.00005999999999, 201.5], + "element": "../elements/environment/sproinger/sproinger.element.yaml" + }, + { + "pos": [787.7431999999999, 201.5], + "element": "../elements/environment/sproinger/sproinger.element.yaml" + }, + { + "pos": [90.666664, 121.5], + "element": "../elements/decoration/anemones/anemones.element.yaml" + }, + { + "pos": [776, 121.5], + "element": "../elements/decoration/anemones/anemones.element.yaml" + }, + { + "pos": [672, 121.5], + "element": "../elements/decoration/seaweed/seaweed.element.yaml" + }, + { + "pos": [192, 121.5], + "element": "../elements/decoration/seaweed/seaweed.element.yaml" + }, + { + "pos": [448, 121.5], + "element": "../elements/decoration/anemones/anemones.element.yaml" + }, + { + "pos": [437.2876, 377.5], + "element": "../elements/decoration/seaweed/seaweed.element.yaml" + }, + { + "pos": [608, 313.5], + "element": "../elements/decoration/anemones/anemones.element.yaml" + }, + { + "pos": [441.66668000000004, 569.5], + "element": "../elements/decoration/anemones/anemones.element.yaml" + }, + { + "pos": [256, 313.5], + "element": "../elements/decoration/anemones/anemones.element.yaml" + }, + { + "pos": [291.83331999999996, 601.5], + "element": "../elements/decoration/seaweed/seaweed.element.yaml" + }, + { + "pos": [777.6371999999999, 409.5], + "element": "../elements/decoration/seaweed/seaweed.element.yaml" + }, + { + "pos": [576, 601.5], + "element": "../elements/decoration/seaweed/seaweed.element.yaml" + }, + { + "pos": [88, 409.5], + "element": "../elements/decoration/seaweed/seaweed.element.yaml" + } + ] + } } - ] - } - } - }, - { - "id": "items", - "kind": { - "element": { - "elements": [ - { - "pos": [ - 536, - 309.5 - ], - "element": "../elements/item/musket/musket.element.yaml" - }, - { - "pos": [ - 292.22720000000004, - 609.5 - ], - "element": "../elements/environment/fish_school/fish_school.element.yaml" - }, - { - "pos": [ - 552, - 289.5 - ], - "element": "../elements/environment/crab/crab.element.yaml" - }, - { - "pos": [ - 496, - 545.5 - ], - "element": "../elements/environment/crab/crab.element.yaml" - }, - { - "pos": [ - 184, - 155.5 - ], - "element": "../elements/environment/fish_school/fish_school.element.yaml" - }, - { - "pos": [ - 772.4570000000001, - 425.5 - ], - "element": "../elements/environment/fish_school/fish_school.element.yaml" - }, - { - "pos": [ - 312.0556, - 311.5 - ], - "element": "../elements/item/musket/musket.element.yaml" - }, - { - "pos": [ - 132.024688, - 121.5 - ], - "element": "../elements/item/machine_gun/machine_gun.element.yaml" - }, - { - "pos": [ - 561, - 599.5 - ], - "element": "../elements/item/sword/sword.element.yaml" - }, - { - "pos": [ - 272, - 593.5 - ], - "element": "../elements/item/sword/sword.element.yaml" - }, - { - "pos": [ - 171.57139999999998, - 409.5 - ], - "element": "../elements/item/kick_bomb/kick_bomb.element.yaml" - }, - { - "pos": [ - 712, - 393.5 - ], - "element": "../elements/item/mines/mines.element.yaml" - }, - { - "pos": [ - 720.9998, - 121.5 - ], - "element": "../elements/item/cannon/cannon.element.yaml" - }, - { - "pos": [ - 312, - 105.5 - ], - "element": "../elements/environment/sproinger/sproinger.element.yaml" - }, - { - "pos": [ - 576, - 105.5 - ], - "element": "../elements/environment/sproinger/sproinger.element.yaml" + }, + { + "id": "items", + "kind": { + "element": { + "elements": [ + { + "pos": [536, 309.5], + "element": "../elements/item/musket/musket.element.yaml" + }, + { + "pos": [292.22720000000004, 609.5], + "element": "../elements/environment/fish_school/fish_school.element.yaml" + }, + { + "pos": [552, 289.5], + "element": "../elements/environment/crab/crab.element.yaml" + }, + { + "pos": [496, 545.5], + "element": "../elements/environment/crab/crab.element.yaml" + }, + { + "pos": [184, 155.5], + "element": "../elements/environment/fish_school/fish_school.element.yaml" + }, + { + "pos": [772.4570000000001, 425.5], + "element": "../elements/environment/fish_school/fish_school.element.yaml" + }, + { + "pos": [312.0556, 311.5], + "element": "../elements/item/musket/musket.element.yaml" + }, + { + "pos": [132.024688, 121.5], + "element": "../elements/item/machine_gun/machine_gun.element.yaml" + }, + { + "pos": [561, 599.5], + "element": "../elements/item/sword/sword.element.yaml" + }, + { + "pos": [272, 593.5], + "element": "../elements/item/sword/sword.element.yaml" + }, + { + "pos": [171.57139999999998, 409.5], + "element": "../elements/item/kick_bomb/kick_bomb.element.yaml" + }, + { + "pos": [712, 393.5], + "element": "../elements/item/mine/mine.element.yaml" + }, + { + "pos": [720.9998, 121.5], + "element": "../elements/item/cannon/cannon.element.yaml" + }, + { + "pos": [312, 105.5], + "element": "../elements/environment/sproinger/sproinger.element.yaml" + }, + { + "pos": [576, 105.5], + "element": "../elements/environment/sproinger/sproinger.element.yaml" + } + ] + } } - ] - } - } - }, - { - "id": "spawners", - "kind": { - "element": { - "elements": [ - { - "pos": [ - 268.33334, - 640 - ], - "element": "../elements/environment/player_spawner/player_spawner.element.yaml" - }, - { - "pos": [ - 124.16667, - 224.50002999999998 - ], - "element": "../elements/environment/player_spawner/player_spawner.element.yaml" - }, - { - "pos": [ - 701.74677, - 225.11905000000002 - ], - "element": "../elements/environment/player_spawner/player_spawner.element.yaml" - }, - { - "pos": [ - 559.6667, - 640 - ], - "element": "../elements/environment/player_spawner/player_spawner.element.yaml" + }, + { + "id": "spawners", + "kind": { + "element": { + "elements": [ + { + "pos": [268.33334, 640], + "element": "../elements/environment/player_spawner/player_spawner.element.yaml" + }, + { + "pos": [124.16667, 224.50002999999998], + "element": "../elements/environment/player_spawner/player_spawner.element.yaml" + }, + { + "pos": [701.74677, 225.11905000000002], + "element": "../elements/environment/player_spawner/player_spawner.element.yaml" + }, + { + "pos": [559.6667, 640], + "element": "../elements/environment/player_spawner/player_spawner.element.yaml" + } + ] + } } - ] } - } - } - ], - "background_layers": [ - { - "image": "../resources/background_04.png", - "speed": 0, - "tile_size": [ - 896, - 480 - ], - "z": -110, - "position": [ - 0, - 360 - ], - "scale": 2 - }, - { - "image": "../resources/background_03.png", - "speed": 0.74, - "tile_size": [ - 896, - 480 - ], - "z": -109, - "position": [ - 0, - 360 - ], - "scale": 2 - }, - { - "image": "../resources/background_02.png", - "speed": 0.82, - "tile_size": [ - 896, - 480 - ], - "z": -108, - "position": [ - 0, - 360 - ], - "scale": 2 - }, - { - "image": "../resources/background_01.png", - "speed": 100, - "tile_size": [ - 896, - 480 - ], - "z": -107, - "position": [ - 0, - 360 - ], - "scale": 2 - } - ] -} \ No newline at end of file + ], + "background_layers": [ + { + "image": "../resources/background_04.png", + "speed": 0, + "tile_size": [896, 480], + "z": -110, + "position": [0, 360], + "scale": 2 + }, + { + "image": "../resources/background_03.png", + "speed": 0.74, + "tile_size": [896, 480], + "z": -109, + "position": [0, 360], + "scale": 2 + }, + { + "image": "../resources/background_02.png", + "speed": 0.82, + "tile_size": [896, 480], + "z": -108, + "position": [0, 360], + "scale": 2 + }, + { + "image": "../resources/background_01.png", + "speed": 100, + "tile_size": [896, 480], + "z": -107, + "position": [0, 360], + "scale": 2 + } + ] +} diff --git a/assets/map/levels/lev02.map.json b/assets/map/levels/lev02.map.json index fd6533d3bc..3a93773796 100644 --- a/assets/map/levels/lev02.map.json +++ b/assets/map/levels/lev02.map.json @@ -800,7 +800,7 @@ }, { "pos": [64, 425.5], - "element": "../elements/item/mines/mines.element.yaml" + "element": "../elements/item/mine/mine.element.yaml" }, { "pos": [592, 349.5], diff --git a/assets/map/levels/lev04.map.json b/assets/map/levels/lev04.map.json index 34a5cc6e45..2aefe62081 100644 --- a/assets/map/levels/lev04.map.json +++ b/assets/map/levels/lev04.map.json @@ -1,1885 +1,1102 @@ { - "name": "lev04", - "background_color": "7EA8A6", - "grid_size": [ - 35, - 15 - ], - "tile_size": [ - 32, - 32 - ], - "layers": [ - { - "id": "main layer", - "kind": { - "tile": { - "has_collision": true, - "tiles": [ - { - "pos": [ - 0, - 14 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 14 - ], - "idx": 9 - }, - { - "pos": [ - 33, - 14 - ], - "idx": 7 - }, - { - "pos": [ - 34, - 14 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 13 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 13 - ], - "idx": 9 - }, - { - "pos": [ - 33, - 13 - ], - "idx": 7 - }, - { - "pos": [ - 34, - 13 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 12 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 12 - ], - "idx": 9 - }, - { - "pos": [ - 9, - 12 - ], - "idx": 32 - }, - { - "pos": [ - 10, - 12 - ], - "idx": 22 - }, - { - "pos": [ - 11, - 12 - ], - "idx": 22 - }, - { - "pos": [ - 12, - 12 - ], - "idx": 23 - }, - { - "pos": [ - 13, - 12 - ], - "idx": 56, - "jump_through": true - }, - { - "pos": [ - 14, - 12 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 15, - 12 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 16, - 12 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 17, - 12 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 18, - 12 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 19, - 12 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 20, - 12 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 21, - 12 - ], - "idx": 60, - "jump_through": true - }, - { - "pos": [ - 22, - 12 - ], - "idx": 21 - }, - { - "pos": [ - 23, - 12 - ], - "idx": 22 - }, - { - "pos": [ - 24, - 12 - ], - "idx": 22 - }, - { - "pos": [ - 25, - 12 - ], - "idx": 34 - }, - { - "pos": [ - 33, - 12 - ], - "idx": 7 - }, - { - "pos": [ - 34, - 12 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 11 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 11 - ], - "idx": 9 - }, - { - "pos": [ - 9, - 11 - ], - "idx": 17 - }, - { - "pos": [ - 25, - 11 - ], - "idx": 17 - }, - { - "pos": [ - 33, - 11 - ], - "idx": 7 - }, - { - "pos": [ - 34, - 11 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 10 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 10 - ], - "idx": 20 - }, - { - "pos": [ - 33, - 10 - ], - "idx": 13 - }, - { - "pos": [ - 34, - 10 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 9 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 9 - ], - "idx": 9 - }, - { - "pos": [ - 2, - 9 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 3, - 9 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 4, - 9 - ], - "idx": 60, - "jump_through": true - }, - { - "pos": [ - 30, - 9 - ], - "idx": 56, - "jump_through": true - }, - { - "pos": [ - 31, - 9 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 32, - 9 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 33, - 9 - ], - "idx": 7 - }, - { - "pos": [ - 34, - 9 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 8 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 8 - ], - "idx": 9 - }, - { - "pos": [ - 33, - 8 - ], - "idx": 7 - }, - { - "pos": [ - 34, - 8 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 7 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 7 - ], - "idx": 9 - }, - { - "pos": [ - 14, - 7 - ], - "idx": 0 - }, - { - "pos": [ - 15, - 7 - ], - "idx": 45 - }, - { - "pos": [ - 16, - 7 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 17, - 7 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 18, - 7 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 19, - 7 - ], - "idx": 44 - }, - { - "pos": [ - 20, - 7 - ], - "idx": 2 - }, - { - "pos": [ - 33, - 7 - ], - "idx": 7 - }, - { - "pos": [ - 34, - 7 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 6 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 6 - ], - "idx": 20 - }, - { - "pos": [ - 2, - 6 - ], - "idx": 22 - }, - { - "pos": [ - 3, - 6 - ], - "idx": 22 - }, - { - "pos": [ - 4, - 6 - ], - "idx": 22 - }, - { - "pos": [ - 5, - 6 - ], - "idx": 22 - }, - { - "pos": [ - 6, - 6 - ], - "idx": 23 - }, - { - "pos": [ - 13, - 6 - ], - "idx": 0 - }, - { - "pos": [ - 14, - 6 - ], - "idx": 45 - }, - { - "pos": [ - 15, - 6 - ], - "idx": 16 - }, - { - "pos": [ - 19, - 6 - ], - "idx": 14 - }, - { - "pos": [ - 20, - 6 - ], - "idx": 44 - }, - { - "pos": [ - 21, - 6 - ], - "idx": 2 - }, - { - "pos": [ - 28, - 6 - ], - "idx": 21 - }, - { - "pos": [ - 29, - 6 - ], - "idx": 22 - }, - { - "pos": [ - 30, - 6 - ], - "idx": 22 - }, - { - "pos": [ - 31, - 6 - ], - "idx": 22 - }, - { - "pos": [ - 32, - 6 - ], - "idx": 22 - }, - { - "pos": [ - 33, - 6 - ], - "idx": 13 - }, - { - "pos": [ - 34, - 6 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 5 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 5 - ], - "idx": 9 - }, - { - "pos": [ - 12, - 5 - ], - "idx": 0 - }, - { - "pos": [ - 13, - 5 - ], - "idx": 45 - }, - { - "pos": [ - 14, - 5 - ], - "idx": 16 - }, - { - "pos": [ - 20, - 5 - ], - "idx": 14 - }, - { - "pos": [ - 21, - 5 - ], - "idx": 44 - }, - { - "pos": [ - 22, - 5 - ], - "idx": 2 - }, - { - "pos": [ - 33, - 5 - ], - "idx": 7 - }, - { - "pos": [ - 34, - 5 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 4 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 4 - ], - "idx": 9 - }, - { - "pos": [ - 11, - 4 - ], - "idx": 0 - }, - { - "pos": [ - 12, - 4 - ], - "idx": 45 - }, - { - "pos": [ - 13, - 4 - ], - "idx": 16 - }, - { - "pos": [ - 21, - 4 - ], - "idx": 14 - }, - { - "pos": [ - 22, - 4 - ], - "idx": 44 - }, - { - "pos": [ - 23, - 4 - ], - "idx": 2 - }, - { - "pos": [ - 33, - 4 - ], - "idx": 7 - }, - { - "pos": [ - 34, - 4 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 3 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 3 - ], - "idx": 9 - }, - { - "pos": [ - 11, - 3 - ], - "idx": 14 - }, - { - "pos": [ - 12, - 3 - ], - "idx": 16 - }, - { - "pos": [ - 13, - 3 - ], - "idx": 10 - }, - { - "pos": [ - 21, - 3 - ], - "idx": 10 - }, - { - "pos": [ - 22, - 3 - ], - "idx": 14 - }, - { - "pos": [ - 23, - 3 - ], - "idx": 16 - }, - { - "pos": [ - 33, - 3 - ], - "idx": 7 - }, - { - "pos": [ - 34, - 3 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 2 - ], - "idx": 4 - }, - { - "pos": [ - 1, - 2 - ], - "idx": 37 - }, - { - "pos": [ - 2, - 2 - ], - "idx": 33 - }, - { - "pos": [ - 3, - 2 - ], - "idx": 22 - }, - { - "pos": [ - 4, - 2 - ], - "idx": 22 - }, - { - "pos": [ - 5, - 2 - ], - "idx": 22 - }, - { - "pos": [ - 6, - 2 - ], - "idx": 22 - }, - { - "pos": [ - 7, - 2 - ], - "idx": 22 - }, - { - "pos": [ - 8, - 2 - ], - "idx": 22 - }, - { - "pos": [ - 9, - 2 - ], - "idx": 22 - }, - { - "pos": [ - 10, - 2 - ], - "idx": 33 - }, - { - "pos": [ - 11, - 2 - ], - "idx": 22 - }, - { - "pos": [ - 12, - 2 - ], - "idx": 33 - }, - { - "pos": [ - 13, - 2 - ], - "idx": 22 - }, - { - "pos": [ - 14, - 2 - ], - "idx": 22 - }, - { - "pos": [ - 15, - 2 - ], - "idx": 22 - }, - { - "pos": [ - 16, - 2 - ], - "idx": 22 - }, - { - "pos": [ - 17, - 2 - ], - "idx": 33 - }, - { - "pos": [ - 18, - 2 - ], - "idx": 22 - }, - { - "pos": [ - 19, - 2 - ], - "idx": 22 - }, - { - "pos": [ - 20, - 2 - ], - "idx": 22 - }, - { - "pos": [ - 21, - 2 - ], - "idx": 22 - }, - { - "pos": [ - 22, - 2 - ], - "idx": 22 - }, - { - "pos": [ - 23, - 2 - ], - "idx": 22 - }, - { - "pos": [ - 24, - 2 - ], - "idx": 22 - }, - { - "pos": [ - 25, - 2 - ], - "idx": 33 - }, - { - "pos": [ - 26, - 2 - ], - "idx": 22 - }, - { - "pos": [ - 27, - 2 - ], - "idx": 22 - }, - { - "pos": [ - 28, - 2 - ], - "idx": 22 - }, - { - "pos": [ - 29, - 2 - ], - "idx": 22 - }, - { - "pos": [ - 30, - 2 - ], - "idx": 22 - }, - { - "pos": [ - 31, - 2 - ], - "idx": 22 - }, - { - "pos": [ - 32, - 2 - ], - "idx": 33 - }, - { - "pos": [ - 33, - 2 - ], - "idx": 38 - }, - { - "pos": [ - 34, - 2 - ], - "idx": 5 - }, - { - "pos": [ - 0, - 1 - ], - "idx": 11 - }, - { - "pos": [ - 1, - 1 - ], - "idx": 12 - }, - { - "pos": [ - 2, - 1 - ], - "idx": 3 - }, - { - "pos": [ - 3, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 4, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 5, - 1 - ], - "idx": 20 - }, - { - "pos": [ - 6, - 1 - ], - "idx": 13 - }, - { - "pos": [ - 7, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 8, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 9, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 10, - 1 - ], - "idx": 3 - }, - { - "pos": [ - 11, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 12, - 1 - ], - "idx": 27 - }, - { - "pos": [ - 13, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 14, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 15, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 16, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 17, - 1 - ], - "idx": 3 - }, - { - "pos": [ - 18, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 19, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 20, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 21, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 22, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 23, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 24, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 25, - 1 - ], - "idx": 3 - }, - { - "pos": [ - 26, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 27, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 28, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 29, - 1 - ], - "idx": 27 - }, - { - "pos": [ - 30, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 31, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 32, - 1 - ], - "idx": 3 - }, - { - "pos": [ - 33, - 1 - ], - "idx": 11 - }, - { - "pos": [ - 34, - 1 - ], - "idx": 12 - }, - { - "pos": [ - 0, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 2, - 0 - ], - "idx": 10 - }, - { - "pos": [ - 3, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 4, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 5, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 6, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 7, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 8, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 9, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 10, - 0 - ], - "idx": 10 - }, - { - "pos": [ - 11, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 12, - 0 - ], - "idx": 6 - }, - { - "pos": [ - 13, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 14, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 15, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 16, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 17, - 0 - ], - "idx": 10 - }, - { - "pos": [ - 18, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 19, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 20, - 0 - ], - "idx": 20 - }, - { - "pos": [ - 21, - 0 - ], - "idx": 13 - }, - { - "pos": [ - 22, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 23, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 24, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 25, - 0 - ], - "idx": 10 - }, - { - "pos": [ - 26, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 27, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 28, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 29, - 0 - ], - "idx": 6 - }, - { - "pos": [ - 30, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 31, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 32, - 0 - ], - "idx": 10 - }, - { - "pos": [ - 33, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 34, - 0 - ], - "idx": 8 + "name": "lev04", + "background_color": "7EA8A6", + "grid_size": [35, 15], + "tile_size": [32, 32], + "layers": [ + { + "id": "main layer", + "kind": { + "tile": { + "has_collision": true, + "tiles": [ + { + "pos": [0, 14], + "idx": 8 + }, + { + "pos": [1, 14], + "idx": 9 + }, + { + "pos": [33, 14], + "idx": 7 + }, + { + "pos": [34, 14], + "idx": 8 + }, + { + "pos": [0, 13], + "idx": 8 + }, + { + "pos": [1, 13], + "idx": 9 + }, + { + "pos": [33, 13], + "idx": 7 + }, + { + "pos": [34, 13], + "idx": 8 + }, + { + "pos": [0, 12], + "idx": 8 + }, + { + "pos": [1, 12], + "idx": 9 + }, + { + "pos": [9, 12], + "idx": 32 + }, + { + "pos": [10, 12], + "idx": 22 + }, + { + "pos": [11, 12], + "idx": 22 + }, + { + "pos": [12, 12], + "idx": 23 + }, + { + "pos": [13, 12], + "idx": 56, + "jump_through": true + }, + { + "pos": [14, 12], + "idx": 58, + "jump_through": true + }, + { + "pos": [15, 12], + "idx": 58, + "jump_through": true + }, + { + "pos": [16, 12], + "idx": 58, + "jump_through": true + }, + { + "pos": [17, 12], + "idx": 58, + "jump_through": true + }, + { + "pos": [18, 12], + "idx": 58, + "jump_through": true + }, + { + "pos": [19, 12], + "idx": 58, + "jump_through": true + }, + { + "pos": [20, 12], + "idx": 58, + "jump_through": true + }, + { + "pos": [21, 12], + "idx": 60, + "jump_through": true + }, + { + "pos": [22, 12], + "idx": 21 + }, + { + "pos": [23, 12], + "idx": 22 + }, + { + "pos": [24, 12], + "idx": 22 + }, + { + "pos": [25, 12], + "idx": 34 + }, + { + "pos": [33, 12], + "idx": 7 + }, + { + "pos": [34, 12], + "idx": 8 + }, + { + "pos": [0, 11], + "idx": 8 + }, + { + "pos": [1, 11], + "idx": 9 + }, + { + "pos": [9, 11], + "idx": 17 + }, + { + "pos": [25, 11], + "idx": 17 + }, + { + "pos": [33, 11], + "idx": 7 + }, + { + "pos": [34, 11], + "idx": 8 + }, + { + "pos": [0, 10], + "idx": 8 + }, + { + "pos": [1, 10], + "idx": 20 + }, + { + "pos": [33, 10], + "idx": 13 + }, + { + "pos": [34, 10], + "idx": 8 + }, + { + "pos": [0, 9], + "idx": 8 + }, + { + "pos": [1, 9], + "idx": 9 + }, + { + "pos": [2, 9], + "idx": 58, + "jump_through": true + }, + { + "pos": [3, 9], + "idx": 58, + "jump_through": true + }, + { + "pos": [4, 9], + "idx": 60, + "jump_through": true + }, + { + "pos": [30, 9], + "idx": 56, + "jump_through": true + }, + { + "pos": [31, 9], + "idx": 58, + "jump_through": true + }, + { + "pos": [32, 9], + "idx": 58, + "jump_through": true + }, + { + "pos": [33, 9], + "idx": 7 + }, + { + "pos": [34, 9], + "idx": 8 + }, + { + "pos": [0, 8], + "idx": 8 + }, + { + "pos": [1, 8], + "idx": 9 + }, + { + "pos": [33, 8], + "idx": 7 + }, + { + "pos": [34, 8], + "idx": 8 + }, + { + "pos": [0, 7], + "idx": 8 + }, + { + "pos": [1, 7], + "idx": 9 + }, + { + "pos": [14, 7], + "idx": 0 + }, + { + "pos": [15, 7], + "idx": 45 + }, + { + "pos": [16, 7], + "idx": 58, + "jump_through": true + }, + { + "pos": [17, 7], + "idx": 58, + "jump_through": true + }, + { + "pos": [18, 7], + "idx": 58, + "jump_through": true + }, + { + "pos": [19, 7], + "idx": 44 + }, + { + "pos": [20, 7], + "idx": 2 + }, + { + "pos": [33, 7], + "idx": 7 + }, + { + "pos": [34, 7], + "idx": 8 + }, + { + "pos": [0, 6], + "idx": 8 + }, + { + "pos": [1, 6], + "idx": 20 + }, + { + "pos": [2, 6], + "idx": 22 + }, + { + "pos": [3, 6], + "idx": 22 + }, + { + "pos": [4, 6], + "idx": 22 + }, + { + "pos": [5, 6], + "idx": 22 + }, + { + "pos": [6, 6], + "idx": 23 + }, + { + "pos": [13, 6], + "idx": 0 + }, + { + "pos": [14, 6], + "idx": 45 + }, + { + "pos": [15, 6], + "idx": 16 + }, + { + "pos": [19, 6], + "idx": 14 + }, + { + "pos": [20, 6], + "idx": 44 + }, + { + "pos": [21, 6], + "idx": 2 + }, + { + "pos": [28, 6], + "idx": 21 + }, + { + "pos": [29, 6], + "idx": 22 + }, + { + "pos": [30, 6], + "idx": 22 + }, + { + "pos": [31, 6], + "idx": 22 + }, + { + "pos": [32, 6], + "idx": 22 + }, + { + "pos": [33, 6], + "idx": 13 + }, + { + "pos": [34, 6], + "idx": 8 + }, + { + "pos": [0, 5], + "idx": 8 + }, + { + "pos": [1, 5], + "idx": 9 + }, + { + "pos": [12, 5], + "idx": 0 + }, + { + "pos": [13, 5], + "idx": 45 + }, + { + "pos": [14, 5], + "idx": 16 + }, + { + "pos": [20, 5], + "idx": 14 + }, + { + "pos": [21, 5], + "idx": 44 + }, + { + "pos": [22, 5], + "idx": 2 + }, + { + "pos": [33, 5], + "idx": 7 + }, + { + "pos": [34, 5], + "idx": 8 + }, + { + "pos": [0, 4], + "idx": 8 + }, + { + "pos": [1, 4], + "idx": 9 + }, + { + "pos": [11, 4], + "idx": 0 + }, + { + "pos": [12, 4], + "idx": 45 + }, + { + "pos": [13, 4], + "idx": 16 + }, + { + "pos": [21, 4], + "idx": 14 + }, + { + "pos": [22, 4], + "idx": 44 + }, + { + "pos": [23, 4], + "idx": 2 + }, + { + "pos": [33, 4], + "idx": 7 + }, + { + "pos": [34, 4], + "idx": 8 + }, + { + "pos": [0, 3], + "idx": 8 + }, + { + "pos": [1, 3], + "idx": 9 + }, + { + "pos": [11, 3], + "idx": 14 + }, + { + "pos": [12, 3], + "idx": 16 + }, + { + "pos": [13, 3], + "idx": 10 + }, + { + "pos": [21, 3], + "idx": 10 + }, + { + "pos": [22, 3], + "idx": 14 + }, + { + "pos": [23, 3], + "idx": 16 + }, + { + "pos": [33, 3], + "idx": 7 + }, + { + "pos": [34, 3], + "idx": 8 + }, + { + "pos": [0, 2], + "idx": 4 + }, + { + "pos": [1, 2], + "idx": 37 + }, + { + "pos": [2, 2], + "idx": 33 + }, + { + "pos": [3, 2], + "idx": 22 + }, + { + "pos": [4, 2], + "idx": 22 + }, + { + "pos": [5, 2], + "idx": 22 + }, + { + "pos": [6, 2], + "idx": 22 + }, + { + "pos": [7, 2], + "idx": 22 + }, + { + "pos": [8, 2], + "idx": 22 + }, + { + "pos": [9, 2], + "idx": 22 + }, + { + "pos": [10, 2], + "idx": 33 + }, + { + "pos": [11, 2], + "idx": 22 + }, + { + "pos": [12, 2], + "idx": 33 + }, + { + "pos": [13, 2], + "idx": 22 + }, + { + "pos": [14, 2], + "idx": 22 + }, + { + "pos": [15, 2], + "idx": 22 + }, + { + "pos": [16, 2], + "idx": 22 + }, + { + "pos": [17, 2], + "idx": 33 + }, + { + "pos": [18, 2], + "idx": 22 + }, + { + "pos": [19, 2], + "idx": 22 + }, + { + "pos": [20, 2], + "idx": 22 + }, + { + "pos": [21, 2], + "idx": 22 + }, + { + "pos": [22, 2], + "idx": 22 + }, + { + "pos": [23, 2], + "idx": 22 + }, + { + "pos": [24, 2], + "idx": 22 + }, + { + "pos": [25, 2], + "idx": 33 + }, + { + "pos": [26, 2], + "idx": 22 + }, + { + "pos": [27, 2], + "idx": 22 + }, + { + "pos": [28, 2], + "idx": 22 + }, + { + "pos": [29, 2], + "idx": 22 + }, + { + "pos": [30, 2], + "idx": 22 + }, + { + "pos": [31, 2], + "idx": 22 + }, + { + "pos": [32, 2], + "idx": 33 + }, + { + "pos": [33, 2], + "idx": 38 + }, + { + "pos": [34, 2], + "idx": 5 + }, + { + "pos": [0, 1], + "idx": 11 + }, + { + "pos": [1, 1], + "idx": 12 + }, + { + "pos": [2, 1], + "idx": 3 + }, + { + "pos": [3, 1], + "idx": 8 + }, + { + "pos": [4, 1], + "idx": 8 + }, + { + "pos": [5, 1], + "idx": 20 + }, + { + "pos": [6, 1], + "idx": 13 + }, + { + "pos": [7, 1], + "idx": 8 + }, + { + "pos": [8, 1], + "idx": 8 + }, + { + "pos": [9, 1], + "idx": 8 + }, + { + "pos": [10, 1], + "idx": 3 + }, + { + "pos": [11, 1], + "idx": 8 + }, + { + "pos": [12, 1], + "idx": 27 + }, + { + "pos": [13, 1], + "idx": 8 + }, + { + "pos": [14, 1], + "idx": 8 + }, + { + "pos": [15, 1], + "idx": 8 + }, + { + "pos": [16, 1], + "idx": 8 + }, + { + "pos": [17, 1], + "idx": 3 + }, + { + "pos": [18, 1], + "idx": 8 + }, + { + "pos": [19, 1], + "idx": 8 + }, + { + "pos": [20, 1], + "idx": 8 + }, + { + "pos": [21, 1], + "idx": 8 + }, + { + "pos": [22, 1], + "idx": 8 + }, + { + "pos": [23, 1], + "idx": 8 + }, + { + "pos": [24, 1], + "idx": 8 + }, + { + "pos": [25, 1], + "idx": 3 + }, + { + "pos": [26, 1], + "idx": 8 + }, + { + "pos": [27, 1], + "idx": 8 + }, + { + "pos": [28, 1], + "idx": 8 + }, + { + "pos": [29, 1], + "idx": 27 + }, + { + "pos": [30, 1], + "idx": 8 + }, + { + "pos": [31, 1], + "idx": 8 + }, + { + "pos": [32, 1], + "idx": 3 + }, + { + "pos": [33, 1], + "idx": 11 + }, + { + "pos": [34, 1], + "idx": 12 + }, + { + "pos": [0, 0], + "idx": 8 + }, + { + "pos": [1, 0], + "idx": 8 + }, + { + "pos": [2, 0], + "idx": 10 + }, + { + "pos": [3, 0], + "idx": 8 + }, + { + "pos": [4, 0], + "idx": 8 + }, + { + "pos": [5, 0], + "idx": 8 + }, + { + "pos": [6, 0], + "idx": 8 + }, + { + "pos": [7, 0], + "idx": 8 + }, + { + "pos": [8, 0], + "idx": 8 + }, + { + "pos": [9, 0], + "idx": 8 + }, + { + "pos": [10, 0], + "idx": 10 + }, + { + "pos": [11, 0], + "idx": 8 + }, + { + "pos": [12, 0], + "idx": 6 + }, + { + "pos": [13, 0], + "idx": 8 + }, + { + "pos": [14, 0], + "idx": 8 + }, + { + "pos": [15, 0], + "idx": 8 + }, + { + "pos": [16, 0], + "idx": 8 + }, + { + "pos": [17, 0], + "idx": 10 + }, + { + "pos": [18, 0], + "idx": 8 + }, + { + "pos": [19, 0], + "idx": 8 + }, + { + "pos": [20, 0], + "idx": 20 + }, + { + "pos": [21, 0], + "idx": 13 + }, + { + "pos": [22, 0], + "idx": 8 + }, + { + "pos": [23, 0], + "idx": 8 + }, + { + "pos": [24, 0], + "idx": 8 + }, + { + "pos": [25, 0], + "idx": 10 + }, + { + "pos": [26, 0], + "idx": 8 + }, + { + "pos": [27, 0], + "idx": 8 + }, + { + "pos": [28, 0], + "idx": 8 + }, + { + "pos": [29, 0], + "idx": 6 + }, + { + "pos": [30, 0], + "idx": 8 + }, + { + "pos": [31, 0], + "idx": 8 + }, + { + "pos": [32, 0], + "idx": 10 + }, + { + "pos": [33, 0], + "idx": 8 + }, + { + "pos": [34, 0], + "idx": 8 + } + ], + "tilemap": "../resources/default_tileset.png" + } } - ], - "tilemap": "../resources/default_tileset.png" - } - } - }, - { - "id": "decorations", - "kind": { - "element": { - "elements": [ - { - "pos": [ - 984.5712799999999, - 247.5 - ], - "element": "../elements/item/sniper_rifle/sniper_rifle.element.yaml" - }, - { - "pos": [ - 107.42859999999999, - 225.5 - ], - "element": "../elements/item/blunderbass/blunderbass.element.yaml" - }, - { - "pos": [ - 560, - 271.5 - ], - "element": "../elements/environment/crab/crab.element.yaml" - }, - { - "pos": [ - 480, - 427.5 - ], - "element": "../elements/environment/crab/crab.element.yaml" - }, - { - "pos": [ - 888, - 139.5 - ], - "element": "../elements/environment/fish_school/fish_school.element.yaml" - }, - { - "pos": [ - 88, - 353.5 - ], - "element": "../elements/environment/fish_school/fish_school.element.yaml" - }, - { - "pos": [ - 896, - 121.5 - ], - "element": "../elements/decoration/seaweed/seaweed.element.yaml" - }, - { - "pos": [ - 496, - 121.5 - ], - "element": "../elements/decoration/anemones/anemones.element.yaml" - }, - { - "pos": [ - 1000, - 121.5 - ], - "element": "../elements/decoration/anemones/anemones.element.yaml" - }, - { - "pos": [ - 288, - 121.5 - ], - "element": "../elements/decoration/anemones/anemones.element.yaml" - }, - { - "pos": [ - 112, - 121.5 - ], - "element": "../elements/decoration/seaweed/seaweed.element.yaml" - }, - { - "pos": [ - 736.3635999999999, - 441.5 - ], - "element": "../elements/decoration/seaweed/seaweed.element.yaml" - }, - { - "pos": [ - 96, - 345.5 - ], - "element": "../elements/decoration/seaweed/seaweed.element.yaml" - }, - { - "pos": [ - 328, - 441.5 - ], - "element": "../elements/decoration/anemones/anemones.element.yaml" - }, - { - "pos": [ - 968, - 257.5 - ], - "element": "../elements/decoration/anemones/anemones.element.yaml" + }, + { + "id": "decorations", + "kind": { + "element": { + "elements": [ + { + "pos": [984.5712799999999, 247.5], + "element": "../elements/item/sniper_rifle/sniper_rifle.element.yaml" + }, + { + "pos": [107.42859999999999, 225.5], + "element": "../elements/item/blunderbass/blunderbass.element.yaml" + }, + { + "pos": [560, 271.5], + "element": "../elements/environment/crab/crab.element.yaml" + }, + { + "pos": [480, 427.5], + "element": "../elements/environment/crab/crab.element.yaml" + }, + { + "pos": [888, 139.5], + "element": "../elements/environment/fish_school/fish_school.element.yaml" + }, + { + "pos": [88, 353.5], + "element": "../elements/environment/fish_school/fish_school.element.yaml" + }, + { + "pos": [896, 121.5], + "element": "../elements/decoration/seaweed/seaweed.element.yaml" + }, + { + "pos": [496, 121.5], + "element": "../elements/decoration/anemones/anemones.element.yaml" + }, + { + "pos": [1000, 121.5], + "element": "../elements/decoration/anemones/anemones.element.yaml" + }, + { + "pos": [288, 121.5], + "element": "../elements/decoration/anemones/anemones.element.yaml" + }, + { + "pos": [112, 121.5], + "element": "../elements/decoration/seaweed/seaweed.element.yaml" + }, + { + "pos": [736.3635999999999, 441.5], + "element": "../elements/decoration/seaweed/seaweed.element.yaml" + }, + { + "pos": [96, 345.5], + "element": "../elements/decoration/seaweed/seaweed.element.yaml" + }, + { + "pos": [328, 441.5], + "element": "../elements/decoration/anemones/anemones.element.yaml" + }, + { + "pos": [968, 257.5], + "element": "../elements/decoration/anemones/anemones.element.yaml" + } + ] + } } - ] - } - } - }, - { - "id": "items", - "kind": { - "element": { - "elements": [ - { - "pos": [ - 120.40002000000001, - 129.5 - ], - "element": "../elements/item/crate/crate.element.yaml" - }, - { - "pos": [ - 1024, - 137.5 - ], - "element": "../elements/item/crate/crate.element.yaml" - }, - { - "pos": [ - 111.40014, - 337.5 - ], - "element": "../elements/item/crate/crate.element.yaml" - }, - { - "pos": [ - 1043.9714, - 329.5 - ], - "element": "../elements/item/crate/crate.element.yaml" - }, - { - "pos": [ - 392, - 433.5 - ], - "element": "../elements/item/crate/crate.element.yaml" - }, - { - "pos": [ - 677.2236, - 433.5 - ], - "element": "../elements/item/crate/crate.element.yaml" - }, - { - "pos": [ - 616, - 111.5 - ], - "element": "../elements/item/musket/musket.element.yaml" - }, - { - "pos": [ - 808, - 463.5 - ], - "element": "../elements/item/sword/sword.element.yaml" - }, - { - "pos": [ - 536.1025999999999, - 441.5 - ], - "element": "../elements/item/sword/sword.element.yaml" - }, - { - "pos": [ - 884, - 145.5 - ], - "element": "../elements/item/sword/sword.element.yaml" - }, - { - "pos": [ - 277.7143, - 121.5 - ], - "element": "../elements/item/sword/sword.element.yaml" - }, - { - "pos": [ - 800, - 425.5 - ], - "element": "../elements/item/mines/mines.element.yaml" - }, - { - "pos": [ - 564.9702, - 105.5 - ], - "element": "../elements/environment/sproinger/sproinger.element.yaml" + }, + { + "id": "items", + "kind": { + "element": { + "elements": [ + { + "pos": [120.40002000000001, 129.5], + "element": "../elements/item/crate/crate.element.yaml" + }, + { + "pos": [1024, 137.5], + "element": "../elements/item/crate/crate.element.yaml" + }, + { + "pos": [111.40014, 337.5], + "element": "../elements/item/crate/crate.element.yaml" + }, + { + "pos": [1043.9714, 329.5], + "element": "../elements/item/crate/crate.element.yaml" + }, + { + "pos": [392, 433.5], + "element": "../elements/item/crate/crate.element.yaml" + }, + { + "pos": [677.2236, 433.5], + "element": "../elements/item/crate/crate.element.yaml" + }, + { + "pos": [616, 111.5], + "element": "../elements/item/musket/musket.element.yaml" + }, + { + "pos": [808, 463.5], + "element": "../elements/item/sword/sword.element.yaml" + }, + { + "pos": [536.1025999999999, 441.5], + "element": "../elements/item/sword/sword.element.yaml" + }, + { + "pos": [884, 145.5], + "element": "../elements/item/sword/sword.element.yaml" + }, + { + "pos": [277.7143, 121.5], + "element": "../elements/item/sword/sword.element.yaml" + }, + { + "pos": [800, 425.5], + "element": "../elements/item/mine/mine.element.yaml" + }, + { + "pos": [564.9702, 105.5], + "element": "../elements/environment/sproinger/sproinger.element.yaml" + } + ] + } } - ] - } - } - }, - { - "id": "spawners", - "kind": { - "element": { - "elements": [ - { - "pos": [ - 176.83333, - 120.83334000000002 - ], - "element": "../elements/environment/player_spawner/player_spawner.element.yaml" - }, - { - "pos": [ - 947, - 119.33334000000002 - ], - "element": "../elements/environment/player_spawner/player_spawner.element.yaml" - }, - { - "pos": [ - 137.42857, - 346.71428000000003 - ], - "element": "../elements/environment/player_spawner/player_spawner.element.yaml" - }, - { - "pos": [ - 973.857, - 347.85715 - ], - "element": "../elements/environment/player_spawner/player_spawner.element.yaml" + }, + { + "id": "spawners", + "kind": { + "element": { + "elements": [ + { + "pos": [176.83333, 120.83334000000002], + "element": "../elements/environment/player_spawner/player_spawner.element.yaml" + }, + { + "pos": [947, 119.33334000000002], + "element": "../elements/environment/player_spawner/player_spawner.element.yaml" + }, + { + "pos": [137.42857, 346.71428000000003], + "element": "../elements/environment/player_spawner/player_spawner.element.yaml" + }, + { + "pos": [973.857, 347.85715], + "element": "../elements/environment/player_spawner/player_spawner.element.yaml" + } + ] + } } - ] } - } - } - ], - "background_layers": [ - { - "image": "../resources/background_04.png", - "speed": 0, - "tile_size": [ - 896, - 480 - ], - "z": -110, - "position": [ - 0, - 360 - ], - "scale": 2 - }, - { - "image": "../resources/background_03.png", - "speed": 0.74, - "tile_size": [ - 896, - 480 - ], - "z": -109, - "position": [ - 0, - 360 - ], - "scale": 2 - }, - { - "image": "../resources/background_02.png", - "speed": 0.82, - "tile_size": [ - 896, - 480 - ], - "z": -108, - "position": [ - 0, - 360 - ], - "scale": 2 - }, - { - "image": "../resources/background_01.png", - "speed": 100, - "tile_size": [ - 896, - 480 - ], - "z": -107, - "position": [ - 0, - 360 - ], - "scale": 2 - } - ] -} \ No newline at end of file + ], + "background_layers": [ + { + "image": "../resources/background_04.png", + "speed": 0, + "tile_size": [896, 480], + "z": -110, + "position": [0, 360], + "scale": 2 + }, + { + "image": "../resources/background_03.png", + "speed": 0.74, + "tile_size": [896, 480], + "z": -109, + "position": [0, 360], + "scale": 2 + }, + { + "image": "../resources/background_02.png", + "speed": 0.82, + "tile_size": [896, 480], + "z": -108, + "position": [0, 360], + "scale": 2 + }, + { + "image": "../resources/background_01.png", + "speed": 100, + "tile_size": [896, 480], + "z": -107, + "position": [0, 360], + "scale": 2 + } + ] +} diff --git a/assets/map/levels/lev05.map.json b/assets/map/levels/lev05.map.json index f9d02e4f59..6bba00f467 100644 --- a/assets/map/levels/lev05.map.json +++ b/assets/map/levels/lev05.map.json @@ -935,7 +935,7 @@ }, { "pos": [480.72724000000005, 169.5], - "element": "../elements/item/mines/mines.element.yaml" + "element": "../elements/item/mine/mine.element.yaml" }, { "pos": [686.0571199999999, 329.5], diff --git a/assets/map/levels/lev06.map.json b/assets/map/levels/lev06.map.json index 5d1439b354..5fe66e1dc7 100644 --- a/assets/map/levels/lev06.map.json +++ b/assets/map/levels/lev06.map.json @@ -1,1737 +1,1023 @@ { - "name": "lev06", - "background_color": "7EA8A6", - "grid_size": [ - 25, - 20 - ], - "tile_size": [ - 32, - 32 - ], - "layers": [ - { - "id": "main layer", - "kind": { - "tile": { - "has_collision": true, - "tiles": [ - { - "pos": [ - 0, - 17 - ], - "idx": 22 - }, - { - "pos": [ - 1, - 17 - ], - "idx": 22 - }, - { - "pos": [ - 2, - 17 - ], - "idx": 22 - }, - { - "pos": [ - 3, - 17 - ], - "idx": 22 - }, - { - "pos": [ - 4, - 17 - ], - "idx": 34 - }, - { - "pos": [ - 10, - 17 - ], - "idx": 32 - }, - { - "pos": [ - 11, - 17 - ], - "idx": 34 - }, - { - "pos": [ - 12, - 17 - ], - "idx": 1 - }, - { - "pos": [ - 13, - 17 - ], - "idx": 32 - }, - { - "pos": [ - 14, - 17 - ], - "idx": 34 - }, - { - "pos": [ - 20, - 17 - ], - "idx": 32 - }, - { - "pos": [ - 21, - 17 - ], - "idx": 22 - }, - { - "pos": [ - 22, - 17 - ], - "idx": 22 - }, - { - "pos": [ - 23, - 17 - ], - "idx": 22 - }, - { - "pos": [ - 24, - 17 - ], - "idx": 22 - }, - { - "pos": [ - 0, - 16 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 16 - ], - "idx": 8 - }, - { - "pos": [ - 2, - 16 - ], - "idx": 8 - }, - { - "pos": [ - 3, - 16 - ], - "idx": 8 - }, - { - "pos": [ - 4, - 16 - ], - "idx": 10 - }, - { - "pos": [ - 5, - 16 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 6, - 16 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 7, - 16 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 8, - 16 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 9, - 16 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 10, - 16 - ], - "idx": 46 - }, - { - "pos": [ - 11, - 16 - ], - "idx": 48 - }, - { - "pos": [ - 12, - 16 - ], - "idx": 15 - }, - { - "pos": [ - 13, - 16 - ], - "idx": 46 - }, - { - "pos": [ - 14, - 16 - ], - "idx": 48 - }, - { - "pos": [ - 15, - 16 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 16, - 16 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 17, - 16 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 18, - 16 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 19, - 16 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 20, - 16 - ], - "idx": 10 - }, - { - "pos": [ - 21, - 16 - ], - "idx": 8 - }, - { - "pos": [ - 22, - 16 - ], - "idx": 8 - }, - { - "pos": [ - 23, - 16 - ], - "idx": 8 - }, - { - "pos": [ - 24, - 16 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 15 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 15 - ], - "idx": 0 - }, - { - "pos": [ - 2, - 15 - ], - "idx": 2 - }, - { - "pos": [ - 3, - 15 - ], - "idx": 8 - }, - { - "pos": [ - 4, - 15 - ], - "idx": 10 - }, - { - "pos": [ - 20, - 15 - ], - "idx": 10 - }, - { - "pos": [ - 21, - 15 - ], - "idx": 8 - }, - { - "pos": [ - 22, - 15 - ], - "idx": 8 - }, - { - "pos": [ - 23, - 15 - ], - "idx": 0 - }, - { - "pos": [ - 24, - 15 - ], - "idx": 2 - }, - { - "pos": [ - 0, - 14 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 14 - ], - "idx": 14 - }, - { - "pos": [ - 2, - 14 - ], - "idx": 16 - }, - { - "pos": [ - 3, - 14 - ], - "idx": 8 - }, - { - "pos": [ - 4, - 14 - ], - "idx": 10 - }, - { - "pos": [ - 20, - 14 - ], - "idx": 10 - }, - { - "pos": [ - 21, - 14 - ], - "idx": 8 - }, - { - "pos": [ - 22, - 14 - ], - "idx": 8 - }, - { - "pos": [ - 23, - 14 - ], - "idx": 14 - }, - { - "pos": [ - 24, - 14 - ], - "idx": 16 - }, - { - "pos": [ - 0, - 13 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 13 - ], - "idx": 8 - }, - { - "pos": [ - 2, - 13 - ], - "idx": 8 - }, - { - "pos": [ - 3, - 13 - ], - "idx": 8 - }, - { - "pos": [ - 4, - 13 - ], - "idx": 10 - }, - { - "pos": [ - 20, - 13 - ], - "idx": 10 - }, - { - "pos": [ - 21, - 13 - ], - "idx": 0 - }, - { - "pos": [ - 22, - 13 - ], - "idx": 2 - }, - { - "pos": [ - 23, - 13 - ], - "idx": 8 - }, - { - "pos": [ - 24, - 13 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 12 - ], - "idx": 0 - }, - { - "pos": [ - 1, - 12 - ], - "idx": 2 - }, - { - "pos": [ - 2, - 12 - ], - "idx": 8 - }, - { - "pos": [ - 3, - 12 - ], - "idx": 8 - }, - { - "pos": [ - 4, - 12 - ], - "idx": 10 - }, - { - "pos": [ - 5, - 12 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 6, - 12 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 7, - 12 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 8, - 12 - ], - "idx": 60, - "jump_through": true - }, - { - "pos": [ - 16, - 12 - ], - "idx": 56, - "jump_through": true - }, - { - "pos": [ - 17, - 12 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 18, - 12 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 19, - 12 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 20, - 12 - ], - "idx": 10 - }, - { - "pos": [ - 21, - 12 - ], - "idx": 14 - }, - { - "pos": [ - 22, - 12 - ], - "idx": 16 - }, - { - "pos": [ - 23, - 12 - ], - "idx": 8 - }, - { - "pos": [ - 24, - 12 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 11 - ], - "idx": 14 - }, - { - "pos": [ - 1, - 11 - ], - "idx": 16 - }, - { - "pos": [ - 2, - 11 - ], - "idx": 8 - }, - { - "pos": [ - 3, - 11 - ], - "idx": 8 - }, - { - "pos": [ - 4, - 11 - ], - "idx": 10 - }, - { - "pos": [ - 20, - 11 - ], - "idx": 10 - }, - { - "pos": [ - 21, - 11 - ], - "idx": 8 - }, - { - "pos": [ - 22, - 11 - ], - "idx": 8 - }, - { - "pos": [ - 23, - 11 - ], - "idx": 8 - }, - { - "pos": [ - 24, - 11 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 10 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 10 - ], - "idx": 8 - }, - { - "pos": [ - 2, - 10 - ], - "idx": 0 - }, - { - "pos": [ - 3, - 10 - ], - "idx": 2 - }, - { - "pos": [ - 4, - 10 - ], - "idx": 10 - }, - { - "pos": [ - 11, - 10 - ], - "idx": 56, - "jump_through": true - }, - { - "pos": [ - 12, - 10 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 13, - 10 - ], - "idx": 60, - "jump_through": true - }, - { - "pos": [ - 20, - 10 - ], - "idx": 10 - }, - { - "pos": [ - 21, - 10 - ], - "idx": 8 - }, - { - "pos": [ - 22, - 10 - ], - "idx": 0 - }, - { - "pos": [ - 23, - 10 - ], - "idx": 2 - }, - { - "pos": [ - 24, - 10 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 9 - ], - "idx": 8 - }, - { - "pos": [ - 1, - 9 - ], - "idx": 8 - }, - { - "pos": [ - 2, - 9 - ], - "idx": 14 - }, - { - "pos": [ - 3, - 9 - ], - "idx": 16 - }, - { - "pos": [ - 4, - 9 - ], - "idx": 10 - }, - { - "pos": [ - 20, - 9 - ], - "idx": 10 - }, - { - "pos": [ - 21, - 9 - ], - "idx": 8 - }, - { - "pos": [ - 22, - 9 - ], - "idx": 14 - }, - { - "pos": [ - 23, - 9 - ], - "idx": 16 - }, - { - "pos": [ - 24, - 9 - ], - "idx": 8 - }, - { - "pos": [ - 0, - 8 - ], - "idx": 22 - }, - { - "pos": [ - 1, - 8 - ], - "idx": 22 - }, - { - "pos": [ - 2, - 8 - ], - "idx": 22 - }, - { - "pos": [ - 3, - 8 - ], - "idx": 22 - }, - { - "pos": [ - 4, - 8 - ], - "idx": 48 - }, - { - "pos": [ - 5, - 8 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 6, - 8 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 7, - 8 - ], - "idx": 60, - "jump_through": true - }, - { - "pos": [ - 17, - 8 - ], - "idx": 56, - "jump_through": true - }, - { - "pos": [ - 18, - 8 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 19, - 8 - ], - "idx": 58, - "jump_through": true - }, - { - "pos": [ - 20, - 8 - ], - "idx": 46 - }, - { - "pos": [ - 21, - 8 - ], - "idx": 22 - }, - { - "pos": [ - 22, - 8 - ], - "idx": 22 - }, - { - "pos": [ - 23, - 8 - ], - "idx": 22 - }, - { - "pos": [ - 24, - 8 - ], - "idx": 22 - }, - { - "pos": [ - 9, - 6 - ], - "idx": 56, - "jump_through": true - }, - { - "pos": [ - 10, - 6 - ], - "idx": 60, - "jump_through": true - }, - { - "pos": [ - 14, - 6 - ], - "idx": 56, - "jump_through": true - }, - { - "pos": [ - 15, - 6 - ], - "idx": 60, - "jump_through": true - }, - { - "pos": [ - 1, - 4 - ], - "idx": 0 - }, - { - "pos": [ - 2, - 4 - ], - "idx": 1 - }, - { - "pos": [ - 3, - 4 - ], - "idx": 1 - }, - { - "pos": [ - 4, - 4 - ], - "idx": 1 - }, - { - "pos": [ - 5, - 4 - ], - "idx": 1 - }, - { - "pos": [ - 6, - 4 - ], - "idx": 2 - }, - { - "pos": [ - 18, - 4 - ], - "idx": 0 - }, - { - "pos": [ - 19, - 4 - ], - "idx": 1 - }, - { - "pos": [ - 20, - 4 - ], - "idx": 1 - }, - { - "pos": [ - 21, - 4 - ], - "idx": 1 - }, - { - "pos": [ - 22, - 4 - ], - "idx": 1 - }, - { - "pos": [ - 23, - 4 - ], - "idx": 2 - }, - { - "pos": [ - 1, - 3 - ], - "idx": 7 - }, - { - "pos": [ - 2, - 3 - ], - "idx": 8 - }, - { - "pos": [ - 3, - 3 - ], - "idx": 8 - }, - { - "pos": [ - 4, - 3 - ], - "idx": 8 - }, - { - "pos": [ - 5, - 3 - ], - "idx": 8 - }, - { - "pos": [ - 6, - 3 - ], - "idx": 9 - }, - { - "pos": [ - 18, - 3 - ], - "idx": 7 - }, - { - "pos": [ - 19, - 3 - ], - "idx": 8 - }, - { - "pos": [ - 20, - 3 - ], - "idx": 8 - }, - { - "pos": [ - 21, - 3 - ], - "idx": 8 - }, - { - "pos": [ - 22, - 3 - ], - "idx": 8 - }, - { - "pos": [ - 23, - 3 - ], - "idx": 9 - }, - { - "pos": [ - 1, - 2 - ], - "idx": 7 - }, - { - "pos": [ - 2, - 2 - ], - "idx": 8 - }, - { - "pos": [ - 3, - 2 - ], - "idx": 4 - }, - { - "pos": [ - 4, - 2 - ], - "idx": 15 - }, - { - "pos": [ - 5, - 2 - ], - "idx": 5 - }, - { - "pos": [ - 6, - 2 - ], - "idx": 9 - }, - { - "pos": [ - 18, - 2 - ], - "idx": 7 - }, - { - "pos": [ - 19, - 2 - ], - "idx": 4 - }, - { - "pos": [ - 20, - 2 - ], - "idx": 15 - }, - { - "pos": [ - 21, - 2 - ], - "idx": 5 - }, - { - "pos": [ - 22, - 2 - ], - "idx": 8 - }, - { - "pos": [ - 23, - 2 - ], - "idx": 9 - }, - { - "pos": [ - 1, - 1 - ], - "idx": 7 - }, - { - "pos": [ - 2, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 3, - 1 - ], - "idx": 9 - }, - { - "pos": [ - 5, - 1 - ], - "idx": 7 - }, - { - "pos": [ - 6, - 1 - ], - "idx": 9 - }, - { - "pos": [ - 18, - 1 - ], - "idx": 7 - }, - { - "pos": [ - 19, - 1 - ], - "idx": 9 - }, - { - "pos": [ - 21, - 1 - ], - "idx": 7 - }, - { - "pos": [ - 22, - 1 - ], - "idx": 8 - }, - { - "pos": [ - 23, - 1 - ], - "idx": 9 - }, - { - "pos": [ - 1, - 0 - ], - "idx": 7 - }, - { - "pos": [ - 2, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 3, - 0 - ], - "idx": 9 - }, - { - "pos": [ - 5, - 0 - ], - "idx": 7 - }, - { - "pos": [ - 6, - 0 - ], - "idx": 9 - }, - { - "pos": [ - 11, - 0 - ], - "idx": 0 - }, - { - "pos": [ - 12, - 0 - ], - "idx": 1 - }, - { - "pos": [ - 13, - 0 - ], - "idx": 2 - }, - { - "pos": [ - 18, - 0 - ], - "idx": 7 - }, - { - "pos": [ - 19, - 0 - ], - "idx": 9 - }, - { - "pos": [ - 21, - 0 - ], - "idx": 7 - }, - { - "pos": [ - 22, - 0 - ], - "idx": 8 - }, - { - "pos": [ - 23, - 0 - ], - "idx": 9 + "name": "lev06", + "background_color": "7EA8A6", + "grid_size": [25, 20], + "tile_size": [32, 32], + "layers": [ + { + "id": "main layer", + "kind": { + "tile": { + "has_collision": true, + "tiles": [ + { + "pos": [0, 17], + "idx": 22 + }, + { + "pos": [1, 17], + "idx": 22 + }, + { + "pos": [2, 17], + "idx": 22 + }, + { + "pos": [3, 17], + "idx": 22 + }, + { + "pos": [4, 17], + "idx": 34 + }, + { + "pos": [10, 17], + "idx": 32 + }, + { + "pos": [11, 17], + "idx": 34 + }, + { + "pos": [12, 17], + "idx": 1 + }, + { + "pos": [13, 17], + "idx": 32 + }, + { + "pos": [14, 17], + "idx": 34 + }, + { + "pos": [20, 17], + "idx": 32 + }, + { + "pos": [21, 17], + "idx": 22 + }, + { + "pos": [22, 17], + "idx": 22 + }, + { + "pos": [23, 17], + "idx": 22 + }, + { + "pos": [24, 17], + "idx": 22 + }, + { + "pos": [0, 16], + "idx": 8 + }, + { + "pos": [1, 16], + "idx": 8 + }, + { + "pos": [2, 16], + "idx": 8 + }, + { + "pos": [3, 16], + "idx": 8 + }, + { + "pos": [4, 16], + "idx": 10 + }, + { + "pos": [5, 16], + "idx": 58, + "jump_through": true + }, + { + "pos": [6, 16], + "idx": 58, + "jump_through": true + }, + { + "pos": [7, 16], + "idx": 58, + "jump_through": true + }, + { + "pos": [8, 16], + "idx": 58, + "jump_through": true + }, + { + "pos": [9, 16], + "idx": 58, + "jump_through": true + }, + { + "pos": [10, 16], + "idx": 46 + }, + { + "pos": [11, 16], + "idx": 48 + }, + { + "pos": [12, 16], + "idx": 15 + }, + { + "pos": [13, 16], + "idx": 46 + }, + { + "pos": [14, 16], + "idx": 48 + }, + { + "pos": [15, 16], + "idx": 58, + "jump_through": true + }, + { + "pos": [16, 16], + "idx": 58, + "jump_through": true + }, + { + "pos": [17, 16], + "idx": 58, + "jump_through": true + }, + { + "pos": [18, 16], + "idx": 58, + "jump_through": true + }, + { + "pos": [19, 16], + "idx": 58, + "jump_through": true + }, + { + "pos": [20, 16], + "idx": 10 + }, + { + "pos": [21, 16], + "idx": 8 + }, + { + "pos": [22, 16], + "idx": 8 + }, + { + "pos": [23, 16], + "idx": 8 + }, + { + "pos": [24, 16], + "idx": 8 + }, + { + "pos": [0, 15], + "idx": 8 + }, + { + "pos": [1, 15], + "idx": 0 + }, + { + "pos": [2, 15], + "idx": 2 + }, + { + "pos": [3, 15], + "idx": 8 + }, + { + "pos": [4, 15], + "idx": 10 + }, + { + "pos": [20, 15], + "idx": 10 + }, + { + "pos": [21, 15], + "idx": 8 + }, + { + "pos": [22, 15], + "idx": 8 + }, + { + "pos": [23, 15], + "idx": 0 + }, + { + "pos": [24, 15], + "idx": 2 + }, + { + "pos": [0, 14], + "idx": 8 + }, + { + "pos": [1, 14], + "idx": 14 + }, + { + "pos": [2, 14], + "idx": 16 + }, + { + "pos": [3, 14], + "idx": 8 + }, + { + "pos": [4, 14], + "idx": 10 + }, + { + "pos": [20, 14], + "idx": 10 + }, + { + "pos": [21, 14], + "idx": 8 + }, + { + "pos": [22, 14], + "idx": 8 + }, + { + "pos": [23, 14], + "idx": 14 + }, + { + "pos": [24, 14], + "idx": 16 + }, + { + "pos": [0, 13], + "idx": 8 + }, + { + "pos": [1, 13], + "idx": 8 + }, + { + "pos": [2, 13], + "idx": 8 + }, + { + "pos": [3, 13], + "idx": 8 + }, + { + "pos": [4, 13], + "idx": 10 + }, + { + "pos": [20, 13], + "idx": 10 + }, + { + "pos": [21, 13], + "idx": 0 + }, + { + "pos": [22, 13], + "idx": 2 + }, + { + "pos": [23, 13], + "idx": 8 + }, + { + "pos": [24, 13], + "idx": 8 + }, + { + "pos": [0, 12], + "idx": 0 + }, + { + "pos": [1, 12], + "idx": 2 + }, + { + "pos": [2, 12], + "idx": 8 + }, + { + "pos": [3, 12], + "idx": 8 + }, + { + "pos": [4, 12], + "idx": 10 + }, + { + "pos": [5, 12], + "idx": 58, + "jump_through": true + }, + { + "pos": [6, 12], + "idx": 58, + "jump_through": true + }, + { + "pos": [7, 12], + "idx": 58, + "jump_through": true + }, + { + "pos": [8, 12], + "idx": 60, + "jump_through": true + }, + { + "pos": [16, 12], + "idx": 56, + "jump_through": true + }, + { + "pos": [17, 12], + "idx": 58, + "jump_through": true + }, + { + "pos": [18, 12], + "idx": 58, + "jump_through": true + }, + { + "pos": [19, 12], + "idx": 58, + "jump_through": true + }, + { + "pos": [20, 12], + "idx": 10 + }, + { + "pos": [21, 12], + "idx": 14 + }, + { + "pos": [22, 12], + "idx": 16 + }, + { + "pos": [23, 12], + "idx": 8 + }, + { + "pos": [24, 12], + "idx": 8 + }, + { + "pos": [0, 11], + "idx": 14 + }, + { + "pos": [1, 11], + "idx": 16 + }, + { + "pos": [2, 11], + "idx": 8 + }, + { + "pos": [3, 11], + "idx": 8 + }, + { + "pos": [4, 11], + "idx": 10 + }, + { + "pos": [20, 11], + "idx": 10 + }, + { + "pos": [21, 11], + "idx": 8 + }, + { + "pos": [22, 11], + "idx": 8 + }, + { + "pos": [23, 11], + "idx": 8 + }, + { + "pos": [24, 11], + "idx": 8 + }, + { + "pos": [0, 10], + "idx": 8 + }, + { + "pos": [1, 10], + "idx": 8 + }, + { + "pos": [2, 10], + "idx": 0 + }, + { + "pos": [3, 10], + "idx": 2 + }, + { + "pos": [4, 10], + "idx": 10 + }, + { + "pos": [11, 10], + "idx": 56, + "jump_through": true + }, + { + "pos": [12, 10], + "idx": 58, + "jump_through": true + }, + { + "pos": [13, 10], + "idx": 60, + "jump_through": true + }, + { + "pos": [20, 10], + "idx": 10 + }, + { + "pos": [21, 10], + "idx": 8 + }, + { + "pos": [22, 10], + "idx": 0 + }, + { + "pos": [23, 10], + "idx": 2 + }, + { + "pos": [24, 10], + "idx": 8 + }, + { + "pos": [0, 9], + "idx": 8 + }, + { + "pos": [1, 9], + "idx": 8 + }, + { + "pos": [2, 9], + "idx": 14 + }, + { + "pos": [3, 9], + "idx": 16 + }, + { + "pos": [4, 9], + "idx": 10 + }, + { + "pos": [20, 9], + "idx": 10 + }, + { + "pos": [21, 9], + "idx": 8 + }, + { + "pos": [22, 9], + "idx": 14 + }, + { + "pos": [23, 9], + "idx": 16 + }, + { + "pos": [24, 9], + "idx": 8 + }, + { + "pos": [0, 8], + "idx": 22 + }, + { + "pos": [1, 8], + "idx": 22 + }, + { + "pos": [2, 8], + "idx": 22 + }, + { + "pos": [3, 8], + "idx": 22 + }, + { + "pos": [4, 8], + "idx": 48 + }, + { + "pos": [5, 8], + "idx": 58, + "jump_through": true + }, + { + "pos": [6, 8], + "idx": 58, + "jump_through": true + }, + { + "pos": [7, 8], + "idx": 60, + "jump_through": true + }, + { + "pos": [17, 8], + "idx": 56, + "jump_through": true + }, + { + "pos": [18, 8], + "idx": 58, + "jump_through": true + }, + { + "pos": [19, 8], + "idx": 58, + "jump_through": true + }, + { + "pos": [20, 8], + "idx": 46 + }, + { + "pos": [21, 8], + "idx": 22 + }, + { + "pos": [22, 8], + "idx": 22 + }, + { + "pos": [23, 8], + "idx": 22 + }, + { + "pos": [24, 8], + "idx": 22 + }, + { + "pos": [9, 6], + "idx": 56, + "jump_through": true + }, + { + "pos": [10, 6], + "idx": 60, + "jump_through": true + }, + { + "pos": [14, 6], + "idx": 56, + "jump_through": true + }, + { + "pos": [15, 6], + "idx": 60, + "jump_through": true + }, + { + "pos": [1, 4], + "idx": 0 + }, + { + "pos": [2, 4], + "idx": 1 + }, + { + "pos": [3, 4], + "idx": 1 + }, + { + "pos": [4, 4], + "idx": 1 + }, + { + "pos": [5, 4], + "idx": 1 + }, + { + "pos": [6, 4], + "idx": 2 + }, + { + "pos": [18, 4], + "idx": 0 + }, + { + "pos": [19, 4], + "idx": 1 + }, + { + "pos": [20, 4], + "idx": 1 + }, + { + "pos": [21, 4], + "idx": 1 + }, + { + "pos": [22, 4], + "idx": 1 + }, + { + "pos": [23, 4], + "idx": 2 + }, + { + "pos": [1, 3], + "idx": 7 + }, + { + "pos": [2, 3], + "idx": 8 + }, + { + "pos": [3, 3], + "idx": 8 + }, + { + "pos": [4, 3], + "idx": 8 + }, + { + "pos": [5, 3], + "idx": 8 + }, + { + "pos": [6, 3], + "idx": 9 + }, + { + "pos": [18, 3], + "idx": 7 + }, + { + "pos": [19, 3], + "idx": 8 + }, + { + "pos": [20, 3], + "idx": 8 + }, + { + "pos": [21, 3], + "idx": 8 + }, + { + "pos": [22, 3], + "idx": 8 + }, + { + "pos": [23, 3], + "idx": 9 + }, + { + "pos": [1, 2], + "idx": 7 + }, + { + "pos": [2, 2], + "idx": 8 + }, + { + "pos": [3, 2], + "idx": 4 + }, + { + "pos": [4, 2], + "idx": 15 + }, + { + "pos": [5, 2], + "idx": 5 + }, + { + "pos": [6, 2], + "idx": 9 + }, + { + "pos": [18, 2], + "idx": 7 + }, + { + "pos": [19, 2], + "idx": 4 + }, + { + "pos": [20, 2], + "idx": 15 + }, + { + "pos": [21, 2], + "idx": 5 + }, + { + "pos": [22, 2], + "idx": 8 + }, + { + "pos": [23, 2], + "idx": 9 + }, + { + "pos": [1, 1], + "idx": 7 + }, + { + "pos": [2, 1], + "idx": 8 + }, + { + "pos": [3, 1], + "idx": 9 + }, + { + "pos": [5, 1], + "idx": 7 + }, + { + "pos": [6, 1], + "idx": 9 + }, + { + "pos": [18, 1], + "idx": 7 + }, + { + "pos": [19, 1], + "idx": 9 + }, + { + "pos": [21, 1], + "idx": 7 + }, + { + "pos": [22, 1], + "idx": 8 + }, + { + "pos": [23, 1], + "idx": 9 + }, + { + "pos": [1, 0], + "idx": 7 + }, + { + "pos": [2, 0], + "idx": 8 + }, + { + "pos": [3, 0], + "idx": 9 + }, + { + "pos": [5, 0], + "idx": 7 + }, + { + "pos": [6, 0], + "idx": 9 + }, + { + "pos": [11, 0], + "idx": 0 + }, + { + "pos": [12, 0], + "idx": 1 + }, + { + "pos": [13, 0], + "idx": 2 + }, + { + "pos": [18, 0], + "idx": 7 + }, + { + "pos": [19, 0], + "idx": 9 + }, + { + "pos": [21, 0], + "idx": 7 + }, + { + "pos": [22, 0], + "idx": 8 + }, + { + "pos": [23, 0], + "idx": 9 + } + ], + "tilemap": "../resources/default_tileset.png" + } } - ], - "tilemap": "../resources/default_tileset.png" - } - } - }, - { - "id": "decorations", - "kind": { - "element": { - "elements": [ - { - "pos": [ - 743.6666, - 377.5 - ], - "element": "../elements/decoration/anemones/anemones.element.yaml" - }, - { - "pos": [ - 585.2456, - 441.5 - ], - "element": "../elements/decoration/anemones/anemones.element.yaml" - }, - { - "pos": [ - 400, - 377.5 - ], - "element": "../elements/decoration/seaweed/seaweed.element.yaml" - }, - { - "pos": [ - 96, - 377.5 - ], - "element": "../elements/decoration/seaweed/seaweed.element.yaml" - }, - { - "pos": [ - 396, - 601.5 - ], - "element": "../elements/decoration/anemones/anemones.element.yaml" - }, - { - "pos": [ - 200, - 569.5 - ], - "element": "../elements/decoration/seaweed/seaweed.element.yaml" - }, - { - "pos": [ - 677.3334, - 185.5 - ], - "element": "../elements/decoration/seaweed/seaweed.element.yaml" - }, - { - "pos": [ - 97.333328, - 185.5 - ], - "element": "../elements/decoration/anemones/anemones.element.yaml" + }, + { + "id": "decorations", + "kind": { + "element": { + "elements": [ + { + "pos": [743.6666, 377.5], + "element": "../elements/decoration/anemones/anemones.element.yaml" + }, + { + "pos": [585.2456, 441.5], + "element": "../elements/decoration/anemones/anemones.element.yaml" + }, + { + "pos": [400, 377.5], + "element": "../elements/decoration/seaweed/seaweed.element.yaml" + }, + { + "pos": [96, 377.5], + "element": "../elements/decoration/seaweed/seaweed.element.yaml" + }, + { + "pos": [396, 601.5], + "element": "../elements/decoration/anemones/anemones.element.yaml" + }, + { + "pos": [200, 569.5], + "element": "../elements/decoration/seaweed/seaweed.element.yaml" + }, + { + "pos": [677.3334, 185.5], + "element": "../elements/decoration/seaweed/seaweed.element.yaml" + }, + { + "pos": [97.333328, 185.5], + "element": "../elements/decoration/anemones/anemones.element.yaml" + } + ] + } } - ] - } - } - }, - { - "id": "items", - "kind": { - "element": { - "elements": [ - { - "pos": [ - 760, - 585.5 - ], - "element": "../elements/item/crate/crate.element.yaml" - }, - { - "pos": [ - 221.48572000000001, - 319.5 - ], - "element": "../elements/item/kick_bomb/kick_bomb.element.yaml" - }, - { - "pos": [ - 179.0589, - 425.5 - ], - "element": "../elements/environment/sproinger/sproinger.element.yaml" - }, - { - "pos": [ - 630.4404, - 425.5 - ], - "element": "../elements/environment/sproinger/sproinger.element.yaml" - }, - { - "pos": [ - 599.3334, - 297.5 - ], - "element": "../elements/item/musket/musket.element.yaml" - }, - { - "pos": [ - 403, - 395.5 - ], - "element": "../elements/environment/fish_school/fish_school.element.yaml" - }, - { - "pos": [ - 192, - 587.5 - ], - "element": "../elements/environment/fish_school/fish_school.element.yaml" - }, - { - "pos": [ - 664, - 203.5 - ], - "element": "../elements/environment/fish_school/fish_school.element.yaml" - }, - { - "pos": [ - 282.00012000000004, - 559.5 - ], - "element": "../elements/environment/crab/crab.element.yaml" - }, - { - "pos": [ - 562.7273, - 553.5 - ], - "element": "../elements/environment/crab/crab.element.yaml" - }, - { - "pos": [ - 251.57886000000002, - 431.5 - ], - "element": "../elements/item/musket/musket.element.yaml" - }, - { - "pos": [ - 56, - 593.5 - ], - "element": "../elements/item/sword/sword.element.yaml" - }, - { - "pos": [ - 708, - 177.5 - ], - "element": "../elements/item/sword/sword.element.yaml" - }, - { - "pos": [ - 152.00006000000002, - 177.5 - ], - "element": "../elements/item/sword/sword.element.yaml" - }, - { - "pos": [ - 477.3334, - 585.5 - ], - "element": "../elements/item/mines/mines.element.yaml" - }, - { - "pos": [ - 401.64703999999995, - 41.5 - ], - "element": "../elements/environment/sproinger/sproinger.element.yaml" + }, + { + "id": "items", + "kind": { + "element": { + "elements": [ + { + "pos": [760, 585.5], + "element": "../elements/item/crate/crate.element.yaml" + }, + { + "pos": [221.48572000000001, 319.5], + "element": "../elements/item/kick_bomb/kick_bomb.element.yaml" + }, + { + "pos": [179.0589, 425.5], + "element": "../elements/environment/sproinger/sproinger.element.yaml" + }, + { + "pos": [630.4404, 425.5], + "element": "../elements/environment/sproinger/sproinger.element.yaml" + }, + { + "pos": [599.3334, 297.5], + "element": "../elements/item/musket/musket.element.yaml" + }, + { + "pos": [403, 395.5], + "element": "../elements/environment/fish_school/fish_school.element.yaml" + }, + { + "pos": [192, 587.5], + "element": "../elements/environment/fish_school/fish_school.element.yaml" + }, + { + "pos": [664, 203.5], + "element": "../elements/environment/fish_school/fish_school.element.yaml" + }, + { + "pos": [282.00012000000004, 559.5], + "element": "../elements/environment/crab/crab.element.yaml" + }, + { + "pos": [562.7273, 553.5], + "element": "../elements/environment/crab/crab.element.yaml" + }, + { + "pos": [251.57886000000002, 431.5], + "element": "../elements/item/musket/musket.element.yaml" + }, + { + "pos": [56, 593.5], + "element": "../elements/item/sword/sword.element.yaml" + }, + { + "pos": [708, 177.5], + "element": "../elements/item/sword/sword.element.yaml" + }, + { + "pos": [152.00006000000002, 177.5], + "element": "../elements/item/sword/sword.element.yaml" + }, + { + "pos": [477.3334, 585.5], + "element": "../elements/item/mine/mine.element.yaml" + }, + { + "pos": [401.64703999999995, 41.5], + "element": "../elements/environment/sproinger/sproinger.element.yaml" + } + ] + } } - ] - } - } - }, - { - "id": "spawners", - "kind": { - "element": { - "elements": [ - { - "pos": [ - 161.33333, - 186 - ], - "element": "../elements/environment/player_spawner/player_spawner.element.yaml" - }, - { - "pos": [ - 641.3333, - 184 - ], - "element": "../elements/environment/player_spawner/player_spawner.element.yaml" - }, - { - "pos": [ - 671.6667, - 604.3333333 - ], - "element": "../elements/environment/player_spawner/player_spawner.element.yaml" - }, - { - "pos": [ - 129.33333, - 606 - ], - "element": "../elements/environment/player_spawner/player_spawner.element.yaml" + }, + { + "id": "spawners", + "kind": { + "element": { + "elements": [ + { + "pos": [161.33333, 186], + "element": "../elements/environment/player_spawner/player_spawner.element.yaml" + }, + { + "pos": [641.3333, 184], + "element": "../elements/environment/player_spawner/player_spawner.element.yaml" + }, + { + "pos": [671.6667, 604.3333333], + "element": "../elements/environment/player_spawner/player_spawner.element.yaml" + }, + { + "pos": [129.33333, 606], + "element": "../elements/environment/player_spawner/player_spawner.element.yaml" + } + ] + } } - ] } - } - } - ], - "background_layers": [ - { - "image": "../resources/background_04.png", - "speed": 0, - "tile_size": [ - 896, - 480 - ], - "z": -110, - "position": [ - 0, - 360 - ], - "scale": 2 - }, - { - "image": "../resources/background_03.png", - "speed": 0.74, - "tile_size": [ - 896, - 480 - ], - "z": -109, - "position": [ - 0, - 360 - ], - "scale": 2 - }, - { - "image": "../resources/background_02.png", - "speed": 0.82, - "tile_size": [ - 896, - 480 - ], - "z": -108, - "position": [ - 0, - 360 - ], - "scale": 2 - }, - { - "image": "../resources/background_01.png", - "speed": 100, - "tile_size": [ - 896, - 480 - ], - "z": -107, - "position": [ - 0, - 360 - ], - "scale": 2 - } - ] -} \ No newline at end of file + ], + "background_layers": [ + { + "image": "../resources/background_04.png", + "speed": 0, + "tile_size": [896, 480], + "z": -110, + "position": [0, 360], + "scale": 2 + }, + { + "image": "../resources/background_03.png", + "speed": 0.74, + "tile_size": [896, 480], + "z": -109, + "position": [0, 360], + "scale": 2 + }, + { + "image": "../resources/background_02.png", + "speed": 0.82, + "tile_size": [896, 480], + "z": -108, + "position": [0, 360], + "scale": 2 + }, + { + "image": "../resources/background_01.png", + "speed": 100, + "tile_size": [896, 480], + "z": -107, + "position": [0, 360], + "scale": 2 + } + ] +} diff --git a/assets/map/levels/level1.map.yaml b/assets/map/levels/level1.map.yaml index 1ce89af3d1..0f8dc36eaa 100644 --- a/assets/map/levels/level1.map.yaml +++ b/assets/map/levels/level1.map.yaml @@ -1226,6 +1226,10 @@ layers: - 719.0 - 400.5 element: ../elements/item/crate/crate.element.yaml + - pos: + - 143 + - 410 + element: ../elements/item/mine/mine.element.yaml - pos: - 292.2272 - 609.5 @@ -1269,7 +1273,7 @@ layers: - pos: - 712.0 - 393.5 - element: ../elements/item/mines/mines.element.yaml + element: ../elements/item/mine/mine.element.yaml - pos: - 720.9998 - 121.5 diff --git a/assets/map/levels/level4.map.yaml b/assets/map/levels/level4.map.yaml index 483cd78e0b..0e855c6e9f 100644 --- a/assets/map/levels/level4.map.yaml +++ b/assets/map/levels/level4.map.yaml @@ -1277,7 +1277,7 @@ layers: - pos: - 800.0 - 425.5 - element: ../elements/item/mines/mines.element.yaml + element: ../elements/item/mine/mine.element.yaml - id: spawners kind: !element elements: diff --git a/assets/map/levels/test_level.map.json b/assets/map/levels/test_level.map.json index b7eba37bf6..8950140e84 100644 --- a/assets/map/levels/test_level.map.json +++ b/assets/map/levels/test_level.map.json @@ -999,7 +999,7 @@ }, { "pos": [804, 315.5], - "element": "../elements/item/mines/mines.element.yaml" + "element": "../elements/item/mine/mine.element.yaml" }, { "pos": [445.77790000000005, 51.5], diff --git a/assets/map/levels/zyrafa01.map.json b/assets/map/levels/zyrafa01.map.json index 9f7c694e2c..2e166daea3 100644 --- a/assets/map/levels/zyrafa01.map.json +++ b/assets/map/levels/zyrafa01.map.json @@ -630,7 +630,7 @@ }, { "pos": [271.76469999999995, 393.5], - "element": "../elements/item/mines/mines.element.yaml" + "element": "../elements/item/mine/mine.element.yaml" }, { "pos": [95.42862, 337.5], @@ -642,7 +642,7 @@ }, { "pos": [616, 393.5], - "element": "../elements/item/mines/mines.element.yaml" + "element": "../elements/item/mine/mine.element.yaml" }, { "pos": [439.05884000000003, 361.5], diff --git a/src/assets.rs b/src/assets.rs index e4690f53da..362fb47325 100644 --- a/src/assets.rs +++ b/src/assets.rs @@ -469,6 +469,35 @@ impl AssetLoader for MapElementMetaLoader { dependencies.push(sound_path); *handle = sound_handle.typed(); } + BuiltinElementKind::Mine { + atlas, + atlas_handle, + explosion_atlas, + explosion_atlas_handle, + arm_sound, + arm_sound_handle, + explosion_sound, + explosion_sound_handle, + .. + } => { + for (atlas, atlas_handle) in [ + (atlas, atlas_handle), + (explosion_atlas, explosion_atlas_handle), + ] { + let (path, handle) = get_relative_asset(load_context, self_path, atlas); + *atlas_handle = AssetHandle::new(path.clone(), handle.typed()); + dependencies.push(path); + } + for (sound, handle) in [ + (explosion_sound, explosion_sound_handle), + (arm_sound, arm_sound_handle), + ] { + let (sound_path, sound_handle) = + get_relative_asset(load_context, self_path, sound); + dependencies.push(sound_path); + *handle = sound_handle.typed(); + } + } } // Load preloaded assets diff --git a/src/map/elements.rs b/src/map/elements.rs index 39d64048dc..6b1aa1a4c3 100644 --- a/src/map/elements.rs +++ b/src/map/elements.rs @@ -20,6 +20,7 @@ pub mod sproinger; // Items pub mod crate_item; pub mod grenade; +pub mod mine; pub mod sword; pub struct MapElementsPlugin; @@ -31,6 +32,7 @@ impl Plugin for MapElementsPlugin { .add_plugin(crate_item::CrateItemPlugin) .add_plugin(player_spawner::PlayerSpawnerPlugin) .add_plugin(sproinger::SproingerPlugin) + .add_plugin(mine::MinePlugin) .add_plugin(sword::SwordPlugin); } } diff --git a/src/map/elements/crate_item.rs b/src/map/elements/crate_item.rs index 2a30f5c4ed..210fe40061 100644 --- a/src/map/elements/crate_item.rs +++ b/src/map/elements/crate_item.rs @@ -245,7 +245,7 @@ fn update_idle_crates( fn update_thrown_crates( mut commands: Commands, players: Query>, - mut grenades: Query< + mut crates: Query< ( &Rollback, Entity, @@ -261,14 +261,14 @@ fn update_thrown_crates( effects: Res>, collision_world: CollisionWorld, ) { - let mut items = grenades.iter_mut().collect::>(); + let mut items = crates.iter_mut().collect::>(); items.sort_by_key(|x| x.0.id()); for (_, item_ent, mut crate_item, transform, meta_handle) in items { let meta = element_assets.get(meta_handle).unwrap(); let BuiltinElementKind::Crate { breaking_atlas_handle, breaking_anim_fps, - breaking_anim_length, + breaking_anim_frames: breaking_anim_length, break_sound_handle, break_timeout, .. diff --git a/src/map/elements/mine.rs b/src/map/elements/mine.rs new file mode 100644 index 0000000000..bdc6da2861 --- /dev/null +++ b/src/map/elements/mine.rs @@ -0,0 +1,350 @@ +//! The crate item. +//! +//! This module is inconsistently named with the rest of the modules ( i.e. has an `_item` suffix ) +//! because `crate` is a Rust keyword. + +use crate::player::PlayerKillCommand; + +use super::*; + +pub struct MinePlugin; + +#[derive(Reflect, Component, Clone, Debug)] +#[reflect(Component)] +pub struct IdleMine { + /// The entity ID of the map element that spawned the crate + spawner: Entity, +} + +impl Default for IdleMine { + fn default() -> Self { + Self { + spawner: crate::utils::invalid_entity(), + } + } +} + +#[derive(Reflect, Component, Clone, Debug)] +#[reflect(Component, Default)] +pub struct ThrownMine { + /// The entity ID of the map element that spawned the crate + spawner: Entity, + age: f32, +} + +impl Default for ThrownMine { + fn default() -> Self { + Self { + spawner: crate::utils::invalid_entity(), + age: 0.0, + } + } +} + +impl Plugin for MinePlugin { + fn build(&self, app: &mut App) { + app.add_rollback_system(RollbackStage::PreUpdate, pre_update_in_game) + .add_rollback_system(RollbackStage::Update, update_thrown_mines) + .add_rollback_system(RollbackStage::Update, update_idle_mines) + .extend_rollback_plugin(|plugin| { + plugin + .register_rollback_type::() + .register_rollback_type::() + }); + } +} + +fn pre_update_in_game( + mut commands: Commands, + non_hydrated_map_elements: Query< + (Entity, &Sort, &Handle, &Transform), + Without, + >, + mut ridp: ResMut, + element_assets: ResMut>, +) { + // Hydrate any newly-spawned crates + let mut elements = non_hydrated_map_elements.iter().collect::>(); + elements.sort_by_key(|x| x.1); + for (entity, _sort, map_element_handle, transform) in elements { + let map_element = element_assets.get(map_element_handle).unwrap(); + if let BuiltinElementKind::Mine { + body_size, + body_offset, + atlas_handle, + .. + } = &map_element.builtin + { + commands.entity(entity).insert(MapElementHydrated); + + commands + .spawn() + .insert(Rollback::new(ridp.next_id())) + .insert(Item { + script: "core:mine".into(), + }) + .insert(IdleMine { spawner: entity }) + .insert(EntityName("Item: Mine".into())) + .insert(AnimatedSprite { + start: 0, + end: 0, + atlas: atlas_handle.inner.clone(), + repeat: false, + ..default() + }) + .insert(map_element_handle.clone_weak()) + .insert_bundle(VisibilityBundle::default()) + .insert(MapRespawnPoint(transform.translation)) + .insert_bundle(TransformBundle { + local: *transform, + ..default() + }) + .insert(KinematicBody { + size: *body_size, + offset: *body_offset, + gravity: 1.0, + has_mass: true, + has_friction: true, + ..default() + }); + } + } +} + +fn update_idle_mines( + mut commands: Commands, + players: Query<(&AnimatedSprite, &Transform, &KinematicBody), With>, + mut grenades: Query< + ( + &Rollback, + Entity, + &IdleMine, + &mut Transform, + &mut AnimatedSprite, + &mut KinematicBody, + &Handle, + Option<&Parent>, + Option<&ItemUsed>, + Option<&ItemDropped>, + ), + Without, + >, + mut ridp: ResMut, + element_assets: ResMut>, +) { + let mut items = grenades.iter_mut().collect::>(); + items.sort_by_key(|x| x.0.id()); + for ( + _, + item_ent, + crate_item, + mut transform, + mut sprite, + mut body, + meta_handle, + parent, + used, + dropped, + ) in items + { + let meta = element_assets.get(meta_handle).unwrap(); + let BuiltinElementKind::Mine { + grab_offset, + atlas_handle, + throw_velocity, + .. + } = &meta.builtin else { + unreachable!(); + }; + + // If the item is being held + if let Some(parent) = parent { + let (player_sprite, player_transform, player_body) = + players.get(parent.get()).expect("Parent is not player"); + + // Deactivate items while held + body.is_deactivated = true; + + // Flip the sprite to match the player orientation + let flip = player_sprite.flip_x; + sprite.flip_x = flip; + let flip_factor = if flip { -1.0 } else { 1.0 }; + let horizontal_flip_factor = Vec2::new(flip_factor, 1.0); + transform.translation.x = grab_offset.x * flip_factor; + transform.translation.y = grab_offset.y; + transform.translation.z = 0.0; + + // If the item is being used + if used.is_some() { + // Despawn the item from the player's hand + commands.entity(item_ent).despawn(); + + // Spawn a new, thrown mine + let pos = player_transform.translation + + (*grab_offset * horizontal_flip_factor).extend(0.0); + commands + .spawn() + .insert(Rollback::new(ridp.next_id())) + .insert(Name::new("Mine ( Thrown )")) + .insert(MapRespawnPoint(pos)) + .insert(Transform::from_translation(pos)) + .insert(GlobalTransform::default()) + .insert(Visibility::default()) + .insert(ComputedVisibility::default()) + .insert(AnimatedSprite { + atlas: atlas_handle.inner.clone(), + ..default() + }) + .insert(meta_handle.clone_weak()) + .insert(body.clone()) + .insert(ThrownMine { + spawner: crate_item.spawner, + ..default() + }) + .insert(KinematicBody { + velocity: *throw_velocity * horizontal_flip_factor + player_body.velocity, + is_deactivated: false, + ..body.clone() + }); + } + } + + // If the item is dropped + if let Some(dropped) = dropped { + commands.entity(item_ent).remove::(); + let (player_sprite, player_transform, player_body) = + players.get(dropped.player).expect("Parent is not a player"); + + // Re-activate physics + body.is_deactivated = false; + + // Put sword in rest position + sprite.start = 0; + sprite.end = 0; + body.velocity = player_body.velocity; + body.is_spawning = true; + + let horizontal_flip_factor = if player_sprite.flip_x { + Vec2::new(-1.0, 1.0) + } else { + Vec2::ONE + }; + + // Drop item at player position + transform.translation = + player_transform.translation + (*grab_offset * horizontal_flip_factor).extend(0.0); + } + } +} + +fn update_thrown_mines( + mut commands: Commands, + players: Query>, + mut mines: Query< + ( + &Rollback, + Entity, + &mut ThrownMine, + &Transform, + &mut AnimatedSprite, + &Handle, + ), + Without, + >, + mut ridp: ResMut, + element_assets: ResMut>, + player_inputs: Res, + effects: Res>, + collision_world: CollisionWorld, +) { + let mut items = mines.iter_mut().collect::>(); + items.sort_by_key(|x| x.0.id()); + for (_, item_ent, mut crate_item, transform, mut sprite, meta_handle) in items { + let meta = element_assets.get(meta_handle).unwrap(); + let BuiltinElementKind::Mine { + explosion_atlas_handle, + explosion_anim_fps, + explosion_anim_frames, + explosion_sound_handle, + arm_delay, + arm_sound_handle, + armed_anim_start, + armed_anim_end, + armed_anim_fps, + damage_region_size, + damage_region_lifetime, + .. + } = &meta.builtin else { + unreachable!(); + }; + let frame_time = 1.0 / crate::FPS as f32; + + crate_item.age += frame_time; + + if crate_item.age >= *arm_delay && crate_item.age - *arm_delay < frame_time { + if player_inputs.is_confirmed { + effects.play(arm_sound_handle.clone_weak()); + } + + sprite.start = *armed_anim_start; + sprite.end = *armed_anim_end; + sprite.fps = *armed_anim_fps; + sprite.repeat = true; + } + + let colliding_with_players = collision_world + .actor_collisions(item_ent) + .into_iter() + .filter(|&x| players.contains(x)) + .collect::>(); + + if !colliding_with_players.is_empty() && crate_item.age >= *arm_delay { + for &player in &colliding_with_players { + commands.add(PlayerKillCommand::new(player)); + } + + if player_inputs.is_confirmed { + effects.play(explosion_sound_handle.clone_weak()); + } + + // Despawn the grenade + commands.entity(item_ent).despawn(); + // Cause the item to re-spawn by re-triggering spawner hydration + commands + .entity(crate_item.spawner) + .remove::(); + + // Spawn the damage region entity + commands + .spawn() + .insert(Rollback::new(ridp.next_id())) + .insert(*transform) + .insert(GlobalTransform::default()) + .insert(Visibility::default()) + .insert(ComputedVisibility::default()) + .insert(DamageRegion { + size: *damage_region_size, + }) + .insert(Lifetime::new(*damage_region_lifetime)); + // Spawn the explosion sprite entity + commands + .spawn() + .insert(Rollback::new(ridp.next_id())) + .insert(*transform) + .insert(GlobalTransform::default()) + .insert(Visibility::default()) + .insert(ComputedVisibility::default()) + .insert(AnimatedSprite { + start: 0, + end: *explosion_anim_frames, + atlas: explosion_atlas_handle.inner.clone(), + repeat: false, + fps: *explosion_anim_fps, + ..default() + }) + .insert(Lifetime::new( + *explosion_anim_fps * *explosion_anim_frames as f32, + )); + } + } +} diff --git a/src/metadata/map.rs b/src/metadata/map.rs index a256dff6ee..1b709403a5 100644 --- a/src/metadata/map.rs +++ b/src/metadata/map.rs @@ -263,7 +263,7 @@ pub enum BuiltinElementKind { #[serde(skip)] sound_handle: Handle, }, - /// + /// The throwable crate item Crate { atlas: String, #[serde(skip)] @@ -272,7 +272,7 @@ pub enum BuiltinElementKind { breaking_atlas: String, #[serde(skip)] breaking_atlas_handle: AssetHandle, - breaking_anim_length: usize, + breaking_anim_frames: usize, breaking_anim_fps: f32, break_sound: String, @@ -287,4 +287,36 @@ pub enum BuiltinElementKind { // How long to wait before despawning a thrown crate, if it hans't it anything yet. break_timeout: f32, }, + /// The mine item + Mine { + atlas: String, + #[serde(skip)] + atlas_handle: AssetHandle, + + damage_region_size: Vec2, + damage_region_lifetime: f32, + explosion_atlas: String, + #[serde(skip)] + explosion_atlas_handle: AssetHandle, + explosion_anim_frames: usize, + explosion_anim_fps: f32, + + arm_sound: String, + armed_anim_start: usize, + armed_anim_end: usize, + armed_anim_fps: f32, + #[serde(skip)] + arm_sound_handle: Handle, + explosion_sound: String, + #[serde(skip)] + explosion_sound_handle: Handle, + + throw_velocity: Vec2, + /// The delay after throwing the mine, before it becomes armed and will blow up on contact. + arm_delay: f32, + + body_size: Vec2, + body_offset: Vec2, + grab_offset: Vec2, + }, }