跳到主要内容

第一场战斗

GCS · Quick Start

运行一场 demo 遭遇战,从开局手牌、出牌结算、敌人回合到胜利奖励,确认 GCS 战斗循环正常工作。

适用于首次验证 GCS 的项目。本文不创作内容,只确认已配置的战斗可以完整运行。

GCS 自带 12 个可运行的战斗场景。理解运行时的第一步,是先运行一场已配置的 demo 遭遇战。本文使用 Hunter 的第一场遭遇战 Fenmoss Hollow,说明从进入 Play Mode 到选择胜利奖励的完整流程,并列出每一步应确认的状态。

请先完成安装与初始化。在修改内容前,先确认一场已知可用的战斗可以完整运行。

打开 demo 战斗场景

Demo 场景位于:

Assets/TinyGiants/GameCardSystem/Demo/Scenes/<Class>/<n>-<Name>.unity

四个职业文件夹(Hunter、Mage、Priest、Warrior),每个职业三个场景,按层级排列:第 1 关是普通战,第 2 关是精英战,第 3 关是 Boss 战。本文打开 Hunter/1-Fenmoss Hollow.unity;截图也来自该场景。

每个 demo 场景都已完成必要引用。搭建自定义场景时,需要准备同一组对象:

场景对象提供什么
GameCardManager战斗读取内容用的活动预设数据库
GameCardEncounterBootstrap本场景的 Default Encounter,以及 Auto Start On Play 开关
Battle UI手牌、单位、能量、意图、状态、奖励和结算 widget
玩家和敌人锚点单位在棋盘上生成的位置

场景打开后,进入 Play Mode 前,应能在 Hierarchy 中找到以上对象。


开始战斗

按下 Play。每个 demo 场景的 bootstrap 都启用了 Auto Start On Play,遭遇战会自动开始。

战斗开始时,GCS 根据遭遇战构建玩家和敌人,把初始卡组洗入抽牌堆,抽取起手手牌,触发 OnBattleStarted,为敌人生成意图,然后进入玩家阶段。棋盘应显示以下状态:

Fenmoss Hollow 战斗开始:五张起手手牌、三点能量,敌人已经亮出自己的意图


读懂棋盘

Fenmoss Hollow 的第一回合包含以下信息:手牌五张(Poison Arrow、两张 Strike、Insight、Defend),能量 3/3,抽牌堆剩 12 张,Hunter 为 70/70 HP,一个 16 HP 的敌人显示意图图标。

UI 区域告诉你什么
手牌本回合可以打出的卡牌
能量打牌消耗的资源,回合开始时补满
玩家单位你的 HP、护甲,以及身上的状态
敌方单位敌人 HP、状态,以及预告下一步行动的意图图标
牌堆计数抽牌堆、弃牌堆和消耗堆各有多少张

如果起手手牌为空,通常表示遭遇战缺少有效初始卡组,或者 manager 上缺少活动 card database。应在 Workbench 中检查内容配置。


打出一张卡

Poison Arrow 费用为 1,效果与卡面文字一致:造成 3 点伤害,附加 2 层 Poison。对敌人打出后,应看到敌人变为 13/16 HP 并获得 2 层 Poison 图标,玩家能量降为 2,弃牌堆计数变为 1。

Poison Arrow 结算后:敌人 13/16 HP 带两层 Poison,剩余两点能量,弃牌堆一张

这次出牌会执行一组固定流程:支付能量、触发 OnCardPlayed、执行卡牌行为图,并把卡牌移入弃牌堆。

卡牌是否需要选择目标,取决于卡牌定义中的 Target Mode。Poison Arrow 使用 SingleEnemyUnit,因此需要指定一个敌人:

Target Mode目标
SingleEnemyUnit选中一个敌人
AllEnemyUnits直接打出,所有存活敌人都会受影响
Self直接打出,效果落在玩家身上
None直接打出,由卡牌的行为图决定影响谁

如果一张卡拒绝打出,运行时是出于以下原因之一拦下了它:

  • 当前不是玩家阶段
  • 这张卡不在手牌堆里
  • 能量低于卡牌的实际费用(费用修正也算在内)
  • 卡牌带有 Unplayable 关键字
  • 某个状态 hook 取消了这次出牌

结束回合

按下结束回合按钮。GCS 按战斗规则和关键字弃牌或保留手牌,执行状态的回合末行为,然后进入敌人阶段:每个存活敌人执行自己的行为图,结算意图预告的行动,并生成下一回合意图。随后第二回合开始,系统抽取新的手牌。

Fenmoss Hollow 的第二回合:新的五张手牌,敌人 11/16 HP 只剩一层 Poison,玩家血条下多了一个减益图标

敌人阶段结束后,应确认三类变化:Poison 按层数造成伤害,敌人从 13 HP 降到 11 HP;Poison 层数从 2 衰减到 1;敌人行动在玩家血条下方添加了一个减益图标。牌堆计数也会更新为抽牌堆 7 张、弃牌堆 5 张。

意图是承诺

敌人头顶的图标表示它下回合的行动,通常在上一回合结束时决定。意图展示程度由遭遇战的战斗规则控制;demo 遭遇战会显示完整意图,便于围绕下一步行动做决策。


获胜并选择奖励

继续出牌直到敌人被击败。胜利后会显示奖励界面:从遭遇战奖励池抽出的三张卡牌,外加 +1 Max Energy 选项、永久的 -1 Cost (All Cards) 折扣,以及 Skip 按钮。

胜利奖励界面:Volley、Perfect Shot、Discover 三张卡,以及 +1 Max Energy、-1 Cost 和 Skip 选项

运行时会在两个时机发出事件:奖励选项出现时触发 GCSEventNames.OnBattleRewardOffered,战斗结束时由 OnBattleEnded 报告结果。战败时,该事件参数中的 Wonfalse


成功标准

以下条件全部成立时,说明战斗循环在当前项目中运行正常:

  • 遭遇战在 Play Mode 中开始,起手手牌出现
  • 费用足够的卡牌能打出,效果会改变 HP、护甲、能量和状态
  • 结束回合按钮把控制权交给敌人,意图在回合之间变化
  • 战斗能走到奖励界面或战败结算,Console 全程没有报错