战斗机制
战斗机制提供四个核心组件:冷却管理、连击追踪、状态管理和技能执行器。你可以组合使用它们来构建自定义的战斗系统。
冷却管理
CooldownManager 为每个玩家维护按键(key)隔离的冷却计时器。
| 操作 | 说明 |
|---|---|
setCooldown | 为玩家设置指定 key 的冷却时间 |
getCooldownRemaining | 获取剩余冷却时间 |
hasCooldown | 检查是否在冷却中 |
clearCooldown | 清除指定 key 的冷却 |
冷却的 key 是自定义字符串,你可以用任意命名来区分不同的冷却类型,例如 skill.fireball、item.potion 等。
连击追踪
ComboTracker 记录玩家的连续命中次数,支持配置超时时间。
| 操作 | 说明 |
|---|---|
recordHit | 记录一次命中,返回当前连击数 |
resetCombo | 重置连击计数 |
当玩家在超时时间内没有新的命中,连击计数会自动归零。你可以根据连击数触发不同的效果,比如连击 5 次后释放终结技。
状态管理
StatusManager 管理可叠加的状态效果,每个状态有独立的持续时间和最大叠层数。
状态效果字段
| 字段 | 说明 |
|---|---|
id | 状态 ID |
name | 状态显示名称 |
stacks | 当前叠层数 |
maxStacks | 最大叠层数 |
durationMs | 持续时间(毫秒),-1 表示永久 |
metadata | 附加元数据(键值对) |
操作
| 操作 | 说明 |
|---|---|
apply | 施加状态效果,已存在则叠加层数 |
remove | 移除指定状态 |
get | 获取玩家身上的指定状态 |
clearExpired | 清除所有已过期的状态 |
技能执行器
SkillExecutor 提供五阶段的技能执行链,每个阶段可以绑定脚本或配置时间参数。
执行阶段
技能按以下顺序依次执行五个阶段:
CONDITION- 条件检查,判断技能是否可以释放WINDUP- 前摇阶段,播放蓄力动画等EXECUTE- 执行阶段,释放技能效果RECOVERY- 后摇阶段,恢复动作COOLDOWN- 进入冷却
技能定义字段
| 字段 | 说明 |
|---|---|
conditionScript | 条件检查脚本 ID,返回 false 则中止释放 |
windupTicks | 前摇时间(tick) |
executeScript | 执行阶段脚本 ID |
recoveryTicks | 后摇时间(tick) |
cooldownMs | 冷却时间(毫秒) |
提示
技能执行器会自动与冷却管理联动。cooldownMs 设置的冷却时间会在技能执行完成后自动应用到 CooldownManager。