feedback1e WQ: healer tests cast every skill while blocking; rule in headers

Review follow-up for E2 (not reproduced, no behaviour change):
- blockRun fills the skill's SP (and puts the patient back to 5 %) the
  first tick the healer blocks, and tests 2 and 3 assert the skill is
  cast or running while it blocks: all 56 healer loadouts now cast in
  the window (half never did at the default initial SP).
- The reported 炎 boss round makes 录武官's skill ready when she first
  holds 卢西恩 / 不祥幻影 and asserts it is cast or running then.
- The boss test says what it covers: 0 healer damage on all 20 boss /
  hidden fields; healers block 卢西恩 / 不祥幻影 (h07_05) and a
  patrolling 碎铳之簧 once its shield is broken (h08_02); the other
  leaders and parts cannot be blocked by a block-1 unit.
- SIM.md: the healer qualifier follows the "one-line flip" sentence, so
  "This replaces..." refers to the every-blocker rule again.
- ai.js header, Battle.blockedTargets and targeting.js: the blocked-first
  rule is for attacks that hit enemies; a heal attack keeps selecting
  injured allies (PRTS 卫戍协议/帮助).
- PLAYING.md: the healer exception names 咒愈师 as the one that hits.
This commit is contained in:
sganggs committed 2026-10-03 05:35:18 +08:00
1 parent 6be059b34e
commit bfd8b1647c
6 files changed
+91 -34

No files matched your search

+8 -6
View File
@@ -189,14 +189,16 @@ front — `Battle.blockedTargets`, used by `ai.js acquireTargets` and the skills
`sortEnemyTargets`; "自身这格内" rules name the blocked enemies separately — 瑕光 S2, PRTS 备注). A kit that picks its own
targets from the range (`beforeAttack`) adds `battle.blockedTargets` to its candidates (深靛, 迷迭香 S3, 荒芜拉普兰德 S2,
佩佩 S2, 灵知 S3, 远牙 S3); only skill texts that exclude targets keep their rule (普罗旺斯 S2: none above 80 % HP; 寒檀
S2: icicles on random tiles of her range). The rule is for units whose attack hits enemies: a healer (dmgType `heal` —
医师 / 群愈师 / 疗养师 / 链愈师 / 行医, the map characters 预备干员-医疗 / Touch — and a skill attack turned into a heal:
古米 S1 / S2, 塞雷娅 S1, 波登可 S1) selects injured allies only and keeps healing while it blocks (PRTS 卫戍协议/帮助
"对于医疗干员(咒愈师分支除外),攻击目标为需要治疗的单位"; PRTS 仇恨 HP_RATIO_NOT_FULL_ASC; `ai.js acquireTargets` returns
before the blocked targets, the heal skills' DEFAULT trigger looks at injured allies — test/sim/feedback1e-healers.test.js);
咒愈师 attack enemies and follow it. This replaces the
S2: icicles on random tiles of her range). This replaces the
playtest #5 QA's melee-only reading (PRTS 索敌的概念 "我方索敌优先级:阻挡(近战限定)"; "远程位干员…无法攻击到这个敌人");
DESIGN §20 keeps the one-line flip (`Battle.blockedTargets` / `sortEnemyTargets` gated on a melee position again).
The every-blocker rule is for units whose attack hits enemies (咒愈师 included: "攻击造成法术伤害"). A healer — dmgType
`heal` (医师 / 群愈师 / 疗养师 / 链愈师 / 行医, the map characters 预备干员-医疗 / Touch) or a skill attack turned into a
heal (古米 S1 / S2, 塞雷娅 S1, 波登可 S1) — selects injured allies only and keeps healing while it blocks; it never targets
the enemy it blocks (PRTS 卫戍协议/帮助 "对于医疗干员(咒愈师分支除外),攻击目标为需要治疗的单位"; PRTS 仇恨
HP_RATIO_NOT_FULL_ASC; PRTS 选择器 adds only the blocked units the selector's side can pick): `ai.js acquireTargets`
returns its heal targets before the blocked targets, and the heal skills' DEFAULT trigger looks at injured allies
(test/sim/feedback1e-healers.test.js).
**Enemy attacks:** blocked melee enemies hit their blocker; enemies with `rangeRadius > 0` **and `applyWay` ≠ `MELEE`**
attack allies whose collider touches their range circle — centre distance ≤ `rangeRadius` + `ALLY_COLLIDER_RADIUS` 0.25