# 数据驱动配置说明

## ✅ 完全数据驱动

现在所有游戏核心参数都在 **`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 次** 即可！
