diff --git a/dist/EngineData b/dist/EngineData index 8358386..4eff2d6 100644 Binary files a/dist/EngineData and b/dist/EngineData differ diff --git a/engine/play/FlickNote.cpp b/engine/play/FlickNote.cpp index afe43fb..e8290ca 100644 --- a/engine/play/FlickNote.cpp +++ b/engine/play/FlickNote.cpp @@ -29,8 +29,8 @@ class FlickNote : public Archetype { SonolusApi complete(let t = times.now) { FUNCBEGIN var res = 0, res2 = 0; - IF (Abs(t - beat) <= judgment.bad) res = 3, res2 = 2; FI - IF (Abs(t - beat) <= judgment.perfect) res = 1, res2 = 1; FI + IF (t == inputTimeMax) res = 3, res2 = 2; FI + IF (t != -1 && t != inputTimeMax) res = 1, res2 = 1; FI EntityInput.set(0, res2); EntityInput.set(1, t - beat); EntityInput.set(3, t - beat); diff --git a/engine/play/holdNotes/ScratchHoldEnd.cpp b/engine/play/holdNotes/ScratchHoldEnd.cpp index ee25523..2ee1345 100644 --- a/engine/play/holdNotes/ScratchHoldEnd.cpp +++ b/engine/play/holdNotes/ScratchHoldEnd.cpp @@ -43,8 +43,8 @@ class SiriusScratchHoldEnd: public Archetype { DestroyParticleEffect(effectId); effectId = 0; } FI var res = 0, res2 = 0; - IF (Abs(t - beat) <= judgment.bad) res = 3, res2 = 2; FI - IF (Abs(t - beat) <= judgment.perfect) res = 1, res2 = 1; FI + IF (t == inputTimeMin) res = 3, res2 = 2; FI + IF (t > inputTimeMin) res = 1, res2 = 1; FI EntityInput.set(0, res2); EntityInput.set(1, t - beat); EntityInput.set(3, t - beat); @@ -72,11 +72,11 @@ class SiriusScratchHoldEnd: public Archetype { // 判定主代码 IF (times.now < inputTimeMin) Return(0); FI - IF (times.now > inputTimeMax) complete(-1); FI - IF (isHolding == 1) lastHoldTime = Max(lastHoldTime, beat - judgment.bad + 0.001); FI + IF (times.now > inputTimeMax) complete(lastHoldTime); FI + IF (isHolding == 1) lastHoldTime = Max(lastHoldTime, inputTimeMin); FI isHolding = findFlickTouch(lane, enLane) != -1; IF (isHolding == 1) lastHoldTime = Max(lastHoldTime, times.now); FI - IF (times.now >= beat && lastHoldTime != -1) complete(lastHoldTime); FI + IF (times.now >= beat && lastHoldTime > inputTimeMin) complete(lastHoldTime); FI return VOID; } diff --git a/engine/watch/FlickNote.cpp b/engine/watch/FlickNote.cpp index 2fccf35..5017deb 100644 --- a/engine/watch/FlickNote.cpp +++ b/engine/watch/FlickNote.cpp @@ -18,7 +18,7 @@ enLane = lane + laneLength - 1; Set(EntityInputId, 0, beat); PlayScheduled(Clips.Scratch, beat, minSFXDistance); - Spawn(getArchetypeId(UpdateJudgment), {beat, Sprites.JudgePerfectPlus}); + Spawn(getArchetypeId(UpdateJudgment), {beat, Sprites.JudgeAuto}); return VOID; } diff --git a/engine/watch/flatNotes/FlatNote.cpp b/engine/watch/flatNotes/FlatNote.cpp index 67ee9a7..860d870 100644 --- a/engine/watch/flatNotes/FlatNote.cpp +++ b/engine/watch/flatNotes/FlatNote.cpp @@ -20,7 +20,7 @@ enLane = lane + laneLength - 1; Set(EntityInputId, 0, beat); PlayScheduled(getClip(), beat, minSFXDistance); - Spawn(getArchetypeId(UpdateJudgment), {beat, Sprites.JudgePerfectPlus}); + Spawn(getArchetypeId(UpdateJudgment), {beat, Sprites.JudgeAuto}); return VOID; } diff --git a/engine/watch/holdNotes/HoldEighth.cpp b/engine/watch/holdNotes/HoldEighth.cpp index 8d833d2..29abba3 100644 --- a/engine/watch/holdNotes/HoldEighth.cpp +++ b/engine/watch/holdNotes/HoldEighth.cpp @@ -17,7 +17,7 @@ IF (mirror) lane = 14 - lane - laneLength; FI enLane = lane + laneLength - 1; Set(EntityInputId, 0, beat); - Spawn(getArchetypeId(UpdateJudgment), {beat, Sprites.JudgePerfectPlus}); + Spawn(getArchetypeId(UpdateJudgment), {beat, Sprites.JudgeAuto}); return VOID; } }; diff --git a/engine/watch/holdNotes/HoldEnd.cpp b/engine/watch/holdNotes/HoldEnd.cpp index 98f0bb1..a3bd7c1 100644 --- a/engine/watch/holdNotes/HoldEnd.cpp +++ b/engine/watch/holdNotes/HoldEnd.cpp @@ -24,7 +24,7 @@ PlayLoopedScheduled(Clips.Hold, stBeat), beat ); - Spawn(getArchetypeId(UpdateJudgment), {beat, Sprites.JudgePerfectPlus}); + Spawn(getArchetypeId(UpdateJudgment), {beat, Sprites.JudgeAuto}); return VOID; } diff --git a/engine/watch/holdNotes/ScratchHoldEnd.cpp b/engine/watch/holdNotes/ScratchHoldEnd.cpp index bf7c789..7afaad3 100644 --- a/engine/watch/holdNotes/ScratchHoldEnd.cpp +++ b/engine/watch/holdNotes/ScratchHoldEnd.cpp @@ -29,7 +29,7 @@ PlayLoopedScheduled(Clips.Hold, stBeat), beat ); - Spawn(getArchetypeId(UpdateJudgment), {beat, Sprites.JudgePerfectPlus}); + Spawn(getArchetypeId(UpdateJudgment), {beat, Sprites.JudgeAuto}); return VOID; } diff --git a/engine/watch/holdNotes/Sound.cpp b/engine/watch/holdNotes/Sound.cpp index 9612409..2a79616 100644 --- a/engine/watch/holdNotes/Sound.cpp +++ b/engine/watch/holdNotes/Sound.cpp @@ -19,7 +19,7 @@ enLane = lane + laneLength - 1; Set(EntityInputId, 0, beat); PlayScheduled(Clips.Sound, beat, minSFXDistance); - Spawn(getArchetypeId(UpdateJudgment), {beat, Sprites.JudgePerfectPlus}); + Spawn(getArchetypeId(UpdateJudgment), {beat, Sprites.JudgeAuto}); return VOID; } diff --git a/main b/main index 2e5615a..5c1470b 100755 Binary files a/main and b/main differ diff --git a/unpacker/build.sh b/unpacker/build.sh old mode 100644 new mode 100755 diff --git a/unpacker/effect b/unpacker/effect new file mode 100755 index 0000000..05c185d Binary files /dev/null and b/unpacker/effect differ diff --git a/unpacker/skin b/unpacker/skin new file mode 100755 index 0000000..deaf986 Binary files /dev/null and b/unpacker/skin differ