# 線性闖關學習系統規格 (Progressive Stage System)

## 概述
Drama Ling 的核心闖關學習機制，採用線性順序闖關設計，確保用戶循序漸進地掌握語言技能。每個劇本包含4個必須順序完成的關卡，形成完整的學習閉環。

## 📚 闖關架構

### 三層架構設計
```
13個階段 (Stage)
├── 每階段 20+ 劇本 (Script)
│   ├── 第1關：詞彙學習 (Vocabulary Learning)
│   ├── 第2關：詞彙熟悉 (Vocabulary Mastery)  
│   ├── 第2+關：口說練習特別關卡 (Speaking Practice Bonus)
│   └── 第3關：情境對話 (Situational Dialogue)
```

### 關卡順序與依賴關係
1. **第1關：詞彙學習** → 解鎖第2關
2. **第2關：詞彙熟悉** → 解鎖第2+關和第3關  
3. **第2+關：口說練習** → 可跳過的付費特別關卡
4. **第3關：情境對話** → 解鎖下一劇本第1關

### 特別關卡機制
- **第2+關可跳過**: 完成第2關後可直接進入第3關，無需通過口說練習
- **付費特別體驗**: 口說練習為可選的付費強化訓練
- **獨立獎勵系統**: 不影響主線闖關進度，但提供額外學習價值

## 🎮 主線+特別關卡機制

### 第1關：詞彙學習 (Vocabulary Learning)
**功能目的**: 透過多媒體沉浸式體驗學習劇本相關的5個核心詞彙
**關卡類型**: 免費關卡

#### 關卡內容
- [x] **沉浸式詞彙瀏覽**: 學習者依序瀏覽5個詞彙的完整學習資料
- [x] **多媒體學習體驗**: 詞彙音標、音檔、例句音檔、配圖完整呈現
- [x] **雙語境展示**: Source句子(真實語境) + Example句子(教學例句)
- [x] **直接詞彙標註**: 使用originalHighlight/exampleHighlight進行精確標註
- [x] **自由導航**: 用戶可自由前後瀏覽，無測試壓力的純學習體驗

#### 關卡介面特色
- **響應式設計**: 適配行動裝置和桌面端的完整UI
- **音檔控制**: 獨立的詞彙和例句音檔播放按鈕(純圖示設計)
- **視覺層次**: 清楚的資訊層次劃分和視覺引導
- **導航控制**: 直觀的上一個/下一個詞彙切換

#### 通關條件
- **基本要求**: 瀏覽完所有5個詞彙即視為完成
- **完成判定**: 無需測試，純粹的學習體驗導向
- **獎勵標準**: 通關自動獲得3顆星
- **資源消耗**: 完全免費，無命條消耗
- **解鎖效果**: 開啟第2關

#### 詞彙組合設計
每個劇本包含5個詞彙：
- 3個常用單字
- 1個常用片語
- 1個常用俚語

**範例組合**:
- 買菜小冒險: market, vegetables, price + "ask for a discount" + "a steal"
- 遲到的咖啡約會: coffee, late, apologize + "run into traffic" + "my bad"

### 第2關：詞彙熟悉 (Vocabulary Mastery)
**功能目的**: 加深詞彙理解，訓練語境應用能力
**關卡類型**: 免費關卡

#### 關卡內容
- [ ] **例句重組**: 從單字選取區組出示意圖的原句
- [ ] **詞彙配對**: 左邊示意圖與右邊詞彙進行配對
- [ ] **語法結構訓練**: 強化詞彙在句子中的使用

#### 通關條件
- **基本要求**: 所有配對和重組都正確
- **獎勵標準**: 通關自動獲得3顆星
- **資源消耗**: 完全免費，答錯扣1命條
- **解鎖效果**: 開啟第3關

### 第2+關：口說練習特別關卡 (Speaking Practice Bonus)
**功能目的**: 針對詞彙進行發音和流暢度訓練  
**關卡類型**: 付費特別關卡 (5鑽石)
**特別機制**: 唯一可跳過的關卡，不影響主線闖關進度

#### 關卡內容
- [ ] **詞彙例句朗讀**: 逐一展示詞彙例句，用戶朗讀
- [ ] **五維口說評分**: 使用 [口說評分系統](./speaking-evaluation-specs.md)
- [ ] **即時發音反饋**: 每個詞彙提供詳細改善建議

#### 通關條件與獎勵
- **通關條件**: 所有詞彙例句平均分數≥70分
- **獎勵階梯**:
  - 70-79分：1鑽石 + 10XP (回收部分成本)
  - 80-89分：3鑽石 + 10XP (略有虧損但有進步)
  - 90-100分：5鑽石 + 20XP (獲利且大幅經驗值)
- **解鎖效果**: 開啟第3關

#### 學習價值
- **發音精進**: 針對特定詞彙的精確發音訓練
- **記憶強化**: 透過語音輸出深化詞彙印象
- **個性化指導**: 基於五維評分的具體改善建議

### 第3關：情境對話 (Situational Dialogue)
**功能目的**: 在真實情境中綜合應用所學詞彙和語言技能
**關卡類型**: 免費關卡

#### 關卡內容
- [ ] **AI角色對話**: 與AI角色進行劇本情境對話
- [ ] **雙重任務系統**: 完成劇情意圖 + 使用指定詞彙
- [ ] **即時分析反饋**: 語法、口說、語用三維度分析

#### 通關條件
- **基本通關**: 所有意圖任務≥50%完成 + 所有詞彙至少提及一次
- **星星獲得**: 
  - ⭐ 任務星：所有意圖任務100%完成
  - ⭐ 語法星：語法錯誤率 = 0
  - ⭐ 口說星：口說平均分數 > 80
- **資源消耗**: 免費進入，失敗扣1命條
- **解鎖效果**: 開啟下一劇本第1關

## 🔒 關卡解鎖機制

### 順序解鎖規則
1. **劇本內順序**: 第1關 → 第2關 → (第2+關) → 第3關
2. **劇本間順序**: 完成第3關才能進入下一劇本
3. **階段解鎖**: 完成本階段所有劇本才能進入下一階段
4. **不可跳關**: 除第2+關外，其他關卡都必須按順序完成

### 關卡狀態管理
- **🔒 鎖定狀態**: 前置條件未滿足，顯示解鎖要求
- **⏳ 可進行狀態**: 前置條件滿足，可以開始挑戰
- **🔄 進行中狀態**: 關卡已開始但未完成
- **✅ 已完成狀態**: 關卡已通關，顯示獲得星數

### 進度保存機制
- [ ] **自動保存**: 每關完成後立即保存進度
- [ ] **斷點續玩**: 關卡中途離開可從斷點繼續
- [ ] **雲端同步**: 跨設備進度同步
- [ ] **回滾保護**: 防止進度意外丟失

## 💎 資源管理系統

### 命條系統 (Life System)
> 詳細規格請參閱 → **[共同業務規則 - 命條系統](./business-rules.md#🎮-命條系統-life-points-system)**

- **消耗機制**: 所有關卡在啟動時消耗1個命條(除第2+關)
- **用戶等級差異**: 不同用戶等級擁有不同的命條上限和恢復速度
- **額外懲罰**: 對話辱罵情形額外扣除3個命條

### 鑽石消耗
- **第2+關口說練習**: 固定消耗5鑽石
- **輔助工具**: 情境對話中的回覆協助功能
- **加速道具**: 命條回復加速、關卡重置等

## 🎯 學習進度追蹤

### 階段進度指標
- **完成劇本數**: 當前階段已完成的劇本數量
- **總關卡數**: 階段內所有關卡的完成情況
- **星級統計**: 各類型關卡獲得的星級總數
- **學習時間**: 累計學習時間和平均關卡耗時

### 個人成就系統
- **連續學習天數**: 每日至少完成1個關卡
- **完美通關**: 單劇本4關全部獲得滿星
- **詞彙大師**: 口說練習關卡高分通關
- **對話專家**: 情境對話獲得三星

## 🔄 特殊機制

### 時光關卡系統
**觸發條件**: 使用時光卷道具
**關卡來源**: 
1. 優先選擇前階段未玩過的對話訓練關卡
2. 若都玩過則隨機選擇對話訓練關卡

**獎勵機制**: 
- 成功通關照常獲得星級和經驗值
- 詞彙自動加入複習清單
- 不影響正常闖關進度

### 複習系統整合
- [ ] **自動加入**: 每關完成後詞彙自動加入複習清單
- [ ] **間隔算法**: 基於遺忘曲線的智慧複習排程
- [ ] **複習形式**: 以詞彙熟悉關卡形式進行
- [ ] **進度維護**: 複習不影響主線闖關進度

## 📊 數據追蹤需求

### 關卡表現數據
- 每關完成時間、嘗試次數、最終星級
- 詞彙學習的錯誤分布和改善軌跡
- 口說練習的五維評分趨勢
- 情境對話的意圖完成率和語用表現

### 學習行為分析
- 關卡間停留時間和跳離率
- 資源消耗模式和付費轉換率
- 輔助功能使用頻率和效果
- 長期學習留存和成就解鎖

## 🚀 技術實現要點

### 前端狀態管理
- [ ] **關卡狀態樹**: 階段→劇本→關卡的嵌套狀態管理
- [ ] **解鎖邏輯**: 前置條件檢查和UI狀態更新
- [ ] **進度可視化**: 進度條、解鎖動畫、成就提示
- [ ] **離線支持**: 關卡數據本地快取和同步機制

### 後端架構需求
- [ ] **進度服務**: 用戶闖關進度的CRUD操作
- [ ] **解鎖服務**: 關卡解鎖條件驗證和狀態更新
- [ ] **統計服務**: 學習數據收集和分析報告
- [ ] **同步服務**: 多端進度同步和衝突解決

### 數據庫設計
```sql
-- 用戶闖關進度表
user_stage_progress (
  user_id, stage_id, script_id, level_type,
  status, stars, completion_time, attempts
)

-- 關卡解鎖狀態表  
level_unlock_status (
  user_id, stage_id, script_id, level_type,
  is_unlocked, unlock_time, prerequisites_met
)

-- 學習統計表
learning_analytics (
  user_id, date, levels_completed, 
  stars_earned, time_spent, resources_used
)
```

## 📝 開發檢查清單

### 核心功能實現
- [ ] 三關+特別關卡闖關邏輯
- [ ] 關卡狀態管理和UI更新
- [ ] 進度保存和加載機制
- [ ] 資源消耗和獎勵分發
- [ ] 解鎖條件驗證

### 用戶體驗優化
- [ ] 清楚的進度指示和引導
- [ ] 流暢的關卡間切換動畫
- [ ] 直觀的鎖定狀態說明
- [ ] 及時的成就和獎勵反饋

### 性能和穩定性
- [ ] 大量關卡數據的載入優化
- [ ] 進度同步的錯誤恢復機制
- [ ] 關卡切換的內存管理
- [ ] 離線模式的數據一致性

---

**最後更新**: 2025-09-11 - 建立線性闖關學習系統規格  
**版本**: 1.0 - 初版：四關闖關機制設計  
**維護者**: Drama Ling 開發團隊
**相關文檔**: 
- [口說評分系統](./speaking-evaluation-specs.md)
- [語用分析系統](./pragmatic-analysis-specs.md)
- [AI算法規格](./ai-algorithm-specs.md)