feedback5 R19E: an enemy finishes its attack clip after its block ends — the 鸭爵 swap's 流泪小子 no longer walks on the tick its strike stuns its blocker (community report of 2026-10-07 「哭狗瞬间隐匿没有后摇」, GitHub #214 by @FrogThai); golden: 216 scenarios move
ai.js enemyAttack set the post-strike stand only for an unblocked ranged enemy (`!e.blockedBy && radius > 0`), so a
melee enemy released by its own strike walked on that very tick. 流泪小子 (enemy_2034_sythef_2, the strategy's version;
「泪眼汪汪」 / 「哭狗」 in the reports) stuns its blocker with every hit, the stunned blocker lets it go and its 隐匿 is
back 0 s later: on 0255afd it walked off the tick of each strike (four non-attacking walls in a lane: 8 stuns, 19.8 s
隐匿 / 9.0 s revealed, leaked at 28.9 s). PRTS 状态机: an enemy's ATTACK state 「每帧检查异常状态…攻击结束后回退到MOVE状态」
and COMBAT 「逻辑同ATTACK」 — only a character's COMBAT 「检测到不存在阻挡对象时强行切回IDLE状态」 — so an enemy finishes its
attack when its blocker goes. Now every enemy stands for the rest of its clip after a strike (attackStand; a blocked one
never walks, so it shows only when the block ends meanwhile: its blocker stunned or knocked out by that strike, or
gone); a stun / freeze / sleep / 浮空, leaving the field and, new, a displacement (失衡, Battle.displace) end the stand.
流泪小子 now stands 0.8 s (its 1.567 s clip, strike at 0.767), 隐匿, and a blocker whose stun ended often takes it over
again: the same lane 13 stuns, 29.1 s 隐匿 / 12.8 s revealed, leaked at 42.0 s.
Checked and official, unchanged: a stunned operator blocks nothing (gamedata_const ba.stun 「无法移动、阻挡、攻击及使用技能」,
PRTS 异常效果 STUNNED 「无法攻击、释放技能、阻挡敌人类单位」 — the keeps-blocking hypothesis is wrong); 隐匿 back 0 s after a
block (PRTS 流泪小子); moveSpeed 0.8 × the level's moveMultiplier 0.5, interval 2.0 s, stun 3.5 s, MELEE (enemy_database;
PRTS 盟约记录 鸭爵 备注: 4500 HP, 3.5 s stun, 隐匿 kept); the cooldown runs on the walk, so a new blocker sees the swing at
once and the strike after the 0.767 s wind-up; a bot teammate's 鸭爵 swaps into a human's battles, the Final Assault and
the Hidden Core too (「你和队友遭遇的部分敌人」), on the replaced enemy's route.
Golden — traced in lockstep against a copy of the parent: in each of the 199 battle scenarios the first differing tick is
an enemy standing out its clip after a strike where the parent walked on; every moved match has such stands in an
earlier or the same round. roster 41 of 49 (all but -003, -005, -009, -018, -019, -025, -035, -049); bonds 21
(deputShip-low, emptyShip-low / -high, indomShip-low / -high, investShip-low, kazimierzShip-low / -high,
kjeragShip-high, lateranoShip-high, miraShip-high, raidShip-low, sargonShip-high, siracusaShip-low, soloShip-low /
-high, suntShip-low / -high, swiftShip-high, visiShip-low, yanShip-low); fields 13 (all but boss-boss_1-solo,
boss-boss_2-pair / -solo, boss-boss_6-solo, boss-boss_7-pair / -solo, hidden-boss_8-solo, hidden-boss_10-solo,
unite-1); matches 17 (all but solo-HARD-9-boosted); standins 10 of 10; diy 114 of 138 (all but -011, -012, -018, -020,
-025, -027, -029, -031, -033, -047, -053, -077, -080 … -082, -086 … -088, -091 … -093, -098, -108, -123). The
displacement rule alone moves one roster scenario.
Tests: test/sim/feedback5-attack-clip-rest.test.js (5; the four behaviour tests fail on the parent, the data pin passes
on both); test/sim (745), test/content + feedback1-ducklord (2030), test/match (593) pass. Docs: CHANGELOG 0.2.0 规则
(按官方) and 核实后不是问题, docs/history/0.2.0.md §25.22.6, docs/SIM.md, design/engine.md, DATA.md.
This commit is contained in:
1 parent
0255afd12b
commit
ef25c03525
14 files changed
+3934
-3726
No files matched your search
@@ -1980,3 +1980,50 @@ here, each reproduced first; the rest were answered (not a bug, already fixed in
|
||||
the parent), `test/match/playtest6-matchflow.test.js` #235 (2; the 联防 one fails on the parent: losses = the LP
|
||||
settled, no result ticker, gone in the next phase), SP_E2E `test/ui/resultbox.e2e.test.js` (3, mock variants
|
||||
`unite[,through][,helper|,dead]`). Docs: PLAYING.md §1 / §5, design/network.md, design/client.md, design/match.md.
|
||||
|
||||
#### 25.22.6 「ai的鸭爵分队真的好阴…哭狗瞬间隐匿没有后摇马上就到下一格干员的脸上秒抬手秒晕」 (community report of 2026-10-07) and GitHub #214 「鸭爵技能生成的泪眼汪汪没有反隐直接一路顺畅走进蓝门」 (@FrogThai; PR #243 by @TsangAsuna declined): an enemy finishes its attack clip after its block ends — `sim/ai.js enemyAttack`, `sim/battle/displacement.js displace`
|
||||
|
||||
- **Seen**: 泪眼汪汪 / 哭狗 / 隐匿狗 is 流泪小子 (`enemy_2034_sythef_2`, 「唯唯诺诺的佩洛」 — no enemy is named 泪眼汪汪), the
|
||||
only 隐匿 and stunning enemy of the four the 鸭爵 strategy swaps in. Measured on 0255afd with a lane of four blockers that
|
||||
never attack (route 0, cols 8 → 5): blocked at 3.233 s, swing 3.267, strike 4.033 (the wall stunned 3.5 s, the block
|
||||
released, 隐匿 at once) and walking on the very next tick; the next wall reached at 6.533 (one tile at 0.4 tiles/s) and
|
||||
struck 0.767 s after the contact, its cooldown ready; a wall whose stun ended took it over again while it was still
|
||||
inside that wall's block radius. 8 stuns, 19.8 s 隐匿 / 9.0 s revealed, leaked at 28.9 s.
|
||||
- **Official**: every number the report questions is the official one. enemy_database `enemy_2034_sythef_2` level 0:
|
||||
moveSpeed 0.8 (× the level's moveMultiplier 0.5: 0.4 tiles/s), baseAttackTime 2.0, MELEE, `Combat.attack@stun` 3.5 —
|
||||
PRTS 卫戍协议:盟约 下半/PRTS盟约记录 鸭爵 备注: a 「特殊版本,相较于原版更弱」 (4500 HP, 3.5 s stun) that keeps its 隐匿 (the
|
||||
handbook line is unchanged). PRTS 流泪小子 (same prefab): 「隐匿(解除阻挡0秒后恢复),近战攻击使目标晕眩」 — it attacks only
|
||||
its blocker. Its Spine Attack clip: 1.567 s, OnAttack at 0.767 s (data/assets.json). gamedata_const `ba.stun`
|
||||
「无法移动、阻挡、攻击及使用技能」, PRTS 异常效果 STUNNED 「无法攻击、释放技能、阻挡敌人类单位」: a stunned operator lets it go —
|
||||
the hypothesis that it should keep blocking is wrong. The attack cooldown is the unit's and runs on the walk, so a new
|
||||
blocker sees the swing at once and the strike 0.767 s later (official too). PRTS 状态机: an enemy's ATTACK state
|
||||
「每帧检查异常状态…攻击结束后回退到MOVE状态」 and COMBAT 「逻辑同ATTACK」 — only a character's COMBAT 「检测到不存在阻挡对象时强行
|
||||
切回IDLE状态」: an enemy finishes its attack when its blocker goes. The band: 「你和队友遭遇的部分敌人可能会替换为…」 — a bot
|
||||
teammate's 鸭爵 swaps into a human's battles, the Final Assault and the Hidden Core too, on the replaced enemy's route
|
||||
(`content/bands/meta.js duckReplace`; #214's 「上路」 is that route).
|
||||
- **Cause**: enemyAttack set the post-strike stand only for an unblocked ranged enemy (`!e.blockedBy && radius > 0`), so
|
||||
a melee enemy released by its own strike — or by its blocker's knock-out — walked on the same tick: the 「没有后摇」.
|
||||
- **Now**: every enemy stands for the rest of its attack clip after a strike (`attackStand(e).rest`; ATTACK_PAUSE with no
|
||||
clip known); a blocked enemy never walks, so the stand shows only when its block ends meanwhile — its blocker stunned
|
||||
or knocked out by that strike, or gone (retreat, substitution). A stun / freeze / sleep / 浮空, leaving the field and,
|
||||
new, a displacement (失衡: the UNBALANCE state replaces ATTACK) end it. 流泪小子 now stands 0.8 s after each strike —
|
||||
隐匿, since its restore is 0 s — and a stunned blocker often takes it over again before it leaves its radius. The same
|
||||
lane: 13 stuns, 29.1 s 隐匿 / 12.8 s revealed, leaked at 42.0 s; four blockers that hit back (550 ATK) now knock it out
|
||||
(it leaked with 2 % HP before); the real R6 wave on 战场#01 with one swapped 流泪小子 and 8 elite operators (8 seeds):
|
||||
leaked 8 / 8 before and after, 47 → 58 % HP left.
|
||||
- [ASSUMED]: the stand lasts the clip's rest, as the #58 stand (no source gives a length); a melee swing whose target
|
||||
goes before the strike is still cut (unchanged, §22.14).
|
||||
- PR #243 (declined): it removed the copy's 隐匿 — the data and PRTS keep it — and, on a stale base, reverted the
|
||||
high-ground rule (only elite 歌蕾蒂娅 with HOK-Y) and rewrote unrelated skills (宴 S2, 野鬃 S1, 锡人 / 吟游者 heals).
|
||||
- Golden: 216 scenarios — roster 41 of 49 (all but -003, -005, -009, -018, -019, -025, -035, -049), bonds 21
|
||||
(deputShip-low, emptyShip-low / -high, indomShip-low / -high, investShip-low, kazimierzShip-low / -high,
|
||||
kjeragShip-high, lateranoShip-high, miraShip-high, raidShip-low, sargonShip-high, siracusaShip-low, soloShip-low /
|
||||
-high, suntShip-low / -high, swiftShip-high, visiShip-low, yanShip-low), fields 13 (all but boss-boss_1-solo,
|
||||
boss-boss_2-pair / -solo, boss-boss_6-solo, boss-boss_7-pair / -solo, hidden-boss_8-solo, hidden-boss_10-solo,
|
||||
unite-1), matches 17 (all but solo-HARD-9-boosted), standins 10 of 10, diy 114 of 138 (all but -011, -012, -018,
|
||||
-020, -025, -027, -029, -031, -033, -047, -053, -077, -080 … -082, -086 … -088, -091 … -093, -098, -108, -123). Traced
|
||||
in lockstep against a copy of the parent: in each of the 199 battle scenarios the first differing tick is an enemy
|
||||
standing out its clip after a strike where the parent walked on; every moved match has such stands from an earlier or
|
||||
the same round. The displacement rule alone moves one roster scenario.
|
||||
- Tests: `test/sim/feedback5-attack-clip-rest.test.js` (5; the four behaviour tests fail on 0255afd, the data pin passes
|
||||
on both). Docs: docs/SIM.md (enemy attacks), DESIGN §5 (design/engine.md), docs/DATA.md (`attackAnim`).
|
||||
Reference in new issue
Block a user