using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BasicEnemyStateController : MonoBehaviour
{
    IState currentState;
    BasicenemyBaseState currentStatee;
    public BasicEnemyPatrolState patrolState = new BasicEnemyPatrolState();
    public BasicEnemyMovingState movingState = new BasicEnemyMovingState();
    public BasicEnemyShootingState ShootingState = new BasicEnemyShootingState();

    private void Start()
    {
        ChangeState(patrolState);
    }
    
    void Update()
    {
        if(currentState != null)
        {
            currentState.UpdateState(this);
        }
    }

    public void ChangeState(IState newState)
    {
        if(currentState != null)
        {
            currentState.OnExit(this);
        }
        currentState = newState;
        currentState.OnEnter(this);
    }
}

public interface IState
{
    public void OnEnter(BasicEnemyStateController controller);
    public void UpdateState(BasicEnemyStateController controller);
    public void OnExit(BasicEnemyStateController controller);
}
