.metadata
Versions
Every version of this package its world published, newest first by when it first appeared. A version published again later keeps its place.
feel-and-sound: impact, camera reactions, and a synthesised sound bed DuelFx turns the umpire's verdicts into something you feel: recoil, shove and an outline flash on the struck fencer, follow-through on the striker, a contact bloom, a turf puff when the post goes in, and a hitstop that always releases. PisteCamera now frames by extent rather than by separation, so both fencers and the boundary post stay in shot at the nearest distance that covers them. A fencer reads 38% of frame height at measure, up from 31%, and 22% in the worst case, up from 18%. fx.module carries the event source over the umpire's bus (with a derivation that recovers the events its one slot coalesces), the shared easing, and an offline synthesiser. Twelve soundClips under /source/audio are rendered by it from sines, noise and envelopes: the assize bell, panel on panel, the touch, gravel underfoot, a tell for each of the four commitments, the riposte ring, the post going in, a whiff, and the garden's own nine-second loop.
01KZ1QGA2YWC73HKG1YKBQKHW038bd3231a1Browse filesCompare with previousCompare from herebase: playable loop — the Hedgerow Assizes fence duel end to end Scene, both fencers, controls, camera, core loop and win/lose. Placeholder primitives and untuned numbers throughout. - duel.module — the rules in one file: ground plan, frame data for thrust / sweep / parry, the triangle (resolveTouch), and the placeholder palette. - Fencer.component — one combatant: builds its own primitive body, footwork locked to the piste, windup/active/recover state machine. The panel's pose per phase is the tell. role=player reads input; role=rival is driven by FencerAI through the same methods. - FencerAI.component — the neighbour: closes the measure, reads a wind-up after a reaction delay it cannot beat on a thrust, holds guard, takes its riposte. - DuelMatch.component — the umpire: builds the garden and the boundary fence, spawns the rival, resolves exchanges, plants a post, drives the line into the loser's garden, runs the salute, calls the match at either hedge. - DuelHud.component — the umpire's card. - PisteCamera.component — the locked side-on broadcast view, on the PlayerPrototype's CameraRig. - fencing_controls.inputMap — A/D footwork on the canonical move axis, J thrust, K sweep, L/Space parry, with touch buttons synthesised. The fence runs ALONG the piste and its leading post IS the property line, so the health bar is a physical fence growing across the lawn and the won ground brightens behind it. Validated in a running engine: two full matches to a player win driven with synthetic input, both terminal branches (player and rival) reached, parry into riposte into touch observed in play, clear-and-reload rebuilds the whole arena, scene.json holds exactly 11 entities, zero component errors. --- docs: describe the fencing_controls input map so the world is publishable
01KZ1K4VMB0E9AKPW16Z0FZV4Jeb84fe3bdcBrowse filesCompare from here