Skip to content

feat(archetypes): make braziers, cauldrons, and fireplaces emit firelight #91

Description

@zoeyrose

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

Make these visibly burning, fixed freestanding fixtures emit orange-red firelight by default:

  • brazier_lit;
  • fire_cauld.131;
  • fireplace_left;
  • fireplace_right.

This issue intentionally excludes the directional wall-mask wmask_fire_on_1, whose rendering and rollout risk are tracked separately, and the static fire statues and pools tracked by #87.

Evidence

A lossless placement audit at #67 head 1476bfa81c35f7764af327a84fe4045eb0eff97e finds 144 placements across 75 unique maps:

Archetype Placements Maps Own nonzero radius Same-tile neutral emitter No current source
brazier_lit 69 15 44 25 0
fire_cauld.131 18 15 4 7 6
fireplace_left 30 29 1 6 23
fireplace_right 27 21 1 5 21

One additional non-emitting cauldron shares its tile with an amber wall torch. No placement has a map-local light_color override. All 50 self-emitting placements inherit #67's established ff6030 open-fire color.

The brazier has strong radius evidence: 44 placements explicitly use radius 5, and 20 of its 25 same-tile neutral lights are also radius 5; the remaining paired braziers use radius 4 or 9 for larger compositions. Existing cauldron self-radii are 2, 4, and 5, while five of seven neutral companions are radius 3. The multipart fireplaces have radius-2/radius-3 precedents, but 44 placements currently have no source.

Scope

  • Add the smallest rendered-effective archetype-level radius to the four root objects. Retain feat(lighting): audit effective light-source colors #67's established ff6030 color.
  • Treat radius 5 as the established brazier baseline. Select bounded cauldron and fireplace defaults from the radius-2/radius-3 precedents after rendered comparison.
  • Apply light only to each multipart fireplace root, not its More child, and leave fireplace_left_off and fireplace_right_off dark.
  • Review every current positive map override and preserve it where it intentionally enlarges or constrains a scene.
  • Reconcile all 43 same-tile neutral lights deliberately: transfer their footprint to the visible fixture and remove the redundant source when equivalent, or retain and document intentional neutral fill. Do not leave accidental double emitters.
  • Review the cauldron that shares an amber torch separately so two art-aligned sources do not produce an unintended mix.
  • Preserve animation, orientation, multipart structure, layers, blocking, names/plurals, and all gameplay fields.

Coordinate this work with #80, which has 16 companion-lit braziers, and #83, which contains two cauldrons and four multipart fireplaces. Land fixture ownership before selecting those maps' ambient palettes.

Acceptance criteria

  • All four root archetypes are reviewed effective ff6030 emitters, and all 144 current placements enter the refreshed semantic inventory with inherited or intentional local radii.
  • Brazier, cauldron, and both fireplace orientations have appropriately scaled firelight in representative smooth and discrete Classic renders.
  • All 43 same-tile neutral companions and the one colored co-location are migrated, retained, or excepted with an explicit rationale; no accidental double-light source remains.
  • Existing radius-2 through radius-9 compositions retain their intended footprint, with no clipping, oversaturation, wall bleed, seam regression, or lost navigation cue.
  • Multipart fireplace children and off variants remain non-emitting; animation, direction, blocking, layer, and gameplay fields are unchanged.
  • The chore(maps): audit authored light-source colors #65 inventory, review records, archetype/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. The 75 affected map files are currently byte-identical between the two lines, but main carries plural-name metadata absent from the #67 snapshot; preserve it rather than copying archetype files wholesale. Deliver compatible authored changes through separate linked pull requests. The canonical main pull request closes this issue; the 1.x companion links it without a closing keyword. Classic 1.x owns runtime rendering evidence; validate the authored mirror independently on main, or document a concrete compatibility exception.

Activity

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

Metadata

Metadata

Assignees

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