Henter
The player's body on the hill. Rides on the PlayerPrototype's `body` beside `game.hero.HenterBody`, which is the figure you see.
Henter
The player's body on the hill. Rides on the PlayerPrototype's body beside
game.hero.HenterBody, which is the figure you see.
The one verb
The hent is a lunge, not a snapshot. Pressing it carries the Henter
Core.HENT.lunge metres forward and holds the lantern's cone open for the
length of that lunge, so what the snatch sweeps through is what it catches —
without that, a hent aimed at a mote a step away lands behind it. The cone
itself (Core.HENT.arc degrees, Core.HENT.range metres, measured from
hentReach in front of the body) is judged by game.rules.GlewField; this
component decides only WHEN and WHERE, and announces it with the hent event
so the hoggies can work out whether they were the thing that got snatched.
hent carries caught — the motes the first frame of the lunge took. Motes
swept up over the rest of it are added to the lantern the same way, each with
its own glew event, so the HUD's count is always the true one.
A hent that lands calls HenterBody:playHent(), and any change in the lantern
calls HenterBody:setGlow(lantern / Core.QUOTA.gold) — both only when those
methods exist, so the body can be a placeholder without breaking the round.
Taking a butt
On the butt event this body loses lost motes out of the lantern (emitting
a glew with a negative delta), drops whatever lunge is in flight, and sets
staggerUntil to roundTime + Core.HENT.stagger — for those seconds it moves
at 45% speed. game.audio.sfx plays game.rules.clips.lantern_spill where it
happened.
Controls
Everything comes from game.henter.inputMap: move, hent, pause. Keyboard,
gamepad and the on-screen touch controls are the same three control names, so
nothing here reads a raw key and any family drives the whole game. Only the
owning peer's input moves a body (entity:isLocal()), so a second player on
the hill drives their own Henter and not yours.
Movement
Position comes from Core.ground(x, z) — nobody raycasts. Heading straight
upslope costs up to Core.MOVE.uphillPenalty of the speed, which is what makes
climbing toward the light a decision rather than a formality. The body holds
still while Core.state.cutscene is true.
Scoped to this part · feeds back into the world's score.