Skip to content

Commit 30266f5

Browse files
authored
Fixing hold notes issue and more.
1 parent 7c1466f commit 30266f5

File tree

5 files changed

+204
-27
lines changed

5 files changed

+204
-27
lines changed

source/KadeEngineFPS.hx

+1-1
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ class KadeEngineFPS extends TextField
113113
{
114114
text = (FlxG.save.data.fps ? "FPS: "
115115
+ currentFPS
116-
+ (Main.watermarks ? "\nKE Custom Build " + "v" + MainMenuState.kadeEngineVer : "") : (Main.watermarks ? "KE Custom Build " + "v"
116+
+ (Main.watermarks ? "\nKade Engine " + "v" + MainMenuState.kadeEngineVer : "") : (Main.watermarks ? "Kade Engine " + "v"
117117
+ MainMenuState.kadeEngineVer : ""));
118118

119119
#if (gl_stats && !disable_cffi && (!html5 || !canvas))

source/ModchartState.hx

+87
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ import flixel.FlxBasic;
2525
import flixel.FlxCamera;
2626
import flixel.FlxG;
2727

28+
using StringTools;
29+
2830
class ModchartState
2931
{
3032
// public static var shaders:Array<LuaShader> = null;
@@ -527,6 +529,11 @@ class ModchartState
527529
return PlayState.instance.notes.members.length;
528530
});
529531

532+
Lua_helper.add_callback(lua, "setScrollSpeed", function(mult:Float, time:Float, ?ease:String)
533+
{
534+
PlayState.instance.setScrollSpeed(mult, time, getFlxEaseByString(ease));
535+
});
536+
530537
for (i in 0...PlayState.strumLineNotes.length)
531538
{
532539
var member = PlayState.strumLineNotes.members[i];
@@ -547,5 +554,85 @@ class ModchartState
547554
{
548555
return new ModchartState(isStoryMode);
549556
}
557+
558+
function getFlxEaseByString(?ease:String = '')
559+
{
560+
switch (ease.toLowerCase().trim())
561+
{
562+
case 'backin':
563+
return FlxEase.backIn;
564+
case 'backinout':
565+
return FlxEase.backInOut;
566+
case 'backout':
567+
return FlxEase.backOut;
568+
case 'bouncein':
569+
return FlxEase.bounceIn;
570+
case 'bounceinout':
571+
return FlxEase.bounceInOut;
572+
case 'bounceout':
573+
return FlxEase.bounceOut;
574+
case 'circin':
575+
return FlxEase.circIn;
576+
case 'circinout':
577+
return FlxEase.circInOut;
578+
case 'circout':
579+
return FlxEase.circOut;
580+
case 'cubein':
581+
return FlxEase.cubeIn;
582+
case 'cubeinout':
583+
return FlxEase.cubeInOut;
584+
case 'cubeout':
585+
return FlxEase.cubeOut;
586+
case 'elasticin':
587+
return FlxEase.elasticIn;
588+
case 'elasticinout':
589+
return FlxEase.elasticInOut;
590+
case 'elasticout':
591+
return FlxEase.elasticOut;
592+
case 'expoin':
593+
return FlxEase.expoIn;
594+
case 'expoinout':
595+
return FlxEase.expoInOut;
596+
case 'expoout':
597+
return FlxEase.expoOut;
598+
case 'quadin':
599+
return FlxEase.quadIn;
600+
case 'quadinout':
601+
return FlxEase.quadInOut;
602+
case 'quadout':
603+
return FlxEase.quadOut;
604+
case 'quartin':
605+
return FlxEase.quartIn;
606+
case 'quartinout':
607+
return FlxEase.quartInOut;
608+
case 'quartout':
609+
return FlxEase.quartOut;
610+
case 'quintin':
611+
return FlxEase.quintIn;
612+
case 'quintinout':
613+
return FlxEase.quintInOut;
614+
case 'quintout':
615+
return FlxEase.quintOut;
616+
case 'sinein':
617+
return FlxEase.sineIn;
618+
case 'sineinout':
619+
return FlxEase.sineInOut;
620+
case 'sineout':
621+
return FlxEase.sineOut;
622+
case 'smoothstepin':
623+
return FlxEase.smoothStepIn;
624+
case 'smoothstepinout':
625+
return FlxEase.smoothStepInOut;
626+
case 'smoothstepout':
627+
return FlxEase.smoothStepInOut;
628+
case 'smootherstepin':
629+
return FlxEase.smootherStepIn;
630+
case 'smootherstepinout':
631+
return FlxEase.smootherStepInOut;
632+
case 'smootherstepout':
633+
return FlxEase.smootherStepOut;
634+
}
635+
return FlxEase.linear;
636+
}
550637
}
551638
#end

source/Note.hx

+16-2
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ class Note extends FlxSprite
7070

7171
public var children:Array<Note> = [];
7272

73+
public var stepHeight:Float = 0;
74+
7375
public function new(strumTime:Float, noteData:Int, ?prevNote:Note, ?sustainNote:Bool = false, ?inCharter:Bool = false, ?isAlt:Bool = false, ?bet:Float = 0)
7476
{
7577
super();
@@ -224,7 +226,7 @@ class Note extends FlxSprite
224226
if (FlxG.save.data.downscroll && sustainNote)
225227
flipY = true;
226228

227-
var stepHeight = (((0.45 * Conductor.stepCrochet)) * FlxMath.roundDecimal(PlayStateChangeables.scrollSpeed == 1 ? PlayState.SONG.speed : PlayStateChangeables.scrollSpeed,
229+
stepHeight = (((0.45 * Conductor.stepCrochet)) * FlxMath.roundDecimal(PlayState.instance.scrollSpeed == 1 ? PlayState.SONG.speed : PlayState.instance.scrollSpeed,
228230
2)) / PlayState.songMultiplier;
229231

230232
if (isSustainNote && prevNote != null)
@@ -258,13 +260,25 @@ class Note extends FlxSprite
258260
prevNote.updateHitbox();
259261

260262
if (antialiasing)
261-
prevNote.scale.y *= 1.0 + (1.0 / prevNote.frameHeight);
263+
prevNote.scale.y *= 0.995 + (1.0 / prevNote.frameHeight);
262264
}
263265
}
264266
}
265267

266268
override function update(elapsed:Float)
267269
{
270+
// This updates hold notes height to current scroll Speed in case of scroll Speed changes.
271+
var newStepHeight = (((0.45 * Conductor.stepCrochet)) * FlxMath.roundDecimal(PlayState.instance.scrollSpeed == 1 ? PlayState.SONG.speed : PlayState.instance.scrollSpeed,
272+
2)) * PlayState.songMultiplier;
273+
if (stepHeight != newStepHeight)
274+
{
275+
stepHeight = newStepHeight;
276+
if (isSustainNote)
277+
{
278+
noteYOff = Math.round(-stepHeight + swagWidth * 0.5) + FlxG.save.data.offset + PlayState.songOffset;
279+
}
280+
}
281+
268282
super.update(elapsed);
269283
if (!modifiedByLua)
270284
angle = modAngle + localAngle;

0 commit comments

Comments
 (0)