Skip to content

GameCore.OrderSystem ​

Command 双端 ​

命名空间 GameCore.OrderSystem

csharp
public struct Command : IEquatable<Command>

指令请求数据,描述要执行的操作(技能、移动等)、目标和标志位。 通过 Boolean) 向单位下达指令。

构造函数 ​

Command 双端 ​

csharp
public Command()

属性 ​

csharp
public IGameLink<GameDataAbility>? AbilityLink { get; set; }

Index 双端 ​

csharp
public CommandIndex Index { get; set; }

Type 双端 ​

csharp
public ComponentTag Type { get; set; }

Flag 双端 ​

csharp
public CommandFlag Flag { get; set; }

Target 双端 ​

csharp
public ICommandTarget? Target { get; set; }

Item 双端 ​

csharp
public Item? Item { get; set; }

Player 双端 ​

csharp
public Player? Player { get; set; }

ApproachRange 双端 ​

csharp
public float ApproachRange { get; set; }

接近距离。用于 AI 移动等场景,让单位在指定距离处停止而非走到目标正上方。 仅服务端使用,不经过网络协议传输。默认 0 = 走到目标位置。

IsRequest 双端 ​

csharp
public readonly bool IsRequest { get; }

是否为请求型指令。请求型指令要求 Player 不为 null 且有控制权,目标实体必须可见,技能不能是隐藏技能。 模拟的是来自玩家/AI的请求,而非由脚本直接下达的指令。

IsAcquired 双端 ​

csharp
public readonly bool IsAcquired { get; }

是否为自动获取的指令(如自动施法、重复施法)。 后续排队指令会移除已有的 Acquired 指令,除非该指令处于不可打断状态。 Acquired 指令的打断只考虑不可打断状态,不考虑阶段和打断优先级。

方法 ​

IssueOrder 双端 ​

csharp
public readonly CmdResult IssueOrder(Entity entity, bool testOnly = false)

ToString 双端 ​

csharp
public override readonly string ToString()

operator != 双端 ​

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

operator == 双端 ​

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

GetHashCode 双端 ​

csharp
public override readonly int GetHashCode()

Equals 双端 ​

csharp
public override readonly bool Equals(object obj)

Equals 双端 ​

csharp
public readonly bool Equals(Command other)

CommandFlag 双端 ​

命名空间 GameCore.OrderSystem

csharp
public enum CommandFlag

枚举值 ​

  • None = 0
  • Queued = 1 — Queued command.
  • Preempt = 2 — Preempt the current command queue.
  • IsAcquired = 4 — Auto-acquired commands that are auto-casting or recasting commands.
  • IsAuto = 0xC — 自动施法指令。隐含 IsAcquired,可被手动指令覆盖。
  • IsRequest = 0x10 — Is request command from player client or AI.
  • IsUser = 0x30 — Is user request command from player client.
  • IsAI = 0x50 — Is AI request command from AI.
  • IsRecast = 0x84
  • DoRecast = 0x100
  • WasDoRecastAlive = 0x284

CommandIndex 双端 ​

命名空间 GameCore.OrderSystem

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

方法 ​

ToString 双端 ​

csharp
public override string? ToString()

operator == 双端 ​

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

operator != 双端 ​

csharp
public static bool operator !=(CommandIndex left, CommandIndex 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 Enum InnerValue

Execute 双端 ​

csharp
public static readonly CommandIndex Execute

TurnOn 双端 ​

csharp
public static readonly CommandIndex TurnOn

TurnOff 双端 ​

csharp
public static readonly CommandIndex TurnOff

Toggle 双端 ​

csharp
public static readonly CommandIndex Toggle

Attack 双端 ​

csharp
public static readonly CommandIndex Attack

Stop 双端 ​

csharp
public static readonly CommandIndex Stop

停止指令。在 中直接处理,不经过 。

VectorMove 双端 ​

csharp
public static readonly CommandIndex VectorMove

发起摇杆移动,会尝试打断其它的当前指令,指令目标需要是一个向量。

Move 双端 ​

csharp
public static readonly CommandIndex Move

VectorMoveAdjust 双端 ​

csharp
public static readonly CommandIndex VectorMoveAdjust

发起摇杆移动,不会打断其它的当前指令,指令目标需要是一个向量。 如果当前有其它指令在执行,只会更改摇杆移动的方向,并等待当前指令结束后继续摇杆移动。 Transient Order。

VectorMoveStop 双端 ​

csharp
public static readonly CommandIndex VectorMoveStop

停止单位的摇杆移动,如果当前没有摇杆移动则忽略该指令。 Transient Order。

AutoCastToggle 双端 ​

csharp
public static readonly CommandIndex AutoCastToggle

切换技能的自动施法开关。Transient Order。

CommandIndexInventory 双端 ​

命名空间 GameCore.OrderSystem

csharp
public readonly struct CommandIndexInventory : IGameClass, IExtendedEnum, ISyncIdOwner

方法 ​

ToString 双端 ​

csharp
public override string? ToString()

operator == 双端 ​

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

operator != 双端 ​

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

Equals 双端 ​

csharp
public override bool Equals(object? obj)

GetHashCode 双端 ​

csharp
public override int GetHashCode()

OnRegisterGameClass 双端 ​

csharp
public static void OnRegisterGameClass()

implicit operator 双端 ​

csharp
public static CommandIndex implicit operator(CommandIndexInventory e)

字段 ​

PickUp 双端 ​

csharp
public static readonly CommandIndexInventory PickUp

Use 双端 ​

csharp
public static readonly CommandIndexInventory Use

Swap 双端 ​

csharp
public static readonly CommandIndexInventory Swap

Give 双端 ​

csharp
public static readonly CommandIndexInventory Give

Drop 双端 ​

csharp
public static readonly CommandIndexInventory Drop

EOrderStage 双端 ​

命名空间 GameCore.OrderSystem

csharp
public enum EOrderStage

枚举值 ​

  • WaitToQueue
  • Queued
  • Approach
  • WaitForCooldown
  • Preswing
  • Cast
  • Channel
  • Backswing
  • Left

EOrderState 双端 ​

命名空间 GameCore.OrderSystem

csharp
public enum EOrderState

枚举值 ​

  • Normal
  • Canceled
  • Aborted
  • Completed

IApproachOrder 双端 ​

命名空间 GameCore.OrderSystem

csharp
public interface IApproachOrder : IWalkableOrder

属性 ​

Owner 双端 ​

csharp
public Entity Owner { get; }

Arc 双端 ​

csharp
public Angle Arc { get; }

ArcSlop 双端 ​

csharp
public Angle ArcSlop { get; }

DoCheckAngle 双端 ​

csharp
public bool DoCheckAngle { get; }

DoReapproach 双端 ​

csharp
public bool DoReapproach { get; }

Target 双端 ​

csharp
public ITarget Target { get; }

TurnToTarget 双端 ​

csharp
public ITarget TurnToTarget { get; }

IsValid 双端 ​

csharp
public bool IsValid { get; }

SuppressedAutoTurnWhenMoving 仅服务端 ​

csharp
public bool SuppressedAutoTurnWhenMoving { get; set; }

方法 ​

OnApproachBreak 双端 ​

csharp
protected internal void OnApproachBreak()

OnApproachFinish 双端 ​

csharp
protected internal void OnApproachFinish()

GetHashCode 双端 ​

csharp
new int GetHashCode()

SuppressAutoTurnWhenMoving 仅服务端 ​

csharp
protected internal void SuppressAutoTurnWhenMoving(bool suppress)

IWalkableOrder 双端 ​

命名空间 GameCore.OrderSystem

csharp
public interface IWalkableOrder

Order 双端 ​

命名空间 GameCore.OrderSystem

csharp
public abstract class Order : IDisposable, IExecutionContext

指令的运行时实例,表示单位正在执行或排队等待的一个操作(移动、攻击、施法等)。 通过 Boolean) 创建并加入 OrderQueue。

构造函数 ​

Order 仅客户端 ​

csharp
public Order()

Order 仅服务端 ​

csharp
protected internal Order(Command command)

属性 ​

ChanneledEffect 双端 ​

csharp
public Effect? ChanneledEffect { get; set; }

AbilityPhase 双端 ​

csharp
public virtual int? AbilityPhase { get; }

IsDoRecastAlive 仅服务端 ​

csharp
protected bool IsDoRecastAlive { get; set; }

ApproachTarget 仅服务端 ​

csharp
public virtual ITarget ApproachTarget { get; }

TurnToTarget 仅服务端 ​

csharp
public virtual ITarget TurnToTarget { get; }

Caster 仅服务端 ​

csharp
public Entity Caster { get; }

Command 仅服务端 ​

csharp
public Command Command { get; set; }

CommandTarget 仅服务端 ​

csharp
public ICommandTarget? CommandTarget { get; }

ExecutionTarget 仅服务端 ​

csharp
public virtual ITarget ExecutionTarget { get; }

IsAutoPreemptible 仅服务端 ​

csharp
public virtual bool IsAutoPreemptible { get; }

IsAcquired 仅服务端 ​

csharp
public bool IsAcquired { get; }

IsDoRecast 仅服务端 ​

csharp
public bool IsDoRecast { get; }

IsRecast 仅服务端 ​

csharp
public bool IsRecast { get; }

WasDoRecastAlive 仅服务端 ​

csharp
public bool WasDoRecastAlive { get; }

IsRequest 仅服务端 ​

csharp
public bool IsRequest { get; }

Request commands must have a player, and the player must be able to control the owner of the order. The player also must be able to see the approach target if the target is an entity. The ability cannot be a hidden ability.

IsDestroyed 仅服务端 ​

csharp
public bool IsDestroyed { get; }

IsDestroying 仅服务端 ​

csharp
public bool IsDestroying { get; }

IsHead 仅服务端 ​

csharp
public bool IsHead { get; }

IsTransient 仅服务端 ​

csharp
public abstract bool IsTransient { get; }

是否为瞬态指令。瞬态指令入队后立即通过 TransientExecute 执行, 不占用队列位置,不打断当前指令。

备注

典型用途: 无敌/解控等技能(Transient = true): 玩家按下后立刻生效,不中断正在进行的攻击或移动。 状态切换类操作(如 OrderAutoCastToggle): 即时翻转标志位,无需排队。 摇杆微调(如 OrderVectorMoveAdjust、OrderVectorMoveStop): 高频输入,不应打断当前行为。 当 Queued 被显式指定时,瞬态指令也会正常入队, 等到成为队首时再通过 TransientExecute 执行。

IsUnInterruptible 仅服务端 ​

csharp
public virtual bool IsUnInterruptible { get; }

IsValid 仅服务端 ​

csharp
public bool IsValid { get; }

Arc 仅服务端 ​

csharp
public virtual Angle Arc { get; }

ArcSlop 仅服务端 ​

csharp
public virtual Angle ArcSlop { get; }

DoCheckAngle 仅服务端 ​

csharp
public virtual bool DoCheckAngle { get; }

DoReapproach 仅服务端 ​

csharp
public virtual bool DoReapproach { get; }

Owner 仅服务端 ​

csharp
public Entity Owner { get; }

Queue 仅服务端 ​

csharp
public OrderQueue Queue { get; }

ShouldSendAnimationEvents 仅服务端 ​

csharp
protected virtual bool ShouldSendAnimationEvents { get; }

Stage 仅服务端 ​

csharp
public OrderStage Stage { get; set; }

State 仅服务端 ​

csharp
public OrderState State { get; set; }

Range 仅服务端 ​

csharp
public virtual float Range { get; }

CastingItem 仅服务端 ​

csharp
protected virtual ItemPickable? CastingItem { get; }

ShouldChannel 仅服务端 ​

csharp
protected virtual bool ShouldChannel { get; }

InterruptingPriority 仅服务端 ​

csharp
public virtual double InterruptingPriority { get; }

Modifiers 仅服务端 ​

csharp
public HashSet<OrderModifier>? Modifiers { get; }

方法 ​

SetAnimationState 仅服务端 ​

csharp
protected virtual void SetAnimationState(OrderStage value)

Cancel 仅服务端 ​

csharp
public virtual void Cancel()

Destroy 仅服务端 ​

csharp
public void Destroy()

Approach 仅服务端 ​

csharp
protected virtual Task<CmdResult> Approach()

RequestSameCommandOverride 仅服务端 ​

csharp
protected internal virtual bool RequestSameCommandOverride(Command command)

Dispose 仅服务端 ​

csharp
protected virtual void Dispose(bool disposing)

DisposeManaged 仅服务端 ​

csharp
protected abstract void DisposeManaged()

ExecutionValidator 仅服务端 ​

csharp
protected virtual CmdResult ExecutionValidator()

ThinkIsInRange 仅服务端 ​

csharp
protected virtual bool ThinkIsInRange()

ThinkIsInArc 仅服务端 ​

csharp
protected virtual bool ThinkIsInArc()

Used for pre-validation before preswing stage.

返回:

ThinkIsInArcSlop 仅服务端 ​

csharp
protected virtual bool ThinkIsInArcSlop()

Used for casting and channeling stage.

返回:

Time 仅服务端 ​

csharp
public virtual TimeSpan Time(OrderStage stage)

SpendCost 仅服务端 ​

csharp
protected virtual CmdResult SpendCost()

CostValidator 仅服务端 ​

csharp
protected virtual CmdResult CostValidator()

Preswing 仅服务端 ​

csharp
protected virtual Task<CmdResult> Preswing()

WaitForCooldown 仅服务端 ​

csharp
protected virtual Task<CmdResult> WaitForCooldown()

Cast 仅服务端 ​

csharp
protected Task<CmdResult> Cast()

ExecuteEffect 仅服务端 ​

csharp
protected abstract CmdResult ExecuteEffect()

Channel 仅服务端 ​

csharp
protected Task<CmdResult> Channel()

Backswing 仅服务端 ​

csharp
protected Task<CmdResult> Backswing()

Finish 仅服务端 ​

csharp
protected void Finish()

TransientExecute 仅服务端 ​

csharp
protected internal virtual CmdResult TransientExecute()

TryRunAsHead 仅服务端 ​

csharp
protected internal virtual Task TryRunAsHead(int timeAdjustment = 0)

CancelWaitForCooldown 仅服务端 ​

csharp
protected virtual void CancelWaitForCooldown()

TryEnqueue 仅服务端 ​

csharp
protected internal virtual CmdResult TryEnqueue(OrderQueue queue, bool testOnly = false)

Used to validate before being queued.

返回:

AddModifier 仅服务端 ​

csharp
public void AddModifier(OrderModifier modifier)

ToString 仅服务端 ​

csharp
public override string? ToString()

ExecuteChild 仅服务端 ​

csharp
public CmdResult ExecuteChild(IGameLink<GameDataEffect>? link, ITarget? target = null)

字段 ​

token 仅服务端 ​

csharp
protected CancellationToken token

tokenSource 仅服务端 ​

csharp
protected readonly CancellationTokenSource tokenSource

walkable 仅服务端 ​

csharp
protected Walkable? walkable

turnable 仅服务端 ​

csharp
protected Turnable? turnable

timeAdjustment 仅服务端 ​

csharp
protected int timeAdjustment

OrderAbilityActive 仅服务端 ​

命名空间 GameCore.OrderSystem

csharp
public abstract class OrderAbilityActive : Order, IExecutionContext

构造函数 ​

OrderAbilityActive 仅服务端 ​

csharp
protected internal OrderAbilityActive(Command command, AbilityActive ability)

属性 ​

IsTransient 仅服务端 ​

csharp
public override bool IsTransient { get; }

AllowEnqueueInCooldown 仅服务端 ​

csharp
public virtual bool AllowEnqueueInCooldown { get; }

Ability 仅服务端 ​

csharp
public AbilityActive Ability { get; }

AbilityCache 仅服务端 ​

csharp
public GameDataAbilityActive AbilityCache { get; set; }

Snapshotted upon preswing.

AbilityPhase 仅服务端 ​

csharp
public override int? AbilityPhase { get; }

Snapshotted upon preswing.

IsAutoPreemptible 仅服务端 ​

csharp
public override bool IsAutoPreemptible { get; }

IsUnInterruptible 仅服务端 ​

csharp
public override bool IsUnInterruptible { get; }

InterruptingPriority 仅服务端 ​

csharp
public override double InterruptingPriority { get; }

ShouldChannel 仅服务端 ​

csharp
protected override bool ShouldChannel { get; }

PreValidatorEffect 仅服务端 ​

csharp
protected Effect? PreValidatorEffect { get; set; }

CastingItem 仅服务端 ​

csharp
protected override ItemPickable? CastingItem { get; }

ShouldSendAnimationEvents 仅服务端 ​

csharp
protected override bool ShouldSendAnimationEvents { get; }

方法 ​

ToString 仅服务端 ​

csharp
public override string? ToString()

CostValidator 仅服务端 ​

csharp
protected override CmdResult CostValidator()

DisposeManaged 仅服务端 ​

csharp
protected override void DisposeManaged()

ExecuteEffect 仅服务端 ​

csharp
protected override CmdResult ExecuteEffect()

FilterCaster 仅服务端 ​

csharp
protected virtual CmdResult FilterCaster()

You can issue order to other unit's ability if you are a validated caster to that ability. Most of the time, host of the ability is always a valid caster, except for Interact Ability.

返回:

FilterTarget 仅服务端 ​

csharp
protected virtual CmdResult FilterTarget()

ExecutionValidator 仅服务端 ​

csharp
protected override CmdResult ExecutionValidator()

SpendCost 仅服务端 ​

csharp
protected override CmdResult SpendCost()

SetAnimationState 仅服务端 ​

csharp
protected override void SetAnimationState(OrderStage value)

TotalCastingTime 仅服务端 ​

csharp
public virtual TimeSpan TotalCastingTime()

Calculates the complete casting time for the ability, including all phases (preswing, cast, channel, and backswing). This represents the theoretical duration if all phases execute without interruption.

返回: A TimeSpan representing the complete casting time. Returns Zero if the ability is transient. When NormalizedDuration is set, returns the normalized duration plus scaled backswing time.

备注

This method is primarily used by systems that need to know the complete theoretical casting duration: Animation system: To determine if animation events should be sent to clients UI system: To display casting progress bars or cooldown timers Effect duration: For abilities that need to know their full execution time Important: This duration may differ from the actual attack interval for abilities with NormalizedDuration and interruptible backswing, where subsequent attacks can interrupt the backswing phase before completion.

Time 仅服务端 ​

csharp
public override TimeSpan Time(OrderStage stage)

TryEnqueue 仅服务端 ​

csharp
protected internal override CmdResult TryEnqueue(OrderQueue queue, bool testOnly = false)

Preswing 仅服务端 ​

csharp
protected override Task<CmdResult> Preswing()

CancelWaitForCooldown 仅服务端 ​

csharp
protected override void CancelWaitForCooldown()

WaitForCooldown 仅服务端 ​

csharp
protected override Task<CmdResult> WaitForCooldown()

OrderAbilityExecute 仅服务端 ​

命名空间 GameCore.OrderSystem

csharp
public class OrderAbilityExecute : OrderAbilityActive, IApproachOrder, IWalkableOrder

构造函数 ​

OrderAbilityExecute 仅服务端 ​

csharp
protected internal OrderAbilityExecute(Command command, AbilityExecute ability)

属性 ​

ApproachTarget 仅服务端 ​

csharp
public override ITarget ApproachTarget { get; }

TurnToTarget 仅服务端 ​

csharp
public override ITarget TurnToTarget { get; }

Ability 仅服务端 ​

csharp
public new AbilityExecute Ability { get; }

AbilityCache 仅服务端 ​

csharp
public new GameDataAbilityExecute AbilityCache { get; }

ExecutionTarget 仅服务端 ​

csharp
public override ITarget ExecutionTarget { get; }

Range 仅服务端 ​

csharp
public override float Range { get; }

Target 仅服务端 ​

csharp
public ITarget Target { get; }

Arc 仅服务端 ​

csharp
public override Angle Arc { get; }

ArcSlop 仅服务端 ​

csharp
public override Angle ArcSlop { get; }

DoCheckAngle 仅服务端 ​

csharp
public override bool DoCheckAngle { get; }

DoReapproach 仅服务端 ​

csharp
public override bool DoReapproach { get; }

方法 ​

Preswing 仅服务端 ​

csharp
protected override Task<CmdResult> Preswing()

AcquireTargetValidate 仅服务端 ​

csharp
protected internal virtual bool AcquireTargetValidate(Unit entity)

SmartAcquire 仅服务端 ​

csharp
protected internal virtual Unit? SmartAcquire()

如果指令缺少目标,但技能需要目标,则根据 AcquireSettings 的配置自动获取目标。

返回: 获取到的目标,如果获取不到则返回 null。

TryEnqueue 仅服务端 ​

csharp
protected internal override CmdResult TryEnqueue(OrderQueue queue, bool testOnly = false)

FilterCaster 仅服务端 ​

csharp
protected override CmdResult FilterCaster()

FilterTarget 仅服务端 ​

csharp
protected override CmdResult FilterTarget()

OrderAbilityToggle 仅服务端 ​

命名空间 GameCore.OrderSystem

csharp
public class OrderAbilityToggle : OrderAbilityActive

构造函数 ​

OrderAbilityToggle 仅服务端 ​

csharp
protected internal OrderAbilityToggle(Command command, AbilityToggle ability)

属性 ​

Ability 仅服务端 ​

csharp
public new AbilityToggle Ability { get; }

AbilityCache 仅服务端 ​

csharp
public new GameDataAbilityToggle AbilityCache { get; }

ApproachTarget 仅服务端 ​

csharp
public override ITarget ApproachTarget { get; }

ExecutionTarget 仅服务端 ​

csharp
public override ITarget ExecutionTarget { get; }

IsTransient 仅服务端 ​

csharp
public override bool IsTransient { get; }

IsTurnOffOrder 仅服务端 ​

csharp
protected virtual bool IsTurnOffOrder { get; }

ShouldChannel 仅服务端 ​

csharp
protected override bool ShouldChannel { get; }

方法 ​

ThinkIsInRange 仅服务端 ​

csharp
protected override bool ThinkIsInRange()

CostValidator 仅服务端 ​

csharp
protected override CmdResult CostValidator()

SpendCost 仅服务端 ​

csharp
protected override CmdResult SpendCost()

Time 仅服务端 ​

csharp
public override TimeSpan Time(OrderStage stage)

ExecutionValidator 仅服务端 ​

csharp
protected override CmdResult ExecutionValidator()

ExecuteEffect 仅服务端 ​

csharp
protected override CmdResult ExecuteEffect()

OrderAutoCastToggle 仅服务端 ​

命名空间 GameCore.OrderSystem

csharp
public class OrderAutoCastToggle : Order

切换技能自动施法开关的 Transient 指令。 入队后立即执行,不占用指令队列位置。

构造函数 ​

OrderAutoCastToggle 仅服务端 ​

csharp
public OrderAutoCastToggle(Command command, AbilityExecute ability)

切换技能自动施法开关的 Transient 指令。 入队后立即执行,不占用指令队列位置。

属性 ​

IsTransient 仅服务端 ​

csharp
public override bool IsTransient { get; }

方法 ​

DisposeManaged 仅服务端 ​

csharp
protected override void DisposeManaged()

ExecuteEffect 仅服务端 ​

csharp
protected override CmdResult ExecuteEffect()

OrderInventory 仅服务端 ​

命名空间 GameCore.OrderSystem

csharp
public class OrderInventory : Order, IApproachOrder, IWalkableOrder

属性 ​

Range 仅服务端 ​

csharp
public override float Range { get; }

InventoryManager 仅服务端 ​

csharp
public InventoryManager InventoryManager { get; set; }

IsTransient 仅服务端 ​

csharp
public override bool IsTransient { get; }

Target 仅服务端 ​

csharp
public ITarget Target { get; }

方法 ​

DisposeManaged 仅服务端 ​

csharp
protected override void DisposeManaged()

ExecuteEffect 仅服务端 ​

csharp
protected override CmdResult ExecuteEffect()

ExecutionValidator 仅服务端 ​

csharp
protected override CmdResult ExecutionValidator()

OrderMove 仅服务端 ​

命名空间 GameCore.OrderSystem

csharp
public class OrderMove : Order, IApproachOrder, IWalkableOrder

构造函数 ​

OrderMove 仅服务端 ​

csharp
public OrderMove(Command command)

属性 ​

Target 仅服务端 ​

csharp
public ITarget Target { get; }

Range 仅服务端 ​

csharp
public override float Range { get; }

IsTransient 仅服务端 ​

csharp
public override bool IsTransient { get; }

方法 ​

DisposeManaged 仅服务端 ​

csharp
protected override void DisposeManaged()

ExecuteEffect 仅服务端 ​

csharp
protected override CmdResult ExecuteEffect()

OrderQueue 双端 ​

命名空间 GameCore.OrderSystem

csharp
public class OrderQueue : TagComponent, IEnumerable<Order>, IEnumerable, IContextTypeService<Entity, OrderQueue>

单位的指令队列,管理指令的排队、执行、中断和替换。支持排队(Queued)和抢占(Preempt)模式。

构造函数 ​

OrderQueue 双端 ​

csharp
public OrderQueue(Entity host)

属性 ​

IsPaused 仅服务端 ​

csharp
public bool IsPaused { get; }

HasSingleOrder 仅服务端 ​

csharp
public bool HasSingleOrder { get; }

IsEmpty 仅服务端 ​

csharp
public bool IsEmpty { get; }

IsAutoPreemptible 仅服务端 ​

csharp
public bool IsAutoPreemptible { get; }

方法 ​

GetEnumerator 双端 ​

csharp
public IEnumerator<Order> GetEnumerator()

CreateInstance 双端 ​

csharp
public static OrderQueue CreateInstance(Entity content)

Pause 仅服务端 ​

csharp
public void Pause()

Resume 仅服务端 ​

csharp
public void Resume()

Peek 仅服务端 ​

csharp
public Order? Peek()

GetOrders 仅服务端 ​

csharp
public IEnumerable<Order>? GetOrders(Func<Order, bool> filter)

GetOrders 仅服务端 ​

csharp
public IEnumerable<Order>? GetOrders(GetOrderFlags flags, Func<Order, bool> filter)

ClearLastAcquired 仅服务端 ​

csharp
public void ClearLastAcquired()

Clear 仅服务端 ​

csharp
public void Clear(bool includeUnInterruptible = true, Order? InterruptingOrder = null)

Clear 仅服务端 ​

csharp
public void Clear(Func<Order, bool> filter)

OrderQueueExtension 双端 ​

命名空间 GameCore.OrderSystem

csharp
public static class OrderQueueExtension

方法 ​

GetComponent 双端 ​

csharp
public static OrderQueue? GetComponent<TComponent>(this Entity entity) where TComponent : OrderQueue

GetOrCreateComponent 双端 ​

csharp
public static OrderQueue GetOrCreateComponent<TComponent>(this Entity entity) where TComponent : OrderQueue

OrderStage 双端 ​

命名空间 GameCore.OrderSystem

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

方法 ​

ToString 双端 ​

csharp
public override string? ToString()

operator == 双端 ​

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

operator != 双端 ​

csharp
public static bool operator !=(OrderStage left, OrderStage 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 Enum InnerValue

WaitToQueue 双端 ​

csharp
public static readonly OrderStage WaitToQueue

Queued 双端 ​

csharp
public static readonly OrderStage Queued

Approach 双端 ​

csharp
public static readonly OrderStage Approach

WaitForCooldown 双端 ​

csharp
public static readonly OrderStage WaitForCooldown

Preswing 双端 ​

csharp
public static readonly OrderStage Preswing

Cast 双端 ​

csharp
public static readonly OrderStage Cast

Channel 双端 ​

csharp
public static readonly OrderStage Channel

Backswing 双端 ​

csharp
public static readonly OrderStage Backswing

Left 双端 ​

csharp
public static readonly OrderStage Left

OrderState 双端 ​

命名空间 GameCore.OrderSystem

csharp
public readonly struct OrderState : IGameClass, IExtendedEnum, ISyncIdOwner

方法 ​

ToString 双端 ​

csharp
public override string? ToString()

operator == 双端 ​

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

operator != 双端 ​

csharp
public static bool operator !=(OrderState left, OrderState 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 EOrderState InnerValue

Normal 双端 ​

csharp
public static readonly OrderState Normal

Canceled 双端 ​

csharp
public static readonly OrderState Canceled

Aborted 双端 ​

csharp
public static readonly OrderState Aborted

Completed 双端 ​

csharp
public static readonly OrderState Completed

OrderStop 仅服务端 ​

命名空间 GameCore.OrderSystem

csharp
public class OrderStop : Order

Clear up the order queue

构造函数 ​

OrderStop 仅服务端 ​

csharp
public OrderStop(Command command)

Clear up the order queue

属性 ​

IsTransient 仅服务端 ​

csharp
public override bool IsTransient { get; }

方法 ​

DisposeManaged 仅服务端 ​

csharp
protected override void DisposeManaged()

ExecuteEffect 仅服务端 ​

csharp
protected override CmdResult ExecuteEffect()

OrderVectorMove 仅服务端 ​

命名空间 GameCore.OrderSystem

csharp
public class OrderVectorMove : Order, IWalkableOrder

构造函数 ​

OrderVectorMove 仅服务端 ​

csharp
public OrderVectorMove(Command command)

属性 ​

IsTransient 仅服务端 ​

csharp
public override bool IsTransient { get; }

方法 ​

DisposeManaged 仅服务端 ​

csharp
protected override void DisposeManaged()

ExecuteEffect 仅服务端 ​

csharp
protected override CmdResult ExecuteEffect()

ExecutionValidator 仅服务端 ​

csharp
protected override CmdResult ExecutionValidator()

ThinkIsInRange 仅服务端 ​

csharp
protected override bool ThinkIsInRange()

OrderVectorMoveAdjust 仅服务端 ​

命名空间 GameCore.OrderSystem

csharp
public class OrderVectorMoveAdjust : Order, IWalkableOrder

摇杆移动方向调整指令 用于在施法期间调整摇杆移动方向,不会打断当前指令队列

构造函数 ​

OrderVectorMoveAdjust 仅服务端 ​

csharp
public OrderVectorMoveAdjust(Command command)

摇杆移动方向调整指令 用于在施法期间调整摇杆移动方向,不会打断当前指令队列

属性 ​

IsTransient 仅服务端 ​

csharp
public override bool IsTransient { get; }

方法 ​

DisposeManaged 仅服务端 ​

csharp
protected override void DisposeManaged()

ExecuteEffect 仅服务端 ​

csharp
protected override CmdResult ExecuteEffect()

ExecutionValidator 仅服务端 ​

csharp
protected override CmdResult ExecutionValidator()

ThinkIsInRange 仅服务端 ​

csharp
protected override bool ThinkIsInRange()

OrderVectorMoveStop 仅服务端 ​

命名空间 GameCore.OrderSystem

csharp
public class OrderVectorMoveStop : Order, IWalkableOrder

构造函数 ​

OrderVectorMoveStop 仅服务端 ​

csharp
public OrderVectorMoveStop(Command command)

属性 ​

IsTransient 仅服务端 ​

csharp
public override bool IsTransient { get; }

方法 ​

DisposeManaged 仅服务端 ​

csharp
protected override void DisposeManaged()

ExecuteEffect 仅服务端 ​

csharp
protected override CmdResult ExecuteEffect()

GetOrderFlags 双端 ​

命名空间 GameCore.OrderSystem.Struct

csharp
public class GetOrderFlags

构造函数 ​

GetOrderFlags 双端 ​

csharp
public GetOrderFlags()

属性 ​

IncludeHead 双端 ​

csharp
public bool IncludeHead { get; set; }

IncludeQueued 双端 ​

csharp
public bool IncludeQueued { get; set; }

IncludeUninterruptible 双端 ​

csharp
public bool IncludeUninterruptible { get; set; }