17d9960fb4
feedback5: merge W5F — ACTIVE_RANGE also replaces SEARCH rows and covers 深巡 S2, 纯烬艾雅法拉 S1 at full SP, 伺夜 S1 only with his pack on the field
sganggs2026-10-05 19:05:06 +08:00
a252d48add
feedback4: the mock scouting-pen test expects the 'prep' camera on the way back from a teammate's pen (PR #129 frames a scouted prep board like the own prep)
sganggs2026-10-05 19:02:31 +08:00
e89901f64f
feedback5 WF: 伺夜 S1 领袖的呼唤 fires only while his pack is on the field (PRTS 备注 「仅场上存在狼群时可触发技能」, the owner's decision of 2026-10-05)
sganggs2026-10-05 18:53:08 +08:00
f3e7919225
feedback5 WF: 纯烬艾雅法拉 S1 无声润物, an AUTO toggle that acts on her allies only, turns on as soon as its SP is full (the owner's decision of 2026-10-05)
sganggs2026-10-05 18:48:42 +08:00
383fe4a49e
feedback5 WF: ACTIVE_RANGE also replaces the SEARCH row and covers 深巡 S2 — a skill whose running range strictly contains the own one casts with an enemy inside it (the owner's decisions of 2026-10-05)
sganggs2026-10-05 18:45:13 +08:00
f317adf003
feedback5 K2: stand-in kits for Stormeye, Pith and Raidian — every skill, talent and module at every form
sganggs2026-10-05 18:34:46 +08:00
acbb70dc6b
feedback5: merge K3 — stand-in kits 郁金香, Mechanist, Touch (Touch shares the 外勤医疗 code; every skill on every form)
sganggs2026-10-05 18:28:54 +08:00
e2be2012e3
feedback5 K3: the 郁金香 stand-in kit (standin-acpion.js) — 无垠之心 / 浪潮之心, S1 钻心, S2 迅瞬 (1 DP every interval), S3 只余芬芳 (8 slashes on her Spine clip's events, 无敌 / 无法阻挡 / 眩晕冻结免疫, 可对空 — PRTS 备注 of the same skill), module SOL-X
sganggs2026-10-05 18:27:09 +08:00
d82511286c
feedback5 K3: the Mechanist stand-in kit (standin-acfend.js) — 精研材料 / 反馈装甲 with PRTS's 0.1 s checks (the ASPD cut lasts while anyone blocks the enemy), S1 结构稳定, S2 不变性原理 (×2 / ×3 反馈装甲), S3 应力倒置 (per-second arts to the enemies she blocks), module PRO-X; the data's 重装 trigger kept
sganggs2026-10-05 18:26:49 +08:00
55f53fdcb0
feedback5 K3: the Touch stand-in kit (standin-acmedc.js) — S1 慨赠, S2 宛如天启, module PHY-X; S3 恳切福音 and 攫升 / 超脱 run the 外勤医疗 strategy's Touch code, now exported from content/tokens.js (touchGospel, mapCharTalents; the strategy unchanged, golden identical)
sganggs2026-10-05 18:26:21 +08:00
5090ac1ed3
feedback5: merge K1 — stand-in kits Sharp, 领主·Sharp, Misery (every skill on every form; PRTS-checked)
sganggs2026-10-05 18:25:17 +08:00
cb05592a06
feedback5 K1: Misery's stand-in kit (char_615_acspec, for 缄默德克萨斯 / 山 / 新约能天使 / 锏) — the three ON_DEPLOY passives at every deployment (S1 dodge / double-hit chance, S2 ATK / ASPD for 10 s, S3 burst then drag and 停顿 on unblocked ground enemies, on a redeploy), 二象命末 double hits, 四维分离, EXE-X
sganggs2026-10-05 18:23:51 +08:00
199d3d73bf
feedback5 K1: 领主·Sharp's stand-in kit (char_617_sharp2, for 水月 / 玛恩纳 / 维娜·维多利亚 / 妮芙) — S1 沉默的爆发 (ATK / ASPD up, two targets, ranged attacks at full ATK), both talents, LOR-X as the 10 % ATK arts 流失 PRTS describes (no RES, shield or invulnerability)
sganggs2026-10-05 18:23:51 +08:00
558fcedf90
feedback5 K1: Sharp's stand-in kit (char_609_acguad, for 忍冬 / 银灰 / 百炼嘉维尔 / 隐德来希 / 归溟幽灵鲨 / 佩佩) — S1 快刀 double hits, S2 亮剑 DEF to 0 / max HP / 160-180 % attacks, S3 力战不竭 layers (one before each attack, reset on a new target) and HP never below 1, both talents, DRE-X 115 % on blocked enemies
sganggs2026-10-05 18:23:51 +08:00
eac9b9737d
feedback5 K2: applyStatus stackAs — a 同名效果取最高 status can compete with another strength than its effect (Raidian S3's 虚弱, PRTS 备注 "在叠加时视为90%…的虚弱,仅影响叠加优先级"); no caller passes it yet, golden unchanged
sganggs2026-10-05 18:20:48 +08:00
ece75b6853
feedback5: merge W5E — a full hand refuses buys and reward picks, temp pieces fill freed slots (#82); 联防 plays on the official escaped maps (#41)
sganggs2026-10-05 18:19:36 +08:00
8a43624935
feedback5 WE: 联防 is played on its own map, the escaped template level (GitHub #41, item 3) — act2autochess constData escapedBattleTemplateMapSinglePlayer / MultiPlayer = level_act1autochess_escaped_single / _multi name the level of the 联防 battle, and its map is the field: two road halves (cols 3–9 and 11–17, rows 9–12) joined at col 10, no water, crates or devices (until 0.1.3 the round's stage, opened to both halves). tools/build-data.mjs builds both into data/stages.json after the 11 battle stages (kind 'unite', helpers 1 / 2, weight 0, inactive, no modes, the name 联防阵地(N名玩家) the remake's own label [ASSUMED]; validation ties config.unite.templates to them); regenerated offline, a JSON compare shows only the two added records. unite.js uniteStageId picks the map of the helper count (escaped_single's routes enter at col 10, escaped_multi's at col 18 through (9,10)); match/unitePhase.js fields the 联防 battle on it (the round's stage only with data that lacks it); each helper on its prep tiles, the first of two shifted 8 columns onto the right half as before (the official halves; player_map_lr_offset 8). Client: screens/game.js draws the shown field's own map and restores the board's on leaving it (a 2-line change in a file of the R5 split; render/app.js enterBattle already loads m.field stageId); the dev mock's 联防 follows. The 联防 BGM (PR #110) is unchanged. Tests: test/match/feedback5-unite-map.test.js (both combat modes, 1 and 2 helpers, degraded data), test/data.test.js, test/render/tiles.test.js. Docs: DATA §12, META §4, DESIGN §3, PLAYING §5. Golden: fields unite-1 / unite-2 (the battle's stage → the 联防 map) and the 6 co-op match scenarios with a 联防 round (coop2-NORMAL-3, coop2-HARD-4, coop3-ABYSS-5, coop4-FUNNY-6, coop4-ABYSS-7, coop2-NORMAL-8-serverrun); roster / bonds unchanged (tools/golden.mjs leaves the 联防 maps out of its stage list)
sganggs2026-10-05 18:11:33 +08:00
db1b44bb71
feedback5 WE: the 整备区 rules of PRTS 卫戍协议/帮助 §手牌区 (GitHub #82, second part) — a full regular hand refuses every purchase and reward pick, also one whose copy would complete a merge at once ("当常规手牌区全满无空位时,玩家将无法执行使手牌溢出的操作" — "例如招募/购入等通常情况下会增加手牌的操作"; BWIKI 盟约 says the same with no exception; the reporter checked it in the official game), and a free regular slot pulls the 临时整备区 in at once ("常规手牌区出现空位时自动移入"): PlayerState._fillHandFromTemp runs in every recompute, the temp row right to left (the order it fills, [ASSUMED]) into the hand's free slots right to left — after a sale, a deployment from the hand, a merge that consumed hand copies, an item equipped / destroyed / used, a summon stack removed with its owner. invariants.js: temp holds pieces only while the hand is full. The client's refusal path follows (gameLogic.shopBlockReason: 整备区已满 on every card — a one-line change in a file the R5 split moves). Bots: a full hand never tries a purchase, an affordable third copy of a held pair sheds the weakest hand single first (never one of this prep), resolveTemp decides temp right to left. Tests: test/match/feedback5-hand.test.js; merge / hardening / playtest6-elite-to-board / economy / prep-bench / uiFixes updated to the rule. Docs: META §1 Hand, DESIGN §6, PLAYING §3, research 00-INDEX / 01 (the old "a merge-completing purchase is allowed" corrected). Golden: 3 match scenarios moved (coop2-NORMAL-3, solo-HARD-9-boosted, coop2-ABYSS-10-boosted — bot seats that reached a full hand: the merge-completing purchase refused or a single shed first, temp pieces moving in by themselves); every battle digest unchanged
sganggs2026-10-05 17:57:19 +08:00
8a123f6b11
feedback5: the browser battle loads data/backups.json too, so a stand-in fights the same in the browser as on the server
sganggs2026-10-05 17:48:10 +08:00
1576842641
feedback5 WC: 伺夜 S2 and 浊心斯卡蒂 S2, AUTO skills that act on allies, fire without an enemy (audit after GitHub #124)
sganggs2026-10-05 17:48:07 +08:00
cbe545c96b
feedback5: merge W5D — stand-in battle plumbing (kit by stand-in charId, getChess standIn, harness standIn: true), generic ON_DEPLOY / 冲锋号令 / stat talents, 重装 rule for 预备干员-重装 and Mechanist
sganggs2026-10-05 17:47:22 +08:00
ed2b679f83
feedback5 WD: the sim fields a 补位 stand-in — getChess(id, { standIn: true }) over data/backups.json, PlayerBattleInput standIn: true, kits by the stand-in's charId (never the replaced operator's), kits/ops/standin-<codename>.js registry, harness standInsganggs2026-10-05 17:44:58 +08:00
286a34064f
feedback5 WD: the 重装 exception for the stand-ins — tools/build-data.mjs STANDIN_TRIGGER_DEVIATIONS: every skill of 预备干员-重装 and Mechanist casts with an enemy in range (DEFAULT, rawRule TAKE_DAMAGE) on every form
sganggs2026-10-05 17:44:43 +08:00
01fddd3021
feedback5 WC: a MANUAL skill whose running attack range strictly contains the own range casts as soon as an enemy is inside it (ACTIVE_RANGE, the owner's rule of 2026-10-05)
sganggs2026-10-05 17:44:33 +08:00
a325fb41ad
feedback5 WD: generic kit — an ON_DEPLOY passive without a duration key lasts the skill's own duration from every deployment (一击即退, 10 s), 冲锋号令 gives its DP at full SP, genericTalents for the stand-ins without a kit
sganggs2026-10-05 17:44:33 +08:00
ebfda7e657
feedback5 WC: 沉沙 / 新硎 断刃 give one ATK layer while a blade is held and lose it with the last one (GitHub #107)
sganggs2026-10-05 17:29:34 +08:00
e9b6f7e706
feedback5 WC: 琳琅诗怀雅 S2 见面礼 throws its champagne bomb on range x-6, onto an enemy's tile, with no enemy needed (GitHub #116 item 2)
sganggs2026-10-05 17:27:03 +08:00
29b0ccb962
feedback5 R5: point the layout docs at the split client modules
sganggs2026-10-05 17:26:08 +08:00
b1ec04b58c
feedback5: merge R2 — server/match/Match.js split into server/match/match/* and PlayerState.js into server/match/player/* (fixed install order, same exports); golden unchanged
sganggs2026-10-05 17:24:48 +08:00
dd07dc1ec1
feedback5 R5: split the match screen's standalone pieces out
sganggs2026-10-05 17:24:20 +08:00
aaef748ad9
feedback5 R5: split the field-view helpers out of the render app
sganggs2026-10-05 17:22:20 +08:00
cea593561a
feedback5 R2: after the move — match/bossRounds.js imports finalAssault.js once (Match.js had two import lines for it), match/watch.js drops the stale first doc line of _prepScoutSig (superseded in the review of PR #129)
sganggs2026-10-05 17:18:54 +08:00
d9750d8aba
feedback5 R2: docs and comments follow the split — DESIGN §2 and META list server/match/match/ and server/match/player/ (the classes: constructor + method install), research 09 / 11 name the new homes (Match.watch in match/watch.js, the settle in match/settle.js, the facing changes in player/placement.js / items.js), code comments that pointed at moved code say where it lives now (shared constants, client bandDraft / observe / result / hud / teamPanel / underframe / game-mock, test comments); .git-blame-ignore-revs lists the two pure-move commits. DESIGN §17–§23 history citations, the "before" column and the proposal of research 11, tools/build-data.mjs (Match.js still exports BAND_TURN_SECONDS) and public/js/ui/gameLogic.js (in the client stream R5) are left as they are
sganggs2026-10-05 17:18:22 +08:00
64443b4aab
feedback5 R2: PlayerState.js → server/match/player/*.js, a pure move — the 87 class members (82 methods and the isHumanActive / botControlled / deployCap / deployCount / tempEmpty getters), verbatim with their comments, go to 9 per-concern method containers (basics, pieces, acquire, economy, placement, items, prep, round, views) that PlayerState.js installs on PlayerState.prototype in a fixed order with class-method descriptors (a name defined twice throws); HAND_SIZE, TEMP_SIZE, MAX_OFFER_SLOTS, OK and fail go to player/common.js; PlayerState.js keeps the header (+ a code-layout paragraph), the class with its constructor and the FIELD re-export. Section-header comments are replaced by the module headers. docs-consistency reads the method modules (playerText), pins layerGainRoom in player/economy.js and checks that no Match / PlayerState module has a layerRoom
sganggs2026-10-05 17:15:12 +08:00
c1b8292f92
feedback5 R5: split the battle effect system into modules
sganggs2026-10-05 17:13:07 +08:00
1ca4936f0a
feedback5 R2: Match.js → server/match/match/*.js, a pure move — the 167 class members (166 methods and the soloUntimed getter), verbatim with their comments, go to 16 per-concern method containers (platform, infra, messaging, views, watch, intents, pause, phases, spDraft, prep, combat, clientCombat, reports, unitePhase, bossRounds, settle) that Match.js installs on Match.prototype in a fixed order with class-method descriptors (a name defined twice throws); the constants the modules share go to match/common.js (FLOW_TICKER_PRIORITY, DELAYS, BAND_TURN_SECONDS re-exported by Match.js; OK, fail, BOSS_CLOCK_MS), GAME_TYPES to platform.js, the boss-round budgets / rates to bossRounds.js; Match.js keeps the header (+ a code-layout paragraph), the constructor-only constants and the class with its constructor. Section-header comments are replaced by the module headers. docs-consistency reads the method modules (matchText) and pins layerGainRoom in match/settle.js
sganggs2026-10-05 17:10:30 +08:00
eb04f5dfa4
feedback5 R5: split the in-match UI logic into modules
sganggs2026-10-05 17:06:45 +08:00
bce182703b
Watching a teammate shows their hand, 临时整备区, equipment, strategy and effects (#129)
Luo Xingyu2026-10-05 16:47:33 +08:00
dcce7858c2
feedback5: shared/standIn.js JSDoc marks the selection's skillIndex optional and documents diyRecord, so the checkJs slice passes
sganggs2026-10-05 16:35:33 +08:00
3288afc787
feedback5: merge R6 (tooling) — correctness-only ESLint, a first checkJs slice + core typedefs, tools/check-imports.mjs, tools/package.mjs (+ --lite), CI tooling job
sganggs2026-10-05 16:34:01 +08:00
e1de092b74
feedback4: the lobby imports ERR, so a failed 观战 join shows its toast instead of throwing (PR #119's error path; found by the 0.2.0 lint)
sganggs2026-10-05 16:32:44 +08:00
6a7a23765a
feedback5: merge R4 — operator kits one file per chess (kits/ops/*, kits/shared/*, kits/index.js in the old registry order) + kits/README.md with the fidelity checklist; golden unchanged
sganggs2026-10-05 16:30:29 +08:00
920624e743
feedback5 R4: kits/README.md — how a kit file is built, what it may use (shared helpers, the battle API of docs/SIM.md), naming, registration, tests, the fidelity rule and a ten-item fidelity checklist per operator with example kits and tests (for the stand-ins, self-select 6★ operators and GitHub #136); test/content/kits_layout.test.js checks that every ops/ file is listed in kits/index.js, named after its chess id and charId, registers exactly its kit, and imports nothing Node-only or server-only and no clock / Math.random
sganggs2026-10-05 16:26:29 +08:00
4dff116c19
feedback5 R6: run lint, import check and typecheck in CI
sganggs2026-10-05 16:23:54 +08:00
b6c9918c46
feedback5 R6: add a player package tool with a lite dry-run
sganggs2026-10-05 16:23:47 +08:00
95842cef6e
feedback5: merge R3 — server/sim/Battle.js split into server/sim/battle/* (prototype methods in fixed order) and content/enemies.js into content/enemies/* (same KITS order); golden unchanged
sganggs2026-10-05 16:23:17 +08:00
014259b75f
feedback5 R6: check that sim and match stay off the net and the client
sganggs2026-10-05 16:20:55 +08:00
5024559028
feedback5 R3: docs and comments follow the split — DESIGN §2 and SIM.md list server/sim/battle/ and content/enemies/, SIM.md and research 08 name the new homes (archetypes.js frontGuard / ep / dmgZone / pollution, helpers.js areaAllies / zone / setForm, fly.js kitShell), code comments that pointed at moved code say where it lives now (enemies.js header, battle/blocking.js, battle/queries.js, sim constants / snapshot / units / ai / targeting / devices / bosses, shared constants / protocol, render style / interp); .git-blame-ignore-revs lists the two pure-move commits
sganggs2026-10-05 16:20:06 +08:00
37b1c0a644
feedback5 R4: paths after the kit split — DESIGN §7 and SIM.md (layout, §7.2 kit contract, kit citations), research 09, code comments (content/generic, tokens, items/battle, shared/loadoutRecord, render fx / demo), test comments, and the kits' own comments that named tierN.js; DESIGN §17–§23 history citations are left as they are
sganggs2026-10-05 16:18:58 +08:00
64a7f48efa
feedback5 R6: add a small checkJs slice and core typedefs
sganggs2026-10-05 16:18:28 +08:00
babc35b72a
feedback5 R6: add a correctness-only eslint
sganggs2026-10-05 16:16:45 +08:00
560328cacc
feedback5 R3: content/enemies.js → content/enemies/*.js, a pure move — every declaration verbatim with its comments: helpers.js (shared constants, per-battle state, ability bookkeeping, selection / damage helpers), archetypes.js (ability archetypes and the archetype kits reused by several keys), one file per kit family with its kit-only constants and its part of KITS (invisible, times, element, dot, reflection, fly, special, leaders — the kitLeaderMisc entries that closed the SPECIAL section open the leaders part, so the order stands); enemies.js keeps the header, the dispatch hooks and dispatchers, STATS_ONLY and the chalice share, builds KITS from the parts (188 keys, same order, same functions) and re-exports all 43 names it exported before. docs-consistency pins kitMace's inR in enemies/leaders.js
sganggs2026-10-05 16:16:37 +08:00
7adf46b033
feedback5 R4: .git-blame-ignore-revs lists the kit split (a pure move), so blame skips it
sganggs2026-10-05 16:14:48 +08:00
8924007e55
feedback5 R4: content/index.js takes the kit registry from kits/index.js (one guarded import per kit file) instead of loading the six tier shims; KITS is the same object kits/index.js exports — same keys, order and builders, golden unchanged
sganggs2026-10-05 16:14:39 +08:00
1169102d46
feedback5 R4: one file per operator kit — kits/tier1..6.js split into kits/ops/<chessId>-<codename>.js (129 kits), kits/shared/tier1..6.js (the helpers two or more kits of a tier use, and each tier's header notes) and kits/index.js (the registry, same keys in the same order); the tier files become re-export shims
sganggs2026-10-05 16:13:56 +08:00
13224f9483
feedback5 R3: Battle.js → server/sim/battle/*.js, a pure move — the 131 methods, verbatim with their comments, go to 14 per-concern method containers (players, lifecycle, hooks, spawns, deploy, blocking, status, combat, queries, summons, tiles, displacement, economy, events; fin / clone in util.js) that Battle.js installs on Battle.prototype in a fixed order with class-method descriptors; Battle.js keeps the header, the constructor and the class, and re-exports pushTiles. docs-consistency reads the method modules (battleText) and pins layerGainRoom in battle/economy.js
sganggs2026-10-05 16:13:25 +08:00
aef8caef3f
feedback5: merge R1 — server/index.js split into server/http/* modules on plain node:http (same exports, headers and responses)
sganggs2026-10-05 16:13:20 +08:00
5f0830cdc5
feedback5 R1: docs and comments follow the split — DESIGN §2 layout lists server/http/, the README table names the entry and http/, path comments in shared/media.js, public/js/media.js, buildGuard.js, net.js and three tests point at the new modules; .git-blame-ignore-revs lists the pure-move commit
sganggs2026-10-05 16:11:30 +08:00
1b38e30819
feedback5 R1: startServer and main become wiring — PORT / HOST / TRUST_PROXY and the option picks go to http/config.js, the session stack and the /ws upgrade to http/websocket.js, the request listener and /healthz to http/routes.js (new), the security headers and the clientError 400 to http/common.js, the banner, signals and entry check to http/boot.js
sganggs2026-10-05 16:08:41 +08:00
b48a67caec
feedback5 R1: pure move — the top-level code of server/index.js goes to server/http/ (config, common, files, static, media, buildTag, websocket, boot) verbatim; index.js imports it and re-exports the same 15 names, startServer and main are untouched
sganggs2026-10-05 16:02:33 +08:00
73a30148b6
feedback5 WB: DATA.md documents chess.json backup and data/backups.json (§18); research 02 / 03 name the DIY faction rule (mainPower + every subPower)
sganggs2026-10-05 15:58:17 +08:00
4b1d9606d2
feedback5 WB: the data of 补位 and 自选 — chess.json keeps the official backup fields, data/backups.json builds the 17 stand-ins and the DIY picks
sganggs2026-10-05 15:58:10 +08:00
6b489b1776
feedback4: merge W5A — golden-result safety net (tools/golden.mjs, test/golden: every chess loadout, enemy, bond, field and bot match, fixed seeds)
sganggs2026-10-05 15:50:16 +08:00
0fa0f958b1
feedback5 WA: golden-result safety net before the 0.2.0 refactor — tools/golden.mjs runs a seeded corpus (49 roster battles: every chess record × skill × module, every stage and enemy kind; 46 bond battles; 22 leader / 联防 fields; 16 bot-only matches) and test/golden.test.js compares its digests with test/golden/*.json field by field (fast subset by default, GOLDEN_FULL=1 for all; npm run golden / golden:update; test/golden/README.md)
sganggs2026-10-05 15:48:14 +08:00
305b524df2
feedback4: a bond card's layer-scaled chance (不屈, 迅捷, 奇迹) stops at 100 % like the sim's (GitHub #108: 124 % at 266 layers)
sganggs2026-10-05 14:37:23 +08:00
723755e3a5
feedback4: 引星棘刺 S1 度算浪波 (an AUTO skill thrown at an ally) fires as soon as its SP is full, with no enemy around (GitHub #124)
sganggs2026-10-05 14:37:23 +08:00
bd892a4dd6
联防 plays the official escaped stage's own corrosion BGM (#110)
Convey1232026-10-05 14:34:42 +08:00
bcd916eb61
feedback4: the real-browser e2e suites confirm the leftover-funds prompt on the Space path too (coop.e2e 4/4, real.e2e 2/2)
sganggs2026-10-05 14:28:47 +08:00
763e224b8d
A 咒愈师's trait heals on every damage she deals; 收割者 / 武者 heal on their skill hits too (#115)
shanzhaikabi2026-10-05 14:20:59 +08:00
bbff3514a8
Emote browser tests run with the fetched emote art too (#127)
Convey1232026-10-05 14:20:12 +08:00
7bea774f01
The 观战 and 加入 buttons send the typed key, not the click event (#119)
saltfish2026-10-05 14:20:08 +08:00
3f05c65dec
Q / X hotkeys retreat and sell the selected operator in prep (#114)
Chun'an Shi2026-10-05 14:18:44 +08:00
8aa41d9c1c
feedback4: real.e2e confirms the leftover-funds prompt on ready; DESIGN's §23.f4 references point to §23.23; the 0.1.3 changelog names the 不屈 source and fixes 手牌
sganggs2026-10-05 14:03:32 +08:00
a0a5419eb8
feedback3: the mock prep test confirms the leftover-funds prompt
sganggs2026-10-04 22:35:13 +08:00
a5c31cbcb4
feedback3: browser tests accept the leftover-funds prompt when they press ready
sganggs2026-10-04 22:31:55 +08:00
9f3785636a
feedback3: a prep-end item may sit unmerged through the fight, and bonds.json matches the offline build
sganggs2026-10-04 22:20:20 +08:00
351ead3603
feedback3: 0.1.3 design notes, changelog and version
sganggs2026-10-04 22:13:05 +08:00
c9dd2a6392
feedback3: merge WJ — 高台 only for elite 歌蕾蒂娅 with HOK-Y, live prep watch, silenced 折射, grant toasts, emote timeout glyph
sganggs2026-10-04 21:26:46 +08:00
1005754bf3
feedback3: merge WH — ground operators are melee-position, 叙拉古 rolls on every normal hit, off bonds show as disabled, prep-end items merge next prep
sganggs2026-10-04 21:26:10 +08:00
a3ebca0ddf
feedback3: merge WI — 乌尔比安 S3 move and return are free redeploys, 波登可's spore radius is 0.9, 琳琅诗怀雅 S3 shoots at 10 coins when an enemy is in her attack range
sganggs2026-10-04 21:25:44 +08:00
3500ef2d32
feedback3: merge WG — nest enemies pulse instead of attacking, children carry no bounty, a 隐匿 blocker is skipped by areas, stacked cold freezes for the longer duration
sganggs2026-10-04 21:25:40 +08:00
7e711582b0
feedback3 WJ: the bot places elite 歌蕾蒂娅 with HOK-Y on a 高台 that covers the road
sganggs2026-10-04 21:11:41 +08:00
627bb6d4c1
feedback3 WI: 琳琅诗怀雅 S3 shoots at 10 coins only when an enemy is in her attack range
sganggs2026-10-04 21:11:41 +08:00
ee9fc83207
feedback3: merge WF — 阿戈尔 revives by position, 傀儡师 switches at full HP, 联防 uses the layers the combat reached, deployment is column-major
sganggs2026-10-04 21:05:40 +08:00
ab56ea01b1
feedback3 WI: 琳琅诗怀雅 S3 shoots her coins when the purse reaches 10
sganggs2026-10-04 21:05:23 +08:00
54680cc891
feedback3 WJ: emote manifest timeout falls back to the glyph
sganggs2026-10-04 20:47:49 +08:00
5e4fe8ae60
feedback3 WJ: toast when a bond grants a chess, and flash the new card
sganggs2026-10-04 20:41:46 +08:00
2723a3daea
feedback3 WJ: grey the 折射 line and drop its icon while silenced
sganggs2026-10-04 20:38:26 +08:00
473b8eb5b0
feedback3 WI: 琳琅诗怀雅 S3 does not close itself when her coins are full (GitHub #89)
sganggs2026-10-04 20:35:50 +08:00
365ebf6cbd
feedback3 WG: a 冻结 from stacked 寒冷 lasts the longer of the two colds, not a fixed 3 s
sganggs2026-10-04 20:35:14 +08:00
6e59b5e4dd
feedback3 WJ: prep watch of another board updates when it changes
sganggs2026-10-04 20:34:32 +08:00
9aaba7708c
feedback3 WH: an item gained as prep ends waits in hand and merges at the next prep start
sganggs2026-10-04 20:34:03 +08:00
f9e2c49954
feedback3 WI: 波登可's spore cloud radius is 0.9, as the PRTS note says
sganggs2026-10-04 20:33:54 +08:00