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。舊外層欄位僅為相容讀取債,後續協定破壞牆可移除。