Commit Graph
74 Commits
Author SHA1 Message Date
sganggs 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) 2026-10-05 18:17:08 +08:00
sganggs 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 2026-10-05 18:17:08 +08:00
sganggs c9dd2a6392 feedback3: merge WJ — 高台 only for elite 歌蕾蒂娅 with HOK-Y, live prep watch, silenced 折射, grant toasts, emote timeout glyph 2026-10-04 21:26:46 +08:00
sganggs 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 2026-10-04 21:26:10 +08:00
sganggs 9aaba7708c feedback3 WH: an item gained as prep ends waits in hand and merges at the next prep start 2026-10-04 20:34:03 +08:00
sganggs 5ef4fac137 feedback3 WJ: 高台 only for elite 歌蕾蒂娅 with HOK-Y
The trait line is on every hookmaster and is not trusted. Placement is the loadout at place time: golden 歌蕾蒂娅 carrying uniequip_003_glady may use a ranged tile; everyone else stays on the ground.
2026-10-04 20:31:46 +08:00
sganggs c0cc1d6118 feedback3 WH: mode-off bonds the player has members of show as grey 本局禁用 discs, and hand members count in that header 2026-10-04 20:31:06 +08:00
sganggs ca3d0572ad feedback3 WF: the initial deployment goes by column — the left column first, top to bottom within a column (PRTS 从上到下>从左到右 read as a scan, the 阿戈尔 devour's order; mirrored boss side from its own left); a merge's elite among several deployed copies follows it (server and client); tests whose target was the latest deployed keep it 2026-10-04 19:50:42 +08:00
sganggs 0e3429aa1f feedback3 WF: 联防 fights with the bond layers the helpers' own combat reached (the strip's count, capped like the settlement), no longer the round-start layers; the settlement still adds those gains once (PRTS 联防阶段 以其阵地当前的状态, community report #24) 2026-10-04 19:31:15 +08:00
sganggs dcc44712ad feedback3: merge W3A — 联防 carries HP ratio and SP only (GitHub #82); down operators take part in the 联防 devour (players' reports, owner's decision); 不屈 on 撤退 / 替身 switches; SP recovers during stun (洛洛 S2) 2026-10-04 17:57:44 +08:00
sganggs 8707c161b9 feedback3: merge W3E — two spectator seats per co-op room (GitHub-relayed community request #26; a remake feature): watch like an eliminated player, never act, no private data 2026-10-04 17:57:09 +08:00
sganggs 976475efff feedback3 WE: spectator seats in the browser — 观战 in the lobby, the 观战席 strip in the room (host removes, 入座), watch-only match screen; docs (community report #26) 2026-10-04 17:39:30 +08:00
sganggs 3315803b79 feedback3 WA: DESIGN §19.3 and PLAYING note that the 联防 阿戈尔 devour still counts the operators that enter down 2026-10-04 17:28:44 +08:00
sganggs 8252be248f feedback3 WA: 联防 carries the HP ratio and the SP only — a skill running at the end of the own combat enters switched off (no free restart), the SP counts stored charges, board summons keep their SP 2026-10-04 17:16:55 +08:00
sganggs db57c39c7a feedback3 WC: readying with funds left asks first (the prep end wipes them); never for 坎诺特, at 0 funds or under AI 托管 2026-10-04 17:12:24 +08:00
sganggs 7757db0779 feedback2 WK: PLAYING says ranged enemies stand for each attack and forced-out operators lie down where they left (GitHub #58, #60) 2026-10-04 02:55:48 +08:00
sganggs 50c9b5b1b6 feedback2: merge WH — 荒芜拉普兰德 S3's drones attack (GitHub #32 item 7); 余 S2 pulls leaders, no pull effect when nobody moves, and casts with an enemy on its x-1 (owner's deliberate deviation; GitHub #32 item 1)
# Conflicts:
#	data/chess.json
#	docs/PLAYING.md
2026-10-04 02:21:47 +08:00
sganggs a168c99e6a feedback2: merge WJ — enemy splash, blasts, area skills, zones and auras skip a 隐匿 operator that does not block them; 迷彩 is still hit by splash (GitHub #32 item 6)
# Conflicts:
#	docs/DESIGN.md
#	docs/SIM.md
#	server/sim/content/enemies.js
2026-10-04 02:21:15 +08:00
sganggs 79bbd51525 feedback2: WG review — a chain healer's bounces skip 禁疗 / noHeal units (史尔特尔 in 余烬); PLAYING and DESIGN say 隐匿 returns 3 s after a block; 山海众头目's mark comment 2026-10-04 02:19:40 +08:00
sganggs b0c98fea31 feedback2 WJ: docs — buff auras and 蚀裂's 毒雾 vs 隐匿, locked targets as direct picks, 迷彩 only where PRTS backs it (the rest [ASSUMED]), 异常效果 §无法选择 instead of the 选择器 draft text; PLAYING: all-in-range normal attacks skip 迷彩 2026-10-04 00:41:51 +08:00
sganggs 7362ab5439 feedback2 WH: 余 S2 厚礼上宾 casts with an enemy on its x-1 instead of when hit (the owner's deliberate deviation from the 重装 TAKE_DAMAGE row: TRIGGER_DEVIATIONS SKILL_RANGE, data regenerated, only the two 余 records change) 2026-10-04 00:39:54 +08:00
sganggs 7ab852ef57 feedback2: merge WE — setup downloads the battle emotes and 玩法说明 pages from the public mirror, accurate deployment docs (GitHub #42); English title Stronghold Protocol: Alliance; doctor comment after PR #27 2026-10-03 23:51:56 +08:00
sganggs d74665f068 feedback2: WF review — the 高台 reading marked [ASSUMED] in the code comments; only 歌蕾蒂娅 is obtainable (崖心 / 见行者 are hidden chess); §22.6 notes the tile-based 地面干员 effects 2026-10-03 23:40:13 +08:00
sganggs 20a433f2a9 feedback2 WJ: PLAYING — 蚀裂's 毒雾 still reaches a 隐匿 operator 2026-10-03 23:37:59 +08:00
sganggs f059ba5be8 feedback2 WJ: docs — enemy area effects vs 隐匿 / 迷彩 (SIM enemy attacks, zones and status rows, PLAYING, DESIGN §5.3 / §5.5); the docs check follows 卢西恩's / 锏's trigger selection 2026-10-03 23:34:48 +08:00
sganggs 2f0a980b2e feedback2 WE: README, DEPLOY.md (new §6), setup and doctor say what falls back without the local-client art instead of 不影响游戏, and that a server without the client can copy public/assets/local + data/local-assets.json from the same version's bundle; DESIGN §22.5 (#42) 2026-10-03 23:13:23 +08:00
sganggs e846519fb0 feedback2 WF: docs for 钩索师 / 推击手 on a 高台 (DESIGN §22.6, §3, §6.6; DATA placement; PLAYING §4; research 03 C2) 2026-10-03 23:03:26 +08:00
sganggs 2dba6da598 feedback1 final: six 重装 skills cast with an enemy in range, a deliberate deviation from the official TAKE_DAMAGE row (GitHub issue #4, PR #12)
The owner's decision (2026-10-03, after community feedback): 深巡 S2 行动能力剥夺, 雷蛇 S2 反击电弧, 号角 S2 暴风号令
and S3 终极防线, 灰毫 S1 攻击力强化·γ型 and S2 专注轰击 take the basic strategy (DEFAULT) instead of the 下半 TANK class
row's TAKE_DAMAGE. Every other MANUAL 重装 skill, 深巡 S1 included, still waits for a hit.

- tools/build-data.mjs TRIGGER_DEVIATIONS: a small table keyed by the normal chess id and the skill id (the elite
  follows through baseId), never by the skill id alone - 灰毫 S1 is the generic skcom_atk_up[3]. resolveTrigger applies
  it last; rawRule keeps the official TAKE_DAMAGE; validateAll fails the build when an entry no longer meets a
  TAKE_DAMAGE row. data/chess.json rebuilt with --offline: exactly the 12 records' rule changes.
- PR #12's kit lines (trigger 'DEFAULT' on 深巡 / 雷蛇 S2) stay and agree with the data; their comments and tests now
  give this reason instead of the community summary.
- Tests: test/sim/feedback1-tank-triggers.test.js (the data, kit = data, a real battle on 战场#01(下半) in which each of
  the six casts with an enemy in range before any hit and each of the other 46 MANUAL 重装 records casts on the first
  hit); data.test.js trigger expectations; the 灰毫 / 号角 kit tests follow; docs-consistency.
- Docs: DESIGN §21.29 (new), §5.6, §19.2, §20.2, §21.20 (settled row), §21.23; DATA, SIM, PLAYING, CHANGELOG 0.1.1;
  research 03 §1.4 drops the arknights.wiki.gg "offensive / defensive" summary and records the activity_table history
  (上半 had no TANK row, 下半 added it) and this deviation; research 00-INDEX.
2026-10-03 19:13:35 +08:00
sganggs ff7ce30907 feedback1 final: merge the strategy draft's 查看禁用盟约与干员 dialog (GitHub issue #8 item 1; one matchInfo component for the briefing, the draft and the in-game 本局信息 tab)
Conflicts resolved keeping both sides:
- bandDraft.js header: the 本局禁用 mark of a strategy tied to a switched-off bond, then the 本局信息 dialog; the code
  merged cleanly (the card's 本局禁用 tag and the detail note sit beside the dialog's state and button).
- draft.css: the 本局禁用 tag / note rules, then the 本局信息 entry and dialog block (its header cites DESIGN §21.28).
- CHANGELOG 0.1.1 界面: the gaps and issue #5 / #8 lines, then the dialog line.
- PLAYING §6: the disabled-bond line says where to look again (draft dialog, in-game 🔍); the 变形同构体 line keeps its
  pairing explanation.
- DESIGN: the branch's "§21.26 Match info in the strategy draft" becomes §21.28; its two §10 references follow.
2026-10-03 18:51:37 +08:00
sganggs 77eaeaa15f feedback1 final: merge the 突变细胞 bench rule (carrier destroyed, tile freed, the new operator gained into the 整备区; pointed out in PR #2)
Conflicts resolved keeping both sides:
- effectsMeta.js header: the QA residual's "every [holder, item] pair, taken before the first item runs" and "an item
  moved during it runs at most once", with the cell branch's wording of what 突变细胞 does mid-walk.
- DESIGN §6.6: the band pick that skips a strategy tied to a switched-off bond and the deployment of the operator a
  transformation gains / the bench shed that spares it.
- DESIGN §21.25: PR #2's bench rule credited (the cell branch) plus the QA residual's snapshot-timing sentence.
- PLAYING: the new 突变细胞 sentence with the residual's hammer sentence (revives, borrowed hammers, the lend window).
- docs-consistency: both new tests (batch 6 QA residuals; 突变细胞 after the WA merge).
2026-10-03 18:48:30 +08:00
sganggs 3b4d44bda8 feedback1 final: merge the 0.1.1 gaps (变形同构体 pairings, 调和 +1 row, bands tied to a switched-off bond, the client-result layer bound) 2026-10-03 18:45:56 +08:00
sganggs c989b65995 feedback1 integrate: CHANGELOG / PLAYING say the hammer is lent by 萨尔贡 operators under 娜仁图亚 2026-10-03 17:53:01 +08:00
sganggs 0f1a025b0e feedback1 integrate: docs for the batch 6 QA residuals (DESIGN §21.20-§21.25, SIM, META, PLAYING, research 04, CHANGELOG)
The hammer lock per deployment for borrowers and in-place revives (both [ASSUMED] where no source decides), 卢西恩 / 锏
casting for an airborne 蒂比, rule 3 for a summon that is gone, the dispatcher snapshot taken before the first item;
PLAYING and CHANGELOG no longer say every debuff misses an airborne 蒂比 (ground-enemy auras and counters still reach
her); research 04's hammer line says once per deployment. docs-consistency pins it.
2026-10-03 17:47:29 +08:00
sganggs 263f274d27 feedback1 draft-info: DESIGN §10 / §21.26, PLAYING and CHANGELOG for the draft's 本局信息 dialog 2026-10-03 16:08:32 +08:00
sganggs 2981ff7ae6 feedback1 cell: docs for the 突变细胞 bench rule (DESIGN §21.1 / §20.11 / §21.20, META, PLAYING, DATA, research, CHANGELOG)
- DESIGN §21.1 states the corrected rule with its evidence: bilibili BV1vzyVBuEN9 (上半, about 8:24) and
  BV1Qkw1zMEoR (下半, about 7:25) show the carrier's tile empty at the next prep, one more deployment left
  and the new operator on the bench; the PRTS 备注 is a destroy followed by a gain; PRTS 帮助 sends what a
  player gains to the 手牌区; the closed PR #2 said the same (its merge path not adopted). The WA
  keep-the-tile rule and the carrier-tile merge exception are withdrawn; the bench carrier and the
  hand-and-temp-full case stay [ASSUMED].
- §20.11 / §20.9 no longer count a transformed carrier's tile; §21.20 lists the rule as official;
  §21.25 credits PR #2's bench rule; §6.2 and §6.6 follow; the §21 intro maps it.
- META (bot, ctx.transform, built-ins, merge, notes), PLAYING, DATA (items.json note), research 04
  (addendum 2, implFormula, open question 6) and research 01 row 7 follow.
- One CHANGELOG 0.1.1 line (PR #2 指出).
- docs-consistency pins the docs against the code (no fromKey / returnItems left, the gain through
  acquireChess).
2026-10-03 15:20:43 +08:00
sganggs 0fb1a17e7e feedback1 gaps: DESIGN §21.26, META, PLAYING and CHANGELOG for the three gaps
DESIGN §21.26 describes the 变形同构体 pairing list, the harmony mark in
the bond views and the bot's band pick; the normative lines of §6.3, §6.6,
§8.2 / §8.3 and the §21.11 note point at it. META documents the band
pick and the harmony field, PLAYING explains both for players, and the
CHANGELOG 0.1.1 section gets two 界面 lines and one 人机 line.
2026-10-03 15:07:22 +08:00
sganggs e30e038ba2 feedback1 integrate: DESIGN §21.21-§21.25 and CHANGELOG for batch 6 and the PR-credited fixes
DESIGN maps F1-F5 in the §21 intro, adds the hammer-per-deployment row (user 2026-10-03) to
§21.20 with the batch's official rules and [ASSUMED] items, and rewrites the normative lines:
§3 fenced tiles, §5.3 liftoff, §5.4 fatal / ignoreSelect / redeploy, §5.5 bodies, blocking and
enemy selection, §6.4 onBuy and the item snapshot, §8.2 down row/col, §18.3, §19.7. CHANGELOG
0.1.1, SIM, DATA and PLAYING follow; docs-consistency checks them against the code.
2026-10-03 13:56:19 +08:00
sganggs f213347ff2 feedback1 integrate: WV a knocked-out operator keeps its tile and redeploys there; 突袭 never lands on it 2026-10-03 13:36:40 +08:00
sganggs 4ad8b9aaec feedback1 integrate: WU units on fenced tiles block no ground enemy (F4 深巡 on a 围墙 tile not reproduced) 2026-10-03 13:32:39 +08:00
sganggs f142012033 feedback1 integrate: WB follow-up - bounty lists, 机密商店 and 战术决策 from 66 official screenshots (22 matches)
Merges the 7 WB commits after the first WB merge (d1f8a49..2cb84bd): R3 one of 10 fixed
sets (9 seen), R9 one of 6 boss groups picked by the matches they came in, R11 one of the
7 seen lists of 7; R11 families 14 / 4 / 4; the 机密商店 and the 战术决策 can offer the
same card twice (R11 shop: two VI, at least one V and one 盟约之币). data/choices.json
rebuilt with tools/build-data.mjs --offline (identical to the branch's). The tactic bot
test uses a real seat (the merged bot scores tactic cards on the player's bonds).
DESIGN §21.2 / §7 / §21.20 and CHANGELOG describe the 22-match model.
2026-10-03 11:27:46 +08:00
sganggs 5f26870be7 feedback1 WB: docs for the 战术决策 drawn with replacement (DATA, META, PLAYING)
DATA: choices.json tacticDraft, the families header and cards.tactic rows.
META 1.2: 战术决策 after the 4 official drafts, identical cards separate.
PLAYING: the 机变 row says a 战术决策 can show the same card twice and
what R11 offers.
2026-10-03 09:10:40 +08:00
sganggs bb6078efc2 feedback1 WB: R11 hunter events left open (the data's block order does not decide them); PLAYING 机变 row keeps the bounty payout with the bounty
The 7 seen R11 lists stay picked uniformly, assumed because that invents no list. By the blocks of
effectChoiceInfoDict, R11 would fire bounty_hunter_8..15 (beside artifact_paid_4/5 and hardbuff_select),
so the block order is no longer cited as support for '1..7'. 7, 8 or 9 events fit the 14 drafts about
equally; with 8, an unseen list would come in about 1 R11 bounty draft in 8 (open question).
2026-10-03 08:29:25 +08:00
sganggs c7f49b4895 feedback1 integrate: DESIGN §21 (player feedback after 0.1.0) and the normative lines it changes
- one subsection per workstream (reports, verdict, cause, official rule and source, what changed, [ASSUMED], tests),
  the integration follow-ups and the settled decisions (tactician rotation keeps in-range summons, user-confirmed)
- §2 §3 §5 §6 §7 §8 §9 §10 §13 §14 §16-§20 rewritten where the merged behaviour changed them
- docs-consistency checks §21 against the code; PLAYING notes the player-visible follow-ups
2026-10-03 08:16:53 +08:00
sganggs 3b18376eb7 feedback1 WB: R11 bounty list drawn from the 7 seen lists; R9 group sizes stated as they are; official 机密商店 composition only at R11
- R11 悬赏决策: the list is one of the 7 seen lists, uniform (slots 7, taken as the events
  bounty_hunter_1..7, one block of effectChoiceInfoDict). No list is built from nothing any more;
  the rule only completes the 4 lists seen with 6 cards, so 12_8 / 16_2 / 16_6 come in about
  1 R11 bounty draft in 15 (14 drafts without one: about 39 %).
- R9: the groups hold 9, 9, 9, 9, 8 and 6 cards (comments, docs, test); match 4's base-only
  group may be a draft of another group (open). 58 -> 59 bounty drafts in the build-data note.
- 机密商店: shopDraft.rounds [11]. The official composition (VI, VI, V, 盟约之币 + 2) applies at
  R11 (绝境 / 终极, where the screenshots are); the earlier 标准 / 险境 shops keep the previous draw,
  any tier I-VI per card with replacement (repeats still possible, about 26 %).
- Tests: R11 slots / block order / never-shown rate, R9 group sizes, the non-R11 shop draw.
2026-10-03 08:09:39 +08:00
sganggs c50dc8666c feedback1 WB: docs for the 22-match bounty drafts and the 机密商店 composition (DATA, META, PLAYING) 2026-10-03 07:42:20 +08:00
sganggs e01d24e0c5 feedback1f WU: units on fenced tiles block no ground enemy (F4: 深巡 on a 围墙 tile attacks as usual)
F4 "干员深巡放在围栏围着的地块里不会主动攻击" is not reproduced: 深巡 (哨戒铁卫, range 2-2) attacks every
enemy on her range tiles from the fenced 围墙 tiles of every active stage, the Final Assault halves and
联防, through a real Match and in the browser's own battle. Locked by test/sim/feedback1f-fence.test.js.

Nearby rule fixed: PRTS 围墙 / 围栏 地形机制 "部署在其中的单位,若当前阻挡类型为'地面阻挡'则无法阻挡敌人".
A unit on a tile ground units cannot pass now blocks no ground enemy (Battle._blockerFor); before, an
enemy pushed or dragged to the fence edge (0.5 from the unit) was blocked there - 薄绿 S2 on a fenced
tile held the dragged enemies. Air blocking (blockFly against flyers) stays. Docs: SIM.md Blocking,
PLAYING.md tip on the fenced tiles.
2026-10-03 07:24:43 +08:00
sganggs 5a3d562b75 feedback1f WV: a knocked-out operator keeps its tile; 突袭 never lands on it
Player report F5 after 0.1.0: "突袭盟约的干员会移动到濒死干员的尸体上".

Real. A knocked-out operator left the occupancy map at once and only its
home tile stayed reserved. A 突袭 member that fell after its jump lay on the
landing tile, which nothing reserved, so the next member's jump (same target,
same scoring) landed on it; and a member's timed redeploy came back on its home
where a teammate that had jumped there lay. Real matches (six real 突袭
members, 战场#07 / #08, R6 / R9 / R12, 96 battles): 6 placements on a body
(3 jumps, 3 home redeploys) before, 0 of 526 jumps after.

Official (PRTS 卫戍协议/帮助, 作战阶段 / 单位部署):
- "干员退场后…原地留下一个“倒地干员”…满足再部署条件时,移除场上的该倒地干员
  并自动部署至该位置"
- "倒地干员所在地块视为可部署,但所有我方单位在此处的部署行为将被阻止"
- "若干员被击倒的位置为其他干员或召唤物的初始位置,则在被击倒后,尝试返回其
  自身的初始位置"

Now (sim/Battle.js):
- A knocked-out operator lies on `unit.body`: the tile it fell on, or its
  own home when it fell on another board piece's home and its home is free
  (one attempt at the knock-out, assumed). x / y / tileR / tileC keep where
  it fell, so the kill / death handlers still act there.
- Every redeploy comes back there (restTile): the timed one, 不屈's and
  阿戈尔's. A retreated operator still comes back on its home.
- downOn(r, c): _deploy (redeploys, the 突袭 landing, summons), spawnDevice
  and relocate refuse the tile for every ally of the field; isReservedTile
  reports it, so every automatic picker skips it (突袭 raidTile, tactical
  points, summon / device pickers, 维娜's lions). The kit helpers that kept
  their own home-tile loop (tier1 summonTileFree, tier3 / tier4 freeTile) go
  through isReservedTile.
- b.snap `down` entries gain the body tile: [id, respawnAt, respawnTime,
  state, row, col]. DOWN_STATE.WAIT_TILE becomes a safeguard only.

Tests: test/sim/feedback1f-downed-tile.test.js (real Match / PlayerState /
BattleSpec runs with real 突袭 chess, the 突袭 jump, the engine refusals,
the return home); downelem and bonds_addon follow the official rule.
2026-10-03 07:16:24 +08:00
sganggs a84cd3af96 feedback1 integrate: WQ healers keep healing while they block (tests and docs) 2026-10-03 07:04:07 +08:00
sganggs da0aa28d5f feedback1 integrate: WM 野鬃 S2 pushes along her facing; 琳琅诗怀雅 S3 coins radial
# Conflicts:
#	docs/SIM.md
2026-10-03 06:37:02 +08:00
sganggs b1644f5ad7 feedback1 integrate: WC 深水区 refuses deployment; tactical points only inside the summoner's attack range
# Conflicts:
#	server/match/bot.js
2026-10-03 06:35:09 +08:00