示例#1
0
        public void Execute(float deltaTime)
        {
            if (_upTimer.MAXValue < _upTimer.CurrentValue)
            {
                AddBulletToList(_bulletPull.Get());

                _upTimer.ResetTimer();
            }
            else
            {
                for (int i = 0; i < _bullets.Count; i++)
                {
                    var bullet = _bullets[i];

                    MoveBullet(bullet, deltaTime);

                    if (_returnChecker.ShouldReturn(bullet))
                    {
                        _bulletPull.Return(bullet);
                    }
                }

                _bullets.RemoveAll(b => !b.gameObject.activeSelf);
            }

            _upTimer.UpTimerTick(deltaTime);
        }
示例#2
0
        public void Execute(float deltaTime)
        {
            if (!_weaponLocker.IsLocked)
            {
                if (_fire.IsKeyDown())
                {
                    AddBulletToList(_bulletPull.Get());
                }
            }

            for (int i = 0; i < _bullets.Count; i++)
            {
                var bullet = _bullets[i];

                MoveBullet(bullet, deltaTime);

                if (_returnChecker.ShouldReturn(bullet))
                {
                    _bulletPull.Return(bullet);
                }
            }

            _bullets.RemoveAll(b => !b.gameObject.activeSelf);
        }
示例#3
0
 private void OnReturnObjectToPull(GunAbilityView gunAbilityView)
 {
     _gunPull.Return(gunAbilityView);
 }
示例#4
0
 private void OnReturnToPool(IEnemy enemy)
 {
     _enemyPool.Return(enemy);
     _messageBroker.OnDestroyObject(enemy.SceneEnemy);
 }