23 lines
1.1 KiB
Markdown
23 lines
1.1 KiB
Markdown
# Issue 18: maintenance cast selection
|
|
|
|
The benchmark controller scores a generic candidate list alongside the shared
|
|
rotation. A maintained aura rejected by the shared selector must also be
|
|
removed from that fallback list, or the next benchmark decision can cast it
|
|
again.
|
|
|
|
Current, unexpired auras are passed to the selector with their actual target
|
|
and aura ID. The selector suppresses the same applied aura only on the target
|
|
the candidate would use. An aura on another actor does not block the cast, and
|
|
a different aura in the same exclusive group remains eligible to replace it.
|
|
Expired and dispelled auras are absent from the active snapshot. Periodic
|
|
effects retain their source, target, and remaining-duration checks. An attack
|
|
or heal that also applies an aura remains eligible for its primary effect.
|
|
|
|
Focused regressions cover Protection Paladin L60 Greater Blessing of Sanctuary,
|
|
RoM Scout L30 Detection, target-scoped aura selection, and exclusive-group
|
|
replacement. Run them with:
|
|
|
|
```sh
|
|
./node_modules/.bin/vitest run src/game/benchmark/benchmarkController.maintenance.test.ts src/game/combatRotation.test.ts --reporter=dot
|
|
```
|