diff --git a/apps/game/assets/maps/house_elder.map b/apps/game/assets/maps/house_elder.map index 845bfe7..6db25d3 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,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}},"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,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}},"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 4a9119d..c3fae28 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,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}},"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,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}},"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 261b2fe..5cf54fd 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,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}},"variants":{"0":[0,11,12],"1":[1,14],"3":[3,22,23],"4":[4,13]},"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,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}},"variants":{"0":[0,11,12],"1":[1,14],"3":[3,22,23],"4":[4,13],"7":[7,24,25]},"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 diff --git a/apps/game/assets/maps/old_siding.map b/apps/game/assets/maps/old_siding.map index 0eb0fd5..bbeabc8 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,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}},"variants":{"0":[0,11,12],"1":[1,14],"3":[3,22,23],"4":[4,13]},"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,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}},"variants":{"0":[0,11,12],"1":[1,14],"3":[3,22,23],"4":[4,13],"7":[7,24,25]},"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 diff --git a/apps/game/assets/maps/ponds.map b/apps/game/assets/maps/ponds.map index c5546ce..c5c688b 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,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}},"variants":{"0":[0,11,12],"1":[1,14],"3":[3,22,23],"4":[4,13]},"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,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}},"variants":{"0":[0,11,12],"1":[1,14],"3":[3,22,23],"4":[4,13],"7":[7,24,25]},"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 diff --git a/apps/game/assets/maps/rust_grove.map b/apps/game/assets/maps/rust_grove.map index 3c77ac4..11770a4 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,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}},"variants":{"0":[0,11,12],"1":[1,14],"3":[3,22,23],"4":[4,13]},"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,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}},"variants":{"0":[0,11,12],"1":[1,14],"3":[3,22,23],"4":[4,13],"7":[7,24,25]},"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 diff --git a/apps/game/assets/maps/shop.map b/apps/game/assets/maps/shop.map index 845bfe7..6db25d3 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,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}},"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,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}},"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 ee65894..c1a9b5c 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,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}},"variants":{"0":[0,11,12],"1":[1,14],"3":[3,22,23],"4":[4,13]},"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],[7,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],[7,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,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}},"variants":{"0":[0,11,12],"1":[1,14],"3":[3,22,23],"4":[4,13],"7":[7,24,25]},"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],[24,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],[25,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/house.png b/apps/game/assets/tiles/house.png index cbc5e48..b371d0e 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_2.png b/apps/game/assets/tiles/house_2.png new file mode 100644 index 0000000..99a5f2a --- /dev/null +++ b/apps/game/assets/tiles/house_2.png Binary files differ diff --git a/apps/game/assets/tiles/house_3.png b/apps/game/assets/tiles/house_3.png new file mode 100644 index 0000000..526b4eb --- /dev/null +++ b/apps/game/assets/tiles/house_3.png Binary files differ diff --git a/apps/game/src/Game.ts b/apps/game/src/Game.ts index b92f7e2..5178642 100644 --- a/apps/game/src/Game.ts +++ b/apps/game/src/Game.ts @@ -71,6 +71,8 @@ 'tiles/tree_2_sway', 'tiles/tree_3_sway', 'tiles/house', + 'tiles/house_2', + 'tiles/house_3', 'tiles/tower', 'tiles/floor', 'tiles/wall', diff --git a/apps/game/src/data/assetSets.ts b/apps/game/src/data/assetSets.ts index 5ecdb9e..ffbc168 100644 --- a/apps/game/src/data/assetSets.ts +++ b/apps/game/src/data/assetSets.ts @@ -28,6 +28,8 @@ [TILES.TREE_V2, a.texture('tiles/tree_3')], [TILES.TOWER, a.texture('tiles/tower')], [TILES.HOUSE, a.texture('tiles/house')], + [TILES.HOUSE_V1, a.texture('tiles/house_2')], + [TILES.HOUSE_V2, a.texture('tiles/house_3')], [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/locations.ts b/apps/game/src/data/locations.ts index cca93af..a5f14da 100644 --- a/apps/game/src/data/locations.ts +++ b/apps/game/src/data/locations.ts @@ -317,7 +317,7 @@ // Гул колокола башни и скрипы вагонных щитов — слышны вблизи источников. ambienceLayers: [ { key: 'ambience/tower_hum', at: { x: 14, y: 7 }, radius: 8, volume: 0.5 }, - { key: 'ambience/houses', tiles: [TILES.HOUSE], radius: 5, volume: 0.4 } + { key: 'ambience/houses', tiles: [TILES.HOUSE, TILES.HOUSE_V1, TILES.HOUSE_V2], radius: 5, volume: 0.4 } ] }, // --- акт 2: роща, разъезд, подземелье --- diff --git a/apps/game/src/data/map.ts b/apps/game/src/data/map.ts index 49198e7..55d5db7 100644 --- a/apps/game/src/data/map.ts +++ b/apps/game/src/data/map.ts @@ -29,7 +29,14 @@ PATH_V1: 14, /** Деревья других видов (варианты TREE распределителем ниже; в tiles не попадают). */ TREE_V1: 22, - TREE_V2: 23 + TREE_V2: 23, + /** + * Дома других фасадов. Обычно раздаются вариантами HOUSE по хэшу координат, + * но могут ставиться в tiles и явно — деревня Звенец показывает все три + * фасада намеренно (там три дома, хэш-микс не гарантирует разнообразия). + */ + HOUSE_V1: 24, + HOUSE_V2: 25 } as const; const BLOCKED = [ @@ -37,6 +44,8 @@ TILES.TREE, TILES.TOWER, TILES.HOUSE, + TILES.HOUSE_V1, + TILES.HOUSE_V2, TILES.WALL, TILES.WELL, TILES.WIRE, @@ -53,6 +62,8 @@ [TILES.TREE_V2]: { height: 1.5, ground: TILES.GRASS }, [TILES.TOWER]: { height: 2.5, ground: TILES.PATH }, [TILES.HOUSE]: { height: 1.75, ground: TILES.ASH, shadow: true }, + [TILES.HOUSE_V1]: { height: 1.75, ground: TILES.ASH, shadow: true }, + [TILES.HOUSE_V2]: { height: 1.75, ground: TILES.ASH, shadow: true }, // Стены интерьеров — вертикальные объекты, под ними пол. [TILES.WALL]: { height: 1, ground: TILES.FLOOR }, // Бухта кабеля — низкая груда на пепле. @@ -71,9 +82,10 @@ [TILES.ASH]: [TILES.ASH, TILES.ASH_V1] }; -/** Микс высоких объектов: деревья трёх видов (анимация крон — по видам). */ +/** Микс высоких объектов: деревья трёх видов, дома трёх фасадов. */ const TALL_VARIANTS: Record = { - [TILES.TREE]: [TILES.TREE, TILES.TREE_V1, TILES.TREE_V2] + [TILES.TREE]: [TILES.TREE, TILES.TREE_V1, TILES.TREE_V2], + [TILES.HOUSE]: [TILES.HOUSE, TILES.HOUSE_V1, TILES.HOUSE_V2] }; /** Полная таблица вариантов для карт (земля + высокие объекты). */ @@ -598,10 +610,11 @@ // Башня с колоколом — север площади. tiles[at(14, 7)] = TILES.TOWER; - // Дома: два вдоль тропы, лавка Милы — восток площади. + // Дома: два вдоль тропы, лавка Милы — восток площади. Три разных фасада + // (вариантные id прямо в тайлах — деревня должна показывать всё разнообразие). tiles[at(7, 6)] = TILES.HOUSE; - tiles[at(18, 5)] = TILES.HOUSE; - tiles[at(21, 9)] = TILES.HOUSE; + tiles[at(18, 5)] = TILES.HOUSE_V1; + tiles[at(21, 9)] = TILES.HOUSE_V2; // Старый колодец у дома Ирвина: телепорт на луга (см. AREAS, transitions). tiles[at(9, 6)] = TILES.WELL; diff --git a/apps/game/tools/pixelart/gen.mjs b/apps/game/tools/pixelart/gen.mjs index fdf6e9d..95cf7a7 100644 --- a/apps/game/tools/pixelart/gen.mjs +++ b/apps/game/tools/pixelart/gen.mjs @@ -255,10 +255,15 @@ return c; } -/** Дом Звенца 32x56: стены из вагонных щитов, крыша из платформ. Tall-объект 1.75 юнита. */ -function houseTile() { +/** + * Дом Звенца 32x56, три фасада. kind: 'ties' (шпальная крыша, окно слева), + * 'metal' (крыша из ржавого листа, окно справа, дверь слева), + * 'long' (пологая крыша, одно длинное окно во всю стену). + * Tall-объект 1.75 юнита; стены и фундамент общие — различаются крыша и проёмы. + */ +function houseTile({ kind = 'ties', seed = 777 } = {}) { const c = new Canvas(...SIZES.tall.house); - const r = rng(777); + const r = rng(seed); // Стены: вагонные щиты — горизонтальные доски C1 со швами C0. for (let y = 17; y <= 48; y++) { @@ -273,38 +278,71 @@ c.set(25, y, 'M1'); } - // Крыша-платформа: треугольник из шпал, расширяется книзу. - for (let i = 0; i <= 15; i++) { - const y = 1 + i; - const half = Math.min(13, 1 + Math.floor(i * 0.85)); - for (let dx = -half; dx <= half; dx++) { - c.set(16 + dx, y, i % 4 === 0 ? 'T0' : 'T1'); + // Крыша: шпальный треугольник ('ties'/'long') или ржавый лист ('metal'). + if (kind === 'metal') { + for (let i = 0; i <= 15; i++) { + const y = 1 + i; + const half = Math.min(13, 1 + Math.floor(i * 0.85)); + for (let dx = -half; dx <= half; dx++) { + const rust = dx > half - 3 && r() < 0.4; // потёки ржавчины по краю + c.set(16 + dx, y, rust ? 'R1' : i % 5 === 0 ? 'M0' : 'M1'); + } + } + } else { + const rise = kind === 'long' ? 0.6 : 0.85; // 'long' — пологая крыша + for (let i = 0; i <= 15; i++) { + const y = 1 + i; + const half = Math.min(13, 1 + Math.floor(i * rise)); + for (let dx = -half; dx <= half; dx++) { + c.set(16 + dx, y, i % 4 === 0 ? 'T0' : 'T1'); + } } } // Свес крыши. for (let x = 2; x <= 29; x++) { - c.set(x, 18, 'T0'); + c.set(x, 18, kind === 'metal' ? 'M0' : 'T0'); } - // Дверь: тёмный проём с бронзовой ручкой. - for (let y = 32; y <= 48; y++) { - for (let x = 13; x <= 19; x++) c.set(x, y, 'P1'); - } - c.set(18, 40, 'B0'); + // Дверь: тёмный проём с бронзовой ручкой (x0 — левый край). + const door = (x0) => { + for (let y = 32; y <= 48; y++) { + for (let x = x0; x < x0 + 7; x++) c.set(x, y, 'P1'); + } + c.set(x0 + 5, 40, 'B0'); + }; - // Окно: тёмный квадрат с металлической рамой. - for (let y = 22; y <= 27; y++) { - for (let x = 9; x <= 13; x++) c.set(x, y, 'P2'); + // Окно с металлической рамой и переплётом (w — ширина проёма). + const window = (x0, y0, w, h) => { + for (let y = y0; y < y0 + h; y++) { + for (let x = x0; x < x0 + w; x++) c.set(x, y, 'P2'); + } + for (let x = x0 - 1; x <= x0 + w; x++) { + c.set(x, y0 - 1, 'M0'); + c.set(x, y0 + h, 'M0'); + } + for (let y = y0 - 1; y <= y0 + h; y++) { + c.set(x0 - 1, y, 'M0'); + c.set(x0 + w, y, 'M0'); + } + c.set(x0 + Math.floor(w / 2), y0 + Math.floor(h / 2) - 1, 'M1'); // переплёт + }; + + if (kind === 'ties') { + window(9, 22, 5, 6); + door(13); + } else if (kind === 'metal') { + door(8); + window(18, 24, 5, 5); + // Вентиляционная труба в крыше. + for (let y = 4; y <= 8; y++) { + c.set(22, y, 'M0'); + c.set(23, y, 'M2'); + } + } else { + // Длинное однооконное: одно широкое окно во всю стену, дверь у края. + window(9, 30, 12, 5); + door(22); } - for (let x = 8; x <= 14; x++) { - c.set(x, 21, 'M0'); - c.set(x, 28, 'M0'); - } - for (let y = 21; y <= 28; y++) { - c.set(7, y, 'M0'); - c.set(15, y, 'M0'); - } - c.set(11, 24, 'M1'); // переплёт // Фундамент из шпал. for (let x = 4; x <= 27; x++) { @@ -951,7 +989,10 @@ save(treeTile({ kind: 'sparse', seed: 404, cable: false, sway: 1 }), 'tiles/tree_2_sway.png'); save(treeTile({ kind: 'young', seed: 909, cable: false }), 'tiles/tree_3.png'); save(treeTile({ kind: 'young', seed: 909, cable: false, sway: 1 }), 'tiles/tree_3_sway.png'); -save(houseTile(), 'tiles/house.png'); +// Дома: три фасада (шпальная крыша / ржавый лист / длинное однооконное). +save(houseTile({ kind: 'ties', seed: 777 }), 'tiles/house.png'); +save(houseTile({ kind: 'metal', seed: 1717 }), 'tiles/house_2.png'); +save(houseTile({ kind: 'long', seed: 2727 }), 'tiles/house_3.png'); save(bigHouseTile(), 'tiles/house_big.png'); save(towerTile(), 'tiles/tower.png'); save(floorTile(), 'tiles/floor.png'); diff --git a/docs/art-style.md b/docs/art-style.md index 5dbfd02..25e21fe 100644 --- a/docs/art-style.md +++ b/docs/art-style.md @@ -133,7 +133,7 @@ | 4 | `tiles/ash.png` | пепельный бугор: P4/P6 с тёмным ободом | | 5 | `tiles/bellflower.png` | трава + цветок B1/B2 (квестовый тайл) | | 6 | `tiles/tower.png` | башня Звенца — 32×80, tall-объект 2.5 юнита: бак на ногах-рельсах, колокол B0/B2 под баком | -| 7 | `tiles/house.png` | дом Звенца — 32×56, tall-объект 1.75 юнита: стены из вагонных щитов, крыша из шпал | +| 7 | `tiles/house.png` | дом Звенца — 32×56, tall-объект 1.75 юнита: стены из вагонных щитов, крыша из шпал. Ещё два фасада (`house_2` — крыша из ржавого листа с трубой, `house_3` — длинное однооконное): варианты HOUSE по хэшу, в Звенце расставлены явно | | 18 | `tiles/wire.png` | бухта кабеля рощи — 32×32, tall-объект 0.6 юнита: ржавые кольца R1/R2 по M1/M0 с тёмными сечениями | | 19 | `tiles/rail.png` | рельсы разъезда — 32×16, ходовой: две нити R1/R2 по шпалам T0/T1 на утоптанном пепле | | 20 | `tiles/stairs.png` | люк-ступени — 32×16, ходовой: тёмный провал P0 с тремя ступенями, ржавая кромка R1 |