private void Awake() { EventsManager.TriggerEvent("SuscribeToUpdateManager", this); _view = new LaserEnemyView(); _model = new LaserEnemyModel(_view, transform, FindObjectOfType <NodesList>().GetNodes(), speed, patrolWaypoints, patrolStateLoop, FindObjectOfType <Player>().transform, distanceToPlayer, laserAttack, castPoint, this); _controller = new LaserEnemyController(_model); }
public LaserEnemyModel(LaserEnemyView view, Transform owner, List <ANode> availableNodes, float speed, List <Transform> patrolWaypoints, bool patrolLoop, Transform objective, float distArroundPlayer, Laser attack, Transform castPoint, LaserEnemy entity) { _view = view; _stateMachine = new StateMachineClassic(); _stateMachine.AddState(new MyPatrolState(_stateMachine, owner, speed, patrolWaypoints, patrolLoop)); _stateMachine.AddState(new MoveNearObjective(_stateMachine, availableNodes, owner, objective, distArroundPlayer, speed)); _stateMachine.AddState(new ChargeAttack(_stateMachine, attack, owner, objective, castPoint, entity)); }