From 176ac7bba64390bdb6e1e6643c6a291739e79c68 Mon Sep 17 00:00:00 2001 From: Ampitere Date: Thu, 9 May 2024 12:27:53 -0700 Subject: [PATCH] fix: recast haste isn't capped --- src/map/utils/battleutils.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/map/utils/battleutils.cpp b/src/map/utils/battleutils.cpp index 46ea13e5ebd..c20ae879b8f 100644 --- a/src/map/utils/battleutils.cpp +++ b/src/map/utils/battleutils.cpp @@ -6459,8 +6459,10 @@ namespace battleutils recast = static_cast(recast * ((100.0f - (fastCastReduction + inspirationRecastReduction)) / 100.0f)); // Apply Haste (Magic and Gear) - int32 haste = PEntity->getMod(Mod::HASTE_MAGIC) + PEntity->getMod(Mod::HASTE_GEAR); - recast = static_cast(recast * ((10000.0f - haste) / 10000.0f)); + int32 hasteMagic = std::clamp(PEntity->getMod(Mod::HASTE_MAGIC), -10000, 4375); // 43.75% cap -- handle 100% slow for weakness + int32 hasteGear = std::clamp(PEntity->getMod(Mod::HASTE_GEAR), -2500, 2500); // 25% + int32 haste = hasteMagic + hasteGear; + recast = static_cast(recast * ((10000.0f - haste) / 10000.0f)); if (PSpell->getSpellGroup() == SPELLGROUP_SONG) {