Skip to content

feat: 體驗第二波 + 全面抓蟲 — 設定/回饋、成果保留、搶修、內容查核修正 - #114

Merged
dofliu merged 11 commits into
mainfrom
claude/screen-loading-after-update-1wnuss
Jul 2, 2026
Merged

feat: 體驗第二波 + 全面抓蟲 — 設定/回饋、成果保留、搶修、內容查核修正#114
dofliu merged 11 commits into
mainfrom
claude/screen-loading-after-update-1wnuss

Conversation

@dofliu

@dofliu dofliu commented Jul 2, 2026

Copy link
Copy Markdown
Owner

「更好玩、更吸引學生」+「細節/bug/操作邏輯/事件/案例/互動」的自主精進與全面查核。

A. 體驗與設定

  • 遊戲內「減少動態」開關(個人檔案):影片改靜態圖、停用動畫;跟隨系統偏好+可手動開啟。
  • 完工獎勵 toast連對里程碑 🔥TopBar 預算增減變色;Toaster 改佇列(通知不再互相蓋掉)。
  • 教學步驟文案修正(登船步驟不再假設海象平穩)。

B. 玩法深度

  • ♻ 半途成果保留(#carry):審慎返港保留診斷/SOP 進度;母港工單/登船/出海預估/莉莉提示全鏈路呈現。
  • ⚡ 加班搶修(#rush):窗吃緊時「快 vs 穩」三選一(耗時減半、25% 近失風險)。

C. 抓蟲 — 操作邏輯/UI

  • 刷分漏洞:dSafety 負值可把安全事件打成負數 → 反向加分;夾 0。
  • 「返航改期」原計安全事件(懲罰審慎決策)→ 改走 REPLAN_RETURN。
  • saveRepairmisses → 復盤低估答錯數;效果標籤「安全 +-1」→「⚠ 安全事件 ±N」;營運中心補 🔥 回饋。

D. 抓蟲 — 內容系統(事件/案例/任務全查核)

  • 每日任務白拿:維持型(3/6 種)roll 當下即發獎 → 新增 deferred 日結算(撐過一整天才算);修重複通知。
  • 備品誤植:sensor 誤耗碳刷→風速計;pitch 誤耗液壓油→後備電池(quiz/SOP 本來就在教電池);Tier1 必需品展示庫存 0 修正。
  • 主線防卡:進行中工單備品於交易所永遠可見(不受 Tier 過濾)。
  • 案例誤植:cs_blade_bonding「正解」誤計 1 次安全事件 → 移除;成就 safety_clean 防禦性 <=0
  • 重複題:移除 3 組雙倍抽中率的重複任務模板。
  • 查核亦確認乾淨:quiz 索引/跨檔 id/i18n/Tier 閘門/派工守衛/事件權重/案例去重。

已知未動(需設計決定):bearing 類共用 pitch_bearing 備品(Tier 閘門取捨)、crew_shortage/strike 事件僅影響展示用 techAvail(建議改接疲勞或派工檢查)。

驗證

  • npm run typecheck ✅ / npm test154 passed ✅ / npm run build
  • npm run sim:passive ≪ active ≪ full-crew 梯度健康 / npm run stress:後端契約維持 ✅

🤖 Generated with Claude Code

claude added 11 commits July 2, 2026 02:07
設定(無障礙):
- useReducedMotion 支援 localStorage 手動覆寫(+body class 讓 CSS 停用
  動畫規則同步生效);開機同步、事件通知即時切換。
- 個人檔案新增「🎬 減少動態」開關:影片改靜態圖、停用動畫;預設跟隨
  系統偏好,教室/無法改 OS 設定的裝置可手動開啟。

即時回饋(juice):
- 完工跳出「💰 +◎獎勵 ⭐ +XP」toast,強化成就感。
- 診斷連對 3 題與每 5 題跳 🔥 里程碑慶祝。
- TopBar 預算增減短暫變色(綠=進帳/紅=支出);純顏色變化,減少動態下也安全。

151 tests / typecheck / build 全綠。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NF4jqbu1VJU5iS4pHEeDrn
- REPLAN_RETURN 改為「保留」已完成的診斷與 SOP 步驟(工作交接紀錄):
  擇日再出海只需重新登塔、重擲作業窗續修。被迫撤離(FAIL_REPAIR)維持
  進度全失+計安全事件 → 明確獎勵「及時止損」勝過「硬撐到窗關」。
- 登船畫面顯示「♻ 上次進度已保留(診斷/SOP n/m)」。
- 出海前工期預估只算「剩餘」工作(已診斷→檢查 0;SOP 只算剩餘步驟),
  並標示已保留進度 → 再出發的餘裕評估更準。
- 測試改寫涵蓋新語意(保留 pick/steps、boarded 重置、窗重擲、無安全事件;
  FAIL_REPAIR 對照全失+事件)。151 tests / typecheck / build 全綠。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NF4jqbu1VJU5iS4pHEeDrn
- 新增 RUSH_SOP action:已登塔且窗未關時,剩餘 SOP 一次趕完、
  總耗時減半(rushCost = ceil(剩餘×每步/2),下限 1);
  25%(RUSH_RISK)機率安全近失事件 → 計 safetyIncidents、扣績效。
  風險由 UI 擲骰後傳入,reducer 保持確定性(可測、fuzz 友善)。
- 僅在「維修不利」(tightWindow)時出現 —— 是緊急槓桿,不是常規最佳解;
  與「繼續作業 / 回港再規劃」並列成三選一決策:
  搶修(快、有風險) vs 續作(穩、可能窗關) vs 返港(慢、保進度)。
- 成功/出事各有工程師/工安對話回饋,把「快歸快,程序不能省」教進遊戲。
- 測試:完成/減半/事件/三守衛 + fuzz 動作池;152 tests / typecheck / build 全綠。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NF4jqbu1VJU5iS4pHEeDrn
抓蟲(操作邏輯/小細節):
- saveRepair 基底補上 misses:原本登塔/完成步驟等未帶 misses 的補丁
  會把答錯次數歸零 → 任務復盤低估答錯數。
- 浪高「返航改期」由 FAIL_REPAIR 改走 REPLAN_RETURN:不登船是「審慎
  決策」,不該被記安全事件懲罰(原邏輯懲罰安全選擇、反而鼓勵頂浪硬上,
  教學方向顛倒);按鈕文案同步更新,FAIL_REPAIR 註解釐清兩者區隔。
- 復盤 used/pctLeft 夾範圍:跨日後 windowMax 重算可能與登塔基準不同,
  避免出現負值/超過 100%。

152 tests / typecheck / build 全綠。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NF4jqbu1VJU5iS4pHEeDrn
半途成果保留(#carry)的資訊閉環:審慎返港後,母港「待處理工單」
顯示已保留的診斷/SOP 進度與「出海續修即可」提示,玩家不會誤以為
要從頭來過。152 tests / typecheck / build 全綠。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NF4jqbu1VJU5iS4pHEeDrn
小細節抓蟲:
- 任務選項效果標籤「安全 +1」其實是 safetyIncidents +1(壞事、扣績效),
  顯示卻像加分 → 改為「⚠ 安全事件 +N」,決策後果一目了然。
- 營運中心作答同樣累計連對 streak,但原本沒有回饋 → 補上與維修診斷
  一致的 🔥 徽章與里程碑 toast(3 題/每 5 題)。

152 tests / typecheck / build 全綠。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NF4jqbu1VJU5iS4pHEeDrn
- RESOLVE_TASK 的 dSafety 負值(改善安全的選項,s:-1 共 4 處)原本可把
  safetyIncidents 打成負數 → computeScore 的 −20×事件數反而變成加分,
  重複選這類選項可無限刷績效。改為 Math.max(0, ...) 夾底。
- 效果標籤同步修正:原「安全 +-1」錯誤顯示;現在正值標「⚠ 安全事件 +N」、
  負值標「安全事件 -N」(改善),符號與語意都正確。
- 新增 clamp 測試(0 夾底 / 正常遞減)。153 tests / typecheck / build 全綠。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NF4jqbu1VJU5iS4pHEeDrn
原本單一插槽:新 toast 立即取代舊的 → 完工獎勵 toast 會在 ~0.9 秒內
被「每日任務達成」通知蓋掉(FINISH_REPAIR 進日 → 每日任務隨即發獎)。
改為佇列依序各顯示 1.8 秒(上限 5 則防洪)。typecheck / build 全綠。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NF4jqbu1VJU5iS4pHEeDrn
- 動態提示:有保留進度的工單時提醒「出海續修」。
- 常駐輪播新增:作業窗吃緊三選一(繼續/搶修/返港)與 🔥 連對機制說明。
153 tests / typecheck / build 全綠。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NF4jqbu1VJU5iS4pHEeDrn
深度查核(事件/案例/任務/故障內容 × 消費端交叉驗證)後修正:

每日任務(HIGH):
- 「維持型」任務(零事件/健康度/妥善率,3/6 種)開局當下條件即真 →
  roll 的瞬間就自動發獎(白拿 ◎12-15 萬 + streak 灌水)。新增 deferred
  語意:維持型改於「隔日 roll 前」結算,撐過一整天才算達成;
  DailyTracker 先結算昨日、再擲今日(連勝判定含剛結算項)。
- 修 DailyTracker 效果重跑造成的重複音效/通知(排程去重)。

備品/故障資料(MED):
- sensor(感測器誤報)誤耗「發電機碳刷」→ 改耗「風速計」。
- pitch(變槳故障,控制側)quiz/SOP 都在講後備電池,卻誤耗「液壓油」
  → 改耗「變槳後備電池」(faults.ts 與 incidents.ts 同步;液壓根因
  另由 pitch_hyd/pitch_hydraulic_leak 負責)。
- yaw_motor/gen_brush 展示庫存 0 → 修正(Tier1 必需品看似永遠缺貨)。
- 進行中工單的必備備品「永遠可見」於交易所(即使高於目前 Tier 的
  預設過濾),主線不再卡在找不到料(m3 → pitch_bearing 案例)。

案例/任務內容:
- cs_blade_bonding_quality_escape「正解」誤植 s:1(全內容唯一
  好選項計安全事件)→ 移除;成就 safety_clean 改 <=0 防禦。
- 移除 3 組重複任務模板(b_harmonics/g_medical_evac/c_dehumidify),
  避免同題雙倍抽中率。

查核亦確認乾淨:quiz 索引、跨檔 id 引用、i18n 完整性、Tier 閘門、
派工守衛一致性、事件權重、案例去重。

154 tests(新增 deferred 結算測試)/ typecheck / build / sim 梯度健康。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NF4jqbu1VJU5iS4pHEeDrn
@dofliu dofliu changed the title feat: 遊戲體驗第二波 — 減少動態開關/即時回饋、半途成果保留、⚡加班搶修 feat: 體驗第二波 + 全面抓蟲 — 設定/回饋、成果保留、搶修、內容查核修正 Jul 2, 2026
@dofliu
dofliu marked this pull request as ready for review July 2, 2026 13:32
@dofliu
dofliu merged commit 7434194 into main Jul 2, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants