Пример #1
0
        private static void RespawnSpeed(Engine.orig_Update orig, Monocle.Engine self, GameTime time)
        {
            orig(self, time);

            if (!SpeedrunToolModule.Settings.Enabled || SpeedrunToolModule.Settings.RespawnSpeed == 1)
            {
                return;
            }

            if (!(Monocle.Engine.Scene is Level level))
            {
                return;
            }

            Player player = level.Entities.FindFirst <Player>();

            // level 场景中 player == null 代表人物死亡
            // if player is null, Madeline is dead
            if (player != null && player.StateMachine.State == Player.StIntroRespawn || player == null)
            {
                for (int i = 1; i < SpeedrunToolModule.Settings.RespawnSpeed; i++)
                {
                    orig(self, time);
                }
            }
        }
Пример #2
0
        private static void RespawnSpeed(Engine.orig_Update orig, Monocle.Engine self, GameTime time)
        {
            orig(self, time);

            if (!SpeedrunToolModule.Settings.Enabled || SpeedrunToolModule.Settings.RespawnSpeed == 1)
            {
                return;
            }

            if (Monocle.Engine.Scene is not Level level)
            {
                return;
            }

            if (level.Paused)
            {
                return;
            }

            Player player = level.GetPlayer();

            // 加速复活过程
            if (player == null || player.StateMachine.State == Player.StIntroRespawn)
            {
                for (int i = 1; i < SpeedrunToolModule.Settings.RespawnSpeed; i++)
                {
                    orig(self, time);
                }
            }
        }