Hold初步

This commit is contained in:
SoulliesOfficial
2025-03-16 01:35:05 -04:00
parent a48e7d59ac
commit 4aad7b3882
51 changed files with 162919 additions and 82 deletions

View File

@@ -177,6 +177,11 @@ namespace Ichni.RhythmGame
/// 是否是瞬间效果
/// </summary>
public bool isInstantEffect => effectTime <= 0;
/// <summary>
/// 效果的进度百分比
/// </summary>
public float effectProgressPercent;
/// <summary>
/// 效果当前的状态
@@ -187,12 +192,14 @@ namespace Ichni.RhythmGame
{
this.effectTime = 0;
this.nowEffectState = EffectState.Before;
this.effectProgressPercent = 0;
}
protected EffectBase(float effectTime)
{
this.effectTime = effectTime;
this.nowEffectState = EffectState.Before;
this.effectProgressPercent = 0;
}
public void SaveBM()
@@ -203,20 +210,24 @@ namespace Ichni.RhythmGame
public virtual void UpdateEffect(float triggerTime)
{
EffectState state = CheckEffectState(triggerTime);
float songTime = EditorManager.instance.songInformation.songTime;
if (state == EffectState.Before && nowEffectState != EffectState.Before)
{
nowEffectState = EffectState.Before;
effectProgressPercent = 0;
Recover();
}
else if (state == EffectState.Middle)
{
nowEffectState = EffectState.Middle;
effectProgressPercent = (songTime - triggerTime) / effectTime;
Execute();
}
else if (state == EffectState.After && nowEffectState != EffectState.After)
{
nowEffectState = EffectState.After;
effectProgressPercent = 1;
Adjust();
}
}