Encounter Simulator: consider death saves / downed states for monsters

Open
#12 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
48/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
typescript
Domain
game-dev

Research direction

Start by reading loadScenarioCombatants.ts to trace how tracksDeathSaves is assigned, then review the existing state machine in deathSaves.ts and targeting behavior in selectAction.ts. Define how a scenario or monster entry enables the option while preserving the current monster default, and verify that downed-combatant targeting and existing death-save tests still behave correctly.

Written by the indexing model from the issue text.

Description

enhancement

Summary

#5's milestone 12 added death saving throws, but deliberately scoped them to PCs only — monsters keep the original "0 HP = instant defeat" rule. This was a considered default (matches common DM table practice, and avoids every monster in a multi-monster fight individually rolling death saves for no real balance-relevant signal), not an oversight, but it's worth a standalone follow-up in case a DM wants full symmetry — e.g. to check whether a boss monster can be knocked out rather than killed, or for a homebrew "no-kill" style campaign.

Current behavior

EngineCombatant.tracksDeathSaves is set true for PCs and false for every monster/custom-creature combatant in loadScenarioCombatants.ts. The full death-save state machine (deathSaves.ts) already supports any combatant that opts in — extending it to monsters is mostly a matter of flipping that flag, not building new mechanics.

Suggested follow-up

  • Make tracksDeathSaves a per-scenario or per-monster-entry toggle instead of a hardcoded PC-only rule, defaulting to today's behavior (off for monsters) so nothing regresses.
  • Note from milestone 12: the targeting AI (selectAction.ts) never deliberately targets a downed (0 HP, not yet dead) combatant, so "taking damage while already at 0 HP" is implemented and unit-tested but effectively unreachable in a real simulated fight today — worth revisiting alongside this if monster death saves are added, since it would start mattering both ways.

Low priority — the current default matches how most tables actually run monsters.

Dominant language
TypeScript
Stars
0
Forks
0
Avg merge
1d 18h
Merged PRs (30d)
2

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from RamonGebben/kernel-dm-toolbox

All issues in RamonGebben/kernel-dm-toolbox

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.