24 KiB
DESIGN §29 — 0.2.4
Part of DESIGN.md. This chapter records 0.2.4, released on 2026-10-11.
29. Community follow-up
29.1 Boss overtime and Raid revival
- The maintainer requested the extra Final Assault / Hidden Core overtime grace only for teams with an AI teammate.
At fight start, a non-departed AI seat preserves the configured 150 real seconds; otherwise the threshold is the
visible level countdown (120 real seconds). The decision stays fixed during that fight. The first deduction is at
the following whole real second, at one team LP per real second.
overtimeAtuses that same threshold. - Ordinary Raid polls keep the 0.2.3 order: own field first, then remaining route distance and stable id, and they
still jump only when the skill is ready or the member has been idle long enough and the range is empty.
The maintainer confirmed one reselect immediately after a revive. That reselect alone orders by taunt, then
remaining route distance, then id, and it jumps while the operator is not blocking, even if another enemy is
already in range. Standing on an enemy's tile is blocking: the 0.25 s poll runs before that tick's block pass,
so the reselect refreshes contact before it decides to stay. A retreat, a move, a redeploy that waited out its
timer, the initial deployment and a Raid jump do not arm it. [ASSUMED] A revive is recognised as a knock-out
redeploy that returns before
respawnAt; the bond text does not name that timer split. - Regression:
boss-ai-grace.test.jscovers both final fights with/without AI;community-round29.test.jscovers Texas S2 with local enemies, remote taunt/route priority, blocked revival and no repeated self-trigger.
29.2 Operator, item and sharing corrections
- #462, Pinecone S2: PRTS's growth is per deployment. A deployment-local use count resets on redeploy; the runtime's lifetime activation sequence is unchanged. Normal and elite variants are covered.
- #459, Harold S2: a healer that can heal elemental injury considers elemental-only injury when deciding to cast. Full HP plus an elemental gauge can trigger; a wholly uninjured ally cannot.
- #461, family crest: the first damage after stealth ends consumes the accumulated bonus immediately, including damage before the next growth poll. A synchronous equipment combo cannot consume it repeatedly; the current hit and combo retain the attack value that triggered them.
- #464, Skadi S1 / Stead sharing: redirected damage carries both existing redirect ancestry markers, so neither
mechanism revisits its own output and the transfer tree stays bounded. Both shares are taken from the pre-redirect
hit and the victim keeps
1 − R − S(1000 true with the official 0.4 and 0.5 leaves the victim 100, the three members 400 together and Skadi 500, including the one cross-application the ancestry tags already allow). A single effect is unchanged: Stead alone leaves 600 + 400, Skadi alone leaves 500 + 500. [ASSUMED] The two ratios add as shares of the original hit; no official source says they multiply. The same split does not depend on which damaged handler runs first. Hook registration order remains otherwise unchanged. - Sources: PRTS 松果, 哈洛德, mode item descriptions and the
existing sharing contracts.
community-round29.test.jsincludes before/after reproductions.
29.3 Ptilopsis copying Yu / Gladiia (#473)
The original-game recording around 2:30–2:38 shows and explains that
Ptilopsis's copies of Yu and Gladiia bypass the three-in-row prerequisite. The maintainer approved reproducing
only these two exceptions. Preparation-start gifts from these copied traits skip the row condition; original
owners, Saria, other traits and other events retain their conditions. The dispatcher records the copied origin in
source.copiedFrom; eight original/copier-row combinations are tested in garrisons_meta.test.js.
29.4 Clementia S2 and final-boss erosion
PRTS 克莱门莎, checked 2026-10-10, now specifies S2 ordinary-attack splash: radius
1.1 with collision testing, at most four extra ground targets, each taking 100% ATK physical damage. This replaces
the launch-day assumed 1.5 centre radius and copied main-hit multiplier. The primary target retains the skill's
own attack multiplier; the vortex remains radius 1.5. Normal/elite numeric, radius and large-body regressions live in
op_clemnt.test.js. The unresolved launch-day carriage/bomb timing assumptions remain documented in §28.1.
The PRTS mode record's tips explicitly state that Final Assault leaders do not receive erosion injury. The existing mode-specific immunity remains. All ten final-leader definitions were compared against all five injury types: erosion was blocked, the other four could burst. Main-game constants give leaders a 2,000 erosion threshold, so main-game boss identity alone is not general erosion immunity; that does not override the mode tip or prove every scripted boss phase susceptible. Pith's current three named injury types are unchanged. No unannounced future-season behavior is inferred.
29.5 Shield placement and original champagne art
- #460: Jessica's placeable shield uses the four orthogonally adjacent tiles stated by her talent. Preview, server
validation, owner movement and swaps use a shared placement grid, independent of skill, facing or module.
jessica-placement.test.jscovers legal/illegal moves, swaps, bots and other summons. - #468: the original champagne-bomb model is extracted from the local official token bundle through the existing
extraction/build pipeline. There are now 40 local token metadata records. Only this token's
spineLocaland the generated asset hash change; the web fallback remains. No game art enters Git.
29.6 UI and recovery
- DIY selection reuses the roster's
LoadoutStatscomponent, showing the chosen ordinary/elite stats, attack range, trait, talents, potential and cultivation. Skill descriptions/SP labels follow the same preview level. The list uses aligned roster-style rows; list and details scroll independently, leaving Confirm reachable. - #450: Swire's skill coins show as current/cap, including zero. Optional
coins: [[id, balance, cap]]comes from valid live-unit state, is stepped between snapshots and clears when absent. It changes no earning/spending rule. - #471: lobby tools are grouped at the left; the player chip opens statistics. Responsive title allocation prevents overlap with long names, translated text, resume and install controls; a narrow header puts its title on a new row.
- #458: settlement summary scrolls independently from its return button. Enlarged text no longer pushes the button outside the viewport.
- Transient failed images and board packs can retry on a later useful event. Three.js failed imports use two bounded fresh URLs because browsers cache module failures. A failed field engine may remount on online/visibility events, with cleanup and at most two consecutive retries; explicit fallback/2D choices remain respected. Real Chrome tests abort actual resource requests and verify recovery, single canvas ownership and unmount cleanup. This does not establish the cause of every reported device/GPU failure.
- #469's repeated “甄选干员干员” was a result validator replacing a DIY operator's name with its empty slot's name. It now resolves DIY and stand-in names from the authoritative BattleSpec; client-supplied names remain ignored.
- #448: Japanese UI terms are corrected, including 自然回復 and 完璧な作戦, consistent with official Japanese data.
29.7 Verified reports and pending proposals
Muelsyse's deployed Harmony correctly adds one member to existing core bonds, without counting a benched copy or stacking duplicate traits. Six Kazimierz stuns nearby hovering enemies and makes them land; the radius remains 0.8. Targeted real-socket tests cover eliminated host/guest departures in prep/combat/unite and survivor reconnection. These checks did not reproduce the reported generic Harmony/room failures; no speculative rule change was made.
The plugin groundwork remains the existing content-pack manifest/language implementation; a runtime plugin API is not added. Additional dub languages remain deferred until supported resources exist. Other rule/AI proposals require explicit decisions and evidence; open PRs are not blanket approval for their implementations.
Validation and intended golden moves are recorded in §29.12.
29.8 Shared inventory (#466, #430; approved after reviewing the source video)
The maintainer requested the measured rules in 路标档案馆's original 路标月报 #2 (2026-03-29): single-player operators around 0:30–1:00, equipment around 1:30, co-op operators around 2:00, ownership/special grants around 2:30–4:00. Official client tables supply identities, tiers and merge recipes; PRTS mode help supplies equipment return/merge and hand rules.
| Stock | Base counts by tier I–VI | Exceptions |
|---|---|---|
| Single-player operators | 12 / 14 / 18 / 16 / 8 / 5 | I: 普罗旺斯、德克萨斯、跃跃、古米、格雷伊 = 10; II: 风丸 = 8, 赫默、休谟斯、砾、蒂比、调香师 = 12 |
| Co-op shared operators | twice the single-player counts | exceptions doubled too; independent of seat count |
| Shared shop equipment | 4 / 6 / 7 / 8 / 7 / 3 | 简易通讯机 = 5; 蜂鸣器、防暴盾、浓缩嗅盐 = 6; 寻呼模块、伪装服、拉特兰桥夹 = 7; 商业包装方案 = 2 |
- This explicit decision supersedes the old blanket shared counts and Muelsyse override. Private DIY stock keeps its per-player 8/5 capacities; the video's multiplier describes the shared pool.
- Normal/elite operators occupy 1/3 copies by every gain route. Kazemaru still merges two normals, but the elite
occupies three. Promotion also occupies the full three. Grants beyond capacity keep a negative internal balance:
selling one copy cannot expose stock while ownership remains above the cap. Public availability and sampling are
clamped at zero;
raw balance + owned copies = capacityremains invariant. - Mimic samples eligible identities rather than remaining copies and can exceed stock, including the third-copy branch. This supersedes #207's old empty-pool failure. Other pool-weighted grants keep their selection rules.
- Equipment across every player's hand, temporary area and equipped slots is counted live: normal 1, upgraded 2. Shop/choice displays reserve nothing. Exhausted purchases fail before charging or marking the offer taken; draft duplicates become unavailable when an earlier choice empties stock, and automatic picks skip them. Equipment returned from a sold/merged operator still occupies stock in the hand. 整备 upgrades the bought item only when another copy is still free (the purchase already took one, and a golden takes two). Otherwise the item stays normal and the 整备 charge is not spent. An uncapped item may still be upgraded. Held copies of every capped shop item stay within that cap.
- [ASSUMED] Consumption/destruction/removal by elimination ends ownership and therefore releases equipment stock; the video does not separately document every removal path. A third lifetime purchase is possible after a prior copy leaves ownership. Non-shop effect-only equipment has no shared shop cap, consistent with unlimited special gifts. This never becomes a two-appearance or two-purchase limit for commercial packaging.
- Stock counts alone do not establish probabilities. Existing shop tier shares, uniform item selection and explicit effect-pool weights remain, filtered for availability. No new probability curve is inferred from the table.
shared-stock.test.jscovers exceptions, shared ownership, stale offers, reacquisition after destruction, upgraded occupancy, consumption, duplicate draft exhaustion and Mimic overdraw/release.
29.9 Ember proposal (#465) — current behavior preserved
The history in §22.8 and the 0.1.2 changelog records the chosen compromise for queued 深池逐火 enemies. Comparing the current code with the proposed phase-order swap reproduces that risk: after a blocker takes the next warrior, the three husk types can be finished by ranged hits in the current reveal window; the proposal hides them throughout that window and they stand up again. Reveal or spare blocking capacity defeats them in either version. This is not absolute invulnerability, but it removes the previously chosen counterplay window. The proposal is not adopted; the existing phase-order assumption remains pending a better official comparison.
29.10 Approved scope additions
- #467: Clementia S2 includes selectable airborne targets in the expanded skill attack grid when deciding to cast, like Chen S3. Normal attacks stay ground-only. [ASSUMED] No mode recording establishes a separate trigger shape for this new operator. Tier/form, range, stealth/sleep, stun and operation-cooldown regressions cover it.
- #451: the reserve medic appears in preparation, scouting and boss-half views as a read-only map character, including fallback rendering. Touch replaces it when battle starts. Initial aggro order remains unchanged.
29.11 Champagne selection follow-up (#476, replaces #468)
PRTS 香槟炸弹 identifies it as a device, normally excluded from ordinary allied selection. Both bomb creation paths now share the internal isolated selection barrier: Angelina auras and Skadi inspiration no longer select it, while ordinary unhealable summons remain selectable. HP protection, no-heal behavior and detonation retain the previous rules. The new source is PR #476 by Siornya; its original-art portion was first proposed in #468. Both creation paths, ordinary-summon controls and existing aged/contact detonations are tested.
29.12 Validation and golden changes
Full regeneration after the post-revive Raid reselect, the shared-damage split and the 整备 stock check. The corpus is 287 scenarios. No release scenario was removed. Two scenarios were added.
265 of the 285 release scenarios keep the 0.2.3 digest (1db8e510): roster 49/49, bonds 46/46, fields 22/22,
stand-ins 10/10, and 138 of 140 DIY battles. The taunt order applies only to the one reselect after a revive, and
these battle digests stay on the release result.
diy-135 and diy-136 move because their fields include Clementia. op-clemnt.js is the only operator kit on
either field that differs from 0.2.3; the Mon3tr kit, and the defender, guard and sniper kits on diy-136, are the
release kits. The splash and airborne-cast changes are §29.4 and §29.10.
diy-135(Clementia S1–S3 and Mon3tr):clearedat 198.03 s, 150 kills, 0 leaks, perfect, 1 death becomestimeoutat 230 s (5,941 → 6,900 ticks), 149 kills, 1 leak, not perfect, 0 deaths. Damage dealt 1,661,420 → 1,648,194. The first unit row that moves is Clementia S1 (chess_char_5_diy1_a), kills 1 → 0.diy-136(Clementia S1–S3 with defenders, guards and snipers): stillclearedat 212.4 s, still not perfect. Kills 13 → 12, leaks 110 → 111, damage dealt 651,626 → 540,205. Clementia S2 (chess_char_6_diy2_a) kills 7 → 6 and damage 383,594 → 320,372.
All 18 release matches move. Every one changes its shop-draw count, and the first settle row that differs changes
the board hash (operator, tile and equipment). That is the shared-stock lineup change in §29.8. solo-HARD-9-boosted
is the only match whose first differing row also changes kills and leaks; its board and bonds change on that same row.
The ending class changes:
solo-FUNNY-2: defeat at round 8, team LP 0, boss HP left 17,162 becomes victory at round 9, team LP 2, boss cleared. Shop draws 123 → 154. The round-1 board changes and gainsyanShip 0/1.solo-HARD-1: victory at round 14, team LP 12, boss cleared becomes defeat at round 13, team LP 0, boss HP left 341,377. Shop draws 201 → 215. The round-3 board changes.solo-HARD-2: defeat at round 13, team LP 0, boss HP left 66,239 becomes victory at round 14, team LP 28, boss cleared. Shop draws 279 → 283. The round-1 board changes.solo-ABYSS-1: eliminated in round 13 after 12 rounds becomes defeat at round 13, still alive, team LP 0, boss HP left 2,832,671, hidden boss unreached. Shop draws 138 → 215. The round-3 board changes.solo-ABYSS-2: eliminated in round 12 after 11 rounds becomes defeat at round 13, still alive, team LP 0, boss HP left 2,823,834, hidden boss unreached. Shop draws 179 → 280. The round-1 board changes.coop3-ABYSS-5: eliminated at round 11 becomes defeat at round 13, team LP 0, boss HP left 2,616,799, hidden boss unreached.ai_0stays eliminated in round 10.ai_1is no longer eliminated in round 12 and passes 13 rounds.ai_2is eliminated in round 11 after 10 rounds, previously round 10 after 9. Shop draws 531 → 506. The round-2 board changes.coop4-ABYSS-7: eliminated at round 12 becomes defeat at round 13, team LP 0, boss HP left 3,486,896, hidden boss unreached.ai_0is no longer eliminated in round 13 and passes 13 rounds.ai_1passes 8 → 11 rounds and is eliminated in round 12 instead of 9.ai_2passes 11 → 12 rounds and is eliminated in round 13 instead of 12.ai_3stays eliminated in round 8 after 7 rounds. Shop draws 539 → 645. Round-4 boards, bonds, pending gold and layer counts change.
Same victory and reason, team LP changes:
solo-FUNNY-1: victory at round 9, team LP 27 → 16. Shop draws 142 → 87. The round-1 board dropssargonShip.solo-NORMAL-2: victory at round 14, team LP 25 → 15. Shop draws 227 → 226. The round-1 board changes.coop2-NORMAL-3: victory at round 14, team LP 68 → 51 (ai_041 → 34,ai_127 → 17). Shop draws 449 → 487. The round-3ai_1board changes.coop2-NORMAL-8-serverrun: victory at round 14, team LP 58 → 26 (ai_030 → 10,ai_128 → 16). Shop draws 485 → 482. The round-1ai_1board changes andpreciShipgoes from tier 1 to tier 0.coop2-NORMAL-14-standins: victory at round 14, team LP 30 → 31 (human 17 → 18). Shop draws 428 → 403. The round-4 boards change and the human'sraidShip 1/8is gone. Stand-ins were fielded in 10 of 13 settle rows at 0.2.3 and in 0 of 13 now.coop2-ABYSS-10-boosted: victory at round 15 with the hidden boss cleared, team LP 630 → 704 (ai_0315 → 354,ai_1315 → 350). Shop draws 591 → 649. The round-1 boards change.
Same victory, reason, rounds and team LP:
solo-NORMAL-1: defeat at round 13, team LP 0. Boss HP left 884 → 50,897. Shop draws 207 → 159. The round-3 board changes.solo-HARD-9-boosted: victory at round 15, team LP 399, hidden boss cleared. Shop draws 346 → 343. Round 8 changes the board, the bonds, gold, kills 18 → 19 and leaks 1 → 0 together; that row's LP is 399 → 400 and the final team LP stays 399.coop2-HARD-4: eliminated at round 12. Shop draws 419 → 417. The round-3 boards and bonds change (ai_0gainsarcaneShipandpreciShip;ai_1losessargonShip).coop2-NORMAL-70-diy: victory at round 14, team LP 55. Shop draws 503 → 586. The round-3 boards change and the human's bonds becomemiraShipandyanShip. DIY operators were fielded in 6 of 13 settle rows at 0.2.3 and in 0 of 13 now. Virtual duration 121,400 → 118,400 ms.coop4-FUNNY-6: victory at round 14, team LP 130. Shop draws 832 → 952. The round-1ai_2board, layers and bonds change. Virtual duration 130,000 → 127,000 ms.
Added coverage, both victories at round 14:
coop2-NORMAL-1-coverage-standins: team LP 37 (human 11, bot 26). Stand-ins are fielded in 6 of 13 settle rows.coop2-NORMAL-5-coverage-diy: team LP 30 (human 23, bot 7). DIY operators are fielded in 5 of 13 settle rows.
Seeds 14 and 70 keep their outcome rows and, under these lineups, field no stand-in and no DIY operator. The two added seeds carry those paths.
Replacing a field renderer also resets the game screen's entered-view identity. Frames are buffered while the replacement loads; after subscribing, the local runner re-shows full current metadata/snapshot, or the server resends the watched field. Real local and server-streamed battles preserve the same simulation object and clock through recovery, including enemies spawned before the new renderer existed. A refresh of the same field whose metadata lists no device keeps crates and turrets already noted from their one spawn event; metadata that names devices replaces that list. A different field does not keep the previous battle's devices.
29.13 Multiplayer boss Raid landing (#475)
The maintainer approved a narrow revision to §26.1 on 2026-10-10 after the report of three remaining multiplayer
seats leaving one boss field unpaired. Only Raid in mode_multi_* Final Assault / Hidden Core battles may use the
empty half's normal deployment area (rows 2–5, cols 2–18). This is an explicit maintainer decision on the community
report, not a claim of independently verified official footage. Hand row 0, temporary row 1, single-player mode's
empty boss half and lone-helper 联防's empty half stay closed. Terrain, field bounds, living/downed reservations,
target ordering and attack reach retain their checks. The exception is local to Raid; general board membership,
Ulpian S3 movement, summons and preparation placement do not expand.
feedback5-raid-own-board.test.js reproduces the eight left/right, melee/ranged, boss/hidden blocked cases before
the fix, and checks actual solo modes, hand/temp/side margins, terrain and living/downed reservations afterward.
All 287 golden scenarios were regenerated and verified with no additional digest changes. A fresh 80-match sample
also had zero errors and unchanged wins, completed rounds and final LP versus the preceding candidate. Two co-op
HARD runs changed round-14 counters: seed 33's unpaired player killed 22 enemies instead of 26; seed 39's unpaired
player killed 5 instead of 6 and leaked 1 instead of 0. Opening more landing tiles does not guarantee better outcomes.
29.14 Device cards after field refresh
Re-entering the same battle with metadata that omits once-spawned devices now restores the remembered device records to the renderer as well as to the detail-card lookup. Otherwise an HP snapshot recreated the crate as an unknown enemy: picking emitted a unit click with no definition, instead of the tile click needed by the device card. The engine-canvas regression retains the card/100 HP assertions and also covers another field refresh, live HP loss and closing the card when the crate is destroyed. Device metadata supplied by the new entry still wins; changing fields does not carry old devices across. Gameplay and allied targeting rules are unchanged.
29.15 Funnel caster ordinary body damage
PRTS 驭械术师 describes unreleased drone damage as additional damage. The old profile used its 20%→110% ramp for the whole attack: normal 洛洛 at ATK 283 against RES 0 lost only 56.6 HP on the first hit. The body now deals 283 separately and the attached drone adds 56.6. Mitigation, hit-count HP and shields apply to each instance. Extra attached drones do not multiply body hits; 至简's charged S2 has two body hits and two additions, with one talent roll shared by all four. Field migrations in 耶拉 / 荒芜 kits preserve existing released-skill damage; independent virtual drone paths are unchanged.
Controlled Battle regressions cover normal/elite 洛洛、至简、耶拉 (tiers 3 and 4)、荒芜 and all eight 澄闪 DIY forms, RES, hit-count HP, a one-hit barrier, attribute skills, overload and attached drone count. A production Match and a headless Chrome run both reproduce the first-hit defect through legal actions at service seed 6: standard solo, 华法琳, level up in round 1, buy 洛洛 in round 2 and place at (11,8) facing LEFT. Natural 奥术 raises her ATK to 311.3; the old first hit is only 62.26. No HP, SP, units or network commands are injected for that route.
[ASSUMED] Body instances precede drone additions at the existing projectile impact, with one ramp per consecutive-hit
volley. The source confirms additional damage and 至简's skill multiplier on drones, not that exact event order.
Released-skill body behaviour remains outside this ordinary-attack correction: 耶拉 S2's source explicitly mentions
both her own and drone attacks, and 澄闪 S1/S2's existing noAttack still needs separate reconciliation.