Beispiel #1
0
        private void Update()
        {
            if (DebugPauseNextFrame)
            {
                Debugger.Break();
                UnityEngine.Debug.Break();
                DebugPauseNextFrame = false;
            }

            DebugUtil.HandleInput();

            float deltaTime       = Time.deltaTime;
            float playerTime      = deltaTime;
            float playerFireScale = deltaTime * PlayerFireDeltaTimeScale * Player.RetributionTimeScale;

            UpdateStatuses(deltaTime);

            if (Player.IsAlive)
            {
                float fireStrategyDt = playerFireScale * Player.FireSpeedScale;
                if (CurrentFireStrategy.UpdateActivates(fireStrategyDt, out float fireStrategyOverflowDt))
                {
                    // Be polite and cap to 2 frames. In case you want to set fire speed to level 999.
                    const float MaxOverflow = 1f / 30f;
                    fireStrategyOverflowDt = Math.Min(fireStrategyOverflowDt, MaxOverflow);
                    FireCurrentStrategy(fireStrategyOverflowDt);

                    _Othello.Fire(fireStrategyOverflowDt);
                }

                UpdateFireStrategy(playerTime);
                WeaponRain(deltaTime);
                OneUpRain(deltaTime);


                float enemyTimeScale = TimeScaleManager.GetTimeScaleModifier(TimeScaleType.Enemy);
                float enemyDeltaTime = deltaTime * enemyTimeScale;
                Director.RunFrame(enemyDeltaTime, deltaTime);

                _PowerupManager.PassiveUpdate(playerFireScale, deltaTime);
                ManagedGameTasks.RunFrames(deltaTime);
            }

            NotificationManager.RunFrame(deltaTime);
        }