战斗流程
从 Encounter 建立战场,在玩家决策与敌人 Intent 之间推进回合,直到胜利、失败或奖励结算
启动 GameEncounter 后,GCS 会根据其中的玩家、敌人、卡组和 Battle Rules 创建一场独立战斗,玩家随后通过手牌作出决策,敌人按已经公布的 Intent 行动,双方交替推进直到产生结果
上图展示了 Encounter、玩家回合、敌人回合和战斗结果之间的完整关系,初始化先建立可操作的战场,玩家与敌人阶段再循环使用这份状态;每次伤害、状态或行动结算后,GCS 都会检查战斗是否应当继续
战斗从 Encounter 开始
GameEncounter 决定本场使用的玩家角色、敌人顺序、奖励卡组和战斗规则,场景中的 GameCardManager、棋盘、手牌区和表现组件负责承载这场战斗,但不会替代 Encounter 中的内容配置
启动过程会依次产生五项可见结果:
-
根据玩家和敌人定义创建独立的单位状态
-
根据 Starting Deck 或持久 Master Deck 创建本场卡牌实例
-
按
Starting Hand Size抽取起手牌并准备初始能量 -
为存活敌人规划第一组 Intent
-
进入第一个玩家阶段,开放出牌与目标选择
这些结果可以在战场 UI 和 Game Card Monitor 中核对,定义与运行实例的区别见定义与运行实例
玩家与敌人回合交替推进
| 阶段 | 玩家看到的结果 | 主要配置来源 |
|---|---|---|
PlayerTurnStart | 护甲、能量、状态和抽牌规则完成本回合准备 | Status、Hook 与 Encounter Battle Rules |
PlayerPhase | 玩家读取战场、支付能量、选择目标并打出卡牌 | Card 字段、Card Behavior 与当前战斗状态 |
PlayerTurnEnd | 决策窗口关闭,剩余手牌和回合结束状态继续处理 | Card、Status 与 Hand Discard |
EnemyPhase | 存活敌人依次执行已公布 Intent,再规划下一次行动 | Enemy Behavior、Intent Pattern 与 Status |
起手牌在初始化阶段已经生成,因此第一个玩家回合不会再次执行常规抽牌,从第二个玩家回合开始,系统才会在 PlayerTurnStart 应用 Draw Per Turn
胜负检查与流程等待
GCS 会在卡牌、敌人行动和其他关键结算点检查胜负,满足胜利条件后进入胜利流程,玩家无法继续战斗时进入失败流程,尚未产生结果时,阶段切换只会等待 FlowGraph 明确提交的三类阻塞工作:
-
Wait按配置时长暂停当前执行路径 -
Gate等待项目表现层显式完成并释放 -
Choice等待玩家提交合法选择
普通 VFX、SFX 或界面刷新不会因为“仍在播放”而自动阻塞阶段,需要让玩法流程等待表现时,应在行为图中显式使用 Wait 或 Gate,Wait 的参数见流程节点,Gate 对阶段推进的影响见运行时概览
战斗结果
胜利会先执行战斗结束时机,再按 Encounter 的 Reward Deck 与 Card Reward Count 提供候选,奖励处理完成后才会结束战斗,失败则跳过卡牌奖励,直接结束当前战斗并把结果交给项目的失败流程