fix: 再部署重置浮游倍率;roster-026、solo-HARD-1、solo-ABYSS-1 不再沿用旧缓存
This commit is contained in:
1 parent
bc50cac01f
commit
7434e9eaf0
8 files changed
+210
-11
No files matched your search
+1
-1
@@ -1341,7 +1341,7 @@ header of professions.js).
|
||||
| loopshooter | 回环射手 (user playtest #3): every attack throws a boomerang (`ai.js throwBoomerang`, projectile `'boomerang'`) out to the target at 15 tiles/s — it hits on arrival — and back to the thrower's current position at 3.75 tiles/s without damage (PRTS 跃跃 "投射物飞行速度15,返回时飞行速度3.75"); attacks only while holding it (every boomerang thrown caught — "必须回收全部回旋投掷物才可以进行下一次攻击", `unit.trait.boomerangsOut`) and with the attack cooldown ready, so the real interval is the longer of the two; a target dead mid-flight is not hit (it still flies to the last position and back); knocked out / withdrawn ⇒ lost, a redeployed thrower holds a fresh one; 跃跃 S2's extra boomerangs share the one flight (cnt hits); each catch fires `boomerangCaught`, and an attack profile's `boomerangOnward(ctx)` flies it on after the first hit before it turns back — ctx `hit` (a hit of the same attack), `comeBack(x, y)` once (a content error sends it back from the hit point): 娜仁图亚 S1 bounces, S2 dashes on and hits on its way back (kits/ops/op-narant.js) |
|
||||
| reaperrange | hits every enemy in range; ×1.5 (bb atk_scale) on the trait front grid (or its own line ahead) — both along its direction |
|
||||
| chain | chain N (trait text/bb max_target) with −15 % per jump (bb chain.atk_scale), 1.7-tile jumps (constants.js CHAIN_RADIUS, PRTS 溅射半径一览: 链术师 1.7; 1.8 until 0.1.1), sluggish on each hit |
|
||||
| funnel | drone damage 20 % → +15 %/hit on the same target → 110 % (bb init/delta/max) |
|
||||
| funnel | drone damage 20 % → +15 %/hit on the same target → 110 % (bb init/delta/max); a normal deployment resets target/scale and any per-target ramp map to init, including revival against the same living target; free `moveRedeploy` keeps the ramp (§22.3) |
|
||||
| mystic | 秘术师 (PRTS 分支特性信息 秘术师, GitHub #181): at its attack check (the attack ready, able to act, not disarmed) with no valid target — no target, or its kit's `canAttack` false (深靛 never picks a bound enemy) — it stores one energy (`storeEnergy`, up to bb times: 3, 深靛's MSC-X 4), an attack action: the attack interval restarts; a full store idles with the attack ready. The energies leave with its next attack that happens (`releaseEnergy` in `performAttack`, after `beforeAttack`: an attack cancelled before its shot keeps them) and land with the main hit, one arts attack hit each (`hitsFn` reads the hit's `info.energy`); a redeployment holds none [ASSUMED]. 维伊 / 黑键 plug their own `storeEnergy` (转置能量, elite energies) into the same check |
|
||||
| phalanx | no attack & DEF +200 %, RES +20 (bb) while the skill is off; while on, `rangeAoe`: each attack strikes every selectable enemy on its range at once (blocked enemies included; a stealthed one only when revealed or blocked), the same damage near and far, instant (`'beam'`) — "群体法术伤害" (secondary: Terra Wiki, Phalanx Caster: "attacks hit all enemies within their range"; supporting: PRTS 林 S3 备注 "单次普攻最多触发1次效果" — one normal attack can kill several — the same 锁定攻击范围 shape as the 轰击术师, and PRTS 溅射半径一览 documents no splash radius for it (it omits the 撼地者 too, so this is not proof); no primary source states a target cap; community report E3: it used to be one bolt + a 1.1 splash). 卡涅利安's charged S1 keeps the skill-off trait, 不攻击 included (kit `canAttack`, PRTS 备注) |
|
||||
| physician | heal the lowest HP% injured ally in range (a skill `targeting.maxTargets` widens any heal profile) |
|
||||
|
||||
@@ -167,6 +167,12 @@ Profession traits (default behaviours implemented once in the engine, keyed by `
|
||||
|
||||
---
|
||||
|
||||
Funnel drone ramps return to the configured initial scale on a normal deployment, including automatic revival
|
||||
against the same living target ([PRTS branch traits, 驭械术师](https://prts.wiki/w/分支特性信息/data#驭械术师)).
|
||||
The profession resets its target/scale and any per-target ramp map, leaving other trait state alone. A free
|
||||
`moveRedeploy` keeps the ramp under the existing move carry decision (§22.3); uninterrupted attacks still ramp and
|
||||
cap normally, and changing targets still starts at the initial scale.
|
||||
|
||||
## 7. Content modules (server/sim/content + match/effectsMeta handlers)
|
||||
|
||||
Each domain file `server/sim/content/{tokens,bonds,garrisons,items,bands,enemies,bosses,devices,choices}.js` exports `install(battle)` (battle side; called once per Battle by `content/index.js → installContent`) and `registerMeta(registry)` (prep side; called once at server boot by `match/effectsMeta.js`, API documented in `docs/META.md`). Kits live one per file in `content/kits/ops/` (`export default { [baseChessId]: (bb, chess, def) => Kit }`), listed in `content/kits/index.js` (guide: `content/kits/README.md`). Content must be **data-driven from blackboards** (numbers never hard-coded when a blackboard key exists). Every effect gets at least one unit test in `test/content/*.test.js` using the `test/helpers/battleHarness.js` harness (provided by sim-core).
|
||||
|
||||
@@ -274,3 +274,24 @@ enemy: picking emitted a unit click with no definition, instead of the tile clic
|
||||
engine-canvas regression retains the card/100 HP assertions and also covers another field refresh, live HP loss and
|
||||
closing the card when the crate is destroyed. Device metadata supplied by the new entry still wins; changing fields
|
||||
does not carry old devices across. Gameplay and allied targeting rules are unchanged.
|
||||
|
||||
### 29.15 Funnel ramps on redeployment
|
||||
|
||||
PRTS [branch traits, 驭械术师](https://prts.wiki/w/分支特性信息/data#驭械术师) resets drone damage to its initial
|
||||
scale when the operator redeploys. The profession installer previously initialized the ramp only once, so a
|
||||
knocked-out Rockrock revived by Ermengard could keep 110% against the same surviving enemy. Normal deployments now
|
||||
reset the funnel target/scale and the per-target map used by Minimalist and Kjera. Other trait state is retained;
|
||||
continuous attacks, target changes and the existing free-move carry decision (§22.3) keep their rules. No operator
|
||||
kit or attack/chase calculation changes.
|
||||
|
||||
The regression uses the production Match with seed 8, NORMAL solo mode and Ermengard: buy Caper in round 1,
|
||||
upgrade in round 2, buy Rockrock in round 5 and leave both fighting normally. In round 6 a real enemy knocks out
|
||||
Rockrock; automatic revival must start the same living target at 20%. Controlled Battle tests separately cover
|
||||
normal/elite Rockrock and hidden Kjera, Minimalist/Kjera per-target maps, uninterrupted ramping, target changes,
|
||||
other-unit deployments, unrelated trait state and free movement.
|
||||
|
||||
Golden updates: `roster-026` reduces Minimalist's damage from 3936 to 2397 and updates the affected enemy,
|
||||
player and snapshot totals; `solo-HARD-1` and `solo-ABYSS-1` reduce the AI lineup's damage after funnel
|
||||
redeployments (boss damage decreases by 572 and 413 respectively). Their victory, round, RNG and error outcomes
|
||||
are unchanged. These three scenarios now start each normal deployment with a fresh ramp instead of carrying
|
||||
the previous deployment's per-target cache.
|
||||
Reference in new issue
Block a user