Files
ichni_Official/Assets/Scripts/Game/GameElements/Notes/NoteEffects/NoteGenerateEffect.cs

73 lines
2.1 KiB
C#
Raw Normal View History

2025-06-03 02:42:28 -04:00
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Ichni.RhythmGame
{
public abstract class NoteGenerateEffect : NoteEffectBase
{
2026-03-14 03:13:10 -04:00
#region [] Effect Parameters
2025-06-03 02:42:28 -04:00
public float generateTime;
2026-03-14 03:13:10 -04:00
#endregion
2025-06-03 02:42:28 -04:00
2026-03-14 03:13:10 -04:00
#region [] Effect Pattern Overrides
2025-06-03 02:42:28 -04:00
protected override EffectState CheckEffectState(float triggerTime)
{
2026-03-14 03:13:10 -04:00
float songTime = CoreServices.TimeProvider.SongTime;
2025-06-03 02:42:28 -04:00
triggerTime -= generateTime;
if (songTime < triggerTime)
{
return EffectState.Before;
}
if (songTime >= triggerTime &&
songTime <= triggerTime + effectTime)
{
return EffectState.Middle;
}
if (songTime > triggerTime + effectTime)
{
return EffectState.After;
}
return EffectState.Error;
}
2026-03-14 03:13:10 -04:00
public override void UpdateEffect(float judgeTime)
2025-06-03 02:42:28 -04:00
{
2026-03-14 03:13:10 -04:00
EffectState state = CheckEffectState(judgeTime);
float songTime = CoreServices.TimeProvider.SongTime;
judgeTime -= generateTime;
2025-06-03 02:42:28 -04:00
if (state == EffectState.Before && nowEffectState != EffectState.Before)
{
nowEffectState = EffectState.Before;
effectProgressPercent = 0;
Recover();
}
else if (state == EffectState.Middle)
{
if (nowEffectState == EffectState.Before)
{
PreExecute();
}
nowEffectState = EffectState.Middle;
2026-03-14 03:13:10 -04:00
effectProgressPercent = (songTime - judgeTime) / effectTime;
2025-06-03 02:42:28 -04:00
Execute();
}
else if (state == EffectState.After && nowEffectState != EffectState.After)
{
nowEffectState = EffectState.After;
effectProgressPercent = 1;
Adjust();
}
}
2026-03-14 03:13:10 -04:00
#endregion
2025-06-03 02:42:28 -04:00
}
2026-03-14 03:13:10 -04:00
2025-06-03 02:42:28 -04:00
}