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:
1 parent
6be059b34e
commit
bfd8b1647c
6 files changed
+91
-34
No files matched your search
@@ -1104,7 +1104,9 @@ export class Battle {
|
||||
* or not, whatever its facing ("可以选择且优先选择阻挡单位", PRTS 选择器; ai.js acquireTargets, the skills' DEFAULT
|
||||
* trigger). That holds for a ranged operator on a melee tile too: the user's rule after playtest #6, "阻挡了就一定要能
|
||||
* 打到" — officially the collision pushes a blocked enemy to its blocker's front, so whatever blocks an enemy can hit
|
||||
* it (DESIGN §20; it replaces the playtest #5 QA's melee-only restriction).
|
||||
* it (DESIGN §20; it replaces the playtest #5 QA's melee-only restriction). Only for attacks that hit enemies: a heal
|
||||
* attack never asks — it keeps selecting injured allies while its unit blocks (PRTS 卫戍协议/帮助 "对于医疗干员
|
||||
* (咒愈师分支除外),攻击目标为需要治疗的单位"; PRTS 选择器 adds only the blocked units its side can pick).
|
||||
*/
|
||||
blockedTargets(u, profile) {
|
||||
const out = [];
|
||||
|
||||
+4
-3
@@ -12,9 +12,10 @@
|
||||
// but walks the ground. An unblocked enemy touching an ally with free block capacity — within its block radius (0.7071
|
||||
// ground, 0.8944 air, devices 0.4472; Battle._checkBlock) — is blocked, moving or not, so an enemy overlapping an
|
||||
// operator is taken over once its blocker is gone. Blocked enemies fight their blocker (ranged ones may pick anyone in
|
||||
// range, blocker first); every blocker — a ranged operator on a melee tile included — may always target the enemies
|
||||
// it blocks, in range or not, whatever its facing, and targets them first (acquireTargets, Battle.blockedTargets;
|
||||
// user playtest #6: "阻挡了就一定要能打到").
|
||||
// range, blocker first); every blocker whose attack hits enemies — a ranged operator on a melee tile included — may
|
||||
// always target the enemies it blocks, in range or not, whatever its facing, and targets them first (acquireTargets,
|
||||
// Battle.blockedTargets; user playtest #6: "阻挡了就一定要能打到"); a heal attack keeps selecting injured allies while
|
||||
// its unit blocks (PRTS 卫戍协议/帮助 "对于医疗干员(咒愈师分支除外),攻击目标为需要治疗的单位").
|
||||
// Unblocked ranged enemies attack allies within their radius and pause ATTACK_PAUSE seconds after each attack; the
|
||||
// candidates pass the enemy's own rule (`e.profile.canTarget`) and are ordered blocker → taunt → latest deployed
|
||||
// (targeting.js sortAllyTargets). Reaching the final leg's end = leak. A `fear` (恐惧) status suspends the route: the
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
// occupies is (body.js; user playtest #5 item 10). `rangeExtend` (ability_range_forward_extend) adds N tiles
|
||||
// past the furthest cell of every row, along +dCol BEFORE rotating (DESIGN §3).
|
||||
// Operator priority: (1) enemies it blocks (every blocker, ranged ones on melee tiles included — user playtest #6
|
||||
// follow-up "阻挡了就一定要能打到"; Battle.blockedTargets), (2) profile priority (fly/lowDef/…),
|
||||
// follow-up "阻挡了就一定要能打到"; Battle.blockedTargets; a healer's heal attack picks injured allies instead, blocking
|
||||
// or not — ai.js acquireTargets), (2) profile priority (fly/lowDef/…),
|
||||
// (3) higher enemy taunt, (4) least remaining path distance to the goal, (5) earliest spawned. Air units
|
||||
// (Unit.isFlying: FLY, 近地悬浮, 浮空) need a profile that can hit them (`canHitFly`, never `groundOnly`). Enemy
|
||||
// priority: sortAllyTargets.
|
||||
|
||||
Reference in new issue
Block a user