public GroundChaseState(EnemyController controller) : base(controller.gameObject) { type = StateType.Chase; this.controller = controller; awarenessProvider = controller.awarenessProvider; movementController = gameObject.GetComponent <GroundMovementController>(); }
public GroundPatrolState(EnemyController controller) : base(controller.gameObject) { type = StateType.Patrol; this.controller = controller; awarenessProvider = controller.awarenessProvider; movementController = gameObject.GetComponent <GroundMovementController>(); origPosition = movementController.transform.position; }
private void Awake() { if (!movementController) { movementController = GetComponent <GroundMovementController>(); } if (!awarenessProvider) { awarenessProvider = GetComponent <AwarenessProvider>(); } GetComponentInChildren <BoxerHeadVulnerable>().vulnerableTo = vulnerableTo; Dictionary <StateType, BaseState> states = new Dictionary <StateType, BaseState>() { { StateType.Patrol, new GroundPatrolState(this) }, { StateType.Chase, new GroundChaseState(this) }, { StateType.Attack, new GroundAttackState(this) } }; stateMachine.SetStates(states); }