跳到主要内容

事件参考

Guide

先用精简表格定位事件,再展开查看事件名、载荷参数、触发时机与订阅示例

事件总览只保留定位所需的信息,完整细节放在每个事件的折叠项中,这些事件名与 Game Card Monitor 的 Event 页签完全一致

Game Card Monitor 的 Event 页签按时间顺序列出战斗中触发的 GCS 事件名

战斗与回合事件

事件载荷触发时机
OnBattleStarted战斗状态、起始手牌和初始敌人意图准备完成
OnTurnStartedTurnEventArgs每个玩家回合开始
OnEnemyTurnStartedTurnEventArgs每个敌方阶段开始
OnTurnEndedTurnEventArgs每个玩家回合结束
OnDrawPhaseTurnEventArgs玩家回合进入抽牌步骤
OnDiscardPhaseTurnEventArgs玩家回合进入弃牌步骤
OnBattleEndedBattleEndedEventArgs战斗结算为胜利或失败
OnBattleStarted

在以下时机触发:战斗状态、起始手牌和初始敌人意图准备完成 典型用途:初始化 HUD 与战斗开场表现

事件标识:

项目
常量GCSEventNames.OnBattleStarted
字符串值GCS_OnBattleStarted
载荷类型
public static IDisposable OnBattleStarted(Action handler);

事件参数:

名称类型说明
此事件没有载荷参数

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnBattleStarted(() => Debug.Log("OnBattleStarted"));
OnTurnStarted

在以下时机触发:每个玩家回合开始 典型用途:回合开始 UI 刷新

事件标识:

项目
常量GCSEventNames.OnTurnStarted
字符串值GCS_OnTurnStarted
载荷类型TurnEventArgs
public static IDisposable OnTurnStarted(Action<TurnEventArgs> handler);

事件参数:

名称类型说明
TurnNumberint当前战斗回合数,从 1 开始

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnTurnStarted(args => Debug.Log(args.TurnNumber));
OnEnemyTurnStarted

在以下时机触发:每个敌方阶段开始 典型用途:敌方阶段横幅与输入锁定

事件标识:

项目
常量GCSEventNames.OnEnemyTurnStarted
字符串值GCS_OnEnemyTurnStarted
载荷类型TurnEventArgs
public static IDisposable OnEnemyTurnStarted(Action<TurnEventArgs> handler);

事件参数:

名称类型说明
TurnNumberint当前战斗回合数,从 1 开始

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnEnemyTurnStarted(args => Debug.Log(args.TurnNumber));
OnTurnEnded

在以下时机触发:每个玩家回合结束 典型用途:回合结束清理与战斗日志

事件标识:

项目
常量GCSEventNames.OnTurnEnded
字符串值GCS_OnTurnEnded
载荷类型TurnEventArgs
public static IDisposable OnTurnEnded(Action<TurnEventArgs> handler);

事件参数:

名称类型说明
TurnNumberint当前战斗回合数,从 1 开始

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnTurnEnded(args => Debug.Log(args.TurnNumber));
OnDrawPhase

在以下时机触发:玩家回合进入抽牌步骤 典型用途:抽牌阶段 UI 与抽牌数量表现

事件标识:

项目
常量GCSEventNames.OnDrawPhase
字符串值GCS_OnDrawPhase
载荷类型TurnEventArgs
public static IDisposable OnDrawPhase(Action<TurnEventArgs> handler);

事件参数:

名称类型说明
TurnNumberint当前战斗回合数,从 1 开始

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnDrawPhase(args => Debug.Log(args.TurnNumber));
OnDiscardPhase

在以下时机触发:玩家回合进入弃牌步骤 典型用途:弃牌阶段 UI 与清理

事件标识:

项目
常量GCSEventNames.OnDiscardPhase
字符串值GCS_OnDiscardPhase
载荷类型TurnEventArgs
public static IDisposable OnDiscardPhase(Action<TurnEventArgs> handler);

事件参数:

名称类型说明
TurnNumberint当前战斗回合数,从 1 开始

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnDiscardPhase(args => Debug.Log(args.TurnNumber));
OnBattleEnded

在以下时机触发:战斗结算为胜利或失败 典型用途:胜利或失败表现

事件标识:

项目
常量GCSEventNames.OnBattleEnded
字符串值GCS_OnBattleEnded
载荷类型BattleEndedEventArgs
public static IDisposable OnBattleEnded(Action<BattleEndedEventArgs> handler);

事件参数:

名称类型说明
Wonbool玩家是否赢得战斗

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnBattleEnded(args => Debug.Log(args.Won));

卡牌事件

事件载荷触发时机
OnCardPlayedCardPlayedEventArgs一次出牌被接受并执行
OnCardModifiedCardModifiedEventArgs卡牌实例的运行时费用或状态发生变化
OnCardDrawnCardLifecycleEventArgs每张卡通过抽牌进入手牌
OnCardDiscardedCardLifecycleEventArgs卡牌因手牌溢出或回合结束清理被弃掉
OnCardExhaustedCardLifecycleEventArgs卡牌进入消耗牌堆
OnCardRetainedCardLifecycleEventArgs卡牌在回合结束清理时保留在手牌
OnCardAddedToHandCardLifecycleEventArgs卡牌被直接创建到手牌
OnCardAddedToDeckCardLifecycleEventArgs卡牌被直接加入抽牌堆
OnDrawPileShuffled抽牌堆完成洗牌
OnCardPlayed

在以下时机触发:一次出牌被接受并执行 典型用途:出牌动画、战斗日志与连击计数

事件标识:

项目
常量GCSEventNames.OnCardPlayed
字符串值GCS_OnCardPlayed
载荷类型CardPlayedEventArgs
public static IDisposable OnCardPlayed(Action<CardPlayedEventArgs> handler);

事件参数:

名称类型说明
CardGameCard实际打出的有效卡牌定义
InstanceIdint被打出卡牌实例的运行时 ID
TargetUnitIdint?选中目标的单位 ID;没有选定目标时为 null

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnCardPlayed(args => Debug.Log(args.Card));
OnCardModified

在以下时机触发:卡牌实例的运行时费用或状态发生变化 典型用途:刷新费用、升级或变形后的卡牌 UI

事件标识:

项目
常量GCSEventNames.OnCardModified
字符串值GCS_OnCardModified
载荷类型CardModifiedEventArgs
public static IDisposable OnCardModified(Action<CardModifiedEventArgs> handler);

事件参数:

名称类型说明
InstanceIdint发生变化的卡牌实例运行时 ID

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnCardModified(args => Debug.Log(args.InstanceId));
OnCardDrawn

在以下时机触发:每张卡通过抽牌进入手牌 典型用途:抽牌动画与手牌刷新

事件标识:

项目
常量GCSEventNames.OnCardDrawn
字符串值GCS_OnCardDrawn
载荷类型CardLifecycleEventArgs
public static IDisposable OnCardDrawn(Action<CardLifecycleEventArgs> handler);

事件参数:

名称类型说明
InstanceIdint受影响卡牌实例的运行时 ID
CardGameCard该卡牌实例当前生效的卡牌定义

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnCardDrawn(args => Debug.Log(args.InstanceId));
OnCardDiscarded

在以下时机触发:卡牌因手牌溢出或回合结束清理被弃掉 典型用途:弃牌动画与牌堆刷新

事件标识:

项目
常量GCSEventNames.OnCardDiscarded
字符串值GCS_OnCardDiscarded
载荷类型CardLifecycleEventArgs
public static IDisposable OnCardDiscarded(Action<CardLifecycleEventArgs> handler);

事件参数:

名称类型说明
InstanceIdint受影响卡牌实例的运行时 ID
CardGameCard该卡牌实例当前生效的卡牌定义

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnCardDiscarded(args => Debug.Log(args.InstanceId));
OnCardExhausted

在以下时机触发:卡牌进入消耗牌堆 典型用途:消耗动画与牌堆刷新

事件标识:

项目
常量GCSEventNames.OnCardExhausted
字符串值GCS_OnCardExhausted
载荷类型CardLifecycleEventArgs
public static IDisposable OnCardExhausted(Action<CardLifecycleEventArgs> handler);

事件参数:

名称类型说明
InstanceIdint受影响卡牌实例的运行时 ID
CardGameCard该卡牌实例当前生效的卡牌定义

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnCardExhausted(args => Debug.Log(args.InstanceId));
OnCardRetained

在以下时机触发:卡牌在回合结束清理时保留在手牌 典型用途:保留反馈与手牌刷新

事件标识:

项目
常量GCSEventNames.OnCardRetained
字符串值GCS_OnCardRetained
载荷类型CardLifecycleEventArgs
public static IDisposable OnCardRetained(Action<CardLifecycleEventArgs> handler);

事件参数:

名称类型说明
InstanceIdint受影响卡牌实例的运行时 ID
CardGameCard该卡牌实例当前生效的卡牌定义

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnCardRetained(args => Debug.Log(args.InstanceId));
OnCardAddedToHand

在以下时机触发:卡牌被直接创建到手牌 典型用途:生成卡牌的表现

事件标识:

项目
常量GCSEventNames.OnCardAddedToHand
字符串值GCS_OnCardAddedToHand
载荷类型CardLifecycleEventArgs
public static IDisposable OnCardAddedToHand(Action<CardLifecycleEventArgs> handler);

事件参数:

名称类型说明
InstanceIdint受影响卡牌实例的运行时 ID
CardGameCard该卡牌实例当前生效的卡牌定义

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnCardAddedToHand(args => Debug.Log(args.InstanceId));
OnCardAddedToDeck

在以下时机触发:卡牌被直接加入抽牌堆 典型用途:加牌反馈与牌堆刷新

事件标识:

项目
常量GCSEventNames.OnCardAddedToDeck
字符串值GCS_OnCardAddedToDeck
载荷类型CardLifecycleEventArgs
public static IDisposable OnCardAddedToDeck(Action<CardLifecycleEventArgs> handler);

事件参数:

名称类型说明
InstanceIdint受影响卡牌实例的运行时 ID
CardGameCard该卡牌实例当前生效的卡牌定义

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnCardAddedToDeck(args => Debug.Log(args.InstanceId));
OnDrawPileShuffled

在以下时机触发:抽牌堆完成洗牌 典型用途:洗牌动画与牌堆计数刷新

事件标识:

项目
常量GCSEventNames.OnDrawPileShuffled
字符串值GCS_OnDrawPileShuffled
载荷类型
public static IDisposable OnDrawPileShuffled(Action handler);

事件参数:

名称类型说明
此事件没有载荷参数

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnDrawPileShuffled(() => Debug.Log("OnDrawPileShuffled"));

单位、HP、护甲、伤害与能量事件

事件载荷触发时机
OnUnitHpChangedUnitHpChangedEventArgs单位 HP 或护甲发生变化
OnUnitDiedUnitDiedEventArgs单位死亡或从战斗中被移除
OnDamageDealtDamageEventArgs攻击者使目标损失 HP
OnDamageTakenDamageEventArgs单位因攻击或状态损失 HP
OnArmorGainedArmorChangedEventArgs单位获得护甲
OnArmorLostArmorChangedEventArgs单位失去护甲
OnEnergyChangedEnergyChangedEventArgs玩家当前能量或能量上限发生变化
OnEnergyGainedEnergyDeltaEventArgs玩家获得能量
OnEnergySpentEnergyDeltaEventArgs玩家花费能量
OnUnitHpChanged

在以下时机触发:单位 HP 或护甲发生变化 典型用途:HP 与护甲条

事件标识:

项目
常量GCSEventNames.OnUnitHpChanged
字符串值GCS_OnUnitHpChanged
载荷类型UnitHpChangedEventArgs
public static IDisposable OnUnitHpChanged(Action<UnitHpChangedEventArgs> handler);

事件参数:

名称类型说明
UnitIdint受影响单位的运行时 ID
CurrentHpint变化后的 HP
MaxHpint单位最大 HP
CurrentArmorint变化后的护甲
PreviousHpint变化前的 HP
PreviousArmorint变化前的护甲

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnUnitHpChanged(args => Debug.Log(args.UnitId));
OnUnitDied

在以下时机触发:单位死亡或从战斗中被移除 典型用途:死亡表现、奖励与目标清理

事件标识:

项目
常量GCSEventNames.OnUnitDied
字符串值GCS_OnUnitDied
载荷类型UnitDiedEventArgs
public static IDisposable OnUnitDied(Action<UnitDiedEventArgs> handler);

事件参数:

名称类型说明
UnitIdint死亡或被移除单位的运行时 ID
Tierstring创作时配置的单位层级

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnUnitDied(args => Debug.Log(args.UnitId));
OnDamageDealt

在以下时机触发:攻击者使目标损失 HP 典型用途:输出伤害日志与命中反馈

事件标识:

项目
常量GCSEventNames.OnDamageDealt
字符串值GCS_OnDamageDealt
载荷类型DamageEventArgs
public static IDisposable OnDamageDealt(Action<DamageEventArgs> handler);

事件参数:

名称类型说明
SourceUnitIdint来源单位 ID;没有单位来源时为 -1
TargetUnitIdint受伤单位的运行时 ID
Amountint经过护甲与修正后实际损失的 HP
Lethalbool这次伤害是否击杀目标

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnDamageDealt(args => Debug.Log(args.SourceUnitId));
OnDamageTaken

在以下时机触发:单位因攻击或状态损失 HP 典型用途:受击反应

事件标识:

项目
常量GCSEventNames.OnDamageTaken
字符串值GCS_OnDamageTaken
载荷类型DamageEventArgs
public static IDisposable OnDamageTaken(Action<DamageEventArgs> handler);

事件参数:

名称类型说明
SourceUnitIdint来源单位 ID;没有单位来源时为 -1
TargetUnitIdint受伤单位的运行时 ID
Amountint经过护甲与修正后实际损失的 HP
Lethalbool这次伤害是否击杀目标

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnDamageTaken(args => Debug.Log(args.SourceUnitId));
OnArmorGained

在以下时机触发:单位获得护甲 典型用途:护甲飘字与护甲条刷新

事件标识:

项目
常量GCSEventNames.OnArmorGained
字符串值GCS_OnArmorGained
载荷类型ArmorChangedEventArgs
public static IDisposable OnArmorGained(Action<ArmorChangedEventArgs> handler);

事件参数:

名称类型说明
UnitIdint受影响单位的运行时 ID
Amountint获得或失去的护甲值
CurrentArmorint变化后的护甲

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnArmorGained(args => Debug.Log(args.UnitId));
OnArmorLost

在以下时机触发:单位失去护甲 典型用途:破甲反馈

事件标识:

项目
常量GCSEventNames.OnArmorLost
字符串值GCS_OnArmorLost
载荷类型ArmorChangedEventArgs
public static IDisposable OnArmorLost(Action<ArmorChangedEventArgs> handler);

事件参数:

名称类型说明
UnitIdint受影响单位的运行时 ID
Amountint获得或失去的护甲值
CurrentArmorint变化后的护甲

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnArmorLost(args => Debug.Log(args.UnitId));
OnEnergyChanged

在以下时机触发:玩家当前能量或能量上限发生变化 典型用途:完整刷新能量 UI

事件标识:

项目
常量GCSEventNames.OnEnergyChanged
字符串值GCS_OnEnergyChanged
载荷类型EnergyChangedEventArgs
public static IDisposable OnEnergyChanged(Action<EnergyChangedEventArgs> handler);

事件参数:

名称类型说明
CurrentEnergyint变化后的玩家能量
MaxEnergyint玩家当前结算后的每回合能量上限

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnEnergyChanged(args => Debug.Log(args.CurrentEnergy));
OnEnergyGained

在以下时机触发:玩家获得能量 典型用途:获得能量反馈

事件标识:

项目
常量GCSEventNames.OnEnergyGained
字符串值GCS_OnEnergyGained
载荷类型EnergyDeltaEventArgs
public static IDisposable OnEnergyGained(Action<EnergyDeltaEventArgs> handler);

事件参数:

名称类型说明
Amountint获得或花费的能量值
CurrentEnergyint变化后的玩家能量

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnEnergyGained(args => Debug.Log(args.Amount));
OnEnergySpent

在以下时机触发:玩家花费能量 典型用途:出牌耗能反馈

事件标识:

项目
常量GCSEventNames.OnEnergySpent
字符串值GCS_OnEnergySpent
载荷类型EnergyDeltaEventArgs
public static IDisposable OnEnergySpent(Action<EnergyDeltaEventArgs> handler);

事件参数:

名称类型说明
Amountint获得或花费的能量值
CurrentEnergyint变化后的玩家能量

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnEnergySpent(args => Debug.Log(args.Amount));

状态事件

事件载荷触发时机
OnStatusChangedStatusChangedEventArgs单位的状态层数发生变化
OnStatusTickedStatusTickedEventArgs状态在回合边界进行结算
OnStatusInflictedStatusTransitionEventArgs状态被施加到单位
OnStatusExpiredStatusTransitionEventArgs状态自然衰减到 0 层
OnStatusRemovedStatusTransitionEventArgs状态被显式移除
OnStatusChanged

在以下时机触发:单位的状态层数发生变化 典型用途:刷新状态组件

事件标识:

项目
常量GCSEventNames.OnStatusChanged
字符串值GCS_OnStatusChanged
载荷类型StatusChangedEventArgs
public static IDisposable OnStatusChanged(Action<StatusChangedEventArgs> handler);

事件参数:

名称类型说明
UnitIdint受影响单位的运行时 ID
StatusGameStatus层数发生变化的状态
Stacksint变化后的层数

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnStatusChanged(args => Debug.Log(args.UnitId));
OnStatusTicked

在以下时机触发:状态在回合边界进行结算 典型用途:状态结算动画与战斗日志

事件标识:

项目
常量GCSEventNames.OnStatusTicked
字符串值GCS_OnStatusTicked
载荷类型StatusTickedEventArgs
public static IDisposable OnStatusTicked(Action<StatusTickedEventArgs> handler);

事件参数:

名称类型说明
UnitIdint受影响单位的运行时 ID
StatusGameStatus本次结算的状态
Timingstring触发本次状态结算的回合边界时机
StacksBeforeint结算前层数
StacksAfterint结算后层数
HpBeforeint结算前单位 HP
HpAfterint结算后单位 HP

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnStatusTicked(args => Debug.Log(args.UnitId));
OnStatusInflicted

在以下时机触发:状态被施加到单位 典型用途:状态施加动画

事件标识:

项目
常量GCSEventNames.OnStatusInflicted
字符串值GCS_OnStatusInflicted
载荷类型StatusTransitionEventArgs
public static IDisposable OnStatusInflicted(Action<StatusTransitionEventArgs> handler);

事件参数:

名称类型说明
UnitIdint受影响单位的运行时 ID
StatusGameStatus被施加、到期或移除的状态
Stacksint本次状态变化对应的层数
SourceUnitIdint施加者单位 ID;没有来源时为 -1

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnStatusInflicted(args => Debug.Log(args.UnitId));
OnStatusExpired

在以下时机触发:状态自然衰减到 0 层 典型用途:自然到期动画

事件标识:

项目
常量GCSEventNames.OnStatusExpired
字符串值GCS_OnStatusExpired
载荷类型StatusTransitionEventArgs
public static IDisposable OnStatusExpired(Action<StatusTransitionEventArgs> handler);

事件参数:

名称类型说明
UnitIdint受影响单位的运行时 ID
StatusGameStatus被施加、到期或移除的状态
Stacksint本次状态变化对应的层数
SourceUnitIdint施加者单位 ID;没有来源时为 -1

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnStatusExpired(args => Debug.Log(args.UnitId));
OnStatusRemoved

在以下时机触发:状态被显式移除 典型用途:净化或显式移除反馈

事件标识:

项目
常量GCSEventNames.OnStatusRemoved
字符串值GCS_OnStatusRemoved
载荷类型StatusTransitionEventArgs
public static IDisposable OnStatusRemoved(Action<StatusTransitionEventArgs> handler);

事件参数:

名称类型说明
UnitIdint受影响单位的运行时 ID
StatusGameStatus被施加、到期或移除的状态
Stacksint本次状态变化对应的层数
SourceUnitIdint施加者单位 ID;没有来源时为 -1

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnStatusRemoved(args => Debug.Log(args.UnitId));

敌人与延迟触发事件

事件载荷触发时机
OnEnemyUnitIntentChangedEnemyUnitIntentChangedEventArgs敌人解析或重新规划向玩家公开的意图
OnEnemyUnitActingEnemyUnitActingEventArgs敌人即将执行当前意图
OnEnemyUnitSummonedEnemyUnitSummonedEventArgs战斗中召唤出敌人
OnEnemyPhaseChangedEnemyPhaseChangedEventArgs敌人推进到另一个创作行为阶段
OnDelayedTriggerScheduledDelayedTriggerScheduledEventArgs跨回合效果进入队列
OnDelayedTriggerFiredDelayedTriggerFiredEventArgs排队的跨回合效果完成结算
OnDelayedTriggerCancelledDelayedTriggerCancelledEventArgs排队的跨回合效果被取消
OnEnemyUnitIntentChanged

在以下时机触发:敌人解析或重新规划向玩家公开的意图 典型用途:刷新敌人意图组件

事件标识:

项目
常量GCSEventNames.OnEnemyUnitIntentChanged
字符串值GCS_OnEnemyUnitIntentChanged
载荷类型EnemyUnitIntentChangedEventArgs
public static IDisposable OnEnemyUnitIntentChanged(Action<EnemyUnitIntentChangedEventArgs> handler);

事件参数:

名称类型说明
UnitIdint敌方单位的运行时 ID
IntentsIReadOnlyList<IntentEntry>当前向玩家公开的意图列表

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnEnemyUnitIntentChanged(args => Debug.Log(args.UnitId));
OnEnemyUnitActing

在以下时机触发:敌人即将执行当前意图 典型用途:行动前摇表现,例如突进

事件标识:

项目
常量GCSEventNames.OnEnemyUnitActing
字符串值GCS_OnEnemyUnitActing
载荷类型EnemyUnitActingEventArgs
public static IDisposable Subscribe<EnemyUnitActingEventArgs>(
string eventName,
Action<EnemyUnitActingEventArgs> handler
);

事件参数:

名称类型说明
UnitIdint正在行动敌人的运行时 ID
IntentIntentTag即将执行动作的意图类别

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.Subscribe<EnemyUnitActingEventArgs>(
GCSEventNames.OnEnemyUnitActing,
args => Debug.Log(args.UnitId)
);
OnEnemyUnitSummoned

在以下时机触发:战斗中召唤出敌人 典型用途:召唤表现与布局刷新

事件标识:

项目
常量GCSEventNames.OnEnemyUnitSummoned
字符串值GCS_OnEnemyUnitSummoned
载荷类型EnemyUnitSummonedEventArgs
public static IDisposable OnEnemyUnitSummoned(Action<EnemyUnitSummonedEventArgs> handler);

事件参数:

名称类型说明
SummonerIdint召唤者单位 ID;未提供召唤者时为 -1
SummonedUnitIdint被召唤敌人的运行时 ID
Tierstring被召唤敌人的创作层级

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnEnemyUnitSummoned(args => Debug.Log(args.SummonerId));
OnEnemyPhaseChanged

在以下时机触发:敌人推进到另一个创作行为阶段 典型用途:敌人行为阶段 UI

事件标识:

项目
常量GCSEventNames.OnEnemyPhaseChanged
字符串值GCS_OnEnemyPhaseChanged
载荷类型EnemyPhaseChangedEventArgs
public static IDisposable OnEnemyPhaseChanged(Action<EnemyPhaseChangedEventArgs> handler);

事件参数:

名称类型说明
UnitIdint行为阶段发生变化的敌方单位 ID
OldIndexint变化前的行为阶段索引
NewIndexint变化后的行为阶段索引

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnEnemyPhaseChanged(args => Debug.Log(args.UnitId));
OnDelayedTriggerScheduled

在以下时机触发:跨回合效果进入队列 典型用途:创建倒计时指示

事件标识:

项目
常量GCSEventNames.OnDelayedTriggerScheduled
字符串值GCS_OnDelayedTriggerScheduled
载荷类型DelayedTriggerScheduledEventArgs
public static IDisposable OnDelayedTriggerScheduled(Action<DelayedTriggerScheduledEventArgs> handler);

事件参数:

名称类型说明
SourceUnitIdint排队效果关联的来源单位 ID
RemainingTurnsint效果结算前剩余回合数
ActionTypeNamestring排队 Action 的运行时类型名

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnDelayedTriggerScheduled(args => Debug.Log(args.SourceUnitId));
OnDelayedTriggerFired

在以下时机触发:排队的跨回合效果完成结算 典型用途:延迟效果触发反馈

事件标识:

项目
常量GCSEventNames.OnDelayedTriggerFired
字符串值GCS_OnDelayedTriggerFired
载荷类型DelayedTriggerFiredEventArgs
public static IDisposable OnDelayedTriggerFired(Action<DelayedTriggerFiredEventArgs> handler);

事件参数:

名称类型说明
SourceUnitIdint效果关联的来源单位 ID
ActionTypeNamestring已结算 Action 的运行时类型名

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnDelayedTriggerFired(args => Debug.Log(args.SourceUnitId));
OnDelayedTriggerCancelled

在以下时机触发:排队的跨回合效果被取消 典型用途:移除倒计时指示

事件标识:

项目
常量GCSEventNames.OnDelayedTriggerCancelled
字符串值GCS_OnDelayedTriggerCancelled
载荷类型DelayedTriggerCancelledEventArgs
public static IDisposable OnDelayedTriggerCancelled(Action<DelayedTriggerCancelledEventArgs> handler);

事件参数:

名称类型说明
SourceUnitIdint被取消效果关联的来源单位 ID

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnDelayedTriggerCancelled(args => Debug.Log(args.SourceUnitId));

奖励与选择事件

事件载荷触发时机
OnBattleRewardOfferedBattleRewardOfferedEventArgs战后奖励可供玩家选择
OnBattleRewardSelectedBattleRewardSelectedEventArgs玩家应用一项奖励选择
OnBattleRewardSkipped玩家放弃当前奖励
OnEffectChoiceOfferedEffectChoiceOfferedEventArgs卡牌效果暂停并等待玩家选择
OnEffectChoiceSelectedEffectChoiceSelectedEventArgs玩家完成效果选择
OnEffectChoiceSkipped可选的效果选择被跳过
OnBattleRewardOffered

在以下时机触发:战后奖励可供玩家选择 典型用途:打开奖励选择器

事件标识:

项目
常量GCSEventNames.OnBattleRewardOffered
字符串值GCS_OnBattleRewardOffered
载荷类型BattleRewardOfferedEventArgs
public static IDisposable OnBattleRewardOffered(Action<BattleRewardOfferedEventArgs> handler);

事件参数:

名称类型说明
CardCandidatesIReadOnlyList<GameCard>卡牌奖励提供的候选卡列表

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnBattleRewardOffered(args => Debug.Log(args.CardCandidates.Count));
OnBattleRewardSelected

在以下时机触发:玩家应用一项奖励选择 典型用途:关闭奖励选择器并刷新 run deck

事件标识:

项目
常量GCSEventNames.OnBattleRewardSelected
字符串值GCS_OnBattleRewardSelected
载荷类型BattleRewardSelectedEventArgs
public static IDisposable OnBattleRewardSelected(Action<BattleRewardSelectedEventArgs> handler);

事件参数:

名称类型说明
ChoiceRewardChoice玩家选中的奖励类型
SelectedCardGameCard卡牌奖励中选中的卡;其他奖励类型为 null

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnBattleRewardSelected(args => Debug.Log(args.Choice));
OnBattleRewardSkipped

在以下时机触发:玩家放弃当前奖励 典型用途:关闭奖励选择器

事件标识:

项目
常量GCSEventNames.OnBattleRewardSkipped
字符串值GCS_OnBattleRewardSkipped
载荷类型
public static IDisposable OnBattleRewardSkipped(Action handler);

事件参数:

名称类型说明
此事件没有载荷参数

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnBattleRewardSkipped(() => Debug.Log("OnBattleRewardSkipped"));
OnEffectChoiceOffered

在以下时机触发:卡牌效果暂停并等待玩家选择 典型用途:打开 FlowGraph 选择器

事件标识:

项目
常量GCSEventNames.OnEffectChoiceOffered
字符串值GCS_OnEffectChoiceOffered
载荷类型EffectChoiceOfferedEventArgs
public static IDisposable OnEffectChoiceOffered(Action<EffectChoiceOfferedEventArgs> handler);

事件参数:

名称类型说明
PromptTextstring显示给玩家的提示文本
CandidatesIReadOnlyList<ChoiceCandidate>效果流图生成的候选项
AllowSkipbool玩家是否可以跳过这次选择

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnEffectChoiceOffered(args => Debug.Log(args.PromptText));
OnEffectChoiceSelected

在以下时机触发:玩家完成效果选择 典型用途:关闭选择器并记录选择

事件标识:

项目
常量GCSEventNames.OnEffectChoiceSelected
字符串值GCS_OnEffectChoiceSelected
载荷类型EffectChoiceSelectedEventArgs
public static IDisposable OnEffectChoiceSelected(Action<EffectChoiceSelectedEventArgs> handler);

事件参数:

名称类型说明
SelectedIndexint玩家选中的从 0 开始的候选项索引

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnEffectChoiceSelected(args => Debug.Log(args.SelectedIndex));
OnEffectChoiceSkipped

在以下时机触发:可选的效果选择被跳过 典型用途:关闭选择器

事件标识:

项目
常量GCSEventNames.OnEffectChoiceSkipped
字符串值GCS_OnEffectChoiceSkipped
载荷类型
public static IDisposable OnEffectChoiceSkipped(Action handler);

事件参数:

名称类型说明
此事件没有载荷参数

返回: IDisposable 订阅句柄,调用 Dispose() 可取消订阅

示例:

IDisposable subscription = GCSApi.OnEffectChoiceSkipped(() => Debug.Log("OnEffectChoiceSkipped"));

订阅生命周期

保存 GCSApi.On*GCSApi.Subscribe* 返回的 IDisposable,并在订阅者停用或销毁时调用 Dispose(),避免场景切换后继续收到事件

private IDisposable _subscription;

private void OnEnable()
{
_subscription = GCSApi.OnBattleEnded(args => Debug.Log(args.Won));
}

private void OnDisable()
{
_subscription?.Dispose();
_subscription = null;
}

空值约定

字段约定
CardPlayedEventArgs.TargetUnitId没有选定目标时为 null
BattleRewardSelectedEventArgs.SelectedCard非卡牌奖励时为 null
SourceUnitId / SummonerId没有对应单位来源时为 -1
IReadOnlyList 字段内置事件按非 null 列表提供

事件名与 FlowGraph 入口

图入口和 Hook(例如 On Card Played 与伤害 Hook)是 FlowGraph 内部时机,不通过事件通道广播,因此没有 GCSEventNames 常量,时机模型见 流图基础