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)

This commit is contained in:
sganggs committed 2026-10-03 22:59:38 +08:00
1 parent 2a03467897
commit 1579a8807f
4 files changed
+108 -13

No files matched your search

+8 -2
View File
@@ -1477,9 +1477,15 @@ TBD-22.2
TBD-22.3
### 22.4 活性源石 stays on an enemy after it leaves the tile (#33 item 6)
### 22.4 活性源石 stays on an enemy after it leaves the tile (#33 item 6) — `server/sim/content/devices.js` (`touchInfection`, `enterTerrain`, `terrainFor`)
TBD-22.4
- **Seen** (public issue #33, other part 3: 「红地板图敌方单位经过后,红地板附带的效果会消失」): on 战场#04 an enemy lost the red floor's effect the moment it walked off it. Measured on v0.1.1 (the real stage): an enemy on (10,6) from 15.67 s to 19.67 s lost 4 × 70 HP; 12 s later it still had 99720 / 100000 HP and no ATK / ASPD bonus.
- **Official**: the red floor is 活性源石 `tile_infection`, the only one in the season's data — 战场#04 (`act1autochess_m04`) at (10,6), (11,6), (10,14), (11,14) and on the boss rows at (3,6), (4,6), (3,14), (4,14); level blackboard `damage` 70, `atk` 0.2, `attack_speed` 20, `duration` 300. PRTS 特殊地形 tile template (`特殊地形/trapper/tilesformat.json`): "部署于其上的我军和经过的敌军在{duration}s内每秒受到{damage}真实伤害,攻击力提升{atk×100}%,攻击速度增加{attack_speed}" (main-story stage pages: "在五分钟内"). The crisis-contract tag `global_tile_infection_1` 「目标:可控感染」 (PRTS 切尔诺伯格 6区废墟/历史合约): "踏过活性源石地块的敌人不再持续损失生命值" — without it an enemy that has walked over the tile goes on losing HP. Same-name effects do not stack (PRTS 作战机制: "同名buff的默认叠加策略buff只能表现出一个"). Its damage is 环境伤害 (PRTS 自然环境 lists 活性源石).
- **Cause**: `devices.js` read `duration` as a lifetime of the tiles (`terrainFor` switched them off after 300 s of battle time) and tied the effect to standing on the tile (`enterTerrain` removed it as soon as the unit's tile changed).
- **Now**: every tick a unit is on the tile (allies by their tile, ground enemies by their rounded position; flyers, hovering / levitated and hidden units never touch it, as before), `touchInfection` gives it the timed effect `terrain:infection` for `duration` s — 70 true damage per second, ATK +20 %, ASPD +20 — or, when it already carries it, gives it back its full time. Leaving the tile no longer removes it: an enemy that crossed it drains 70/s with ATK +20 % / ASPD +20 for 300 s from its last contact — longer than any own-field or 联防 battle lasts (≤ 230 s of battle time). All 12 ground legs of 战场#04 (own field, 联防 field, boss field) cross one of these tiles, so every ground enemy there carries it once past the tile. One effect per unit: a second pass or the next tile of a pair restarts its time and never adds a second effect (ATK +20 % once, 70/s, no extra tick). The tiles never switch off — the old lifetime only ever ran out on the boss field (no time limit), at 300 s. An operator deployed on it is always in contact and keeps draining until it is knocked out or withdrawn (official; v0.1.1 did the same within the first 300 s); leaving the field (knock-out, withdrawal, 突袭's jump) drops the effect with every other buff. The damage itself is unchanged: true damage no unit deals (无来源), tagged `terrain` (环境伤害), a damage instance, not a 流失.
- [ASSUMED]: the time counts from the last contact (it is refreshed every tick on the tile) and the per-second rhythm runs on through a refresh; not 持续伤害 (no `dot` tag: PRTS 伤害分类's list of BUFF damage names 深水区, 源石污染区 and 活性源石风暴 but not 活性源石, so 锡人's 凋敝魂灵 does not raise it); a 重生 keeps it (the 重生 whitelist keeps source-less buffs, SIM.md "Knock-outs that are not deaths").
- **Checked**: no other terrain reads a `duration` — 沼泽 (stacks, cleared on leaving), 深水区 (`sea_drown[enemy]` has none), 烟雾 and the blowers. Nothing relied on the old lifetime: the client draws the tile glow from the stage map (it never went out), terrain effects have no status icon, the enemy abilities that care about the tile (萨卡兹枯朽前锋's arts attacks, “灵幛”, 孽罪奇美拉) read the tile they stand on (`onTerrain`), and 联防 carries no effects (HP, SP and a running skill only).
- Tests: `test/content/tokens_devices.test.js` — 活性源石 (the operator and the enemy standing on it), an enemy keeps the effect after leaving the tile (20 s later: 70/s, ATK, ASPD, the time left), one effect per unit (two passes give one effect that ends `duration` s after the last contact, 70/s while it lasted; an operator drains past `duration`).
### 22.5 Emotes and guide pages without a local client; deployment docs (#42); the English title (#38)