Long expeditions D1-a: graph-driven TotalRooms; goblin_warrens 7→16

Length is now sourced from the zone graph's longest entry→boss path,
not the dice roll, so "Room X/Y" matches what the player walks. The
dice fallback stays for graphless zones.

Goblin Warrens grows to the T1 12–14 band (13-node traversal): adds the
missing Trap anchor and deepens both fork branches + the post-merge
approach. Pattern reference for the remaining zones in D1-b…d.
This commit is contained in:
prosolis
2026-05-27 17:24:36 -07:00
parent 92b99a0399
commit 4999368031
6 changed files with 134 additions and 38 deletions

View File

@@ -126,9 +126,12 @@ func TestZoneRegistry_LootDropChances(t *testing.T) {
}
func TestZoneRegistry_RoomCountSane(t *testing.T) {
// Long-expedition plan §2 widens the bands per tier: T1 1214 up to
// T5 ~3644. The guard floor stays at 5 (no zone should ever drop
// below that) and the ceiling tracks the T5 target.
for _, z := range allZones() {
if z.MinRooms < 5 || z.MaxRooms > 10 || z.MinRooms > z.MaxRooms {
t.Errorf("zone %s rooms %d-%d outside design (5-10, min<=max)",
if z.MinRooms < 5 || z.MaxRooms > 44 || z.MinRooms > z.MaxRooms {
t.Errorf("zone %s rooms %d-%d outside design (5-44, min<=max)",
z.ID, z.MinRooms, z.MaxRooms)
}
}