feat(ui): port retail jump power bar
Import gmFloatyPowerBarUI LayoutDesc 0x21000072, teach the meter factory its stateful single-image shape, and project the movement-owned retail jump charge through a focused retained controller. Preserve authored resize constraints and state-managed visibility, with named-decomp pseudocode plus controller, movement, and production-DAT conformance coverage. Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
parent
27619b2328
commit
db03b4bda8
18 changed files with 3045 additions and 10 deletions
|
|
@ -293,6 +293,24 @@ public class PlayerMovementControllerTests
|
|||
Assert.True(controller.VerticalVelocity > 0f);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void JumpChargeSnapshot_TracksHeldChargeAndResetsOnRelease()
|
||||
{
|
||||
var engine = MakeFlatEngine();
|
||||
var controller = new PlayerMovementController(engine);
|
||||
controller.SetPosition(new Vector3(96f, 96f, 50f), 0x0001);
|
||||
|
||||
Assert.Equal(default, controller.JumpCharge);
|
||||
|
||||
controller.Update(0.25f, new MovementInput(Jump: true));
|
||||
Assert.True(controller.JumpCharge.IsCharging);
|
||||
Assert.Equal(0.25f, controller.JumpCharge.Power, precision: 3);
|
||||
|
||||
controller.Update(0.016f, new MovementInput(Jump: false));
|
||||
Assert.False(controller.JumpCharge.IsCharging);
|
||||
Assert.Equal(0f, controller.JumpCharge.Power);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Update_AirborneFrames_ZRiseThenFalls()
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue