Commit Graph

1 Commits

Author SHA1 Message Date
troytt 2d6bbb93a2 fix(sor-cold): remediate number overload contract and wire reactive combat hooks (Issue #194, #204, #214)
- Fix calculateShiverArmorDamage and calculateChillingArmorDamage number overload to treat number as allocated synergy points (synPoints) with 1.13c percentage scaling, supporting explicit options.synMultiplier override
- Guard duration and chill/freeze length calculators against negative synergy inputs with Math.max(0, synPoints)
- Wire reactive combat hooks in combat.ts (tickMonsters/updateMonsters and hitPlayerWithMissile):
  * Frozen Armor: reactively freezes attacking monster upon taking physical melee damage
  * Shiver Armor: proactively chills and damages attacking monster upon melee attack initiation
  * Chilling Armor: reflects retaliatory chillingarmorbolt on incoming ranged missiles with returnFire=false
- Wire proactive and reactive combat events in combat-pipeline.ts (executeSUnitDmg):
  * Dispatches attackedinmelee proactively before hit resolution
  * Dispatches damagedinmelee post-damage on melee hits
  * Dispatches hitbymissile post-damage on missile hits
  * Exposes attackerStatesApplied, attackerColdDamage256, reflectedPhys256, and spawnedMissiles on SUnitDmgOutcome
- Add comprehensive remediation test suite tests/skills/sor/cold-armors-remediation.test.ts
2026-09-24 01:06:25 +00:00