public override void Update() { Player player = base.Scene.Tracker.GetEntity <Player>(); if (player != null) { bool inWater = PlayerHelper.PlayerInWater(player, Mode); if (inWater) { WaterDuration += Engine.DeltaTime; } else { WaterDuration = 0f; } if (inWater && WaterDuration >= WaterDrownDuration && !player.Dead) { player.Die(Vector2.Zero); } } float interval = 0f; if (WaterDuration > WaterDrownDuration * 0.7) { interval = 0.6f; } else if (WaterDuration > WaterDrownDuration * 0.5) { interval = 1.0f; } else if (WaterDuration > WaterDrownDuration * 0.3) { interval = 1.4f; } if (interval > 0 && base.Scene.OnInterval(interval) && player != null && !player.Dead) { Input.Rumble(RumbleStrength.Climb, RumbleLength.Short); Flashing = !Flashing; } base.Update(); }
public override void Update() { talker.Enabled = Scene.Tracker.GetEntities <Player>().Cast <Player>().Any(player => (Position - player.Position).Length() < activationDistance && player.OnGround() && !PlayerHelper.PlayerInWater(player)); bool flagValue = getFlag(); if (flagValue != active && !sprite.Animating) { active = flagValue; animate(); } base.Update(); }