OMRWeaponMechanics.cs
using Sandbox;

/// <summary>
/// How horizontal movement contributes to weapon spread.
/// LegacyThreshold preserves the pre-framework OMR behavior exactly.
/// ContinuousSpeed blends smoothly from settled to full moving spread.
/// </summary>
public enum OMRMovementAccuracyModel
{
	LegacyThreshold,
	ContinuousSpeed
}

/// <summary>
/// How gameplay recoil is chosen for each shot.
/// LegacyRandom preserves the current OMR random pitch/yaw ranges.
/// Pattern uses an authored sequence plus optional small random noise.
/// </summary>
public enum OMRGameplayRecoilModel
{
	LegacyRandom,
	Pattern
}

/// <summary>
/// Mechanical weapon action, intentionally independent from locomotion and ADS.
/// More states can be added when a real mechanic needs them without creating
/// combinations such as "AimingWhileSlidingWhileReloading".
/// </summary>
public enum OMRWeaponActionState
{
	Holstered,
	Ready,
	SprintToFire,
	Reloading,
	Cycling,
	Deploying
}