第一场战斗
运行 Fenmoss Hollow,从开局、单卡结算与敌人回合一路验证到胜利奖励
随包场景 Hunter/1-Fenmoss Hollow.unity 已经包含一场普通战斗所需的对象和内容,进入 Play Mode 后,GameCardEncounterBootstrap 会启动战斗,Battle Runtime 与 Battle Canvas 随即呈现起手、出牌、敌人回合与胜利奖励,这是确认 GCS 已正确导入并能够运行的最快路径
打开 Fenmoss Hollow 并进入 Play Mode
四个职业各自提供 Normal、Elite、Boss 三种 Demo 遭遇战,共 12 个可直接运行的场景,本次验证使用 Hunter 的普通遭遇战
Assets/TinyGiants/GameCardSystem/Demo/Scenes/Hunter/1-Fenmoss Hollow.unity
打开场景并按下 Play,GameCardEncounterBootstrap 已经引用 Fenmoss Hollow,同时启用了 Auto Start On Play,因此无需额外配置即可开始战斗,开场表现结束后,画面中应同时出现玩家与敌人、五张起手牌、3 点能量、牌堆计数和敌方意图,具体手牌、敌人 HP 与意图分支会随本次随机结果变化,其他场景对应的玩家、敌人和难度可在Demo 场景参考中查询

从起手界面确认战斗已经建立
每次开局的手牌、敌人 HP 与意图分支都可能变化,上图只展示其中一次有效结果,其中各项画面内容与配置来源的对应关系保持不变
| 画面区域 | 本次开局 | 内容与规则来源 |
|---|---|---|
| 玩家单位 | 70/70 HP,3/3 能量 | Scout 提供 70 点最大 HP、3 点基础能量与 First Hunt 初始卡组 |
| 手牌与牌堆 | 手牌 5 张,抽牌堆 12 张,弃牌堆与消耗堆均为 0 | 新运行会将 17 张初始卡组洗牌,再按遭遇战规则抽取 5 张起手牌 |
| 敌方单位 | Plague Stalker 为 16/16 HP | Fenmoss Hollow 引用该敌人,其生命会在 14 至 18 之间随机生成 |
| 敌方意图 | 紫色 Debuff 图标 | 敌人的行为图从四条加权分支中规划下一步,Full 模式显示意图图标,并在该意图提供可计算数值时一并显示 |
Fenmoss Hollow 汇总本场的玩家单位、敌人、奖励卡组与战斗规则,Scout 再把 First Hunt 初始卡组带入战斗,由卡组生成开局手牌,Plague Stalker 的行为图则在玩家行动前规划下一步,确认这些内容已经建立后,便可以根据意图选择手牌,并用 Poison Arrow 检查一次完整的出牌结算
用 Poison Arrow 完成第一次结算
Poison Arrow 的 Target 为 Single Enemy,从手牌开始拖动后会出现瞄准线,将它拖到 Plague Stalker 身上,等待敌人高亮后松开
First Hunt 会在开局随机洗牌,如果当前手牌没有 Poison Arrow,可以重新进入 Play Mode,也可以继续推进回合直至抽到这张牌
出牌成功后,敌人会受到 3 点伤害并获得 2 层 Poison,玩家能量消耗 1 点,这张牌随后进入弃牌堆

上图中的 16 → 13 HP、Poison 0 → 2、能量 3 → 2 与弃牌堆 0 → 1 来自同一次出牌请求,瞄准交互先确认选中的存活敌人,运行时再校验玩家阶段、手牌归属、卡牌状态、实际费用与 Hook,全部条件通过后,系统扣除能量并触发 OnCardPlayed,随后执行行为图,结算完成的 Poison Arrow 因为没有 Exhaust 关键词而进入弃牌堆
这些变化都可以追到 Poison Arrow 的可视化行为图

On Card Played 先把执行流交给 Deal Damage,第一组 Play Effect 随即播放命中 SFX、VFX、飘字与震屏,Change Status 接着增加 2 层 Poison,末尾的 Play Effect 再完成施毒表现,数值逻辑与战斗反馈沿着同一张图依次发生
打开 FlowGraph 窗口可以查看每个节点的参数与连接,目标选择进一步说明 Single Enemy 与行为图目标来源如何配合
如果卡牌松手后回到原位,先确认瞄准线已经落在高亮的存活敌人身上,再检查玩家阶段、实际费用、Unplayable 与 OnPlayCard、OnCardPlayable Hook,更多定位入口见创作错误
结束回合并观察状态推进
第一次出牌已经确认了单张卡的结算路径,点击 End Turn 后,GCS 会处理未保留的手牌,再把控制权交给敌人,在本次截图对应的分支中,Plague Stalker 回合开始时先承受 Poison 伤害,随后执行此前显示的 Debuff 意图并给 Scout 施加 2 层 Marked,敌方回合结束后才进入第二个玩家回合

相对于出牌后的画面,第二回合把跨阶段发生的变化集中呈现在同一张棋盘上:
| 变化 | 出牌后 | 第二回合开始 | 原因 |
|---|---|---|---|
| 敌人 HP | 13/16 | 11/16 | 两层 Poison 在该敌人回合开始时无视护甲造成 2 点伤害 |
敌人 Poison | 2 层 | 1 层 | 敌人行动完成后,PerTurn 衰减使层数减少 1 |
玩家 Marked | 0 层 | 2 层 | 本次 Debuff 意图执行了施加 2 层 Marked 的行为分支 |
| 玩家能量 | 2/3 | 3/3 | 新的玩家回合开始时按最大能量重置 |
| 抽牌堆与弃牌堆 | 12 / 1 | 7 / 5 | 回合结束时弃置其余四张手牌,新回合再抽取五张 |
这些变化按照固定的阶段顺序发生
上图把结束回合后的弃牌、状态结算、敌人行动、状态衰减与新回合准备连成一条固定顺序,Plague Stalker 会在其中的敌人规划阶段从四条加权分支选择下一步行动,另一次运行可能显示攻击、Debuff 或多段攻击图标,同为 Debuff 图标的分支也可能施加 Marked 或 Restricted
完整的阶段、抽弃牌与状态时机见战斗流程和状态生命周期,只要本次显示的意图与随后执行的行为一致,便说明敌人规划与执行路径已经正确接通
获胜并处理奖励
继续根据敌方意图安排出牌,最后一名敌人被击败后,状态机会进入 BattleWon,GCS 先完成战斗结束时机,再从 Wild Harvest 奖励池无放回抽取三个候选并打开奖励界面,本次截图得到 Volley、Perfect Shot 与 Discover,重新运行时可能出现其他候选

奖励界面会把选择交给 GameCardManager 当前持有的主卡组与能量加成,独立 Demo 场景不会把 First Hunt 初始卡组自动复制到运行态主卡组
| 选择 | 对当前运行的影响 |
|---|---|
| 任一候选卡牌 | 将所选卡牌加入运行态主卡组,首次独立运行时主卡组原本为空,因此只会新增这一张牌 |
| +1 Max Energy | 运行能量加成增加 1,后续启动的战斗会获得这点加成 |
| -1 Cost (All Cards) | 运行态主卡组内已有条目的费用修正全部减少 1,主卡组为空时不会产生费用变化,也不会修改原始卡牌资产 |
| Skip | 不改变主卡组或能量加成,直接结束本次奖励流程 |
多场 Run 需要在首战前初始化主卡组,然后地图、进度和结算 UI 便可在奖励结束后接管流程,主卡组规则见卡牌与牌堆生命周期,代码接入见事件使用指南
从随包战斗进入自定义构筑
当这场战斗能够从开局运行到奖励结束,并且 Console 没有 GCS 报错时,即可确认 Demo 在当前项目中正常运行,接下来可以进入第二场战斗,从六类自定义数据库开始创建 Ember Trial,把刚才验证过的内容关系和运行路径替换为自己的卡牌、状态、敌人与遭遇战