Commit Graph
131 Commits
Author SHA1 Message Date
sganggs 7d3d7318d5 feedback3 WB: 琳琅诗怀雅 S1 heals an injured ally beside her without needing an attack or an enemy, at most once per attack cycle (owner's decision 2026-10-04, community report #5) 2026-10-04 18:18:18 +08:00
sganggs d1a2696e44 feedback3 WB: a 溶血骇惧 ends when its 扎罗 leaks or leaves the field (no more drain), 烹泉 / 沏虹's attack splash can be dodged (法术普通伤害), 集团军重型火炮's 燃烧区域 spares flying allies (不可对空) — fixes from the review 2026-10-04 18:14:12 +08:00
sganggs 3e9f81fcbf feedback3 WB: 圣聆初雪 S2 freezes the protection point (the blue gate) once it holds 5 snow layers, deploy attributes ignored, and no other tile; the frozen gate shows as an ice diamond instead of her own face (PRTS 备注, community report #32) 2026-10-04 17:38:07 +08:00
sganggs e53a181ae9 feedback3 WB: 碎骨's unblocked grenade deals 26 % ATK to its target and the 8 tiles around it, DEF −50 % for 5 s (PRTS 碎骨, community report #14); 扎罗, “复仇者”, “庞贝”, “巨大的丑东西”, “墓碑”, 烹泉 / 沏虹, 集团军重型火炮, 清明 / 堂皇 and 重弩突袭者 follow their PRTS numbers (splash attacks, radii, durations, 溶血骇惧's loss and 静默) 2026-10-04 17:38:07 +08:00
sganggs 130266553d feedback2 WK: a ranged enemy's attack stand holds only its walking — route WAIT legs keep running and DISAPPEAR / APPEAR legs still happen, hiding ends the stand; the [ASSUMED] form-clip note names 扎罗 and 特战术师; 暴鸰's hover comment (review of GitHub #58) 2026-10-04 03:23:23 +08:00
sganggs 42d9c3744b feedback2 WK: an operator forced off the field (史尔特尔's 余烬, 耀骑士临光 S2, 骑士戒律 + 竞技旗, 伊内丝 S3, a 商人 that cannot pay) lies down on its tile and redeploys there like a knocked-out one, still no kill (PRTS 卫戍协议/帮助; GitHub #60) 2026-10-04 02:55:48 +08:00
sganggs 0623336f30 feedback2 WK: an unblocked ranged enemy stands for each attack's clip (its wind-up and the rest of the clip), then walks on; build-data copies each enemy's attack clip into enemies.json attackAnim (GitHub #58) 2026-10-04 02:49:25 +08:00
sganggs 50c9b5b1b6 feedback2: merge WH — 荒芜拉普兰德 S3's drones attack (GitHub #32 item 7); 余 S2 pulls leaders, no pull effect when nobody moves, and casts with an enemy on its x-1 (owner's deliberate deviation; GitHub #32 item 1)
# Conflicts:
#	data/chess.json
#	docs/PLAYING.md
2026-10-04 02:21:47 +08:00
sganggs a168c99e6a feedback2: merge WJ — enemy splash, blasts, area skills, zones and auras skip a 隐匿 operator that does not block them; 迷彩 is still hit by splash (GitHub #32 item 6)
# Conflicts:
#	docs/DESIGN.md
#	docs/SIM.md
#	server/sim/content/enemies.js
2026-10-04 02:21:15 +08:00
sganggs 79bbd51525 feedback2: WG review — a chain healer's bounces skip 禁疗 / noHeal units (史尔特尔 in 余烬); PLAYING and DESIGN say 隐匿 returns 3 s after a block; 山海众头目's mark comment 2026-10-04 02:19:40 +08:00
sganggs e0b51e0310 feedback2: merge WG — 史尔特尔's 余烬 brings 禁疗 (GitHub #52); enemies re-enter 隐匿 3 s after a block ends, a blocked 深池逐火's ember stays visible ~2 s (GitHub #43)
# Conflicts:
#	public/js/render/style.js
#	public/js/render/textures.js
2026-10-04 02:18:01 +08:00
sganggs 5f83d30cd1 feedback2: merge GitHub master (PR #48: 要塞 cannot hit air units — issue #35; 莫斯提马's slow shows its status icon — issue #16)
# Conflicts:
#	data/chess.json
2026-10-04 02:17:02 +08:00
Y-PaP-Y 052e906753 要塞分支不再攻击空中单位;莫斯提马的减速显示状态图标 (#48)
要塞分支(灰毫 chess_char_2_18、号角 chess_char_5_08,普通与精锐)按官方不能攻击空中单位:build-data 不再把 fortress 归为可对空,重新生成 data/chess.json(只改这 4 条记录的 canHitFly),DESIGN §21.29 的技能释放调整保持不变。莫斯提马天赋的减速补上可见的减速状态图标(减速本身 0.1.1 已生效)。fix #35
2026-10-04 02:16:20 +08:00
sganggs 275e1c5711 feedback2 WJ: areaAllies' comment — 迷彩 is not checked, a locked target goes through targetAndArea 2026-10-04 00:42:46 +08:00
sganggs b0c98fea31 feedback2 WJ: docs — buff auras and 蚀裂's 毒雾 vs 隐匿, locked targets as direct picks, 迷彩 only where PRTS backs it (the rest [ASSUMED]), 异常效果 §无法选择 instead of the 选择器 draft text; PLAYING: all-in-range normal attacks skip 迷彩 2026-10-04 00:41:51 +08:00
sganggs 7362ab5439 feedback2 WH: 余 S2 厚礼上宾 casts with an enemy on its x-1 instead of when hit (the owner's deliberate deviation from the 重装 TAKE_DAMAGE row: TRIGGER_DEVIATIONS SKILL_RANGE, data regenerated, only the two 余 records change) 2026-10-04 00:39:54 +08:00
sganggs 852c9d5bcf feedback2 WJ: 蚀裂's 毒雾 and the buff auras of 深池伙友卫队 / 扎罗 keep a 隐匿 operator out (auraSelectable: 起飞 still reached); a locked target (死亡之眼's burst, C4, 爆炸箭, 碎骨's DEF down, 灼藤's burn) is hit as a direct pick 2026-10-04 00:36:32 +08:00
sganggs a4cf492160 feedback2 WH: 荒芜拉普兰德 S3's drones pick the nearest enemy by its position (a huge leader's centre), the owner's decision so leader rounds stay close to 0.1.1 2026-10-04 00:33:33 +08:00
sganggs cfe85c6fee feedback2 WI: a running 坚固维式重锤 不死 window stops a dollkeeper's switch to its 替身 (fatal priority −99, the lock stays at −100); the switch flag is trait.dollSwitching; the 替身's own max HP is stated as sourced (review of #44) 2026-10-04 00:26:13 +08:00
sganggs f88b2368f6 feedback2 WH: rewrap the 荒芜拉普兰德 header note in tier6.js 2026-10-04 00:20:28 +08:00
sganggs 15c1ca9c0d feedback2 WH: 荒芜拉普兰德 S3 review fixes - a wolf knocked out mid-tick deals nothing more in that tick, the drones' reappearance square turns with her direction, and the drone rules no source states are tagged [ASSUMED] (a huge enemy's distance stays its hit rectangle, like the sim's other nearest-enemy picks) 2026-10-04 00:18:36 +08:00
sganggs 0ac7dc7dd2 feedback2: merge WI — 归溟幽灵鲨's 替身 is drawn (form + status icon), makes no attack and casts nothing, S2's end switches her (GitHub #44) 2026-10-04 00:13:31 +08:00
sganggs 6b634fe132 feedback2: merge WD — 活性源石 stays on an enemy for 300 s after the tile (cleared by a 重生); 沼泽 triggers every second (2 layers at 重量 ≥ 3); 深水区 is sourceless true 持续伤害, not 环境伤害 (GitHub #33 item 6) 2026-10-04 00:09:22 +08:00
sganggs a4d69b6ba3 feedback2 WD: 深水区's tick is 无来源 true 持续伤害, not 环境伤害 (tags dot / periodic / deepsea): 纠缠藤蔓 no longer turns fragile in water, 锡人's 凋敝魂灵 raises it 2026-10-04 00:07:34 +08:00
sganggs 3502027ff2 feedback2 WD: 沼泽 triggers every second, 2 layers for an enemy of 重量 ≥ 3, operators get the ASPD part only (the skill's value 3 is that weight, not a 3 s interval) 2026-10-04 00:07:25 +08:00
sganggs 0907c3b7a4 feedback2 WD: a 重生 clears the lasting 活性源石 effect (an ember that crossed the tile no longer dies from its ticks); a relocated operator keeps it, an operator drains past 300 s only by the [ASSUMED] refresh rule 2026-10-04 00:07:15 +08:00
sganggs f3cb6f414e feedback2: merge WC — 阿戈尔's devour cancels a knocked-out target's pending marks (revived members stay standing); 乌尔比安 S3 stays on his tile while he blocks (GitHub #33 items 1-2) 2026-10-03 23:45:19 +08:00
sganggs ee70c608dc feedback2 WC: 乌尔比安 S3 takes his own tile only while he blocks; otherwise the anchor search starts one tile ahead as in 0.1.1 (review of GitHub #33 item 2) 2026-10-03 23:44:36 +08:00
sganggs 93b0592bff feedback2 WC: the devour keeps 0.1.0's marker rule (a marker back in the same pass still gives its marks) and cancels a target's marks after a 不屈 redeploy too (review of GitHub #33 item 1) 2026-10-03 23:44:36 +08:00
sganggs e66a1a8ddb feedback2 WG: tests for 余烬's 禁疗 and the 3 s 隐匿 window (embers included); flag list, DESIGN §5 / §21.4 and SIM.md follow 2026-10-03 23:43:28 +08:00
sganggs b32c510069 feedback2 WG: an enemy's 隐匿 returns 3 s after a block ends (0 s / 1 s where its PRTS page says so); a 深池逐火 knocked out while blocked leaves a revealed ember; 山海众头目's strong hit comes with its 隐匿 (#43 follow-up) 2026-10-03 23:43:28 +08:00
sganggs 1aed315579 feedback2 WG: 史尔特尔's 余烬 gives her a visible 禁疗 until she leaves — medics heal others, her own heals stop, HP regen and S3's start heal (无视禁疗) still reach her (GitHub #52) 2026-10-03 23:43:28 +08:00
sganggs 46eb97751b feedback2 WJ: Battle.alliesInRadius says it has no selection rule (enemy areas filter with areaSelectable) 2026-10-03 23:36:55 +08:00
sganggs ef636f941c feedback2 WH: 荒芜拉普兰德 S3's drones attack the enemy they reach like normal drones (PRTS flight: spread 1.3 s, chase 2.0 to 4.0, own funnel ramp, neither attack nor skill damage); 余 S2 teleports leaders that are not 自缚 and shows its pull effect only when it pulls (GitHub #32 items 7 and 1) 2026-10-03 23:31:44 +08:00
sganggs 64f715fb20 feedback2 WI: 归溟幽灵鲨's 替身 makes no normal attack and casts no skill, her S2 end switches her to it directly; dollkeepers switch with a 1 s animation, hold 阻回 and keep their own max HP (issue #44) 2026-10-03 23:27:49 +08:00
sganggs 6f4278a357 feedback2 WJ: enemy splash, blasts and area skills no longer hit a 隐匿 operator that does not block the enemy (one area selector, targeting.js areaSelectable; 迷彩 is still hit) 2026-10-03 23:23:10 +08:00
sganggs bcaff967cf feedback2 WD: devices.js notes that a 重生 keeps the 活性源石 effect (source-less buffs survive rebirthCleanse) 2026-10-03 23:11:35 +08:00
sganggs 76e60a186b feedback2 WB: 突袭 jumps only to a tile from which its target is in range, on the idle trigger too (GitHub issue #51)
Up to 0.1.1 only the 技能就绪 trigger required a landing tile that covers the target; the 10 s idle trigger took
raidTile's fallback (a tile that covers nothing), so a member with nothing reachable hopped every 10 s between useless
tiles and never went for a second ground enemy it could have hit. Now both triggers walk the candidates in the existing
order (own field first, most advanced first, at most 8) and jump to the first one with a covering tile; none -> the
member stays, its idle time keeps counting and the 0.25 s poll looks again. [ASSUMED]: the official text only says
"再部署至一名地面敌人周围".

raidTile now enumerates only the tiles a range offset leads back to from the enemy's body (same choice as the old
25-tile scan whenever a covering tile existed: 200 000 random cases), and a player's members share one sorted candidate
list per poll (rebuilt after a jump), so a search that finds nothing stays cheap: +5.8 us per tick on the heavy boss
field with 18 members that never reach anything, against +5.5 us for 0.1.1 (the plain requirement on the old scan:
+29.6 us). Tests: two "突袭 #51" cases in test/content/bonds_addon.test.js.
2026-10-03 23:04:12 +08:00
sganggs 1579a8807f feedback2 WD: 活性源石 stays on a unit for its 300 s after it leaves the tile, one effect per unit, the tiles never switch off (GitHub #33 item 6) 2026-10-03 22:59:38 +08:00
sganggs 7383419009 feedback2 WC: 乌尔比安 S3 throws the anchor onto his own tile while he blocks, so he stays put and leaves no marker (PRTS note; GitHub #33 item 2) 2026-10-03 22:58:11 +08:00
sganggs 215d52efe3 feedback2 WC: 阿戈尔's devour cancels the pending marks of a unit it knocked out, also when that unit is revived at once, so the revived members stay standing (GitHub #33 item 1) 2026-10-03 22:58:11 +08:00
sganggs 2dba6da598 feedback1 final: six 重装 skills cast with an enemy in range, a deliberate deviation from the official TAKE_DAMAGE row (GitHub issue #4, PR #12)
The owner's decision (2026-10-03, after community feedback): 深巡 S2 行动能力剥夺, 雷蛇 S2 反击电弧, 号角 S2 暴风号令
and S3 终极防线, 灰毫 S1 攻击力强化·γ型 and S2 专注轰击 take the basic strategy (DEFAULT) instead of the 下半 TANK class
row's TAKE_DAMAGE. Every other MANUAL 重装 skill, 深巡 S1 included, still waits for a hit.

- tools/build-data.mjs TRIGGER_DEVIATIONS: a small table keyed by the normal chess id and the skill id (the elite
  follows through baseId), never by the skill id alone - 灰毫 S1 is the generic skcom_atk_up[3]. resolveTrigger applies
  it last; rawRule keeps the official TAKE_DAMAGE; validateAll fails the build when an entry no longer meets a
  TAKE_DAMAGE row. data/chess.json rebuilt with --offline: exactly the 12 records' rule changes.
- PR #12's kit lines (trigger 'DEFAULT' on 深巡 / 雷蛇 S2) stay and agree with the data; their comments and tests now
  give this reason instead of the community summary.
- Tests: test/sim/feedback1-tank-triggers.test.js (the data, kit = data, a real battle on 战场#01(下半) in which each of
  the six casts with an enemy in range before any hit and each of the other 46 MANUAL 重装 records casts on the first
  hit); data.test.js trigger expectations; the 灰毫 / 号角 kit tests follow; docs-consistency.
- Docs: DESIGN §21.29 (new), §5.6, §19.2, §20.2, §21.20 (settled row), §21.23; DATA, SIM, PLAYING, CHANGELOG 0.1.1;
  research 03 §1.4 drops the arknights.wiki.gg "offensive / defensive" summary and records the activity_table history
  (上半 had no TANK row, 下半 added it) and this deviation; research 00-INDEX.
2026-10-03 19:13:35 +08:00
sganggs e6ab4e1ff8 feedback1 final: merge GitHub master (PR #10 crossOrigin on the two new Image() loads, PR #12 深巡 / 雷蛇 S2 cast with an enemy in range) 2026-10-03 18:54:16 +08:00
sganggs 77eaeaa15f feedback1 final: merge the 突变细胞 bench rule (carrier destroyed, tile freed, the new operator gained into the 整备区; pointed out in PR #2)
Conflicts resolved keeping both sides:
- effectsMeta.js header: the QA residual's "every [holder, item] pair, taken before the first item runs" and "an item
  moved during it runs at most once", with the cell branch's wording of what 突变细胞 does mid-walk.
- DESIGN §6.6: the band pick that skips a strategy tied to a switched-off bond and the deployment of the operator a
  transformation gains / the bench shed that spares it.
- DESIGN §21.25: PR #2's bench rule credited (the cell branch) plus the QA residual's snapshot-timing sentence.
- PLAYING: the new 突变细胞 sentence with the residual's hammer sentence (revives, borrowed hammers, the lend window).
- docs-consistency: both new tests (batch 6 QA residuals; 突变细胞 after the WA merge).
2026-10-03 18:48:30 +08:00
sganggs 151c6d0874 feedback1 integrate: holdsUndying checks the cheap fields first (every fatal of the battle passes it) 2026-10-03 17:48:35 +08:00
sganggs 791640e717 feedback1 integrate: 卢西恩 and 锏 cast their area skills only with someone they can hurt (QA)
卢西恩's 【aoe】 and 锏's CircleAttack counted every ally in their radius, so an airborne 蒂比 alone in range set them off
and the blast skipped her. They count only allies a ground enemy does not evade (evadesGround).
2026-10-03 17:47:19 +08:00
sganggs 43ef50ece7 feedback1 integrate: rule 3 counts the home of a summon that is gone; timed redeploys check the DP first (QA)
A summon leaves its home free only once it has expired or been killed, and _layBody skipped removed pieces, so a body
on the home of 浊心斯卡蒂's expired 海嗣 stayed there and kept the 海嗣 from coming back. Every board piece's home counts
now. _checkRedeploys tests the DP before the tile scans, so an operator waiting for DP no longer scans every ally.
2026-10-03 17:47:19 +08:00
sganggs d6b1d1bd26 feedback1 integrate: 坚固维式重锤's lock belongs to the deployment - a lent hammer and in-place revives follow it (QA)
The lock and its re-arm hook lived in the carrier's hammer grants, so a hammer lent by 萨尔贡 × 娜仁图亚 came back spent
in the borrower's next deployment once the lend had run out while it was down, and a window started through the lend
ended with it. deploymentOf marks the deployment whose lock is spent; one battle-level hook holds every running window
(holdsUndying, also what 信仰搅拌机 S2 steps aside for), so a window outlasts the lend. M3茧甲 and 埃芒加德 revive in place
for PRTS's 0-time / 0-cost redeploy and now open a new deployment (revivedInPlace), like 阿戈尔 5's real redeploy.
2026-10-03 17:47:07 +08:00
sganggs 91c9b21d7f feedback1 cell: a 突变细胞 transformation gains the new operator into the 整备区 and frees the carrier's tile (pointed out in PR #2)
Official gameplay footage (bilibili BV1vzyVBuEN9 at about 8:24, BV1Qkw1zMEoR at about 7:25) shows the
next prep with the carrier's tile empty, one more deployment left, and the returned equipment plus the
new tier+1 operator on the bench, deployed by hand afterwards. That is the PRTS 备注 read as written
("生效时,原干员销毁,获得一名高一阶的随机初始干员"): a destroy followed by a gain. The closed PR #2 made
the same claim from a playtest.

- PlayerState.transformChess: the carrier is destroyed wherever it stands (board tile freed, summons
  removed, copies back to the pool); its equipment, the cell included, returns to the hand first
  (overflow temp, auto-merge); then the new operator is gained through acquireChess like any gained
  operator (hand, overflow temp, the no-room rule of every gain; no summon card until it is deployed).
  The returnItems option is gone (the cell's built-in was its only caller).
- A merge the gain completes merges like any gained copy: the elite takes a consumed deployed copy's
  tile, else the hand. _mergeChess loses fromKey / fromDir, so the destroyed carrier's tile never
  counts (PR #2 had kept that path; not adopted); audit.js drops its exception for it.
- builtinMeta, ctx.transform, items/meta.js and bot.js comments follow. Bots and AI 托管 deploy the
  gained operator in their normal lineup step (no bot change needed; a real co-op round pins it).
- ITEM_RULES note and implFormula for the item card; data/items.json rebuilt with build-data --offline.
- Tests: facing, merge, playtest6-elite-to-board and items no longer pin the kept tile; feedback1-meta
  covers a deployed and a bench carrier, hand full -> temp, hand and temp full, a merge with and
  without a deployed copy (never the carrier's tile), 商业包装方案's count on the returned item, and bots /
  AI 托管 redeploying; feedback1-cell checks the new note.
2026-10-03 15:18:42 +08:00
sganggs 842e1e13c4 feedback1 integrate: grid.js comments no longer say a fenced tile blocks (WU note) 2026-10-03 14:12:31 +08:00