test(tiles): 同步 Kurast/Mesa/Desert/Barricade 真实 DT1 瓦片断言 (Issue #83)

- 同步 wilderness-acts.test.ts、wilderness-roads-multi-act.test.ts、wilderness-siege-strips.test.ts 断言以适配真实的 DT1 瓦片编号
- 微调 wilderness-siege.ts 破损木桩 sequence 与投石台矮墙 prop1

TAG=agy
CONV=2a1934de-30ef-464e-b3f3-fcbcdbbc49f1
This commit is contained in:
troytt 2026-09-18 11:32:55 +00:00
parent 9b980b8218
commit e3a8eb67fe
4 changed files with 13 additions and 13 deletions

View File

@ -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,

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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
}
}