99 lines
8.1 KiB
Markdown
99 lines
8.1 KiB
Markdown
# DESIGN §28 — 0.2.3
|
||
|
||
Part of [DESIGN.md](../DESIGN.md) (the index; section numbers are global).
|
||
|
||
## 28. New content and community fixes
|
||
|
||
This chapter describes the development version, not a published release. Numerical content is rebuilt from
|
||
CN client 2.7.81, ArknightsGameData commit `17759cc8cdf37388414145d16262a3a06f3ab25e` (2026-10-08),
|
||
with mechanism notes from PRTS checked on 2026-10-09. Launch-day descriptions may receive corrections.
|
||
|
||
### 28.1 克莱门莎 — `sim/content/kits/ops/op-clemnt.js`
|
||
|
||
- **Source:** [PRTS 克莱门莎](https://prts.wiki/w/克莱门莎) and the official character, skill and range tables.
|
||
The non-collaboration 6★ roster gains Clementia (`char_4231_clemnt`), a 本源近卫: 72 DIY operators,
|
||
89 backup units including stand-ins, 259 selectable forms. All three skills are selectable in the existing
|
||
tier-5 / tier-6 DIY slots at their existing skill-rank rules; potential and cultivation follow the player's settings.
|
||
She has no launch module. Her bonds follow the existing faction mapping, including 阿戈尔.
|
||
- **Talents:** each physical hit independently rolls 生死定夺's pre-DEF ATK multiplier; an enemy with current
|
||
DEF below its initial DEF uses the higher probability. 习得性防御 reduces physical / Arts damage from the
|
||
forward half-plane (including its boundary) or an enemy she blocks; 海怪 uses its separate reduction.
|
||
Both talents take their potential-sensitive values from the generated data.
|
||
- **S1:** the charged attack applies its ATK scale and inflicts 侵蚀损伤 proportional to actual HP damage.
|
||
**S2:** the cabin travels forwards at 2 tiles/s, up to 3 tiles, carrying up to 15 ground enemies with a total
|
||
weight of 8. Its collision square is 1.1 × 1.1. Impassable terrain stops it; self-bound / teleport-immune
|
||
units cannot ride. Its actual stopping position becomes a radius-1.5 vortex that can affect air, slows by 70%, and each
|
||
second deals 200 erosion damage plus the skill's physical damage. Erosion follows the engine's normal
|
||
resistance, burst cooldown and mode-leader immunity rules.
|
||
Ordinary skill attacks hit their main ground target and up to four neighbours.
|
||
- **S3:** attacks select up to three ground enemies and add erosion based on actual HP damage without spending
|
||
ammunition. A selectable ground enemy's erosion burst anywhere in the current battle marks it for 1 s.
|
||
The closest mark consumes one of 10 bombardments: three physical + elemental hits in the target tile's
|
||
five-tile cross. A tile with an outstanding projectile cannot be selected again for 5 s. Values are taken
|
||
from the skill rank, not inferred from the final rank's description.
|
||
- **[ASSUMED], pending PRTS confirmation:** S2 ordinary splash radius 1.5 and stable spawn-order tie breaks;
|
||
放逐 presently prevents walking, attacking and blocking while keeping the passenger damageable; cabin
|
||
movement updates every sim tick, stops 0.4 tiles before an impassable edge, and the vortex ends with S2.
|
||
S3's first impact is 0.5 s after launch, the others 1 s apart; launched projectiles finish after skill end.
|
||
These are local kit assumptions, not changes to displacement or targeting rules for other operators.
|
||
- **Tests:** `test/content/op_clemnt.test.js` covers available forms, potential, crit probabilities, directional
|
||
defence, S1 cadence, S2 capacity / immunity / terrain / air vortex / target cap, and S3 ammo / global marks /
|
||
mixed damage. Golden changes and the final integration verification are recorded below once complete.
|
||
|
||
### 28.2 New modules — 黍「好时节」and 乌尔比安「前路」
|
||
|
||
- **Sources:** [PRTS 黍](https://prts.wiki/w/黍), [PRTS 乌尔比安](https://prts.wiki/w/乌尔比安), official
|
||
`uniequip_table` and `battle_equip_table` from the same CN revision. Regenerating data adds GUA-Y
|
||
(`uniequip_003_shu`) and CRU-Y (`uniequip_003_ulpia`) to their existing forms, including the anchor's
|
||
module lookup. The day's new 5★ operators stay outside the established non-collaboration 6★ DIY pool.
|
||
- **黍:** GUA-Y's trait gives 15% damage reduction. The upgraded 天有四时 takes the improved HP / ASPD /
|
||
four-Sui squad bonuses from the module blackboard. Satisfying at least two of the three conditions grants
|
||
the separate additional ATK bonus (3% / 5% at module levels 2 / 3); it expires when the conditions stop holding.
|
||
- **乌尔比安:** CRU-Y increases damage to an enemy blocked by any ally by 10%. Its upgraded talent also counts another
|
||
深海猎人's credited kills (including delayed hits after that hunter leaves) while 乌尔比安 is deployed, shares the module's specified HP / ATK proportion,
|
||
and adds one block at 9 stacks. Potential's extra maximum stack is retained. The mode's tier-5 elite form
|
||
still uses module level 1; support for upgraded talent blackboards does not change that established rule.
|
||
- **Tests:** `test/content/new-modules-023.test.js`, plus existing 黍 and tier-5 kit cases. The level-3 talent
|
||
fixture is sourced from the official module blackboard; it is not exposed as a new tier-5 loadout.
|
||
|
||
### Content verification checkpoint
|
||
|
||
The new content's targeted tests passed 16/16; existing Shu / tier-5 coverage passed 120/120. An independent
|
||
interaction pass checked retreat cleanup, sleeping passengers, a real rebirth enemy, hit-count life,
|
||
post-retreat bombardments and delayed hunter kill credit. It found and corrected vortex-position rounding,
|
||
an unsupported elemental-resistance bypass and an unnecessary on-field check on the credited hunter.
|
||
All 285 golden scenarios were regenerated: only `roster` and `diy` changed, (`roster-019`, `roster-038`, `diy-059`–`diy-140`), because the added module expands
|
||
loadout coverage and the added DIY operator / Shu module expand and regroup the DIY scenarios. `bonds`,
|
||
`fields`, `matches` and `standins` remained byte-identical. Full integration and browser checks follow separately.
|
||
|
||
### 28.3 Clipboard export inside dialogs — #433
|
||
|
||
Reported by @RushFTK: exporting settings over an insecure/LAN connection focused the language selector and
|
||
reported success without copying the export. The fallback textarea was appended outside the active dialog,
|
||
whose focus trap redirected selection before `execCommand('copy')`.
|
||
|
||
`ui/clipboard.js` now selects its temporary textarea inside the active dialog/guide, validates focus and the
|
||
whole selection before copying, and always removes it and restores focus, including after exceptions.
|
||
The secure Clipboard API remains first choice; a failed fallback returns false for the existing manual-copy UI.
|
||
Shared invite/loadout copying uses the same helper. Device tests passed 16/16; independent interaction probes
|
||
passed 12/12. The real nested-dialog regression is included in `test/ui/modal.e2e.test.js` for integration testing.
|
||
|
||
### 28.5 远牙's granted trait on substitute switches — #415 / PR #429
|
||
|
||
Ported from [PR #429](https://github.com/sganggs/Stronghold-Protocol/pull/429) by @CXUtk; reported and
|
||
original-mode interaction confirmed by @rosexxxp. The official activity table supplies the amounts:
|
||
`garrison_148_a/b` grants `garrison_108_a/b`, +4/+8 to active 卡西米尔 and 精准, capped at 24/48 per battle.
|
||
Only that granted trait additionally listens to `dollSwap`, in both directions, through the existing gain function.
|
||
Deployment and switches share the original cap, active-bond checks and grant deduplication. Other deployment
|
||
traits keep their existing triggers. The 7 regression cases cover both real dollkeepers, natural and S2 returns,
|
||
shared caps, duplicate grant holders, inactive bonds and unrelated timed windows.
|
||
|
||
### 28.6 Asset download visibility — PR #421
|
||
|
||
Ported from [PR #421](https://github.com/sganggs/Stronghold-Protocol/pull/421) by @LimitlessHPPK.
|
||
The asset resolver records every planned leaf with no alternative on disk as `droppedLeaves` in its report;
|
||
the terminal prints a bounded summary. `--strict` / `SP_ASSETS_STRICT=1` returns exit 1 for those omissions.
|
||
The default remains a warning, and the existing manifest shrink guard remains in force. Strict mode changes
|
||
the outcome code; it is not a transaction and does not roll back a manifest already written. Temporary test
|
||
assets are cleaned up after each case. This is an opt-in tool check, not an added packaging requirement.
|