Playtest #3 fixes: lost models, picking, live LP, temp overflow, 蕾缪安 S3, 回环射手, FX, detail card, spinners

- #1 lost operator models: the Spine store no longer hands out a skeleton whose unload is in flight
  (PIXI.Assets.unload is async); eviction runs 1 s after a release and the empty-scene budget only after 3 s
- #7 picking: one shared rule (render/pick.js, pixel probe where bodies overlap) for prep/battle clicks,
  hover, the enemy pen and equipment drops; the drag ghost stands on its drop tile; hover probes capped
  at one per frame
- #2 the top-bar LP drops live as the own battle's enemies enter the blue gate (−N, 联防中), teammates'
  pending LP in the team panel
- #3 temp overflow pieces that arrive after a prep deadline survive through the next prep (tempDue);
  temp-row warning and ready-button reason
- #4 蕾缪安 S3: locks every 0.5 s, then one shell every 0.3 s in lock order (PRTS notes), bombardShell fx
- #5 回环射手: real boomerang (out 15, back 3.75 tiles/s, attack only when every boomerang is caught)
- #6 visible projectiles, muzzle flashes, slashes, skill bursts and auras at unchanged frame cost
- #8 特质 right under the detail card header, with its official type icon
- #9 no spinning busy cursors / spinners next to texts; game data warmed before the match
- docs, recordings and tests updated (2414 unit tests, all browser suites green)
This commit is contained in:
sganggs committed 2026-09-29 23:42:55 +08:00
1 parent 01a44cd288
commit 0aba602ecf
72 files changed
+5132 -571

No files matched your search

+12 -12
View File
@@ -8,7 +8,7 @@
"frames": 550,
"maxUnits": 30,
"file": "normal-m01.json",
"bytes": 416135,
"bytes": 417250,
"result": {
"reason": "timeout",
"killed": 14,
@@ -24,7 +24,7 @@
"frames": 850,
"maxUnits": 24,
"file": "normal-m02.json",
"bytes": 566914,
"bytes": 558479,
"result": {
"reason": "timeout",
"killed": 15,
@@ -40,7 +40,7 @@
"frames": 900,
"maxUnits": 31,
"file": "normal-m03.json",
"bytes": 719521,
"bytes": 720825,
"result": {
"reason": "timeout",
"killed": 11,
@@ -54,12 +54,12 @@
"stageId": "act2autochess_m04",
"duration": 70,
"frames": 700,
"maxUnits": 34,
"maxUnits": 33,
"file": "normal-m04.json",
"bytes": 557852,
"bytes": 560135,
"result": {
"reason": "timeout",
"killed": 19,
"killed": 18,
"total": 39
}
},
@@ -72,7 +72,7 @@
"frames": 843,
"maxUnits": 30,
"file": "late-m03-r12.json",
"bytes": 570239,
"bytes": 571183,
"result": {
"reason": "cleared",
"killed": 12,
@@ -88,7 +88,7 @@
"frames": 1100,
"maxUnits": 33,
"file": "late-m01-r13.json",
"bytes": 849162,
"bytes": 849895,
"result": {
"reason": "timeout",
"killed": 6,
@@ -104,7 +104,7 @@
"frames": 600,
"maxUnits": 36,
"file": "unite-m01.json",
"bytes": 619719,
"bytes": 620002,
"result": {
"reason": "timeout",
"killed": 17,
@@ -120,11 +120,11 @@
"frames": 750,
"maxUnits": 24,
"file": "boss-m02.json",
"bytes": 582523,
"bytes": 591355,
"result": {
"reason": "forced",
"killed": 10,
"total": 17
"killed": 12,
"total": 18
}
},
{