№ · BUFF 系统 CH.06.25
主页 · ⚡ Buff 系统 · 《同福客栈》Buff系统文档索引

《同福客栈》Buff系统文档索引

📅 2026-06-25 · 📦 3.1 KB · ⚡ Buff 系统 · 📝 MD 文档 🏷️ 时间🏷️ Buff🏷️ 设计

文档结构

1. 设计文档

2. 技术实现文档

3. 配置文档

Buff系统核心概念

数据结构

  1. BuffDefinition - 静态Buff定义,包含ID、名称、类型、标签、修饰符等
  2. RuntimeBuff - 运行时Buff实例,包含实例ID、堆叠数、剩余时间等
  3. BuffSnapshot - 游戏状态快照,用于Buff条件判定

核心机制

  1. 标签系统 - 通过Tags实现状态机判定,如#PeakHour#SanitationCrisis
  2. 修饰符系统 - 支持Add(固定值)、Mul(百分比)、Set(覆盖)三种运算
  3. 冲突规则 - 支持additive(叠加)、override(覆盖)、exclusive(互斥)三种模式
  4. 时间窗口 - 支持按时间段(timeOfDay)和营业阶段(businessPhase)限制

Buff生命周期

  1. 临时时长类 - 有固定持续时间,如"高峰营业"
  2. 条件触发类 - 满足条件时挂载/卸载,如"半营业状态"
  3. 永久道具类 - 永久生效,如"周目传承"

代码实现

核心文件

  • src/data/buffs/catalog.ts - Buff定义目录(15个核心Buff)
  • src/data/buffs/types.ts - TypeScript类型定义
  • src/data/buffs/configs.ts - Buff配置(4个示例配置)
  • src/utils/buffEngine.ts - Buff引擎核心实现
  • src/utils/innStatusBuffBridge.ts - 客栈状态与Buff桥接
  • src/components/BuffPanel.tsx - Buff面板UI组件

设计原则

  1. 配置化优先 - 所有Buff通过配置文件定义,避免硬编码
  2. 标签驱动 - 状态切换基于标签匹配,而非数值直接判定
  3. 防抖设计 - 临界点设置回差区间,避免频繁状态切换
  4. 势力合璧 - 特定势力好感组合触发强力Buff

参考文档