跳轉到

D-20260726-02|禁用晶片改為逐回合規則

背景與驅動力

disallowChip 原本放在 MatchRules,Race Config 也只提供整場開關;然而多回合比賽已允許 每回合分別選擇場地、車輛、圈數與時限,晶片限制同樣是回合競速條件。既有 runtime 沒有消費 這個外層規則,形成畫面可設定但賽內技能仍可觸發的缺口。

同時,「禁用晶片」若被解讀為禁止選擇已安裝晶片的車,會迫使玩家為單一回合複製 loadout, 也混淆車輛結構合法性與賽事能力限制。

考慮過的選項

  • 保留整場 MatchRules.disallowChip:無法表達不同回合規則,且延續現有未接線缺口,棄。
  • 禁止晶片車進入受限回合:增加不必要的車庫配置負擔,也把賽事規則誤當 loadout schema,棄。
  • disallowChip 放入 RoundConfig,允許晶片車參賽並於回合 runtime 停用主動能力(採納)。

決定

  • RoundConfig.disallowChip?: boolean 是新設定與新 wire 的唯一寫入位置;MatchRules 保留作未來 整場規則容器,但新房不得再寫入外層 disallowChip
  • 舊房間若只有 matchRules.disallowChip: true,讀取時視為每個回合皆為 true;不得把舊形繼續 寫入新房或新結果。
  • 建房與本機測試都逐回合設定。Quick Match 沒有逐回合選擇時使用 standard 預設,不再產生 preferredMode: no-chip 的新請求。
  • 房主與加入者都可為各回合選擇已安裝晶片的車;遇到禁用回合只顯示警告,不把車設為 disabled。
  • 進入禁用回合後,車輛模型與已裝零件保持不變;HUD 顯示槽位但標記 disabled,UI input、 RaceLoop 與引擎事件入口都不得送入或執行 skill-trigger。被動零件的純物理幾何不移除。

後果與影響

本決策部分修訂 D-20260630-02:逐回合設定集合 增加晶片規則,但 Match/Round/Race 三層、carRotation 賽前鎖定及每回合全新世界不變。 Room、ledger 與回放資料可明確辨識每回合規則;所有輸入路徑必須共用 runtime enforcement, 不能只靠按鈕 disabled。舊外層欄位僅為相容讀取債,後續協定破壞牆可移除。