@@ -19,7 +19,7 @@ public partial class DrawableTouch : DrawableSentakkiHitObject
19
19
public override bool HandlePositionalInput => true ;
20
20
21
21
// This HitObject uses a completely different offset
22
- protected override double InitialLifetimeOffset => base . InitialLifetimeOffset + HitObject . HitWindows . WindowFor ( HitResult . Ok ) ;
22
+ protected override double InitialLifetimeOffset => base . InitialLifetimeOffset + HitObject . HitWindows . WindowFor ( HitResult . Great ) ;
23
23
24
24
// Similar to IsHovered for mouse, this tracks whether a pointer (touch or mouse) is interacting with this drawable
25
25
// Interaction == (IsHovered && ActionPressed) || (OnTouch && TouchPointerInBounds)
@@ -80,11 +80,11 @@ protected override void UpdateInitialTransforms()
80
80
{
81
81
base . UpdateInitialTransforms ( ) ;
82
82
double fadeIn = AdjustedAnimationDuration / 2 ;
83
- double moveTo = HitObject . HitWindows . WindowFor ( HitResult . Ok ) ;
83
+ double moveTo = HitObject . HitWindows . WindowFor ( HitResult . Great ) ;
84
84
85
85
TouchBody . FadeIn ( fadeIn ) ;
86
86
87
- using ( BeginDelayedSequence ( AdjustedAnimationDuration ) )
87
+ using ( BeginAbsoluteSequence ( HitObject . StartTime - moveTo ) )
88
88
{
89
89
TouchBody . ResizeTo ( 90 , moveTo , Easing . InCirc ) ;
90
90
TouchBody . BorderContainer . Delay ( moveTo ) . FadeIn ( ) ;
@@ -108,11 +108,13 @@ protected override void CheckForResult(bool userTriggered, double timeOffset)
108
108
109
109
var result = HitObject . HitWindows . ResultFor ( timeOffset ) ;
110
110
111
+ // This is hit before any hit window
111
112
if ( result == HitResult . None )
112
113
return ;
113
114
114
- if ( timeOffset < 0 )
115
- result = Result . Judgement . MaxResult ;
115
+ // Hit before the early Great window
116
+ if ( timeOffset < 0 && result is not HitResult . Great )
117
+ return ;
116
118
117
119
ApplyResult ( result ) ;
118
120
}
0 commit comments