№ · BUFF 系统
CH.06.25
《同福客栈》Buff系统文档索引
文档结构
1. 设计文档
- Buff系统架构设计(V1.0) - Buff系统核心架构与状态机标签判定设计
- 经营状态与核心数值体系(V2.0) - 包含Buff联动的完整经营状态体系
2. 技术实现文档
- Buff系统实装与落地指南 - TypeScript数据结构与数值拦截计算逻辑
- Buff具体配置清单与实装细则 - 第一批核心Buff配置与BuffEngine实装代码
- Buff系统技术实现文档 - 系统架构、核心算法、扩展指南
3. 配置文档
- Buff配置索引文档 - 所有Buff配置的完整索引
- Buff配置模板 - 角色Buff(46个)与客栈Buff(8个)配置模板
- Buff系统模块文档 - Buff系统模块的详细说明
Buff系统核心概念
数据结构
- BuffDefinition - 静态Buff定义,包含ID、名称、类型、标签、修饰符等
- RuntimeBuff - 运行时Buff实例,包含实例ID、堆叠数、剩余时间等
- BuffSnapshot - 游戏状态快照,用于Buff条件判定
核心机制
- 标签系统 - 通过Tags实现状态机判定,如
#PeakHour、#SanitationCrisis - 修饰符系统 - 支持Add(固定值)、Mul(百分比)、Set(覆盖)三种运算
- 冲突规则 - 支持additive(叠加)、override(覆盖)、exclusive(互斥)三种模式
- 时间窗口 - 支持按时间段(timeOfDay)和营业阶段(businessPhase)限制
Buff生命周期
- 临时时长类 - 有固定持续时间,如"高峰营业"
- 条件触发类 - 满足条件时挂载/卸载,如"半营业状态"
- 永久道具类 - 永久生效,如"周目传承"
代码实现
核心文件
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组件
设计原则
- 配置化优先 - 所有Buff通过配置文件定义,避免硬编码
- 标签驱动 - 状态切换基于标签匹配,而非数值直接判定
- 防抖设计 - 临界点设置回差区间,避免频繁状态切换
- 势力合璧 - 特定势力好感组合触发强力Buff