198 lines
4.7 KiB
Markdown
198 lines
4.7 KiB
Markdown
|
|
# 数据驱动配置说明
|
|||
|
|
|
|||
|
|
## ✅ 完全数据驱动
|
|||
|
|
|
|||
|
|
现在所有游戏核心参数都在 **`data/pet-species.js`** 中配置,您只需要修改这个文件就可以调整游戏体验!
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📋 配置文件位置
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
/home/daniel/playone/pet_data/data/pet-species.js
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## ⚙️ 可配置的参数
|
|||
|
|
|
|||
|
|
### 1. 系统更新间隔
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
baseStats: {
|
|||
|
|
// 系統更新間隔(毫秒)
|
|||
|
|
physiologyTickInterval: 60000, // 生理系統:60秒 (1分鐘)
|
|||
|
|
eventCheckInterval: 10000, // 事件檢查:10秒
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**快速调整示例**:
|
|||
|
|
|
|||
|
|
| 需求 | 修改值 |
|
|||
|
|
|------|--------|
|
|||
|
|
| 生理变化更慢 | `physiologyTickInterval: 120000` (2分钟) |
|
|||
|
|
| 生理变化更快 | `physiologyTickInterval: 30000` (30秒) |
|
|||
|
|
| 事件更频繁 | `eventCheckInterval: 5000` (5秒) |
|
|||
|
|
| 事件更少 | `eventCheckInterval: 20000` (20秒) |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 2. 属性衰减速率
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
// 衰減速率 (每 tick)
|
|||
|
|
hungerDecayPerTick: 0.28, // 飢餓衰減
|
|||
|
|
happinessDecayPerTick: 0.42, // 快樂衰減
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**计算公式**:
|
|||
|
|
```
|
|||
|
|
每 tick 衰减值 = 100 ÷ (目标秒数 ÷ tick间隔)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**示例**:
|
|||
|
|
- 想让饥饿 **8小时** 耗尽,tick间隔 60秒:
|
|||
|
|
```javascript
|
|||
|
|
hungerDecayPerTick: 100 ÷ (8*3600 ÷ 60) = 100 ÷ 480 = 0.208
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 3. 便便系统
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
// 便便系統
|
|||
|
|
poopChancePerTick: 0.067, // 產生機率(每 tick)
|
|||
|
|
poopHealthDamage: 3, // 每坨便便的傷害
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**快速调整示例**:
|
|||
|
|
|
|||
|
|
| 需求 | 修改值 |
|
|||
|
|
|------|--------|
|
|||
|
|
| 更少便便 | `poopChancePerTick: 0.033` (约30分钟一次) |
|
|||
|
|
| 更多便便 | `poopChancePerTick: 0.133` (约7.5分钟一次) |
|
|||
|
|
| 便便伤害降低 | `poopHealthDamage: 1.5` |
|
|||
|
|
| 便便伤害提高 | `poopHealthDamage: 6` |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 4. 惩罚系统
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
// 飢餓系統
|
|||
|
|
hungerHealthDamage: 6, // 飢餓為 0 時每 tick 扣血
|
|||
|
|
|
|||
|
|
// 生病系統
|
|||
|
|
sicknessThreshold: 40, // 健康低於此值會生病
|
|||
|
|
|
|||
|
|
// 瀕死系統
|
|||
|
|
dyingTimeSeconds: 7200, // 瀕死多久後死亡(秒)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 5. 睡眠时间表
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
sleepSchedule: {
|
|||
|
|
nightSleep: {
|
|||
|
|
startHour: 21, // 開始時間
|
|||
|
|
startMinute: 30,
|
|||
|
|
endHour: 8, // 結束時間
|
|||
|
|
endMinute: 0,
|
|||
|
|
autoSleep: true,
|
|||
|
|
randomWakeChance: 0.3 // 唤醒後隨機再睡機率
|
|||
|
|
},
|
|||
|
|
noonNap: {
|
|||
|
|
startHour: 12,
|
|||
|
|
startMinute: 0,
|
|||
|
|
endHour: 13,
|
|||
|
|
endMinute: 0,
|
|||
|
|
autoSleep: true,
|
|||
|
|
randomWakeChance: 0.3
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🎯 常见调整场景
|
|||
|
|
|
|||
|
|
### 场景 1:让游戏更轻松(适合忙碌玩家)
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
baseStats: {
|
|||
|
|
physiologyTickInterval: 120000, // 2分钟一次 tick
|
|||
|
|
hungerDecayPerTick: 0.14, // 12小时耗尽
|
|||
|
|
happinessDecayPerTick: 0.21, // 8小时耗尽
|
|||
|
|
poopChancePerTick: 0.033, // 30分钟一次
|
|||
|
|
dyingTimeSeconds: 14400, // 瀕死 4 小时
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 场景 2:让游戏更有挑战(硬核模式)
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
baseStats: {
|
|||
|
|
physiologyTickInterval: 30000, // 30秒一次 tick
|
|||
|
|
hungerDecayPerTick: 0.56, // 3小时耗尽
|
|||
|
|
happinessDecayPerTick: 0.83, // 2小时耗尽
|
|||
|
|
poopChancePerTick: 0.2, // 5分钟一次
|
|||
|
|
dyingTimeSeconds: 1800, // 瀕死 30 分钟
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 场景 3:观赏模式(几乎不用照顾)
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
baseStats: {
|
|||
|
|
physiologyTickInterval: 300000, // 5分钟一次 tick
|
|||
|
|
hungerDecayPerTick: 0.07, // 24小时耗尽
|
|||
|
|
happinessDecayPerTick: 0.14, // 12小时耗尽
|
|||
|
|
poopChancePerTick: 0.017, // 60分钟一次
|
|||
|
|
dyingTimeSeconds: 28800, // 瀕死 8 小时
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📝 修改后的操作
|
|||
|
|
|
|||
|
|
1. **保存文件** - 修改 `pet-species.js` 后保存
|
|||
|
|
2. **刷新浏览器** - 简单刷新即可(HMR 会自动加载)
|
|||
|
|
3. **重新创建宠物**(重要!)- 在控制台执行:
|
|||
|
|
```javascript
|
|||
|
|
handleDeletePet() // 删除旧宠物
|
|||
|
|
// 刷新页面创建新宠物
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## ⚠️ 注意事项
|
|||
|
|
|
|||
|
|
1. **tick 间隔改变时,记得调整衰减值**
|
|||
|
|
- 例如:从 60 秒改为 120 秒,衰减值应该 ×2
|
|||
|
|
|
|||
|
|
2. **计算公式**:
|
|||
|
|
```
|
|||
|
|
每tick衰减值 = 100 ÷ (目标小时数 × 3600 ÷ tick间隔秒数)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
3. **已有宠物不受影响**
|
|||
|
|
- 配置只对**新创建的宠物**生效
|
|||
|
|
- 已有宠物使用创建时的配置
|
|||
|
|
- 想要应用新配置需要删除重建
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🎮 目前的设置(默认值)
|
|||
|
|
|
|||
|
|
- **生理 Tick**:60秒(1分钟)
|
|||
|
|
- **事件检查**:10秒
|
|||
|
|
- **饥饿耗尽**:约 6 小时
|
|||
|
|
- **快乐耗尽**:约 4 小时
|
|||
|
|
- **便便产生**:约 15 分钟一次
|
|||
|
|
- **瀕死缓冲**:2 小时
|
|||
|
|
|
|||
|
|
配合睡眠系统(夜间 10.5h + 午休 1h),玩家每天只需照顾 **2-3 次** 即可!
|