// Copyright (c) 2007-2017 ppy Pty Ltd . // Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE using osu.Game.Modes.Osu.UI; using OpenTK.Graphics; namespace osu.Game.Modes.Catch.UI { /// /// Similar to Standard, but without the 'x' and has tinted pop-ups. Used in osu!catch. /// public class CatchComboCounter : OsuComboCounter { protected override bool CanPopOutWhileRolling => true; protected virtual double FadeOutDelay => 1000; protected override double FadeOutDuration => 300; protected override string FormatCount(ulong count) { return $@"{count:#,0}"; } private void animateFade() { Show(); Delay(FadeOutDelay); FadeOut(FadeOutDuration); DelayReset(); } protected override void OnCountChange(ulong currentValue, ulong newValue) { if (newValue != 0) animateFade(); base.OnCountChange(currentValue, newValue); } protected override void OnCountRolling(ulong currentValue, ulong newValue) { if (!IsRolling) { PopOutCount.Colour = DisplayedCountSpriteText.Colour; FadeOut(FadeOutDuration); } base.OnCountRolling(currentValue, newValue); } protected override void OnCountIncrement(ulong currentValue, ulong newValue) { animateFade(); base.OnCountIncrement(currentValue, newValue); } /// /// Increaces counter and tints pop-out before animation. /// /// Last grabbed fruit colour. public void CatchFruit(Color4 colour) { PopOutCount.Colour = colour; Count++; } } }