using System; using System.Collections.Generic; using Grid; using UnityEngine; namespace Actions { public class SpinAction : BaseAction { private float totalSpinAmount; private void Update() { if (!IsActive) return; float spinAddAmount = 360f * Time.deltaTime; transform.eulerAngles += new Vector3(0, spinAddAmount, 0); totalSpinAmount += spinAddAmount; if (!(totalSpinAmount >= 360f)) return; ActionComplete(); } public override void TakeAction(GridPosition gridPosition, Action onSpinComplete) { totalSpinAmount = 0f; ActionStart(onSpinComplete); } public override List GetValidActionGridPositionList() => new() { Unit.GridPosition }; public override string GetActionName() => "Spin"; public override int GetActionPointsCost() => 2; } }