This commit is contained in:
SoulliesOfficial
2025-08-22 14:54:40 -04:00
parent 6aa498f6be
commit 70b2a43824
574 changed files with 173713 additions and 1884 deletions

View File

@@ -79,7 +79,7 @@ namespace Ichni.RhythmGame
noteAudioSubmodule.PlayHoldStartAudio();
Debug.Log($"Hold Note Start Judge: {startJudgeType} at {triggerTime}");
//Debug.Log($"Hold Note Start Judge: {startJudgeType} at {triggerTime}");
}
public void ExecuteProcessJudge()
@@ -89,6 +89,19 @@ namespace Ichni.RhythmGame
public void ExecuteFinalJudge()
{
foreach (EffectBase effect in noteVisual.effectSubmodule.effectCollection["StartHold"])
{
if (effect.nowEffectState == EffectBase.EffectState.Middle)
{
effect.Adjust();
}
}
foreach (EffectBase effect in noteVisual.effectSubmodule.effectCollection["Holding"])
{
effect.Adjust();
}
float triggerTime = GameManager.instance.songTime;
postTimeDifference = holdEndTime - triggerTime;
@@ -105,7 +118,7 @@ namespace Ichni.RhythmGame
postJudgeType = NoteJudgeType.Bad;
}
Debug.Log($"Hold Note Final Judge: {postJudgeType} at {triggerTime} of difference {postTimeDifference}");
//Debug.Log($"Hold Note Final Judge: {postJudgeType} at {triggerTime} of difference {postTimeDifference}");
NoteJudgeType finalJudge = GetLowerType(preJudgeType, postJudgeType);
float finalTimeDifference = Mathf.Min(preTimeDifference, postTimeDifference);
@@ -168,6 +181,24 @@ namespace Ichni.RhythmGame
GameManager.instance.noteJudgeManager.checkingHoldList.Remove(this);
}
}
public override void SetPerfectPosition()
{
if (isOnTrack && track.trackTimeSubmodule is TrackTimeSubmoduleMovable movable)
{
holdingTime = holdEndTime - exactJudgeTime;
(noteVisual as INoteVisualHold)?.UpdateHoldInMovableTrack();
}
}
protected override void SlowOffsetAfterExactJudgeTime()
{
if (isOnTrack && track.trackTimeSubmodule is TrackTimeSubmoduleMovable movable)
{
holdingTime = GameManager.instance.songTime - exactJudgeTime;
(noteVisual as INoteVisualHold)?.UpdateHoldInMovableTrack();
}
}
}
public partial class Hold
@@ -270,6 +301,11 @@ namespace Ichni.RhythmGame
SetJudgeArea();
if (!isFirstJudged && exactJudgeTime < GameManager.instance.songTime)
{
SlowOffsetAfterExactJudgeTime();
}
foreach (EffectBase e in noteVisual.effectSubmodule.effectCollection["Generate"])
{
e.UpdateEffect(exactJudgeTime);
@@ -297,6 +333,12 @@ namespace Ichni.RhythmGame
{
isHolding = false;
isFinalJudged = true;
foreach (EffectBase e in noteVisual.effectSubmodule.effectCollection["StartHold"])
{
e.Disrupt();
}
ExecuteFinalJudge();
RemoveFromCheckingList();
}