using KitsuneCafe.SOAP; using R3; using UnityEngine; namespace KitsuneCafe.Entity { public class SprintFeature : MonoBehaviour { [SerializeField] private Motor motor; [SerializeField] private ReactiveSource sprint; [SerializeField] private float adjustedMaxSpeed = 3f; public float SprintSpeed => adjustedMaxSpeed; public readonly ReactiveProperty IsSprinting = new ReactiveProperty(false); private void Reset() { motor = GetComponent(); } private void Awake() { sprint.AsObservable().Subscribe(Sprint); } public void Sprint(bool shouldSprint = true) { if (shouldSprint) { motor.ChangeMaxSpeed(adjustedMaxSpeed); } else { motor.ResetMaxSpeed(); } IsSprinting.Value = shouldSprint; } } }