Files
healer-man/docs/ROM_PLAYER_RANGED_AUTOSHOT_2026-10-04.md
T
2026-10-06 22:25:34 -04:00

24 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# RoM Scout/Rogue player Auto Shot — 2026-10-04
## Source contract
The current Chronicles of Arcadia [Scout/Rogue skills list](https://chroniclesofarcadia.com/wiki/skills/list/2-3?locale=en) lists **Autoshot** under **Scout Primary Only**, source skill ID `492589`. It requires a ranged weapon, is instant and Physical, activates continuous shooting, deals 80.0% ranged weapon DPS per shot, and uses Physical Attack Speed for shot frequency. The row also says to use one piece of ammunition per shot. Its last-offensive-skill bonus is described only as “some portion”; the coefficient is not published and is not simulated. The source row does not specify a range value.
The local learned ability is `rom-scout-primary-57`. It is available to the verified Scout/Rogue build and retains the source primary-only identity, so Knight/Scout does not receive the skill. The ability bar uses the normal learned-ability catalog path. Its tooltip explains activation and reuse to stop the mode without presenting an unknown coefficient.
## Runtime behavior
The player’s Auto Shot state is `autoShotTargetId` plus `nextAutoShotAt`. Activation checks the living hostile target, owner, learned skill, and current resolved ranged slot. Scout Training Gear supplies a bow automatically, so an empty inventory and no explicit ranged assignment still have a valid weapon. A valid assigned ranged item overrides that baseline; unequipping it resolves back to the Training Gear bow. Activation itself does not deal damage or spend focus. Selecting another mob retargets an active mode without restarting its current timer; clearing the target, losing the target, death, or encounter reset clears the mode. Using Auto Shot again stops it even while another cast is active or target geometry blocks firing.
The source row does not state a numeric range, facing, line-of-sight, control, casting, or movement restriction. The runtime uses a six-unit interaction limit as a local constraint and the existing hostile cast geometry checks, which require facing and line of sight. Control that prevents actions and an active cast pause scheduled shots. A blocked shot does not charge Blood Arrow or advance its deadline. Auto Shot continues while moving because the source gives no movement restriction and the player runtime has no separate movement lock for this instant toggle.
For source-supported RoM training gear, damage and base cadence come from `nativeTrainingAutoAttackProfile` for the resolved ranged slot. The per-shot base is 80% of native ranged DPS (`source damage / source interval`), and cadence uses the native ranged interval followed by the represented `haste`, `ranged-haste`, and `attack-speed` modifiers and the current race-affix timing. If native training gear is unsupported or the resolved item is custom, the runtime falls back to that resolved item’s shared ranged DPS and speed. It never takes compatibility damage values as the native source profile.
Each committed shot is an ordinary ranged Physical combat event with ability ID `rom-scout-primary-57`. Active melee and off-hand Auto Attack timers are cleared and suppressed while Auto Shot is active; firing does not start parallel melee swings. Each committed attempt costs the verified Scout/Rogue Blood Arrow owner 2% of maximum health while the aura is active, with no additional mana. The cost is charged once before the damage roll and mirrored to player actor health when present; it is not contingent on landing a hit. The shot is skipped when paying would reduce the player to zero or less, and idle or blocked intervals cost nothing. No separate self-damage event is emitted for this cost.
The source’s ammunition use is not consumed by this runtime because there is no player ammunition inventory system. The unknown last-offensive-skill bonus is intentionally omitted rather than assigned an invented value.
## Verification
`src/game/romScoutAutoShot.integration.test.ts` covers source identity and learnability, automatic Training Gear with empty inventory, custom-item precedence and fallback after unequip, owner gating, native source damage and cadence distinct from compatibility budget, WoW compatibility fallback, custom native fallback with semantic haste, repeated scheduled shots, no activation hit or parallel melee/off-hand event, Blood Arrow cost and lethal-affordability skip, range/line-of-sight/facing/control/cast blocking without idle cost, unrestricted movement, target switching and clearing, reset, and same-tick death cleanup. The recurring test also verifies a stopped window without shots or HP drain, then reactivation with a fresh full-interval deadline and no immediate/catch-up hit. All thirteen checks pass.