public ThumperAttackState(ThumperEnemyController controller) : base(controller.gameObject) { type = StateType.Attack; this.controller = controller; awarenessProvider = controller.awarenessProvider; movementController = gameObject.GetComponent <ThumperMovementController>(); }
public ThumperPatrolState(EnemyController controller) : base(controller.gameObject) { type = StateType.Patrol; this.controller = controller; awarenessProvider = controller.awarenessProvider; movementController = gameObject.GetComponent <ThumperMovementController>(); origPosition = movementController.transform.position; }
public void Awake() { if (!movementController) { movementController = GetComponent <ThumperMovementController>(); } if (!awarenessProvider) { awarenessProvider = GetComponent <AwarenessProvider>(); } GetComponentInChildren <ThumperVulnerable>().vulnerableTo = vulnerableTo; Dictionary <StateType, BaseState> states = new Dictionary <StateType, BaseState>() { { StateType.Patrol, new ThumperPatrolState(this) }, { StateType.Attack, new ThumperAttackState(this) } }; stateMachine.SetStates(states); }