Files
healer-man/docs/ROM_PRIEST_SCOUT_SAINTS_BLESSING.md
2026-10-02 10:38:12 -04:00

8.9 KiB

Priest/Scout Saint's Blessing (493039)

Source choice and identity

The current Chronicles of Arcadia Priest/Scout skill page identifies Saint's Blessing as skill 493039, Priest primary / Scout secondary, and says it increases damage by 28% against targets below 30% of maximum HP. The same entry separately says a Heal cast on a friendly target below 30% HP receives an additional healing effect, listed at +105 as 597 flat healing plus 21%.

The local generated RuneWaker row matches the exact class pair and skill ID, so it identifies the skill being reviewed. Its two components (503283 and 620406) describe the older Heal-triggered rider: +30 flat healing and +1% healing power for 10 seconds at the local component values. The current CoA page takes precedence for the new damage rider and the current maximum-rank healing values; the local data remains evidence for the legacy payload and this repository's available rank representation. The current CoA page does not publish a lower-rank healing curve, so this note does not invent one.

There is a version conflict for the damage rider: patch 11.1.5.2000 originally says +21% below 30% HP, while the current skill page says +28%. The runtime uses the current page's +28%. It does not carry over an old buff duration or cooldown: the current page describes the damage bonus as a target-health condition and lists no timed aura for it.

Runtime mechanic

src/game/romPriestScoutSaintsBlessingDamage.ts returns a 1.28 damage multiplier only when all of these are true:

  • The build is exactly Priest primary / Scout secondary.
  • Passive 493039 is learned.
  • The living target's current HP is strictly below 30% of maximum HP when the damage packet resolves.

The runtime returns 1 otherwise, including at exactly 30%, for dead targets, and for invalid health ratios. There is no proc chance, duration, or cooldown in the current source. It checks the target's live health for each damage packet, so later hits and periodic ticks respond to health lost since the previous packet. The source says “damage” without limiting it to a school or direct-hit type, so the runtime does not restrict the rider by school or direct-versus-periodic delivery.

Runtime paths and assumptions

src/game/romPriestScoutSaintsBlessingDamage.ts contains the pure 1.28 multiplier check. src/game/combatStore.ts applies it to the rolled damage path in resolveAndDamageMobInWork before hit resolution and mitigation. That path covers player and party direct damage, auto-attacks, and timed damage effects: the tick() loop routes each DoT packet through the same resolver. The resolver then calls damageMobInWork with a marker that prevents scaling the already-modified primary packet twice. Extra damage packets attached to a hit are evaluated once in damageMobInWork.

Unrolled damage events also pass through damageMobInWork; this includes generated-companion direct damage and timed area explosions. For a party source, the helper uses that member's primary/secondary classes, level, and talent ranks, then confirms passive 493039 is learned for that exact build. The check uses target HP immediately before the packet is applied. A multi-target ability evaluates each target separately, and successive packets can cross the threshold during combat.

This follows the simulator's available event model: percentage health is mob.health / mob.maxHealth, and the bonus is applied before target mitigation for ordinary damage. A secondary packet belonging to the same hit gets the same pre-hit target-health snapshot and is scaled once as its own damage packet. There is no separate generated-companion passive toggle; learned status comes from the generated class-pair catalog and that member's level/talent ranks.

Focused coverage is in src/game/romPriestScoutSaintsBlessingDamage.test.ts and src/game/romPriestScoutSaintsBlessingDamage.integration.test.ts. It covers player and generated-companion rolled damage just below, exactly at, and just above 30%; unrolled companion damage; exclusion for another secondary class; and player/companion Bone Chill ticks where the first tick takes the target from above 30% to below it. The class's existing damage modifiers are retained in the player tests, which compare the below-threshold packet to that same source's exact-30% baseline.

Separate Heal rider source review

The current CoA Priest/Scout skill page lists the pair's Heal as 493048, available at level 45, with a 2-second cast and 2925 base healing at +105. Saint's Blessing 493039 says that casting Heal on a friendly target below 30% HP additionally enhances the healing effect by 597 + 21% at +105. This wording identifies the skill and friendly low-health condition, but it does not name a separate trigger chance, cooldown, buff duration, or stacking rule.

The official 11.1.5.2000 patch notes say Saint's Blessing was changed to additionally increase damage by 21% below 30% HP; their later post-patch notes increase that damage rider to 28%. Those entries document the damage addition and later damage increase, not a revision to the Heal rider. The current skill page is the strongest available source for today's Heal values. I found no official patch entry in the reviewed history that supplies a lower-rank Heal-rider curve or adds a duration/stacking rule.

The local generated catalog has no Priest/Scout Heal 493048 row. It has only Priest-primary Heal 490261 (rom-priest-primary-2, unlock level 6), with a generic “Restores (DMG0) points of target's HP” tooltip and a translated heal coefficient of 0.9. Saint's Blessing's local source components 503283 and 620406 instead encode +30 flat healing and +1% healing power, each for 10 seconds. src/game/romPriestKnightOverrides.ts turns those local components into a 10-second caster aura before the cast effects of Heal 490261, gated on learned passive 493039 and friendly target health below 30%. That is an implementation of the local snapshot, not evidence that the current 493048 row still uses a 10-second aura or that its current +597/+21% values should be stretched over that duration.

A 2021 CoA forum exchange provides secondary corroboration of the spell identity: it reports that Urgent Heal 491147 did not trigger Saint's Blessing, while Heal 499977 did. The same thread quotes an older +104 tooltip of 591.6 + 20.8%. This is useful historical evidence that the passive was intended to react to the named Heal rather than any healing spell, but it is not an official current mechanic specification. The historical 499977 ID also differs from today's 493048.

What the sources establish

  • Heal identity: current CoA specifies the Priest/Scout Heal row 493048; the historical forum report distinguishes Heal from Urgent Heal 491147. Do not treat every heal, including HoTs, as this trigger.
  • Target condition: a friendly target must be below 30% HP. Current text does not explicitly say “of maximum HP” in the Heal clause (it does say that explicitly in the damage clause), and it does not settle whether the check is at cast start or cast completion for the 2-second cast. The local runtime passes the selected target's HP ratio through the cast-effect resolution path; because a cast first returns from its cast-start branch, this samples health when the effect resolves. That is the simulator's current timing assumption, not a timing rule stated by CoA.
  • Cast success: “When you cast a Heal” and the community report that Heal “works” support a Heal-cast trigger. The sources do not define whether interrupted casts, invalidated targets, zero-effective overheal, or another nonstandard cast outcome count. They do not support substituting a generic successful-healing event.
  • Rank values: +105 is documented as +597 and +21%; the old +104 forum quote reports +591.6 and +20.8%. These historical/current rank samples do not establish the current lower-rank progression curve, so do not extrapolate one.
  • Duration and stacking: the current skill page gives no duration, cooldown, stack limit, refresh, or carryover text for the Heal rider. Treat the 10-second local aura as a version-specific local payload until a current source or current 493048 component data confirms it. Whether the bonus modifies only that Heal's heal packet or creates a temporary effect is not fully specified by the current tooltip.

This source review leaves the Heal rider unresolved. The next implementation needs current 493048 generated/source data or a more explicit current CoA mechanic source before choosing between the local 10-second aura and an immediate per-cast bonus. Do not copy +597/+21% to lower levels or attach local +30/+1% values to 493048 without resolving that source conflict.