SuperAPI AI 工具集

turn-system

智能体与模型

查看项目

更新于 10-16 22:43

技能介绍

Turn System 是一套用于回合制战斗的游戏设计蓝图,适用于策略与 RPG 类游戏。它的核心目标是让回合顺序计算、行动点管理、阶段管理与时间轴系统形成一个可复用的设计框架。

用途与适用场景: 该蓝图面向需要“谁先行动、能行动几次、一回合分几个阶段”的回合制玩法,常见于战术策略、回合制 RPG 以及需要确定性回放与在线对战的游戏。资料将其定位为专家级蓝图,并给出配套的 Godot(GDScript)实现示例。

主要能力:

  1. 回合顺序:提供回合管理器(turn_manager.gd,AutoLoad 形式),通过 start_combat 启动战斗、calculate_turn_order 复制参战单位并按速度排序、start_next_turn 推进到下一个单位,当一轮走完后发出 round_ended 信号并重新计算顺序。信号包括 turn_started、turn_ended、round_ended。
  2. 行动点系统:combatant.gd 中定义 max_action_points 与 current_action_points,回合开始时重置为上限,can_perform_action(cost) 判断是否足够,perform_action(cost) 在足够时扣除并返回成功,不足时返回失败而不扣除。
  3. 阶段管理:用枚举 Phase { DRAW, MAIN, END } 表示阶段,advance_phase() 通过 match 从绘制到主要到结束逐步推进,结束阶段调用 TurnManager.end_turn() 并回到绘制。
  4. 时间轴与 ATB:资料列出两个可用脚本——active_time_battle.gd 是支持异步行动的主动时间战斗(ATB)框架;timeline_turn_manager.gd 是基于时间轴的回合管理器,支持打断与同时行动。

使用方式: 资料以代码片段示意集成路径:将 turn_manager.gd 作为 AutoLoad 挂载,调用 start_combat 传入参战单位数组;单位脚本继承或包含 combatant.gd 的行动点逻辑;阶段流转由 advance_phase 驱动。整体思路是先建立回合顺序,再由行动点限制单个回合内的操作数量,最后通过阶段划分控制流程。

约束与“禁止事项”(资料明确给出):

  • 不要每次行动都重新计算回合顺序;应在每轮开始时计算一次,仅在属性变化时更新,否则会产生性能开销。
  • 速度相同时不能依赖随机顺序,必须用次级属性(如 ID、位置等)确定性地打破平局,否则回放不可复现。
  • 扣除行动点前必须先校验花费,始终在扣点前执行 can_perform_action(cost),避免负行动点被利用。
  • 不要硬编码阶段切换(如 if phase == 0: phase = 1 处理十个阶段),应使用 enum + match 或阶段处理器数组。
  • 联网游戏必须实现回合超时与默认动作,不能无限等待玩家输入,以防拖时间行为。
  • 发出 turn_ended 信号前必须先完成清理,否则监听者可能在上一个回合尚未清理时启动下一回合,造成状态损坏;应先清理再发信号。

限制与未提供信息: 资料未说明该蓝图的收费、价格、授权方式、支持的引擎版本或平台范围,也未给出完整的代码仓库结构、安装命令或实际运行效果。上述缺失事实暂未提供。