A lamp lights the people standing in it

The goods yard fight made the case: three agents inside the same pool of light shot at
-50% while the fourth, four metres away, shot at -10%.

A lamp now has a reach, per item rather than global, because a weapon lamp and a
vehicle searchlight are not the same offer — 4 m for cold light strips, 6 m for a
weapon lamp, 10 m for the issue field lamp, 30 m for a roof searchlight. Anyone inside
it is in the light and the card names whose lamp it is, so both halves of the rule
travel together: the pool is one position and the whole group is standing in it.

Measured from the tokens. The shot that started this — no lamp of her own, four metres
from somebody else's, in pitch dark — goes from 20% to 60%, while an agent
twenty-five metres out still eats the full -50%.

An UNKNOWN distance is explicitly not lit: Number(null) is 0, so an unmeasured
distance would otherwise have read as standing on top of the lamp and lit any scene
with no tokens placed. The dialog carries a tick instead, pre-set when the canvas could
measure it and the GM's answer when it could not.

Note: template.json is read when Foundry loads the system, so a deployed server needs
a restart and not just a pull before the migration can stamp the new field.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
slaguru666
2026-08-11 09:49:30 +01:00
co-authored by Claude Opus 5
parent 5c640d65cf
commit 4bfa7110d0
114 changed files with 262 additions and 50 deletions
+6 -2
View File
@@ -861,7 +861,6 @@
"RINGBRP.Sight.reflex": "Reflex sight",
"RINGBRP.Sight.telescopic": "Telescopic sight",
"RINGBRP.Sight.thermal": "Thermal sight",
"RINGBRP.Sight.LampEffect": "lit, and visible",
"RINGBRP.Sight.Revealed": "{name} shows them exactly where you are",
"RINGBRP.Lighting.lit": "Lit",
"RINGBRP.Lighting.dim": "Dim",
@@ -876,5 +875,10 @@
"RINGBRP.Chat.Damage": "damage",
"RINGBRP.Chat.Sustained": "sustained",
"RINGBRP.Chat.DamageMod": "damage mod",
"RINGBRP.Notify.GearFitted": "Fitted {n} item(s) that were carried before sights and lamps did anything."
"RINGBRP.Notify.GearFitted": "Fitted {n} item(s) that were carried before sights and lamps did anything.",
"RINGBRP.Sight.LampOwn": "yours, {reach} m of it",
"RINGBRP.Sight.LampNear": "{holder}'s, {m} m away — you are in it",
"RINGBRP.Sight.SomeLamp": "The light you are standing in",
"RINGBRP.Dialog.InLight": "I am in the light",
"RINGBRP.Dialog.InLightHint": "Ticked already if a lit lamp is within reach of your token. Tick it yourself when there are no tokens to measure."
}