public CommandExecutor(AbstractEnemyModel model, MoveComponent move, Transform player, Rigidbody self) { _model = model; _player = player; _self = self; _move = move; }
public EnemyController(AbstractEnemyModel model, CollisionView view, Transform player, Rigidbody self) : base(model) { Model = model; View = view; _moveComponent = new MoveComponent(model); _moveComponent.Init(self); _executor = new CommandExecutor(model, _moveComponent, player, self); _executor.Execute(); Subscribe(); }
private void DestroyEnemy(AbstractEnemyModel model) { var controller = GetEnemyController(model); controller.PlayerCollision -= OnPlayerCollision; controller.Die -= OnEnemyDie; controller.Destroy(); var poolManager = CoreManager.Instance.GetData <PoolManager>(); poolManager.ReturnItem <EnemyType>((int)controller.Model.EnemyType, controller.View); _count--; }
private void OnEnemyDie(AbstractEnemyModel model) { DestroyEnemy(model); }
private void OnPlayerCollision(AbstractEnemyModel model) { PlayerCollision.SafeInvoke(model); }
private EnemyController GetEnemyController(AbstractEnemyModel model) { return(_enemy.FirstOrDefault(x => x.Model == model)); }
private void OnEnemyDie(AbstractEnemyModel model) { }