内容修补
This commit is contained in:
@@ -261,6 +261,14 @@ namespace Ichni.RhythmGame
|
||||
return EffectState.Error;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 当从Before状态进入Middle状态时,仅在效果的开始时触发一次方法
|
||||
/// </summary>
|
||||
public virtual void PreExecute()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 在效果的持续时间内,触发这个方法
|
||||
/// </summary>
|
||||
|
||||
@@ -13,25 +13,57 @@ namespace Ichni.RhythmGame
|
||||
protected override EffectState CheckEffectState(float triggerTime)
|
||||
{
|
||||
float songTime = EditorManager.instance.songInformation.songTime;
|
||||
triggerTime -= generateTime;
|
||||
|
||||
if (songTime < triggerTime - generateTime)
|
||||
if (songTime < triggerTime)
|
||||
{
|
||||
return EffectState.Before;
|
||||
}
|
||||
|
||||
if (songTime >= triggerTime - generateTime &&
|
||||
songTime <= triggerTime - generateTime + effectTime)
|
||||
if (songTime >= triggerTime &&
|
||||
songTime <= triggerTime + effectTime)
|
||||
{
|
||||
return EffectState.Middle;
|
||||
}
|
||||
|
||||
if (songTime > triggerTime - generateTime + effectTime)
|
||||
if (songTime > triggerTime + effectTime)
|
||||
{
|
||||
return EffectState.After;
|
||||
}
|
||||
|
||||
return EffectState.Error;
|
||||
}
|
||||
|
||||
public override void UpdateEffect(float triggerTime)
|
||||
{
|
||||
EffectState state = CheckEffectState(triggerTime);
|
||||
float songTime = EditorManager.instance.songInformation.songTime;
|
||||
triggerTime -= generateTime;
|
||||
|
||||
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;
|
||||
effectProgressPercent = (songTime - triggerTime) / effectTime;
|
||||
Execute();
|
||||
}
|
||||
else if (state == EffectState.After && nowEffectState != EffectState.After)
|
||||
{
|
||||
nowEffectState = EffectState.After;
|
||||
effectProgressPercent = 1;
|
||||
Adjust();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
namespace Beatmap
|
||||
|
||||
@@ -27,5 +27,10 @@ namespace Ichni.RhythmGame
|
||||
{
|
||||
selectSubmodule = new SelectSubmodule(this, note);
|
||||
}
|
||||
|
||||
public virtual void Recover()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user