diff --git a/Content.Client/GameObjects/EntitySystems/DoAfter/DoAfterBar.cs b/Content.Client/GameObjects/EntitySystems/DoAfter/DoAfterBar.cs
index 982b5b9d12..b6a1af64da 100644
--- a/Content.Client/GameObjects/EntitySystems/DoAfter/DoAfterBar.cs
+++ b/Content.Client/GameObjects/EntitySystems/DoAfter/DoAfterBar.cs
@@ -56,23 +56,20 @@ namespace Content.Client.GameObjects.EntitySystems.DoAfter
/// Is the cancellation bar red?
///
private bool _flash = true;
-
+
///
/// Last time we swapped the flash.
///
private TimeSpan _lastFlash;
-
+
///
/// How long each cancellation bar flash lasts in seconds.
///
private const float FlashTime = 0.125f;
-
+
private const int XPixelDiff = 20 * DoAfterBarScale;
public const byte DoAfterBarScale = 2;
- private static readonly Color StartColor = new Color(0.8f, 0.0f, 0.2f); // red
- private static readonly Color EndColor = new Color(0.92f, 0.77f, 0.34f); // yellow
- private static readonly Color CompletedColor = new Color(0.0f, 0.8f, 0.27f); // green
public DoAfterBar()
{
@@ -108,28 +105,25 @@ namespace Content.Client.GameObjects.EntitySystems.DoAfter
}
color = new Color(1.0f, 0.0f, 0.0f, _flash ? 1.0f : 0.0f);
- }
+ }
else if (Ratio >= 1.0f)
{
- color = CompletedColor;
+ color = new Color(0f, 1f, 0f);
}
else
{
// lerp
- color = new Color(
- StartColor.R + (EndColor.R - StartColor.R) * Ratio,
- StartColor.G + (EndColor.G - StartColor.G) * Ratio,
- StartColor.B + (EndColor.B - StartColor.B) * Ratio,
- StartColor.A);
+ var hue = (5f / 18f) * Ratio;
+ color = Color.FromHsv((hue, 1f, 0.75f, 1f));
}
-
+
handle.UseShader(_shader);
// If you want to make this less hard-coded be my guest
var leftOffset = 2 * DoAfterBarScale;
var box = new UIBox2i(
- leftOffset,
+ leftOffset,
-2 + 2 * DoAfterBarScale,
- leftOffset + (int) (XPixelDiff * Ratio),
+ leftOffset + (int) (XPixelDiff * Ratio),
-2);
handle.DrawRect(box, color);
}
diff --git a/Content.Client/UserInterface/CooldownGraphic.cs b/Content.Client/UserInterface/CooldownGraphic.cs
index a77972ab81..d281c73e99 100644
--- a/Content.Client/UserInterface/CooldownGraphic.cs
+++ b/Content.Client/UserInterface/CooldownGraphic.cs
@@ -27,29 +27,23 @@ namespace Content.Client.UserInterface
/// Possible values range from 1 to -1, where 1 to 0 is a depleting circle animation and 0 to -1 is a blink animation.
///
public float Progress { get; set; }
- private static readonly Color StartColor = new Color(0.8f, 0.0f, 0.2f); // red
- private static readonly Color EndColor = new Color(0.92f, 0.77f, 0.34f); // yellow
- private static readonly Color CompletedColor = new Color(0.0f, 0.8f, 0.27f); // green
protected override void Draw(DrawingHandleScreen handle)
{
- Span x = stackalloc float[10];
+ Span x = new float[10];
Color color;
var lerp = 1f - MathF.Abs(Progress); // for future bikeshedding purposes
if (Progress >= 0f)
{
- color = new Color(
- EndColor.R + (StartColor.R - EndColor.R) * Progress,
- EndColor.G + (StartColor.G - EndColor.G) * Progress,
- EndColor.B + (StartColor.B - EndColor.B) * Progress,
- EndColor.A);
+ var hue = (5f / 18f) * lerp;
+ color = Color.FromHsv((hue, 0.75f, 0.75f, 0.50f));
}
else
{
var alpha = MathHelper.Clamp(0.5f * lerp, 0f, 0.5f);
- color = CompletedColor.WithAlpha(alpha);
+ color = new Color(1f, 1f, 1f, alpha);
}
_shader.SetParameter("progress", Progress);