feat(starpuff): 星海終局篇 W1——四新變身、六新小怪與 L21/L23 走動關 - #886
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2788f9b595
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
2788f9b to
06aa4fc
Compare
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
收斂輪(bot review 四項待修)— head
|
| 項目 | 修正前 | 修正後 |
|---|---|---|
| L21 mid×3 | 100%/84.4s/4.67 死 | 100%/83.4s/4.67 死 |
| L23 mid×3 | 100%/85.1s/3.0 死 | 100%/94.3s/3.67 死 |
| 三軸 | L21 9.0/L23 9.2 | L21 9.0/L23 9.2(L19 9.0→L20 9.2 不倒掛) |
| L21 probe(焰化) | p50 8s/p95 30s | p50 10.7s/p95 33.9s(8 trials 零逾時) |
| L23 probe(潮化) | p50 11s/p95 26.6s | p50 10.6s/p95 25.9s(8 trials 零逾時) |
潮化收窄後 L23 表現在合理範圍(L23 危害主體為水刃/泡泡,仍屬撥開/免疫路徑;標準 mid bot 不變身故通關率不受影響);console 錯誤 0。
閘門
typecheck ✅/vitest 976 ✅/lint ✅(GameScene 收回 1200 行內)/verify-design-docs ✅/pre-push(typecheck+test+build:ratewise)✅。不自行合併,等 PM 派複審。
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 06aa4fcd7a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
複審收斂輪(Grok REQUEST_CHANGES 六項)— head
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e9b2582130
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
e9b2582 to
216f06a
Compare
第三輪收斂(Grok 功能 94 缺口)— head
|
216f06a to
b9747c5
Compare
第四輪(終審缺口)收斂 — head
|
b9747c5 to
f61aae0
Compare
第五輪(同幀競態)收斂 — head
|
- 開工活性錨:四新變身、新小怪、L21/L23 走動關 - worktree feat/starpuff-v21-w1-forms base main@11ca18696 測試:開工錨無程式變更,未執行測試 Co-authored-by: Cursor <cursoragent@cursor.com>
- TRANSFORM_FORMS 資料驅動擴七形態:焰化(焰彈/焰衝刺/熔岩爆,無防禦語彙)、 潮化(水引/泡泡盾/霜滑翔/潮環撥開)、稜化(三向碎片/反射抵銷/鏡步/彩虹光束)、 引力化(引力井/星體護衛 ×3/錨墜強化下砸);每形態語彙 ≤4 由測試守門 - 零新星味:drilly→焰、spora→潮、glowy→稜、boomy→引力映射既有味系; FORM_INTRO_LEVEL(21/23/25/27)解鎖閘以可觸及最高關派生,不動 save schema - consumeTuck 泛化為護體共用計數(入殼/泡泡盾/星體護衛);SpMode 擴七形態徽章 - aura/變身環/護體視覺/偽星彈/空中機動抽 systems/formSkills.ts(player 1195 行); 世界結算集中 starCombat.resolveTransformStrike 單點路由(GameScene 1200 行) - 潮環撥開走 overlaps 投射物分流;HUD 徽章與 e2e transformEligible 同一解鎖裁決 測試:pnpm --filter @app/starpuff test(897 綠,含四新形態資格/語彙/護體 31 案)+typecheck+lint Co-authored-by: Cursor <cursoragent@cursor.com>
- 貨櫃丁 cargo(重型 HP10、週期折返緩推、重鑽味=焰化供給)、票券蝠 ticketa (雙軌換軌俯掠 telegraph 600ms、擊殺發疾風靴加速票、疾風味)、掃描眼 scanna (鎖定 800ms 後直線光、不可吸——掩體/殼盾反制) - 泡泡機 foamy(吐漂浮泡泡使玩家上浮、潮化免疫、孢子味)、冰史萊姆 frosty (冰面滑行、擊殺分裂兩迷你體、焰系 burn 熔解不分裂)、潮汐魟 manta (扇形三水刃 telegraph 650ms、孢子味)——潮系三怪=潮化供給 - FSM 純邏輯續寫 enemyFsm.ts;AI 呈現分檔 systems/finaleEnemies.ts(1200 行閘); 掃描光/泡泡/水刃走既有 hazards 池;burn 貫通 damage/explodeStar 單一結算管線 - 圖鑑六新怪入鑑+四新形態技能頁;佔位立繪鍵 PENDING_TEXTURE_KEYS 凍結待素材車, CodexScene 缺圖回退 fx-star 剪影;v18 bot 可吸集合同步防漂移 測試:pnpm --filter @app/starpuff test(905 綠,含六新怪 FSM/telegraph/分裂 8 案)+typecheck+lint Co-authored-by: Cursor <cursoragent@cursor.com>
- L21 星港集散地:十種混編(cargo/ticketa/scanna 亮相)+三精英+週期蒸氣閥; 焰化教學——重鑽味雙供給(cargo 恆可吸+drilly)+中段練習區 3 隻貨櫃丁 - L23 冰晶潮灣:九種混編(foamy/frosty/manta 亮相)+三精英+潮汐×週期浮力柱; 潮化教學——孢子味四供給+中段練習區 3 隻孢子菇(定點留駐) - 三軸不倒掛:靜態總分 L19 9.0 → L21 9.2 → L23 9.3(接續 L20 9.2,量化工具驗算) - 進程接線:LevelId 擴 21-30、zones 十區、save LEVEL_IDS 改由 LEVELS 派生、 解鎖規則改「在編序前一關」(過渡跳號 L21→L23 自然銜接、W2 補 L22 自動收斂) - all-clear 成就語意隨 LEVELS 收斂;SEO 分區對照過渡期僅列已有魔王文案分區 測試:pnpm --filter @app/starpuff test(908 綠,含供給密度/解鎖鏈/跳號銜接新案)+typecheck+lint Co-authored-by: Cursor <cursoragent@cursor.com>
- level-audit 新增 --probe transform:形態引入關 mid bot 獵集同系味量測首次變身 p50/p95(門檻 SSOT 入 AUDIT_THRESHOLDS 30s/60s;供給味反查 FORM_BY_FLAVOR) - audit driver 走動關獵集策略:持鍵紀律(帶彈再按 B=發射會把集星射掉)、 前方優先、精英旗標跳過(elite 同 kind 不可吸、死守即逾時);__sp.enemies 補 elite 欄 - 設計面取證修正:cargo 近域 aggro 900px(供給送上門)、練習區前移至首精英門前 (開放跑道)、L21/L23 補 §67 中點 checkpoint(死亡不再全重置精英房)、 L23 練習區孢子菇叢集(範圍拒止死亡坑)換泡泡機 - 終測:L21 首次變身 p50 8s/p95 30s、L23 p50 11s/p95 26.6s(零逾時); mid bot 通關率雙 100%(85s/84s、3-4.7 死/run、console 0 錯誤); 靜態三軸 L19 9.0 → L21 9.0 → L23 9.2 接續 L20(9.2)不倒掛 測試:pnpm --filter @app/starpuff test(908 綠)+typecheck+lint+probe/標準量測各 ×8/×3 Co-authored-by: Cursor <cursoragent@cursor.com>
- GAME_DESIGN 回寫 §118 四新變身(形態總表/工程契約/觸發密度契約與實測)與 §119 新小怪與 L21/L23 走動關(六怪表/佔位鍵/進程與量測),檔頭版本 v23 - 程式註解 §111/§112 撞號修正(既有編號已至 §117):全波觸及檔改號 §118/§119 (base 零既有引用驗證後全域替換) - minor changeset:四新變身/六新怪/L21/L23 為使用者可感知新功能 測試:pnpm --filter @app/starpuff test(908 綠)+typecheck+lint+prettier Co-authored-by: Cursor <cursoragent@cursor.com>
f61aae0 to
57301f5
Compare
第六輪(收尾)— head
|
57301f5 to
b9676fe
Compare
第七輪(破圖收尾)— head
|
- 潮引改可吸目標只拉不傷:HP1 供給怪不再被先傷即殺而拉近失效(不可吸維持輕傷+未死拉近) - 潮環撥開收窄為投射物白名單(spike/reflect/boomerang/sugarblob/waterblade),區域拒止/近戰/光束照常結算 - launchStar 池重用重設 burn=false,杜絕焰彈殘留標記洩漏到一般星彈 - 三缺陷各補紅→綠回歸測試;002 改單一 commit 聚合落盤(+6,累計 +266) - 設計章節照 T7-C 拆檔重落 §119/§120/§121(02/03/04 主題檔+索引對照表與程式註解改號) 測試:vitest 976 綠、typecheck/lint/verify-design-docs 綠;L21/L23 mid×3 通關 100%、probe 零逾時 Co-authored-by: Cursor <cursoragent@cursor.com>
- 新增 core/poolFlags.ts:hazards/五魔王彈幕/星彈全部池取出點必經 resetTransientFlags 單點復位 - 根治 burn/tideDeflected/reflected/inhalable 四度重演的池回收殘留族缺陷(voidra/syrona 原全未清) - 潮引只拉不傷判準改 TIDE_PULL.pullOnlyKinds 供給味清單(isInhalable 過寬),零傷命中補碎光確認 - 稜化反射抵銷改折射銷毀不回傷(與殼化反彈語彙區辨),反彈 tint 改走形態 SSOT - 泡泡上浮免疫改顯式 bubbleImmune 欄位;撥開白名單測試補 bite/sugarspot/comettail - 池循環(撥開→回收→再命中)/潮引清單/稜化/泡泡各補紅→綠回歸測試,設計文檔 §119 邊界語意同步 測試:typecheck/lint/verify-design-docs 綠、vitest 983 綠;紅燈實證 6 案(池循環 2、潮引 2、稜化與泡泡 2) Co-authored-by: Cursor <cursoragent@cursor.com>
- 新增 acquirePooled:池取出+瞬時旗標復位一體化,全部取出點(hazards/五魔王彈幕與波柱/星彈/隕石/護衛)改接 - poolFlags 測試加原始碼靜態守門:raw pool .get 直呼即紅——「新增取出點」維度的遺漏結構性不可能 - caramel 入 POOL_TRANSIENT_FLAGS(syrona 糖漿波第五例同族洩漏);一次性旗標全量盤點與排除理由留檔 poolFlags.ts - 補齊 jellord/noctra/syrona 池循環整合測試(含 caramel 波柱復用)、prismix 擴 tideDeflected、formSkills 星池污染復用案 - rebase 至 b7cd80b:六新怪鍵併入 assetPlan SSOT、佔位鍵載入豁免(PENDING 移駐 assetPlan)、新關背景暫沿 bg-astral - 002 於 rebase 單一 commit 聚合重算(+7,累計 272=265+7);§119 文檔同步 acquirePooled 語意 測試:typecheck/lint/verify-design-docs 綠、vitest 1018 綠;突變實證 raw .get 回退被靜態守門+池循環雙網抓紅 Co-authored-by: Cursor <cursoragent@cursor.com>
- 殘影失效即離池:prismix 逐幀對帳自兩池移除 inactive 殘影、召喚時重新入池——第六例池殘留破口根治+整合測試 - 守門升級 TS 型別層 AST 檢查:Group 型別 get 存取(直呼/解構/中括號/換行/改名/Reflect)全涵蓋並自證 - 「結構上不可能」超售宣稱改為誠實邊界描述(動態規避不在涵蓋範圍) - 排除清單逐條重查:spawnHazard 參數化強制 hazardKind/lifeMs、spawn 補 inhalePull 歸位、shadow 前提證偽改對帳 - syrona doWave 補 P3 專屬池循環測試(P3 招池僅 wave 取 shockwaves,來源可證) - PENDING 三條機械鎖:與 ASSETS 互斥、必落已知回退集合、內容凍結十鍵顯式過審 測試:typecheck/lint/verify-design-docs 綠、vitest 1024 綠;突變三組全紅(殘影對帳、doWave raw get、PENDING 濫用) Co-authored-by: Cursor <cursoragent@cursor.com>
- 殘影離池對帳前移至 fsm.tick 之前+spawnShardOrbit 取出第二閘(取到殘影即離池重取) - 同幀競態測試改兩輪可重放腳本:錄 merge 精確 tick、重放至前一刻擊破殘影——雙拆紅、單閘各自綠 - inhalePull 排除文案改「幀內消費+spawn 重建歸位」並補池復用回歸鎖(Grok mutation 缺釘) - 排除清單改機制/慣例分級標示;四鍵必寫升級為測試機制、spawn 補清品種限定欄位 - AST 守門 probe 補三種自然重構缺口(斷言脫鉤/容器中轉/wrapper 收窄)為已知邊界 - 守門存續假設(tsconfig include、Group 符號名)以檔案在列斷言與 probe 直呼案鎖住 - die/段清顯式移殘影出兩池(不等下一幀對帳) 測試:typecheck/lint/verify-design-docs 綠、vitest 1027 綠;競態突變雙拆紅、A/B 單閘獨撐各綠 Co-authored-by: Cursor <cursoragent@cursor.com>
- 四鍵必寫測試改 sentinel 修法:發射前對復用池物件清空四鍵,斷言不再被上一發殘值頂替 - 拆為 launchStar/launchShot 兩案,雙側突變重跑各自紅(Grok 揭露的假信心已封) - poolFlags 機制文案同步 R6 修法;A 閘謂詞放寬為不依賴單池 contains - prismix 重複註解刪除;§119 補同幀競態與雙閘語意、決策脈絡指回 poolFlags SSOT 測試:vitest 1028 綠、typecheck/lint/verify-design-docs 綠;四鍵雙側突變紅、還原綠 Co-authored-by: Cursor <cursoragent@cursor.com>
- 四形態立繪(form)/六新怪立繪(level)/starport、tidebay 專屬橫景(level)自 assetsV21Part1 逐筆搬回 assets.ts - ENEMY_TEXTURE_KEYS 六鍵改指素材命名(cargojelly/ticketbat/scannereye/bubbler/iceslime/tideray) - 移除 starport/tidebay 的 astral 橫景別名;圖鑑 textureKey 同步改指 - PENDING_TEXTURE_KEYS 清空納回載入計畫:anti-softlock 守門對十二鍵轉為主動驗證,凍結測試改鎖空清單 - 遵循 #857 接關契約(認領條目搬回而非就地改 phase),v21 暫時 lazy 契約四測全綠 測試:vitest 1034 綠、typecheck/lint/verify-design-docs 綠;assetPlan 載入不變式與 v21 契約守門全數通過 Co-authored-by: Cursor <cursoragent@cursor.com>
- wearTexture 統一換裝入口:換圖必重算 displaySize 並回寫 vscale 基準(含 finishTransform 直寫點) - 修四新形態源尺寸不一致(768/1254 對 512 基準)的變身暴增與 hitbox 脫鉤,附修復前後截圖對照 - 破圖回歸鎖:測試替身模擬源尺寸,斷言顯示像素恆為 48(焰化/潮化/返回姿勢三路徑) - hero 立繪 512 尺寸機械鎖:零依賴 WebP 標頭解析掃主 manifest 與 v21 分檔,債務例外精確釘住 - 形態立繪依 FORM_INTRO_LEVEL 逐關載入:L1 進場卸下 292.6KiB(四檔合計與審查量測精確吻合) - 稜化/引力化立繪退回 lazy 分檔(W1 無關卡認領);§119.3 密度數字改多輪分佈如實記載 測試:vitest 1038 綠、typecheck/lint/verify-design-docs 綠;破圖突變截圖實證與 512 守門落檔 Co-authored-by: Cursor <cursoragent@cursor.com>
- fitHurtbox 併入 wearTexture:換裝以當下 frame 尺寸現算 setSize/setOffset,世界判定箱恆 36×38.4 - 修變身後 hurtbox 縮水 33%~59%(updateBounds 以凍結 sourceWidth×新 scale 重算)的隱性玩法優勢 - 回歸鎖補 body.width/height 維度:測試替身模擬 updateBounds 語意,三形態路徑全斷言(突變紅) - 星彈發射/回收管線抽離 systems/starLauncher.ts:player.ts 1200→1133 行(釋出 67 行餘裕) - 介面形狀不變,1038 案黑箱回歸網直接驗證;共用視覺常數(拖尾/自旋)單一定義匯出 - 四鍵斷言升級毒值+具體期望值(?? fallback 頂替即紅);尺寸債務表補追蹤 issue #894 測試:vitest 1038 綠、typecheck/lint/verify-design-docs 綠;hitbox 突變紅、還原綠 Co-authored-by: Cursor <cursoragent@cursor.com>
b9676fe to
fe85aa0
Compare
第八輪(hitbox 半修收尾)— head
|
- 第九輪收斂開工:處理 Grok MEDIUM——變身尺寸測試替身需真正驅動幀鉤,使移除 rebase 必紅 測試:本 commit 無程式碼變更,未執行測試 Co-authored-by: Cursor <cursoragent@cursor.com>
- makeHarness scene.events 改真實 on/off 記錄,frame.preUpdate/postUpdate 依註冊序驅動幀鉤 - 變身換裝測試補跨幀斷言:PRE_UPDATE 基準還原後(物理讀取點)顯示 px 與世界判定箱恆定 - 替身補 sprite.scene 活體標記與 chainable texture/setTexture,POST_UPDATE 剪影鏡像全程可駛 - mutation 實證:移除 rebase 紅(72/117.56 vs 48)、移除 fitHurtbox 紅(24/14.7 vs 36),還原全綠 - 002 補第九輪條目與檔頭聚合值(+1,累計 +299) 測試:pnpm --filter @app/starpuff test 1038 綠;pnpm typecheck、pnpm lint 綠 Co-authored-by: Cursor <cursoragent@cursor.com>
- 收斂 AGT-LOG-03 單一 002 commit:檔頭反映 PR 對 main 的聚合淨變化 - 34 筆條目 = 守門移植攻防+審查收斂+#857 事故+收斂輪強化+複審補洞 - rebase 至 #886 後的 main:雙方條目時間序全保留零刪除,基準累計 299 - 檔頭聚合:+20(reward 26、penalty 6、neutral 2)|累計 +319(299+20) 測試:verify-002-log.mjs pre-commit 語意與 --base-ref origin/main CI 語意皆 exit 0 Co-authored-by: Cursor <cursoragent@cursor.com>
- 記錄 GameScene strangler 拆分結果:GameScene 降至 875 行 - 記分 +1(reward 1),累計總分 +325 測試:node scripts/verify-002-log.mjs --base-ref origin/main 通過 Co-authored-by: Cursor <cursoragent@cursor.com>
摘要
星海終局篇(L21-L30)地基波次 W1:沿
TRANSFORM_FORMS資料驅動架構擴充四種新變身、六種新小怪,交付 L21 星港集散地與 L23 冰晶潮灣兩座走動關,並補齊level-audit --probe transform變身觸發密度量測。設計 SSOT=.claude/prds/starpuff-v21-v30-design.md;GAME_DESIGN 回寫 §118/§119。head 釘2788f9b59(base main@11ca18696=v0.22.1)。一、四新變身(§118;零新星味、語彙 ≤4、anti-softlock 優勢解非必需)
設計意圖:
工程契約:解鎖閘
FORM_INTRO_LEVEL+unlockedTransformForms(可觸及最高關)不動 save schema;SP 鍵/HUD 徽章/e2etransformEligible同一裁決;護體(入殼/泡泡盾/星體護衛)共用tuckCharges單一機構;焰彈/稜片/風刃收斂formSkills.launchShot單一發射管線(flavor 借既有味系效果表);世界結算走SKILL_TRANSFORM_STRIKE→starCombat.resolveTransformStrike單點路由。行數閘:player 1195/GameScene 1200/enemyUpdates 1169(呈現抽systems/formSkills.ts、新怪 AI 抽systems/finaleEnemies.ts)。二、六新小怪(§119;telegraph ≥600ms 測試守門)
單幀事件態(fire/spit/volley)沿 boomy throw 慣例;掃描光/泡泡/水刃走既有 hazards 池(壽命有界必回收);frosty 分裂與 burn 熔解收斂在
enemies.damage單一結算管線。三、L21/L23 教學意圖與形態練習區
四、量測數據(mid bot,dev server 序列量測,console 錯誤 0)
不倒掛驗證:L19(走動 9.0)→ L21(9.0)→ L23(9.2)→ 對照 L20(魔王 9.2)——走動關序列單調不減、接續 L20 量級(三軸公式與錨定校準均由
logic/difficulty.tsSSOT 計算,非人工評分)。五、probe 四層根因排查(審查席重點:以下均為已知且已修)
--probe transform首測 L21 8/8 逾時,逐秒取證(ammo/hp/px/branch 逐 tick 快照)揪出四層疊加根因:canInhale(kind, false)+__sp.enemies()補elite旗標跳過(觀測鉤 additive 擴欄)。修完後正式量測即上表數字;取證過程逐筆落
docs/dev/002。六、解鎖鏈改動(跳號銜接)
save.ts的LEVEL_IDS改由LEVELS派生(移除硬編第二份清單),解鎖規則自「第 N-1 關已通關」改為「在編序列的前一關已通關」:all-clear成就語意隨 LEVELS 收斂(20/20 舊存檔補發不含 all-clear,通關新章後補發)。七、素材銜接點(PENDING_TEXTURE_KEYS)
全部素材為佔位(程式繪製/回退),介面 key 已凍結於
core/codex.ts的PENDING_TEXTURE_KEYS:minion-cargo|ticketa|scanna|foamy|frosty|manta(enemies 回退同色圓角色塊、CodexScene 回退 fx-star 剪影,不噴 missing texture)hero-ember|tide|prism|gravity(player 缺圖回退一般姿勢+aura 保識別,既有慣例)bg-starport|bg-tidebay(background 系統既有回退)素材車 B02/B03 交付後:補
core/assets.ts註冊+自PENDING_TEXTURE_KEYS移除即生效(圖鑑測試以「ASSETS ∪ pending」守門,pending 清空即回歸嚴格模式)。測試計畫
level-audit --probe transformL21/L23 各 8 trials 零逾時達標;標準量測 mid ×3 通關率雙 100%2788f9b59)已知限制:素材佔位待素材車;Credits 謝幕暫不可達(L20 後接 L21,W4 L30 落地即恢復);SEO 分區對照過渡期僅列已有魔王文案的五區。
Made with Cursor