Skip to content

dndwright 0.22.0

Choose a tag to compare

@sligara7 sligara7 released this 06 Jun 00:45
· 29 commits to main since this release

[0.22.0] — 2026-06-05

Added

  • apply_theme_scaling(ruleset, layer) (dndwright) — folds a ThemeScalingLayer's
    mechanical overrides onto a ruleset so the same computation graph yields
    setting-appropriate values (modern warfare, sci-fi, steampunk, …). lookup_overrides
    deep-merge into the ruleset's lookup tables (creating tables/keys, preserving the rest);
    input_overrides re-baseline a node's default_value (eval precedence stays explicit
    input > themed default > original default
    , so a theme sets the world's baseline without
    clobbering a value a character explicitly carries). flavor_renames are display-only and
    ignored here. Pure (the base ruleset is untouched) and composes with compose(). Raises
    KeyError on an input_overrides id that names no node, to catch authored-layer typos.
    This makes the previously inert ThemeScalingLayer / PREDEFINED_THEME_SCALING data a
    working feature. New tests/test_theme_scaling.py.