# 虛擬寵物系統 - 使用說明 ## 🚀 快速開始 ### 方式一:瀏覽器 Console(推薦) 1. 啟動 Nuxt 開發伺服器: ```bash npm run dev ``` 2. 打開瀏覽器,訪問:`http://localhost:3000/console-demo.html` 3. 打開開發者工具(F12 或 Cmd+Option+I),切換到 **Console** 標籤 4. 系統會自動初始化,然後你可以輸入命令: ```javascript // 查看幫助 help() // 顯示狀態 showStatus() // 啟動遊戲循環 start() // 餵食 feed(20) // 玩耍 play(15) // 祈福 pray() // 抽籤 drawFortune() ``` ### 方式二:Node.js 環境 ```bash node console-demo.js ``` ## 📁 專案結構 ``` nuxt-app/ ├── data/ # 資料配置(資料驅動) │ ├── pet-species.js # 寵物種族配置 │ ├── deities.js # 神明資料 │ ├── events.js # 事件配置 │ ├── items.js # 道具配置 │ └── fortune-lots.js # 籤詩資料 ├── core/ # 核心系統 │ ├── api-service.js # API 服務層(支援 mock/real) │ ├── pet-system.js # 寵物系統 │ ├── event-system.js # 事件系統 │ └── temple-system.js # 神明系統 ├── console-demo.js # Console 互動介面 ├── public/ │ └── console-demo.html # 瀏覽器版本 └── docs/ ├── API_STRUCTURE.md # API 端點文檔 └── USAGE.md # 本文件 ``` ## 🎮 可用命令 ### 遊戲控制 - `init()` - 初始化系統 - `start()` - 啟動遊戲循環(每 3 秒 tick,每 10 秒檢查事件) - `stop()` - 停止遊戲循環 - `showStatus()` - 顯示當前寵物狀態 ### 寵物互動 - `feed(amount)` - 餵食(預設 +20 飢餓) - `play(amount)` - 玩耍(預設 +15 快樂,+0.5 敏捷) - `clean()` - 清理便便(+10 快樂) - `heal(amount)` - 治療(預設 +20 健康,可治癒疾病) - `sleep()` - 睡覺/起床(睡覺時 +5 健康) ### 事件系統 - `triggerEvent(eventId)` - 手動觸發事件(測試用) - `listEvents()` - 查看所有可用事件 - `history()` - 查看事件歷史記錄 - `applyBuffs()` - 手動應用 Buff(通常自動執行) ### 神明系統 - `pray()` - 祈福(每日上限 3 次,+5 好感度) - `drawFortune()` - 抽籤(獲得 Buff) - `switchDeity(deityId)` - 切換神明('mazu', 'earthgod', 'yuelao', 'wenchang', 'guanyin') - `listDeities()` - 查看所有神明及其好感度 ## 🔌 API 整合 ### 切換到真實 API 在 `console-demo.js` 或使用時修改: ```javascript import { ApiService } from './core/api-service.js' const apiService = new ApiService({ useMock: false, // 切換到真實 API baseUrl: 'https://your-api-domain.com/api', mockDelay: 0 }) ``` ### API 端點結構 詳見 `docs/API_STRUCTURE.md`,包含: - 寵物狀態相關端點 - 事件系統端點 - Buff 系統端點 - 神明系統端點 - 籤詩系統端點 - 道具系統端點 ## 📊 資料結構 ### PetState(寵物狀態) ```javascript { speciesId: 'tinyTigerCat', stage: 'baby', hunger: 80, happiness: 60, health: 100, weight: 500, ageSeconds: 0, str: 0, int: 0, dex: 0, luck: 15, isSleeping: false, isSick: false, isDead: false, currentDeityId: 'mazu', deityFavors: { mazu: 20, ... }, dailyPrayerCount: 0, buffs: [], inventory: [] } ``` ### GameEvent(事件配置) ```javascript { id: 'lucky_find', type: 'good', weight: 0.3, condition: (state) => state.happiness > 50, effects: [ { type: 'modifyStats', payload: { happiness: +10 } }, { type: 'addBuff', payload: { ... } } ] } ``` ### Buff(Buff 效果) ```javascript { id: 'fortune', name: '福運加持', durationTicks: 5, flat: { hunger: -10 }, // 固定值加成 percent: { luck: 0.2 } // 百分比加成 } ``` ## 🎯 核心機制 ### Tick 循環 - 每 3 秒執行一次 - 自動衰減:飢餓 -5%,快樂 -8% - 便便機率:2% - 生病機率:1% ### 事件觸發 - 每 10 秒檢查一次 - 10% 機率觸發 - 依權重隨機選擇事件 - 檢查條件函數 - 執行效果(修改屬性、添加 Buff 等) ### Buff 系統 - 每 tick 自動應用 - 計算公式:`(base + flat) * (1 + percent)` - 持續時間倒數(Infinity 為永久) - 可堆疊(需設定 `stacks: true`) ### 神明系統 - 5 位神明:媽祖、土地公、月老、文昌、觀音 - 每日祈福上限 3 次 - 好感度 0-100,每 20 點一星 - 不同神明有不同 Buff 加成 ## 🛠️ 擴展開發 ### 添加新事件 編輯 `data/events.js`: ```javascript { id: 'new_event', type: 'good', weight: 0.2, condition: (state) => state.luck > 20, effects: [ { type: 'modifyStats', payload: { luck: +5 } }, { type: 'logMessage', payload: '新事件觸發!' } ] } ``` ### 添加新道具 編輯 `data/items.js`: ```javascript newItem: { id: 'new_item', name: '新道具', type: 'consumable', effects: { modifyStats: { health: +30 } }, description: '恢復健康' } ``` ### 添加新神明 編輯 `data/deities.js`: ```javascript { id: 'new_deity', name: '新神明', personality: '個性描述', buffs: { gameSuccessRate: 0.15 }, buffDescriptions: ['小遊戲 +15%'], dialogues: ['對話 1', '對話 2'], icon: 'deity-new' } ``` ## 🐛 除錯技巧 1. **查看狀態**:`showStatus()` 2. **查看事件歷史**:`history()` 3. **手動觸發事件**:`triggerEvent('lucky_find')` 4. **檢查 Buff**:`eventSystem.getBuffManager().getActiveBuffs()` 5. **檢查 API 模式**:`apiService.useMock` ## 📝 注意事項 1. **Mock 模式**:資料儲存在 `localStorage`,刷新頁面會保留 2. **API 同步**:所有狀態更新都會嘗試同步到 API(失敗時降級到本地) 3. **事件條件**:條件函數必須返回 boolean 4. **Buff 計算**:每 tick 自動應用,無需手動呼叫(除非測試) 5. **每日限制**:祈福次數每日重置(需實作時間檢查) ## 🔮 未來擴展 - [ ] 實作真實 API 後端 - [ ] 加入認證系統(JWT) - [ ] 實作多人互動 - [ ] 加入小遊戲系統 - [ ] 實作繁殖系統 - [ ] 加入成就系統 - [ ] 實作排行榜