Demo seed: The Amberwake Accord (GM copy), with the owner in the GM's seat (#951) #954
Loading…
Reference in a new issue
No description provided.
Delete branch "build/demo-gm-copy"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #951. The owner's review of lanes 0–10 has about 40 GM-only pieces, and on dev the owner is only ever a player in the demo campaigns. This adds a fifth demo campaign, "The Amberwake Accord (GM copy)": Amberwake mirrored row for row under its own ids, with two seats swapped. The owner sits in Dana's GM seat (and owns the campaign); Dana sits in the owner's player seat and plays the owner's character, Hollis.
How it works:
demo/engine.pyhas a frozenVariant(salt, name, swap_seats).AMBERWAKEis the original;GM_COPYhas saltgm-copy.Variant.did()salts every deterministic id except people (user:*, which are shared).self.main_idandself.did()replace the module constants (a mechanical rewrite acrossBuilderandWikiMixin).self.danabecameself.gm, anduid()maps the member and Dana through the seats.mirror():--resetand the guards:GM_COPY_IDis inCAMPAIGN_IDS, so--reset,delete_demo, the "elsewhere" guard andwrite_media's folder guard cover it with no other change. Everything stays inside the same armed tripwires and one transaction.session_at_riskandaudio_deletion_pending, which only a GM gets.Deliberately identical: transcripts and world text. So "Dana" still appears inside content (the table talk, and a few template lines). Only the engine's own attributions change.
Not mirrored:
Checks:
test_demo_seed.py: 6 pass. The new mirror test covers::::forrendering for Dana and the GM, and not for Marcus;--reset, and files in each campaign's own folder (76 each).--resetrebuilt it;--dry-runwrote nothing.now()timestamps and one existing random default (a quest page'slore_entries.version_id). The branch's extra rows are exactly the copy.changelog.py checkpasses.On dev: the next deploy re-runs the seed with
--reset. The README says how.Changelog:
changelog.d/951-demo-gm-copy.added.md.🤖 Generated with Claude Code