Skip to content

B6 last card rebalance: speed, density, frenzy redesign#9

Merged
fldlqu merged 1 commit into
mainfrom
tweak/player-and-sprites
Jul 25, 2026
Merged

B6 last card rebalance: speed, density, frenzy redesign#9
fldlqu merged 1 commit into
mainfrom
tweak/player-and-sprites

Conversation

@fldlqu

@fldlqu fldlqu commented Jul 24, 2026

Copy link
Copy Markdown
Member

B-6 boss 最后一张卡「炫妈归天」全面平衡

  • 弹速全部 ×0.5
  • 弹幕密度阶梯下调:初始 -> -20% -> -30%
  • 狂乱阶段重做:aim 改为札弹(n:5→2, speed/1.45),新增左右侧翼固定扇形札弹源(各 n:2),清除旧 storm/ring/spin/rain
  • letterTime 60→120s,新增超时强制开狂乱(60s HP>40% 强制、90s 兜底)
  • storm 散射改为 360° 6 发环弹

See commit d38bdad for full diff.

本 PR 旨在重新平衡 B-6 Boss 最终卡“炫妈归天”的弹幕难度与狂乱阶段节奏:整体降低子弹速度和密度,重构狂乱弹幕为札弹及固定侧翼发射,移除原有风暴、环形、旋转和雨弹模式,并调整风暴为 360° 六弹环。与此同时延长卡牌时限,增加基于时间与血量的狂乱触发机制,并将版本号更新至 128。

…gned (talisman focus, old patterns cleared), letterTime 120s, add timeout forced frenzy

- All bullet speeds halved
- Bullet density reduced in stages: initial drop, then -20%, then -30%
- Frenzy phase redesigned: replace laser aim with talisman (n:5->2, speed/1.45),
  add two side fixed-fan talisman sources (n:3->2), remove old storm/ring/spin/rain
- letterTime 60->120 with timeout checks at 60s and 90s to force frenzy
- Storm scatter changed to 360-degree 6-ring
@coderabbitai

coderabbitai Bot commented Jul 24, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Changes

B6 Boss 与发布信息

Layer / File(s) Summary
B6 Boss 狂乱弹幕与状态流转
js/stages/b6/letters.js
调整 stormaimring 参数,新增超时强制狂乱逻辑,并以左右 wing_l/wing_r 札弹替换狂乱阶段的 spin/rain
章节时长与构建号更新
js/stages/b6/index.js, js/version.js
章节 id 128 的 letterTime 从 60 改为 120,构建号从 127 改为 128。

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant BossState
  participant FrenzyTimers
  participant spawnAimed
  BossState->>BossState: 检查 en.age 与 hpRatio
  BossState->>BossState: 设置 en.hp = en.maxHp * 0.19
  BossState->>FrenzyTimers: 进入 frenzy
  FrenzyTimers->>spawnAimed: 由 wing_l/wing_r 生成固定方向札弹
Loading

Suggested reviewers: octobersama

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 标题准确概括了 B6 最终卡的主要改动:速度、密度与狂乱机制重做。
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@js/stages/b6/letters.js`:
- Line 207: 修正 letters.js 中 type 配置的随机索引范围:将 Math.random() 的乘数改为与数组长度一致,使索引可覆盖
0–4,并确保 'large' 类型能够被随机选中。
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 0453c4f9-d875-443f-bd6f-1cb010bb20d7

📥 Commits

Reviewing files that changed from the base of the PR and between e730e98 and d38bdad.

📒 Files selected for processing (3)
  • js/stages/b6/index.js
  • js/stages/b6/letters.js
  • js/version.js

Comment thread js/stages/b6/letters.js
type: ['dot', 'rice', 'talisman', 'medium', 'large'][Math.floor(Math.random() * (frenzy ? 5 : 4))],
x: en.x, y: en.y, angle: (i / n) * Math.PI * 2,
speed: 1 + Math.random() * 1.5,
type: ['dot', 'rice', 'talisman', 'medium', 'large'][Math.floor(Math.random() * 4)],

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

修正随机索引范围。

Line 207 的索引只能取 0–3,数组中的 'large' 永远不会出现。应使用 5 或数组长度,避免弹型配置失效。

建议修复
-          type: ['dot', 'rice', 'talisman', 'medium', 'large'][Math.floor(Math.random() * 4)],
+          type: ['dot', 'rice', 'talisman', 'medium', 'large'][Math.floor(Math.random() * 5)],
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
type: ['dot', 'rice', 'talisman', 'medium', 'large'][Math.floor(Math.random() * 4)],
type: ['dot', 'rice', 'talisman', 'medium', 'large'][Math.floor(Math.random() * 5)],
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@js/stages/b6/letters.js` at line 207, 修正 letters.js 中 type 配置的随机索引范围:将
Math.random() 的乘数改为与数组长度一致,使索引可覆盖 0–4,并确保 'large' 类型能够被随机选中。

@fldlqu
fldlqu merged commit efe53eb into main Jul 25, 2026
4 checks passed
@fldlqu
fldlqu deleted the tweak/player-and-sprites branch July 25, 2026 00:09
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.

1 participant