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

@@ -129,6 +129,11 @@ namespace Ichni.RhythmGame
e.UpdateEffect(exactJudgeTime);
}
if (!isFirstJudged && exactJudgeTime < GameManager.instance.songTime)
{
SlowOffsetAfterExactJudgeTime();
}
if (!isFirstJudged && GameManager.instance.songTime > exactJudgeTime + judgeIntervals.afterMiss)
{
Miss(exactJudgeTime + judgeIntervals.afterMiss);
@@ -177,7 +182,23 @@ namespace Ichni.RhythmGame
Observable.EveryUpdate().Subscribe(_ =>
{
noteVisual.effectSubmodule.effectCollection["GeneralJudge"].ForEach(e => e.UpdateEffect(triggerTime));
noteVisual.effectSubmodule.effectCollection["Perfect"].ForEach(e => e.UpdateEffect(triggerTime));
foreach (var e in noteVisual.effectSubmodule.effectCollection["Perfect"])
{
if (!e.IsPost)
{
e.UpdateEffect(triggerTime);
}
}
foreach (var e in noteVisual.effectSubmodule.effectCollection["Perfect"])
{
if (e.IsPost)
{
e.UpdateEffect(triggerTime);
}
}
noteVisual.effectSubmodule.effectCollection["AfterJudge"].ForEach(e => e.UpdateEffect(exactJudgeTime));
}).AddTo(gameObject);
@@ -328,7 +349,7 @@ namespace Ichni.RhythmGame
}
}
public void SetPerfectPosition()
public virtual void SetPerfectPosition()
{
if (isOnTrack && track.trackTimeSubmodule is TrackTimeSubmoduleMovable movable)
{
@@ -336,6 +357,30 @@ namespace Ichni.RhythmGame
trackPositioner.SetPercent(notePercent);
}
}
protected virtual void SlowOffsetAfterExactJudgeTime()
{
if (isOnTrack && track.trackTimeSubmodule is TrackTimeSubmoduleMovable movable)
{
float slowedTime = (GameManager.instance.songTime - exactJudgeTime) * 0.8f;
float notePercent = movable.GetTrackPercent(exactJudgeTime + slowedTime);
trackPositioner.SetPercent(notePercent);
}
}
/*public virtual void SlowOffsetAfterExactJudgeTime()
{
if (isOnTrack && track.trackTimeSubmodule is TrackTimeSubmoduleMovable movable)
{
float timeDifference = GameManager.instance.songTime - exactJudgeTime;
float percent = Mathf.Lerp(0f, 1f, timeDifference / (judgeIntervals.afterMiss + 0.2f));
float slowedTime = (GameManager.instance.songTime - exactJudgeTime) * percent;
//float percent = Mathf.Lerp(0, 0.5f, timeDifference / judgeIntervals.afterMiss);
//float slowedTime = (GameManager.instance.songTime - exactJudgeTime) * 0.5f;
float notePercent = movable.GetTrackPercent(exactJudgeTime + slowedTime);
trackPositioner.SetPercent(notePercent);
}
}*/
}
public abstract partial class NoteBase