Files
ichni_Official/Assets/Scripts/Game/GameElements/Notes/NoteEffects/NoteHoldingEffect.cs
SoulliesOfficial 6aa498f6be
2025-08-11 14:04:06 -04:00

60 lines
1.7 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Ichni.RhythmGame
{
public abstract class NoteHoldingEffect : NoteEffectBase
{
public float GetHoldingTime()
{
return (note as Hold).holdEndTime - note.exactJudgeTime;
}
public override void UpdateEffect(float triggerTime)
{
EffectState state = CheckEffectState(triggerTime);
float songTime = GameManager.instance.songTime;
if (state == EffectState.Before && nowEffectState != EffectState.Before)
{
nowEffectState = EffectState.Before;
effectProgressPercent = 0;
Recover();
}
else if (state == EffectState.Middle && (note as Hold).preJudgeType != NoteBase.NoteJudgeType.NotJudged)
{
if (nowEffectState == EffectState.Before)
{
PreExecute();
}
nowEffectState = EffectState.Middle;
effectProgressPercent = (songTime - triggerTime) / effectTime;
Execute();
}
else if (state == EffectState.After && nowEffectState != EffectState.After)
{
nowEffectState = EffectState.After;
effectProgressPercent = 1;
Adjust();
}
}
}
namespace Beatmap
{
public abstract class NoteHoldingEffect_BM : NoteEffectBase_BM
{
public NoteHoldingEffect_BM()
{
}
public NoteHoldingEffect_BM(float effectTime) : base(effectTime)
{
}
}
}
}