feedback1 integrate: bot reconciled with the merged rules
- plans each unit with the range it is deployed with (loadoutRecord attackRangeGrid, the grid of the server's summonRange and the card) - an attack on every enemy in range (阵法术师 / 轰击术师 rangeAoe) counts double in its DPS value, splash and chain a little - botbench seeds 1-40 before/after and the decision time (unchanged) in BALANCE.md
This commit is contained in:
1 parent
0a15c6e41d
commit
ff4ff3f350
4 files changed
+80
-10
No files matched your search
@@ -362,6 +362,18 @@ and 86 / 175 → 83 / 162 ms, CPU 131 / 314 → 124 / 329 ms and 97 / 209 → 91
|
||||
refreshes); a 机变 pick 0.07 → 0.15 ms (p50). Over the 40-seed A/B the summed prep CPU per match moved −6 % … +2 %. The
|
||||
tuning sweeps used seeds 101–148 with the rehearsal off; the tables above are separate seed ranges.
|
||||
|
||||
**0.1.1 integration (DESIGN §21.6).** With all 18 workstreams merged (the official bounty draft structures, the AoE,
|
||||
displacement and enemy fixes) the same bot on the same seeds wins 27 / 40 solo 绝境 and 9 / 40 co-op 绝境 (co-op bounty
|
||||
enemies leaked 120 of 380 picks: 232 drafts offered no card at a kill chance ≥ 0.5 — the R9 boss groups). The bot was
|
||||
then reconciled with the merged rules: it plans each unit with the range it is deployed with (`rangeRec`:
|
||||
`attackRangeGrid`, the server's `summonRange` grid — no outcome changed on these seeds) and values an attack on every
|
||||
enemy in range ×2 (阵法术师 / 轰击术师, now `rangeAoe`), a splash ×1.3 and a chain ×1.4 [ASSUMED] (`CROWD`). Seeds 1–40,
|
||||
rehearsal 3, before → after: solo 绝境 27 → 27 wins, LP left 17.9 → 18.4, bounty enemies leaked 8 → 5 of 104; co-op 绝境
|
||||
9 → 11 wins, LP left 14.8 → 14.1, leaks per match 215 → 220 — within the noise of 40 seeds (the ×2-only variant: 25 /
|
||||
11 wins). Decision time stays at the WF numbers (one thread, back to back, seeds 1–6): heuristics CPU p50 / p95 25 / 59
|
||||
→ 24 / 57 ms solo and 16 / 36 → 16 / 36 ms co-op; the whole prep with its rehearsal wall clock 80 / 148 → 78 / 153 ms and
|
||||
74 / 152 → 73 / 151 ms.
|
||||
|
||||
---
|
||||
|
||||
## 6. Match follow-ups shipped with this pass
|
||||
|
||||
+6
-3
@@ -200,7 +200,8 @@ over the remaining pool; an elite also brings the merge's free pick of the next
|
||||
freezes the shop for the next round (freeze is free). Purchase scores: merge progress > bond thresholds > role needs
|
||||
(2 blockers, anti-air when the wave flies, ≤ 2 healers) > tier, the 特质 that keep adding layers, and armour fit (the
|
||||
share of a dealer's damage that gets through the round's DEF / RES — `mitigate` of the sim per hit, HP-weighted over
|
||||
the wave). The deployed set maximizes unit value + activated bond tiers (exact counting via `computeBonds`; every
|
||||
the wave; an attack on every enemy in range counts ×2 — 阵法术师 / 轰击术师, `rangeAoe` since 0.1.1 —, a splash ×1.3, a
|
||||
chain ×1.4 [ASSUMED], `CROWD`). The deployed set maximizes unit value + activated bond tiers (exact counting via `computeBonds`; every
|
||||
deployed focus member counts toward the next threshold). Items by what they do: equipment on the strongest deployed
|
||||
damage dealers (survival items on blockers first, bond signature items on a member), 信标 on a bench single (never the
|
||||
lineup when a bench single exists), 拟态物质 on a pair, 博士投影 (both qualities — neither takes an elite) on the strongest
|
||||
@@ -219,8 +220,10 @@ minus expected LP loss and takes one it is unlikely to beat only when nothing be
|
||||
is large (in co-op 绝境 most remaining bounty leaks come from drafts with no beatable card at all); tactic cards by what
|
||||
they act on (a 盟誓 / 驰援 card on its bonds, 升华, …). Placement uses the round's enemy preview: every route is traced
|
||||
over the own board (ground: the stage's device-aware ground paths; flyers: through their checkpoints) and weighted by
|
||||
its enemies; an exposure model (time on each tile × DPS against the round's armour of the units covering it, blocker
|
||||
hold time, anti-air only on flying routes) is maximized greedily (blockers, then damage dealers, then healers); a
|
||||
its enemies; an exposure model (time on each tile × DPS against the round's armour of the units covering it — each
|
||||
unit's cover is the range it is deployed with under the player's loadout, `rangeRec` = `attackRangeGrid`, the grid the
|
||||
server's `summonRange` and the card use —, blocker hold time, anti-air only on flying routes) is maximized greedily
|
||||
(blockers, then damage dealers, then healers) over the server's deploy map (no 深水区, PlayerState.deployMap); a
|
||||
tactician's 援军 goes on a tile of the tactician's attack range (`PlayerState.summonRange`, the server's own rule; player
|
||||
report #9 after 0.1.0), and a tile the server's `g.move` refuses is skipped for the next best one (the planner reads
|
||||
`board.js legalTiles` on the deploy map; `g.move` is the judge). Boss
|
||||
|
||||
Reference in new issue
Block a user