Psyche social card

About

Psyche uses six personality attributes (Self-Assurance, Compassion, Ambition, Drive, Discernment, Bravery), each a 0-100 scale where both extremes are dysfunctional and balance sits around 50, rather than the hit points and strength scores most RPGs use. Narrative content is driven by a quality-based storylet engine (Emily Short's QBN model): at each step, the engine filters all storylets whose prerequisites match the current character state, orders them by priority with randomised tie-breaking, presents up to five, then applies effects and marks the chosen storylet played. Prerequisites and effects use a polymorphic interface system (attribute requirements, quality requirements, compound AND/OR logic, storylet-chaining) with JSONC-authored content deserialised through a custom polymorphic converter into a repository. The suite covers 63 storylets and an xUnit test suite spanning prerequisites, effects, the JSON repository and integration walkthroughs.

Highlights

  • Six-attribute personality model (Self-Assurance, Compassion, Ambition, Drive, Discernment, Bravery): no HP, no stats, both extremes dysfunctional.
  • Quality-based-narrative storylet engine: filter by prerequisites, priority with randomised tie-breaking, apply effects, mark played.
  • Polymorphic IPrerequisite/IEffect system: attribute/quality requirements, compound AND/OR logic, storylet-chaining.
  • JSONC-authored content with a custom polymorphic deserialiser mapping type-discriminated JSON back to concrete C# classes.
  • 63 storylets and an xUnit suite spanning models, prerequisites, effects, the JSON repository, and end-to-end integration.

By the numbers

Commits
82
Lines added
+17,243
Lines removed
−383
Source files
6,335