fix(combat): persist death and retarget on kill
Keep the velocity-only NPC adaptation inside the locomotion family so authoritative Dead motion remains persistent. Route selection clears through a dedicated combat target controller that reacquires the closest eligible creature when retail Auto Target conditions apply. Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
parent
5276a83087
commit
9b97102c67
10 changed files with 281 additions and 19 deletions
|
|
@ -52,4 +52,18 @@ public sealed class ServerControlledLocomotionTests
|
|||
Assert.Equal(MotionCommand.RunForward, plan.Motion);
|
||||
Assert.Equal(ServerControlledLocomotion.MaxSpeedMod, plan.SpeedMod);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(MotionCommand.Ready)]
|
||||
[InlineData(MotionCommand.WalkForward)]
|
||||
[InlineData(MotionCommand.RunForward)]
|
||||
public void CanApplyVelocityCycle_AllowsOnlyLocomotionFamily(uint motion)
|
||||
=> Assert.True(ServerControlledLocomotion.CanApplyVelocityCycle(motion));
|
||||
|
||||
[Theory]
|
||||
[InlineData(MotionCommand.Dead)]
|
||||
[InlineData(0x10000058u)] // ThrustMed action
|
||||
[InlineData(0x10000051u)] // Twitch1 hit reaction
|
||||
public void CanApplyVelocityCycle_PreservesAuthoritativeNonLocomotion(uint motion)
|
||||
=> Assert.False(ServerControlledLocomotion.CanApplyVelocityCycle(motion));
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue