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.
This commit is contained in:
1 parent
e6ab4e1ff8
commit
2dba6da598
20 files changed
+325
-58
No files matched your search
@@ -84,7 +84,7 @@ The visible chess per tier are 16/17/19/22/19/19. The item slot uses the same ti
|
||||
| Equipment | 2 per operator (board **or** hand). Locked; 3rd = replace, and the old one is destroyed. 2 identical normal items (equipped or not) merge into golden. | VERIFIED |
|
||||
| Deployment | Free, at t=0, order **top→bottom then left→right** (right-side boss player mirrored). Ranged units may use melee tiles. | VERIFIED |
|
||||
| DP | Start **10**, **+1/s**, cap **99**. Used only for auto-redeploy (original tile, respawn timer done, DP ≥ `cost`). | DATA/VERIFIED |
|
||||
| Skill auto-cast | Default: SP ready + about to attack/heal + an enemy in the **initial** range. ~~`skillTriggerDataList` rows with `skillIndex` 0 = skill 1 only (TANK S1 → on damage: only 古米 and 灰毫 this season)~~ — Superseded by user playtest #6 (DESIGN §20): the class rows apply to **every MANUAL skill** of the class and never to an AUTO skill (PRTS 卫戍协议/帮助 names whole classes; the 阵法术师 row must cover 薄绿's default S2, a phalanx that never attacks with its skill off); a MANUAL skill with its own 技能范围 (not an attack-range change) uses SKILL_RANGE; automatic operations have a 3 s cooldown. charId rows per 03. | VERIFIED (class-row reading superseded) |
|
||||
| Skill auto-cast | Default: SP ready + about to attack/heal + an enemy in the **initial** range. ~~`skillTriggerDataList` rows with `skillIndex` 0 = skill 1 only (TANK S1 → on damage: only 古米 and 灰毫 this season)~~ — Superseded by user playtest #6 (DESIGN §20): the class rows apply to **every MANUAL skill** of the class and never to an AUTO skill (PRTS 卫戍协议/帮助 names whole classes; the 阵法术师 row must cover 薄绿's default S2, a phalanx that never attacks with its skill off); a MANUAL skill with its own 技能范围 (not an attack-range change) uses SKILL_RANGE; automatic operations have a 3 s cooldown. charId rows per 03. The TANK row came with 下半 (上半 had none); 深巡 S2, 雷蛇 S2, 号角 S2 / S3 and 灰毫 S1 / S2 deliberately cast with an enemy in range instead (the owner's decision, DESIGN §21.29). | VERIFIED (class-row reading superseded; six 重装 skills deviate on purpose) |
|
||||
| Speed | 2× forced, no manual control | VERIFIED |
|
||||
| Board geometry | 19×21 stage. Player board rows 9–12, cols 2–10. Gates (9,10) and (12,10); R1–3 use only the lower one. Goal (9,2). Col 9 is a non-deployable lane. Hand row 7 cols 0–9. Temp hand row 8 cols 4–8. Boss field rows 1–5. | DATA |
|
||||
| Bond counting | Distinct operators on board. 远见/奇迹/投资人 also count the hand. 绝技 counts elites. Layers persist all match; **no IN_BATTLE layer gains in 联防 or boss rounds**; each bond's layers stop at **999** (research 11). | DATA/VERIFIED |
|
||||
|
||||
@@ -71,18 +71,17 @@ All skills fire automatically in this mode. Normal behaviour: AUTO skills fire b
|
||||
| NONE | | char_1051_headb2 | 2 | CUSTOM_RANGE_SEARCH_ENEMY |
|
||||
| NONE | | char_2025_shu | 2 | TRY_SEARCH_ALLY_SKILL |
|
||||
|
||||
Meaning (names are from the data; semantics partly inferred):
|
||||
Community rule text (arknights.wiki.gg/wiki/Stronghold_Protocol, matches the in-game help): "Offensive skills activate when an enemy is in their Skill Range. Defensive skills activate when that unit is receiving damage. Healing skills activate when a friendly unit within range is damaged while skill is charged." Mapping to data:
|
||||
Meaning (names are from the data; semantics partly inferred — the official wording, PRTS 卫戍协议/帮助 §作战阶段 技能操作, is quoted in DESIGN §20.2):
|
||||
|
||||
- `DEFAULT` (no matching row; 97 of 129 pool chess): offensive -> SP full AND >=1 enemy inside the skill range (skill `rangeId` if the skill overrides range, else the operator's attack range). Healing skills (MEDIC, heal-type skills) -> SP full AND an injured ally inside range. Buff/other skills [ASSUMED] -> same as offensive (enemy in range).
|
||||
- `TAKE_DAMAGE` (profession TANK, 15 chess): SP full AND the unit is currently receiving damage. The row has skillIndex 0 but pool tanks use S1 x2, S2 x10, S3 x4; the wiki rule ("defensive skills") implies it is a **wildcard for any skill index** in profession/subprofession rows — use that interpretation.
|
||||
- `DEFAULT` (no matching row; 97 of 129 pool chess): the basic strategy "技能就绪,且即将进行普通攻击/治疗" — SP full AND about to attack (heal skills: to heal) AND an enemy (an injured ally) inside the initial range; a MANUAL skill with a 技能范围 of its own (not an attack-range change) uses `SKILL_RANGE` instead (DESIGN §20.2).
|
||||
- `TAKE_DAMAGE` (profession TANK, 15 chess): SP full AND the unit takes damage — PRTS 重装 "不受技能范围影响,受到伤害时释放技能". The row has skillIndex 0 but pool tanks use S1 x2, S2 x10, S3 x4; as a class row it covers every MANUAL skill of the class (DESIGN §20.2; C1 below keeps the "skill 1 only" counter-reading). **History of the row** (activity_table `autoChessData.skillTriggerDataList`): 上半 (act1autochess, 2025-11) shipped no TANK row — 重装 skills had no strategy of their own; 下半 (act2autochess, 2026-03-14) added `TANK | | | 0 | TAKE_DAMAGE` for every skill index, with PRTS's 重装 line (下半, 2026/3/14). **Deliberate deviation** (the owner, 2026-10-03, after community feedback — GitHub issue #4, PR #12; DESIGN §21.29): 深巡 S2, 雷蛇 S2, 号角 S2 / S3 and 灰毫 S1 / S2 cast with an enemy in range (`DEFAULT`; `tools/build-data.mjs TRIGGER_DEVIATIONS`, keyed per chess — 灰毫 S1 is the generic `skcom_atk_up[3]` — with `rawRule` keeping the official TAKE_DAMAGE); every other MANUAL 重装 skill, 深巡 S1 included, keeps TAKE_DAMAGE.
|
||||
- `ALWAYS` (5 chess; subprof bearer 旗手 / tactician 战术家 / bard 吟游者, plus 维什戴尔 S3 not in pool): cast as soon as SP is full, no target needed. Pool: 伺夜 S3, 缪尔赛思 S3 (tactician), 魔王 S3 (T4 & hidden T5), 浊心斯卡蒂 S3 (bard).
|
||||
- `SEARCH` (4 chess; subprof librator 解放者 / phalanx 阵法术师, 安洁莉娜 S2/S3): [ASSUMED] cast when SP full and any enemy is on the field (search whole map) — phalanx/librator skills change their own attack mode and should not wait for an enemy in their (small/none) normal range. Pool: 薄绿 S2, 蜜蜡 S2 (hidden), 卡涅利安 S2 (phalanx); 安洁莉娜 S3. 玛恩纳 S3 and 圣聆初雪 S3 are overridden by their charId rows (CUSTOM_RANGE).
|
||||
- `CUSTOM_RANGE_SEARCH_ENEMY` (6 chess): SP full AND an enemy inside the `skillRangeDict` range (listed below). Pool: 乌尔比安 S3 (6-1), 维娜·维多利亚 S3 (x-4), 余 S3 (3-15), 远牙 S3 (6-1), 玛恩纳 S3 (3-18), 圣聆初雪 S3 (x-2). Not in pool: 塑心 demetr, 司霆惊蛰 leizi2, 林 lin, 猎蜂? headb2.
|
||||
- `GDGLOW_SKILL_2` (2 chess: 荒芜拉普兰德 whitw2 S3, 纯烬艾雅法拉 agoat2 S3; 澄闪 gdglow not in pool): named after 澄闪 S3 whose skill places/targets a zone; [ASSUMED] cast when SP full and an enemy is inside the attack range, choosing the target tile/enemy with the most enemies around it.
|
||||
- `MLYSS_WTRMAN` (缪尔赛思, skillIndex -1): AI rule for her summon 流形 (token_10030_mlyss_wtrman) placement/behaviour [ASSUMED: token copies/follows the nearest allied operator as in the base game]; her S3 itself uses the tactician ALWAYS rule.
|
||||
- `MARCILS2` (玛露西尔 S2) and `TRY_SEARCH_ALLY_SKILL` (黍 S3) are for operators not in this season's pool.
|
||||
- Redeployment (same wiki page): a knocked-out operator auto-redeploys on its original tile when its `respawnTime` has elapsed AND there is enough DP for its `cost` (or instantly via effects). So **cost and respawnTime matter** in battle; see the battle-rules research for the DP economy.
|
||||
- Redeployment (PRTS 卫戍协议/帮助 §作战阶段 单位部署, quoted in research 01 §4.3): a knocked-out operator auto-redeploys on the tile it lies on when its `respawnTime` has elapsed AND there is enough DP for its `cost` (or instantly via effects). So **cost and respawnTime matter** in battle; see the battle-rules research for the DP economy.
|
||||
|
||||
skillRangeDict (custom trigger ranges; `O` = operator tile, `#` = trigger tile, facing right):
|
||||
|
||||
|
||||
Reference in new issue
Block a user