From 7e2dad422a3c2f55766cf81d671a40582bb3fadb Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Mon, 17 May 2021 04:30:38 +0000 Subject: [PATCH] Proper bridge mask --- js/mask.js | 36 ++++++++++++++++++++++++++++++++++++ js/mask.js.map | 1 + js/tiles.js | 10 ++++++++++ js/tiles.js.map | 2 +- js/tower.js | 2 +- js/tower.js.map | 2 +- ts/mask.ts | 42 ++++++++++++++++++++++++++++++++++++++++++ ts/tiles.ts | 10 ++++++++++ ts/tower.ts | 2 +- 9 files changed, 103 insertions(+), 4 deletions(-) create mode 100644 js/mask.js create mode 100644 js/mask.js.map create mode 100644 ts/mask.ts diff --git a/js/mask.js b/js/mask.js new file mode 100644 index 0000000..b3cda0e --- /dev/null +++ b/js/mask.js @@ -0,0 +1,36 @@ +export class Mask { + constructor(width, height) { + this.mask = []; + for (let x = 0; x < width; x++) { + this.mask.push(Array(height).fill(false)); + } + } + static from_string(mask_string) { + // mask_string: '\n+++\n+++\n' + const rows = mask_string.trim().split('\n'); + // rows: ['+++', '+++'] + const mask = new Mask(rows[0].length, rows.length); + for (let y = 0; y < rows.length; y++) { + const row = rows[y]; + for (let x = 0; x < row.length; x++) { + const cell = row[x].toLowerCase(); + if (cell == '+' || cell == 'x') { + mask.set(x, y, true); + } + } + } + return mask; + } + set(x, y, val) { + this.mask[x][y] = val; + } + update(x, y, src) { + for (let xi = 0; xi < src.mask.length; xi++) { + const col = src.mask[xi]; + for (let yi = 0; yi < col.length; yi++) { + this.set(x + xi, y + yi, col[yi]); + } + } + } +} +//# sourceMappingURL=mask.js.map \ No newline at end of file diff --git a/js/mask.js.map b/js/mask.js.map new file mode 100644 index 0000000..bb72c81 --- /dev/null +++ b/js/mask.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mask.js","sourceRoot":"","sources":["../ts/mask.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,IAAI;IAGf,YAAY,KAAa,EAAE,MAAc;QAFzC,SAAI,GAAgB,EAAE,CAAC;QAGrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SAC3C;IACH,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,WAAmB;QACpC,8BAA8B;QAC9B,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,uBAAuB;QAEvB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAEnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBAClC,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE;oBAC9B,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;iBACtB;aACF;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,GAAY;QACpC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,CAAS,EAAE,CAAS,EAAE,GAAS;QACpC,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;YAC3C,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;gBACtC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;aACnC;SACF;IACH,CAAC;CACF"} \ No newline at end of file diff --git a/js/tiles.js b/js/tiles.js index b16c460..14e0f4c 100644 --- a/js/tiles.js +++ b/js/tiles.js @@ -131,6 +131,16 @@ export const RIVER_BL = new SimpleTileFactory('water', 12, 12, '{tileset}/river- export const RIVER_TR = new SimpleTileFactory('water', 12, 12, '{tileset}/river-tr.svg'); export const RIVER_TL = new SimpleTileFactory('water', 12, 12, '{tileset}/river-tl.svg'); export const BRIDGE_LR = new SimpleTileFactory('bridge', 12, 8, '{tileset}/bridge-lr.svg'); +BRIDGE_LR.add_mask('walkable', Mask.from_string(` +............ +...XXXXXX... +XXXXXXXXXXXX +XXXXXXXXXXXX +XXXXXXXXXXXX +XXX......XXX +............ +............ +`)); const tower_fireball1_back = new SimpleTileFactory('surface', 8, 8, 'tower/fireball1-back.svg'); const tower_fireball1 = new SimpleTileFactory('surface', 8, 8, 'tower/fireball1.svg'); const tower_fireball1_front = new SimpleTileFactory('surface', 8, 8, 'tower/fireball1-front.svg'); diff --git a/js/tiles.js.map b/js/tiles.js.map index e00a551..c75bc5b 100644 --- a/js/tiles.js.map +++ b/js/tiles.js.map @@ -1 +1 @@ -{"version":3,"file":"tiles.js","sourceRoot":"","sources":["../ts/tiles.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"tiles.js","sourceRoot":"","sources":["../ts/tiles.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/js/tower.js b/js/tower.js index 4522cb6..51be130 100644 --- a/js/tower.js +++ b/js/tower.js @@ -98,7 +98,7 @@ export function main() { tower.play('fire'); const target_relative_x = rand(-40, 40); const target_relative_y = rand(-20, 40); - const factory = new ProjectileTileFactory(tiles.FIREBALL, target_relative_x, target_relative_y, 5, 1.5, 5); + const factory = new ProjectileTileFactory(tiles.FIREBALL, target_relative_x, target_relative_y, 5, 3, 10); grid.add_tile(factory, 62, 54); setTimeout(() => { grid.add_tile(tiles.FIREBALL_IMPACT, 62 + target_relative_x, 54 + target_relative_y); diff --git a/js/tower.js.map b/js/tower.js.map index e6a9bc2..e93dc01 100644 --- a/js/tower.js.map +++ b/js/tower.js.map @@ -1 +1 @@ -{"version":3,"file":"tower.js","sourceRoot":"","sources":["../ts/tower.ts"],"names":[],"mappings":"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;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CA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"} \ No newline at end of file +{"version":3,"file":"tower.js","sourceRoot":"","sources":["../ts/tower.ts"],"names":[],"mappings":"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;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CA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"} \ No newline at end of file diff --git a/ts/mask.ts b/ts/mask.ts new file mode 100644 index 0000000..461c786 --- /dev/null +++ b/ts/mask.ts @@ -0,0 +1,42 @@ +export class Mask { + mask: boolean[][] = []; + + constructor(width: number, height: number) { + for (let x = 0; x < width; x++) { + this.mask.push(Array(height).fill(false)); + } + } + + static from_string(mask_string: string): Mask { + // mask_string: '\n+++\n+++\n' + const rows = mask_string.trim().split('\n'); + // rows: ['+++', '+++'] + + const mask = new Mask(rows[0].length, rows.length); + + for (let y = 0; y < rows.length; y++) { + const row = rows[y]; + for (let x = 0; x < row.length; x++) { + const cell = row[x].toLowerCase(); + if (cell == '+' || cell == 'x') { + mask.set(x, y, true); + } + } + } + + return mask; + } + + set(x: number, y: number, val: boolean) { + this.mask[x][y] = val; + } + + update(x: number, y: number, src: Mask) { + for (let xi = 0; xi < src.mask.length; xi++) { + const col = src.mask[xi]; + for (let yi = 0; yi < col.length; yi++) { + this.set(x + xi, y + yi, col[yi]); + } + } + } +} diff --git a/ts/tiles.ts b/ts/tiles.ts index 9304fbc..6b86a10 100644 --- a/ts/tiles.ts +++ b/ts/tiles.ts @@ -143,6 +143,16 @@ export const RIVER_TR = new SimpleTileFactory('water', 12, 12, '{tileset}/river- export const RIVER_TL = new SimpleTileFactory('water', 12, 12, '{tileset}/river-tl.svg'); export const BRIDGE_LR = new SimpleTileFactory('bridge', 12, 8, '{tileset}/bridge-lr.svg'); +BRIDGE_LR.add_mask('walkable', Mask.from_string(` +............ +...XXXXXX... +XXXXXXXXXXXX +XXXXXXXXXXXX +XXXXXXXXXXXX +XXX......XXX +............ +............ +`)); const tower_fireball1_back = new SimpleTileFactory('surface', 8, 8, 'tower/fireball1-back.svg'); const tower_fireball1 = new SimpleTileFactory('surface', 8, 8, 'tower/fireball1.svg'); diff --git a/ts/tower.ts b/ts/tower.ts index 5f3849c..32caacd 100644 --- a/ts/tower.ts +++ b/ts/tower.ts @@ -114,7 +114,7 @@ export function main() { tower.play('fire'); const target_relative_x = rand(-40, 40); const target_relative_y = rand(-20, 40); - const factory = new ProjectileTileFactory(tiles.FIREBALL, target_relative_x, target_relative_y, 5, 1.5, 5); + const factory = new ProjectileTileFactory(tiles.FIREBALL, target_relative_x, target_relative_y, 5, 3, 10); grid.add_tile(factory, 62, 54); setTimeout(() => { grid.add_tile(tiles.FIREBALL_IMPACT, 62 + target_relative_x, 54 + target_relative_y);