Long expeditions D5-c: wire Ranger forage SU

§4.2's "Ranger, 1d4 SU/day" perk had been dead since Phase 12 E1b —
SupplyForageMaxSU was defined but unreferenced, ForagedToday was only
ever reset to false. New applyRangerForage helper grants 1d4 SU once
per day (headroom-capped, Ranger-only), fires at the top of
nightRolloverBurn, and surfaces as a "forage" line in the end-of-day
digest. No DC roll — accessibility over crunch, and the D5-a caps
already give all loadouts comfortable headroom.
This commit is contained in:
prosolis
2026-05-27 19:48:44 -07:00
parent 26cda148fb
commit 9be85ba954
5 changed files with 123 additions and 2 deletions

View File

@@ -40,6 +40,7 @@ func renderEndOfDayDigest(expID string, prevDay int) string {
walks int
harvests int
interrupts int
forageLines []string
threatLines []string
milestoneLine []string
narrativeBits []string
@@ -53,6 +54,8 @@ func renderEndOfDayDigest(expID string, prevDay int) string {
if strings.Contains(e.Summary, "success") {
harvests++
}
case "forage":
forageLines = append(forageLines, e.Summary)
case "interrupt":
interrupts++
case "threat":
@@ -88,6 +91,12 @@ func renderEndOfDayDigest(expID string, prevDay int) string {
b.WriteString(fmt.Sprintf("• Came back with **%d** harvest%s.\n", harvests, pluralS(harvests)))
bulleted = true
}
for _, f := range forageLines {
b.WriteString("• ")
b.WriteString(f)
b.WriteString("\n")
bulleted = true
}
for _, t := range threatLines {
b.WriteString("• ")
b.WriteString(t)