public override void Unload() { CloneSpawner.Unload(); WaterDrowningController.Unload(); TimeField.Unload(); MarioClearPipe.Unload(); DreamDashController.Unload(); }
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); } }