Commit Graph
1126 Commits
Author SHA1 Message Date
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
Xinglan233 8ebdcf5d17 fix: 重置松果重新部署后的S2攻击成长 2026-10-10 09:55:15 +08:00
Xinglan233 a173a470b6 fix: 让家族徽章在解除隐匿后的首笔伤害触发 2026-10-10 09:53:26 +08:00
Xinglan233 85062bab67 fix: 将涤火杰西卡的盾牌放置限制在相邻四格 2026-10-10 09:52:07 +08:00
Xinglan233 0abb58a282 fix: 让哈洛德S2在友方只有元素损伤时也能开启 2026-10-10 09:42:26 +08:00
Yuri Restia 4bff948290 Improve lobby screen header design 2026-10-10 04:18:40 +07:00