From af6d344e12b6a3fe837a4bc746811a10f55c7bfb Mon Sep 17 00:00:00 2001 From: Logan Date: Fri, 3 Sep 2021 18:15:24 -0700 Subject: [PATCH] [Mods] Added Hastev3Cap (#1506) * Added Hastev3Cap * Added Hastev3Cap rule --- common/ruletypes.h | 1 + zone/client_mods.cpp | 7 ++++++- zone/mob.cpp | 13 +++++++++---- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/common/ruletypes.h b/common/ruletypes.h index a86764570..906b9d867 100644 --- a/common/ruletypes.h +++ b/common/ruletypes.h @@ -91,6 +91,7 @@ RULE_INT(Character, ItemDSMitigationCap, 50, "Limit on damageshield mitigation g RULE_INT(Character, ItemEnduranceRegenCap, 15, "Limit on endurance regeneration granted by items") RULE_INT(Character, ItemExtraDmgCap, 150, "Cap for bonuses to melee skills like Bash, Frenzy, etc.") RULE_INT(Character, HasteCap, 100, "Haste cap for non-v3(over haste) haste") +RULE_INT(Character, Hastev3Cap, 25, "Haste cap for v3(over haste) haste") RULE_INT(Character, SkillUpModifier, 100, "The probability for a skill-up is multiplied by value/100") RULE_BOOL(Character, SharedBankPlat, false, "Shared bank platinum. Off by default to prevent duplication") RULE_BOOL(Character, BindAnywhere, false, "Allows players to bind their soul anywhere in the world") diff --git a/zone/client_mods.cpp b/zone/client_mods.cpp index f51406150..a1eea7154 100644 --- a/zone/client_mods.cpp +++ b/zone/client_mods.cpp @@ -1054,7 +1054,12 @@ int Client::CalcHaste() } // 51+ 25 (despite there being higher spells...), 1-50 10 if (level > 50) { // 51+ - h += spellbonuses.hastetype3 > 25 ? 25 : spellbonuses.hastetype3; + cap = RuleI(Character, Hastev3Cap); + if (spellbonuses.hastetype3 > cap) { + h += cap; + } else { + h += spellbonuses.hastetype3; + } } else { // 1-50 h += spellbonuses.hastetype3 > 10 ? 10 : spellbonuses.hastetype3; diff --git a/zone/mob.cpp b/zone/mob.cpp index 58ac71d21..e46aba587 100644 --- a/zone/mob.cpp +++ b/zone/mob.cpp @@ -3235,11 +3235,16 @@ int Mob::GetHaste() h = cap; // 51+ 25 (despite there being higher spells...), 1-50 10 - if (level > 50) // 51+ - h += spellbonuses.hastetype3 > 25 ? 25 : spellbonuses.hastetype3; - else // 1-50 + if (level > 50) { // 51+ + cap = RuleI(Character, Hastev3Cap); + if (spellbonuses.hastetype3 > cap) { + h += cap; + } else { + h += spellbonuses.hastetype3; + } + } else { // 1-50 h += spellbonuses.hastetype3 > 10 ? 10 : spellbonuses.hastetype3; - + } h += ExtraHaste; //GM granted haste. return 100 + h;