You've already forked taptap2024_GJ_chidouren
init
This commit is contained in:
77
Assets/Scripts/System/OfflineSystem/OfflineTimeHandler.cs
Normal file
77
Assets/Scripts/System/OfflineSystem/OfflineTimeHandler.cs
Normal file
@@ -0,0 +1,77 @@
|
||||
using Script.Core.Utils.Extend;
|
||||
|
||||
namespace System.OfflineSystem
|
||||
{
|
||||
/// <summary>
|
||||
/// 计时器handler,支持直接序列化
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class OfflineTimeHandler
|
||||
{
|
||||
[FJson.Core.FSerialize] private long _timeStamp;
|
||||
[FJson.Core.FSerialize] private float _duration; //倒计时时长 单位:秒
|
||||
[FJson.Core.FSerialize] private float _extraTime; //额外时长 单位:秒
|
||||
|
||||
private DateTime _startTime;
|
||||
|
||||
/// <summary>
|
||||
/// 单位时长 : 秒
|
||||
/// </summary>
|
||||
/// <param name="time"></param>
|
||||
public void AddExtraTime (float time)
|
||||
{
|
||||
this._extraTime += time;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取计时器初始时间
|
||||
/// </summary>
|
||||
public DateTime StartTime
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this._startTime == default)
|
||||
{
|
||||
this._startTime = this._timeStamp.GetDateTime13 ();
|
||||
}
|
||||
return this._startTime;
|
||||
}
|
||||
}
|
||||
|
||||
public float Duration => this._duration; //倒计时时长 单位:秒
|
||||
|
||||
/// <summary>
|
||||
/// 获取剩余时长 单位:s
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public float RemainingTime ()
|
||||
{
|
||||
if (this._duration <= 0)
|
||||
return 0;
|
||||
var curDuration = this.CurDuration;
|
||||
return (float) Math.Max (0 , this._duration - curDuration);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 当前持续时长 , 单位:秒
|
||||
/// </summary>
|
||||
public double CurDuration => (OfflineMgr.Instance.CurTimeNode.EndTime - this.StartTime).TotalSeconds + this._extraTime;
|
||||
|
||||
/// <summary>
|
||||
/// 计时器是否计时完成
|
||||
/// </summary>
|
||||
public bool HasCountComplete => RemainingTime () <= 0;
|
||||
|
||||
public OfflineTimeHandler ()
|
||||
{
|
||||
}
|
||||
|
||||
internal OfflineTimeHandler (long timeStamp, float duration)
|
||||
{
|
||||
this._timeStamp = timeStamp;
|
||||
this._duration = duration;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user