Combat: add Sudden Death phase + fix tiebreak to use absolute HP

Players reported the prior 6-round exhaustion timeout felt arbitrary
when both sides still had plenty of HP. Two fixes:

- Add a "Sudden Death" 4th phase (3-4 extra rounds) so most fights
  resolve naturally before any timeout. Total combat length now caps
  at ~10 rounds.
- When the timeout does fire, tiebreak by absolute HP instead of HP%.
  The %-based logic was unintuitive — a player at 88/123 (71%) would
  lose to a boss at 83/97 (86%) despite having more HP remaining.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
prosolis
2026-05-09 21:58:26 -07:00
parent 3cf83e370e
commit de02907e69
2 changed files with 13 additions and 6 deletions

View File

@@ -153,6 +153,8 @@ func phaseHeader(name string) string {
return pickRand(decisiveHeaders)
case "pre_combat", "pre":
return "⚔️ **The fight begins.**"
case "Sudden Death", "sudden_death":
return "⚔️ **Sudden Death — No Quarter**"
case "exhaust":
return "⚔️ **Exhaustion — Time Runs Out**"
default: