Slice #2: skill checks + humanity / cyberpsychosis
Shipped as 9d72abe.
What Changed
This entry documents the core tabletop-inspired mechanics for checks, humanity, and cyberpsychosis pressure.
Core tabletop mechanics the rest of the engine leans on.
SkillCheck: 1d10 + STAT + SKILL vs DV. CP RED crits — nat 10 adds another d10, nat 1 subtracts one. Opposed checks tie to the defender.
Humanity: ceiling = EMP × 10. Installing chrome rolls humanity loss; effective EMP = floor(humanity/10). Status tracks stable → at_risk → cyberpsychotic. Requirement chains block orphan cyberware options.
Cyberware v0: 8 categories, ~24 entries in data/cyberware.json.
Demo that shows the tradeoff biting:
php bin/chrome-demo.php --seed=1337 --emp=8
# Fully loaded solo ends AT_RISK (EMP 2)
Tests: 24/24 green at this commit.
Why It Matters
The purpose is continuity: future work is easier when the reason, scope, and verification for each slice are recorded next to the code history.
Implementation Notes
The commit message for this slice was:
Core CP RED mechanics that the rest of the engine leans on.
- SkillCheck: 1d10 + STAT+SKILL + mods vs DV, with CP RED crit rules
(nat 10 -> add another d10; nat 1 -> subtract another d10) and opposed
checks (tie -> defender). Deterministic via seeded Rng.
- Cyberware v0 JSON: 8 categories (fashion/neural/optics/audio/body/limbs/
borg/weapons), eddies + humanity-loss dice + requirement chains. Otto v0
draft to reconcile vs Athena's set + source (#614/#616).
- Humanity: Humanity = EMP*10 ceiling; installing chrome rolls Humanity Loss
and drops effective EMP (floor(humanity/10)); stable -> at_risk (EMP<=2) ->
cyberpsychotic (EMP<=0). Requirement gate blocks orphan options.
- Demos: bin/chrome-demo.php. Bootstrap loads cyberware (idempotent).
- Tests now 24/24 green (added skillcheck crit bounds + opposed, humanity
determinism + monotonic EMP + threshold + requirement gate + cw idempotency).
Refs project #16, doc #345.
Files touched in this slice included:
bin/chrome-demo.phpdata/cyberware.jsonincludes/Humanity.phpincludes/Rules.phpincludes/SkillCheck.phptests/run-tests.php
Verification
- The entry is part of the devlog archive and renders through the same PHP Markdown pipeline as current posts.
- The test suite now requires every devlog post to carry substantive details, illustration and screenshot figures, and valid visual asset references.
- Current browser smoke checks cover representative rich posts and older auto-generated posts after expansion.
Visuals
