41 lines
14 KiB
Markdown
41 lines
14 KiB
Markdown
# RuneWaker Druid Remaining Proc Audit
|
||
|
||
Updated 2026-10-02. This audit covers the seven unresolved Druid-pair passives named in the mechanics backlog and the Recovery identity conflict. It does not change runtime behavior or shared audit/backlog documents.
|
||
|
||
> **Later source update:** The bounded [Druid source follow-up](ROM_DRUID_SOURCE_FOLLOWUP_2026-10-02.md) supersedes the earlier “chance absent” findings for Revival Slash 499496 (Rand 25 after original-target survival), learned Spring Flower child 499935 (Rand 30 +1 Nature Power and a 1/3/5% expiry-heal chain), and learned Inspiration Display child 499942 (ordered 60%-gated effect/30% fallback and timeout payload). The remaining healing formulas still lack verified native runtime inputs; no automatic public-Inspiration or Spiritual-Gush trigger is established. The table below preserves the first-pass audit context.
|
||
|
||
## Source method
|
||
|
||
The local baseline is the RuneWaker `Resource/data/magiccollectobject.db`, `magicobject.db`, and `learnmagic.db`, with linked functions in `Resource/luascript`. The player-catalog exporter reads component records but does not serialize `MagicRunPlot.PlotName` (`scripts/runewaker-pipeline/export-player-catalog.mjs`, `componentFor`); raw `magicobject.db` records carry the plot name at `+0x284..+0x2c3`. Therefore a generated row with no exported plot name does not show that a source script is absent. A script is treated as linked only when the raw component graph names it.
|
||
|
||
The numeric proc chances for the RuneWaker passives below were not present in their passive `MagicCollect` records or in the linked Lua examined. A chance statement in a tooltip confirms a random trigger, but not its probability. Current CoA values are recorded as later-version identities/reworks; they are not substituted into the RuneWaker baseline.
|
||
|
||
The Avalanche CoA rework is deterministic, but current source leaves its defense school and any caster-side Nature's Power grant unspecified. The current local Rockslide path resolves its zero-cast-time effects synchronously, so it does not already represent the CoA two-second first impact. A current-CoA implementation needs a delayed impact event before applying the debuff at the sourced time; do not schedule invented timestamps for the three extra hits.
|
||
|
||
## Per-skill findings
|
||
|
||
| RuneWaker skill and local behavior | Raw local source finding | Current CoA evidence and identity | Result |
|
||
| --- | --- | --- | --- |
|
||
| **Warrior/Druid Revival Slash — 499496** (level 60): a hit by hidden skill 499497 may give the caster a reduced Recover effect, blocked while Recover is active. | Passive 499496 and child 499497 are present in `learnmagic.db`. Child 499497 component 623008 links to `Cl_JOB1_8_Heal_Decapitate` in `Resource/luascript/02707.lua`; that function self-casts hidden skill 499883 using the secondary-job Magic Power level. Its hidden effect uses components 623339/623340, whose source power/base values are 30/15 versus ordinary Recover 503796/503797 values 40/20. This supplies a concrete reduced healing payload, but no chance roll/value. The script casts 499883, not public skill ID 493528, so preserve that distinction. | Later CoA patch history changes Slash to a 25% Rage-restoration proc and later renames Revival Slash to Battle Lust. Those are later-version behavior and do not quantify this local Recover proc. [Patch 10.2.1](https://chroniclesofarcadia.com/patch/10-2-1-1000); [patch 10.4.0](https://chroniclesofarcadia.com/patch/10-4-0-4000). | The local trigger and reduced hidden heal are source-backed; proc probability and exact trigger-roll semantics remain unresolved. Do not import the 25% Rage proc. |
|
||
| **Rogue/Druid Quick Light Protection — 494924** (level 50): reduces Blind Spot energy cost by 10 and may heal the lowest-HP party member when striking a target. | Passive record has no MagicObject components and no linked plot. Local Blind Spot 490311 components 620282/620297 have no plot-name hooks. No raw linked source gives chance, heal amount, recipient tie-break, or whether the hit must land. | Current CoA keeps Quick Light Protection at level 50 but assigns it ID 494923; current ID 494924 is Malicious Intent. The current tooltip retains the −10 energy and chance-to-heal-lowest-HP-party behavior, without a chance or heal value. [Rogue/Druid skill list](https://chroniclesofarcadia.com/wiki/skills/list/3-8?locale=en). | Same-name behavior is recognizable, but the ID reuse is explicit. Keep local 494924 identity for RuneWaker; do not change the proc chance or rename the generated local row from current CoA alone. |
|
||
| **Mage/Druid Boiling Rock — 494565** (level 40): increases Magma Blade Fire critical rate and gives its Earth damage a chance to restore MP. | Passive has no components or linked plot. Magma Blade 494564 has local components 620227/620228 but no plot-name hook. The passive does not expose a chance or MP-restoration amount. | Current CoA reuses 494565 but reworks it: Subterraneous Blade inflicts damage twice at maximum Green Guardian stacks, and wand Magical Damage increases by 75%. Current Green Guardian has a 20-stack cap; Subterraneous Blade also describes an extra hit above 15 stacks. [Mage/Druid skill list](https://chroniclesofarcadia.com/en/wiki/skills/list/4-8). | This is a later rework, not evidence for the local proc. At the maximum 20 stacks, the active skill's >15 extra hit overlaps the passive's “damage twice” clause; do not add another hit without resolving total hit count. The wand bonus is explicit but is outside the requested local proc and should be source-qualified if implemented. |
|
||
| **Druid/Mage Inspiration Display — 499941** (level 70): hidden child 499942 can also trigger Inspiration, with a chance to double the triggered effect during Spiritual Gush 494370. | Passive 499941 has no components. Child 499942 is in `learnmagic.db`; its component 503999 links to `lua_star_Skill_NatureBase(0, 1)` in `Resource/luascript/01465.lua`, a deterministic one-point Nature's Power addition. The linked function does not implement a random Inspiration trigger or doubling. Other components do not name a proc plot. | Current CoA reworks Inspiration Display to enhance Earth Arrow with additional Fire damage. The current Druid/Mage page shows the newer Earth Arrow behavior; historical patch 10.2.1 supplies an older level-104 extra-damage figure, while patch 12.1.4 later reworks/renames Earth Arrow. [Druid/Mage skill list](https://chroniclesofarcadia.com/en/wiki/skills/list/8-4); [patch 10.2.1](https://chroniclesofarcadia.com/patch/10-2-1-1000); [patch 12.1.4](https://chroniclesofarcadia.com/patch/12-1-4-1500). | Local doubling chance and size remain unknown. Do not borrow the old patch value as a current rank curve. This is the level-70 **Inspiration Display 499941**, distinct from Druid/Mage **Inspiration 494322** already handled elsewhere. |
|
||
| **Druid/Warden Avalanche — 494029** (level 20): local Rockslide gains extra Earth damage and may restore one Nature's Power. | Passive record has no components or linked plot. Local Rockslide 493543 has components 503812/503823 and tooltip-linked damage component 503824, but none names a proc script. No local chance value or extra-damage payload link is present. | Current CoA keeps passive ID 494029 but reworks it to make Rockslide apply Weakening Seed. Current CoA Rockslide is ID 494063. Current Weakening Seed 493546 publishes an 18.8% generic defense reduction for 20 seconds at +105; Avalanche names one Rockslide target. Current Rockslide +105 applies its first damage after 2 seconds and also has three extra Earth damage events, whose individual timing is not specified. [Druid/Warden skill list](https://chroniclesofarcadia.com/en/wiki/skills/list/8-7). | The deterministic CoA rework is source-backed, but it is not a fully specified runtime contract. Existing RuneWaker Weakening Seed components 503815/620458 are each 20-second −2% magical-defense effects (`type 170`, translated to `magical-defense`); they do not reduce physical armor. Keep this local effect distinct from CoA's +105 18.8% generic “defenses” value. The +105 value is fixed for a current-CoA profile; the skill is published as max level 105, and the project has no lower-rank curve, so do not interpolate or substitute a +55 value. Current CoA says “defenses” without naming the school, so applying the local magical-only scope to the CoA value would be an explicit assumption. The passive names one target and gives no area behavior. It should apply once at Rockslide impact; CoA lists the first hit at 2 seconds, but not the extra-hit cadence. The current local zero-cast-time 493543 effect resolves synchronously at cast completion; `AbilityEffect` has no impact-delay field, so it does not represent the CoA two-second first-hit delay. Also unresolved: whether passive application includes the active Weakening Seed's one-point Nature's Power restore. Do not add extra damage or a resource grant. A future current-CoA implementation would need pair-qualified edits in `src/game/romDruidOverrides.ts` and `src/game/romAbilityCatalog.ts`, a narrow helper such as `src/game/romDruidWardenAvalancheRuntime.ts`, plus player/companion delayed-impact support in `src/game/combatStore.ts` and `src/game/partyRuntime.ts` if no reusable impact event exists, with focused catalog/player/companion tests. Keep current CoA Rockslide 494063 versus local 493543 explicit; this does not complete the RuneWaker proc. |
|
||
| **Druid/Warden Extended Recovery — 494200** (level 25): adds six seconds to Recover and may restore one Nature's Power. | Passive has no components or linked plot. Runtime currently adds three two-second Recover ticks (six seconds) behind the passive tag; the separate Nature's Power proc probability is absent. See `src/game/romDruidOverrides.ts` cases 494200 and 493528. | Current CoA reuses 494200 as **Recovery Expert**: Recover becomes HoT-only, affects raid members around the caster, may restore Nature's Power, and requires Nature's Power to cast. The tooltip gives no proc probability, pulse-level roll, radius number, or recipient rule beyond “raid members around.” Current CoA Recover is 493528. [Druid/Warden skill list](https://chroniclesofarcadia.com/en/wiki/skills/list/8-7). | The six-second RuneWaker behavior is source-backed and implemented; its chance remains open. Current Recovery Expert is a same-ID later rework, not the local Extended Recovery contract. Any mode switch must update the catalog, cast target/effect construction, and both player and companion execution together; do not infer a per-tick chance or radius. |
|
||
| **Druid/Scout Spring Flower Eulogy — 494932** (level 50): when casting 499935, target HP below 50% gives three stacks; the passive may restore one Nature's Power and adds healing when the flower ends. | Passive has no components or linked plot. Active 499935 component 505742 links to deterministic `lua_star_Skill_NatureBase(0, 1)`; this establishes a one-point Nature's Power addition on that active child, not the passive's separately worded chance. `Lua_Skill499935_main` in `Resource/luascript/02708.lua` contains an HP threshold branch, but no raw component PlotName points to it, so it is not accepted as a bound RuneWaker hook. | Current CoA retains 494932 and the below-50%/three-stack and Nature's Power chance clauses, while Camellia Flower is now 499954. Current CoA also describes an extra heal on expiration and Warm Spring cooldown reduction; patch 11.1.5.3000 sets the cooldown reduction to 3 seconds. Neither the page nor patch gives the Nature's Power chance. [Druid/Scout skill list](https://chroniclesofarcadia.com/wiki/skills/list/8-2?locale=en); [patch 11.1.5.3000](https://chroniclesofarcadia.com/patch/11-1-5-3000). | The HP threshold and three-stack branch are explicit; chance and the local extra-heal amount are not recovered from the bound RuneWaker graph. The current Warm Spring cooldown rider is a CoA-only rework detail unless current-CoA behavior is selected. |
|
||
|
||
## Recovery identity decision
|
||
|
||
There are two Druid/Warden behaviors attached to ID 494200. RuneWaker names it Extended Recovery and says Recover lasts six seconds longer; the active runtime applies exactly three additional two-second ticks. Current CoA calls the same ID Recovery Expert and changes Recover's targeting and payload. Current CoA Recover remains ID 493528, while RuneWaker's baseline Recover is also 493528. Keep the versions separate: the current page does not establish the local proc chance, the aura pulse at which it rolls, or a numeric party radius. This finding is unrelated to Warrior/Druid Recovery of Life/Rage of Calmness.
|
||
|
||
## Raw hook cross-check
|
||
|
||
- `export-player-catalog.mjs` includes component IDs and parsed trigger fields, but not the raw `MagicRunPlot.PlotName`; inspect `magicobject.db` records when the generated row lists no components.
|
||
- Linked Revival Slash child 499497 uses component 623008 and `Cl_JOB1_8_Heal_Decapitate`; that script casts hidden 499883 on its owner. The child payload components are 623339/623340. No roll percentage is encoded in the function.
|
||
- Druid/Mage child 499942 component 503999 and Druid/Scout skill 499935 component 505742 both bind the deterministic NatureBase +1 function. The separate random claims are not implemented by that function.
|
||
- The similarly named 499935 HP-threshold function in 02708.lua is not bound by a raw plot-name reference in the inspected source graph; do not treat a same-file function name as proof of execution.
|
||
|
||
## Sources
|
||
|
||
Local RuneWaker records: `../Runewaker/Resource/data/{learnmagic.db,magiccollectobject.db,magicobject.db}` and `../Runewaker/Resource/luascript/{01465.lua,02707.lua,02708.lua}`. Current CoA links are placed by mechanic above. CoA data supports documenting current identities and reworks; it does not fill the missing RuneWaker random chances.
|