diff --git a/common/classes.cpp b/common/classes.cpp index 886412791..693b826b1 100644 --- a/common/classes.cpp +++ b/common/classes.cpp @@ -630,6 +630,20 @@ bool IsINTCasterClass(uint8 class_id) } } +bool IsHeroicINTCasterClass(uint8 class_id) +{ + switch (class_id) { + case NECROMANCER: + case WIZARD: + case MAGICIAN: + case ENCHANTER: + case SHADOWKNIGHT: + return true; + default: + return false; + } +} + bool IsWISCasterClass(uint8 class_id) { switch (class_id) { @@ -642,6 +656,21 @@ bool IsWISCasterClass(uint8 class_id) } } +bool IsHeroicWISCasterClass(uint8 class_id) +{ + switch (class_id) { + case CLERIC: + case DRUID: + case SHAMAN: + case PALADIN: + case BEASTLORD: + case RANGER: + return true; + default: + return false; + } +} + bool IsPlateClass(uint8 class_id) { switch (class_id) { diff --git a/common/classes.h b/common/classes.h index 15481a613..df5dedcd7 100644 --- a/common/classes.h +++ b/common/classes.h @@ -140,7 +140,8 @@ bool IsHybridClass(uint8 class_id); bool IsCasterClass(uint8 class_id); bool IsINTCasterClass(uint8 class_id); bool IsWISCasterClass(uint8 class_id); - +bool IsHeroicINTCasterClass(uint8 class_id); +bool IsHeroicWISCasterClass(uint8 class_id); bool IsPlateClass(uint8 class_id); bool IsChainClass(uint8 class_id); bool IsLeatherClass(uint8 class_id); diff --git a/zone/bonuses.cpp b/zone/bonuses.cpp index d25adc1d2..438d0022f 100644 --- a/zone/bonuses.cpp +++ b/zone/bonuses.cpp @@ -5948,26 +5948,26 @@ void Mob::CalcHeroicBonuses(StatBonuses* newbon) void Mob::SetHeroicWisBonuses(StatBonuses* n) { - n->heroic_max_mana += IsWISCasterClass(GetClass()) ? GetHeroicWIS() * RuleR(Character, HeroicWisdomMultiplier) * 10 : 0; - n->heroic_mana_regen += IsWISCasterClass(GetClass()) ? GetHeroicWIS() * RuleR(Character, HeroicWisdomMultiplier) / 25 : 0; + n->heroic_max_mana += IsHeroicWISCasterClass(GetClass()) ? GetHeroicWIS() * RuleR(Character, HeroicWisdomMultiplier) * 10 : 0; + n->heroic_mana_regen += IsHeroicWISCasterClass(GetClass()) ? GetHeroicWIS() * RuleR(Character, HeroicWisdomMultiplier) / 25 : 0; n->HealAmt += GetHeroicWIS() * RuleR(Character, HeroicWisdomIncreaseHealAmtMultiplier); if (RuleB(Character, HeroicStatsUseDataBucketsToScale)) { - n->heroic_max_mana += IsWISCasterClass(GetClass()) ? GetHeroicWIS() * CheckHeroicBonusesDataBuckets(HeroicBonusBucket::WisMaxMana) * 10 : 0; - n->heroic_mana_regen += IsWISCasterClass(GetClass()) ? GetHeroicWIS() * CheckHeroicBonusesDataBuckets(HeroicBonusBucket::WisManaRegen) / 25 : 0; + n->heroic_max_mana += IsHeroicWISCasterClass(GetClass()) ? GetHeroicWIS() * CheckHeroicBonusesDataBuckets(HeroicBonusBucket::WisMaxMana) * 10 : 0; + n->heroic_mana_regen += IsHeroicWISCasterClass(GetClass()) ? GetHeroicWIS() * CheckHeroicBonusesDataBuckets(HeroicBonusBucket::WisManaRegen) / 25 : 0; n->HealAmt += GetHeroicWIS() * CheckHeroicBonusesDataBuckets(HeroicBonusBucket::WisHealAmt); } } void Mob::SetHeroicIntBonuses(StatBonuses* n) { - n->heroic_max_mana += IsINTCasterClass(GetClass()) ? GetHeroicINT() * RuleR(Character, HeroicIntelligenceMultiplier) * 10 : 0; - n->heroic_mana_regen += IsINTCasterClass(GetClass()) ? GetHeroicINT() * RuleR(Character, HeroicIntelligenceMultiplier) / 25 : 0; + n->heroic_max_mana += IsHeroicINTCasterClass(GetClass()) ? GetHeroicINT() * RuleR(Character, HeroicIntelligenceMultiplier) * 10 : 0; + n->heroic_mana_regen += IsHeroicINTCasterClass(GetClass()) ? GetHeroicINT() * RuleR(Character, HeroicIntelligenceMultiplier) / 25 : 0; n->SpellDmg += GetHeroicINT() * RuleR(Character, HeroicIntelligenceIncreaseSpellDmgMultiplier); if (RuleB(Character, HeroicStatsUseDataBucketsToScale)) { - n->heroic_max_mana += IsINTCasterClass(GetClass()) ? GetHeroicINT() * CheckHeroicBonusesDataBuckets(HeroicBonusBucket::IntMaxMana) * 10 : 0; - n->heroic_mana_regen += IsINTCasterClass(GetClass()) ? GetHeroicINT() * CheckHeroicBonusesDataBuckets(HeroicBonusBucket::IntManaRegen) / 25 : 0; + n->heroic_max_mana += IsHeroicINTCasterClass(GetClass()) ? GetHeroicINT() * CheckHeroicBonusesDataBuckets(HeroicBonusBucket::IntMaxMana) * 10 : 0; + n->heroic_mana_regen += IsHeroicINTCasterClass(GetClass()) ? GetHeroicINT() * CheckHeroicBonusesDataBuckets(HeroicBonusBucket::IntManaRegen) / 25 : 0; n->SpellDmg += GetHeroicINT() * CheckHeroicBonusesDataBuckets(HeroicBonusBucket::IntSpellDmg); } }