Camp: heal on pitch; ambient cooldown 3h → 6h

!camp now applies long-rest effects (HP, spell slots, exhaustion,
threat -5, Underforge heat) immediately instead of waiting for the
06:00 UTC briefing. New CampState.RestApplied flag stops
processOvernightCamp from re-applying at briefing — it just strikes
the camp.

Also dials ambient cooldown 3h → 6h so a workday gives ~1–2 hits
instead of ~3.
This commit is contained in:
prosolis
2026-05-27 16:57:57 -07:00
parent 0f72484653
commit 92b99a0399
3 changed files with 44 additions and 34 deletions

View File

@@ -53,6 +53,10 @@ type CampState struct {
RoomIndex int `json:"room_index"`
EstablishedAt time.Time `json:"established_at"`
NightEvents []string `json:"night_events"`
// RestApplied is set when the long-rest effects (HP refill, spell slots,
// threat -5 etc.) have already been applied at pitch time. processOvernightCamp
// uses it to skip re-applying so the night cycle just breaks the camp.
RestApplied bool `json:"rest_applied,omitempty"`
}
// ThreatEvent — §8.4.