# Current CoA Priest Holy Candle (490304) ## Source and precedence - The [current CoA Priest skill list](https://chroniclesofarcadia.com/wiki/skills/list/5-1?locale=en) identifies Holy Candle as Priest-primary skill 490304 and gives a +27% healing-effectiveness bonus. Its displayed 5% HP trigger is stale. - The same CoA row lists a 5% MP cost, range 1, and 30-second cooldown. The local row has no cost override, range 0.1, and a 180-second cooldown; the exact same-ID/name/class entry supports using CoA's metadata. - The newer [CoA patch 12.1.6.2000 notes](https://chroniclesofarcadia.com/patch/12-1-6-2000) explicitly increase Holy Candle's self-damage from 5% to 12%, so the patch value takes precedence over the older page value. - A [CoA developer reply on the Priest feedback thread](https://forum.chroniclesofarcadia.com/thread/4572-priest-class-feedback/?postID=30657) clarifies that Holy Candle can hit the caster only once per second. - The skill page lists a 5% MP activation cost. This is distinct from the 12% HP self-damage trigger. The generated RuneWaker row has no cost, so the catalog supplies an ordinary 5% Mana cost, which resolves against maximum Mana; CoA does not specify a base-Mana cost. ## RuneWaker conflict and model Generated local skill 490304 uses component 500549. It currently has range 0.1, a 180-second cooldown, no Mana cost, a 60-second duration, a type-149 +5% healing-done modifier, and a -6% HP periodic effect every second. The CoA behavior uses range 1, a 30-second cooldown, and a 5% Mana activation cost; replaces the +5% modifier with +27%; retains the local 60-second duration because CoA does not publish one; and removes the free-running periodic drain. The 5% Mana activation cost is separate from the HP trigger. The patch says 12% self-damage but does not state whether the percentage uses current or maximum HP. The simulator interprets it as 12% of maximum HP, matching the local percentage-based component's existing maximum-health calculation pattern. This basis remains an implementation interpretation rather than an explicit CoA value. The chosen trigger boundary is one charge for each accepted healing-spell cast that resolves a heal, independent of the number of recipients. Direct and AoE heal casts charge once before recipient fan-out, even when the recipients are already full. A HoT charges once when its valid application cast resolves; periodic healing ticks do not charge again. A channel charges on its first qualifying healing pulse, and a per-cast flag prevents later pulses from charging again even when they are more than one second apart. The official one-second throttle is exact and stored per owner: multiple heal spells from the same owner share a window, while the player and each companion have independent windows. Failed, invalid, or interrupted casts do not charge. For the channel regression, the test uses WoW Divine Hymn only as a fixture for the shared channel scheduler while the simulated owner is a RoM Priest-primary character. This verifies the persistent per-cast guard; it does not claim Holy Candle or Divine Hymn has a CoA Priest-primary channel mapping. A test-only RoM Holy Candle HoT fixture covers application-versus-tick behavior because the generated Priest-primary catalog currently has no healing HoT row. The source leaves these timing boundaries unspecified, so they remain explicit simulator choices. ## Current implementation and limits - `src/game/romPriestHolyCandleRuntime.ts` owns the current values, Priest-primary effect transform, aura marker, and pure throttle/self-damage helpers. - `src/game/romAbilityCatalog.ts` gives only Priest-primary 490304 the 5% Mana cost, range 1, and 30-second cooldown plus a tagged 60-second +27% aura, replacing the generated periodic dot. - `src/game/romPriestTooltips.ts` exposes the current values and separates cast cost from HP trigger cost. - `src/game/romPriestHolyCandle.test.ts` covers catalog values, exact class scope, modifier replacement, periodic-dot removal, active-aura detection, and throttle math. - `src/game/combatStore.ts` applies the player self-damage in the cast-resolution transaction and handles channel-pulse charging. - `src/game/partyRuntime.ts` applies the same trigger for generated Priest-primary companions on direct/HoT heals and channel pulses; `src/game/partyStore.ts` retains the channel's charged flag across party-runtime advances. - `src/game/romPriestHolyCandle.integration.test.ts` covers direct over-heal, one charge for multi-recipient Group Heal, inactive/invalid/interrupted casts, per-owner one-second throttling across spell IDs, companion heals, HoT application versus later ticks, and channel pulses more than one second apart. The runtime hook applies raw self-damage up to the owner's remaining health and records it as a Holy damage event. The 12% basis remains maximum HP by simulator interpretation. The one-second timestamp map is per combat owner; the channel guard is per cast and persists on companion casts across scheduler updates. Integration coverage verifies the player and generated-companion paths described above.