CinderPylon
One survey pylon on the crown. Six instances, one per `pylon_N` entity, each carrying its own `index`.
CinderPylon
One survey pylon on the crown. Six instances, one per pylon_N entity, each
carrying its own index.
While the local player stands inside cinder.CFG.pylonRadius of the pylon's
site — and within verticalReach of its height, so somebody on the flank
directly below it does not count — the survey charges. At full charge the pylon
arms itself for good, swaps to cinder.MATERIALS.pylonArmed, and emits
pylon.armed once.
Committing
Stepping out does not throw the survey away immediately. holdSeconds of grace
run first, so ducking a lava bomb and coming straight back costs almost
nothing. Past that the charge bleeds at bleedRate of the fill rate, so
walking away costs everything. Committing to a pylon is what it pays for.
What it reports
pylon.charging fires every tick the charge MOVES, with
{ index, charge, rising } — rising = true while filling, false while
bleeding — so a charge indicator both fills and drains without polling.
pylon.armed fires once, with { index, x, y, z }.
cinder.state.pylonCharge[index] carries the same number for anything that
would rather read state than subscribe.
Fields
| Field | Default | Meaning |
|---|---|---|
index | 1 | Which pylon this is, 1..CFG.pylonCount. Set in the scene. |
charge | 0 | 0..1, replicated. |
armed | false | True once the survey is complete, replicated. |
holdSeconds | 0.55 | Grace after stepping out, before the bleed starts. |
bleedRate | 0.55 | Bleed speed as a fraction of the fill speed. |
verticalReach | 6.0 | How far above or below the pylon still counts as in it. |
Resetting
Nothing here listens for a new run. CinderDirector.beginRun() resets every
pylon directly — charge, armed flag and material — so a restart has one owner
and cannot half-happen.
Scoped to this part · feeds back into the world's score.