Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions STATUS.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ name_zh: 離岸風場・運維傳說
category: edtech
progress: 100
status: active
last_updated: "2026-07-08"
next_milestone: "出海決策支援與學習迴路閉環已完成:出海前工期預估vs天氣窗(航線/登船/檢查/維修+保留餘裕,含磨耗/疲勞/擇日/缺料提醒)、審慎返港再規劃(不計安全事件)+半途成果保留(#carry)、⚡加班搶修風險抉擇(#rush,快vs穩三選一)、任務復盤星級+一句takeaway、診斷連對streak(封頂XP加成+🔥里程碑)、錯題本主動回想(檢索練習)、無障礙(減少動態:系統偏好+遊戲內開關;色覺友善雙重編碼)、戰情室SLA季末風險+母港預算續航提醒、Pages部署來源鎖定GitHub Actions(configure-pages)。內容系統全面查核與修正(事件/案例/任務/故障×消費端交叉驗證):每日任務維持型項目改日結算(deferred,修正開局白拿)、安全事件數夾0(堵刷分漏洞)、備品資料誤植修正(感測器/變槳故障)、交易所主線防卡(進行中工單備品永遠可見)、移除3組重複任務模板、案例研究資料誤植修正;判斷型任務引擎擴充至192題。先前:循序漸進難度與長線動機已完成:運維層級 Tier 系統(依進度自動推進,故障/備品/經濟壓力分層)、入門引導+UI 漸進揭露、每日任務(遊戲內日曆)、每週主題挑戰(風暴/斷料週等,綁戰情室事件池)、情境包匯入(教師自訂題組)、真實度深化(jack-up 安裝船動員前置期+計畫性定期保養)、故障/備品分層擴充(25 故障/33 備品)、真實案例研究事件(經查核的真實風場事故,具名+出處/去識別兩類,Tier 偶發+母港案例檔)。併發壓力測試通過(npm run stress);雲端後端 v2.1 加併發鎖(LockService);PWA 可安裝/離線(手機網頁並存);教師面板 CSV 匯出;營運趨勢儀表板/賽後復盤;登入畫面教師入口;存檔版本化遷移;code-split(初始包 653KB→268KB);知識點掌握度(答題正確率+弱點補強建議);HSE 科別加厚(LOTO 能量隔離/高處墜落防護/SIMOPS 同時作業,含圖鑑+鑑別診斷+戰情室事件);直升機進場與電網限電真實運維權衡判斷任務;真實/擬真案例擴充至 24 則,並可在自由營運中心任務清單以『案例演練』自然出現(略過 Tier、答後揭示 O&M 教訓並收錄圖鑑);手機直向專屬精簡版面(母港+交易所+出海+維修+所有彈窗,自動偵測裝置;PWA 快取版本化+錯誤邊界+啟動安全網防更新後空白);學習成效分析(各科別能力雷達圖 + 錯題本/維修檢討反思);母港建設視覺成長(用獲利升級碼頭/倉儲/起重機/燈塔,母港畫面隨之長大,純視覺不影響計分);新手友善漸進式揭露(Tier 1 隱藏三日預報/技師疲勞細節,Tier 2 解鎖)+ 圖鑑生活化比喻 + 戲劇性非技術事件(環團/媒體/社區/稽查)。後續延伸候選:bearing類故障備品命名/Tier重新設計、crew_shortage/strike事件實效化、掌握度同步雲端供教師端個別鑽取、獨立測驗模式(Exam Mode)、母港視覺疊到實景背景"
last_updated: "2026-07-09"
next_milestone: "出海決策支援與學習迴路閉環已完成:出海前工期預估vs天氣窗(航線/登船/檢查/維修+保留餘裕,含磨耗/疲勞/擇日/缺料提醒)、審慎返港再規劃(不計安全事件)+半途成果保留(#carry)、⚡加班搶修風險抉擇(#rush,快vs穩三選一)、任務復盤星級+一句takeaway、診斷連對streak(封頂XP加成+🔥里程碑)、錯題本主動回想(檢索練習)、無障礙(減少動態:系統偏好+遊戲內開關;色覺友善雙重編碼)、戰情室SLA季末風險+母港預算續航提醒、Pages部署來源鎖定GitHub Actions(configure-pages)。內容系統全面查核與修正(事件/案例/任務/故障×消費端交叉驗證):每日任務維持型項目改日結算(deferred,修正開局白拿)、安全事件數夾0(堵刷分漏洞)、備品資料誤植修正(感測器/變槳故障)、交易所主線防卡(進行中工單備品永遠可見)、移除3組重複任務模板、案例研究資料誤植修正;判斷型任務引擎擴充至192題。先前:循序漸進難度與長線動機已完成:運維層級 Tier 系統(依進度自動推進,故障/備品/經濟壓力分層)、入門引導+UI 漸進揭露、每日任務(遊戲內日曆)、每週主題挑戰(風暴/斷料週等,綁戰情室事件池)、情境包匯入(教師自訂題組)、真實度深化(jack-up 安裝船動員前置期+計畫性定期保養)、故障/備品分層擴充(25 故障/33 備品)、真實案例研究事件(經查核的真實風場事故,具名+出處/去識別兩類,Tier 偶發+母港案例檔)。併發壓力測試通過(npm run stress);雲端後端 v2.1 加併發鎖(LockService);PWA 可安裝/離線(手機網頁並存);教師面板 CSV 匯出;營運趨勢儀表板/賽後復盤;登入畫面教師入口;存檔版本化遷移;code-split(初始包 653KB→268KB);知識點掌握度(答題正確率+弱點補強建議);HSE 科別加厚(LOTO 能量隔離/高處墜落防護/SIMOPS 同時作業,含圖鑑+鑑別診斷+戰情室事件);直升機進場與電網限電真實運維權衡判斷任務;真實/擬真案例擴充至 24 則,並可在自由營運中心任務清單以『案例演練』自然出現(略過 Tier、答後揭示 O&M 教訓並收錄圖鑑);手機直向專屬精簡版面(母港+交易所+出海+維修+所有彈窗,自動偵測裝置;PWA 快取版本化+錯誤邊界+啟動安全網防更新後空白);學習成效分析(各科別能力雷達圖 + 錯題本/維修檢討反思);母港建設視覺成長(用獲利升級碼頭/倉儲/起重機/燈塔,母港畫面隨之長大,純視覺不影響計分);新手友善漸進式揭露(Tier 1 隱藏三日預報/技師疲勞細節,Tier 2 解鎖)+ 圖鑑生活化比喻 + 戲劇性非技術事件(環團/媒體/社區/稽查)。本輪續作(邏輯完整性):人力短缺/罷工事件實效化(缺工直接折抵戰情室「可同時開的現場作業面」effectiveJobCapOf,滿編不懲罰、下限1、遠端重啟不占名額、每日休整回復;開局改滿編30/30、戰情室顯示缺工折抵——事件從純展示變成先遠端重啟/批次搶修/靠港補人的真實取捨)、軸承備品正名(新增Tier3「傳動軸承組」drive_bearing,主軸承振動/發電機振動改指專屬備品、與Tier4主軸承全換區隔,補pitch_bearing_wear事件避免孤兒備品;見GAME_DESIGN §18)。後續延伸候選:掌握度同步雲端供教師端個別鑽取、獨立測驗模式(Exam Mode)、母港視覺疊到實景背景"
technologies:
- React
- TypeScript
Expand All @@ -16,4 +16,4 @@ outputs:
- presentation
description: "An Uncharted-Waters-style educational game for offshore wind O&M training."
description_zh: "大航海時代風格、以離岸風電運維為核心的教學遊戲。"
key_metrics: "四畫面UI+三模式背景(模擬/實境/漫畫)+俯瞰60°、192題判斷型任務引擎(7類,含直升機進場/電網限電權衡)+情境包匯入、雙層架構(計分主線+無限沙盒)、運維層級Tier循序漸進難度、每日任務(維持型日結算)+每週主題挑戰、出海決策支援(工期預估/半途成果保留/加班搶修)、25故障/33備品分層(含HSE:LOTO/墜落防護/SIMOPS)、jack-up動員+計畫保養、多風場+突發事件+安全KPI、知識點掌握度(正確率+弱點補強)+錯題本主動回想、無障礙(減少動態+色覺友善)、學號帳號+通關碼(後端驗證)+雲端為主存檔/紀錄、15項成就+個人檔案頁、教師檢視面板、雲端班級排行榜(Apps Script,併發壓測通過)、每週開放、中英雙語"
key_metrics: "四畫面UI+三模式背景(模擬/實境/漫畫)+俯瞰60°、192題判斷型任務引擎(7類,含直升機進場/電網限電權衡)+情境包匯入、雙層架構(計分主線+無限沙盒)、運維層級Tier循序漸進難度、每日任務(維持型日結算)+每週主題挑戰、出海決策支援(工期預估/半途成果保留/加班搶修)、25故障/34備品分層(含HSE:LOTO/墜落防護/SIMOPS;傳動軸承組正名)、人力短缺/罷工實效化(缺工折抵現場作業面)、jack-up動員+計畫保養、多風場+突發事件+安全KPI、知識點掌握度(正確率+弱點補強)+錯題本主動回想、無障礙(減少動態+色覺友善)、學號帳號+通關碼(後端驗證)+雲端為主存檔/紀錄、15項成就+個人檔案頁、教師檢視面板、雲端班級排行榜(Apps Script,併發壓測通過)、每週開放、中英雙語"
12 changes: 12 additions & 0 deletions docs/GAME_DESIGN.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,8 @@
| **任務復盤(星級+takeaway)+診斷連對 streak** | ✅ 已實作(見 §17)|
| **錯題本主動回想(檢索練習)** | ✅ 已實作(見 §17)`MistakeLog`|
| **無障礙(減少動態+色覺友善雙重編碼)** | ✅ 已實作(見 §17)`useReducedMotion`|
| **人力短缺/罷工實效化(缺工折抵現場作業面)** | ✅ 已實作(見 §18)`effectiveJobCapOf`|
| **軸承備品正名(傳動軸承組 T3,與主軸承全換區隔)** | ✅ 已實作(見 §18)`drive_bearing`|
| CC0 實體音樂 / 每機獨立健康度 | ⏳ 規劃中(見 §14)|

> 兩層架構:**評量層**=全班相同的主線 7 關(教師按週開放、計成績);**自由營運層**=沙盒無限判斷型任務(永遠開放、只進排行榜)。
Expand Down Expand Up @@ -244,3 +246,13 @@ scores(user_id, score, availability, generation_mwh, missions_done, day, updated
- **主線防卡**:交易所預設依 Tier 過濾備品,但進行中工單的必備備品**永遠可見**(不受過濾),避免主線卡在「找不到料」。
- **移除 3 組重複任務模板**(`b_harmonics`/`g_medical_evac`/`c_dehumidify` 與既有題重複,避免同題雙倍抽中率);`caseStudies.ts` 一則案例「正解」誤植安全事件(全內容唯一反例)已修正。

## 18. 人力短缺實效化・軸承備品正名(本輪新增)
接續 §17 的內容查核,補上兩處**邏輯完整性**缺口——把「只影響展示、不影響決策」的事件接上實際機制,並修正一組權宜共用的備品命名。

- **人力短缺/罷工事件實效化(#crew,`crewShortfallJobs`/`effectiveJobCapOf`)**:`crew_shortage`(−3)、`strike`(−6) 事件原本只調整展示用 `techAvail`,`OPS_DISPATCH`/`OPS_INSPECT` 完全不讀 → 事件承諾了後果卻不兌現。現在缺工**直接折抵「可同時開的現場作業面」**:`crewShortfallJobs = ⌈(techTotal − techAvail) / CREW_PER_JOB⌉`(`CREW_PER_JOB=4`),有效上限 `effectiveJobCapOf = max(1, jobCapOf − crewShortfallJobs)`。設計要點:
- **滿編不懲罰**:以「缺額」而非「絕對人數」計,`techAvail=techTotal` 時 shortfall=0 → 不影響任何船隊(含頂級母船);缺工愈多、可並行的作業面愈少。
- **下限 1**:極端缺工仍可派一組(短手應變),且**遠端重啟不占名額、主線工單不受此限** → 不會硬鎖遊戲;`techAvail` 每日休整 +1 逐步回復,讓「罷工」有明確的止血與恢復節奏。
- **開局滿編 30/30**(原 24/30)+ tech 升級同步 `techAvail`(+2):避免「憑空缺額」在開局或擴編後誤觸折抵。
- **戰情室透明化**(`FleetOpsModal`):新增「可出勤班組」統計;短手時顯示 👷 橫幅(`vesselCap → cap`、少 N 面)與「現場已滿」時的成因區分(人力 vs 船舶)。事件不再是純展示,而是「先遠端重啟軟故障、批次搶修、靠港補人」的真實取捨。
- **軸承備品正名(#bearing,`drive_bearing`)**:主軸承振動事件(`bearing`)與發電機振動圖鑑故障(`gen_vibration`)原本權宜共用「變槳軸承」(`pitch_bearing`)備品(規避 Tier 閘門)。新增 Tier 3 專屬備品**「傳動軸承組(發電機/主軸)」**(`drive_bearing`, ◎130 萬)並重新指派兩者——與 Tier 4「主軸承」全換(`main_bearing`)語意區隔(振動維修級 vs 重吊更換)。同時新增 `pitch_bearing_wear`(變槳軸承磨耗)事件,讓 `pitch_bearing` 備品保有真實消費端(與既有 `cs_pitch_bearing_wear` 案例研究呼應),不成孤兒。

6 changes: 3 additions & 3 deletions docs/ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
- 已查核確認乾淨:quiz 索引、跨檔 id 引用、i18n 完整性、Tier 閘門、派工守衛一致性、事件權重、案例去重。
- **Pages 部署硬化**:`deploy.yml` 新增 `actions/configure-pages`(鎖定發佈來源為 GitHub Actions,避免誤切回「Deploy from a branch」導致線上端出未 build 原始碼);`concurrency.cancel-in-progress` 改 false。

**已知留待下次的候選(需設計決定,見下方「進行中或下一步」)**:bearing 類故障共用「變槳軸承」備品的命名/Tier 取捨;`crew_shortage`/`strike` 事件目前只影響展示用 `techAvail`,尚未接入實際派工邏輯
**本輪續作已完成(原留待下次的兩項)**:bearing 類故障備品正名(新增 Tier 3「傳動軸承組」`drive_bearing`,主軸承振動/發電機振動不再權宜共用「變槳軸承」,並補 `pitch_bearing_wear` 事件避免孤兒備品);`crew_shortage`/`strike` 事件實效化(缺工直接折抵戰情室「可同時開的現場作業面」,滿編不懲罰、下限 1、可休整回復)。詳見 [GAME_DESIGN.md](GAME_DESIGN.md) §18

---

Expand Down Expand Up @@ -79,8 +79,8 @@
- **✅ 營運趨勢儀表板 / 賽後復盤** — 已完成。每次推進日累積 KPI 歷史,母港「📈 營運趨勢·賽後復盤」顯示妥善率/健康度/收入vs支出/淨額/累積發電的時間序列圖 + 期間摘要(平均/最低妥善率、總收入/支出/淨額、發電增量),作教學覆盤工具。
- **✅ 登入畫面教師入口** — 已完成。登入畫面提供教師入口(免先登入遊戲),輸入班級碼+教師碼即可開啟唯讀教師檢視。
- **✅ 出海決策支援・學習迴路收斂・無障礙**(本輪) — 見上方「本輪已完成」與 [GAME_DESIGN.md](GAME_DESIGN.md) §17。
- **bearing 類故障備品命名/Tier 重新設計** — 主軸承振動(`bearing`)與發電機軸承磨損(`gen_vibration`)目前共用「變槳軸承」(`pitch_bearing`)備品(權宜規避 Tier 閘門,見本輪查核)。建議新增一個 Tier 3「發電機/主軸軸承」備品並重新指派,需與設計者確認 Tier 平衡影響
- **crew_shortage / strike 事件實效化** — 目前這兩個事件只調整展示用 `techAvail` 數字,未接入任何派工/派船的實際限制(`OPS_DISPATCH` 不讀取此欄位)。建議接上技師疲勞加成或派工人力上限檢查,讓事件真正影響決策而非純展示
- **bearing 類故障備品命名/Tier 重新設計** — 已完成。新增 Tier 3「傳動軸承組(發電機/主軸)」(`drive_bearing`, ◎130 萬),主軸承振動(`bearing`)與發電機振動(`gen_vibration`)改指專屬備品,與 Tier 4「主軸承」全換(`main_bearing`)語意區隔;並新增 `pitch_bearing_wear`(變槳軸承磨耗)事件,讓變槳軸承備品保有真實消費端(呼應 `cs_pitch_bearing_wear` 案例)、不成孤兒。見 [GAME_DESIGN.md](GAME_DESIGN.md) §18
- **crew_shortage / strike 事件實效化** — 已完成。缺工(`techTotal − techAvail`)直接折抵戰情室「可同時開的現場作業面」(`effectiveJobCapOf = max(1, jobCapOf − ⌈缺額/CREW_PER_JOB⌉)`):滿編不懲罰(以缺額計)、下限 1(短手仍可派一組、遠端重啟不占名額、主線不受限)、每日休整回復;開局改滿編 30/30、tech 升級同步 techAvail、戰情室顯示缺工折抵。事件從純展示變成「先遠端重啟軟故障/批次搶修/靠港補人」的真實取捨。見 [GAME_DESIGN.md](GAME_DESIGN.md) §18
- **試玩微調與平衡回測** — 依 `npm run sim` 持續校正故障率/經濟手感;本輪修正備品資料與每日任務發獎時機後,建議重跑一次完整回測。
- **戰情室停機折抵「現金」收入的選項** — 目前停機已折抵淨發電;提供把戰情室層也接入售電現金的設定開關(需與設計者確認)。
- **文件持續對齊** — README / 手冊 / 攻略隨數值變動同步維護;`docs/TEST_REPORT.md`、`docs/MANUAL.zh-TW.md`、`docs/WALKTHROUGH.md` 內的測試數/任務題數等統計為較早版本快照,下次更新時一併校正為 `npm test`/`TASKS.length` 實跑值。
Expand Down
Loading
Loading