OMRCycleSoundCue.cs
using Sandbox;
/// <summary>
/// One timed mechanical sound during a weapon cycle.
///
/// Time is measured in seconds from the moment the visible/mechanical cycle
/// begins (after OMRWeaponCycleProfile.StartDelay). Keeping cycle audio on the
/// weapon definition lets two weapons share cycle mechanics without being
/// forced to share the same bolt/pump/lever sounds.
/// </summary>
public record struct OMRCycleSoundCue
{
/// <summary>
/// Seconds after CycleStarted when this sound should play.
/// </summary>
[KeyProperty]
public float Time { get; set; }
/// <summary>
/// SoundEvent played at this point in the cycle.
/// </summary>
[Property, KeyProperty]
public SoundEvent Sound { get; set; }
}