1131 Commits
Author SHA1 Message Date
sganggs 16085d2a10 0.2.5-dev: connect the history of PR #492 by Cloudnyco — the reviewed adaptation in 221e6b8d is kept (tree unchanged) 2026-10-12 14:07:08 +08:00
sganggs 7e960269d0 0.2.5-dev: connect the history of PR #490 by D-Roote — the reviewed adaptation in 221e6b8d is kept (tree unchanged) 2026-10-12 14:07:08 +08:00
sganggs 221e6b8dd2 0.2.5-dev: community round 30 and follow-ups
- Stock: fixed trait gifts (缪尔赛思 / 变形者集群 变形同构体, 耶拉 不融冰, 蜜蜡 / 卡涅利安 迅捷作战粮, 诗怀雅 盟约之币) still occupy stock but are granted past the cap; an operator card already shown in the shop or a reward can be taken after the pool runs out and overdraws (GitHub #498, the owner's decision); item buys and item rewards keep the stock check. 洛洛 / 焰尾 sub-pools use the measured weights (PR #497 by @2321Robin; the occupancy idea of PR #496 by @2321Robin re-implemented differently).
- Boss pairs are drawn at random once per match and fixed to battle start; the Hidden Core reuses them; a leaver does not split a full pair (the owner's decision).
- 阿戈尔 in 联防 no longer re-applies the opening devour HP loss or a false revive; Touch's team medic stays for the match after its holder leaves (owner-approved, official lifetime unverified).
- Auto-skill ranges: 司霆惊蛰 S2, 斩业星熊 S3 against air, 予愿安洁莉娜 S3; 自在's post-rebirth invulnerability is also untargetable (#510); Horn / Clementia / catapult / 忍冬 first hit (PR #502 by @Xinglan233); 不融冰 / tear gas trigger on real damage.
- Bond layer-up sound in round start / draft / prep / battle (#482): one channel, a new cue replaces the old, no extra cooldown; a prep update that adds layers and activates a bond plays one cue.
- Client: multi-swing fix (#506), refresh single-flight (PR #507 by @robll-v1), LP tower keeps the settled value with a −N tick (PR #504 by @robll-v1), export with only 潜能 / 练度 changes (PR #503 by @Xinglan233), spectator rosters list DIY members (PR #505 by @Xinglan233), banned members beside bond tooltips (PR #494 by @YuriRestia), recovery action above the away overlay (PR #511 by @RainoutOvO), the /dev/sim-check.html consistency page (PR #492 by @Cloudnyco), Korean (PR #490 by @D-Roote) and English Victoria wording (PR #499 by @YuriRestia).
- golden: 45 of 287 scenarios move against 0.2.4 (roster 17, bonds 3, fields 6, matches 17, standins 2), each attributed in docs/history/0.2.5.md §30.9 / §30.16.
2026-10-12 14:07:08 +08:00
Siornya dcf498d9bd 修复三合一奖励抽不到自选干员 #515 2026-10-12 13:59:42 +08:00
BowenJXD f08763c632 fix(windows): 修复 Node 版本检测在 Volta 等环境下误报版本过旧
start-windows.bat 的版本检测命令中包含 >、? 和 : 等 cmd 元字符。
当 node 由 Volta 等版本管理器的 shim 提供时,参数会经过 cmd 重新解析,
引号保护失效,">=22?0:1)" 被当作输出重定向,导致报错
"The filename, directory name, or volume label syntax is incorrect"
并返回非零退出码,脚本因此误判 Node 版本过旧(即使是 v24 LTS)。

改用不含 cmd 元字符的等价表达式:
  Math.max(0, Math.sign(22 - parseInt(process.versions.node)))
主版本号 >= 22 时退出码为 0,否则为 1,判断逻辑不变。
2026-10-12 12:28:18 +11:00
Andrew Wang b92a0bf3c2 local-extract: derive the board normal map from both layouts a client holds — BC5 (R = X) and DXT5nm (A = X, R = 1), read as Unity unpacks them (x = R·A); a client with the older map_autochess bundle got Z = 0 everywhere and a grey 3D board 2026-10-11 19:30:10 -04:00
Andrew 1fe819478e 3D 棋盘按战场显示官方场景(沙地等 11 个战场),场景由本地提取脚本从赛季场景包导出,没有时回退现有金属棋盘 (#532) 2026-10-11 19:15:50 -04:00
IceCodeNew 3f18347fff fix(bot): handle band picks without player context 2026-10-11 15:06:46 +00:00
xcdoge 7b4f512ce9 敌方血条偏高:头顶高度按"原点以上的高度"算(bounds.y + bounds.height),而不是包围盒高度
玩家反馈:逐腐兽的血条明显偏高。

原因:单位血条/名字牌的头顶高度用的是 spine setup-pose 包围盒的**高度**(units.js headTilesForUnit 里
`bounds.height × 1/320 × 模型系数 × 0.92`)。这个公式默认包围盒是**脚锚定**的 —— 大多数敌人确实如此
(猎狗pro y=−3.7、大鲍勃 y=−2.6,height 与"脚以上高度"几乎相等)。但有些模型的**原点在身体中间**:
逐腐兽的包围盒是 y=−404.7 / height=722.6,锏是 y=−798 / height=1183 —— 对它们,包围盒高度比可见顶端多出
大半个模型,于是血条被顶到上限 2.2 格(非 Boss)之上,看起来就是"明显偏高"。

改法:定位改用**原点以上的高度**(`Number.isFinite(b.y) ? b.y + b.height : b.height`,仍按 20…900 夹取)。
同时把这段计算从 UnitView 内联代码提成一个纯函数 `headTilesForUnit()`(放 units.js,紧挨 UNIT/EL_BAR 常量),
入参只有 isEnemy / isBoss / spineShown / bounds / modelK / modelKY,便于直接测;UnitView 仍然保留
"没显示 spine 就不看模型"的短路语义。spine.js 的 `height` getter 语义不变(别处也用它,例如替身的纵向拉伸)。

影响面(用真实 bounds 扫过 167 个有模型数据的敌人):
  逐腐兽 / 疯狂的逐腐兽   1.85 → 0.81 格(降 1.03)
  锏(Boss)             2.59 → 1.11 格(降 1.48)
  萨卡兹大剑手 / 组长     1.54 → 1.23 格(降 0.31)
  枯朽之种 0.72 → 0.55、萨卡兹百夫长 1.51 → 1.34、妖怪MKII 0.71 → 0.55
  其余 103 / 167 个敌人的变化 ≤ 0.02 格(脚锚定模型几乎无感)

测试:
  test/render/bar-head.test.js(新增 5 条):用真实的逐腐兽 / 猎狗pro / 大鲍勃 / 锏 包围盒断言新公式、
  夹取上限、以及三个回退分支(无 bounds 用 chibi 余量 × 系数、Boss 无模型用 2.2、干员与召唤物用固定余量),
  并做源码断言把"y + height"这条规则钉住。
  test/render/playtest6-enemies.test.js:两条 prefab 测试的期望值原本写死 `390 × …`(合成夹具的 bounds 是
  y=−150 / height=390,即当年就把这个 bug 当成了正确行为),现在改为从**被测 view 自己的 bounds** 推导
  (240 而不是 390),夹具本身不动。
  test/render 全量 552 项 / 546 通过 / 0 失败;test/ui + test/render 1279 项 / 1265 通过 / 0 失败。

未触碰 server/sim,test/golden 无变动。
2026-10-11 22:49:56 +08:00
Cloudnyco 119a04888a Hit tiles: positions round half to even (PRTS 作战机制); enemies held just inside the field edge 2026-10-11 21:33:44 +08:00
Cloudnyco ad7e3e9835 detmath powi: a zero base keeps Math.pow's exact results ((-0)^1 = -0, (-0)^-1 = -Infinity) 2026-10-11 21:09:25 +08:00
星闌 581e2d5695 chore: 根据 PR 标题添加类型标签 (#239) 2026-10-11 20:42:36 +08:00
IceCodeNew e376f25407 fix(bot): respect teammates opening factions 2026-10-11 12:38:34 +00:00
Cromemadnd Lancity e2b0aab534 Merge branch 'master' into fix/spine-start-anim 2026-10-11 20:27:12 +08:00
RainoutOvO 10e1461c29 Fix connection recovery action above away overlay 2026-10-11 17:43:50 +08:00
D-Roote d34fe2e59f fix: improve Korean localization 2026-10-11 18:39:02 +09:00
星闌 810c8c75e1 test: 覆盖浮游旧弹道跨再部署时的命中顺序 2026-10-11 16:58:31 +08:00
星闌 f567e8045e fix: 修复洛洛 S2 越界续锁与旧弹倍率干扰;Golden 因独立浮游/本体攻击更新 roster-004、roster-005、bond-victoriaShip-low、bond-victoriaShip-high、coop3-ABYSS-5、coop4-FUNNY-6、coop4-ABYSS-7、coop2-NORMAL-8-serverrun、coop2-NORMAL-1-coverage-standins 2026-10-11 16:54:03 +08:00
robll-v1 289a454fa1 fix: 高延迟下连按「刷新」只发送一次请求(GitHub #501) 2026-10-11 16:43:51 +08:00
星闌 823e3d0af4 fix: 补回驭械术师普通攻击的本体伤害 2026-10-11 16:42:50 +08:00
星闌 7434e9eaf0 fix: 再部署重置浮游倍率;roster-026、solo-HARD-1、solo-ABYSS-1 不再沿用旧缓存 2026-10-11 16:40:10 +08:00
robll-v1 07ac357ed4 fix: 顶栏生命值在结算前保持当前数值,仅以 −N 标记待扣(GitHub #479) 2026-10-11 16:16:38 +08:00
星闌 19c854c1f7 fix: 避免恢复默认被尚未完成的旧调配同步覆盖 2026-10-11 16:11:00 +08:00
星闌 70151d08ed fix: 防止自选数据加载失败时导入养成覆盖已有设置 2026-10-11 16:07:09 +08:00
Yuri Restia 6573431e72 Add correction layer to i18n that allows for corrections where the official translation is wrong 2026-10-11 14:02:34 +07:00
Yuri Restia f7be28331c Briefing: list an alliance's banned operators in a box beside its tooltip (#484) 2026-10-11 13:08:19 +07:00
Cloudnyco 40e5794bdf 模拟一致性检查:下载的数据文件名不含空格 2026-10-11 13:46:50 +08:00
Cloudnyco ce52512559 新增:模拟一致性检查页(/dev/sim-check.html),任意设备的浏览器重放黄金结果的整套战斗,逐帧与 Node 比较 2026-10-11 13:38:57 +08:00
Robin b612487bd5 洛洛的定制品 and 焰尾's <获得时> sub-pools take the measured weights of 路标月报#2 item 6: 洛洛 draws 8 equipment — 10维式重锤 2战栗 2坚固 2加速 2灼燃 1有限加速器 4护盾无人机 4激光发射器 (was the 4 special hammers uniform, per user playtest #4 — the special four stay exclusive to this pool and 维多利亚's, they are just no longer the whole of it; the four shop-sold entries draw through the shared item stock), 焰尾 draws 野鬃 10 / 灰毫 10 / 远牙 3 (was an even-ish 45/45/10 guess); both draws keep their stock gate (chess free-filter, item canGain). pool.test: the vict/rockr assertion splits — rockr asserts the 8-entry weighted table, 焰尾's pinus gets its own 10/10/3 test; DATA.md pools row updated; golden: roster/bonds/fields/standins/diy byte-identical, 6 of the 20 release matches move with the draws (attribution verified: reverting the two pools restores all 20 byte-for-byte), re-pinned 2026-10-11 13:26:38 +08:00
星闌 1188a9803c fix: show DIY operators in watched battle bond members 2026-10-11 12:54:01 +08:00
星闌 7a65577cc1 fix: allow exporting DIY-only operator settings 2026-10-11 12:54:00 +08:00
星闌 b87fcb3ac9 fix: include Vulpisfoglia Hunt addition on first damage 2026-10-11 12:48:59 +08:00
D-Roote 1985a87a76 fix: correct Korean localization 2026-10-11 13:31:16 +09:00
YinqiMargatroid 69e27ba03d fix: 准备阶段可查看外勤医疗详情与范围 (#315) 2026-10-11 09:16:00 +08:00
YinqiMargatroid e85942bce1 fix: 外勤医疗预置角色保持初始索敌顺序 (#315) 2026-10-11 08:33:39 +08:00
sganggs bc50cac01f 0.2.4: version 0.2.4 — package.json / package-lock.json / APP_VERSION (DEV_BUILD turns false), README release form, CHANGELOG 0.2.4 — 2026-10-11 in the usual sections with credits, DESIGN versions line 2026-10-11 02:04:21 +08:00
sganggs b5c0796018 0.2.4-dev: connect the history of PR #476 by Siornya — the reviewed adaptation in 6bfc0827 is kept (tree unchanged) 2026-10-11 01:58:52 +08:00
sganggs cda652f2d4 0.2.4-dev: connect the history of PR #471 by Yuri Restia — the reviewed adaptation in 6bfc0827 is kept (tree unchanged) 2026-10-11 01:58:52 +08:00
sganggs 86a9c263dc 0.2.4-dev: connect the history of PR #464 by HappyTanuki — the reviewed adaptation in 6bfc0827 is kept (tree unchanged) 2026-10-11 01:58:52 +08:00
sganggs f3a73bc766 0.2.4-dev: connect the history of PR #462 by Xinglan233 — the reviewed adaptation in 6bfc0827 is kept (tree unchanged) 2026-10-11 01:58:52 +08:00
sganggs b43e0d3e2f 0.2.4-dev: connect the history of PR #461 by Xinglan233 — the reviewed adaptation in 6bfc0827 is kept (tree unchanged) 2026-10-11 01:58:52 +08:00
sganggs 0835ac9c16 0.2.4-dev: connect the history of PR #460 by Xinglan233 — the reviewed adaptation in 6bfc0827 is kept (tree unchanged) 2026-10-11 01:58:52 +08:00
sganggs 378db8f043 0.2.4-dev: connect the history of PR #459 by Xinglan233 — the reviewed adaptation in 6bfc0827 is kept (tree unchanged) 2026-10-11 01:58:52 +08:00
sganggs 2f19e99290 0.2.4-dev: connect the history of PR #451 by YinqiMargatroid — the reviewed adaptation in 6bfc0827 is kept (tree unchanged) 2026-10-11 01:58:52 +08:00
sganggs d521864a94 0.2.4-dev: connect the history of PR #450 by IceCodeNew — the reviewed adaptation in 6bfc0827 is kept (tree unchanged) 2026-10-11 01:58:52 +08:00
sganggs 419fb030a5 0.2.4-dev: connect the history of PR #448 by scutkane — the reviewed adaptation in 6bfc0827 is kept (tree unchanged) 2026-10-11 01:58:52 +08:00
sganggs 38121e8d33 0.2.4-dev: connect the history of PR #408 by Siornya — the reviewed adaptation in 6bfc0827 is kept (tree unchanged) 2026-10-11 01:58:52 +08:00
sganggs 6bfc08270c 0.2.4-dev: round-29 community fixes and the official shared card pool
- Shared card pool and item stock as in the official mode (the owner's request, from the 路标档案馆 video and public notes): solo low-tier exceptions, co-op operators x2, shared item stock with special-item exceptions, normal / advanced occupancy 1 / 2, re-check on buy, 机变 exhaustion, release on consume / destroy / elimination; 整备 never exceeds stock; invariant held <= cap.
- 突袭: one taunt-first reselect right after a revive (the owner's rule); ordinary polls and redeploys keep the 0.2.3 rule; a revive on an enemy's tile stays. #475: online boss / hidden-boss Raid may land on the empty half (owner-limited scope).
- 浊心斯卡蒂 S1 x 坚守 no longer bounce redirected damage, and the two shares conserve the hit (idea of PR #464 by @HappyTanuki).
- Operator fixes adapted from PRs by @Xinglan233 (#459 哈洛德 S2 elemental trigger, #460 涤火杰西卡 shield on the four adjacent tiles, #461 家族徽章 first hit after stealth, #462 松果 S2 regrow per deploy); 克莱门莎 S2 splash 1.1 / 100% ATK and air auto-trigger (#467); 白面 copying 歌蕾蒂娅 / 余 skips the three-member condition (#473, the owner's video).
- 香槟炸弹 is not chosen by friendly auras / heals (PR #468 / #476 by @Siornya); 琳琅诗怀雅 coin balance (PR #450 by @IceCodeNew); Touch prep display (PR #451 by @YinqiMargatroid); lobby header (PR #471 by @YuriRestia); Japanese UI terms (PR #448 by @scutkane).
- AI-only boss countdown grace, render-failure cache / recovery without restarting a battle, device units kept on a same-field re-entry, DIY detail / skill previews, large-text result buttons.
- golden: battle families equal 0.2.3 except diy-135 / diy-136 (克莱门莎); all 18 release matches move through the shared pool, every flip named in docs/history/0.2.4.md §29.12; two coverage scenarios added.
2026-10-11 01:58:52 +08:00
Siornya fe303c8efa fix: 香槟炸弹会被友方选中 (#442) 2026-10-10 19:07:43 +08:00
HappyTanuki e9a2e27c58 fix(sim): 浊心斯卡蒂 S1 and 坚守 tier 2 no longer bounce redirected damage between each other (the battle froze: every cycle branched per 坚守 member until the hook depth guard); regression test; golden: unchanged 2026-10-10 11:06:10 +09:00