Refactored `Get_Multiplier_For_Weighted_HP_Difference` to accept optional `enemiesTargetPriority` and `totalTargetPriority` parameters The original method iterated over all enemies (O(N)) to sum priorities and calculate weighted average for every call (hot path in Arena/specific items like Giant Slayer or Hellfire Hatchet)
Fiendhunter Bolts respects auto count
Fix Upgrade IE and Sword of the Divine
Implement various "Upgrade {item}" augments
Add Wooglet's Witchcap
Add support for bonus armor penetration in damage calc
Optimize GitLab deployment script
Fix ER crit scaling
Fix essence reaver no sheen damage
Make HealShieldPower scenario specific
Rename HealShieldProficiency to HealShieldPower
7th item fix for compare utility and shop force item
Async function for Riot Api
Fix type import
Implement a caching mechanism for `RecalculatePhysicalReductionFactor` and `RecalculateMagicReductionFactor` This cache stores the inputs (Attacker stats, level, target resistance context via enemies reference) and reuses the calculation result if inputs haven't changed
Implement caching for `enemiesTargetPriority` and `totalEnemiesTargetPriority`
Optimize `Get_Multiplier_For_Weighted_HP_Difference` in `Champion_Total_Stats.ts` by removing `HigherDifference` array allocation and using a single `for` loop instead of `reduce` + `forEach` This function is called frequently inside the main battle simulation loop (when certain items like Perplexity or Hellfire Hatchet are present). Array allocation and multiple array traversals were adding significant overhead
Hoist `effectiveUltimateCDCoefficient` calculation from `totalStats.Get_Effective_Ultimate_CD_Coefficient(level)` outside the `theoryIndex` loop in `Calculate_Battle` method in `src/algorithm/Battle_Calculation.ts` Update `Adjust_Attack_Count` method signature to accept `effectiveUltimateCDCoefficient` as a new argument and use it instead of calling the method internally