MusicBeat
This commit is contained in:
@@ -18,7 +18,7 @@ namespace Cielonos.MainGame.Characters
|
||||
private float enemyTimeScale => timeManager.enemyTimeScale.Value;
|
||||
private float nonPlayerTimeScale => timeManager.nonPlayerTimeScale.Value;
|
||||
|
||||
public Dictionary<string, Timer> coolDownTimers = new Dictionary<string, Timer>();
|
||||
public Dictionary<string, CooldownTimer> coolDownTimers = new Dictionary<string, CooldownTimer>();
|
||||
|
||||
public float TimeScale => owner.fraction switch
|
||||
{
|
||||
@@ -265,34 +265,20 @@ namespace Cielonos.MainGame.Characters
|
||||
}
|
||||
}
|
||||
|
||||
public class Timer
|
||||
public class CooldownTimer : Timer
|
||||
{
|
||||
public float originalDuration; // 可选:记录最初设置的持续时间,方便重置时使用
|
||||
public float duration;
|
||||
public float currentTime;
|
||||
public float Percentage => duration > 0 ? Mathf.Clamp01(currentTime / duration) : 1f;
|
||||
public bool IsCompleted => currentTime >= duration;
|
||||
|
||||
public Timer(float duration)
|
||||
public CooldownTimer(float duration) : base(duration)
|
||||
{
|
||||
this.originalDuration = duration;
|
||||
this.duration = duration;
|
||||
this.currentTime = 0f;
|
||||
}
|
||||
|
||||
public void Update(float deltaTime)
|
||||
{
|
||||
if (!IsCompleted)
|
||||
{
|
||||
currentTime += deltaTime;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 重置计时器,可以选择新的持续时间(如果不提供则使用原始持续时间)
|
||||
/// </summary>
|
||||
/// <param name="newDuration"></param>
|
||||
public void Reset(float newDuration = -1f)
|
||||
public override void Reset(float newDuration = -1f)
|
||||
{
|
||||
currentTime = 0f;
|
||||
duration = newDuration >= 0f ? newDuration : originalDuration;
|
||||
|
||||
Reference in New Issue
Block a user