mirror of
https://github.com/prosolis/gogobee.git
synced 2026-07-16 17:02:42 +00:00
adventure: Tier 6 postgame "Mythic" dungeons (P1–P7 calibration)
Five post-game dungeons above the T5 ceiling, gated on both T5 bosses beaten + level 18. Opt-in endgame: deadly solo, clearable by a party with Pete + pets. - P1 gating: postgameUnlocked (T5 clears + level floor), zonesForLevel excludes T6 unconditionally; wired into startZoneRun, !zone/!expedition, party accept, boredom picker, and the list dividers. - P2 bestiary: 15 elites + 5 signature bosses (Layer-1 stat blocks). - P3 zone defs + 4-region registries; ZoneLootEntry.BossOnly. - P4 five zone graphs on a shared builder (44–52 rooms, no soft-lock; Ossuary secret Verse nodes). - P5 loot: BossOnly enforced; signature items are real registry magic items; five Thom pity recipes off the per-zone crafting anchors. - P6 narration/flavor (5 files), T6 achievements, Pete stays zone-parametric. - P7 (in progress): sim can now reach gated T6 (SimRunner.SeedPostgameUnlock + IsPostgameZone). First calibration pass on millenia — hardened ossuary + drowned_star, softened first_hoard + unplace; last_meridian in band. Fix: party members were refused from every T6 zone because expeditionCmdAccept ran the level gate (which excludes T6) before the postgame check — the intended party endgame was unreachable. Route T6 through postgameUnlocked. Regression tests added.
This commit is contained in:
@@ -92,6 +92,16 @@ func zoneRoomEntryPool(zoneID ZoneID) []string {
|
||||
return append(append([]string{}, flavor.RoomEntryDragonsLair...), flavor.RoomEntryGeneric...)
|
||||
case ZoneAbyssPortal:
|
||||
return append(append([]string{}, flavor.RoomEntryAbyssPortal...), flavor.RoomEntryGeneric...)
|
||||
case ZoneOssuaryAscendant:
|
||||
return append(append([]string{}, flavor.RoomEntryOssuaryAscendant...), flavor.RoomEntryGeneric...)
|
||||
case ZoneFirstHoard:
|
||||
return append(append([]string{}, flavor.RoomEntryFirstHoard...), flavor.RoomEntryGeneric...)
|
||||
case ZoneUnplace:
|
||||
return append(append([]string{}, flavor.RoomEntryUnplace...), flavor.RoomEntryGeneric...)
|
||||
case ZoneDrownedStar:
|
||||
return append(append([]string{}, flavor.RoomEntryDrownedStar...), flavor.RoomEntryGeneric...)
|
||||
case ZoneLastMeridian:
|
||||
return append(append([]string{}, flavor.RoomEntryLastMeridian...), flavor.RoomEntryGeneric...)
|
||||
}
|
||||
return flavor.RoomEntryGeneric
|
||||
}
|
||||
@@ -120,6 +130,16 @@ func bossEntryPool(zoneID ZoneID) []string {
|
||||
return flavor.BossEntryInfernax
|
||||
case ZoneAbyssPortal:
|
||||
return flavor.BossEntryBelaxath
|
||||
case ZoneOssuaryAscendant:
|
||||
return flavor.BossEntryValdrisAscendant
|
||||
case ZoneFirstHoard:
|
||||
return flavor.BossEntryAurvandryx
|
||||
case ZoneUnplace:
|
||||
return flavor.BossEntrySeamstress
|
||||
case ZoneDrownedStar:
|
||||
return flavor.BossEntrySeraphel
|
||||
case ZoneLastMeridian:
|
||||
return flavor.BossEntryCustodian
|
||||
}
|
||||
return flavor.BossEntryGeneric
|
||||
}
|
||||
@@ -182,6 +202,16 @@ func zoneLorePool(zoneID ZoneID) []string {
|
||||
return append(append([]string{}, flavor.LoreLinesDragonsLair...), flavor.LoreLines...)
|
||||
case ZoneAbyssPortal:
|
||||
return append(append([]string{}, flavor.LoreLinesAbyssPortal...), flavor.LoreLines...)
|
||||
case ZoneOssuaryAscendant:
|
||||
return append(append([]string{}, flavor.LoreLinesOssuaryAscendant...), flavor.LoreLines...)
|
||||
case ZoneFirstHoard:
|
||||
return append(append([]string{}, flavor.LoreLinesFirstHoard...), flavor.LoreLines...)
|
||||
case ZoneUnplace:
|
||||
return append(append([]string{}, flavor.LoreLinesUnplace...), flavor.LoreLines...)
|
||||
case ZoneDrownedStar:
|
||||
return append(append([]string{}, flavor.LoreLinesDrownedStar...), flavor.LoreLines...)
|
||||
case ZoneLastMeridian:
|
||||
return append(append([]string{}, flavor.LoreLinesLastMeridian...), flavor.LoreLines...)
|
||||
}
|
||||
return flavor.LoreLines
|
||||
}
|
||||
@@ -211,6 +241,16 @@ func bossSignaturePool(zoneID ZoneID) []string {
|
||||
return flavor.InfernaxSignatureCallouts
|
||||
case ZoneAbyssPortal:
|
||||
return flavor.BelaxathSignatureCallouts
|
||||
case ZoneOssuaryAscendant:
|
||||
return flavor.ValdrisAscendantSignatureCallouts
|
||||
case ZoneFirstHoard:
|
||||
return flavor.AurvandryxSignatureCallouts
|
||||
case ZoneUnplace:
|
||||
return flavor.SeamstressSignatureCallouts
|
||||
case ZoneDrownedStar:
|
||||
return flavor.SeraphelSignatureCallouts
|
||||
case ZoneLastMeridian:
|
||||
return flavor.CustodianSignatureCallouts
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -236,6 +276,16 @@ func bossPhaseTwoPool(zoneID ZoneID) []string {
|
||||
return flavor.InfernaxPhaseTwoLines
|
||||
case ZoneAbyssPortal:
|
||||
return flavor.BelaxathPhaseTwoLines
|
||||
case ZoneOssuaryAscendant:
|
||||
return flavor.ValdrisAscendantPhaseTwoLines
|
||||
case ZoneFirstHoard:
|
||||
return flavor.AurvandryxPhaseTwoLines
|
||||
case ZoneUnplace:
|
||||
return flavor.SeamstressPhaseTwoLines
|
||||
case ZoneDrownedStar:
|
||||
return flavor.SeraphelPhaseTwoLines
|
||||
case ZoneLastMeridian:
|
||||
return flavor.CustodianPhaseTwoLines
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user