DiagonalAimChecks.cs
using Sandbox;
using System;
namespace PaintballBaddies;

/// <summary>Opt-in actual movement across the aim-relative diagonal boundary.</summary>
public sealed class DiagonalAimChecks : Component
{
    private PlayerController player;
    private PaintballMarker weapon;
    private float elapsed,maxTime;
    private int samples,wrongClip;
    private bool input,look,accept,forwardRecovered;
    protected override void OnStart()
    {
        player=Components.Get<PlayerController>();weapon=Components.Get<PaintballMarker>();
        input=player.UseInputControls;look=player.UseLookControls;accept=weapon.AcceptInput;
        player.UseInputControls=player.UseLookControls=false;weapon.AcceptInput=false;weapon.ReviewAimOverride=true;
        WorldPosition=new Vector3(-950,-300,2);player.EyeAngles=new Angles(0,0,0);
    }
    protected override void OnUpdate()
    {
        elapsed+=Time.Delta;
        var sideways=55+((int)(elapsed*10)%2==0 ? 2 : -2);
        player.WishVelocity=elapsed<1 ? Vector3.Left*55 : elapsed<4 ? new Vector3(55,sideways,0) : elapsed<5.5f ? Vector3.Forward*55 : Vector3.Zero;
        if(elapsed>1.3f && elapsed<3.9f)
        {
            samples++;
            if(player.Renderer.Sequence.Name!="walk_left")wrongClip++;
            maxTime=MathF.Max(maxTime,player.Renderer.Sequence.Time);
        }
        if(elapsed>4.5f && elapsed<5.4f && player.Renderer.Sequence.Name=="walk")forwardRecovered=true;
        if(elapsed<6.8f)return;
        Check("diagonal remains lateral",samples>60 && wrongClip==0,$"samples={samples},unexpected_clip_frames={wrongClip}");
        Check("cycle keeps advancing",maxTime>.8f,$"max_time={maxTime}");
        Check("forward input leaves strafe",forwardRecovered,$"forward_recovered={forwardRecovered}");
        Check("returns to idle",player.Renderer.Sequence.Name=="idle",player.Renderer.Sequence.Name);
        Log.Info("DIAGONAL_AIM COMPLETE");Destroy();
    }
    private void Check(string name,bool pass,string detail)=>Log.Info($"DIAGONAL_AIM {(pass ? "PASS" : "FAIL")} {name}: {detail}");
    protected override void OnDestroy()
    {
        if(player.IsValid()){player.WishVelocity=Vector3.Zero;player.UseInputControls=input;player.UseLookControls=look;}
        if(weapon.IsValid()){weapon.AcceptInput=accept;weapon.ReviewAimOverride=null;}
    }
}