79fc442f8e
fb5-patch-pkg: docs for the update package — README「方式一」gets the third bullet (Stronghold-Protocol-v<版本>-update.zip from 0.2.1: only the files changed since the earlier 0.2.x, for a full or lite 0.2.x install; stop the server, merge the zip's Stronghold-Protocol folder into the install, start; a mismatched install is refused) and the English summary a clause; DEPLOY §1.5 the bundle update (Expand-Archive / Explorer / unzip -o, not a Finder drag; what the first start does, the refusal, docs-only warnings, lite installs and local art, doctor's row) with the old copy-to-a-new-folder way kept; DEPLOY §7 the maintainer side (--update --from every earlier 0.2.x full zip, MANIFEST.json in every zip, the checks, --keep-stage); ARCHITECTURE names server/update.js and tools/package-update.mjs
sganggs2026-10-07 11:30:02 +08:00
15b529388f
feedback5: merge R19B — GitHub #236 (an eliminated player / spectator seat sees 观战中, not 资金已到账; idea from PR #237 by @2321Robin) and #173 (干员调配 says when its game data did not load; imports refused before anything is applied); golden unchanged
sganggs2026-10-07 11:27:12 +08:00
cefd1e7313
fb5-patch-pkg: every release zip carries MANIFEST.json (size + sha256 of each shipped non-art file, written after npm ci; the full, lite and update zips of a version list the same), and node tools/package.mjs --update --from <base>[,<base>…] builds Stronghold-Protocol-v<version>-update.zip — the full stage built as before, compared file by file with every base (an earlier full zip or its extracted folder; tools/package-update.mjs reads zips itself, zip64 included), shipping each file that is new or differs from at least one base plus MANIFEST.json and UPDATE.json (from, count, bytes, files, removed with each base's bytes); bases must be older, full (not lite or update) and distinct; the update stage gets the refusal and personal-info checks (sha256 values left out of the name scan); test/update-package.test.js (8), test/package.test.js expects MANIFEST.json in the zip
sganggs2026-10-07 11:23:55 +08:00
d6e40c7235
fb5-patch-pkg: the update package's boot step and install check (server/update.js) — before the server starts (runMain: npm start, launch.mjs, the Windows service's run-server.cmd, NSSM, systemd; launch.mjs also before setup) an extracted UPDATE.json is checked: malformed → logged and skipped; the install verified against MANIFEST.json, and a missing or different file the server or browser runs stops the start with the bilingual "download the full package" message (nothing deleted, UPDATE.json kept); else each removed file still holding a base's bytes is deleted (never a changed file, a player's pack, a symlink, a per-machine name or a path outside the install) and UPDATE.json becomes .update-applied.json; doctor gets a MANIFEST.json row; test/update-boot.test.js (10)
sganggs2026-10-07 11:23:42 +08:00
9123e76509
feedback5 R19A: a stunned or frozen enemy is blocked by contact where it stands — an operator redeployed beside a frozen 隐匿 enemy blocks it and so reveals it (GitHub #232, @ccyl; the repro and the cause by @kukiC); golden: 52 scenarios move
sganggs2026-10-07 11:22:27 +08:00
f661a47773
feedback5 R19C: the official 「作战结束」 result box and the three battle-over sounds at settlement (GitHub #235; PR #112 by @Convey123, approved and never merged, ported by hand onto the 0.2.0 modules) — the box says only the viewer's own LP, 「全员无伤!」 or 「生命值减少 −N」; after a 联防 the number is the server's own per-player charge (m.public.uniteResult in the SETTLE view) and 「全员无伤!」 only when nothing got through; no box for spectator seats, eliminated players or the boss rounds; golden: unchanged
sganggs2026-10-07 11:21:24 +08:00
b4d5a72a43
feedback5 R19B: 干员调配 says plainly when its game data did not load — useData counts a /data file that never arrived (404, blocked, bad JSON: 'missing') as settled, so the tab drew an empty roster, the loadout import blamed the file (「这份数据在当前版本没有可用的调配」) and the 干员持有 / 自选编队 imports stored an empty list over the saved one; now missingGameData(tab) (chess.json, plus backups.json for 自选编队) shows DataMissing in place of the roster (which files, saved settings unaffected, reload, then the ad blocker and the network) and importRefusal(kind, ready) refuses every import before anything is parsed or applied, with the same words; three UI strings with English; GitHub #173; golden: unchanged (client only)
sganggs2026-10-07 11:13:25 +08:00
7d97b80bfd
feedback5 R19B: the round-start banner reads 观战中 to an eliminated player and to a spectator seat instead of 资金已到账 — the server pays round income only to the players still in (startRound runs ps.startRound for alivePlayers(), eliminate() zeroes funds and pendingFunds); phaseBanner takes the viewer { alive, spectator } from the match screen (a spectator seat has no row in m.public); the idea from PR #237 (not merged: it sits on the #189 / #191 stack); GitHub #236; golden: unchanged (client text only)
sganggs2026-10-07 11:03:28 +08:00
0b306baa49
feedback5: version 0.2.0 — three stale size / content lines: the README English summary names the 39 summon models the local client provides, DEPLOY §7's comparison with the 0.1.x whole-tree layout re-measured, setup's art-download fallback 270 MB → 460 MB; golden unchanged
sganggs2026-10-07 04:45:49 +08:00
6aeee5ff70
feedback5: version 0.2.0 — package.json / package-lock.json / APP_VERSION (DEV_BUILD turns false, so the title-screen dev tag and the boot warning go too), README (the dev-branch warning removed, the badge, the version line), CHANGELOG 0.2.0 dated 2026-10-07, the zip and download sizes re-measured; golden unchanged
sganggs2026-10-07 04:39:43 +08:00
13b52450d6
feedback5: the co-op browser test reads phase, funds, price, free refreshes and shop slots in one store snapshot when it checks the R refresh — two page reads could straddle the m.private that answers R and pair the new slots with the old funds, failing "host: refresh cost 6 !== 5" under the full pass's load (1 of 4 in full020c; the same check passes alone, "funds 6 → 5"); golden: unchanged (test only)
sganggs2026-10-07 06:28:50 +08:00
2802a368c3
feedback5: the boss-field browser test checks 限伤 on a fixed heavy-hitter copy of its four fields (withHeavyHitters: the first player's first five operators become elite 焰影苇草, 洛洛, 深靛, 刺玫, 远牙 with a 维式重锤 on the same tiles, bonds recomputed at 999 — 精准 3, 维多利亚 3, 奥术 2), compared Chrome vs Node like the captured and 催泪瓦斯 copies; since CB3's 受到攻击时 change (5877800a) re-drafted seed 22 the bots' best leader hit is 141845, not ≥ 300000 (the old 663300 / 733317 came from a 维多利亚 + 精准 + 奥术 board the bots no longer draft); the cancel path is unchanged (37e7f002's four captures cancel the same 86 hits with the same digests on 2e83a6b's code); golden: unchanged (test only)
sganggs2026-10-07 06:28:50 +08:00
2e83a6b977
feedback5: Japanese, Korean and Traditional Chinese ship — the official game texts of the JP / KR / TW clients (data/i18n/ja.json 96.5 %, ko.json 97.4 %, zh-TW.json 91.1 % of 22 114 texts, built with build-i18n --lang from ArknightsAssets/ArknightsGamedata) and minimal UI packs public/i18n/ja.json, ko.json, zh-TW.json (a _meta manifest, no UI strings yet): ja / ko fall back to the English UI, zh-TW to the Simplified Chinese UI (no fallback; numbers in 萬 / 億); the owner's decision of 2026-10-07; UI translations welcome from the community; golden: unchanged (client text only)
sganggs2026-10-07 04:16:59 +08:00
9738bb829a
feedback5: 乌尔比安 knocked out while his S3 has moved him lies and redeploys on his deployment tile, not on the anchor tile — the owner's decision of 2026-10-07 on community report 28 「乌尔比安3技能期间死亡会留在3技能位移后的位置复活,应回到初始部署位复活」, a deliberate deviation from PRTS's "where it fell" for this 【移动】 only; golden: unchanged (the corpus moves him 23 times and knocks him out 6 times, never while moved)
sganggs2026-10-07 04:04:41 +08:00
9ca52ba798
feedback5: merge CB1 — community reports (bonds / strategies / items): a pair of colds on an enemy becomes the freeze and leaves no cold (the 谢拉格 wind no longer freezes for good), a 复活 (埃芒加德's 命结之秘, M3茧甲) is a knock-out and an immediate free redeploy where the operator lies (砾's and 瑕光's 被击倒时 / 部署时 layers fire), 佩佩's special refresh is paid, the result card hides the layers of 调和 / 协防干员 / 独行 / 绝技, the 炎佑 keeps off 外勤医疗's slot, 凯瑟琳's 定向投放 offers every shop item; 烛煌's 绝处重燃 before the hammer's lock and the 寻呼模块 / 简易通讯机 tier cap kept as they are (the owner's decisions of 2026-10-07); §25.15 → §25.21 (§25.15 is the shortcuts'); golden: vs feedback5 CB1's own rules — roster-005/009/010/012/014/015/016/018/026/029/031/033/036/040/042/046/047/049, bond-egirShip-high, bond-indomShip-low, bond-kjeragShip-high, bond-maniShip-high, bond-raidShip-low, bond-steadShip-high, bond-suntShip-low, boss-boss_2/3/4/6-pair, hidden-boss_8/9/10-pair, standin-07, matches solo-FUNNY-1, solo-NORMAL-1, solo-HARD-1, solo-ABYSS-1, coop3-ABYSS-5, coop4-FUNNY-6, coop4-ABYSS-7; vs CB1 what feedback5 changed since its base (CB2, CB3, CB4, CB5) plus roster-014
sganggs2026-10-07 03:54:35 +08:00
d841d6ac22
feedback5: merge CB3 — community reports (operator kits): 砾's normal attack hits twice at 50 % 伤害倍率 (a 频次 enemy loses 2), 乌尔比安's S3 moves only onto his own board (never behind the one-helper 联防 map's red gate nor onto a boss field's other half), the 「受到攻击时」 counters answer every enemy damage instance (菲莱 S2 on 深溟巢涌者's pulse, 星熊, 泡泡, 刺玫, 余, 玛恩纳, 年, 斩业星熊), an in-place 复活 restarts a deploy-timed skill so a 突袭 member jumps at once, 银灰's normal attack plays its own impact (and 雷蛇 / 初雪 / 圣约送葬人 drop a skill mode's sound); five reports pinned; §25.17 between CB2's §25.16 and CB4's §25.18; data/assets.json lists 银灰's impact (p_imp_spear_n.mp3 fetched); golden: vs feedback5 CB3's own rules — roster-002/004/005/008/010/012/016/024/033/044, bond-indomShip-low/high, bond-kazimierzShip-low/high, bond-lateranoShip-low, boss-boss_2-solo, boss-boss_4-pair/-solo, hidden-boss_8-pair/-solo, hidden-boss_9-solo, diy-051, matches solo-FUNNY-2, coop2-NORMAL-3, coop4-ABYSS-7, coop2-ABYSS-10-boosted; vs CB3 exactly what feedback5 changed since its base (CB2, CB4, CB5)
sganggs2026-10-07 03:41:48 +08:00
37e7f0020c
feedback5: DESIGN §25 tidied after the CB2 / CB4 / W5AD merges — every subsection number unique and in order: §25.15 shortcuts, §25.16 CB2, §25.18 CB4 (§25.17 stays CB3's), §25.19 CB5, the language packs §25.16 → §25.20; the intro names the new streams, lists each section once (§25.15 was missing) and gets the owner's two decisions of 2026-10-07; §5.5 and §10 named among the rewritten normative sections
sganggs2026-10-07 03:29:28 +08:00
66cdf493fc
feedback5: merge W5AD — language packs as the first type of a generic content pack: a language is a file in the language folder (public/i18n/<code>.json with a _meta manifest, optional data/i18n/<code>.json) or a pack folder (packs/<id>/pack.json); the server lists them live at /packs/index.json, the menu shows every pack, strings fall back pack → base → declared fallback → Chinese, broken placeholders are skipped, plurals follow Intl.PluralRules (zh / en unchanged); tools i18n.mjs template / check, packs.mjs list / index, build-i18n --lang ja|ko|zh-TW; the release zips ship packs/ and packs/index.json; docs/PACKS.md, docs/I18N.md §5; §25.16 for now (renumbered next); golden: unchanged vs feedback5; vs W5AD exactly what feedback5 changed since f1df0d3 (CB5's 18 bot matches, CB2's roster 13 / bonds 7 / fields 6, CB4's roster-016 / 7 boss fields / standin-04/06/08 / diy-028/124)
sganggs2026-10-07 03:27:10 +08:00
6ed3aed335
feedback5: merge CB4 — community reports (enemies / bosses): a 突袭 member lands only on its own player's board (never a boss field's hand / 临时整备区 rows nor the other half of a 联防 or boss field), a silenced 萨卡兹枯朽战士 leaves no 污染秽蚀, 萨卡兹穿刺手's acceleration ends with a stun or 束缚 and its first hit after a block adds move speed × 600 as its own instance, 自制投石机 ignores its block when it picks a target (no attack on the 排气格栅's hidden blocker), the briefing types' 7–9 waves, 新硎's 断刃, a freed prisoner in 联防, 鸭爵's 0–2 swaps and the moving leaders' routes pinned, four reports not reproduced; §25.18; golden: vs feedback5 CB4's own rules — roster-016, boss-boss_2/3/4/5/6-pair, hidden-boss_8/10-pair, standin-04/06/08, diy-028, diy-124, matches solo-NORMAL-1, solo-HARD-1, solo-ABYSS-1, coop2-HARD-4, coop4-ABYSS-7, coop2-NORMAL-8-serverrun; vs CB4 exactly what feedback5 changed since its base (CB2's roster 13 / bonds 7 / fields 6, CB5's 18 bot matches)
sganggs2026-10-07 03:21:57 +08:00
47079456be
feedback5: merge CB2 — community reports (healers / summons): 刺玫's S2 heals the most injured ally again (the counter's heal alone goes to her protégé), 琳琅诗怀雅 heals herself and her 破财消灾 cost restarts at 5 DP with every deployment, 赫默's S2 casts at full SP so the drone takes the field at once, the countdown summons (医疗探机, 诅咒娃娃, 海嗣 and four 自选 ones) take no damage, are never healed and show the life left on their bar, stacked ground areas stay readable; §25.16 after CB5's §25.19 (renumbered with the later merges); golden: vs feedback5 CB2's own rules — roster-001/002/003/005/008/016/018/027/035/037/045/046/049, bond-deputShip-low/high, bond-suntShip-high, bond-victoriaShip-low/high, bond-visiShip-low/high, boss-boss_1/3/5/7-pair, hidden-boss_9-pair, unite-1, matches solo-FUNNY-2, coop2-HARD-4, coop3-ABYSS-5, coop4-ABYSS-7, coop2-NORMAL-8-serverrun, coop2-ABYSS-10-boosted, coop2-NORMAL-14-standins; vs CB2 exactly CB5's 18 bot matches
sganggs2026-10-07 03:10:22 +08:00
de78d49f9b
feedback5 CB3: DESIGN §25.17 — the community reports of 2026-10-06 for operator kits and triggers (five fixed, five answered, 乌尔比安's revive tile a question for the owner); kit comments follow the counter rule
sganggs2026-10-07 02:42:18 +08:00
3bfe17bd07
feedback5 CB1: item 20 follow-up — bot-smarter's 坎诺特 case no longer assumes the round-7 level-up costs 9
sganggs2026-10-07 02:46:59 +08:00
b7d1007c1e
feedback5 CB4: DESIGN §25.18 — the normative text the stream touched (§5.5, docs/SIM.md, docs/PLAYING.md) named in its intro; two lines reflowed, the two-ducks odds stated
sganggs2026-10-07 02:46:12 +08:00
52cde9310f
feedback5 CB4: docs/SIM.md and DESIGN §5.5 (design/engine.md) name 自制投石机's 索敌不受阻挡影响 exception to "a blocked enemy attacks its blocker" and the silenced 萨卡兹枯朽战士's death without 污染秽蚀
sganggs2026-10-07 02:41:48 +08:00
37558f0d5e
feedback5: merge CB5 — community reports (match / UI): module 特性追加 shown after the base trait (text only), a shop upgrade fills its new slot at once, spectators follow the player they picked through every phase (g.watch carries the playerId — PR #189's idea), the boss shows in boss-round prep scouting, the final-boss prep shows the pair together with green avatar frames (PR #191's idea, official colour); §25.19 after the hotkeys' §25.15; golden: the 18 bot matches (the upgrade's new card), battles unchanged
sganggs2026-10-07 02:41:19 +08:00
e3e3a7dc20
feedback5 CB4: the moving leaders' routes checked on every boss field (item 29); 野鬃 pushing enemies off the map (38), 锏 pulling a weight-10 leader (39), 昆图斯's footprint as 3×3 (47) and the leaders' low attack rate (52) not reproduced — pinned, no change (community reports of 2026-10-06)
sganggs2026-10-07 02:40:50 +08:00
4a3d11b568
feedback5 CB3: pin four community reports of 2026-10-06 this tree already answers — 铃兰's S3 trigger (item 2), the 突袭 玛恩纳 (16.1), 归溟幽灵鲨 devoured (16.4), 荒芜拉普兰德 / 叙拉古 (46)
sganggs2026-10-07 02:39:30 +08:00
1ee39a79b5
feedback5 WAD: docs for language packs and content packs — docs/PACKS.md (the manifest, the two layouts, discovery and the index, what is served, the types and how a later type plugs in), docs/I18N.md §5 "Adding a language" (step by step for a translator) with the fallback chain, placeholder validation and plural categories, CONTRIBUTING / README pointers, DEPLOY §7 (packs/ and packs/index.json in the zips), ARCHITECTURE, docs/history/0.2.0.md §25.16; build-i18n --dict (a community dictionary for a language without an official client); the browser check of a pack file and a pack folder dropped in while the server runs (test/ui/i18n.e2e.test.js); golden unchanged
sganggs2026-10-07 02:34:35 +08:00
25b2a87b26
feedback5 WAD: language packs are the first type of content packs — a language is a file in a language folder (public/i18n/<code>.json, optional data/i18n/<code>.json) or a pack folder (packs/<id>/pack.json); the server lists them live at /packs/index.json (server/packs.js), the menu shows every pack, strings fall back pack → base → declared fallback (English) → Chinese, broken placeholders are skipped, plurals follow Intl.PluralRules (English unchanged), English carries a _meta manifest like any pack; tools: i18n.mjs template / check <code>, packs.mjs list / index, build-i18n --lang ja|ko|zh-TW (the official JP / KR / TW clients); the release zip ships packs/ and a generated packs/index.json; golden unchanged
sganggs2026-10-07 02:22:16 +08:00
3e13bb4436
feedback5 CB1: item 43 follow-up — the two tests that pinned 凯瑟琳's old shop-level cap (bands.test.js, ui/feedback1-offers.test.js) now check shop items of any tier
sganggs2026-10-07 02:38:16 +08:00
fe2a0cbc29
feedback5 CB3: 银灰's normal attack no longer plays his S3 swing (and S2 / S3 impact); 雷蛇, 初雪 and 圣约送葬人 lose a skill mode's impact the same way (community report of 2026-10-06, item 54)
sganggs2026-10-07 02:38:07 +08:00
97105cbfad
feedback5 CB2: DESIGN §25.16 — the community reports of 2026-10-06 of stream CB2 (healers, summons, timers): 12, 18, 33, 34, 26, 14 fixed; 11, 13, 31, 32 answered with the evidence; design/network.md notes the countdown summons' snapshot hp
sganggs2026-10-07 02:36:06 +08:00
5cfa802aee
feedback5 CB1: DESIGN §25.15 — the community reports of 2026-10-06 on bonds, strategies and items (seven fixed in six commits, five official behaviour, three not reproduced, two owner questions), and the §25 intro line
sganggs2026-10-07 02:35:25 +08:00
96859d8bbe
feedback5 CB1: three community reports that are the official behaviour, pinned — the 源石溶剂 drain on the 炎佑, two 变形同构体 阿戈尔 in a row devouring, 寻呼模块 / 简易通讯机 on 缪尔赛思 below shop level 6 (items 49, 50, 45)
sganggs2026-10-07 02:33:24 +08:00
3d472e2304
feedback5 CB3: an in-place 复活 (M3茧甲, 埃芒加德) starts a deploy-timed skill again, so a 突袭 member with one jumps at once after the revive instead of waiting out the 10 s idle (community report of 2026-10-06, item 44)
sganggs2026-10-07 02:33:10 +08:00
f1e462ef62
feedback5 CB2: persistent ground areas stay readable when they stack — a zone re-sent under one key updates in place, persistent areas are dimmer and share their light where they overlap (community report of 2026-10-06 「炼金单元等范围持续性技能特效太亮(尤其是多层叠加以后)」)
sganggs2026-10-07 02:32:28 +08:00
b168a78b7e
feedback5 CB5: DESIGN §25.19 — the community reports of 2026-10-06 of stream CB5 (match flow and UI): 16.2 (text only), 19, 56, 55, 51 fixed; the overlap with PRs #189 / #191; what the battle-history (22) and hotkey (48) requests would take
sganggs2026-10-07 02:31:06 +08:00
5877800a67
feedback5 CB3: the "受到攻击时" counters answer every damage instance from an enemy, not its attacks only — 菲莱 S2 now blasts on 深溟巢涌者's pulse, so do 星熊 S2, 泡泡, 刺玫 S2, 余 S1, 玛恩纳 无动于衷, 年 S2 and 斩业星熊 (community report of 2026-10-06, item 30)
sganggs2026-10-07 02:26:06 +08:00
9b164fdc66
feedback5 CB3: 乌尔比安's S3 moves only onto a tile of his own board — no longer behind the red gate of the one-helper 联防 map nor onto a boss field's other half (community report of 2026-10-06, item 27)
sganggs2026-10-07 02:17:58 +08:00
ef10164773
feedback5 CB5: the boss round's prep shows both players of a pair together — the partner's pieces on the other half, as the battle places them — and frames the pair's two avatars in the official green (community report of 2026-10-06, item 51)
sganggs2026-10-07 02:29:49 +08:00
1d3c76b11c
feedback5 CB1: 凯瑟琳's 定向投放 offers every shop item, not only those up to the shop level (community report 「凯瑟琳装备池没有超出商店等级的装备,原版凯瑟琳1升2都能有6本装备」, item 43)
sganggs2026-10-07 02:27:54 +08:00
17c96843ee
feedback5 CB2: the countdown summons (医疗探机, 诅咒娃娃, 海嗣; 自选 工程蓄水炮, 沙地兽, 打字机, 本能的召唤) take no damage — 活性源石 included —, are never healed, and their bar shows the life left (community report of 2026-10-06 「赫默的无人机、浊心斯卡蒂的海嗣等这种召唤物不会受到外来伤害…血量随时间减少」)
sganggs2026-10-07 02:27:33 +08:00
64f8bf912a
feedback5 CB2: 赫默's S2 医疗无人机 casts the moment its SP is full — the placed drone takes the field at once, injured ally or not; her SP stops while the stock is full (community report of 2026-10-06 「赫默的无人机在2技能好了之后应该秒放」)
sganggs2026-10-07 02:20:10 +08:00
a1d118a01f
feedback5 CB1: the 炎佑 no longer spawns on 外勤医疗's map-character slot — the medic / Touch stands beside it (community report 「Touch策略给的医疗干员会跟炎盟约的炎祐冲突,无法同时出场」, item 23)
sganggs2026-10-07 02:18:36 +08:00
64aaac8387
feedback5 CB2: 琳琅诗怀雅's 破财消灾 cost restarts at 5 DP with every deployment — a redeploy no longer keeps the doubled cost; a 联防 field already started at 5 (community report of 2026-10-06 「进入联防阶段…正常对局中死亡之后再部署复活费用也应该重置」)
sganggs2026-10-07 02:15:42 +08:00
212a073af6
feedback5 CB3: 砾's normal attack hits twice at 50 % 伤害倍率 after DEF, so a 频次 enemy loses 2 per attack (community report of 2026-10-06, item 16.5)
sganggs2026-10-07 02:12:08 +08:00
5d3ca339e4
feedback5 CB2: 琳琅诗怀雅's S1 仗义疏财 heals herself too — the 3×3 around her includes her own tile (community report of 2026-10-06 「琳琅诗怀雅不会治疗自己」)
sganggs2026-10-07 02:12:34 +08:00
f14f03a59f
feedback5 CB5: in a boss round's prep a watcher sees the boss field — the scouted player's half (mirrored on the right) with the leader standing at its spawn — instead of the normal board without a boss (community report of 2026-10-06, item 55)
sganggs2026-10-07 02:11:25 +08:00
183b8c12b6
feedback5 CB4: 鸭爵's “神秘顾客” swapping two enemies of one wave (two ducks included) is the official 0-2 per wave — pinned, no change (community report of 2026-10-06, item 35)
sganggs2026-10-07 02:11:27 +08:00
017390c93f
feedback5 CB2: 刺玫's S2 sends only the counter's trait heal to her protégé — her attacks keep healing the most injured ally in range, herself included (community report of 2026-10-06 「刺玫开技能(装备源石药剂)之后不能治疗」)
sganggs2026-10-07 02:09:01 +08:00
96794c5cc7
feedback5 CB1: 佩佩's special refresh is the next manual refresh at its usual price, no free refresh comes with it (community report 「佩佩策略的特殊刷新也是要花钱的,不是免费」, item 20)
sganggs2026-10-07 02:08:24 +08:00
fdb3ae1b46
feedback5 CB4: 自制投石机's targeting ignores its block (索敌不受阻挡影响) — blocked by an operator on the 排气格栅 with nobody else in range it does not attack, as in the official game (community report of 2026-10-06, item 24)
sganggs2026-10-07 02:07:51 +08:00
e8d2b45ad4
feedback5 CB5: an eliminated player (and a spectator seat) follows a player through every phase reset — the one it last watched, else the first player still in — instead of being sent back to its own empty board each round (community report of 2026-10-06, item 56; the idea of PR #189)
sganggs2026-10-07 02:06:10 +08:00
ebbbfe70ef
feedback5 CB1: the result card no longer prints the hidden layers of 调和 / 协防干员 / 独行 / 绝技 — they stack, the game never shows them (community report 「独行这种盟约是不能叠层的(顺便排查下还有没有类似的)」, item 21)
sganggs2026-10-07 02:01:12 +08:00
d40cb4e79e
feedback5 CB4: 萨卡兹穿刺手 — a stun or 束缚 ends its acceleration and drops the speed layers; its first hit after a block adds current move speed × 600 physical as its own instance (community report of 2026-10-06, item 36)
sganggs2026-10-07 01:59:52 +08:00
a3a0ddd2be
feedback5 CB1: a 复活 (埃芒加德's 命结之秘, M3茧甲) is a knock-out and an immediate free redeploy — 砾's and 瑕光's 被击倒时 / 部署时 layers fire on every revive (community report 「卡西米尔和艾芒加德策略似乎有BUG:像砾和瑕光这种死亡和部署的叠层效果…无法触发」, items 9 / 37)
sganggs2026-10-07 01:56:43 +08:00
f1df0d359d
feedback5 WAC: docs for the rebindable shortcuts — PLAYING §11 (the shortcut list and how to change it), README 操作 (Q / X added, the settings named), DESIGN §10 (design/client.md), §25.15, I18N's stale hotkey-line example
sganggs2026-10-07 01:56:25 +08:00
f2bec76176
feedback5 WAC: players rebind the in-match shortcuts in 设置 → 快捷键 (community request 「快捷键可不可以自己设置」, the owner's decision of 2026-10-07)
sganggs2026-10-07 01:56:19 +08:00
686f7ecf37
feedback5 CB4: three community reports already answered, pinned — the briefing types fill 7-9 of the 13 normal waves, at most 3 each (item 6, the official schedule; now stated in docs/PLAYING.md); 新硎's 4 断刃 since GitHub #107 (item 53); a freed prisoner re-enters 联防 confined (item 57)
sganggs2026-10-07 01:51:18 +08:00
7fb6a1c8b4
feedback5 CB4: silenced at its death, 萨卡兹枯朽战士 (组长) releases no 污染秽蚀 (community report of 2026-10-06, item 10)
sganggs2026-10-07 01:48:00 +08:00
464a823bc5
feedback5 CB5: a 调度中心 upgrade opens the new level's extra slot at once with a new card, the cards shown stay in place (community report of 2026-10-06, item 19; the official tutorial's 休整期 page: 「升级后将出现更多的商品栏位」)
sganggs2026-10-07 01:44:35 +08:00
4fd8d431e2
feedback5 CB1: 烛煌's 绝处重燃 and 坚固维式重锤's lock both work, one after the other — pinned (community report 「维多利亚的锁血锤和烛煌的锁血只生效了一个」, item 5)
sganggs2026-10-07 01:41:11 +08:00
e47b098d43
feedback5 CB1: a pair of colds on an enemy becomes the freeze, no cold is left — the 谢拉格 wind no longer freezes for good from 51 layers on (community reports 「谢拉格盟约冰冻时间没有随层数正确成长」 and 「…被在无法被任何干员攻击到的地方永控」, items 7 and 8)
sganggs2026-10-07 01:39:50 +08:00
219ab31a3d
feedback5 CB4: a 突袭 member lands only on its own player's board — never the boss field's hand / 临时整备区 rows, never the other half of a 联防 or boss field (community reports of 2026-10-06, items 40 and 16.3)
sganggs2026-10-07 01:36:53 +08:00
02353e13f8
feedback5 CB5: a module's added trait line (official additionalDescription, PRTS 特性追加) shows after the class trait, not instead of it — the 干员调配 module card (特性 + 特性追加 rows), its 局内数值, the detail card and the 自选 module row (community report of 2026-10-06, item 16.2: 114 of the 164 modules the screen offers showed the extra line alone)
sganggs2026-10-07 01:33:21 +08:00
30d9a41c51
feedback5 WAB: the collapsible bond strip test waits for the mock's answer to the teammate tap before it starts the battle (test/ui/bond-collapse.e2e.test.js; flaky 1 in 4 since 0.1.4, no product change)
sganggs2026-10-07 00:05:21 +08:00
714af994fc
feedback5: merge W5AA — community reports of 2026-10-06: the 孤岛风云 prisoners leave the gate confined (grey) and change model as their prefabs do, the 4th attack hits freed; a bounty enemy that dies with no operator behind it pays in 联防 too (the helper whose half it fell on); 忍冬's trigger and 枯朽之种's bounty were already fixed (pinned by tests); DESIGN §25.14 after round 18's §25.13; data/enemies.json regenerated offline on the merged code (round 18's model quirks + the prisoners' clips); golden: vs feedback5 exactly W5AA's moves (26 battles, solo-ABYSS-2, coop2-NORMAL-3, coop3-ABYSS-5, solo-HARD-9-boosted), vs W5AA exactly round 18's boss-pool moves
sganggs2026-10-06 22:35:10 +08:00
b9b647eecf
feedback5: merge W5Z — the co-op briefing's top bar fits the third tab (自选编队) in zh and en at every width (the only product bug of the 0.2.0 full pass); three tests hardened against load (client-wait counts calls, leftovers waits for the item to fly home, bossfield checks 瘫痪 on copies with a golden 催泪瓦斯); golden unchanged
sganggs2026-10-06 22:29:39 +08:00
2767adccc0
feedback5 WAA: DESIGN §25.14 — the four community reports of 2026-10-06 (two fixed, 忍冬's trigger and 枯朽之种's bounty already answered and pinned)
sganggs2026-10-06 22:05:47 +08:00
59b3c49b2b
feedback5 WAA: a bounty enemy that dies with no operator behind it — 无来源 damage, its own HP loss, another enemy — pays in 联防 too: the helper whose half it fell on (community report of 2026-10-06 「被源石地板烫死的悬赏没给赏金」)
sganggs2026-10-06 22:02:25 +08:00
24578cf2cb
feedback5 WZ: the real-server equip-replace check waits until 取消 has drawn the item back on its bench slot before it drops it again (test/ui/leftovers.e2e.test.js)
sganggs2026-10-06 22:00:26 +08:00
6372f2892b
feedback5 WAA: the 孤岛风云 prisoners leave the gate confined and change model as their official prefabs do — grey while 【禁锢】, the blinking orange warning before the last confined attack, red once freed; the 4th attack already hits freed (community report of 2026-10-06 「囚徒类敌人出门就是已解放的模型」)
sganggs2026-10-06 21:57:51 +08:00
66ae86b969
feedback5 WY: flying units hover 1.3 tiles (the client's 0.35 ÷ the standard prefab scale 0.27); the 帝国炮火先兆者 pair is drawn 1.263× taller and 木制瑞印 mirrored, as their official prefabs (from PR #211 by @xcdoge; the owner's decision of 2026-10-06)
sganggs2026-10-06 21:39:01 +08:00
4e58481706
feedback5 WY: the Final Assault / Hidden Core leader pool is bloodPoint × the players alive when the fight starts (solo × 1), replacing 「保持固定血量」; 胄's drone share passes 限伤 (from PR #209 by @qingjingshenghuo; the owner's decision of 2026-10-06)
sganggs2026-10-06 21:28:38 +08:00
661f1c074e
feedback5 WY: a newly merged elite 拉普兰德 is a new 拉普兰德 — its first manual refresh this round adds +8 even when its copies already fired (GitHub #169; the owner's decision of 2026-10-06)
sganggs2026-10-06 21:08:12 +08:00
ba4f5e195a
feedback5 WZ: the 干员调配 overlay's top bar keeps its right column clear of the tabs (public/css/screens/loadout.css)
sganggs2026-10-06 21:31:57 +08:00
bb46713718
feedback5 WZ: the waitForFunctionLong slicing test counts slices, not milliseconds (test/e2e/client-wait.test.js slicedPage)
sganggs2026-10-06 21:08:33 +08:00
205bca7a07
feedback5 WZ: the browser boss-field check takes its 瘫痪 from copies of the four captured specs with a golden 催泪瓦斯 in every operator's second slot, compared Chrome vs Node like the originals (test/sim/bossfield.browser.test.js withTearGas)
sganggs2026-10-06 21:07:23 +08:00
269d7b0bcf
feedback5 WY: 华法琳's granted trait stops at the data's 7 / 14 layers per battle, not 12 / 24 (GitHub #175; from PR #192 by @kukiC; the owner's decision of 2026-10-06)
sganggs2026-10-06 21:03:56 +08:00
463352d9bc
feedback5 WY: 拟态物质 with 2 copies owned and none left in the pool gives nothing instead of a random same-bond operator (GitHub #207)
sganggs2026-10-06 20:55:49 +08:00
e1ffcd1b07
feedback5 WX: a browser check of the 39 local-client summon models on the prep board (test/render/token-models.browser.test.js, RENDER_E2E=1): each draws its official model on its idle clip over its tile, Front facing right and mirrored facing left, with no console error or failed request
sganggs2026-10-06 20:20:07 +08:00
575333137c
feedback5 WX: the 39 summon models no web dump carries come from the local client (extract.py TOKEN_SPINES) and are drawn instead of the avatar diamond when data/local-assets.json lists them
sganggs2026-10-06 20:16:20 +08:00
83d76e507d
feedback5: a 自选 summoner promoted in place on the board (升华 / 博士投影) tops its summon stacks up to the elite's deploy limit, like an elite merged onto a tile (麦哲伦 / 令 3 → 4, 望 6 → 7 with their modules; found by the 0.2.0 interaction review, round 17); test fails without the fix; golden unchanged
sganggs2026-10-06 19:28:04 +08:00
8ce6d280bd
feedback5: merge W5W — DESIGN §25 catch-up (sleep port, board tap, packaging, the owner's 2026-10-06 answers, i18n phase 2, the 自选 voices, the summon-model gap) and the DESIGN split: docs/DESIGN.md is the index, current rules in docs/design/*.md, per-release history in docs/history/*.md, section numbers unchanged (the parts reassemble the old file byte for byte; test/docs-paths.test.js guards the index and every DESIGN §N citation); test/package.test.js builds its fake home path at run time
sganggs2026-10-06 19:22:14 +08:00
f062be5440
feedback5 WW: DESIGN's header says Chinese by default with an English switch since 0.2.0 (§25.2, docs/I18N.md), not that every player-facing text is Chinese
sganggs2026-10-06 19:11:29 +08:00
a7fbc7da33
feedback5 WW: links after the DESIGN split — README's docs table (DESIGN.md is the index, the rules in docs/design/, the revisions in docs/history/), ARCHITECTURE.md (§5 / §6 / §8 / §9 / §14 link their design/ files; the docs/ and test/helpers/ rows), CONTRIBUTING.md (deviations and rule changes go into docs/design/ with the release's revision in docs/history/; 中文 and English), SIM.md (§5 → design/engine.md), META.md (§6 / §8 → design/match.md, design/network.md), DESIGN §2's docs/ line names the index, its parts and the newer docs; citations "DESIGN §N" stay as they are (the index resolves them)
sganggs2026-10-06 19:11:08 +08:00
38f4a3d9ba
feedback5 WW: .git-blame-ignore-revs lists the DESIGN split (da1f583: docs/DESIGN.md → docs/design/ and docs/history/, verbatim), so blame skips it; git blame -C -C follows the moved lines to docs/DESIGN.md
sganggs2026-10-06 19:08:53 +08:00
da1f5830ca
feedback5 WW: split DESIGN.md into docs/design/ (the current rules) and docs/history/ (the per-release revisions), section numbers kept — a pure move: every ## N. block (heading, text, the --- after it) moves verbatim, each part file only gains a title line and a pointer to the index; docs/DESIGN.md keeps its header and becomes the index (a § → file table). design/overview.md §0 §1 §2 §11 §12, geometry-time.md §3 §4, engine.md §5 §7, match.md §6 §16, network.md §8 §14, client.md §9 §10 §13 §15; history/v2.2-playtest3.md §17, v2.3-playtest4.md §18, v2.4-playtest5.md §19, v2.5-playtest6.md §20, 0.1.1.md §21, 0.1.2.md §22, 0.1.3.md §23, 0.1.4.md §24, 0.2.0.md §25. Round trip: the index header plus the blocks in § order reproduce the pre-split DESIGN.md byte for byte (813 785 bytes, sha256 fe81884c…). Tests: test/helpers/designDocs.js designText() (the split script's splitBlocks / designText) reassembles the text in § order; docs-consistency and feedback1-gaps read it instead of docs/DESIGN.md (every pin unchanged); docs-paths guards the split (each § exactly once in docs/design/ or docs/history/, the index row of every file names its sections, every "DESIGN §N(.M)" cited in the repository is a heading — 779 in 327 files today); package.test keeps docs/design/ and docs/history/ out of the zips; golden unchanged
sganggs2026-10-06 19:08:27 +08:00
6b08971203
feedback5: the public dev branch is marked as a development build (the owner's decision of 2026-10-06): version 0.2.0-dev (title footer, boot banner, /healthz), a README warning under the title (unstable, not for public servers, how to report, shared browser storage, no release zips), a visible 开发版 tag on the title screen (zh / en), a boot-banner warning for hosts, and tools/package.mjs refuses a dev version without --allow-dev; test/version.test.js checks all of it
sganggs2026-10-06 19:05:40 +08:00
0f9009954d
feedback5 WW: DESIGN §25 catch-up with what merged after e2bb090 — §25.2 i18n phase 2 (W5S: 1 056 literals wrapped, extract 0, server data texts localized, what stays Chinese), §25.9.1 the sleep-unblock port (W5R: feedback5's golden list, 酒神's 迷狂牢笼 skips sleepers; §24.9's heading names the 0.2.0 files), §25.9.2 the board-tap / long-wait port (W4C, PR #149), §25.11 the owner's items of 2026-10-06 and the items the sources settled (W5V: 望's stock, triggers through summon areas, 突袭 prefers blocking tiles, 泥岩 闭锁, 忍冬 / 深靛 / 阿), §25.12 packaging (W5U: package / package:lite, sizes, 焰狐龙梓兰's art dropped, dec-X / WAH-Y) and the 自选 voices (6499f4b), the summons with no Spine model as open polish; §25.10 records the owner's answers (damage-frame swing kept, 望's stock, summon areas, the #148 landing) and drops them from the open list; the intro, §25.1 / §25.4 / §25.5 / §25.7.2 / §25.8.5 / §25.8.8 and §24.2 point to the new items; PLAYING.md: only player names, the reworded multi-round 悬赏 text and texts the EN client lacks stay Chinese; DATA.md: ownedPool has 71 charIds, §18 cites DESIGN §25.3; README lists docs/I18N.md; garrisons/meta.js cites DESIGN §3 (there is no §3.1); golden unchanged
sganggs2026-10-06 19:01:28 +08:00
6499f4b32d
feedback5: data/assets.json gains the battle voices of the 71 自选 operators (fetch-assets --add-only: 994 lines, 25.5 MB; voiceChars 120 → 191); nothing else in the manifest changed
sganggs2026-10-06 18:41:28 +08:00
3ac88dea43
feedback5: merge W5S — i18n phase 2: every player-facing Chinese literal in the client, shared and server goes through t() / tParts() / N_() (1 128 → 0; en.json 1 015 entries), server-sent data texts show the English record, a language switch refreshes cached names; test/i18n.test.js enforces extract 0 / check --strict over the whole tree; Chinese output unchanged (per-file render proof); golden unchanged
sganggs2026-10-06 18:39:35 +08:00
250ad254a6
feedback5 W5S: a language switch in the middle of a screen re-reads the game texts — useGameData(), the 干员调配 / 干员持有 rosters, the strategy list and the open detail card list data.locale() among their memo dependencies (they kept the records of the language they were built in); docs/I18N.md
sganggs2026-10-06 18:35:33 +08:00
73b810ec45
feedback5: merge W5V — the owner's decisions of 2026-10-06: 望's placed 棋子 take and return her stock (her skills cycle all battle), skill triggers through summon ranges (麦哲伦 S1, 令 S3, 电弧 S2 / S3; summoner.js summonTriggerArea), a melee 突袭 member prefers a tile where it can block (GitHub #148); from the sources: 泥岩 S3 闭锁 releases and stops blocking (PRTS 异常效果 不可阻挡), 忍冬 / 深靛 / 阿 pinned as they are, the 自选 kits' 庇护 copies use holdProtect; DESIGN §24.2's #148 note points to §25; golden: roster-040, boss-boss_2 / 3 / 4 / 6 / 7-pair, hidden-boss_10-pair moved (W5V's own; the sleep-port moves kept)
sganggs2026-10-06 18:33:11 +08:00
c2e77c7fe9
feedback5 W5S: i18n phase 2 coverage — test/i18n.test.js scans the whole client, shared and the server messages (no Chinese literal unwrapped, every msgid translated: extract 0 and check --strict as a test; floors 1 000 catalog entries, 1 350 msgid uses), public/i18n/en.json drops the 64 fragments / renamed msgids the sweep replaced (none is a data text), docs/I18N.md: phase-2 coverage, what stays Chinese and why, the server's game texts, the audit's skip rules
sganggs2026-10-06 18:31:28 +08:00
0025ceac16
feedback5 W5S: i18n phase 2, match texts the server sends — a 机变 card's and an effect entry's name and description, the draft's name, a reward offer's label and the result title are shown from the localized data when the server's Chinese text is the data record's own (data.lookupRaw + ui/lang.js sentText; names through tName), a text the server reworded (a multi-round 悬赏) stays as sent; Chinese output unchanged by construction (in Chinese the localized record is the raw one); test/i18n-server.test.js covers it
sganggs2026-10-06 18:27:13 +08:00
a59ba07dff
feedback5 WV: 忍冬, 深靛 and 阿 settled by the sources with no rule change — PRTS's "无法选中被自身阻挡而没有位于技能范围内的敌人" is 忍冬 S2's 备注 (its kit selects on the 3-12 only; S3 has no such note), 深靛 S1's 攻击倍率 applies to her stored energies (PRTS S1 备注, the client's ChargeAttackS1 atk_scale), 阿 S2 / S3 keep the data's DEFAULT (no trigger row, the skill prefabs cast with no target and keep the SP); kit comments and two pin tests, golden unchanged
sganggs2026-10-06 18:22:44 +08:00
7697b4ff40
feedback5 W5S: i18n phase 2, shared and server texts — shared/constants.js msgid tables (difficulties, phases, error codes, emote sets and labels) marked N_(); what is not player text is marked and skipped by the audit: error details and logger lines (tools/i18n.mjs reads detail: values, log.* calls and i18n-ignore-file), the developer invariant reports, the bilingual HTTP error pages, the AI seats' player names, the dev STUB match, data keys / fallbacks; the 虫动 emote set follows the official EN name (Slug Style); node tools/i18n.mjs extract now reports 0
sganggs2026-10-06 18:21:43 +08:00
5a11926003
feedback5 WV: the six 自选 kits that kept their own 庇护 copies (淬羽赫默, 黍, 斥罪, 森蚺, 娜斯提: PROTECT / protectMods / applyStrongest; 遥: protectMods for her separate bubble key) use the shared tier1.js PROTECT / protectMods / holdProtect, with a guard test — a pure refactor, golden unchanged
sganggs2026-10-06 18:19:26 +08:00
dfb528802e
feedback5 WV: 泥岩 S3 秽壤的血脉's 10 s dormancy is 闭锁 = 强制缴械 + 无敌 + 不可阻挡 — she blocks nobody and lets go of the enemies she held (PRTS 泥岩 S3 备注 "实际将会进入闭锁状态"; PRTS 异常效果: 不可阻挡 "无法阻挡/被阻挡,自动解除阻挡"), not "keeps blocking"; kits_alt_t4 updated on purpose; golden: roster-040 moved (it fields 泥岩 S3: the enemies she held walk on during the 闭锁)
sganggs2026-10-06 18:16:48 +08:00