FututeWand初步
This commit is contained in:
@@ -15,8 +15,6 @@ namespace Cielonos.MainGame
|
||||
private bool hasInvokedEnableAction;
|
||||
public Action enableAction;
|
||||
public Action timeOutAction;
|
||||
public List<ScheduledAction> scheduledActions;
|
||||
private List<ScheduledAction> toBeExecutedScheduledActions = new List<ScheduledAction>();
|
||||
|
||||
/// <summary>
|
||||
/// enable 阶段开始前允许反应的提前量(秒),默认 0 表示无提前 grace window。
|
||||
@@ -30,7 +28,6 @@ namespace Cielonos.MainGame
|
||||
this.lifeTime = lifeTime;
|
||||
this.remainingLifeTime = lifeTime;
|
||||
this.enablingTimer = 0;
|
||||
this.scheduledActions = new List<ScheduledAction>();
|
||||
|
||||
if (attackArea is NormalArea)
|
||||
{
|
||||
@@ -67,7 +64,6 @@ namespace Cielonos.MainGame
|
||||
this.lifeTime = lifeTime;
|
||||
this.delayTime = delayTime;
|
||||
this.attackArea.isEnabling = delayTime <= 0;
|
||||
this.scheduledActions = new List<ScheduledAction>();
|
||||
|
||||
this.timeOutAction = timeOutAction ?? (() =>
|
||||
{
|
||||
@@ -93,11 +89,7 @@ namespace Cielonos.MainGame
|
||||
this.reactionGraceBefore = graceBefore;
|
||||
}
|
||||
|
||||
public TimeSubmodule AddScheduleAction(Action action, float delay)
|
||||
{
|
||||
scheduledActions.Add(new ScheduledAction(action, delay));
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 判断当前时刻是否处于反应窗口内(包含 grace 区间和 enable 阶段本身)。
|
||||
@@ -148,21 +140,7 @@ namespace Cielonos.MainGame
|
||||
enableAction?.Invoke();
|
||||
hasInvokedEnableAction = true;
|
||||
}
|
||||
|
||||
toBeExecutedScheduledActions.Clear();
|
||||
foreach (var scheduledAction in scheduledActions)
|
||||
{
|
||||
scheduledAction.delay -= attackArea.creator.selfTimeSm.DeltaTime;
|
||||
if (scheduledAction.delay <= 0)
|
||||
{
|
||||
toBeExecutedScheduledActions.Add(scheduledAction);
|
||||
}
|
||||
}
|
||||
foreach (var scheduledAction in toBeExecutedScheduledActions)
|
||||
{
|
||||
scheduledAction.action.Invoke();
|
||||
scheduledActions.Remove(scheduledAction);
|
||||
}
|
||||
|
||||
|
||||
if (remainingLifeTime <= 0)
|
||||
{
|
||||
@@ -187,18 +165,5 @@ namespace Cielonos.MainGame
|
||||
}
|
||||
}
|
||||
|
||||
public partial class TimeSubmodule
|
||||
{
|
||||
public class ScheduledAction
|
||||
{
|
||||
public Action action;
|
||||
public float delay;
|
||||
|
||||
public ScheduledAction(Action action, float delay)
|
||||
{
|
||||
this.action = action;
|
||||
this.delay = delay;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user