diff --git a/apps/game/assets/maps/house_elder.map b/apps/game/assets/maps/house_elder.map index c4084ed..e66478e 100644 --- a/apps/game/assets/maps/house_elder.map +++ b/apps/game/assets/maps/house_elder.map @@ -1 +1 @@ -{"format":"rpg-map","version":1,"width":11,"height":9,"blocked":[2,3,6,7,24,25,26,27,9,10,18,21],"tall":{"3":{"height":1.5,"ground":0},"6":{"height":2.5,"ground":1},"7":{"height":1.75,"ground":4,"shadow":true},"9":{"height":1,"ground":8},"18":{"height":0.6,"ground":4},"21":{"height":2.5,"ground":8},"22":{"height":1.5,"ground":0},"23":{"height":1.5,"ground":0},"24":{"height":1.75,"ground":4,"shadow":true},"25":{"height":1.75,"ground":4,"shadow":true},"26":{"height":2.5,"ground":4,"shadow":true},"27":{"height":2.5,"ground":4,"shadow":true}},"encoding":"rle","tiles":[[9,12],[8,9],[9,2],[8,9],[9,2],[8,9],[9,2],[8,9],[9,2],[8,9],[9,2],[8,9],[9,2],[8,9],[9,6],[8,1],[9,5]]} \ No newline at end of file +{"format":"rpg-map","version":1,"width":11,"height":9,"blocked":[2,3,6,7,24,25,26,27,9,10,18,21,28,29],"tall":{"3":{"height":1.5,"ground":0},"6":{"height":2.5,"ground":1},"7":{"height":1.75,"ground":4,"shadow":true},"9":{"height":1,"ground":8},"18":{"height":0.6,"ground":4},"21":{"height":2.5,"ground":8},"22":{"height":1.5,"ground":0},"23":{"height":1.5,"ground":0},"24":{"height":1.75,"ground":4,"shadow":true},"25":{"height":1.75,"ground":4,"shadow":true},"26":{"height":2.5,"ground":4,"shadow":true},"27":{"height":2.5,"ground":4,"shadow":true},"28":{"height":1.05,"ground":4},"29":{"height":1.25,"ground":4}},"encoding":"rle","tiles":[[9,12],[8,9],[9,2],[8,9],[9,2],[8,9],[9,2],[8,9],[9,2],[8,9],[9,2],[8,9],[9,2],[8,9],[9,6],[8,1],[9,5]]} \ No newline at end of file diff --git a/apps/game/assets/maps/machine_hall.map b/apps/game/assets/maps/machine_hall.map index 2246bbc..e8877cc 100644 --- a/apps/game/assets/maps/machine_hall.map +++ b/apps/game/assets/maps/machine_hall.map @@ -1 +1 @@ -{"format":"rpg-map","version":1,"width":13,"height":11,"blocked":[2,3,6,7,24,25,26,27,9,10,18,21],"tall":{"3":{"height":1.5,"ground":0},"6":{"height":2.5,"ground":1},"7":{"height":1.75,"ground":4,"shadow":true},"9":{"height":1,"ground":8},"18":{"height":0.6,"ground":4},"21":{"height":2.5,"ground":8},"22":{"height":1.5,"ground":0},"23":{"height":1.5,"ground":0},"24":{"height":1.75,"ground":4,"shadow":true},"25":{"height":1.75,"ground":4,"shadow":true},"26":{"height":2.5,"ground":4,"shadow":true},"27":{"height":2.5,"ground":4,"shadow":true}},"encoding":"rle","tiles":[[9,14],[8,4],[21,2],[8,5],[9,2],[8,11],[9,2],[8,5],[19,1],[8,5],[9,2],[8,5],[19,1],[8,5],[9,2],[8,5],[19,1],[8,5],[9,2],[8,5],[19,1],[8,5],[9,2],[8,5],[19,1],[8,5],[9,2],[8,5],[19,1],[8,5],[9,2],[8,5],[19,1],[8,5],[9,7],[8,1],[9,6]]} \ No newline at end of file +{"format":"rpg-map","version":1,"width":13,"height":11,"blocked":[2,3,6,7,24,25,26,27,9,10,18,21,28,29],"tall":{"3":{"height":1.5,"ground":0},"6":{"height":2.5,"ground":1},"7":{"height":1.75,"ground":4,"shadow":true},"9":{"height":1,"ground":8},"18":{"height":0.6,"ground":4},"21":{"height":2.5,"ground":8},"22":{"height":1.5,"ground":0},"23":{"height":1.5,"ground":0},"24":{"height":1.75,"ground":4,"shadow":true},"25":{"height":1.75,"ground":4,"shadow":true},"26":{"height":2.5,"ground":4,"shadow":true},"27":{"height":2.5,"ground":4,"shadow":true},"28":{"height":1.05,"ground":4},"29":{"height":1.25,"ground":4}},"encoding":"rle","tiles":[[9,14],[8,4],[21,2],[8,5],[9,2],[8,11],[9,2],[8,5],[19,1],[8,5],[9,2],[8,5],[19,1],[8,5],[9,2],[8,5],[19,1],[8,5],[9,2],[8,5],[19,1],[8,5],[9,2],[8,5],[19,1],[8,5],[9,2],[8,5],[19,1],[8,5],[9,2],[8,5],[19,1],[8,5],[9,7],[8,1],[9,6]]} \ No newline at end of file diff --git a/apps/game/assets/maps/meadows.map b/apps/game/assets/maps/meadows.map index 223c36a..a0981a4 100644 --- a/apps/game/assets/maps/meadows.map +++ b/apps/game/assets/maps/meadows.map @@ -1 +1 @@ -{"format":"rpg-map","version":1,"width":28,"height":28,"blocked":[2,3,6,7,24,25,26,27,9,10,18,21],"tall":{"3":{"height":1.5,"ground":0},"6":{"height":2.5,"ground":1},"7":{"height":1.75,"ground":4,"shadow":true},"9":{"height":1,"ground":8},"18":{"height":0.6,"ground":4},"21":{"height":2.5,"ground":8},"22":{"height":1.5,"ground":0},"23":{"height":1.5,"ground":0},"24":{"height":1.75,"ground":4,"shadow":true},"25":{"height":1.75,"ground":4,"shadow":true},"26":{"height":2.5,"ground":4,"shadow":true},"27":{"height":2.5,"ground":4,"shadow":true}},"variants":{"0":[0,11,12],"1":[1,14],"3":[3,22,23],"4":[4,13],"7":[7,24,25,26,27]},"decor":[{"id":16,"x":7,"y":0,"dx":-3,"dy":-2},{"id":17,"x":17,"y":0,"dx":-4,"dy":2},{"id":15,"x":2,"y":1,"dx":1,"dy":0},{"id":16,"x":7,"y":1,"dx":-3,"dy":0},{"id":15,"x":8,"y":1,"dx":-3,"dy":1},{"id":17,"x":17,"y":1,"dx":-2,"dy":-1},{"id":16,"x":25,"y":1,"dx":-2,"dy":-2},{"id":16,"x":26,"y":1,"dx":0,"dy":1},{"id":15,"x":16,"y":2,"dx":3,"dy":1},{"id":16,"x":18,"y":2,"dx":-3,"dy":-1},{"id":17,"x":10,"y":3,"dx":1,"dy":1},{"id":17,"x":11,"y":3,"dx":1,"dy":1},{"id":16,"x":26,"y":3,"dx":-3,"dy":2},{"id":16,"x":7,"y":4,"dx":-3,"dy":1},{"id":16,"x":18,"y":4,"dx":-2,"dy":2},{"id":17,"x":26,"y":4,"dx":-4,"dy":0},{"id":15,"x":11,"y":5,"dx":4,"dy":0},{"id":16,"x":13,"y":8,"dx":-2,"dy":1},{"id":16,"x":15,"y":8,"dx":3,"dy":1},{"id":17,"x":24,"y":8,"dx":-1,"dy":0},{"id":17,"x":6,"y":9,"dx":-1,"dy":-2},{"id":16,"x":13,"y":9,"dx":-3,"dy":0},{"id":17,"x":23,"y":9,"dx":-3,"dy":1},{"id":16,"x":13,"y":10,"dx":0,"dy":0},{"id":15,"x":27,"y":10,"dx":-4,"dy":0},{"id":15,"x":4,"y":11,"dx":-3,"dy":0},{"id":15,"x":10,"y":11,"dx":-2,"dy":2},{"id":16,"x":14,"y":11,"dx":3,"dy":-2},{"id":15,"x":23,"y":11,"dx":-2,"dy":1},{"id":15,"x":0,"y":12,"dx":1,"dy":1},{"id":16,"x":1,"y":12,"dx":1,"dy":1},{"id":15,"x":4,"y":12,"dx":0,"dy":1},{"id":17,"x":1,"y":13,"dx":4,"dy":0},{"id":16,"x":10,"y":13,"dx":4,"dy":0},{"id":16,"x":18,"y":13,"dx":-2,"dy":-2},{"id":16,"x":23,"y":13,"dx":2,"dy":-1},{"id":15,"x":2,"y":14,"dx":0,"dy":1},{"id":17,"x":4,"y":14,"dx":-1,"dy":0},{"id":17,"x":15,"y":14,"dx":-1,"dy":0},{"id":16,"x":16,"y":14,"dx":3,"dy":-1},{"id":16,"x":18,"y":14,"dx":0,"dy":1},{"id":15,"x":24,"y":14,"dx":4,"dy":-1},{"id":15,"x":9,"y":15,"dx":1,"dy":0},{"id":16,"x":12,"y":15,"dx":-4,"dy":-2},{"id":15,"x":13,"y":15,"dx":-2,"dy":1},{"id":17,"x":19,"y":15,"dx":0,"dy":-1},{"id":16,"x":23,"y":15,"dx":3,"dy":-1},{"id":16,"x":27,"y":16,"dx":4,"dy":2},{"id":16,"x":4,"y":17,"dx":1,"dy":-2},{"id":16,"x":13,"y":17,"dx":-2,"dy":-2},{"id":15,"x":20,"y":17,"dx":-2,"dy":0},{"id":15,"x":22,"y":17,"dx":4,"dy":0},{"id":16,"x":5,"y":18,"dx":3,"dy":0},{"id":15,"x":0,"y":19,"dx":-2,"dy":1},{"id":16,"x":8,"y":19,"dx":-3,"dy":0},{"id":15,"x":26,"y":19,"dx":2,"dy":1},{"id":15,"x":18,"y":20,"dx":-3,"dy":0},{"id":15,"x":21,"y":20,"dx":0,"dy":-1},{"id":15,"x":23,"y":20,"dx":0,"dy":2},{"id":16,"x":25,"y":20,"dx":-3,"dy":1},{"id":16,"x":25,"y":21,"dx":-3,"dy":2},{"id":17,"x":0,"y":22,"dx":1,"dy":2},{"id":17,"x":21,"y":22,"dx":3,"dy":2},{"id":15,"x":22,"y":22,"dx":3,"dy":-2},{"id":16,"x":25,"y":22,"dx":1,"dy":1},{"id":16,"x":6,"y":23,"dx":-1,"dy":0},{"id":16,"x":8,"y":23,"dx":-3,"dy":0},{"id":15,"x":12,"y":23,"dx":-3,"dy":0},{"id":16,"x":13,"y":23,"dx":1,"dy":0},{"id":16,"x":6,"y":24,"dx":2,"dy":-1},{"id":17,"x":17,"y":24,"dx":0,"dy":0},{"id":16,"x":6,"y":25,"dx":-4,"dy":2},{"id":16,"x":26,"y":26,"dx":1,"dy":1},{"id":15,"x":1,"y":27,"dx":-2,"dy":-1},{"id":17,"x":10,"y":27,"dx":2,"dy":-1}],"encoding":"rle","tiles":[[0,1],[3,2],[4,1],[0,1],[4,3],[0,1],[4,3],[0,1],[4,1],[0,4],[4,8],[3,1],[4,1],[0,1],[1,1],[0,3],[4,3],[0,2],[4,1],[0,2],[4,1],[0,4],[4,2],[0,1],[4,1],[0,1],[4,4],[0,1],[3,1],[1,2],[0,2],[4,2],[0,3],[4,4],[0,4],[4,1],[0,1],[4,2],[0,1],[4,4],[3,1],[0,2],[1,2],[0,1],[4,2],[0,6],[4,9],[0,1],[4,2],[3,1],[4,2],[3,1],[0,2],[1,2],[0,1],[4,2],[0,5],[4,3],[0,1],[4,2],[0,1],[4,1],[0,1],[4,1],[0,1],[4,2],[0,1],[4,1],[3,1],[0,1],[1,3],[0,8],[4,5],[5,1],[0,5],[4,1],[3,1],[4,2],[0,4],[1,2],[0,1],[4,3],[0,1],[4,1],[0,2],[4,2],[0,1],[4,1],[0,11],[3,1],[0,3],[1,3],[4,2],[0,1],[4,1],[0,1],[4,5],[0,1],[2,4],[0,7],[4,1],[0,1],[4,1],[0,1],[4,1],[1,2],[4,2],[0,2],[4,3],[0,1],[4,1],[0,1],[2,4],[0,3],[3,1],[0,3],[4,1],[3,1],[0,3],[4,1],[1,1],[4,3],[0,1],[4,5],[0,1],[2,2],[0,1],[5,1],[0,7],[3,1],[0,1],[4,1],[0,3],[1,2],[4,2],[0,1],[4,3],[0,8],[3,1],[0,3],[4,1],[3,1],[0,4],[4,3],[1,1],[0,3],[4,5],[0,6],[3,1],[0,2],[3,1],[0,1],[4,1],[3,1],[0,3],[4,3],[1,1],[0,4],[4,5],[0,1],[4,5],[0,1],[4,2],[0,2],[3,1],[0,4],[4,2],[1,1],[4,1],[0,5],[4,3],[0,1],[4,4],[0,3],[3,1],[0,1],[4,1],[0,1],[3,1],[0,4],[4,1],[1,2],[4,2],[0,3],[4,3],[0,1],[4,4],[0,1],[1,2],[4,1],[3,2],[4,1],[0,5],[4,1],[0,1],[1,1],[0,1],[4,1],[0,4],[4,1],[0,2],[4,4],[0,3],[3,2],[0,1],[4,1],[3,1],[0,2],[2,2],[0,2],[1,3],[4,1],[0,6],[4,1],[0,1],[4,4],[0,1],[4,1],[3,1],[0,1],[3,1],[4,3],[2,4],[5,1],[0,1],[1,1],[4,1],[0,13],[3,1],[0,1],[3,1],[4,5],[2,3],[4,2],[1,1],[4,3],[0,4],[4,1],[0,3],[3,1],[0,4],[3,1],[4,1],[3,1],[0,1],[4,4],[0,2],[5,1],[1,2],[4,2],[0,3],[4,3],[0,13],[4,4],[0,1],[4,1],[1,1],[0,5],[4,2],[0,1],[10,1],[0,2],[4,2],[0,1],[3,3],[0,6],[4,1],[0,2],[4,1],[1,3],[0,9],[4,1],[0,5],[3,1],[0,6],[4,4],[0,1],[1,1],[0,8],[4,3],[0,1],[3,1],[0,1],[3,1],[0,3],[4,4],[0,1],[4,1],[0,1],[4,1],[0,1],[1,1],[0,10],[3,1],[0,2],[3,3],[0,2],[4,1],[0,2],[4,5],[0,1],[1,1],[0,9],[4,2],[0,2],[3,1],[0,4],[4,2],[0,7],[1,10],[4,2],[3,1],[0,24],[4,4],[0,2],[3,1],[0,21],[3,4]]} \ No newline at end of file +{"format":"rpg-map","version":1,"width":28,"height":28,"blocked":[2,3,6,7,24,25,26,27,9,10,18,21,28,29],"tall":{"3":{"height":1.5,"ground":0},"6":{"height":2.5,"ground":1},"7":{"height":1.75,"ground":4,"shadow":true},"9":{"height":1,"ground":8},"18":{"height":0.6,"ground":4},"21":{"height":2.5,"ground":8},"22":{"height":1.5,"ground":0},"23":{"height":1.5,"ground":0},"24":{"height":1.75,"ground":4,"shadow":true},"25":{"height":1.75,"ground":4,"shadow":true},"26":{"height":2.5,"ground":4,"shadow":true},"27":{"height":2.5,"ground":4,"shadow":true},"28":{"height":1.05,"ground":4},"29":{"height":1.25,"ground":4}},"variants":{"0":[0,11,12],"1":[1,14],"3":[3,22,23],"4":[4,13],"7":[7,24,25,26,27]},"decor":[{"id":16,"x":7,"y":0,"dx":-3,"dy":-2},{"id":17,"x":17,"y":0,"dx":-4,"dy":2},{"id":15,"x":2,"y":1,"dx":1,"dy":0},{"id":16,"x":7,"y":1,"dx":-3,"dy":0},{"id":15,"x":8,"y":1,"dx":-3,"dy":1},{"id":17,"x":17,"y":1,"dx":-2,"dy":-1},{"id":16,"x":25,"y":1,"dx":-2,"dy":-2},{"id":16,"x":26,"y":1,"dx":0,"dy":1},{"id":15,"x":16,"y":2,"dx":3,"dy":1},{"id":16,"x":18,"y":2,"dx":-3,"dy":-1},{"id":17,"x":10,"y":3,"dx":1,"dy":1},{"id":17,"x":11,"y":3,"dx":1,"dy":1},{"id":16,"x":26,"y":3,"dx":-3,"dy":2},{"id":16,"x":7,"y":4,"dx":-3,"dy":1},{"id":16,"x":18,"y":4,"dx":-2,"dy":2},{"id":17,"x":26,"y":4,"dx":-4,"dy":0},{"id":15,"x":11,"y":5,"dx":4,"dy":0},{"id":16,"x":13,"y":8,"dx":-2,"dy":1},{"id":16,"x":15,"y":8,"dx":3,"dy":1},{"id":17,"x":4,"y":9,"dx":2,"dy":-1},{"id":17,"x":6,"y":9,"dx":-1,"dy":-2},{"id":16,"x":13,"y":9,"dx":-3,"dy":0},{"id":17,"x":23,"y":9,"dx":-3,"dy":1},{"id":16,"x":13,"y":10,"dx":0,"dy":0},{"id":15,"x":27,"y":10,"dx":-4,"dy":0},{"id":15,"x":4,"y":11,"dx":-3,"dy":0},{"id":15,"x":10,"y":11,"dx":-2,"dy":2},{"id":16,"x":14,"y":11,"dx":3,"dy":-2},{"id":15,"x":23,"y":11,"dx":-2,"dy":1},{"id":15,"x":0,"y":12,"dx":1,"dy":1},{"id":16,"x":1,"y":12,"dx":1,"dy":1},{"id":15,"x":4,"y":12,"dx":0,"dy":1},{"id":17,"x":1,"y":13,"dx":4,"dy":0},{"id":16,"x":10,"y":13,"dx":4,"dy":0},{"id":16,"x":18,"y":13,"dx":-2,"dy":-2},{"id":16,"x":23,"y":13,"dx":2,"dy":-1},{"id":15,"x":2,"y":14,"dx":0,"dy":1},{"id":17,"x":4,"y":14,"dx":-1,"dy":0},{"id":17,"x":15,"y":14,"dx":-1,"dy":0},{"id":16,"x":16,"y":14,"dx":3,"dy":-1},{"id":16,"x":18,"y":14,"dx":0,"dy":1},{"id":15,"x":24,"y":14,"dx":4,"dy":-1},{"id":15,"x":9,"y":15,"dx":1,"dy":0},{"id":16,"x":12,"y":15,"dx":-4,"dy":-2},{"id":15,"x":13,"y":15,"dx":-2,"dy":1},{"id":17,"x":19,"y":15,"dx":0,"dy":-1},{"id":16,"x":23,"y":15,"dx":3,"dy":-1},{"id":16,"x":27,"y":16,"dx":4,"dy":2},{"id":16,"x":4,"y":17,"dx":1,"dy":-2},{"id":16,"x":13,"y":17,"dx":-2,"dy":-2},{"id":15,"x":20,"y":17,"dx":-2,"dy":0},{"id":15,"x":22,"y":17,"dx":4,"dy":0},{"id":16,"x":5,"y":18,"dx":3,"dy":0},{"id":15,"x":0,"y":19,"dx":-2,"dy":1},{"id":15,"x":26,"y":19,"dx":2,"dy":1},{"id":15,"x":18,"y":20,"dx":-3,"dy":0},{"id":15,"x":27,"y":20,"dx":-3,"dy":1},{"id":15,"x":26,"y":21,"dx":-3,"dy":2},{"id":17,"x":0,"y":22,"dx":1,"dy":2},{"id":17,"x":21,"y":22,"dx":3,"dy":2},{"id":15,"x":22,"y":22,"dx":3,"dy":-2},{"id":16,"x":25,"y":22,"dx":1,"dy":1},{"id":16,"x":6,"y":23,"dx":-1,"dy":0},{"id":16,"x":8,"y":23,"dx":-3,"dy":0},{"id":15,"x":12,"y":23,"dx":-3,"dy":0},{"id":16,"x":13,"y":23,"dx":1,"dy":0},{"id":16,"x":6,"y":24,"dx":2,"dy":-1},{"id":17,"x":17,"y":24,"dx":0,"dy":0},{"id":16,"x":6,"y":25,"dx":-4,"dy":2},{"id":16,"x":26,"y":26,"dx":1,"dy":1},{"id":15,"x":1,"y":27,"dx":-2,"dy":-1},{"id":17,"x":10,"y":27,"dx":2,"dy":-1}],"encoding":"rle","tiles":[[0,1],[3,2],[4,1],[0,1],[4,3],[0,1],[4,3],[0,1],[4,1],[0,4],[4,8],[3,1],[4,1],[0,1],[1,1],[0,3],[4,3],[0,2],[4,1],[0,2],[4,1],[0,4],[4,2],[0,1],[4,1],[0,1],[4,4],[0,1],[3,1],[1,2],[0,2],[4,2],[0,3],[4,4],[0,4],[4,1],[0,1],[4,2],[0,1],[4,4],[3,1],[0,2],[1,2],[0,1],[4,2],[0,6],[4,9],[0,1],[4,2],[3,1],[4,2],[3,1],[0,2],[1,2],[0,1],[4,2],[0,5],[4,3],[0,1],[4,2],[0,1],[4,1],[0,1],[4,1],[0,1],[4,1],[29,1],[0,1],[4,1],[3,1],[0,1],[1,3],[0,8],[4,5],[5,1],[0,5],[4,1],[3,1],[4,2],[0,2],[29,1],[0,1],[1,2],[0,1],[4,3],[0,1],[4,1],[0,2],[4,2],[0,1],[4,1],[0,11],[3,1],[0,3],[1,3],[4,2],[0,1],[4,1],[0,1],[4,5],[0,1],[2,4],[0,7],[4,1],[0,1],[4,1],[0,1],[4,1],[1,2],[4,2],[0,2],[4,3],[0,1],[4,1],[0,1],[2,4],[0,1],[28,1],[0,1],[3,1],[0,3],[4,1],[3,1],[0,3],[4,1],[1,1],[4,3],[0,1],[4,5],[0,1],[2,2],[0,1],[5,1],[0,7],[3,1],[0,1],[4,1],[0,3],[1,2],[4,2],[0,1],[4,3],[0,8],[3,1],[0,3],[4,1],[3,1],[0,4],[4,3],[1,1],[0,3],[4,5],[0,6],[3,1],[0,2],[3,1],[0,1],[4,1],[3,1],[0,3],[4,3],[1,1],[0,4],[4,5],[0,1],[4,5],[0,1],[4,2],[0,2],[3,1],[0,4],[4,2],[1,1],[4,1],[0,5],[4,3],[0,1],[4,4],[0,3],[3,1],[0,1],[4,1],[0,1],[3,1],[0,2],[29,1],[0,1],[4,1],[1,2],[4,2],[0,3],[4,3],[0,1],[4,4],[0,1],[1,2],[4,1],[3,2],[4,1],[0,5],[4,1],[0,1],[1,1],[0,1],[4,1],[0,4],[4,1],[0,2],[4,4],[0,3],[3,2],[0,1],[4,1],[3,1],[0,2],[2,2],[0,2],[1,3],[4,1],[0,6],[4,1],[0,1],[4,4],[0,1],[4,1],[3,1],[28,1],[3,1],[4,3],[2,4],[5,1],[0,1],[1,1],[4,1],[0,13],[3,1],[0,1],[3,1],[28,1],[4,4],[2,3],[4,2],[1,1],[4,3],[0,4],[4,1],[0,3],[3,1],[0,4],[3,1],[4,1],[3,1],[0,1],[4,3],[29,1],[0,2],[5,1],[1,2],[28,1],[4,1],[0,3],[4,3],[0,13],[4,4],[0,1],[4,1],[1,1],[0,3],[29,1],[0,1],[4,2],[28,1],[10,1],[0,2],[4,2],[0,1],[3,3],[0,6],[4,1],[0,2],[4,1],[1,3],[0,9],[4,1],[0,5],[3,1],[0,6],[4,4],[0,1],[1,1],[0,8],[4,3],[0,1],[3,1],[0,1],[3,1],[29,1],[0,2],[4,4],[0,1],[4,1],[0,1],[4,1],[0,1],[1,1],[0,10],[3,1],[0,2],[3,3],[0,2],[4,1],[0,2],[4,5],[0,1],[1,1],[0,9],[4,2],[0,2],[3,1],[0,4],[4,2],[0,7],[1,10],[4,2],[3,1],[0,16],[29,1],[0,7],[4,4],[0,2],[3,1],[0,21],[3,4]]} \ No newline at end of file diff --git a/apps/game/assets/maps/old_siding.map b/apps/game/assets/maps/old_siding.map index 277a535..030d9a9 100644 --- a/apps/game/assets/maps/old_siding.map +++ b/apps/game/assets/maps/old_siding.map @@ -1 +1 @@ -{"format":"rpg-map","version":1,"width":24,"height":20,"blocked":[2,3,6,7,24,25,26,27,9,10,18,21],"tall":{"3":{"height":1.5,"ground":0},"6":{"height":2.5,"ground":1},"7":{"height":1.75,"ground":4,"shadow":true},"9":{"height":1,"ground":8},"18":{"height":0.6,"ground":4},"21":{"height":2.5,"ground":8},"22":{"height":1.5,"ground":0},"23":{"height":1.5,"ground":0},"24":{"height":1.75,"ground":4,"shadow":true},"25":{"height":1.75,"ground":4,"shadow":true},"26":{"height":2.5,"ground":4,"shadow":true},"27":{"height":2.5,"ground":4,"shadow":true}},"variants":{"0":[0,11,12],"1":[1,14],"3":[3,22,23],"4":[4,13],"7":[7,24,25,26,27]},"decor":[{"id":16,"x":5,"y":0,"dx":-1,"dy":0},{"id":16,"x":13,"y":0,"dx":-4,"dy":0},{"id":16,"x":18,"y":0,"dx":-2,"dy":-1},{"id":16,"x":0,"y":1,"dx":-2,"dy":-2},{"id":16,"x":4,"y":1,"dx":0,"dy":-1},{"id":16,"x":6,"y":1,"dx":-2,"dy":2},{"id":16,"x":13,"y":2,"dx":3,"dy":1},{"id":16,"x":17,"y":2,"dx":0,"dy":-2},{"id":16,"x":15,"y":3,"dx":1,"dy":1},{"id":16,"x":19,"y":3,"dx":-1,"dy":2},{"id":16,"x":2,"y":4,"dx":-2,"dy":-1},{"id":16,"x":8,"y":4,"dx":-3,"dy":-1},{"id":16,"x":22,"y":4,"dx":-3,"dy":-1},{"id":16,"x":19,"y":5,"dx":0,"dy":0},{"id":16,"x":22,"y":5,"dx":0,"dy":0},{"id":16,"x":23,"y":5,"dx":-1,"dy":1},{"id":16,"x":19,"y":6,"dx":-3,"dy":1},{"id":16,"x":0,"y":7,"dx":1,"dy":-1},{"id":16,"x":17,"y":8,"dx":1,"dy":0},{"id":16,"x":19,"y":8,"dx":-1,"dy":-1},{"id":16,"x":22,"y":8,"dx":1,"dy":1},{"id":16,"x":5,"y":9,"dx":2,"dy":0},{"id":16,"x":20,"y":9,"dx":-3,"dy":-1},{"id":16,"x":17,"y":11,"dx":-2,"dy":1},{"id":16,"x":20,"y":11,"dx":-1,"dy":-1},{"id":16,"x":3,"y":13,"dx":2,"dy":0},{"id":16,"x":7,"y":13,"dx":-2,"dy":1},{"id":16,"x":17,"y":14,"dx":-2,"dy":-2},{"id":16,"x":3,"y":15,"dx":0,"dy":1},{"id":16,"x":8,"y":15,"dx":-3,"dy":1},{"id":16,"x":21,"y":15,"dx":-2,"dy":-1},{"id":16,"x":5,"y":16,"dx":-3,"dy":0},{"id":16,"x":3,"y":17,"dx":-3,"dy":-2},{"id":16,"x":4,"y":17,"dx":3,"dy":2},{"id":16,"x":8,"y":18,"dx":1,"dy":0},{"id":16,"x":14,"y":18,"dx":-4,"dy":-1},{"id":16,"x":7,"y":19,"dx":-1,"dy":1},{"id":16,"x":14,"y":19,"dx":0,"dy":1}],"encoding":"rle","tiles":[[4,2],[3,1],[4,23],[0,1],[4,25],[0,1],[4,30],[19,3],[4,6],[0,1],[4,14],[19,2],[4,1],[19,1],[4,2],[0,1],[4,3],[3,1],[4,13],[19,2],[4,2],[19,1],[4,8],[3,1],[4,7],[7,1],[4,2],[19,2],[4,3],[19,1],[4,5],[3,1],[4,2],[3,1],[4,9],[19,2],[4,4],[19,1],[4,7],[3,1],[4,9],[19,2],[4,5],[19,1],[4,7],[3,1],[4,4],[0,1],[4,3],[19,2],[4,6],[19,1],[4,3],[3,2],[1,10],[19,2],[1,1],[4,21],[19,2],[1,1],[4,21],[19,2],[1,1],[4,2],[7,1],[4,4],[0,1],[3,1],[4,6],[9,1],[4,5],[19,2],[1,1],[4,8],[3,1],[4,12],[19,2],[1,2],[4,9],[3,1],[4,9],[0,1],[19,2],[4,1],[1,1],[20,1],[4,19],[19,2],[4,9],[3,3],[4,8],[0,1],[4,14],[3,1],[4,22],[3,1],[4,1],[3,1],[4,21],[3,1]]} \ No newline at end of file +{"format":"rpg-map","version":1,"width":24,"height":20,"blocked":[2,3,6,7,24,25,26,27,9,10,18,21,28,29],"tall":{"3":{"height":1.5,"ground":0},"6":{"height":2.5,"ground":1},"7":{"height":1.75,"ground":4,"shadow":true},"9":{"height":1,"ground":8},"18":{"height":0.6,"ground":4},"21":{"height":2.5,"ground":8},"22":{"height":1.5,"ground":0},"23":{"height":1.5,"ground":0},"24":{"height":1.75,"ground":4,"shadow":true},"25":{"height":1.75,"ground":4,"shadow":true},"26":{"height":2.5,"ground":4,"shadow":true},"27":{"height":2.5,"ground":4,"shadow":true},"28":{"height":1.05,"ground":4},"29":{"height":1.25,"ground":4}},"variants":{"0":[0,11,12],"1":[1,14],"3":[3,22,23],"4":[4,13],"7":[7,24,25,26,27]},"decor":[{"id":16,"x":5,"y":0,"dx":-1,"dy":0},{"id":16,"x":13,"y":0,"dx":-4,"dy":0},{"id":16,"x":18,"y":0,"dx":-2,"dy":-1},{"id":16,"x":0,"y":1,"dx":-2,"dy":-2},{"id":16,"x":4,"y":1,"dx":0,"dy":-1},{"id":16,"x":6,"y":1,"dx":-2,"dy":2},{"id":16,"x":13,"y":2,"dx":3,"dy":1},{"id":16,"x":17,"y":2,"dx":0,"dy":-2},{"id":16,"x":15,"y":3,"dx":1,"dy":1},{"id":16,"x":19,"y":3,"dx":-1,"dy":2},{"id":16,"x":2,"y":4,"dx":-2,"dy":-1},{"id":16,"x":22,"y":4,"dx":-3,"dy":-1},{"id":16,"x":19,"y":5,"dx":0,"dy":0},{"id":16,"x":22,"y":5,"dx":0,"dy":0},{"id":16,"x":23,"y":5,"dx":-1,"dy":1},{"id":16,"x":19,"y":6,"dx":-3,"dy":1},{"id":16,"x":0,"y":7,"dx":1,"dy":-1},{"id":16,"x":17,"y":8,"dx":1,"dy":0},{"id":16,"x":19,"y":8,"dx":-1,"dy":-1},{"id":16,"x":22,"y":8,"dx":1,"dy":1},{"id":16,"x":5,"y":9,"dx":2,"dy":0},{"id":16,"x":20,"y":9,"dx":-3,"dy":-1},{"id":16,"x":17,"y":11,"dx":-2,"dy":1},{"id":16,"x":20,"y":11,"dx":-1,"dy":-1},{"id":16,"x":3,"y":13,"dx":2,"dy":0},{"id":16,"x":7,"y":13,"dx":-2,"dy":1},{"id":16,"x":17,"y":14,"dx":-2,"dy":-2},{"id":16,"x":3,"y":15,"dx":0,"dy":1},{"id":16,"x":8,"y":15,"dx":-3,"dy":1},{"id":16,"x":21,"y":15,"dx":-2,"dy":-1},{"id":16,"x":5,"y":16,"dx":-3,"dy":0},{"id":16,"x":3,"y":17,"dx":-3,"dy":-2},{"id":16,"x":4,"y":17,"dx":3,"dy":2},{"id":16,"x":8,"y":18,"dx":1,"dy":0},{"id":16,"x":14,"y":18,"dx":-4,"dy":-1},{"id":16,"x":7,"y":19,"dx":-1,"dy":1},{"id":16,"x":14,"y":19,"dx":0,"dy":1}],"encoding":"rle","tiles":[[4,2],[3,1],[4,23],[0,1],[4,18],[29,1],[4,6],[0,1],[4,30],[19,3],[4,6],[0,1],[4,11],[28,1],[4,2],[19,2],[4,1],[19,1],[4,2],[0,1],[4,3],[3,1],[4,13],[19,2],[4,2],[19,1],[4,8],[3,1],[4,7],[7,1],[4,2],[19,2],[4,3],[19,1],[4,5],[3,1],[4,2],[3,1],[4,9],[19,2],[4,4],[19,1],[4,7],[3,1],[4,9],[19,2],[4,5],[19,1],[4,7],[3,1],[4,4],[0,1],[4,3],[19,2],[4,6],[19,1],[4,3],[3,2],[1,10],[19,2],[1,1],[4,8],[29,1],[4,12],[19,2],[1,1],[4,21],[19,2],[1,1],[4,1],[28,1],[7,1],[4,4],[0,1],[3,1],[4,6],[9,1],[4,5],[19,2],[1,1],[4,8],[3,1],[4,12],[19,2],[1,2],[4,3],[29,1],[4,5],[3,1],[4,9],[0,1],[19,2],[4,1],[1,1],[20,1],[4,19],[19,2],[4,9],[3,3],[4,5],[28,1],[4,2],[0,1],[4,14],[3,1],[4,22],[3,1],[4,1],[3,1],[4,21],[3,1]]} \ No newline at end of file diff --git a/apps/game/assets/maps/ponds.map b/apps/game/assets/maps/ponds.map index 9edb9b0..51504cc 100644 --- a/apps/game/assets/maps/ponds.map +++ b/apps/game/assets/maps/ponds.map @@ -1 +1 @@ -{"format":"rpg-map","version":1,"width":24,"height":24,"blocked":[2,3,6,7,24,25,26,27,9,10,18,21],"tall":{"3":{"height":1.5,"ground":0},"6":{"height":2.5,"ground":1},"7":{"height":1.75,"ground":4,"shadow":true},"9":{"height":1,"ground":8},"18":{"height":0.6,"ground":4},"21":{"height":2.5,"ground":8},"22":{"height":1.5,"ground":0},"23":{"height":1.5,"ground":0},"24":{"height":1.75,"ground":4,"shadow":true},"25":{"height":1.75,"ground":4,"shadow":true},"26":{"height":2.5,"ground":4,"shadow":true},"27":{"height":2.5,"ground":4,"shadow":true}},"variants":{"0":[0,11,12],"1":[1,14],"3":[3,22,23],"4":[4,13],"7":[7,24,25,26,27]},"decor":[{"id":16,"x":3,"y":0,"dx":-2,"dy":2},{"id":16,"x":14,"y":0,"dx":0,"dy":0},{"id":17,"x":2,"y":1,"dx":1,"dy":-1},{"id":16,"x":13,"y":1,"dx":-4,"dy":-2},{"id":16,"x":19,"y":1,"dx":-4,"dy":0},{"id":16,"x":23,"y":1,"dx":-2,"dy":1},{"id":16,"x":13,"y":2,"dx":2,"dy":1},{"id":16,"x":22,"y":2,"dx":3,"dy":1},{"id":16,"x":15,"y":3,"dx":-1,"dy":0},{"id":15,"x":10,"y":5,"dx":3,"dy":-2},{"id":16,"x":23,"y":5,"dx":-4,"dy":0},{"id":16,"x":6,"y":6,"dx":0,"dy":-1},{"id":15,"x":23,"y":6,"dx":-3,"dy":0},{"id":15,"x":3,"y":9,"dx":2,"dy":-2},{"id":16,"x":23,"y":9,"dx":1,"dy":-1},{"id":16,"x":22,"y":10,"dx":3,"dy":0},{"id":15,"x":1,"y":11,"dx":3,"dy":-1},{"id":16,"x":5,"y":11,"dx":1,"dy":-1},{"id":17,"x":20,"y":12,"dx":-3,"dy":-2},{"id":16,"x":21,"y":13,"dx":-1,"dy":1},{"id":16,"x":20,"y":14,"dx":1,"dy":2},{"id":16,"x":0,"y":16,"dx":2,"dy":1},{"id":15,"x":3,"y":17,"dx":4,"dy":-1},{"id":16,"x":15,"y":17,"dx":3,"dy":2},{"id":16,"x":22,"y":17,"dx":-2,"dy":2},{"id":16,"x":16,"y":18,"dx":0,"dy":0},{"id":15,"x":3,"y":19,"dx":3,"dy":0},{"id":15,"x":7,"y":19,"dx":0,"dy":-1},{"id":16,"x":14,"y":20,"dx":-2,"dy":-2},{"id":16,"x":19,"y":20,"dx":3,"dy":-1},{"id":16,"x":10,"y":21,"dx":2,"dy":1},{"id":16,"x":5,"y":22,"dx":1,"dy":1},{"id":16,"x":6,"y":22,"dx":-1,"dy":1},{"id":16,"x":14,"y":22,"dx":0,"dy":-1},{"id":16,"x":18,"y":22,"dx":0,"dy":-1},{"id":16,"x":19,"y":22,"dx":-1,"dy":-2},{"id":16,"x":22,"y":22,"dx":-4,"dy":-2},{"id":16,"x":7,"y":23,"dx":-2,"dy":-1},{"id":16,"x":15,"y":23,"dx":3,"dy":0},{"id":16,"x":17,"y":23,"dx":3,"dy":1}],"encoding":"rle","tiles":[[4,4],[0,1],[4,13],[0,3],[3,1],[4,2],[3,2],[0,4],[4,1],[0,1],[4,2],[0,1],[4,9],[0,3],[4,1],[3,2],[1,1],[0,3],[4,1],[0,1],[4,2],[0,1],[4,9],[0,1],[3,1],[4,3],[3,1],[4,1],[1,1],[0,1],[4,2],[0,2],[4,1],[0,2],[4,8],[0,1],[3,1],[0,2],[3,1],[0,5],[4,1],[0,2],[4,1],[0,2],[4,5],[0,1],[4,2],[0,1],[3,1],[0,2],[4,1],[0,2],[4,1],[1,1],[0,1],[4,1],[0,1],[4,1],[0,3],[4,4],[0,2],[4,3],[3,1],[0,1],[4,2],[3,1],[4,1],[0,1],[1,1],[0,1],[4,2],[0,6],[4,2],[5,1],[0,4],[4,1],[3,1],[0,1],[4,1],[0,1],[4,2],[1,2],[0,1],[4,1],[2,1],[0,1],[2,1],[4,1],[2,1],[4,1],[2,1],[0,1],[4,2],[0,1],[4,1],[0,2],[3,1],[4,3],[0,3],[1,1],[0,1],[4,1],[2,7],[4,1],[2,1],[4,1],[0,1],[4,1],[0,1],[4,1],[3,1],[4,2],[3,1],[0,2],[4,1],[1,3],[2,11],[0,3],[4,3],[3,2],[0,2],[2,2],[1,1],[2,10],[4,1],[2,1],[4,1],[0,1],[4,1],[3,2],[0,1],[4,1],[0,1],[4,2],[2,1],[1,2],[2,10],[4,1],[0,2],[4,2],[3,3],[0,2],[2,3],[1,1],[2,10],[0,2],[3,1],[4,2],[0,4],[4,1],[2,3],[1,1],[2,12],[4,1],[3,1],[4,2],[0,1],[3,1],[0,1],[4,1],[2,3],[1,1],[2,10],[4,5],[0,2],[4,4],[2,2],[1,2],[2,9],[4,2],[3,1],[4,1],[3,1],[4,1],[3,1],[0,2],[4,2],[2,2],[4,1],[1,1],[2,7],[4,1],[5,1],[4,2],[3,2],[4,4],[0,2],[4,1],[0,1],[5,1],[2,1],[1,1],[4,1],[2,2],[4,1],[2,1],[4,1],[2,2],[4,6],[3,1],[4,3],[0,2],[4,3],[1,7],[4,5],[3,1],[4,1],[0,1],[4,2],[3,1],[0,1],[4,2],[0,2],[4,13],[0,3],[4,1],[3,1],[4,2],[0,1],[4,1],[0,1],[4,4],[0,1],[5,1],[0,1],[4,7],[0,1],[4,1],[0,1],[4,1],[3,1],[4,3],[0,2],[4,4],[0,2],[4,10],[3,1],[4,11],[0,3],[4,21],[0,1],[4,10],[3,2]]} \ No newline at end of file +{"format":"rpg-map","version":1,"width":24,"height":24,"blocked":[2,3,6,7,24,25,26,27,9,10,18,21,28,29],"tall":{"3":{"height":1.5,"ground":0},"6":{"height":2.5,"ground":1},"7":{"height":1.75,"ground":4,"shadow":true},"9":{"height":1,"ground":8},"18":{"height":0.6,"ground":4},"21":{"height":2.5,"ground":8},"22":{"height":1.5,"ground":0},"23":{"height":1.5,"ground":0},"24":{"height":1.75,"ground":4,"shadow":true},"25":{"height":1.75,"ground":4,"shadow":true},"26":{"height":2.5,"ground":4,"shadow":true},"27":{"height":2.5,"ground":4,"shadow":true},"28":{"height":1.05,"ground":4},"29":{"height":1.25,"ground":4}},"variants":{"0":[0,11,12],"1":[1,14],"3":[3,22,23],"4":[4,13],"7":[7,24,25,26,27]},"decor":[{"id":16,"x":3,"y":0,"dx":-2,"dy":2},{"id":16,"x":14,"y":0,"dx":0,"dy":0},{"id":17,"x":2,"y":1,"dx":1,"dy":-1},{"id":16,"x":13,"y":1,"dx":-4,"dy":-2},{"id":16,"x":19,"y":1,"dx":-4,"dy":0},{"id":16,"x":23,"y":1,"dx":-2,"dy":1},{"id":16,"x":13,"y":2,"dx":2,"dy":1},{"id":16,"x":22,"y":2,"dx":3,"dy":1},{"id":16,"x":15,"y":3,"dx":-1,"dy":0},{"id":15,"x":10,"y":5,"dx":3,"dy":-2},{"id":16,"x":23,"y":5,"dx":-4,"dy":0},{"id":15,"x":23,"y":6,"dx":-3,"dy":0},{"id":15,"x":3,"y":9,"dx":2,"dy":-2},{"id":16,"x":23,"y":9,"dx":1,"dy":-1},{"id":16,"x":22,"y":10,"dx":3,"dy":0},{"id":15,"x":1,"y":11,"dx":3,"dy":-1},{"id":16,"x":5,"y":11,"dx":1,"dy":-1},{"id":17,"x":20,"y":12,"dx":-3,"dy":-2},{"id":16,"x":21,"y":13,"dx":-1,"dy":1},{"id":16,"x":20,"y":14,"dx":1,"dy":2},{"id":16,"x":0,"y":16,"dx":2,"dy":1},{"id":15,"x":3,"y":17,"dx":4,"dy":-1},{"id":16,"x":15,"y":17,"dx":3,"dy":2},{"id":16,"x":22,"y":17,"dx":-2,"dy":2},{"id":16,"x":16,"y":18,"dx":0,"dy":0},{"id":15,"x":3,"y":19,"dx":3,"dy":0},{"id":16,"x":15,"y":20,"dx":-2,"dy":-2},{"id":16,"x":20,"y":20,"dx":3,"dy":-1},{"id":16,"x":2,"y":21,"dx":-1,"dy":1},{"id":15,"x":11,"y":21,"dx":2,"dy":1},{"id":16,"x":5,"y":22,"dx":1,"dy":1},{"id":16,"x":6,"y":22,"dx":-1,"dy":1},{"id":16,"x":14,"y":22,"dx":0,"dy":-1},{"id":16,"x":18,"y":22,"dx":0,"dy":-1},{"id":16,"x":19,"y":22,"dx":-1,"dy":-2},{"id":16,"x":22,"y":22,"dx":-4,"dy":-2},{"id":16,"x":7,"y":23,"dx":-2,"dy":-1},{"id":16,"x":15,"y":23,"dx":3,"dy":0},{"id":16,"x":17,"y":23,"dx":3,"dy":1}],"encoding":"rle","tiles":[[4,4],[0,1],[4,13],[0,3],[3,1],[4,2],[3,2],[0,4],[4,1],[0,1],[4,2],[0,1],[4,9],[0,3],[4,1],[3,2],[1,1],[0,3],[4,1],[0,1],[4,2],[0,1],[4,9],[0,1],[3,1],[4,3],[3,1],[4,1],[1,1],[0,1],[4,2],[28,1],[0,1],[4,1],[0,2],[4,8],[0,1],[3,1],[0,2],[3,1],[0,1],[29,1],[0,3],[4,1],[0,2],[29,1],[0,2],[4,5],[0,1],[4,2],[0,1],[3,1],[0,2],[4,1],[0,2],[4,1],[1,1],[0,1],[4,1],[0,1],[4,1],[0,3],[4,4],[0,2],[4,3],[3,1],[0,1],[4,2],[3,1],[4,1],[0,1],[1,1],[0,1],[28,2],[0,1],[28,1],[0,4],[4,2],[5,1],[0,4],[4,1],[3,1],[0,1],[4,1],[0,1],[4,2],[1,2],[0,1],[4,1],[2,1],[0,1],[2,1],[4,1],[2,1],[4,1],[2,1],[0,1],[4,2],[0,1],[4,1],[0,2],[3,1],[4,3],[0,3],[1,1],[0,1],[4,1],[2,7],[4,1],[2,1],[4,1],[0,1],[4,1],[0,1],[4,1],[3,1],[4,2],[3,1],[0,2],[4,1],[1,3],[2,11],[0,3],[4,3],[3,2],[0,2],[2,2],[1,1],[2,10],[4,1],[2,1],[4,1],[0,1],[4,1],[3,2],[0,1],[4,1],[0,1],[4,2],[2,1],[1,2],[2,10],[4,1],[0,2],[4,2],[3,3],[0,2],[2,3],[1,1],[2,10],[0,2],[3,1],[4,2],[0,4],[4,1],[2,3],[1,1],[2,12],[4,1],[3,1],[4,2],[0,1],[3,1],[0,1],[4,1],[2,3],[1,1],[2,10],[4,5],[0,2],[4,4],[2,2],[1,2],[2,9],[4,2],[3,1],[4,1],[3,1],[4,1],[3,1],[0,2],[4,2],[2,2],[4,1],[1,1],[2,7],[4,1],[5,1],[4,2],[3,2],[4,4],[0,2],[4,1],[0,1],[5,1],[2,1],[1,1],[4,1],[2,2],[4,1],[2,1],[4,1],[2,2],[4,6],[3,1],[4,3],[0,2],[4,3],[1,7],[4,5],[3,1],[4,1],[0,1],[4,2],[3,1],[0,1],[4,2],[0,1],[29,1],[4,13],[0,3],[4,1],[3,1],[4,2],[0,1],[4,1],[0,1],[4,4],[0,1],[5,1],[0,1],[4,7],[0,1],[4,1],[0,1],[4,1],[3,1],[4,3],[29,1],[0,1],[4,4],[0,2],[4,10],[3,1],[4,7],[29,1],[4,3],[0,3],[4,21],[0,1],[4,10],[3,2]]} \ No newline at end of file diff --git a/apps/game/assets/maps/rust_grove.map b/apps/game/assets/maps/rust_grove.map index 3f08263..b707dcf 100644 --- a/apps/game/assets/maps/rust_grove.map +++ b/apps/game/assets/maps/rust_grove.map @@ -1 +1 @@ -{"format":"rpg-map","version":1,"width":24,"height":20,"blocked":[2,3,6,7,24,25,26,27,9,10,18,21],"tall":{"3":{"height":1.5,"ground":0},"6":{"height":2.5,"ground":1},"7":{"height":1.75,"ground":4,"shadow":true},"9":{"height":1,"ground":8},"18":{"height":0.6,"ground":4},"21":{"height":2.5,"ground":8},"22":{"height":1.5,"ground":0},"23":{"height":1.5,"ground":0},"24":{"height":1.75,"ground":4,"shadow":true},"25":{"height":1.75,"ground":4,"shadow":true},"26":{"height":2.5,"ground":4,"shadow":true},"27":{"height":2.5,"ground":4,"shadow":true}},"variants":{"0":[0,11,12],"1":[1,14],"3":[3,22,23],"4":[4,13],"7":[7,24,25,26,27]},"decor":[{"id":16,"x":10,"y":0,"dx":1,"dy":1},{"id":16,"x":1,"y":2,"dx":-2,"dy":-1},{"id":16,"x":8,"y":3,"dx":-1,"dy":1},{"id":16,"x":9,"y":5,"dx":4,"dy":1},{"id":16,"x":15,"y":5,"dx":3,"dy":-1},{"id":16,"x":4,"y":8,"dx":3,"dy":1},{"id":16,"x":13,"y":9,"dx":-4,"dy":-2},{"id":16,"x":14,"y":11,"dx":-3,"dy":-1},{"id":16,"x":15,"y":11,"dx":-2,"dy":1},{"id":16,"x":9,"y":12,"dx":2,"dy":1},{"id":16,"x":12,"y":12,"dx":1,"dy":0},{"id":16,"x":20,"y":12,"dx":-2,"dy":-1},{"id":16,"x":2,"y":13,"dx":3,"dy":1},{"id":16,"x":23,"y":13,"dx":-3,"dy":1},{"id":16,"x":10,"y":14,"dx":3,"dy":2},{"id":17,"x":14,"y":14,"dx":1,"dy":0},{"id":16,"x":20,"y":16,"dx":-1,"dy":0},{"id":16,"x":12,"y":17,"dx":1,"dy":1},{"id":16,"x":14,"y":18,"dx":-2,"dy":2},{"id":16,"x":2,"y":19,"dx":2,"dy":1}],"encoding":"rle","tiles":[[3,4],[4,2],[3,4],[4,1],[3,2],[4,1],[3,4],[4,1],[3,2],[4,1],[3,10],[4,3],[3,5],[4,1],[3,3],[4,1],[3,1],[4,1],[3,2],[4,1],[3,2],[4,1],[3,1],[4,1],[3,2],[4,1],[3,2],[0,1],[3,1],[4,1],[3,4],[4,2],[3,2],[4,1],[3,3],[4,3],[3,2],[4,1],[3,1],[4,2],[3,1],[4,1],[18,1],[3,1],[18,1],[3,9],[4,1],[3,1],[4,1],[18,1],[3,3],[4,2],[3,1],[4,2],[3,2],[4,1],[3,1],[4,1],[3,3],[4,1],[3,7],[18,1],[3,2],[4,3],[3,2],[4,3],[3,4],[4,2],[3,4],[4,1],[3,2],[4,1],[3,3],[4,1],[3,3],[4,1],[3,1],[4,3],[3,9],[4,1],[3,1],[4,6],[3,1],[4,1],[3,2],[4,3],[3,1],[4,1],[3,4],[4,2],[3,1],[4,1],[3,1],[4,3],[3,1],[4,2],[1,1],[4,5],[3,1],[4,1],[3,1],[4,2],[3,3],[4,2],[3,5],[4,9],[3,1],[4,4],[3,2],[1,8],[4,7],[1,7],[3,4],[4,15],[3,1],[4,1],[3,3],[4,1],[3,6],[4,9],[3,2],[4,1],[3,2],[4,2],[3,4],[4,1],[3,1],[4,1],[3,3],[4,8],[3,4],[4,1],[3,2],[4,1],[3,9],[4,5],[0,1],[3,3],[18,1],[3,1],[4,1],[3,1],[4,2],[3,2],[4,1],[3,2],[4,1],[3,1],[4,1],[3,2],[18,1],[3,2],[4,1],[3,2],[4,1],[18,1],[4,3],[3,1],[4,1],[3,3],[4,1],[3,3],[4,1],[3,1],[4,1],[3,1],[4,4],[3,2],[4,5],[3,1],[4,1],[3,5],[4,2],[3,1],[4,1],[3,1],[4,2],[3,1],[4,2],[3,1],[4,1],[3,1],[4,1],[3,1],[4,2],[3,3],[4,1],[3,3],[4,2],[3,2],[4,2],[3,3],[4,2],[3,2],[4,1],[3,5],[4,4],[3,7],[4,2],[3,3],[4,3],[3,1],[4,2],[3,3]]} \ No newline at end of file +{"format":"rpg-map","version":1,"width":24,"height":20,"blocked":[2,3,6,7,24,25,26,27,9,10,18,21,28,29],"tall":{"3":{"height":1.5,"ground":0},"6":{"height":2.5,"ground":1},"7":{"height":1.75,"ground":4,"shadow":true},"9":{"height":1,"ground":8},"18":{"height":0.6,"ground":4},"21":{"height":2.5,"ground":8},"22":{"height":1.5,"ground":0},"23":{"height":1.5,"ground":0},"24":{"height":1.75,"ground":4,"shadow":true},"25":{"height":1.75,"ground":4,"shadow":true},"26":{"height":2.5,"ground":4,"shadow":true},"27":{"height":2.5,"ground":4,"shadow":true},"28":{"height":1.05,"ground":4},"29":{"height":1.25,"ground":4}},"variants":{"0":[0,11,12],"1":[1,14],"3":[3,22,23],"4":[4,13],"7":[7,24,25,26,27]},"decor":[{"id":16,"x":10,"y":0,"dx":1,"dy":1},{"id":16,"x":1,"y":2,"dx":-2,"dy":-1},{"id":16,"x":8,"y":3,"dx":-1,"dy":1},{"id":16,"x":9,"y":5,"dx":4,"dy":1},{"id":16,"x":15,"y":5,"dx":3,"dy":-1},{"id":16,"x":4,"y":8,"dx":3,"dy":1},{"id":16,"x":13,"y":9,"dx":-4,"dy":-2},{"id":16,"x":14,"y":11,"dx":-3,"dy":-1},{"id":16,"x":15,"y":11,"dx":-2,"dy":1},{"id":16,"x":9,"y":12,"dx":2,"dy":1},{"id":16,"x":12,"y":12,"dx":1,"dy":0},{"id":16,"x":20,"y":12,"dx":-2,"dy":-1},{"id":16,"x":2,"y":13,"dx":3,"dy":1},{"id":16,"x":23,"y":13,"dx":-3,"dy":1},{"id":16,"x":10,"y":14,"dx":3,"dy":2},{"id":17,"x":14,"y":14,"dx":1,"dy":0},{"id":16,"x":20,"y":16,"dx":-1,"dy":0},{"id":16,"x":12,"y":17,"dx":1,"dy":1},{"id":16,"x":14,"y":18,"dx":-2,"dy":2},{"id":16,"x":2,"y":19,"dx":2,"dy":1}],"encoding":"rle","tiles":[[3,4],[4,2],[3,4],[4,1],[3,2],[4,1],[3,4],[4,1],[3,2],[4,1],[3,10],[4,3],[3,5],[4,1],[3,3],[4,1],[3,1],[4,1],[3,2],[4,1],[3,2],[4,1],[3,1],[4,1],[3,2],[4,1],[3,2],[0,1],[3,1],[4,1],[3,4],[4,1],[29,1],[3,2],[4,1],[3,3],[28,1],[4,2],[3,2],[4,1],[3,1],[4,2],[3,1],[4,1],[18,1],[3,1],[18,1],[3,9],[4,1],[3,1],[4,1],[18,1],[3,3],[4,2],[3,1],[4,2],[3,2],[4,1],[3,1],[28,1],[3,3],[4,1],[3,7],[18,1],[3,2],[4,3],[3,2],[4,3],[3,4],[4,2],[3,4],[4,1],[3,2],[4,1],[3,3],[4,1],[3,3],[4,1],[3,1],[4,3],[3,9],[4,1],[3,1],[4,4],[28,1],[4,1],[3,1],[4,1],[3,2],[29,1],[4,2],[3,1],[4,1],[3,4],[4,2],[3,1],[4,1],[3,1],[4,3],[3,1],[4,2],[1,1],[4,4],[29,1],[3,1],[4,1],[3,1],[4,2],[3,3],[4,2],[3,5],[4,9],[3,1],[4,4],[3,2],[1,8],[4,7],[1,7],[3,4],[4,15],[3,1],[4,1],[3,3],[4,1],[3,6],[4,9],[3,2],[4,1],[3,2],[4,2],[3,4],[4,1],[3,1],[4,1],[3,3],[4,8],[3,4],[4,1],[3,2],[4,1],[3,9],[4,5],[0,1],[3,3],[18,1],[3,1],[4,1],[3,1],[4,2],[3,2],[4,1],[3,2],[4,1],[3,1],[4,1],[3,2],[18,1],[3,2],[4,1],[3,2],[4,1],[18,1],[4,3],[3,1],[4,1],[3,3],[4,1],[3,3],[4,1],[3,1],[29,1],[3,1],[4,4],[3,2],[4,5],[3,1],[4,1],[3,5],[4,2],[3,1],[4,1],[3,1],[4,2],[3,1],[4,2],[3,1],[4,1],[3,1],[4,1],[3,1],[4,2],[3,3],[4,1],[3,3],[4,2],[3,2],[4,2],[3,3],[4,2],[3,2],[4,1],[3,5],[4,4],[3,7],[4,2],[3,3],[4,3],[3,1],[4,2],[3,3]]} \ No newline at end of file diff --git a/apps/game/assets/maps/shop.map b/apps/game/assets/maps/shop.map index c4084ed..e66478e 100644 --- a/apps/game/assets/maps/shop.map +++ b/apps/game/assets/maps/shop.map @@ -1 +1 @@ -{"format":"rpg-map","version":1,"width":11,"height":9,"blocked":[2,3,6,7,24,25,26,27,9,10,18,21],"tall":{"3":{"height":1.5,"ground":0},"6":{"height":2.5,"ground":1},"7":{"height":1.75,"ground":4,"shadow":true},"9":{"height":1,"ground":8},"18":{"height":0.6,"ground":4},"21":{"height":2.5,"ground":8},"22":{"height":1.5,"ground":0},"23":{"height":1.5,"ground":0},"24":{"height":1.75,"ground":4,"shadow":true},"25":{"height":1.75,"ground":4,"shadow":true},"26":{"height":2.5,"ground":4,"shadow":true},"27":{"height":2.5,"ground":4,"shadow":true}},"encoding":"rle","tiles":[[9,12],[8,9],[9,2],[8,9],[9,2],[8,9],[9,2],[8,9],[9,2],[8,9],[9,2],[8,9],[9,2],[8,9],[9,6],[8,1],[9,5]]} \ No newline at end of file +{"format":"rpg-map","version":1,"width":11,"height":9,"blocked":[2,3,6,7,24,25,26,27,9,10,18,21,28,29],"tall":{"3":{"height":1.5,"ground":0},"6":{"height":2.5,"ground":1},"7":{"height":1.75,"ground":4,"shadow":true},"9":{"height":1,"ground":8},"18":{"height":0.6,"ground":4},"21":{"height":2.5,"ground":8},"22":{"height":1.5,"ground":0},"23":{"height":1.5,"ground":0},"24":{"height":1.75,"ground":4,"shadow":true},"25":{"height":1.75,"ground":4,"shadow":true},"26":{"height":2.5,"ground":4,"shadow":true},"27":{"height":2.5,"ground":4,"shadow":true},"28":{"height":1.05,"ground":4},"29":{"height":1.25,"ground":4}},"encoding":"rle","tiles":[[9,12],[8,9],[9,2],[8,9],[9,2],[8,9],[9,2],[8,9],[9,2],[8,9],[9,2],[8,9],[9,2],[8,9],[9,6],[8,1],[9,5]]} \ No newline at end of file diff --git a/apps/game/assets/maps/zvenets.map b/apps/game/assets/maps/zvenets.map index cdba669..20d97d8 100644 --- a/apps/game/assets/maps/zvenets.map +++ b/apps/game/assets/maps/zvenets.map @@ -1 +1 @@ -{"format":"rpg-map","version":1,"width":28,"height":20,"blocked":[2,3,6,7,24,25,26,27,9,10,18,21],"tall":{"3":{"height":1.5,"ground":0},"6":{"height":2.5,"ground":1},"7":{"height":1.75,"ground":4,"shadow":true},"9":{"height":1,"ground":8},"18":{"height":0.6,"ground":4},"21":{"height":2.5,"ground":8},"22":{"height":1.5,"ground":0},"23":{"height":1.5,"ground":0},"24":{"height":1.75,"ground":4,"shadow":true},"25":{"height":1.75,"ground":4,"shadow":true},"26":{"height":2.5,"ground":4,"shadow":true},"27":{"height":2.5,"ground":4,"shadow":true}},"variants":{"0":[0,11,12],"1":[1,14],"3":[3,22,23],"4":[4,13],"7":[7,24,25,26,27]},"decor":[{"id":16,"x":14,"y":0,"dx":1,"dy":1},{"id":16,"x":23,"y":0,"dx":0,"dy":1},{"id":16,"x":26,"y":0,"dx":3,"dy":1},{"id":16,"x":3,"y":1,"dx":0,"dy":0},{"id":17,"x":9,"y":1,"dx":3,"dy":0},{"id":15,"x":10,"y":1,"dx":3,"dy":2},{"id":16,"x":19,"y":1,"dx":-1,"dy":1},{"id":16,"x":1,"y":2,"dx":1,"dy":0},{"id":16,"x":3,"y":2,"dx":4,"dy":1},{"id":16,"x":11,"y":2,"dx":-1,"dy":-2},{"id":15,"x":10,"y":3,"dx":4,"dy":1},{"id":16,"x":15,"y":3,"dx":0,"dy":0},{"id":16,"x":26,"y":5,"dx":3,"dy":-1},{"id":16,"x":20,"y":6,"dx":1,"dy":-1},{"id":16,"x":26,"y":6,"dx":-2,"dy":-2},{"id":16,"x":5,"y":7,"dx":1,"dy":-2},{"id":16,"x":7,"y":7,"dx":0,"dy":0},{"id":16,"x":3,"y":8,"dx":3,"dy":2},{"id":16,"x":17,"y":8,"dx":1,"dy":0},{"id":16,"x":22,"y":9,"dx":1,"dy":-1},{"id":16,"x":2,"y":11,"dx":-3,"dy":-1},{"id":16,"x":26,"y":11,"dx":1,"dy":1},{"id":15,"x":4,"y":12,"dx":4,"dy":0},{"id":17,"x":23,"y":12,"dx":-2,"dy":2},{"id":15,"x":4,"y":14,"dx":-1,"dy":-1},{"id":15,"x":11,"y":14,"dx":3,"dy":1},{"id":16,"x":17,"y":14,"dx":-4,"dy":2},{"id":16,"x":23,"y":16,"dx":3,"dy":-2},{"id":17,"x":16,"y":17,"dx":3,"dy":-2},{"id":16,"x":5,"y":18,"dx":0,"dy":2}],"encoding":"rle","tiles":[[4,30],[3,1],[4,6],[0,4],[4,13],[3,1],[4,9],[0,2],[4,2],[0,1],[4,23],[0,3],[4,1],[0,1],[4,12],[3,1],[4,2],[3,1],[4,1],[3,1],[4,5],[0,5],[4,12],[3,1],[4,2],[0,2],[4,6],[0,5],[4,1],[0,1],[4,3],[27,1],[4,6],[3,1],[4,3],[3,1],[4,5],[7,1],[4,1],[10,1],[1,10],[4,8],[3,1],[0,2],[4,6],[1,5],[6,1],[4,1],[1,1],[4,1],[1,2],[4,6],[3,3],[4,1],[3,1],[4,6],[1,8],[4,1],[1,1],[4,6],[3,1],[4,3],[0,1],[4,7],[1,1],[4,1],[1,9],[4,1],[26,1],[4,8],[1,12],[0,1],[1,1],[4,1],[1,3],[4,1],[0,3],[4,1],[1,2],[4,1],[3,1],[0,1],[4,7],[1,2],[4,1],[1,8],[0,4],[4,5],[3,1],[0,5],[4,2],[1,11],[4,1],[0,3],[4,6],[3,1],[0,6],[1,8],[4,1],[1,2],[4,1],[0,3],[4,4],[3,1],[4,3],[0,3],[4,1],[0,5],[4,17],[0,1],[4,1],[0,2],[4,1],[0,1],[4,1],[0,2],[4,5],[0,4],[4,7],[3,1],[0,2],[4,1],[0,1],[4,1],[0,2],[4,2],[0,2],[4,4],[0,5],[4,5],[3,2],[4,2],[0,1],[3,1],[4,5],[0,12],[4,8],[0,3],[4,6],[0,5],[4,1],[0,5],[4,4],[0,1],[3,1],[0,1],[4,1],[3,1],[0,1],[4,7],[0,7],[4,1],[0,3],[4,4],[0,3],[4,1]]} \ No newline at end of file +{"format":"rpg-map","version":1,"width":28,"height":20,"blocked":[2,3,6,7,24,25,26,27,9,10,18,21,28,29],"tall":{"3":{"height":1.5,"ground":0},"6":{"height":2.5,"ground":1},"7":{"height":1.75,"ground":4,"shadow":true},"9":{"height":1,"ground":8},"18":{"height":0.6,"ground":4},"21":{"height":2.5,"ground":8},"22":{"height":1.5,"ground":0},"23":{"height":1.5,"ground":0},"24":{"height":1.75,"ground":4,"shadow":true},"25":{"height":1.75,"ground":4,"shadow":true},"26":{"height":2.5,"ground":4,"shadow":true},"27":{"height":2.5,"ground":4,"shadow":true},"28":{"height":1.05,"ground":4},"29":{"height":1.25,"ground":4}},"variants":{"0":[0,11,12],"1":[1,14],"3":[3,22,23],"4":[4,13],"7":[7,24,25,26,27]},"decor":[{"id":16,"x":14,"y":0,"dx":1,"dy":1},{"id":16,"x":23,"y":0,"dx":0,"dy":1},{"id":16,"x":26,"y":0,"dx":3,"dy":1},{"id":16,"x":3,"y":1,"dx":0,"dy":0},{"id":17,"x":9,"y":1,"dx":3,"dy":0},{"id":15,"x":10,"y":1,"dx":3,"dy":2},{"id":16,"x":19,"y":1,"dx":-1,"dy":1},{"id":16,"x":1,"y":2,"dx":1,"dy":0},{"id":16,"x":3,"y":2,"dx":4,"dy":1},{"id":16,"x":11,"y":2,"dx":-1,"dy":-2},{"id":15,"x":10,"y":3,"dx":4,"dy":1},{"id":16,"x":15,"y":3,"dx":0,"dy":0},{"id":16,"x":26,"y":5,"dx":3,"dy":-1},{"id":16,"x":20,"y":6,"dx":1,"dy":-1},{"id":16,"x":26,"y":6,"dx":-2,"dy":-2},{"id":16,"x":5,"y":7,"dx":1,"dy":-2},{"id":16,"x":7,"y":7,"dx":0,"dy":0},{"id":16,"x":3,"y":8,"dx":3,"dy":2},{"id":16,"x":17,"y":8,"dx":1,"dy":0},{"id":16,"x":22,"y":9,"dx":1,"dy":-1},{"id":16,"x":2,"y":11,"dx":-3,"dy":-1},{"id":16,"x":26,"y":11,"dx":1,"dy":1},{"id":15,"x":4,"y":12,"dx":4,"dy":0},{"id":17,"x":23,"y":12,"dx":-2,"dy":2},{"id":15,"x":4,"y":14,"dx":-1,"dy":-1},{"id":15,"x":11,"y":14,"dx":3,"dy":1},{"id":16,"x":17,"y":14,"dx":-4,"dy":2},{"id":16,"x":23,"y":16,"dx":3,"dy":-2},{"id":17,"x":16,"y":17,"dx":3,"dy":-2},{"id":16,"x":5,"y":18,"dx":0,"dy":2}],"encoding":"rle","tiles":[[4,30],[3,1],[4,6],[0,4],[4,13],[3,1],[4,9],[0,2],[4,2],[0,1],[29,1],[4,22],[0,3],[4,1],[0,1],[4,12],[3,1],[4,2],[3,1],[4,1],[3,1],[4,5],[0,5],[4,12],[3,1],[4,2],[0,1],[29,1],[4,6],[0,3],[28,1],[0,1],[4,1],[0,1],[4,3],[27,1],[4,6],[3,1],[4,3],[3,1],[4,5],[7,1],[4,1],[10,1],[1,10],[4,8],[3,1],[0,2],[4,6],[1,5],[6,1],[4,1],[1,1],[4,1],[1,2],[4,6],[3,3],[4,1],[3,1],[4,6],[1,8],[4,1],[1,1],[4,6],[3,1],[4,3],[0,1],[4,7],[1,1],[4,1],[1,9],[4,1],[26,1],[4,8],[1,12],[0,1],[1,1],[4,1],[1,3],[4,1],[0,3],[4,1],[1,2],[4,1],[3,1],[0,1],[4,7],[1,2],[4,1],[1,8],[0,4],[4,5],[3,1],[0,5],[4,2],[1,11],[4,1],[0,3],[4,6],[3,1],[0,6],[1,8],[4,1],[1,2],[4,1],[0,3],[4,4],[3,1],[4,3],[0,3],[4,1],[0,5],[4,17],[0,1],[4,1],[0,2],[4,1],[0,1],[4,1],[0,2],[4,5],[0,4],[4,7],[3,1],[0,2],[4,1],[0,1],[4,1],[0,2],[4,2],[0,2],[4,4],[0,5],[4,5],[3,2],[4,2],[0,1],[3,1],[4,5],[0,12],[4,8],[0,3],[4,6],[0,5],[4,1],[0,5],[4,4],[0,1],[3,1],[0,1],[4,1],[3,1],[0,1],[4,7],[0,7],[4,1],[0,3],[4,4],[0,3],[4,1]]} \ No newline at end of file diff --git a/apps/game/assets/tiles/boulder.png b/apps/game/assets/tiles/boulder.png new file mode 100644 index 0000000..73587b8 --- /dev/null +++ b/apps/game/assets/tiles/boulder.png Binary files differ diff --git a/apps/game/assets/tiles/bush.png b/apps/game/assets/tiles/bush.png new file mode 100644 index 0000000..df32cd1 --- /dev/null +++ b/apps/game/assets/tiles/bush.png Binary files differ diff --git a/apps/game/assets/tiles/house.png b/apps/game/assets/tiles/house.png index b6b6c21..d5820b1 100644 --- a/apps/game/assets/tiles/house.png +++ b/apps/game/assets/tiles/house.png Binary files differ diff --git a/apps/game/assets/tiles/house_5.png b/apps/game/assets/tiles/house_5.png index 594fdd6..8f12ce9 100644 --- a/apps/game/assets/tiles/house_5.png +++ b/apps/game/assets/tiles/house_5.png Binary files differ diff --git a/apps/game/src/Game.ts b/apps/game/src/Game.ts index 57555e6..dfb179a 100644 --- a/apps/game/src/Game.ts +++ b/apps/game/src/Game.ts @@ -82,6 +82,8 @@ 'tiles/house_3', 'tiles/house_4', 'tiles/house_5', + 'tiles/boulder', + 'tiles/bush', 'tiles/tower', 'tiles/floor', 'tiles/wall', diff --git a/apps/game/src/data/assetSets.ts b/apps/game/src/data/assetSets.ts index af11385..f016297 100644 --- a/apps/game/src/data/assetSets.ts +++ b/apps/game/src/data/assetSets.ts @@ -32,6 +32,8 @@ [TILES.HOUSE_V2, a.texture('tiles/house_3')], [TILES.HOUSE_V3, a.texture('tiles/house_4')], [TILES.HOUSE_V4, a.texture('tiles/house_5')], + [TILES.BOULDER, a.texture('tiles/boulder')], + [TILES.BUSH, a.texture('tiles/bush')], [TILES.FLOOR, a.texture('tiles/floor')], [TILES.WALL, a.texture('tiles/wall')], [TILES.WELL, a.texture('tiles/well')], diff --git a/apps/game/src/data/map.ts b/apps/game/src/data/map.ts index c0a81f0..81b2d09 100644 --- a/apps/game/src/data/map.ts +++ b/apps/game/src/data/map.ts @@ -39,7 +39,11 @@ HOUSE_V1: 24, HOUSE_V2: 25, HOUSE_V3: 26, - HOUSE_V4: 27 + HOUSE_V4: 27, + /** Валун — крупный непроходимый камень (луга, пруды, роща, разъезд). */ + BOULDER: 28, + /** Большой мёртвый куст — непроходимое облако ветвей. */ + BUSH: 29 } as const; const BLOCKED = [ @@ -54,7 +58,9 @@ TILES.WALL, TILES.WELL, TILES.WIRE, - TILES.MACHINE + TILES.MACHINE, + TILES.BOULDER, + TILES.BUSH ]; /** Все id деревьев (вьюхи крон/частицы/соседство — общий случай). */ @@ -72,6 +78,9 @@ // Высокие дома 32x80 — ростом с башню (2.5 юнита). [TILES.HOUSE_V3]: { height: 2.5, ground: TILES.ASH, shadow: true }, [TILES.HOUSE_V4]: { height: 2.5, ground: TILES.ASH, shadow: true }, + // Валун и куст: приземистые препятствия (высота спрайта ≤ 1.25 — не резать куллингом). + [TILES.BOULDER]: { height: 1.05, ground: TILES.ASH }, + [TILES.BUSH]: { height: 1.25, ground: TILES.ASH }, // Стены интерьеров — вертикальные объекты, под ними пол. [TILES.WALL]: { height: 1, ground: TILES.FLOOR }, // Бухта кабеля — низкая груда на пепле. @@ -136,6 +145,35 @@ } /** + * Разбросать валуны и кусты по свободной земле (GRASS/ASH), не затирая тропы, + * воду и высокие объекты. Ставится до расчисток переходов/полян — важные тайлы + * все равно перезаписываются после. Часть попыток может не найти место — это + * допустимо (мелкий разброс у плотных карт). + */ +function scatterRocksAndBushes( + tiles: number[], + width: number, + height: number, + rng: { next: () => number }, + boulders: number, + bushes: number +): void { + const free = (x: number, y: number) => + tiles[y * width + x] === TILES.GRASS || tiles[y * width + x] === TILES.ASH; + const place = (id: number, count: number) => { + for (let i = 0; i < count * 24 && count > 0; i++) { + const x = 1 + Math.floor(rng.next() * (width - 2)); + const y = 1 + Math.floor(rng.next() * (height - 2)); + if (!free(x, y)) continue; + tiles[y * width + x] = id; + count--; + } + }; + place(TILES.BOULDER, boulders); + place(TILES.BUSH, bushes); +} + +/** * Локация «Выжженные луга»: поляны травы, тропа через карту, * пара прудов и рощи деревьев по краям. */ @@ -205,6 +243,9 @@ } } + // Валуны и кусты на полянах. + scatterRocksAndBushes(tiles, width, height, rng, 5, 7); + // Стартовая поляна вокруг центра всегда свободна. const cx = Math.floor(width / 2); const cy = Math.floor(height / 2); @@ -300,6 +341,9 @@ } } + // Валуны и кусты в прогалинах. + scatterRocksAndBushes(tiles, width, height, rng, 3, 4); + // Тропа: с запада (вход из Звенца) на восток (к разъезду) — до самого // тайла перехода (22,10), чтобы A* всегда доводил. for (let x = 1; x <= 22; x++) tiles[at(x, 10)] = TILES.PATH; @@ -386,6 +430,9 @@ } } + // Валуны и кусты среди руин. + scatterRocksAndBushes(tiles, width, height, rng, 3, 3); + // Тропа от западного входа к рельсам, вдоль них и к люку. for (let x = 1; x <= 10; x++) tiles[at(x, 10)] = TILES.PATH; for (let y = 10; y <= 14; y++) tiles[at(13, y)] = TILES.PATH; @@ -506,6 +553,9 @@ if (tiles[at(x, y)] !== TILES.WATER) tiles[at(x, y)] = TILES.TREE; } + // Валуны и кусты у берегов. + scatterRocksAndBushes(tiles, width, height, rng, 4, 5); + // Поляна у входа свободна; тайлы перехода — тропа. for (let dy = 0; dy <= 1; dy++) { for (let dx = 0; dx <= 1; dx++) { @@ -615,6 +665,9 @@ } } + // Пара кустов по краю деревни (валун один — у рощи за площадью). + scatterRocksAndBushes(tiles, width, height, rng, 1, 2); + // Башня с колоколом — север площади. tiles[at(14, 7)] = TILES.TOWER; diff --git a/apps/game/src/scenes/MapScene.ts b/apps/game/src/scenes/MapScene.ts index 8d59df3..54d39f2 100644 --- a/apps/game/src/scenes/MapScene.ts +++ b/apps/game/src/scenes/MapScene.ts @@ -36,6 +36,8 @@ [TILES.HOUSE_V2]: 0x5a4a3c, [TILES.HOUSE_V3]: 0x5a4a3c, [TILES.HOUSE_V4]: 0x5a4a3c, + [TILES.BOULDER]: 0x767681, // P5 + [TILES.BUSH]: 0x343b2c, // G0 [TILES.FLOOR]: 0x44454e, // M1 — полы интерьеров [TILES.WALL]: 0x26262e, // M0 — стены [TILES.WELL]: 0x8a6a2e, // B0 — латунный колодец diff --git a/apps/game/tools/pixelart/gen.mjs b/apps/game/tools/pixelart/gen.mjs index 33fee2b..b31a9e5 100644 --- a/apps/game/tools/pixelart/gen.mjs +++ b/apps/game/tools/pixelart/gen.mjs @@ -275,6 +275,14 @@ return c; } +/** Линия по Брезенхэму (для кромок и трещин). */ +function line(canvas, x0, y0, x1, y1, color) { + const n = Math.max(Math.abs(x1 - x0), Math.abs(y1 - y0), 1); + for (let i = 0; i <= n; i++) { + canvas.set(Math.round(x0 + ((x1 - x0) * i) / n), Math.round(y0 + ((y1 - y0) * i) / n), color); + } +} + /** Построчная заливка полигона: fn(y, x0, x1) рисует строку внутри контура. */ function fillPolyRows(canvas, pts, fn) { const ys = pts.map((p) => p[1]); @@ -327,12 +335,6 @@ const seamRow = (y - (H - wh)) % 4 === 0; for (let x = lx; x <= rx; x++) c.set(x, y, seamRow ? seam : r() < 0.85 ? base : seam); }); - const line = (x0, y0, x1, y1, color) => { - const n = Math.max(Math.abs(x1 - x0), Math.abs(y1 - y0), 1); - for (let i = 0; i <= n; i++) { - c.set(Math.round(x0 + ((x1 - x0) * i) / n), Math.round(y0 + ((y1 - y0) * i) / n), color); - } - }; // Точка на стене: t — доля вдоль стены (0..1), h — высота от земли. const wallPt = (side, t, h) => side === 'sw' @@ -396,10 +398,10 @@ c.set(x, y, y % 4 === 0 ? 'T0' : r() < 0.85 ? 'T1' : 'T0'); } }); - line(gx, gy, 0, wt, 'T0'); // кромки фронтона - line(gx, gy, 16, H - wh, 'T0'); - line(16, H - wh, 31, wt, 'T0'); // свес над теневой стеной - line(gx, gy, gx + 16, gy - 8, 'T1'); // конёк ловит свет + line(c, gx, gy, 0, wt, 'T0'); // кромки фронтона + line(c, gx, gy, 16, H - wh, 'T0'); + line(c, 16, H - wh, 31, wt, 'T0'); // свес над теневой стеной + line(c, gx, gy, gx + 16, gy - 8, 'T1'); // конёк ловит свет } // Шпальный фундамент вдоль основания обеих стен. @@ -445,6 +447,91 @@ } /** + * Валун 32x32: крупный камень в изо-объёме. Верхняя грань P4/P5, юго-западная + * светлая (P5 с бликами P5H), юго-восточная в тени (P2/P3), контур P0, + * трещины P1, пепел на верхней грани. Tall-объект ~1.05 юнита, непроходим. + */ +function boulderTile(seed = 555) { + const c = new Canvas(...SIZES.tall.boulder); + const r = rng(seed); + + // Неровный камень: верхняя грань + две видимые боковые, общий контур. + const top = [[5, 19], [10, 12], [20, 11], [27, 18], [19, 25], [9, 24]]; + const sw = [[5, 19], [9, 24], [12, 30], [3, 24]]; + const se = [[9, 24], [19, 25], [27, 18], [27, 23], [18, 30], [12, 30]]; + fillPolyRows(c, sw, (y, lx, rx) => { + for (let x = lx; x <= rx; x++) c.set(x, y, r() < 0.8 ? 'P4' : 'P5'); + }); + fillPolyRows(c, se, (y, lx, rx) => { + for (let x = lx; x <= rx; x++) c.set(x, y, r() < 0.7 ? 'P3' : 'P2'); + }); + fillPolyRows(c, top, (y, lx, rx) => { + for (let x = lx; x <= rx; x++) c.set(x, y, r() < 0.75 ? 'P5' : 'P4'); + }); + // Блик на верхне-левом склоне и пепел на верхней грани. + c.set(11, 13, 'P5H'); + c.set(12, 12, 'P5H'); + c.set(16, 15, 'P6'); + for (let i = 0; i < 7; i++) { + const x = 10 + Math.floor(r() * 13); + const y = 13 + Math.floor(r() * 9); + if (c.get(x, y)) c.set(x, y, r() < 0.5 ? 'P6' : 'P4'); + } + // Трещины: тёмные ломаные по верхней и теневой граням. + line(c, 17, 12, 21, 17, 'P1'); + line(c, 21, 17, 19, 22, 'P1'); + line(c, 9, 24, 13, 28, 'P1'); + // Контур по нижнему силуэту и рёбрам граней. + line(c, 3, 24, 12, 30, 'P0'); + line(c, 12, 30, 18, 30, 'P0'); + line(c, 18, 30, 27, 23, 'P0'); + line(c, 5, 19, 9, 24, 'P0'); + line(c, 9, 24, 19, 25, 'P0'); + line(c, 19, 25, 27, 18, 'P0'); + return c; +} + +/** + * Большой мёртвый куст 32x40: облако сухих ветвей из эллипсов G0/G1/G2 + * (техника treeTile), стебли G2H наружу, тёплых нет (куст мёртв). + * Tall-объект ~1.25 юнита, непроходим. + */ +function bushTile(seed = 656) { + const c = new Canvas(...SIZES.tall.bush); + const r = rng(seed); + const ellipse = (cx, cy, rx, ry, color) => { + for (let y = -ry; y <= ry; y++) { + for (let x = -rx; x <= rx; x++) { + if ((x * x) / (rx * rx) + (y * y) / (ry * ry) <= 1) c.set(cx + x, cy + y, color); + } + } + }; + // Облако: большой центр + два бока, низ гуще (G0). + for (const [cx, cy, rx, ry] of [[16, 24, 11, 9], [8, 28, 6, 5], [24, 27, 6, 5]]) ellipse(cx, cy, rx, ry, 'G0'); + for (const [cx, cy, rx, ry] of [[16, 23, 8, 6], [9, 27, 4, 3], [23, 26, 4, 3]]) ellipse(cx, cy, rx - 1, ry - 1, 'G1'); + for (let i = 0; i < 22; i++) { + const x = 6 + Math.floor(r() * 20); + const y = 17 + Math.floor(r() * 15); + if (c.get(x, y) && r() < 0.5) c.set(x, y, 'G2'); + } + // Прорехи (сухой куст) и стебли наружу. + for (const [x, y] of [[12, 20], [21, 26], [9, 29]]) { + c.set(x, y, null); + c.set(x + 1, y, null); + } + for (const [x, y] of [[7, 22], [13, 16], [19, 15], [25, 21]]) { + c.set(x, y, 'G2H'); + c.set(x, y + 1, 'G2'); + } + // Основание: тень и пепел у корней. + for (let x = 9; x <= 23; x++) c.set(x, 37, 'G0'); + c.set(6, 37, 'P5'); + c.set(26, 37, 'P5'); + c.set(11, 38, 'P4'); + return c; +} + +/** * Большой дом 64x80 (проба работы C): двухмодульный дом на footprint 2×2, * композит из повторяемых частей — стены-щиты + стойки, крыша из шпал, * фундамент из рельсов. Якорь — низ-центр footprint'а (ставит движок, prop). @@ -1081,6 +1168,8 @@ save(isoHouseTile({ kind: 'shed', seed: 2727 }), 'tiles/house_3.png'); save(isoHouseTile({ kind: 'barn', seed: 3737 }), 'tiles/house_4.png'); save(isoHouseTile({ kind: 'two', seed: 4747 }), 'tiles/house_5.png'); +save(boulderTile(), 'tiles/boulder.png'); +save(bushTile(), 'tiles/bush.png'); save(bigHouseTile(), 'tiles/house_big.png'); save(towerTile(), 'tiles/tower.png'); save(floorTile(), 'tiles/floor.png'); diff --git a/apps/game/tools/pixelart/sizes.mjs b/apps/game/tools/pixelart/sizes.mjs index 6a7d1b5..68914ea 100644 --- a/apps/game/tools/pixelart/sizes.mjs +++ b/apps/game/tools/pixelart/sizes.mjs @@ -17,6 +17,10 @@ house: [32, 56], /** Высокие дома (амбар, двухэтажный) — ростом с башню. */ houseTall: [32, 80], + /** Валун — крупный непроходимый камень в изо-объёме. */ + boulder: [32, 32], + /** Большой мёртвый куст-облако. */ + bush: [32, 40], tower: [32, 80], /** Бухта кабеля Ржавой рощи (низкая, в полтайла). */ wire: [32, 32], diff --git a/docs/art-style.md b/docs/art-style.md index 3f7531f..18ecfd2 100644 --- a/docs/art-style.md +++ b/docs/art-style.md @@ -135,6 +135,8 @@ | 6 | `tiles/tower.png` | башня Звенца — 32×80, tall-объект 2.5 юнита: бак на ногах-рельсах, колокол B0/B2 под баком | | 7 | `tiles/house.png` | дом — 32×56, tall-объект 1.75 юнита, **объёмный в изометрии**: две стены сходятся ближним углом (юго-запад C1 светлая, юго-восток C0 тёмная), шатровая крыша. Ещё четыре фасада: `house_2` — двускатная шпальная с фронтоном и трубой, `house_3` — низкий сарай с широким окном (оба 32×56, 1.75 юнита), `house_4` — амбар с воротами 32×80 (2.5 юнита), `house_5` — двухэтажный, два ряда окон, 32×80. Варианты HOUSE по хэшу, в Звенце расставлены явно | | 18 | `tiles/wire.png` | бухта кабеля рощи — 32×32, tall-объект 0.6 юнита: ржавые кольца R1/R2 по M1/M0 с тёмными сечениями | +| 28 | `tiles/boulder.png` | валун — 32×32, tall-объект 1.05 юнита, непроходим: камень в изо-объёме (верх P4/P5, юго-запад P5 с бликами P5H, юго-восток P2/P3), трещины P1, пепел на верхней грани | +| 29 | `tiles/bush.png` | мёртвый куст — 32×40, tall-объект 1.25 юнита, непроходим: облако ветвей G0/G1/G2 с прорехами, стебли G2H, тёплых нет | | 19 | `tiles/rail.png` | рельсы разъезда — 32×16, ходовой: две нити R1/R2 по шпалам T0/T1 на утоптанном пепле | | 20 | `tiles/stairs.png` | люк-ступени — 32×16, ходовой: тёмный провал P0 с тремя ступенями, ржавая кромка R1 | | 21 | `tiles/machine.png` | Старая Машина — 32×80, tall-объект 2.5 юнита: железный корпус M0/M1 с ржавыми потёками, труба, тёмное устье с тлеющими углями F0/B0 (огонь — жизнь) |