mirror of
https://github.com/Such-Software/wownerogue.git
synced 2026-10-23 17:18:32 +02:00
feat(iso): orientation-aware walls + floor variety + juice (shadows/vignette)
Fixes the "thin disconnected slabs" on the top-left/bottom-right walls and juices the iso scene: - Wall facing: iso walls have an orientation. A run along grid-x uses the _S rotation, a run along grid-y uses the perpendicular _W (I viewed the tiles: _S faces SW, _W faces SE — the two camera-facing rotations), and true corners use the corner tile. The renderer picks per-cell from neighbours. Enclosing walls now read as continuous faces on all four edges. Same logic gives windows/doors a Y rotation. - Floor variety: deterministic per-cell hash sprinkles planksBroken into wood floors and stoneTile/stoneUneven into stone — no more flat identical sea. - Juice: soft contact shadows ground every prop + character, and a warm radial vignette lights the room instead of it looking pasted onto black. - Tavern map: barrels/crates line the side walls (clear of windows/spawn, via the wall-safe put()) so the lobby reads lived-in in every render mode. Suite 58/419 green.
This commit is contained in:
@@ -51,6 +51,16 @@ function buildDefaultTavern(cols = 28, rows = 15) {
|
||||
// Corner decor — barrels and crates.
|
||||
put(1, 1, 'B'); put(cols - 2, 1, 'C'); put(1, rows - 2, 'C'); put(cols - 2, rows - 2, 'B');
|
||||
|
||||
// Barrels & crates lining the side walls (one in from the wall, clear of the windows/spawn) so
|
||||
// the room reads lived-in instead of a big empty floor. Alternating B/C for material variety.
|
||||
const wallDecor = [
|
||||
[1, 5, 'B'], [1, 9, 'C'], [1, 12, 'B'],
|
||||
[cols - 2, 5, 'C'], [cols - 2, 9, 'B'], [cols - 2, 12, 'C'],
|
||||
[2, rows - 2, 'B'], [cols - 3, rows - 2, 'C'],
|
||||
[barX0 - 1, barY + 1, 'B'], [barX1 + 1, barY + 1, 'C'] // a barrel/crate tucked beside each keg
|
||||
];
|
||||
for (const [dx, dy, dch] of wallDecor) put(dx, dy, dch);
|
||||
|
||||
// Door + spawn pad at the bottom-centre (two spawn tiles for deterministic adjacency tests).
|
||||
const mid = Math.floor(cols / 2);
|
||||
set(mid, rows - 1, 'D');
|
||||
|
||||
Reference in New Issue
Block a user