watchers
NPC behaviour and vision for Sneaky Pooper, driven by the GameDirector. At level start, every `sp_role = npc` marker becomes a watcher. Tower lifeguards sweep, patrol lifeguards and judges walk their `sp_route` waypoints, swimmers paddle inside their pool footprint and glance aro…
game.gameplay.watchers
NPC behaviour and vision for Sneaky Pooper, driven by the GameDirector. At level start, every sp_role = npc marker becomes a watcher. Tower lifeguards sweep, patrol lifeguards and judges walk their sp_route waypoints, swimmers paddle inside their pool footprint and glance around, and sunbathers and bartenders glance. Each watcher carries a translucent yellow vision cone from game.gameplay.fx. Sight is tested by range plus cone angle, and line of sight is blocked by the level's hide cylinders (sp_radius) and by colliders (Physics.raycast). The look comes from game.characters.npcs.dress, which is a no-op when missing. API: build(level, root, ctx), update(w, dt, ctx) -> seesGary, setVisible, cleanup, accuse(w, x, z).
Scoped to this part · feeds back into the world's score.