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) { } } } }