- 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.
4.1 KiB
卫戍协议:盟约 — Web Remake · Architecture & Contracts (DESIGN.md)
This is the single source of truth for every implementer. Research lives in docs/research/ (start with 00-INDEX.md; where a research file's body and its "Addendum (critic)" disagree, the addendum wins). When this document and research disagree, this document wins; when this document is silent, follow research; when both are silent, choose the simplest faithful behaviour and write it down in the module's header comment.
Language: player-facing text is Simplified Chinese by default, with an English switch since 0.2.0 (§25.2, docs/I18N.md: UI strings through t('中文'), game texts from the official Chinese data or the official EN client's). Code, comments and identifiers are English.
Versions: the first public release was 0.1.0 (2026-10-02, the state of §0–§20.15); the releases after it add the player feedback and GitHub reports — 0.1.1 §21, 0.1.2 §22, 0.1.3 §23, 0.1.4 §24 — and 0.2.0 (2026-10-07; CHANGELOG.md) the maintainability refactor, two languages, 补位, 自选编队 and their fidelity work — §25 — 0.2.1 (2026-10-07) the 联防 battlefield restored, full potential and the GitHub fixes after it — §26 — and 0.2.2 (2026-10-09) per-operator 潜能 / 练度, Japanese voices, the statistics page, 失衡, whole-frame attack timing and the GitHub fixes after 0.2.1 — §27. 0.2.3 (2026-10-10; package.json, shared/constants.js APP_VERSION) 克莱门莎 and new modules, community fixes, text size, per-operator voices, installation, the opening reroll and local match recovery — §28. 0.2.4-dev adds the subsequent community fixes — §29, the current development state described by this document. The labels v1 / v2 / v2.1–v2.5.2 in §0, §14–§20 and in the BALANCE / SIM comparisons name the design generations and the private playtest builds that came before it; they are kept as history.
Where each section lives
Section numbers are global and never change: code, tests and the other documents cite them as "DESIGN §N". The
current rules by area are in docs/design/, the per-release revisions (the evidence behind each rule) in
docs/history/. When a revision changes a rule, the rule in docs/design/ is rewritten too (the revision lists the
normative lines it rewrote).
| sections | file | content |
|---|---|---|
| §0, §1, §2, §11, §12 | design/overview.md | Scope, stack, repository layout, quality bar |
| §3, §4 | design/geometry-time.md | Coordinates, fields, geometry and time |
| §5, §7 | design/engine.md | The battle engine (server/sim) and content modules |
| §6, §16 | design/match.md | The match and meta engine (server/match), operator loadouts |
| §8, §14 | design/network.md | The network protocol and client-side combat |
| §9, §10, §13, §15 | design/client.md | Rendering, UI, local-client art, the 3D board |
| §17 | history/v2.2-playtest3.md | User playtest #3 (v2.2) |
| §18 | history/v2.3-playtest4.md | User playtest #4 (v2.3) |
| §19 | history/v2.4-playtest5.md | User playtest #5 (v2.4) |
| §20 | history/v2.5-playtest6.md | User playtest #6 (v2.5) and its follow-ups, up to 0.1.0 |
| §21 | history/0.1.1.md | 0.1.1 — player feedback after 0.1.0 |
| §22 | history/0.1.2.md | 0.1.2 — GitHub issues after 0.1.1 |
| §23 | history/0.1.3.md | 0.1.3 — community reports after 0.1.2 |
| §24 | history/0.1.4.md | 0.1.4 — community reports after 0.1.3 |
| §25 | history/0.2.0.md | 0.2.0 |
| §26 | history/0.2.1.md | 0.2.1 — after the 0.2.0 release |
| §27 | history/0.2.2.md | 0.2.2 — after the 0.2.1 release (2026-10-09) |
| §28 | history/0.2.3.md | 0.2.3 — after the 0.2.2 release (2026-10-10) |
| §29 | history/0.2.4.md | 0.2.4 — development after 0.2.3 |