public override void Unload()
 {
     CloneSpawner.Unload();
     WaterDrowningController.Unload();
     TimeField.Unload();
     MarioClearPipe.Unload();
     DreamDashController.Unload();
 }
Beispiel #2
0
        private void OnPlayer(Player player)
        {
            WaterDrowningController controller = base.Scene.Tracker.GetEntity <WaterDrowningController>();

            Audio.Play("event:/game/general/diamond_touch", Position);
            Input.Rumble(RumbleStrength.Medium, RumbleLength.Medium);

            if (controller != null)
            {
                controller.WaterDuration = 0f;
            }

            respawnTimer = 2.5f;
            Collidable   = false;

            Add(new Coroutine(RefillRoutine(player)));
        }
        private static void Player_OnRender(On.Celeste.Player.orig_Render orig, Player self)
        {
            // Entity is not tracked during code hotswaps, prevents crashes
            WaterDrowningController controller = self.Scene.Tracker.IsEntityTracked <WaterDrowningController>() ? self.Scene.Tracker.GetEntity <WaterDrowningController>() : null;

            if (controller != null && controller.WaterDuration > 0)
            {
                float stamina = self.Stamina;
                self.Stamina = controller.WaterDuration + 2 > controller.WaterDrownDuration ? 0 : Player.ClimbMaxStamina;

                orig(self);

                self.Stamina = stamina;
            }

            else
            {
                orig(self);
            }
        }