Skip to content

feat(system-builder): Cyberpunk RED and Generic as data (4d2) - #212

Merged
over2take merged 1 commit into
feature/system-builderfrom
sb/4d2-cpr-generic-data
Oct 9, 2026
Merged

over2take merged 1 commit into
feature/system-builderfrom
sb/4d2-cpr-generic-data

Conversation

@over2take

Copy link
Copy Markdown
Owner

CYBERPUNK_RED (emp = floor(@humanity / 10)) and GENERIC (nothing) join definitions.js, each held to the games' own applyDerived over 3000 generated sheets in the parity test.

CP:R's code is a trigger on Humanity being written; the engine recomputes on every write. They agree on EMP whenever Humanity is written as a number. The three differences are pinned as tests: a hand-typed EMP survives other writes only in the code; Humanity that isn't a number leaves EMP alone in the code but makes it 0 in the engine; the code rewrites and reports EMP even when it already read right.

Cyberpunk RED is added to the builder's examples: ten stats plus Humanity, eurodollars and Improvement Points, and the NPC generator's four tiers as plain numbers. Generic gets no example, since a copy would be BLANK. The + NEW card's advancement line now uses the system's XP word in the plural. The built-in games are unchanged.

Summary

Test plan

  • Tested locally
  • Tests pass

Pre-merge checklist

Code quality:

  • Code follows project style
  • No breaking changes (or clearly documented)
  • No console errors or warnings

Version & Release:

  • Version bumped? If releasing to users, update:
    • frontend/package.json version
    • docker-compose.yml APP_VERSION
    • CHANGELOG.md with release notes
  • GitHub Actions will auto-tag Docker images with the new version

Before merging to main:

  • All tests passing
  • PR reviewed and approved
  • Branch is up to date with main
  • No merge conflicts

Related issues

CYBERPUNK_RED (emp = floor(@humanity / 10)) and GENERIC (nothing) join
definitions.js, each held to the games' own applyDerived over 3000 generated
sheets in the parity test.

CP:R's code is a trigger on Humanity being written; the engine recomputes on
every write. They agree on EMP whenever Humanity is written as a number. The
three differences are pinned as tests: a hand-typed EMP survives other writes
only in the code; Humanity that isn't a number leaves EMP alone in the code but
makes it 0 in the engine; the code rewrites and reports EMP even when it already
read right.

Cyberpunk RED is added to the builder's examples: ten stats plus Humanity,
eurodollars and Improvement Points, and the NPC generator's four tiers as plain
numbers. Generic gets no example, since a copy would be BLANK. The + NEW card's
advancement line now uses the system's XP word in the plural. The built-in games
are unchanged.
@over2take
over2take merged commit 49fda72 into feature/system-builder Oct 9, 2026
4 checks passed
@over2take
over2take deleted the sb/4d2-cpr-generic-data branch October 13, 2026 13:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant