mirror of
https://github.com/EQEmu/Server.git
synced 2026-06-11 03:31:08 +00:00
[Rules] Add Multiplier for Heroic Stats. (#3014)
* initial work * [Rules] Add Multiplier for Heroic Stats. * Add bots * update SendStatsWindow * fix SendStatsWindow
This commit is contained in:
+21
-8
@@ -234,7 +234,7 @@ int32 Client::LevelRegen()
|
||||
int64 Client::CalcHPRegen(bool bCombat)
|
||||
{
|
||||
int64 item_regen = itembonuses.HPRegen; // worn spells and +regen, already capped
|
||||
item_regen += GetHeroicSTA() / 20;
|
||||
item_regen += GetHeroicSTA() * RuleR(Character, HeroicStaminaMultiplier) / 20;
|
||||
|
||||
item_regen += aabonuses.HPRegen;
|
||||
|
||||
@@ -491,7 +491,7 @@ int64 Client::CalcBaseHP()
|
||||
auto base_data = database.GetBaseData(GetLevel(), GetClass());
|
||||
if (base_data) {
|
||||
base_hp += base_data->base_hp + (base_data->hp_factor * stats);
|
||||
base_hp += (GetHeroicSTA() * 10);
|
||||
base_hp += GetHeroicSTA() * RuleR(Character, HeroicStaminaMultiplier) * 10;
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -623,7 +623,9 @@ int64 Client::CalcBaseMana()
|
||||
}
|
||||
auto base_data = database.GetBaseData(GetLevel(), GetClass());
|
||||
if (base_data) {
|
||||
max_m = base_data->base_mana + (ConvertedWisInt * base_data->mana_factor) + (GetHeroicINT() * 10);
|
||||
max_m = base_data->base_mana +
|
||||
(ConvertedWisInt * base_data->mana_factor) +
|
||||
(GetHeroicINT() * RuleR(Character, HeroicIntelligenceMultiplier) * 10);
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -655,7 +657,9 @@ int64 Client::CalcBaseMana()
|
||||
}
|
||||
auto base_data = database.GetBaseData(GetLevel(), GetClass());
|
||||
if (base_data) {
|
||||
max_m = base_data->base_mana + (ConvertedWisInt * base_data->mana_factor) + (GetHeroicWIS() * 10);
|
||||
max_m = base_data->base_mana +
|
||||
(ConvertedWisInt * base_data->mana_factor) +
|
||||
((GetHeroicWIS() * RuleR(Character, HeroicWisdomMultiplier)) * 10);
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -752,10 +756,10 @@ int64 Client::CalcManaRegen(bool bCombat)
|
||||
|
||||
switch (GetCasterClass()) {
|
||||
case 'W':
|
||||
heroic_bonus = GetHeroicWIS();
|
||||
heroic_bonus = GetHeroicWIS() * RuleR(Character, HeroicWisdomMultiplier);
|
||||
break;
|
||||
default:
|
||||
heroic_bonus = GetHeroicINT();
|
||||
heroic_bonus = GetHeroicINT() * RuleR(Character, HeroicIntelligenceMultiplier);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1686,8 +1690,13 @@ int64 Client::CalcBaseEndurance()
|
||||
{
|
||||
int64 base_end = 0;
|
||||
if (ClientVersion() >= EQ::versions::ClientVersion::SoF && RuleB(Character, SoDClientUseSoDHPManaEnd)) {
|
||||
double heroic_stats = (GetHeroicSTR() + GetHeroicSTA() + GetHeroicDEX() + GetHeroicAGI()) / 4.0f;
|
||||
double heroic_str = GetHeroicSTR() * RuleR(Character, HeroicStrengthMultiplier);
|
||||
double heroic_sta = GetHeroicSTA() * RuleR(Character, HeroicStaminaMultiplier);
|
||||
double heroic_dex = GetHeroicDEX() * RuleR(Character, HeroicDexterityMultiplier);
|
||||
double heroic_agi = GetHeroicAGI() * RuleR(Character, HeroicAgilityMultiplier);
|
||||
double heroic_stats = (heroic_str + heroic_sta + heroic_dex + heroic_agi) / 4;
|
||||
double stats = (GetSTR() + GetSTA() + GetDEX() + GetAGI()) / 4.0f;
|
||||
|
||||
if (stats > 201.0f) {
|
||||
stats = 1.25f * (stats - 201.0f) + 352.5f;
|
||||
}
|
||||
@@ -1785,7 +1794,11 @@ int64 Client::CalcEnduranceRegen(bool bCombat)
|
||||
if (encumbered)
|
||||
base += level / -15;
|
||||
|
||||
auto item_bonus = GetHeroicAGI() + GetHeroicDEX() + GetHeroicSTA() + GetHeroicSTR();
|
||||
double heroic_str = GetHeroicSTR() * RuleR(Character, HeroicStrengthMultiplier);
|
||||
double heroic_sta = GetHeroicSTA() * RuleR(Character, HeroicStaminaMultiplier);
|
||||
double heroic_dex = GetHeroicDEX() * RuleR(Character, HeroicDexterityMultiplier);
|
||||
double heroic_agi = GetHeroicAGI() * RuleR(Character, HeroicAgilityMultiplier);
|
||||
int32 item_bonus = heroic_str + heroic_sta + heroic_dex + heroic_agi;
|
||||
item_bonus = item_bonus / 4 / 50;
|
||||
item_bonus += itembonuses.EnduranceRegen; // this is capped already
|
||||
base += item_bonus;
|
||||
|
||||
Reference in New Issue
Block a user