跳到主要内容

战斗规则

GCS · Authoring

遭遇战上的九个字段决定战斗节奏:抽牌速度、能量来源、跨回合保留规则、意图显示和结算间隔。

适用于调节节奏和难度的遭遇战作者。所有字段都位于 Workbench > Encounter 的 Battle Rules 折叠区。

战斗规则挂在遭遇战上,不在玩家单位上,也不在全局配置中。两个遭遇战可以使用同一个玩家和同一批敌人,但通过不同规则形成不同节奏:一个每回合抽五张、护甲回合清零,另一个只抽三张、护甲跨回合保留。

Workbench > EncounterBattle Rules 折叠区中编辑规则。预览列会把整套规则显示为一排 chip,便于不展开字段也能读取遭遇战节奏:

Workbench 的 Encounter 模式:检视器里的 Battle Rules 折叠区,以及预览里对应的规则 chip(Hand 5、Draw 5、Hand Max 10、Energy 0、Reward 3、Armor、Discard、Intent、AnimGap)


九条规则

规则默认值含义
Starting Hand Size5战斗开始时抽的牌数。最小 0
Draw Per Turn5从第二回合起,每回合开始时抽的牌数。最小 0
Max Hand Size10手牌上限。回合抽牌装不下的部分直接弃掉;抽牌效果则提前打住。最小 1
Starting Energy0每回合能量补满值的覆盖项。0 表示用玩家单位的 Base Energy。
Card Reward Count3胜利后提供的候选卡数量。小于 1 的值运行时一律按 1 处理;想关掉奖励,去掉 Reward Deck。
Armor DecayResetOnTurnStartResetOnTurnStart 在每个单位自己的回合开始时清空其护甲;Persist 保留。
Hand DiscardDiscardOnTurnEndDiscardOnTurnEnd 在玩家回合结束时弃掉手牌(带 Retain 的卡留下);Persist 带到下回合。
Enemy Intent DisplayFull玩家能看到敌人下一步的多少信息:HiddenIconOnlyFull
Animation Gap0.28结算步骤之间的停顿,单位秒。最小 0

这些是玩法规则,不是视觉偏好。打开遭遇战后,预览 chip 应能说明这场战斗的基本节奏。从 The Threshing Field 到 Pyre of the Ash-King,演示项目的十二场遭遇战都使用这套默认值;难度来自阵容和行为图,而不是规则改动。

遭遇战预览中的默认规则 chip:Hand 5、Draw 5、Hand Max 10、Energy 0、Reward 3、护甲回合开始重置、回合结束弃手牌、完整意图显示、0.28 秒动画间隔


抽牌与手牌

三个字段是一套系统:

字段它回答的设计问题
Starting Hand Size第一回合玩家手里有几个选项?
Draw Per Turn之后每回合补充多少新选项?
Max Hand Size玩家最多能囤到多少张,再抽就抽不进来?

这些字段在运行时的实际表现如下:

  • 第一回合只发 Starting Hand Size 张牌;Draw Per Turn 从第二回合才开始。
  • Innate 关键词的卡会优先进入开局抽牌。
  • 抽到一半抽牌堆见底时,弃牌堆会自动洗回抽牌堆。
  • 超过 Max Hand Size 的牌无法进入手牌,但两条抽牌路径的溢出方式不同。回合抽牌(Starting Hand Size 和 Draw Per Turn)会把装不下的牌从抽牌堆直接翻进弃牌堆,并触发每张卡的弃牌触发器。Draw Cards 效果会提前停止,剩余牌留在抽牌堆中。
  • 直接添加到手牌的卡(例如 Add Cards 节点)同样受上限约束;满手时会进入弃牌堆。
状态可以扭这些数字

状态行为可以通过 Draw Count Hook 入口修改每次抽牌数量,通过 Hand Size Hook 入口修改手牌上限。局内数字与规则不一致时,先在 Monitor 中检查单位状态,再检查遭遇战规则。


能量

Starting Energy 用于让遭遇战覆盖玩家单位的基础能量。

结果
0用所选玩家单位的 Base Energy 作为每回合补满值。Pyre of the Ash-King 就是这么做的,Archmage 用他原生的 4
正数这场遭遇战改为补满到覆盖值。

能量是补满值,不是收入。每个玩家回合开始时,能量池会直接设为解析出的值;上回合未使用的能量不会保留。状态可以通过 Energy Per Turn Hook 入口调整补满值。

测试职业时建议保持 0,让玩家单位作为能量事实来源。教学关、机制关或同一遭遇战的难度变体,适合使用覆盖值。


什么能跨过回合边界

Armor DecayHand Discard 共同定义回合节奏:

护甲衰减对所有单位生效,但各自按自己的时机结算:玩家护甲在玩家回合开始时重置,每个敌人的护甲在敌方阶段轮到它行动之前重置。ResetOnTurnStart 是常见 roguelike 格挡循环,防御需要每回合重新建立;Persist 适合叠盾流设计。状态还可以通过 Armor Reset Hook 入口拦截这次重置,保留部分或全部护甲。

手牌规则在玩家回合结束时生效。DiscardOnTurnEnd 之下,除了带 Retain 关键词的卡,所有手牌进弃牌堆;Persist 之下整手牌带到下回合,手牌变成需要跨回合经营的资源。带 Ethereal 关键词的卡则无论哪条规则,回合结束一律消耗(exhaust)。

让规则和卡面文字对上

一张写着"保留到下回合"的卡,如果放进回合结束清空手牌的遭遇战,会与玩家预期冲突。无论使用哪套保留规则,都应确认本遭遇战中的卡面措辞与规则一致。


敌人意图

Enemy Intent Display 决定玩家能看到敌人下一步行动的多少。敌人在战斗开始时选定下一步动作,之后每个敌方阶段结束时再选一次;这条规则决定这次广播里有什么。

玩家看到什么
Hidden不显示意图,也不广播意图信息。
IconOnly只有意图图标,不带数值。
Full图标加数值。

Full 的数值是实时预览,不是行为图里的原始值:攻击数字会先过一遍攻击者的伤害修正和玩家自己的防御修正再显示,所以被 Weak 削弱的 Ashen Hierarch,攻击意图上显示的就是削减后的数字。

制作和验证敌人时建议保持 Full。只有当游戏设计有意隐藏信息时,才降低显示等级。


奖励

Card Reward Count 和遭遇战上的 Reward Deck 是一套系统,开关握在卡组手里:

设置胜利后提供什么
卡组有卡,数量 3三张候选卡。
卡组有卡,数量 0仍提供一张。运行时把小于 1 的数量一律按 1 处理。
没有卡组,或卡组为空一张候选卡都没有。

配置奖励卡组前,需要注意两点。条目上的 Copies 是权重:三份的条目被抽中的概率是一份的三倍。同一个条目在一次胜利中不会被提供两次,因此候选卡数量上限就是卡组条目数。

卡组本身在遭遇战的 Reward Deck 区域配置,见遭遇战创作


动画间隔

Animation Gap 是遭遇战提供给战斗表现层的节奏值,表示结算步骤之间的停顿,单位为秒。默认值 0.28 用于让伤害、状态和特效分段呈现;演示项目的每场遭遇战都使用该值。

该字段会影响整场战斗的结算节奏。数值增大后,本遭遇战中的每次结算都会变慢;如果只有某个效果节奏异常,应优先调整该效果自己的表现配置。


常见错误

症状可能原因
起手牌太少Starting Hand Size 低于预期。第一回合不会再叠加 Draw Per Turn。
抽牌效果没有增加手牌手牌已到 Max Hand Size,Draw Cards 效果提前停止,牌留在抽牌堆中。
回合开始时有牌直接进了弃牌堆手牌是满的,回合抽牌把装不下的部分弃掉了。
生成的卡进了弃牌堆效果直接塞牌时手牌是满的。
能量无视玩家单位Starting Energy 被设成了正数覆盖值。
护甲每回合都消失Armor Decay 是 ResetOnTurnStart
回合结束手牌清空Hand Discard 是 DiscardOnTurnEnd,而且这些卡没有 Retain 关键词。
数量是 0,胜利后却仍有卡运行时最少提供一张候选卡。若不提供卡牌奖励,应清空 Reward Deck。
胜利后没有奖励Reward Deck 缺失或为空。

战斗规则是遭遇战设计的一部分,预览 chip 会让它们始终可见。不要把核心战斗节奏隐藏在自定义代码中,否则内容审阅时无法直接发现。