Skip to content

feat(archetypes): make transient magic glows emit matching colored light #94

Description

@zoeyrose

Architecture amendment — one authored content source (2026-08-13)

Initiative atrinik/atrinik#357 supersedes every future live-branch instruction below. atrinik/content@main is the sole mutable authored source for replacement and Classic targets. Future authored changes land only on main; supported Classic artifacts are deterministically derived from the same immutable main revision. Do not create, restore, author, backport, validate, or publish through a live 1.x branch.

Exact historical 1.x commits, tags, releases, assets, preserved local snapshots, provenance, parity records, and comparisons remain valid immutable evidence. This amendment changes no other feature, balance, lore, compatibility, licensing, validation, or ownership acceptance criterion.

Important

Evidence policy update (2026-08-11): #66 is complete through #124; any wording
below treating it as a future prerequisite is superseded. #126/#127 retire the
committed renderer-review capture surface. The removed files were generated
review artifacts, not authored gameplay art. Any requirement below to commit
rendered screenshots, contact sheets, manifests, proof maps, or capture tooling
is superseded. Keep authored semantic review in
maps/light-source-review.json (rationales, current digests, complete coverage,
and zero unreviewed emitters). Optional smooth/discrete diagnostics belong only
under ignored build/ or deployment output; summarize conclusions in the PR,
but never commit or gate merge on those files.

Follow-up to #65 and its implementation in #67, with the compatible main integration tracked by #66.

Outcome

Give the five transient meffect_* glow archetypes a tiny art-matched dynamic light:

  • blue: 4060ff;
  • green: 40ff60;
  • pink: ff60c0;
  • purple: a060ff;
  • yellow: ffe060.

These are short-lived spell and potion effects, so their light must remain smaller and less persistent than map fixtures or portals.

Evidence

All five archetypes currently lack a radius and color. Each is transient (no_save 1, is_used_up 1, food 5, speed 1) and is consumed by 13 spell-table entries plus three potion outcomes:

  • blue: remove curse and remove damnation;
  • green: minor heal, greater heal, restoration, rain heal, party heal, and one beneficial potion outcome;
  • pink: identify;
  • purple: cure poison, cure disease, cure confusion, remove depletion, and two potion failure/curse outcomes;
  • yellow: strength self.

The authored maps also contain two permanent blue overlays in Morliana world_13_5: one at (12, 12) shares a neutral light9, and another sits at (12, 11). A global default would make those adjacent persistent objects stack unless the map composition is reconciled.

Scope

  • Add the established art-matched palette colors above and start with radius 1 for each transient effect.
  • Stress-test clustered and repeated casts so dynamic lights do not saturate, flicker excessively, or impose an unreasonable rendering cost.
  • Verify every spell and potion consumer, including success, failure, curse, expiry, and rapid-recast paths.
  • Reconcile the two permanent Morliana overlays so the focal point has at most one intentional light provider and no accidental adjacent stacking.
  • Do not infer behavior from Marigold's generic exit animation named meffect_purple; it is not a consumer of the purple effect archetype and remains map-palette work under feat(maps): give Wizards' Tower floors distinct ambient palettes #80.
  • Preserve effect timing, animation, spell/potion mechanics, saving behavior, and all gameplay fields.

Acceptance criteria

  • Each of the five transient effects emits its matching established palette color at a deliberately small radius.
  • All 13 spell-table and three potion consumers retain their exact mechanics and lifecycle.
  • Clustered casts remain readable in smooth and discrete Classic lighting without persistent residue, severe saturation, or distracting flicker.
  • The two permanent Morliana overlays and their neutral companion are reconciled into one intentional focal composition.
  • Source-only and runtime-created effects are included in refreshed review evidence, not silently omitted because they lack ordinary map placements.
  • The chore(maps): audit authored light-source colors #65 inventory, review records, source/map semantic digests, evidence manifest, and affected rendered evidence are refreshed.
  • python3 tools/world_content_audit.py lights --check, python3 tools/validate.py, and git diff --check pass.

Release lines

Land only after #65/#67 are integrated on 1.x and #66 supplies the matching field/audit contract on main. Runtime validation belongs on Classic 1.x; validate compatible authored definitions independently on main and document any replacement-stack limitation. Deliver separate linked pull requests without copying line-specific metadata wholesale.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Fields

Priority

None yet

Start date

None yet

Target date

None yet

Effort

None yet

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions