Skip to content

GameCore.CooldownSystem ​

Cooldown 双端 ​

命名空间 GameCore.CooldownSystem

csharp
public abstract class Cooldown : DisposableObject, IAttachedObject<GameDataCooldown>, IAttachedObject, ISyncIdOwner, IDisposable, IGameObject<GameDataCooldown>, IGameObject, IPropertyOwner<PropertyAttachedObject>, IPropertyOwner, ISpendable

构造函数 ​

Cooldown 双端 ​

csharp
public Cooldown(IGameLink<GameDataCooldown> link, ICooldownOwner owner)

属性 ​

CooldownHash 双端 ​

csharp
protected long CooldownHash { get; }

Owner 双端 ​

csharp
public ICooldownOwner Owner { get; }

MaxTime 双端 ​

csharp
public TimeSpan? MaxTime { get; }

RemainingTime 双端 ​

csharp
public TimeSpan? RemainingTime { get; }

IsRunning 双端 ​

csharp
public abstract bool IsRunning { get; set; }

Affordable 双端 ​

csharp
public abstract bool Affordable { get; }

Host 双端 ​

csharp
public ICooldownHost Host { get; }

SyncId 双端 ​

csharp
public int SyncId { get; set; }
csharp
public IGameLink<GameDataCooldown> Link { get; }

Cache 双端 ​

csharp
public GameDataCooldown Cache { get; }

方法 ​

OnCooldownUpdateInternal 仅客户端 ​

csharp
protected internal virtual void OnCooldownUpdateInternal(TimeSpan remainingTime)

OnCooldownStoppedEarlyInternal 仅客户端 ​

csharp
protected internal virtual void OnCooldownStoppedEarlyInternal()

OnCooldownInternal 双端 ​

csharp
protected internal virtual void OnCooldownInternal()

CheckAffordable 双端 ​

csharp
public abstract CmdResult CheckAffordable()

ToString 双端 ​

csharp
public override string ToString()

ReplicateFromKeyValue 仅客户端 ​

csharp
public virtual bool ReplicateFromKeyValue(System.Enum propertyEnum, ReadOnlySpan<byte> value, bool isHostReplicating = false)

DisposeManaged 双端 ​

csharp
protected override void DisposeManaged()

DisposeUnmanaged 双端 ​

csharp
protected override void DisposeUnmanaged(bool finalizing)

SetSyncType 仅服务端 ​

csharp
public void SetSyncType(SyncType type)

Start 仅服务端 ​

csharp
protected void Start(IExecutionContext context)

Restart 仅服务端 ​

csharp
public virtual void Restart()

重置冷却,使用上一次的最大时间

Stop 仅服务端 ​

csharp
public virtual void Stop()

Spend 仅服务端 ​

csharp
public bool Spend(IExecutionContext context, bool checkAffordable = true)

SpendInternal 仅服务端 ​

csharp
protected abstract bool SpendInternal(IExecutionContext context)

ForceCooldown 仅服务端 ​

csharp
public virtual void ForceCooldown(TimeSpan max, TimeSpan? current = null)

事件 ​

OnCooldown 双端 ​

csharp
public event Action? OnCooldown

OnBecomeAffordable 仅服务端 ​

csharp
public abstract event Action? OnBecomeAffordable

CooldownActive 双端 ​

命名空间 GameCore.CooldownSystem

csharp
public class CooldownActive : Cooldown, IGameObject<GameDataCooldownActive>, IGameObject

构造函数 ​

CooldownActive 双端 ​

csharp
public CooldownActive(IGameLink<GameDataCooldownActive> link, ICooldownOwner owner)

属性 ​

csharp
public new IGameLink<GameDataCooldownActive> Link { get; }

Cache 双端 ​

csharp
public new GameDataCooldownActive Cache { get; }

IsRunning 双端 ​

csharp
public override bool IsRunning { get; set; }

Affordable 双端 ​

csharp
public override bool Affordable { get; }

方法 ​

CheckAffordable 双端 ​

csharp
public override CmdResult CheckAffordable()

DelayedAffordableCheck 仅服务端 ​

csharp
protected Task DelayedAffordableCheck()

SpendInternal 仅服务端 ​

csharp
protected override bool SpendInternal(IExecutionContext context)

事件 ​

OnBecomeAffordable 仅服务端 ​

csharp
public override event Action? OnBecomeAffordable

CooldownCharge 双端 ​

命名空间 GameCore.CooldownSystem

csharp
public class CooldownCharge : Cooldown, IGameObject<GameDataCooldownCharge>, IGameObject, IPropertyOwner<PropertyCooldownCharge>, IPropertyOwner, ISyncIdOwner

构造函数 ​

CooldownCharge 双端 ​

csharp
public CooldownCharge(IGameLink<GameDataCooldownCharge> link, ICooldownOwner owner, IExecutionContext context)

属性 ​

csharp
public new IGameLink<GameDataCooldownCharge> Link { get; }

Cache 双端 ​

csharp
public new GameDataCooldownCharge Cache { get; }

Context 双端 ​

csharp
public IExecutionContext Context { get; }

IsRunning 双端 ​

csharp
public override bool IsRunning { get; set; }

Affordable 双端 ​

csharp
public override bool Affordable { get; }

ChargeMax 双端 ​

csharp
public double ChargeMax { get; }

ChargeRemain 双端 ​

csharp
public double ChargeRemain { get; }

方法 ​

CheckAffordable 双端 ​

csharp
public override CmdResult CheckAffordable()

GetProperty 双端 ​

csharp
public TValue? GetProperty<TValue>(PropertyCooldownCharge property)

SpendInternal 仅服务端 ​

csharp
protected override bool SpendInternal(IExecutionContext context)

ConsumeCharge 仅服务端 ​

csharp
public bool ConsumeCharge(bool checkRemaining = true, double chargeToConsume = 1.0)

RestoreCharge 仅服务端 ​

csharp
public bool RestoreCharge(bool checkMax = true, double chargeToRestore = 1.0)

ForceCharge 仅服务端 ​

csharp
public void ForceCharge(double charge, bool checkRange = false)

OnCooldownInternal 仅服务端 ​

csharp
protected internal override void OnCooldownInternal()

SetProperty 仅服务端 ​

csharp
public void SetProperty<TValue>(PropertyCooldownCharge property, TValue value)

AddProperty 仅服务端 ​

csharp
public void AddProperty(PropertyCooldownCharge property, double value)

事件 ​

OnBecomeAffordable 仅服务端 ​

csharp
public override event Action? OnBecomeAffordable

GameDataCooldown 双端 ​

命名空间 GameCore.CooldownSystem.Data

csharp
public abstract class GameDataCooldown : GameDataCategory<GameDataCooldown>, IAttachedData<GameDataCooldown>, IAttachedData, IGameData<GameDataCooldown>, IGameData, IGameDataCategory<GameDataCooldown>

冷却数据基类:定义技能/物品的冷却时长、存储位置及同步方式。

构造函数 ​

GameDataCooldown 双端 ​

csharp
public GameDataCooldown(GameLink<GameDataCooldown, GameDataCooldown> link)

GameDataCooldown 双端 ​

csharp
public GameDataCooldown(IGameLink<GameDataCooldown> link)

属性 ​

Time 双端 ​

csharp
public FuncTime Time { get; set; }

冷却时长计算函数,传入上下文返回 TimeSpan;默认 0 表示无冷却。

Location 双端 ​

csharp
public CooldownLocation Location { get; set; }

冷却存储位置:Self/Item/Ability/Unit/Player/Game,决定冷却在哪个层级共享。

SyncType 双端 ​

csharp
public SyncType SyncType { get; set; }

同步范围:仅自己、队伍或全服可见。

方法 ​

CreateCooldown 双端 ​

csharp
protected internal abstract Cooldown CreateCooldown(ICooldownOwner owner)

GameDataCooldownActive 双端 ​

命名空间 GameCore.CooldownSystem.Data

csharp
public class GameDataCooldownActive : GameDataCooldown, IGameData<GameDataCooldownActive>, IGameData

主动型冷却:使用后进入冷却,冷却结束后才能再次使用(传统技能 CD)。

构造函数 ​

GameDataCooldownActive 双端 ​

csharp
public GameDataCooldownActive(GameLink<GameDataCooldown, GameDataCooldownActive> link)

GameDataCooldownActive 双端 ​

csharp
public GameDataCooldownActive(IGameLink<GameDataCooldownActive> link)

属性 ​

csharp
public new IGameLink<GameDataCooldownActive> Link { get; }

方法 ​

CreateCooldown 双端 ​

csharp
protected internal override Cooldown CreateCooldown(ICooldownOwner owner)

GameDataCooldownCharge 双端 ​

命名空间 GameCore.CooldownSystem.Data

csharp
public class GameDataCooldownCharge : GameDataCooldown, IGameData<GameDataCooldownCharge>, IGameData

充能型冷却:技能拥有多段充能,使用后消耗一层并随时间恢复(如闪现 2 层充能)。

构造函数 ​

GameDataCooldownCharge 双端 ​

csharp
public GameDataCooldownCharge(GameLink<GameDataCooldown, GameDataCooldownCharge> link)

GameDataCooldownCharge 双端 ​

csharp
public GameDataCooldownCharge(IGameLink<GameDataCooldownCharge> link)

属性 ​

ChargeStart 双端 ​

csharp
public FuncNumber ChargeStart { get; set; }

初始充能层数,创建时即拥有的层数。

ChargeMax 双端 ​

csharp
public FuncNumber ChargeMax { get; set; }

最大充能层数上限。

csharp
public new IGameLink<GameDataCooldownCharge> Link { get; }

方法 ​

CreateCooldown 双端 ​

csharp
protected internal override Cooldown CreateCooldown(ICooldownOwner owner)

EPropertyCooldownHost 双端 ​

命名空间 GameCore.CooldownSystem.Enum

csharp
public enum EPropertyCooldownHost

定义冷却时间宿主的属性类型,用于标识和管理不同类型的冷却时间容器

备注

此枚举提供了扩展能力,允许在运行时动态添加新的冷却时间宿主属性类型。 冷却时间宿主属性用于识别和访问可以承载冷却时间的不同容器和组件, 为冷却时间系统提供了灵活的存储和管理机制。

枚举值 ​

  • AttachedObjects — 附加对象列表 - 用于管理附加到实体上的对象的冷却时间

PropertyCooldownCharge 双端 ​

命名空间 GameCore.CooldownSystem.Enum

csharp
public readonly struct PropertyCooldownCharge : IGameClass, IExtendableEnum<PropertyCooldownCharge>, IExtendableEnum, IExtendedEnum, ISyncIdOwner

方法 ​

ToString 双端 ​

csharp
public override string? ToString()

operator == 双端 ​

csharp
public static bool operator ==(PropertyCooldownCharge left, PropertyCooldownCharge right)

operator != 双端 ​

csharp
public static bool operator !=(PropertyCooldownCharge left, PropertyCooldownCharge right)

Equals 双端 ​

csharp
public override bool Equals(object? obj)

GetHashCode 双端 ​

csharp
public override int GetHashCode()

OnRegisterGameClass 双端 ​

csharp
public static void OnRegisterGameClass()

字段 ​

InnerValue 双端 ​

csharp
public readonly System.Enum InnerValue

ChargeRemain 双端 ​

csharp
public static readonly PropertyCooldownCharge ChargeRemain

PropertyCooldownHost 双端 ​

命名空间 GameCore.CooldownSystem.Enum

csharp
public readonly struct PropertyCooldownHost : IGameClass, IExtendableEnum<PropertyCooldownHost>, IExtendableEnum, IExtendedEnum, ISyncIdOwner

方法 ​

ToString 双端 ​

csharp
public override string? ToString()

operator == 双端 ​

csharp
public static bool operator ==(PropertyCooldownHost left, PropertyCooldownHost right)

operator != 双端 ​

csharp
public static bool operator !=(PropertyCooldownHost left, PropertyCooldownHost right)

Equals 双端 ​

csharp
public override bool Equals(object? obj)

GetHashCode 双端 ​

csharp
public override int GetHashCode()

OnRegisterGameClass 双端 ​

csharp
public static void OnRegisterGameClass()

字段 ​

InnerValue 双端 ​

csharp
public readonly System.Enum InnerValue

AttachedObjects 双端 ​

csharp
public static readonly PropertyCooldownHost AttachedObjects

附加对象列表 - 用于管理附加到实体上的对象的冷却时间

备注

表示一个附加对象的列表,这些对象可以承载冷却时间。 通常在数据链接设置完成后插入到列表中进行管理。 这种类型的宿主适用于动态附加的组件、技能、物品等对象的冷却时间管理。