feedback5: merge CB3 — community reports (operator kits): 砾's normal attack hits twice at 50 % 伤害倍率 (a 频次 enemy loses 2), 乌尔比安's S3 moves only onto his own board (never behind the one-helper 联防 map's red gate nor onto a boss field's other half), the 「受到攻击时」 counters answer every enemy damage instance (菲莱 S2 on 深溟巢涌者's pulse, 星熊, 泡泡, 刺玫, 余, 玛恩纳, 年, 斩业星熊), an in-place 复活 restarts a deploy-timed skill so a 突袭 member jumps at once, 银灰's normal attack plays its own impact (and 雷蛇 / 初雪 / 圣约送葬人 drop a skill mode's sound); five reports pinned; §25.17 between CB2's §25.16 and CB4's §25.18; data/assets.json lists 银灰's impact (p_imp_spear_n.mp3 fetched); golden: vs feedback5 CB3's own rules — roster-002/004/005/008/010/012/016/024/033/044, bond-indomShip-low/high, bond-kazimierzShip-low/high, bond-lateranoShip-low, boss-boss_2-solo, boss-boss_4-pair/-solo, hidden-boss_8-pair/-solo, hidden-boss_9-solo, diy-051, matches solo-FUNNY-2, coop2-NORMAL-3, coop4-ABYSS-7, coop2-ABYSS-10-boosted; vs CB3 exactly what feedback5 changed since its base (CB2, CB4, CB5)
The merge:
- server/sim/battle/players.js: CB3's onOwnBoard hunk is byte-identical to CB4's (git kept one); its comment and
docs/SIM.md's onOwnBoard row now name 乌尔比安's S3 【移动】 next to the 突袭 landing (DESIGN §25.17.2 / §25.18).
- test/sim/facing-invariance.test.js: CB3's scenario setup (onOwnBoard off on the open field) and the CB4 merge's
突袭 test (its enemy inside the board) merged cleanly, both kept.
- data/assets.json: CB3 had regenerated it offline without 银灰's entry (his official impact file was not on disk);
`node tools/fetch-assets.mjs --add-only` (shared public/assets, add-only) downloaded p_imp_spear_n.mp3 — 8.8 KB,
the only new file (ok 1, skipped 7968; the 117 misses are the known upstream gaps) — and rewrote the manifest.
Field-wise JSON compare with CB3's manifest: only audio.sfx.units.char_172_svrash = { hit: p_imp_spear_n } plus hash
and stats (files / bytes / sfxUnits +1); against feedback5: CB3's four operators (银灰 now the spear impact and no
S3 swing, 雷蛇 / 初雪 / 圣约送葬人 without the skill-mode impact) plus hash / stats. §25.17.6 says so.
- docs/history/0.2.0.md: §25.17 placed in order, the intro's per-stream list and workstream list name CB3.
Golden moves outside CB3's commit list: coop2-NORMAL-3 fields 砾 from round 3 (her double hit) and 刺玫 in rounds 4-7
(instrumented); solo-FUNNY-1 (in CB3's list through the counters) fields no counter operator on feedback5's path, only
砾, whose two half hits change no kill, leak, LP or end stat there, so its digest stays.
Gate: non-browser suites 5003 / 5003, npm run golden ok, test/golden.test.js 9 / 9, lint 0 errors, check:imports ok,
typecheck ok.
This commit is contained in:
commit
d841d6ac22
33 files changed
+956
-245
No files matched your search
+137
-5
@@ -10,7 +10,7 @@ after review with its golden scenarios named: R1–R6 (refactor, tooling), W5A (
|
||||
K1–K3 / W5N (补位), W5H / W5K / O1–O24 (自选编队 and its operator kits), W5I / W5S (languages, phases 1 and 2), W5C /
|
||||
W5E / W5F / W5J / W5L (fidelity, wave 1), WE1 / WE2 (the follow-ups the kit waves reported), W5M, W5R and the feedback4
|
||||
merges (the 0.1.4 ports), W5V (the owner's items of 2026-10-06), W5U (packaging), W5T (the docs), W5Y (round 18:
|
||||
three GitHub issues and three community PRs), W5AA and CB2 / CB4 / CB5 (the community reports of 2026-10-06), W5AC
|
||||
three GitHub issues and three community PRs), W5AA and CB2 / CB3 / CB4 / CB5 (the community reports of 2026-10-06), W5AC
|
||||
(rebindable shortcuts) and W5AD (language packs). Each rule was checked against the official data and PRTS; anything no
|
||||
source backs is marked [ASSUMED].
|
||||
The normative sections were rewritten with the streams: §0 (the DIY slots), §2 (the layout), §5.5 (the enemy damage
|
||||
@@ -31,10 +31,13 @@ bounty burned to death by the 活性源石, 枯朽之种 paying a bounty) → §
|
||||
second batch of community reports of 2026-10-06, one section per stream: CB2, healers, summons, timers (刺玫's S2 heals,
|
||||
琳琅诗怀雅 healing herself and her 破财消灾 cost after a redeploy, 赫默's drone at full SP, the countdown summons' 无敌 /
|
||||
禁疗 / timer bar, stacked alchemy zones; the chain heal, DoT damage, 伺夜's 狼影 and the 吟游者 trait answered) → §25.16;
|
||||
CB4, enemies, bosses, waves, movement (the 突袭 landing on the 临时整备区 row and the other half of the 联防 map, a
|
||||
silenced 萨卡兹枯朽战士's death pollution, 萨卡兹穿刺手's speed after a stun and its first hit, 自制投石机 blocked on the
|
||||
排气格栅; the briefing types' 7–9 waves, 新硎's 断刃, a freed prisoner in 联防 and 鸭爵's two swaps in one wave already
|
||||
answered; the moving leaders' routes checked; 野鬃, 锏's pulls, 昆图斯's footprint and the leaders' attack rate not
|
||||
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; CB4, enemies, bosses, waves, movement (the 突袭 landing on the 临时整备区 row and the
|
||||
other half of the 联防 map, a silenced 萨卡兹枯朽战士's death pollution, 萨卡兹穿刺手's speed after a stun and its first
|
||||
hit, 自制投石机 blocked on the 排气格栅; the briefing types' 7–9 waves, 新硎's 断刃, a freed prisoner in 联防 and 鸭爵's two
|
||||
swaps in one wave already answered; the moving leaders' routes checked; 野鬃, 锏's pulls, 昆图斯's footprint and the leaders' attack rate not
|
||||
reproduced) → §25.18; CB5, match flow and UI (a module's 特性追加 line after the class trait, the new shop slot filled at
|
||||
the upgrade, an eliminated player following a player through every round, the boss field and its leader in a watcher's
|
||||
boss prep, the pair together in the boss prep with the official green frames; PRs #189 / #191 reused, not merged; the
|
||||
@@ -1204,6 +1207,135 @@ the evidence.
|
||||
under 魔王 (pinned by `test/content/feedback5-regen.test.js`); 孤立 units stay out (PRTS 孤立). The countdown summons
|
||||
cannot be refilled since §25.16.5.
|
||||
|
||||
### 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 not on disk yet, so his entry stayed empty in the stream; at the merge one online
|
||||
`node tools/fetch-assets.mjs --add-only` downloaded p_imp_spear_n.mp3 (8.8 KB, the only new file) and the manifest lists
|
||||
his impact again (JSON compare with the stream's manifest: `char_172_svrash.hit`, the hash and stats).
|
||||
- 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).
|
||||
|
||||
### 25.18 Community reports of 2026-10-06, stream CB4: enemies, bosses, waves, movement — `sim/battle/players.js onOwnBoard`, `content/bonds/addon/battle.js raidTile`, `content/enemies/archetypes.js kitPolluted`, `content/enemies/special.js kitRush`, `targeting.js canTargetAlly`
|
||||
|
||||
The owner's second collection of community reports (2026-10-06/07) was split over five streams; CB4 took the items about
|
||||
|
||||
Reference in new issue
Block a user