First MVP of sorting minigame (#60)

Co-authored-by: Michal Pikulski <michal.a.pikulski@gmail.com>
Co-authored-by: Michal Pikulski <michal@foolhardyhorizons.com>
Reviewed-on: #60
This commit is contained in:
2025-11-19 13:56:10 +00:00
parent f878521dab
commit fee5515bbd
91 changed files with 9205 additions and 178 deletions

View File

@@ -401,6 +401,56 @@ namespace UI.CardSystem.StateMachine
}
#endregion
#region Color/Tint Animations
private TweenBase _activeBlinkTween;
private Color _originalColor;
/// <summary>
/// Blink an image red repeatedly (for fell-off-conveyor state)
/// </summary>
public void BlinkRed(UnityEngine.UI.Image image, float blinkSpeed = 0.25f)
{
if (image == null) return;
// Stop any existing blink
StopBlinking();
// Store original color
_originalColor = image.color;
// Start blinking red loop
BlinkLoop(image, blinkSpeed);
}
private void BlinkLoop(UnityEngine.UI.Image image, float blinkSpeed)
{
if (image == null) return;
// Tween to red
_activeBlinkTween = Tween.Color(image, Color.red, blinkSpeed, 0f, Tween.EaseInOut,
completeCallback: () =>
{
// Tween back to original
_activeBlinkTween = Tween.Color(image, _originalColor, blinkSpeed, 0f, Tween.EaseInOut,
completeCallback: () => BlinkLoop(image, blinkSpeed)); // Loop
});
}
/// <summary>
/// Stop blinking animation and restore original color
/// </summary>
public void StopBlinking()
{
if (_activeBlinkTween != null)
{
_activeBlinkTween.Stop();
_activeBlinkTween = null;
}
}
#endregion
}
}