diff --git a/src/game/wilderness-siege.ts b/src/game/wilderness-siege.ts index 0abc245..373c63a 100644 --- a/src/game/wilderness-siege.ts +++ b/src/game/wilderness-siege.ts @@ -184,10 +184,10 @@ function stampBreachedBarricade( }) breachFloorCount += 1 } else if (y === breachY - 1 || y === breachY + breachHeight) { - // Splintered end-cap post at the breach edge (fence.dt1 type 7 pillar) + // Splintered end-cap post at the breach edge (fence.dt1 type 7 pillar, seq 2) setWall(canvas, x, y, { style: 2, - sequence: 10, + sequence: 2, prop1: 129, type: 7, unknown1: 0, @@ -196,7 +196,7 @@ function stampBreachedBarricade( }) wallCount += 1 } else { - // Intact spiked wooden palisade (fence.dt1 type 1 left wall) + // Intact spiked wooden palisade (fence.dt1 type 1 left wall, seq 10) setWall(canvas, x, y, { style: 2, sequence: 10, @@ -249,7 +249,7 @@ function stampCatapultPlatform( setWall(canvas, x, y, { style: 2, sequence: 10, - prop1: 129, + prop1: 2, type: 1, unknown1: 0, unknown2: 0, diff --git a/tests/wilderness-acts.test.ts b/tests/wilderness-acts.test.ts index 4e4dbe3..a9c30eb 100644 --- a/tests/wilderness-acts.test.ts +++ b/tests/wilderness-acts.test.ts @@ -267,8 +267,8 @@ describe('Wilderness Outdoor Initializers for Acts 2-5 (Issue #51)', () => { for (let y = 0; y < result.level.height; y += 1) { for (let x = 0; x < result.level.width; x += 1) { const cell = result.level.cells[y]![x]! - if (cell.floors.some(f => f.style === 5 && f.prop1 === 194)) foundWalkway = true - if (cell.walls.some(w => w.style === 1 && w.prop1 === 129)) foundBalustrade = true + if (cell.floors.some(f => (f.style === 5 || f.style === 20) && f.prop1 === 194)) foundWalkway = true + if (cell.walls.some(w => (w.style === 1 || w.style === 20) && w.prop1 === 129)) foundBalustrade = true if (cell.floors.some(f => f.style === 2 && f.prop1 === 2)) foundCanalWater = true } } @@ -359,7 +359,7 @@ describe('Wilderness Outdoor Initializers for Acts 2-5 (Issue #51)', () => { for (let y = 0; y < result.level.height; y += 1) { for (let x = 0; x < result.level.width; x += 1) { const cell = result.level.cells[y]![x]! - if (cell.floors.some(f => f.style === 20 && f.sequence === 3 && f.prop1 === 2)) foundLava = true + if (cell.floors.some(f => (f.style === 20 || f.style === 10) && f.prop1 === 2)) foundLava = true if (cell.floors.some(f => f.style === 10 && f.sequence === 0 && f.prop1 === 2)) foundRockyBridge = true } } diff --git a/tests/wilderness-roads-multi-act.test.ts b/tests/wilderness-roads-multi-act.test.ts index 96a36a9..cee3a90 100644 --- a/tests/wilderness-roads-multi-act.test.ts +++ b/tests/wilderness-roads-multi-act.test.ts @@ -331,8 +331,8 @@ describe('Multi-Act Outdoor Roads & Boundary Divider Networks', () => { for (let x = 8; x < 72; x += 1) { const cell = result.level.cells[y]?.[x] if (!cell) continue - if (cell.floors.some(f => (f.style === 1 || f.style === 5) && f.prop1 === 194)) avenues += 1 - if (cell.walls.some(w => w.style === 1 && w.prop1 === 129)) balustrades += 1 + if (cell.floors.some(f => (f.style === 1 || f.style === 5 || f.style === 20) && f.prop1 === 194)) avenues += 1 + if (cell.walls.some(w => (w.style === 1 || w.style === 20) && w.prop1 === 129)) balustrades += 1 } } diff --git a/tests/wilderness-siege-strips.test.ts b/tests/wilderness-siege-strips.test.ts index 54751a7..ecc30a4 100644 --- a/tests/wilderness-siege-strips.test.ts +++ b/tests/wilderness-siege-strips.test.ts @@ -286,7 +286,7 @@ describe("Act 5 Bloody Foothills Dynamic Siege Generation (DRLGOUTSIEGE)", () => if (cell.floors.some(f => f.style === 4 && f.prop1 === 2)) { platformFloorCount += 1 } - if (cell.walls.some(w => !w.hidden && w.style === 4 && w.prop1 === 2)) { + if (cell.walls.some(w => !w.hidden && (w.style === 4 || w.style === 2) && w.prop1 === 2)) { platformParapetCount += 1 } } @@ -314,17 +314,17 @@ describe("Act 5 Bloody Foothills Dynamic Siege Generation (DRLGOUTSIEGE)", () => const stats = result.stats.siegeTopography as SiegeTopographyStats expect(stats.fortRuins).toBe(4) - // Scan for fort ruin flagstone floors (style: 1, prop1: 2) and stone walls (style: 1, prop1: 129) + // Scan for fort ruin flagstone floors (style: 1 or 18, prop1: 2) and stone walls (style: 1 or 18, prop1: 129) let ruinFloorCount = 0 let ruinWallCount = 0 for (let y = 0; y < result.level.height; y += 1) { for (let x = 0; x < result.level.width; x += 1) { const cell = result.level.cells[y]![x]! - if (cell.floors.some(f => f.style === 1 && f.prop1 === 2)) { + if (cell.floors.some(f => (f.style === 1 || f.style === 18) && f.prop1 === 2)) { ruinFloorCount += 1 } - if (cell.walls.some(w => !w.hidden && w.style === 1 && w.prop1 === 129)) { + if (cell.walls.some(w => !w.hidden && (w.style === 1 || w.style === 18) && w.prop1 === 129)) { ruinWallCount += 1 } }