mirror of
https://github.com/prosolis/gogobee.git
synced 2026-07-16 08:52:42 +00:00
J3 D10: T4/T5 anchor-room variety (2nd elite + trap per zone)
In-place node kind swaps on fork branches — no node added/removed, longest path unchanged — adding one Elite + one Trap of anchor variety to each T4/T5 zone, placed to keep fork-choice risk/loot asymmetric: underdark +Elite drow_gate (R2->R4 region-guardian) +Trap silenced_chamber feywild +Elite singing_orchard (grove branch) +Trap mire_steps (marsh) dragons_lair+Elite coin_strewn_hall (treasure spur) +Trap hidden_passage (hoard spur) abyss_portal+Elite wardens_hall (R3 guardian) +Trap hush_corridor, seam_threshold abyss_portal shipped with zero trap nodes; D10 gives it two. A/B sim corpus (n=480/side): boss-clear flat (+1.5pp aggregate, per-cell within n=15 noise), median day-counts stable, combats/run rose where anchors hit common paths. New Test*Graph_*Anchors tests lock the per-zone trap/elite counts.
This commit is contained in:
@@ -52,6 +52,17 @@ package plugin
|
||||
// Longest entry→boss walk: 10 (R1) + 10 (R2) + 9 (R3) + 10 (R4) = 39
|
||||
// nodes, inside [36, 44]. The two R2 spurs and three R4 capstones each
|
||||
// reach the boss in the same node count by construction.
|
||||
//
|
||||
// D10 anchor variety (in-place kind swaps, no length change): the two
|
||||
// loot-leaning branches each gain a guard, so "the richer route costs
|
||||
// more" —
|
||||
// - Coin-Strewn Hall (treasure_vault spur) becomes an ELITE; the
|
||||
// Perception loot route is now guarded, mirroring the ash_bridge
|
||||
// spur's TRAP so both fork1 branches carry an anchor.
|
||||
// - Hidden Passage (hoard_pillar SECRET capstone spur) becomes a
|
||||
// TRAP guarding the densest loot in the zone.
|
||||
// The direct-confrontation and dragon-bargain routes stay clean, so the
|
||||
// fork choice trades safety for loot.
|
||||
|
||||
func zoneDragonsLairGraph() ZoneGraph {
|
||||
r1 := "dragons_lair_kobold_warrens"
|
||||
@@ -110,7 +121,7 @@ func zoneDragonsLairGraph() ZoneGraph {
|
||||
{NodeID: "dragons_lair.treasure_vault", Kind: NodeKindExploration, RegionID: r2,
|
||||
Label: "Treasure Vault", PosX: 17, PosY: 2,
|
||||
Content: ZoneNodeContent{LootBias: 1.5}},
|
||||
{NodeID: "dragons_lair.coin_strewn_hall", Kind: NodeKindExploration, RegionID: r2,
|
||||
{NodeID: "dragons_lair.coin_strewn_hall", Kind: NodeKindElite, RegionID: r2,
|
||||
Label: "Coin-Strewn Hall", PosX: 18, PosY: 2},
|
||||
{NodeID: "dragons_lair.vault_passage", Kind: NodeKindExploration, RegionID: r2,
|
||||
Label: "Vault Passage", PosX: 19, PosY: 2},
|
||||
@@ -152,7 +163,7 @@ func zoneDragonsLairGraph() ZoneGraph {
|
||||
Label: "Audience Hall", PosX: 31, PosY: 1},
|
||||
|
||||
// R4 hoard_pillar spur (Perception 17, SECRET).
|
||||
{NodeID: "dragons_lair.hidden_passage", Kind: NodeKindExploration, RegionID: r4,
|
||||
{NodeID: "dragons_lair.hidden_passage", Kind: NodeKindTrap, RegionID: r4,
|
||||
Label: "Hidden Passage", PosX: 29, PosY: 2},
|
||||
{NodeID: "dragons_lair.hoard_pillar", Kind: NodeKindSecret, RegionID: r4,
|
||||
Label: "Hidden Hoard Pillar", PosX: 30, PosY: 2,
|
||||
|
||||
Reference in New Issue
Block a user