Added winddown to space drugs effect (#25652)

added winddown to drug effect
This commit is contained in:
Flesh
2024-03-09 20:33:40 +01:00
committed by GitHub
parent e3180aec03
commit 865765d4ec
2 changed files with 14 additions and 1 deletions

View File

@@ -38,6 +38,7 @@ public sealed class DrugOverlaySystem : EntitySystem
private void OnPlayerDetached(EntityUid uid, SeeingRainbowsComponent component, LocalPlayerDetachedEvent args)
{
_overlay.Intoxication = 0;
_overlay.TimeTicker = 0;
_overlayMan.RemoveOverlay(_overlay);
}
@@ -52,6 +53,7 @@ public sealed class DrugOverlaySystem : EntitySystem
if (_player.LocalEntity == uid)
{
_overlay.Intoxication = 0;
_overlay.TimeTicker = 0;
_overlayMan.RemoveOverlay(_overlay);
}
}

View File

@@ -20,6 +20,7 @@ public sealed class RainbowOverlay : Overlay
private readonly ShaderInstance _rainbowShader;
public float Intoxication = 0.0f;
public float TimeTicker = 0.0f;
private const float VisualThreshold = 10.0f;
private const float PowerDivisor = 250.0f;
@@ -48,7 +49,17 @@ public sealed class RainbowOverlay : Overlay
return;
var timeLeft = (float) (time.Value.Item2 - time.Value.Item1).TotalSeconds;
Intoxication += (timeLeft - Intoxication) * args.DeltaSeconds / 16f;
TimeTicker += args.DeltaSeconds;
if (timeLeft - TimeTicker > timeLeft / 16f)
{
Intoxication += (timeLeft - Intoxication) * args.DeltaSeconds / 16f;
}
else
{
Intoxication -= Intoxication/(timeLeft - TimeTicker) * args.DeltaSeconds;
}
}
protected override bool BeforeDraw(in OverlayDrawArgs args)