CoveredStrideTransition.cs
using Sandbox;
namespace PaintballBaddies;

/// <summary>Preserves corresponding foot phase across covered walk/run clips.</summary>
public static class CoveredStrideTransition
{
    public static void SetSequence(SkinnedModelRenderer body, string clip)
    {
        var previousClip=body.Sequence.Name;
        if(previousClip==clip)return;
        // Only query sequence time when a known locomotion clip has a phase to preserve.
        var preservePhase=CoveredRosterAssets.CharacterIndex(body.Model?.Name)>=0
            && ((previousClip=="walk" && clip=="run") || (previousClip=="run" && clip=="walk"));
        var previousPhase=preservePhase ? body.Sequence.TimeNormalized : 0;
        body.Sequence.Name=clip;
        // Measured source foot trajectories align run one eighth cycle before walk.
        if(preservePhase)
            body.Sequence.TimeNormalized=(previousPhase+(clip=="run"?.875f:.125f))%1f;
    }
}