using Patterns_And_Principles.Patterns.The_State_Pattern.Script._02_RealWorldUsage.Manager;
using UnityEngine;

namespace Patterns_And_Principles.Patterns.The_State_Pattern.Script._02_RealWorldUsage.State
{
    public class AppleGrowingState : AppleBaseState
    {
        private readonly Vector3 _appleStartScale = new Vector3(0.25f, 0.25f, 0.25f);
        private readonly Vector3 _appleGrowScaler = new Vector3(0.2f, 0.2f, 0.2f);
        private readonly Vector3 _appleMaxScale = new Vector3(1f, 1f, 1f);
        public override void EnterState(AppleStateManager appleStateManager)
        {
            Debug.Log("Entered AppleGrowingState");
            appleStateManager.gameObject.transform.localScale = _appleStartScale;
        }

        public override void UpdateState(AppleStateManager appleStateManager)
        {
            if (appleStateManager.gameObject.transform.localScale.x < _appleMaxScale.x)
            {
                appleStateManager.gameObject.transform.localScale += (_appleGrowScaler * Time.deltaTime);
            }
            else
            {
                appleStateManager.SwitchState(appleStateManager._wholeState);
            }
        }

        public override void OnCollisionEnter(AppleStateManager appleStateManager,  Collision collision)
        {
            
        }
    }
}