135 - API文档汉化 - 触发器与执行顺序
Updated 6 days ago触发器与执行顺序
本文面向需要了解不同情境下触发器调用顺序的模组开发者。
所提供的信息技术性较强且较为枯燥,默认读者已理解《邪恶冥刻》的代码运作机制。
触发器按调用顺序列出,首项为最先触发的触发器,末项为最后触发的触发器。
自定义触发器以字母I
开头并通过接口实现,其余为原版(Vanilla)触发器。
卡牌伤害
由PlayableCard.TakeDamage
、ShieldManager.TriggerBreakShield
和ShieldManager.BreakShield
处理。
带护盾的卡牌仅调用前四个列出的触发器。
触发器 | 附加说明 |
---|---|
IModifyDamageTaken |
将伤害值设置为返回值 |
IPreTakeDamage |
在护盾检查前调用 |
IShieldPreventedDamage |
仅当卡牌有护盾时调用 |
IShieldPreventedDamageInHand |
仅当卡牌有护盾时调用 作用于玩家手牌中的卡牌 |
OnTakeDamage |
作用于无护盾卡牌 |
OtherCardDealtDamage |
在 PlayableCard.Die 后调用 |
IOnOtherCardDealtDamageInHand |
作用于玩家手牌中的卡牌 |
卡牌死亡
由PlayableCard.Die
处理。
触发器 | 附加说明 |
---|---|
OnPreDeathAnimation |
|
OnOtherCardPreDeath |
|
IOnOtherCardPreDeathInHand |
作用于玩家手牌中的卡牌 |
OnOtherCardDie |
|
IOnOtherCardDieInHand |
作用于玩家手牌中的卡牌 |
抽卡
由PlayerHand.AddCardToHand
处理。
触发器 | 附加说明 |
---|---|
OnDrawn |
在卡牌加入cardsInHand 前调用 |
OnOtherCardDrawn |
在卡牌加入cardsInHand 前调用 |
IOnAddedToHand |
在卡牌加入cardsInHand 后调用 |
IOtherCardAddedToHand |
在卡牌加入cardsInHand 后调用 |
出牌
由BoardManager.TransitionAndResolveCreatedCard
、BoardManager.ResolveCardOnBoard
和BoardManager.AssignCardToSlot
处理。
触发器 | 附加说明 |
---|---|
OnOtherCardAssignedToSlot |
|
IOnCardAssignedToSlotContext |
提供新旧卡槽信息 |
IOnOtherCardAssignedToSlotInHand |
作用于玩家手牌中的卡牌 |
IOnCardAssignedToSlotNoResolve |
仅当分配卡牌已结算时调用 |
OnResolveOnBoard |
当卡牌从手牌或队列打出时调用 |
OnOtherCardResolve |
当卡牌从手牌或队列打出时调用 |
IOnOtherCardResolveInHand |
作用于玩家手牌中的卡牌 当卡牌从手牌或队列打出时调用 |
战斗阶段
由CombatPhaseManager.DoCombatPhase
、CombatPhaseManager.SlotAttackSequence
和CombatPhaseManager.SlotAttackSlot
处理。
每张攻击卡牌会调用SlotAttackSequence
,随后每次攻击行为调用SlotAttackSlot
。
触发器 | 附加说明 |
---|---|
IOnBellRun |
在DoCombatPhase 前调用 |
IOnPreSlotAttackSequence |
在SlotAttackSequence 前调用 |
IGetAttackingSlots |
将返回值加入当前攻击卡槽列表,可在方法内修改当前列表 |
ISetupAttackSequence |
用返回值替换当前目标卡槽列表 优先级为 ReplacesDefaultOpposingSlot |
IGetOpposingSlots |
将返回值加入当前目标卡槽列表,可在方法内修改当前列表 |
ISetupAttackSequence |
用返回值替换当前目标卡槽列表 优先级为 Normal |
ISetupAttackSequence |
用返回值替换当前目标卡槽列表 优先级为 BringsBackOpposingSlot |
ISetupAttackSequence |
用返回值替换当前目标卡槽列表 优先级为 PostAdditionModification |
OnSlotTargetedForAttack |
|
IModifyDirectDamage |
仅当造成直接伤害时调用 将伤害值设置为返回值 |
OnDealDamageDirectly |
|
IOnCardDealtDamageDirectly |
作用于场上所有卡牌 |
OnCardGettingAttacked |
仅当卡牌被攻击时调用 |
IPostCardGettingAttacked |
|
IOnPostSingularSlotAttackSlot |
在SlotAttackSlot 后调用 |
OnAttackEnded |
在所有卡牌完成攻击后调用 |
IOnPostSlotAttackSequence |
在SlotAttackSequence 后调用 |
消耗品
由ConsumableItemSlot.ConsumeItem
和各消耗品的ActivateSequence
处理。
触发器 | 附加说明 |
---|---|
IItemCanBeUsed |
可阻止物品使用 |
IOnItemPreventedFromUse |
当IItemCanBeUsed 阻止物品使用时调用 |
IOnPreItemUsed |
在ConsumeItem 和ActivateSequence 前调用 |
IOnPostItemUsed |
在 ConsumeItem 和ActivateSequence 后调用 |
被动属性增益
由PlayableCard.GetPassiveAttackBuffs
和PlayableCard.GetPassiveHealthBuffs
处理。
这些补丁每帧都会调用。
触发器 | 附加说明 |
---|---|
IOnCardPassiveAttackBuffs |
将攻击增益设置为返回值 |
IPassiveAttackBuffs |
将返回值累加到攻击增益 |
触发器 | 附加说明 |
---|---|
IOnCardPassiveHealthBuffs |
将生命增益设置为返回值 |
IPassiveHealthBuffs |
将返回值累加到生命增益 |
天平伤害
由LifeManager.ShowDamageSequence
处理。
触发器 | 附加说明 |
---|---|
IOnPreScalesChangedRef |
修改即将造成的伤害值与实体天平上的砝码 |
IOnPreScalesChanged |
在ShowDamageSequence 前调用 |
IOnPostScalesChanged |
在ShowDamageSequence 后调用 |
回合流程
由TurnManager.GameSequence
、TurnManager.PlayerTurn
、TurnManager.OpponentTurn
和TurnManager.DoUpkeepPhase
处理。
若对手回合被跳过,则不会调用其对应的触发器。
触发器 | 附加说明 |
---|---|
OnUpkeep |
|
IOnUpkeepInHand |
作用于玩家手牌中的卡牌 |
OnTurnEnd |
在DoCombatPhase 后调用 |
IOnTurnEndInQueue |
作用于对手队列中的卡牌 |
IOnTurnEndInHand |
作用于玩家手牌中的卡牌 |
Pages
- 0 - 邪恶冥刻模组简体中文语言包Wiki
- 100 - API文档汉化 - 首页
- 110 - API文档汉化 - 入门指南
- 120 - API文档汉化 - 卡牌
- 121 - API文档汉化 - 自定义卡牌费用系统
- 122 - API文档汉化 - 会说话的卡牌
- 123 - API文档汉化 - 自定义毛皮
- 130 - API文档汉化 - 能力
- 131 - API文档汉化 - 自定义触发器
- 132 - API文档汉化 - 自定义狙击逻辑
- 133 - API文档汉化 - 伤害护盾行为
- 134 - API文档汉化 - 卡槽修改功能
- 135 - API文档汉化 - 触发器与执行顺序
- 140 - API文档汉化 - 自定义/扩展属性
- 150 - API文档汉化 - 扬升(凯茜模组)
- 160 - API文档汉化 - 地图与遭遇战
- 170 - API文档汉化 - 对手
- 180 - API文档汉化 - 图腾
- 190 - API文档汉化 - 道具
- 1A0 - API文档汉化 - 规则书
- 1A1 - API文档汉化 - 添加自定义页面
- 1A2 - API文档汉化 - 添加文本重定向功能
- 1B0 - API文档汉化 - 本地化
- 1B0 - API文档汉化 - 声音
- 1B0 - API文档汉化 - 资产包
- 1C0 - API文档汉化 - 其他特性
- 200 - JSONLoader文档汉化 - Wiki
- 201 - JSONLoader文档汉化 - 枚举值