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

docs/history/0.2.0.md: §25.17 in §25's style (seen / official / cause / now / [ASSUMED] / golden / tests) and the intro list;
docs/design/engine.md cites §25.17.5 for the in-place revive; the header comments of 星熊, 斩业星熊, 年 and 余 say "every enemy
damage instance" instead of "every attack". No code change.
This commit is contained in:
sganggs committed 2026-10-07 02:47:47 +08:00
1 parent 4a3d11b568
commit de78d49f9b
6 files changed
+143 -11

No files matched your search

+1 -1
View File
@@ -100,7 +100,7 @@ Base stats (from data): `maxHp, atk, def, res` (0–100), `aspd` (100 base), `ba
| `hit` | `{ source, target, dmg }` | before mitigation; mutate `dmg` (DamageInfo) |
| `damaged` | `{ source, target, amount, type, dmg }` | after application |
| `heal` | `{ source, target, amount }` | before application (mutable amount) |
| `fatal` | `{ unit, source, credit, dmg, amount, prevented }` | HP would reach 0 — fired by every HP loss of a unit without a boss pool (hits of any type, element bursts, 无来源 damage, `loseHp`); set `prevented`. Order: kits' own savers (10 … −60) → items' 不死 (坚固维式重锤, once per deployment) `PRIO_REVIVE` −100 → items' 复活 (M3茧甲) `PRIO_RESPAWN` −101 → 埃芒加德 −110; the two 复活 revive in place and open a new deployment for the lock (§21.21) and for a deploy-timed skill (`activateOnDeploy`, started again); a running 坚固 window's hook sits at `PRIO_UNDYING_HELD` −99, before a 傀儡师's switch to its 替身 (−100, ahead of the lock — a 本体 holding 不死 does not switch, §22.11) |
| `fatal` | `{ unit, source, credit, dmg, amount, prevented }` | HP would reach 0 — fired by every HP loss of a unit without a boss pool (hits of any type, element bursts, 无来源 damage, `loseHp`); set `prevented`. Order: kits' own savers (10 … −60) → items' 不死 (坚固维式重锤, once per deployment) `PRIO_REVIVE` −100 → items' 复活 (M3茧甲) `PRIO_RESPAWN` −101 → 埃芒加德 −110; the two 复活 revive in place and open a new deployment for the lock (§21.21) and for a deploy-timed skill (`activateOnDeploy`, started again: §25.17.5); a running 坚固 window's hook sits at `PRIO_UNDYING_HELD` −99, before a 傀儡师's switch to its 替身 (−100, ahead of the lock — a 本体 holding 不死 does not switch, §22.11) |
| `kill` | `{ killer, victim }` | victim hp reached 0; a `killed` ability that keeps the enemy alive (a knock-out into a 重生 / form change, §21.4) hides it from every later handler, the kill count, credit and the bounty |
| `death` | `{ unit }` | unit removed (ops may redeploy later); the `die` event and the death hooks fire only on removal |
| `skillStart` / `skillEnd` | `{ unit, skill }` | |
+133 -1
View File
@@ -25,7 +25,11 @@ settled (泥岩's 闭锁; 忍冬, 深靛, 阿) → §25.11; release packaging an
with no Spine model) → §25.12; round 18 — 拟态物质 at the copy cap (GitHub #207), 华法琳's 7 / 14 (GitHub #175, PR #192),
a merged elite 拉普兰德 as a new one (GitHub #169), the leader pool per player alive (PR #209), the flying lift and two
model quirks (PR #211) → §25.13; the community reports of 2026-10-06 (the 孤岛风云 prisoners drawn freed, 忍冬's trigger, a
bounty burned to death by the 活性源石, 枯朽之种 paying a bounty) → §25.14.
bounty burned to death by the 活性源石, 枯朽之种 paying a bounty) → §25.14; the second batch of community reports of
2026-10-06, stream CB3 (operator kits and triggers: 砾's double hit, 乌尔比安's S3 landing behind the 联防 red gate, the
「受到攻击时」 counters on every enemy damage instance, a 突袭 member's jump after an in-place 复活, 银灰's sound; 铃兰's
trigger, 琳琅诗怀雅's champagne, the 突袭 玛恩纳, 归溟幽灵鲨 devoured and 荒芜拉普兰德 / 叙拉古 already answered; 乌尔比安's
revive tile a question) → §25.17.
Decisions of the owner: 2026-10-04 — the server stays on plain `node:http` + `ws`, no web framework (§25.1);
2026-10-05 — the 补位 plan (§25.3); the 自选编队 rules, the collab operators out of the pool, ISW-A refused (§25.4);
@@ -1062,3 +1066,131 @@ fixed (W5AA's commits name every golden scenario moved); two were already fixed
bounty 使徒 whose seeds leaked sent every seed into 联防 carrying the card — 15 of 16 re-entries paid it again — which
is the report; on this tree only the 使徒's own leak carries it.
- Golden: unchanged. Pinned: `test/sim/feedback5-community-pins.test.js`.
### 25.17 Community reports of 2026-10-06, stream CB3: operator kits and triggers — `sim/ai.js resolveHit` (`hitDmgMul`), `kits/ops/chess_char_2_12-gravel.js`, `kits/ops/chess_char_5_05-ulpia.js`, `sim/battle/players.js onOwnBoard`, `kits/shared/tier1.js byEnemyAttack`, `content/items/battle.js revivedInPlace`, `tools/assets/audio.mjs pickUnitSfx`
The owner's second collection of community reports (2026-10-06/07) was split over five streams; CB3 took the items about
operator kits and skill triggers (items 2, 16.1, 16.4, 16.5, 17, 27, 28, 30, 44, 46, 54 of the list). Each was reproduced
on the 0.2.0 tree with a script first (where the report could be older, on the v0.1.1–v0.1.4 sources too), then checked
against the official data (character_table, skill_table, activity_table → act2autochess, audio_data, ArknightsGameData's
buff templates, the local client's charpacks and skill prefabs) and PRTS (备注 included). Five are real and fixed, one
commit each with its golden scenarios named; five were already answered or are not bugs (pinned by tests); one is a
question for the owner.
#### 25.17.1 「砾的平A是比较特殊的双判,是两次50%伤害倍率(不是攻击倍率)」 (item 16.5): two instances of 50 % 伤害倍率 per normal attack — `sim/ai.js resolveHit`, `sim/professions.js` (`hitDmgMul`), `kits/ops/chess_char_2_12-gravel.js`
- **Seen**: one damage instance per attack (measured: against DEF 300, ATK 352, one hit of 52), so a 频次 enemy lost 1.
- **Official**: PRTS 砾 特性备注 — in her attack animation every normal attack deals two instances, each 50 % of the final
damage (after DEF / damage reduction, before 重设伤害), and the second triggers no 受击回复.
- **Now**: the profile field `hitDmgMul` — the DamageInfo `mul` of each of the `hits` instances on the main target, applied
after DEF / RES and the damage multipliers, `noSp` on the later ones — and 砾's kit trait `{ hits: 2, hitDmgMul: 0.5 }`:
two hits of 26 in the example (the same total), 2 per attack against a 频次 enemy. Both her skills are passive, so every
attack she makes is a normal attack.
- [ASSUMED]: the two instances land at once, at her attack's damage frame (the animation's second hit is not timed).
- Golden: 7 scenarios with 砾 on the board — roster-004 / 005 / 024, bond-indomShip-low / -high, bond-kazimierzShip-low /
-high (two damage events per attack; in roster-024 and bond-kazimierzShip-high the last blow lands on another instance,
so kills move between her and her neighbours). Tests: `test/sim/feedback5-gravel-double-hit.test.js`. Docs: docs/SIM.md.
#### 25.17.2 「乌尔比安使用3技能会在联防阶段跳到红门后」 (item 27): the S3 【移动】 lands only on his own board — `kits/ops/chess_char_5_05-ulpia.js`, `sim/battle/players.js onOwnBoard`
- **Seen**: on the one-helper 联防 map (act1autochess_escaped_single: the lone helper on the left half, the enemies out of
the middle gate at col 10) an anchor that met no enemy flew on 6 tiles into the right half, where no enemy walks, and he
stood there behind the red gate for the whole skill (reproduced: (10,7) → (10,13); on a solo boss field (2,5) → (2,11)).
- **Official**: PRTS 乌尔比安 S3 备注 ③ — the anchor tile if it can be deployed on, else the tile one beyond, else his own
tile. "可部署" is a tile his player deploys on.
- **Cause**: "deployable" was any standable tile of the battle rect; UNITE_RECT spans both halves of the 联防 map and
BOSS_RECT the hand / 临时整备区 rows and the partner's half.
- **Now**: the landing must also lie on his board — `Battle.onOwnBoard(ps, r, c)`, the board region GEO.FIELD mapped onto
the field as `mapTile` maps the pieces (the helper stream CB4 adds for the 突袭 landing; the hunk is identical).
The anchor still flies its 6 tiles and blasts there; he stays when neither tile is his.
- [ASSUMED]: that the official "可部署" excludes the other half of a shared field (the level files mark both halves
buildable; no player deploys on the other's).
- Golden: 1 scenario — fields hidden-boss_9-solo (his first cast landed on the right half). Tests:
`test/sim/feedback5-ulpia-own-board.test.js`; `test/sim/facing-invariance.test.js` counts every tile of its open field
as the player's own (a board-position rule, like the deployment order it already avoids).
#### 25.17.3 「乌尔比安3技能期间死亡会留在3技能位移后的位置复活,应回到初始部署位复活」 (item 28): the sources say where he fell — a question for the owner, no change
- **Checked**: knocked out during S3 he lies on the landing tile and comes back there — the rule of every operator moved
off its board tile since 0.1.1 (§21.24, `Battle._layBody`): PRTS 卫戍协议/帮助 「原地留下一个“倒地干员”…自动部署至该位置」,
whose one exception (「若干员被击倒的位置为其他干员或召唤物的初始位置,则…尝试返回其自身的初始位置」) does not apply to his
landing tile. PRTS 乌尔比安 S3 备注 ④ (the 【返回】 at the skill's end) says nothing of a knock-out, and the client's S3
templates (`ulpia_s3_*`: the 【移动】 respawn clips and flags) carry no other rule. With §25.17.2 he can no longer fall
behind the red gate.
- **Question for the owner**: keep "where he fell" (the sources) or send him back to his deployment tile (the report)?
- Golden: unchanged.
#### 25.17.4 「退行的潮涌者的攻击无法触发菲莱2技能的受击反击(排查其他类似技能的干员)」 (item 30): the 「受到攻击时」 counters answer every damage instance from an enemy — `kits/shared/tier1.js byEnemyAttack`, `kits/ops/chess_char_3_06-philae.js` and the kits below
- **Seen**: the report's 退行的潮涌者 is the 巢涌者 (深溟 / 富营养的巢涌者 in this mode): no normal attack, its talent hurts
every operator in range once a second — and 菲莱 S2 never answered it (measured: 0 blasts).
- **Official** (ArknightsGameData buff_template_data): the pulse is an AdvancedApplyDamage with the enemy as its source
(`enemy_dsubrl_aoe[aura]`); the counters fire on ON_TAKE_DAMAGE — `philae_s_2` with no filter at all, and on a source of
the other side `inverse_damage` (星熊 S2, from its skill prefab), `inverse_damage[magic]` + `nian_s_2` (年 S2),
`bubble_s_2` / `bubble_t_1` (泡泡 S2, 尖刺盾), `vendla_s_2` (刺玫 S2), `yu_s_1[inverse_damage]` (余 S1), `hsgma2_s_1` /
`hsgma2_e_003_tr_take` (斩业星熊 S1, AST-X), `mlynar_t_2[inverse]` (玛恩纳 无动于衷). 棘刺 S2 (a 普通伤害 filter) and 信仰搅拌机
S3 (any damage) were already right.
- **Cause**: those kits required `dmg.isAttack`.
- **Now**: `byEnemyAttack` = any damage instance from an enemy but a 流失 (PRTS 作战机制: 流失 triggers no 受击 events), an
element 损伤, 无来源 damage or another counter / reflection (tags `counter` / `reflect`, no ping-pong); 菲莱 S2 takes any
instance but a 流失 or a counter. `test/content/op_nian.test.js` pinned "a non-attack hit returns nothing" for 年 S2 —
updated on purpose.
- [ASSUMED]: a hit fully absorbed by a shield still counts (ON_TAKE_DAMAGE fires on the damage instance); a dodged one does not.
- Found on the way, not changed: the pulse is `_ignoreForSp` officially (no 受击回复 SP, so it should not set off 雷蛇's
talent either) and still gives SP here; `content/generic.js`'s parsed counter still takes attacks only (no unit uses it).
- Golden: 19 scenarios where an enemy's non-attack damage reached one of these operators — roster-002 / 005 / 008 / 010 /
012 / 016 / 033 / 044; bond-lateranoShip-low; fields boss-boss_2-solo, boss-boss_4-pair / -solo, hidden-boss_8-pair /
-solo; matches solo-FUNNY-1 / -2, coop4-ABYSS-7, coop2-ABYSS-10-boosted; diy-051. Tests:
`test/sim/feedback5-counters-any-damage.test.js`. Docs: docs/SIM.md (re-entrancy rule).
#### 25.17.5 「突袭盟约的干员如果带被动技能,复活之后不会立马突袭出去,还要等突袭CD」 (item 44): an in-place 复活 starts a deploy-timed skill again — `content/items/battle.js revivedInPlace`
- **Seen**: 缄默德克萨斯 (S3) revived by M3茧甲 or 埃芒加德 with nothing in range jumped 10.00 s later; after 不屈's real
redeploy 0.23 s later. After a timed redeploy every passive member already jumped at once (measured for 宴, 缄默德克萨斯,
斯卡蒂, 耀骑士临光, 伊内丝).
- **Official**: PRTS 盟约记录 备注 — 「复活」 is 退场 + a 0-time / 0-cost redeploy, a new deployment, after which a deploy-timed
skill runs again; a 突袭 member counts that running window as 技能就绪 (`raidPoll`, GitHub #49 / #109).
- **Cause**: the remake revives in place (a `fatal` hook, §21.21): her window, over by then, stayed over and only the idle
trigger was left.
- **Now**: `revivedInPlace` also restarts an `activateOnDeploy` skill on the next tick — anew when its window had ended,
back to its full duration when it still ran — so the member jumps at once; 砾 gets a fresh barrier, 缄默德克萨斯 a new
sword rain. The SP reset and the other 部署时 effects of PRTS's form stay unmodelled (§21.21).
- [ASSUMED]: none beyond §21.21's in-place form.
- Golden: 1 scenario — roster-012 (the elite 缄默德克萨斯 revived in place three times). Tests:
`test/sim/feedback5-raid-revive.test.js`. Docs: docs/SIM.md, DESIGN §5.4 (design/engine.md, the `fatal` hook).
#### 25.17.6 「干员银灰的普通攻击的音效错误的使用了3技能期间的攻击音效」 (item 54): an operator whose default mode is the unsuffixed ability never takes a skill mode's sound — `tools/assets/audio.mjs pickUnitSfx`, data/assets.json
- **Seen**: 银灰's normal attack swung with p_atk_silver_n and hit with p_imp_sword_n.
- **Official** (audio_data, the local client's charpack): his normal attack is the Default mode's Combat — impact
`ON_ABILITY_HIT.char_172_svrash.combat` p_imp_spear_n, no swing bank; `.attack.2` (silver swing, sword impact) is his S3
mode, `.attack.1` his S2 mode.
- **Cause**: the picker's skill-mode test is by file name (`_d` / `_h` / `_s`), and those files end in `_n`.
- **Now**: an operator with a plain attack / combat bank (its default mode is the unsuffixed ability) never takes a
numbered variant; those that number their default mode (`attack.0` …) keep the order. Of the 209 operators it changes
4: 银灰, 雷蛇 (S2's lightning impact), 初雪 (her S1-2 mode's impact), 圣约送葬人 (S3_End's impact). data/assets.json was
regenerated offline (`fetch-assets --offline --add-only --allow-shrink`; JSON compare: those 4 entries, the hash and
stats). 银灰's official impact file was never downloaded on that machine, so his entry is empty until one online
`node tools/fetch-assets.mjs --add-only` adds it.
- Golden: unchanged. Tests: `test/feedback5-operator-sfx.test.js`. Docs: docs/ASSETS.md.
#### 25.17.7 Already answered or not a bug: 铃兰's trigger, 琳琅诗怀雅's champagne, the 突袭 玛恩纳, 归溟幽灵鲨 devoured, 荒芜拉普兰德 and 叙拉古 (items 2, 17, 16.1, 16.4, 46) — no change
- **Item 2** 「敌人在干员…铃兰技能范围内没有开技能,在攻击范围才开」: her default S3 狐火渺然 (「攻击范围扩大」, no class or charId
row) was DEFAULT up to v0.1.4 — an enemy in her own 2-tile range; 0.2.0's ACTIVE_RANGE (§25.5, `resolveTrigger`) casts
it with an enemy in its running range y-8 (3 tiles ahead), as for 忍冬 (§25.14.2). data/chess.json already says so.
- **Item 17** 「琳琅诗怀雅的2技能的香槟只会在攻击范围内生成」: fixed by 0.2.0 WC (GitHub #116 item 2, §25.6): S2 “见面礼” throws
on the placeable, walkable ground tiles of range x-6 — her tile and two tiles up / down / left / right (PRTS 备注
「香槟炸弹放置范围:x-6」), onto an enemy's tile when one stands there. Pinned by `test/content/kits_t3.test.js`.
- **Item 16.1** 「突袭转职玛恩纳触发突袭的频率低很多…攻击范围里有怪的时候即使长时间没攻击也不会突袭」: the bond text itself —
「干员10秒内未进行攻击或技能就绪时,若范围内没有敌人」. A 解放者 never attacks with his skill off, so his 10 s are always met,
and an enemy in his range (one he does not block keeps walking through it) is what holds the jump, as for every member.
Should the owner have footage of the official game jumping with an enemy in range, that would be a new rule.
- **Item 16.4** 「归鲨被吃的时候不是变替身而是进了再部署」: not reproduced — an 阿戈尔 devour mark switches her to her 替身 on
normal, 联防 and boss fields; a sweep of 400 random chains (241 marked, 201 lethal) on this tree and on v0.1.2–v0.1.4:
never a knock-out. A player who does not own her fields her 补位 stand-in Sharp (近卫-无畏者, no 替身).
- **Item 46** 「荒芜拉普兰德开技能之后好像没有普攻了…叙拉古恐惧概率不高」: during her default S3 every drone is out chasing the
enemies nearest to it (PRTS 技能流程), so she makes no attack of her own — the drones hit — and her attacks come back
when it ends (measured). 叙拉古 6's true damage + fear is PRTS's rule: 0.139 % per 普通伤害 attempt, +0.139 % per miss,
a counter shared by the player's members (3 % on average; measured 3.0 %).
- Golden: unchanged. Pinned: `test/sim/feedback5-cb3-pins.test.js` (items 2, 16.1, 16.4, 46).
@@ -5,7 +5,7 @@ import { AURA, num, tbb, whileDeployed, pulse, toggleBuff, isSel, alt, withDefau
import { byEnemyAttack } from '../shared/tier1.js';
export default withDefaults({
// ===== 星熊 (protector) S2 荆棘 (passive) — DEF +13 %, counters every attacker for 65 % ATK phys; talents
// ===== 星熊 (protector) S2 荆棘 (passive) — DEF +13 %, answers every enemy damage instance with 65 % ATK phys on its source; talents
// S1 战意 (TAKE_DAMAGE: DEF/ATK up); S3 力之锯 (ATK/DEF up, cuts every enemy on her front tile — all enemies of her
// range); module PRO-X (护身符): DEF +20 % while blocking
chess_char_4_17_a: (bb, chess, def) => {
@@ -40,8 +40,8 @@ function yu(bb, chess, def) {
// "将第二天赋效果赋予全场所有干员" belongs to S3 (the default skill) only
const s3On = (unit) => isDef && !!unit.skill?.active;
const skills = {
// S1 今日做东 (TAKE_DAMAGE, hurt SP): passive taunt +taunt_level; active: HP / DEF +, every attack taken ⇒
// ep_damage_ratio × ATK 灼燃损伤 on the attacker (install below)
// S1 今日做东 (TAKE_DAMAGE, hurt SP): passive taunt +taunt_level; active: HP / DEF +, every enemy damage instance taken ⇒
// ep_damage_ratio × ATK 灼燃损伤 on its source (install below)
skchr_yu_1: { kind: 'duration', mods: { hpPct: num(bb.max_hp), defPct: num(bb.def) } },
// S2 厚礼上宾 (cast with an enemy on its x-1: the data's SKILL_RANGE, a deliberate deviation from the 重装 TAKE_DAMAGE
// row — tools/build-data.mjs TRIGGER_DEVIATIONS, DESIGN §22.10): atk_scale × ATK arts on every enemy of the skill range
+4 -4
View File
@@ -19,8 +19,8 @@
// data's 'phys' too since 0.2.0 WE2 — build-data classifyAttack) and arts while one runs (every skill's attack override); block 3, ground-only
// melee on her 1-1. Module AST-X 无迹 adds "且攻击和受到攻击时对目标额外造成10%攻击力的法术伤害" (trait bb atk_scale): every
// damage instance of her normal attacks (skill attacks included; not the shield, a counter or the module's own damage)
// is followed by atk_scale × ATK arts on that enemy (附加伤害: no dodge), and every enemy attack she takes returns
// atk_scale × ATK arts (普通伤害) to the attacker — whether a skill runs or not [ASSUMED: PRTS's list of the checked
// is followed by atk_scale × ATK arts on that enemy (附加伤害: no dodge), and every enemy damage instance she takes
// returns atk_scale × ATK arts (普通伤害) to its source (tier1 byEnemyAttack) — whether a skill runs or not [ASSUMED: PRTS's list of the checked
// conditions names no skill period].
// - T1 业火 "生命降至0时进入“我执”…": a lethal damage instance leaves her on the field in 我执 instead (the damage past her
// HP opens the negative pool — the engine keeps her at its 1-HP floor for the official 0); in 我执 every later damage
@@ -34,8 +34,8 @@
// - T2 鬼之架势 "在场时,自身获得最高+50法术抗性和35%攻击力的坚忍(损失70%生命值时达到最大加成)": RES +min_magic_resistance and ATK
// +min_atk scaled linearly by the HP lost from max_hp_ratio down to min_hp_ratio (坚忍), re-read every tick; in 我执 at
// its maximum. AST-X stage 3: the maximum at 50 % lost (min_hp_ratio 0.5) and "达到最大加成时,攻击力额外+15%" (atk).
// - S1 恶业苦果 (AUTO, 受击回复 SP, 持续时间无限 — a toggle): ATK +atk, DEF +def, arts attacks; every enemy attack she takes
// deals atk_scale × ATK arts to the attacker (a direct pick of the damage source, enemies only). A self buff: the owner's
// - S1 恶业苦果 (AUTO, 受击回复 SP, 持续时间无限 — a toggle): ATK +atk, DEF +def, arts attacks; every enemy damage instance
// she takes deals atk_scale × ATK arts to its source (a direct pick of the damage source, enemies only). A self buff: the owner's
// AUTO rule fires it as soon as its SP is full (`trigger: 'SP_FULL'`, as 引星棘刺 S1 — kits/README.md checklist 5).
// - S2 无始无明 (AUTO, attack SP; data DEFAULT): the cast replaces the attack about to be made — the shield throw, three hits
// of attack@atk_scale × ATK arts on every enemy she blocks (none blocked: her target [ASSUMED]); then the shield circles
+2 -2
View File
@@ -27,8 +27,8 @@
// no-SP-during-a-skill rule, tier1 giveSp).
// - S1 锡灼 (MANUAL, time SP; data DEFAULT — the owner's 重装 cast-in-range exception, rawRule TAKE_DAMAGE): `duration` s of
// DEF +def and ATK +atk; normal attacks deal arts damage.
// - S2 铜印 (MANUAL; data DEFAULT): `duration` s — stops attacking; DEF +def, block +block_cnt; every enemy attack she takes
// (each damage instance of one, as 星熊 荆棘 / 泡泡) deals atk_scale × ATK arts to the attacker and silences it `silence`
// - S2 铜印 (MANUAL; data DEFAULT): `duration` s — stops attacking; DEF +def, block +block_cnt; every enemy damage instance she
// takes (its attack or not, as 星熊 荆棘 / 泡泡) deals atk_scale × ATK arts to its source and silences it `silence`
// s ("失去特殊能力"): a direct pick of the damage source (ignoreSelect), enemies only (PRTS 备注), even when a 护盾 layer
// negated the hit.
// - S3 铁御 (MANUAL; data DEFAULT — its x-2 is a 技能范围 for the allies, no attack-range change): `duration` s of ATK