From 45e7170c2ab8e621d6827267bca3778bd916808c Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 25 Nov 2024 20:25:08 -0800 Subject: [PATCH] create battleship render --- src/client/graphics/layers/UnitLayer.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/client/graphics/layers/UnitLayer.ts b/src/client/graphics/layers/UnitLayer.ts index 6cda23cf9..dcdaa5240 100644 --- a/src/client/graphics/layers/UnitLayer.ts +++ b/src/client/graphics/layers/UnitLayer.ts @@ -101,6 +101,22 @@ export class UnitLayer implements Layer { .forEach(t => this.paintCell(t.cell(), this.theme.territoryColor(event.unit.owner().info()), 255)); } + private handleBattleshipEvent(event: UnitEvent) { + bfs(event.oldTile, euclDist(event.oldTile, 6)).forEach(t => { + this.clearCell(t.cell()); + }); + if (!event.unit.isActive()) { + return + } + bfs(event.unit.tile(), euclDist(event.unit.tile(), 5)) + .forEach(t => this.paintCell(t.cell(), this.theme.territoryColor(event.unit.owner().info()), 255)); + bfs(event.unit.tile(), dist(event.unit.tile(), 4)) + .forEach(t => this.paintCell(t.cell(), this.theme.borderColor(event.unit.owner().info()), 255)); + bfs(event.unit.tile(), euclDist(event.unit.tile(), 1)) + .forEach(t => this.paintCell(t.cell(), this.theme.territoryColor(event.unit.owner().info()), 255)); + } + + private handleNuke(event: UnitEvent) { bfs(event.oldTile, euclDist(event.oldTile, 2)).forEach(t => { this.clearCell(t.cell());