Skip to content

framework: own moves aim at the target, chain in place, turn by code, combos - #132

Open
sp00ktober wants to merge 6 commits into
port/airbornefrom
framework/chain-aim
Open

sp00ktober wants to merge 6 commits into
port/airbornefrom
framework/chain-aim

Conversation

@sp00ktober

Copy link
Copy Markdown
Contributor

The move player's fixes from the second Zinogre play test (F1-F5, F10) and what faithful turns need. Stacked on #131.

  • Own moves aim at the monster's target (ENTITY.TARGET, the Felyne too; the player when there is none); the brain's distance and side gates read the same place.
  • A hunter turn turns the entity's own yaw (base), at the donor's rate x clip speed / 2; the clip's facing keys ride on top.
  • An AFTER (or a combo's THEN) on the same carrier is dispatched in the AI frame the step ends: no carrier re-entry, no hub clip. A chain keeps base; the facing jump at a switch ramps out over the engine's blend. em75's hub has no timer that could cut such a run.
  • Code travel turns by base; lunges scale with size.
  • A move's code turn (EM_TURNS), aim (turns exactly onto the target along it), aim_out (the residual slid into the successor).
  • Combos: enter ids from OWN_MOVES up name {first, then}; THEN follows first's chain in place. OWN_MOVES 128 -> 160, EM_MOVES 24156 -> 30576 B.

Tests: framework 808, mhfu 1687, mhfu-port 1123 passed (with #129).

🤖 Generated with Claude Code

sp00ktober and others added 6 commits October 25, 2026 23:03
…d, lunges by size

The move player's turn and lunge and the brain's distance and side gates read one
function, mhfu_move_target_pos: ENTITY.TARGET's object, the player when it is 0 or not
RAM. The hunter and away turn turns the entity's own YAW (base), at the donor's rate
times CLIP_BLOCK.SPEED / 2; the lunge's near, span, base and range are times the size.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…rries over

When a step ends (clip, stop, length or wall) and the registry names a successor on the
same carrier, the move player ends the step's windowed attacks and dispatches the
successor's entry in that AI frame, before the host step: the hub's clip and its blend
freeze are no longer played between two steps. em_vhook's mhfu_em_chain is the one place a
successor is chosen, filled and tagged as play_slot does it.

The successor keeps the step's base (the entity's own YAW); any other start sets base to
YAW. YAW is base plus the clip's curve plus a ramp that starts where YAW is continuous and
falls to 0 as part 0's BLEND counts down.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The travel curve of a chained step is turned by base on its first frame, kept or taken
from YAW, not by the drawn YAW (base plus the last clip's facing key and the ramp), as
the donor's entity-frame motion is in the start yaw. The distance, receding and side
conditions' docs and the own-move listing say target.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ds; 160 own moves

Turn by code: a move's own yaw (base) follows the donor's entity-yaw curve, s16 YAW
units every STEER_KEY_STEP clip frames from START (EM_TURNS pool, runs shared like keys
and samples, STEER_SPEC.TURNS beside the samples). steer.turn = aim scales it to turn
exactly the angle to the target seen on the first playing frame. MOVE.AIM_OUT spreads the
angle still left at a hand-over in place over the successor's first AI frames.

Combos: an enter id from OWN_MOVES to 255 names an EM_MOVES.COMBOS entry (first, then); the
slot-32 stub files it on em75's hub, the brain plays first, and successor() takes then
in place of first's AFTER, for that play only. mhfu.em_combo registers one and refuses a
first that is empty or off the hub. OWN_MOVES is 160.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…the moves module and the live steer

Manifest: Move.code_turn (s16 YAW units every 2 clip frames) and Move.aim_out, and
Steer.turn = aim, which needs a code_turn; aim is a derived mode, not one an editor offers
(DERIVED_TURNS). mhfu_port.moves counts the code turns in Pools by the registry's rule,
refuses a code turn past its capacity, the clip or an s16, an aim without one, more
combos than the table holds and a combo whose first is off the hub, and writes
steer.code_turn, turn = aim, aim_out and combos = { { id, first, then } }. combos(m) lists the
(first, then) own-move pairs of the [brain.pairs] lists, combo_id(m, first, then) their enter
ids. mhfu.steering holds the one conversion of the code turn; mhfu.live.moves packs it, aim and
aim_out; mhfu_port.lua registers the combos after the moves (mhfu.em_combo).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant