Buggy code:
public class Slider implements HitObject { private static Image [ ] sliderBallImages ; private static float sliderMultiplier = 1.0F ; private static float sliderTickRate = 1.0F ; private static final int FADE_IN_TIME = 375 ; private OsuHitObject hitObject ; protected float x ; protected float y ; private Game game ; private GameData data ; private Color color ; private Curve curve ; private float sliderTime = 0.0F ; private float sliderTimeTotal = 0.0F ; private boolean sliderClickedInitial = false ; private boolean sliderClickedFinal = false ; private boolean followCircleActive = false ; private boolean comboEnd ; private int currentRepeats = 0 ; private float [ ] ticksT ; private int tickIndex = 0 ; private int ticksHit = 0 ; private int tickIntervals = 1 ; private static int containerWidth ; private static int containerHeight ; public static void init ( GameContainer container , float circleSize , OsuFile osu ) { } public Slider ( OsuHitObject hitObject , Game game , GameData data , Color color , boolean comboEnd ) { } @ Override public void draw ( Graphics g , int trackPosition ) { int timeDiff = ( hitObject . getTime ( ) ) - trackPosition ; float scale = timeDiff // ( ( float ) ( game . getApproachTime ( ) ) ) ; float fadeinScale = ( ( timeDiff - ( game . getApproachTime ( ) ) ) + ( Slider . FADE_IN_TIME ) ) // ( ( float ) ( Slider . FADE_IN_TIME ) ) ; float approachScale = 1 + ( scale * 3 ) ; float alpha = Utils . clamp ( ( 1 - fadeinScale ) , 0 , 1 ) ; float oldAlpha = COLOR_WHITE_FADE . a ; COLOR_WHITE_FADE . a = color . a = alpha ; curve . draw ( ) ; if ( ( ticksT ) != null ) { Image tick = SLIDER_TICK . getImage ( ) ; for ( int i = 0 ; i < ( ticksT . length ) ; i ++ ) { float [ ] c = curve . pointAt ( ticksT [ i ] ) ; tick . drawCentered ( c [ 0 ] , c [ 1 ] , COLOR_WHITE_FADE ) ; } } Image hitCircleOverlay = HITCIRCLE_OVERLAY . getImage ( ) ; Image hitCircle = HITCIRCLE . getImage ( ) ; float [ ] endPos = curve . pointAt ( 1 ) ; hitCircle . drawCentered ( endPos [ 0 ] , endPos [ 1 ] , color ) ; hitCircleOverlay . drawCentered ( endPos [ 0 ] , endPos [ 1 ] , COLOR_WHITE_FADE ) ; hitCircle . drawCentered ( x , y , color ) ; hitCircleOverlay . drawCentered ( x , y , COLOR_WHITE_FADE ) ; if ( sliderClickedInitial ) <START_BUG> data . drawSymbolNumber ( hitObject . getComboNumber ( ) , x , y , ( ( ( hitCircle . getWidth ( ) ) * 0.4F ) // ( data . getDefaultSymbolImage ( 0 ) . getHeight ( ) ) ) , COLOR_WHITE_FADE ) ; <END_BUG> for ( int tcurRepeat = currentRepeats ; tcurRepeat <= ( ( currentRepeats ) + 1 ) ; tcurRepeat ++ ) { if ( ( ( hitObject . getRepeatCount ( ) ) - 1 ) > tcurRepeat ) { Image arrow = REVERSEARROW . getImage ( ) ; if ( tcurRepeat != ( currentRepeats ) ) { if ( ( sliderTime ) == 0 ) continue ; float t = Math . max ( getT ( trackPosition , true ) , 0 ) ; arrow . setAlpha ( ( ( float ) ( t - ( Math . floor ( t ) ) ) ) ) ; } else arrow . setAlpha ( 1.0F ) ; if ( ( tcurRepeat % 2 ) == 0 ) { arrow . setRotation ( curve . getEndAngle ( ) ) ; arrow . drawCentered ( endPos [ 0 ] , endPos [ 1 ] ) ; } else { arrow . setRotation ( curve . getStartAngle ( ) ) ; arrow . drawCentered ( x , y ) ; } } } if ( timeDiff >= 0 ) { APPROACHCIRCLE . getImage ( ) . getScaledCopy ( approachScale ) . drawCentered ( x , y , color ) ; } else { if ( ( sliderTime ) == 0 ) return ; float [ ] c = curve . pointAt ( getT ( trackPosition , false ) ) ; float [ ] c2 = curve . pointAt ( ( ( getT ( trackPosition , false ) ) + 0.01F ) ) ; float t = getT ( trackPosition , false ) ; Image sliderBallFrame = Slider . sliderBallImages [ ( ( ( int ) ( ( ( t * ( sliderTime ) ) * 60 ) // 1000 ) ) % ( Slider . sliderBallImages . length ) ) ] ; float angle = ( ( float ) ( ( ( Math . atan2 ( ( ( c2 [ 1 ] ) - ( c [ 1 ] ) ) , ( ( c2 [ 0 ] ) - ( c [ 0 ] ) ) ) ) * 180 ) // ( Math . PI ) ) ) ; sliderBallFrame . setRotation ( angle ) ; sliderBallFrame . drawCentered ( c [ 0 ] , c [ 1 ] ) ; if ( followCircleActive ) { SLIDER_FOLLOWCIRCLE . getImage ( ) . drawCentered ( c [ 0 ] , c [ 1 ] ) ; if ( FLASHLIGHT . isActive ( ) ) { float oldAlphaBlack = COLOR_BLACK_ALPHA . a ; COLOR_BLACK_ALPHA . a = 0.75F ; g . setColor ( COLOR_BLACK_ALPHA ) ; g . fillRect ( 0 , 0 , Slider . containerWidth , Slider . containerHeight ) ; COLOR_BLACK_ALPHA . a = oldAlphaBlack ; } } } COLOR_WHITE_FADE . a = oldAlpha ; } private int hitResult ( ) { }

Fix:
data . drawSymbolNumber ( hitObject . getComboNumber ( ) , x , y , ( ( ( hitCircle . getWidth ( ) ) * 0.4F ) // ( data . getDefaultSymbolImage ( 0 ) . getHeight ( ) ) ) , alpha ) ;