140 lines
8.7 KiB
Markdown
140 lines
8.7 KiB
Markdown
# Guardian formation and Paragon source audit, 2026-10-05
|
|
|
|
The original read-only audit below bounded the Vanguard integration. The
|
|
implementation follow-up records the resulting runtime contracts; the selected
|
|
five CoA builds remain Needs Testing.
|
|
|
|
## Action acquisition
|
|
|
|
The August 12, 2026 Vol'Jin builder capture has 161 Guardian nodes and no node
|
|
for Tower Formation 800317 or Guardian Line Formation 803130. Footman's Calling
|
|
4019, The Green Tower 30060, Banner Boy 29798, and Press the Line! 6817 reference
|
|
them in descriptions; references are not learn-spell grants.
|
|
|
|
The separate July 25 class-spell metadata in `src/game/coaLiveData.generated.json`
|
|
marks both spells class 18 with `sourceIds: [6]`. `scripts/sync-ascension-coa.mjs`
|
|
maps source 6 to the trainer flag when building ranked progression chains.
|
|
These two spells are rankless, have no progression chain, and are absent from
|
|
the promoted action catalog. Tower's level is 4 with Talent/tab 7 metadata;
|
|
Line's level is 20 with no advancement type. This is evidence for a trainer
|
|
channel, but the current import path needs explicit rankless trainer support.
|
|
There is no captured named trainer, exact unlock row, or current tree grant.
|
|
|
|
## Formation effects
|
|
|
|
| Spell | Cost / duration | Self effects | Integration requirement |
|
|
| --- | --- | --- | --- |
|
|
| Tower 800317 | 20 Energy / indefinite | Aura 87, base 0; aura 142, +50; aura 79, -10 | Resolve linked +10% block from 803431 effect 3; implement shield armor contribution separately from generic resistance; retain -10% outgoing damage. |
|
|
| Line 803130 | 20 Energy / indefinite | Aura 232, -25, misc 7; aura 79, 0; aura 31, +15 | Implement the captioned control-duration reduction and movement; apply the conditional Vanguard mitigation through a real owned form. |
|
|
|
|
Both have no cast time or individual recovery. Their categories are 708 and
|
|
709; these do not establish mutual exclusion or toggle-off behavior. The source
|
|
does not provide a cancellation/grant relationship between them. Tower's armor
|
|
caption modifies the shield contribution, so applying +50% total armor or
|
|
physical resistance would be incorrect. Generic aura conversion also leaves
|
|
Line's aura 232 unsupported.
|
|
|
|
Footman's Calling 4019/92105 establishes -10% self damage while Tower or Line is
|
|
active. A future runtime check must require the caster's own live self aura:
|
|
`coa:800317:effect:0:aura:87` or `coa:803130:effect:0:aura:232`. Spell 92105 has no
|
|
trigger grant. Referenced 807728 is a separate tank-stance payload, not a spell
|
|
granted by that passive; its threat value cannot be assumed active merely from
|
|
learning Footman's Calling. Do not substitute Tower Stance 803907, visual
|
|
803941, or Line SLS 803151/803690 for the acquisition of the two real actions.
|
|
|
|
## Paragon reconciliation
|
|
|
|
The August live node 29969/706514 describes stacks from blocking, a ten-stack
|
|
Heavy Blow to Paragon Smash transformation, and three stacks from Heavy Blow.
|
|
The block trigger is limited to once per 0.5 seconds, and stacks last 10 seconds.
|
|
Smash deals 144 + 37% AP to nearby enemies and adds +10% block; blocking reduces
|
|
Brace's cooldown by two seconds, for five blocks or ten seconds.
|
|
|
|
The linked stack spell 706516 has inconsistent text fields. Its primary field
|
|
170 still describes the older Tower/Bastion transformation. Field 187 instead
|
|
describes Heavy Blow to Paragon Smash, matching the live node. Archive children
|
|
802629 (damage) and 803432 (buff) support the Smash damage and block/cooldown
|
|
payload. This narrows the discrepancy to the stale primary description rather
|
|
than proving the old transformation is the intended current behavior. The live
|
|
node and compatible child payload should guide the next implementation; keep
|
|
the conflicting primary text as evidence.
|
|
|
|
The active sync prefers localized field 170 and falls back to field 187 only
|
|
when 170 is empty. Its promoted primary-only description therefore loses this
|
|
useful secondary text. No gameplay behavior changed in this audit.
|
|
|
|
## Offline provenance
|
|
|
|
- Builder and tree: `data/coa-reference/cache/archive-5078f9ac2254/generation-fa16afec-8f11-4eab-98ab-b6441304fab7/`,
|
|
`raw/talents/coa-builder-voljin.html`, `raw/talents/_fetch.json`, and
|
|
`data/talents/coa/Guardian.json`. The fetch record gives capture time
|
|
`2026-08-12T21:02:51+00:00` and SHA-256
|
|
`41a6ccd393c0648ae2b1fdc34fe94955d4fd13c0cd59040ad3860e64a8ff6c7a`.
|
|
- Patch-T raw spell shards: under the same archive's `spell-base/shards/`.
|
|
Stack spell 706516 is in `00700000-00709999.jsonl.gz`, not a 7-million-ID shard.
|
|
Formation/helper rows use `00803000-00803999.jsonl.gz`; 802629 uses
|
|
`00802000-00802999.jsonl.gz`; 807728 uses `00807000-00807999.jsonl.gz`.
|
|
`spell-base/Spell.colinfo.json` maps the positional fields.
|
|
- July global snapshot: `data/coa-reference/snapshots/e86031775dfac7e336361087c50ca23a0a7a86c36a760c85803bee4bcdb89351/reference.json`.
|
|
|
|
All of the effect and text reconciliation above used cached/local records.
|
|
It does not require recrawling the class database or downloading the client.
|
|
|
|
## Implementation follow-up, 2026-10-05
|
|
|
|
`coaAbilityCatalog.ts` now imports only the two evidenced rankless Guardian
|
|
trainer actions through a class/source/level/DBC-identity allowlist. Tower is
|
|
learned at level 4 and Line at level 20 under HealerMan's existing automatic
|
|
level-learning model. A named trainer interaction is not reconstructed. Only
|
|
Guardian records were regenerated in the runtime and UI catalogs.
|
|
|
|
`coaGuardianFormationRuntime.ts` projects each cast into one permanent,
|
|
caster-owned self aura. Tower adds 10 percentage points of block, 50% of the
|
|
actual equipped shield item's armor, and -10% outgoing damage. Line adds 15%
|
|
movement speed and reduces roots by 25%: aura 232's misc value 7 identifies
|
|
Root, so the caption's broader control wording is not applied to every control
|
|
type. Footman's Calling adds -10% taken damage only while either own live form
|
|
is active. Projection recomputes current talent/equipment contributions without
|
|
requiring a recast; borrowed, expired and other-class markers do not qualify.
|
|
No numerical threat multiplier is inferred. A shared exclusive group makes
|
|
switching replace the old form as an explicit authored game policy; the source
|
|
categories do not prove this behavior. Toggle-off remains unimplemented.
|
|
|
|
`coaGuardianParagonRuntime.ts` uses the August live node and compatible secondary
|
|
text. Actual Heavy Blow successes add three stacks and actual blocks add one,
|
|
with a 500 ms block-stack internal cooldown and 10-second stack lifetime.
|
|
At ten stacks, 707138 represents readiness only. Heavy Blow retains its action
|
|
identity, talent gate, cost and cooldown while projecting to an 8-yard self
|
|
area strike for 144 + 37% AP. SpellRadius.dbc row 14 in the local patch-S
|
|
extraction confirms the 8-yard radius. Only a successful Smash creates 803432's
|
|
10-second +10-point block buff with five block charges. Each actual block while
|
|
that buff is live consumes one charge and reduces an active Brace cooldown by
|
|
two seconds for the player or companion authority and its mirrored member.
|
|
Readiness itself grants no defensive bonus. Stack reset/consumption is not
|
|
encoded in the inspected source, so no reset rule is invented; a later qualifying
|
|
event can establish readiness again after its prior window expires.
|
|
|
|
The player executor, companion executor/scorer, benchmark selector and HUD use
|
|
the same cast projection. Player and party movement consume the owned Line
|
|
modifier. Vanguard companions prepare Tower through normal learned-action,
|
|
readiness, target and resource checks, preserving an already chosen Line.
|
|
Actual cast/block integration fixtures and the source conflicts above remain
|
|
separate from balance certification. Live results and required checks are
|
|
recorded in `docs/COA_FIRST_PARTY_MILESTONE.md` and `PLAYTEST_NOTES.md`.
|
|
|
|
Companion Smash selection is explicitly authored: priority 7,500 for Vanguard
|
|
tanks at or above 55% health, fallback preference 40 otherwise. Unmasked public
|
|
scorer checks choose ready Smash over routine Ballad when healthy, retain real
|
|
mitigation when injured, and preserve urgent taunt/interrupt scores. The exact
|
|
source optimal rotation remains unknown. Focused Guardian/helper/party checks,
|
|
Ready-five compatibility and the production build pass; see the milestone for
|
|
complete validation scope and the bounded live evidence.
|
|
|
|
Actual browser entry also exposed generic free preparation of both raw forms
|
|
and loss of a saved Heavy Blow talent binding. Final regressions cover the
|
|
source fixes: generic precombat effect selection excludes the two real forms,
|
|
while character initialization validates saved nonpassive class actions against
|
|
a separate allowlist before rejecting unlearned talent slots. These fixes retain
|
|
normal resource payment, the authored exclusive group and the original default
|
|
bar order. The selected five remain Needs Testing.
|