mirror of
https://github.com/EQEmu/Server.git
synced 2026-03-27 10:32:26 +00:00
Consolidate
This commit is contained in:
parent
0ae1a2883d
commit
8746c1845d
149
zone/bonuses.cpp
149
zone/bonuses.cpp
@ -246,26 +246,24 @@ void Mob::ProcessItemCaps()
|
|||||||
|
|
||||||
itembonuses.ATK = std::min(itembonuses.ATK, CalcItemATKCap());
|
itembonuses.ATK = std::min(itembonuses.ATK, CalcItemATKCap());
|
||||||
|
|
||||||
int spell_damage_cap = (
|
if (IsOfClientBotMerc() && itembonuses.SpellDmg > GetStatCap(StatCap::SpellDamage)) {
|
||||||
IsOfClientBot() ?
|
itembonuses.SpellDmg = GetStatCap(StatCap::SpellDamage);
|
||||||
GetStatCap(StatCap::SpellDamage) :
|
|
||||||
RuleI(Character, ItemSpellDmgCap)
|
|
||||||
);
|
|
||||||
if (IsOfClientBotMerc() && itembonuses.SpellDmg > spell_damage_cap) {
|
|
||||||
itembonuses.SpellDmg = spell_damage_cap;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int heal_amount_cap = (
|
if (IsOfClientBotMerc() && itembonuses.HealAmt > GetStatCap(StatCap::HealAmount)) {
|
||||||
IsOfClientBot() ?
|
itembonuses.HealAmt = GetStatCap(StatCap::HealAmount);
|
||||||
GetStatCap(StatCap::HealAmount) :
|
|
||||||
RuleI(Character, ItemHealAmtCap)
|
|
||||||
);
|
|
||||||
if (IsOfClientBotMerc() && itembonuses.HealAmt > heal_amount_cap) {
|
|
||||||
itembonuses.HealAmt = heal_amount_cap;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Mob::AddItemBonuses(const EQ::ItemInstance* inst, StatBonuses* b, bool is_augment, bool is_tribute, int recommended_level_override, bool is_ammo_item) {
|
void Mob::AddItemBonuses(
|
||||||
|
const EQ::ItemInstance* inst,
|
||||||
|
StatBonuses* b,
|
||||||
|
bool is_augment,
|
||||||
|
bool is_tribute,
|
||||||
|
int recommended_level_override,
|
||||||
|
bool is_ammo_item
|
||||||
|
)
|
||||||
|
{
|
||||||
if (!inst || !inst->IsClassCommon()) {
|
if (!inst || !inst->IsClassCommon()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -361,138 +359,49 @@ void Mob::AddItemBonuses(const EQ::ItemInstance* inst, StatBonuses* b, bool is_a
|
|||||||
b->ManaRegen += CalcItemBonus(item->ManaRegen);
|
b->ManaRegen += CalcItemBonus(item->ManaRegen);
|
||||||
b->EnduranceRegen += CalcItemBonus(item->EnduranceRegen);
|
b->EnduranceRegen += CalcItemBonus(item->EnduranceRegen);
|
||||||
|
|
||||||
int accuracy_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::Accuracy) :
|
|
||||||
RuleI(Character, ItemAccuracyCap)
|
|
||||||
);
|
|
||||||
|
|
||||||
int attack_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::Attack) :
|
|
||||||
RuleI(Character, ItemATKCap)
|
|
||||||
);
|
|
||||||
|
|
||||||
int avoidance_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::Avoidance) :
|
|
||||||
RuleI(Character, ItemAvoidanceCap)
|
|
||||||
);
|
|
||||||
|
|
||||||
int clairvoyance_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::Clairvoyance) :
|
|
||||||
RuleI(Character, ItemClairvoyanceCap)
|
|
||||||
);
|
|
||||||
|
|
||||||
int combat_effects_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::CombatEffects) :
|
|
||||||
RuleI(Character, ItemCombatEffectsCap)
|
|
||||||
);
|
|
||||||
|
|
||||||
int damage_shield_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::DamageShield) :
|
|
||||||
RuleI(Character, ItemDamageShieldCap)
|
|
||||||
);
|
|
||||||
|
|
||||||
int dot_shielding_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::DOTShielding) :
|
|
||||||
RuleI(Character, ItemDoTShieldingCap)
|
|
||||||
);
|
|
||||||
|
|
||||||
int dsmitigation_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::DSMitigation) :
|
|
||||||
RuleI(Character, ItemDSMitigationCap)
|
|
||||||
);
|
|
||||||
|
|
||||||
int heal_amount_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::HealAmount) :
|
|
||||||
RuleI(Character, ItemHealAmtCap)
|
|
||||||
);
|
|
||||||
|
|
||||||
int shielding_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::Shielding) :
|
|
||||||
RuleI(Character, ItemShieldingCap)
|
|
||||||
);
|
|
||||||
|
|
||||||
int spell_damage_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::SpellDamage) :
|
|
||||||
RuleI(Character, ItemSpellDmgCap)
|
|
||||||
);
|
|
||||||
|
|
||||||
int spell_shielding_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::SpellShielding) :
|
|
||||||
RuleI(Character, ItemSpellShieldingCap)
|
|
||||||
);
|
|
||||||
|
|
||||||
int strikethrough_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::Strikethrough) :
|
|
||||||
RuleI(Character, ItemStrikethroughCap)
|
|
||||||
);
|
|
||||||
|
|
||||||
int stun_resist_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::StunResist) :
|
|
||||||
RuleI(Character, ItemStunResistCap)
|
|
||||||
);
|
|
||||||
|
|
||||||
// These have rule-configured caps.
|
// These have rule-configured caps.
|
||||||
b->ATK = CalcCappedItemBonus(
|
b->ATK = CalcCappedItemBonus(
|
||||||
b->ATK,
|
b->ATK,
|
||||||
item->Attack,
|
item->Attack,
|
||||||
(
|
(
|
||||||
attack_cap +
|
GetStatCap(StatCap::Attack) +
|
||||||
itembonuses.ItemATKCap +
|
itembonuses.ItemATKCap +
|
||||||
spellbonuses.ItemATKCap +
|
spellbonuses.ItemATKCap +
|
||||||
aabonuses.ItemATKCap
|
aabonuses.ItemATKCap
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
b->DamageShield = CalcCappedItemBonus(b->DamageShield, item->DamageShield, damage_shield_cap);
|
b->AvoidMeleeChance = CalcCappedItemBonus(b->AvoidMeleeChance, item->Avoidance, GetStatCap(StatCap::Avoidance));
|
||||||
b->SpellShield = CalcCappedItemBonus(b->SpellShield, item->SpellShield, spell_shielding_cap);
|
b->Clairvoyance = CalcCappedItemBonus(b->Clairvoyance, item->Clairvoyance, GetStatCap(StatCap::Clairvoyance));
|
||||||
b->MeleeMitigation = CalcCappedItemBonus(b->MeleeMitigation, item->Shielding, shielding_cap);
|
b->DamageShield = CalcCappedItemBonus(b->DamageShield, item->DamageShield, GetStatCap(StatCap::DamageShield));
|
||||||
b->StunResist = CalcCappedItemBonus(b->StunResist, item->StunResist, stun_resist_cap);
|
b->DoTShielding = CalcCappedItemBonus(b->DoTShielding, item->DotShielding, GetStatCap(StatCap::DOTShielding));
|
||||||
b->StrikeThrough = CalcCappedItemBonus(b->StrikeThrough, item->StrikeThrough, strikethrough_cap);
|
b->DSMitigation = CalcCappedItemBonus(b->DSMitigation, item->DSMitigation, GetStatCap(StatCap::DSMitigation));
|
||||||
b->AvoidMeleeChance = CalcCappedItemBonus(b->AvoidMeleeChance, item->Avoidance, avoidance_cap);
|
b->HealAmt = CalcCappedItemBonus(b->HealAmt, item->HealAmt, GetStatCap(StatCap::HealAmount));
|
||||||
b->HitChance = CalcCappedItemBonus(b->HitChance, item->Accuracy, accuracy_cap);
|
b->HitChance = CalcCappedItemBonus(b->HitChance, item->Accuracy, GetStatCap(StatCap::Accuracy));
|
||||||
b->ProcChance = CalcCappedItemBonus(b->ProcChance, item->CombatEffects, combat_effects_cap);
|
b->MeleeMitigation = CalcCappedItemBonus(b->MeleeMitigation, item->Shielding, GetStatCap(StatCap::Shielding));
|
||||||
b->DoTShielding = CalcCappedItemBonus(b->DoTShielding, item->DotShielding, dot_shielding_cap);
|
b->ProcChance = CalcCappedItemBonus(b->ProcChance, item->CombatEffects, GetStatCap(StatCap::CombatEffects));
|
||||||
b->HealAmt = CalcCappedItemBonus(b->HealAmt, item->HealAmt, heal_amount_cap);
|
b->SpellDmg = CalcCappedItemBonus(b->SpellDmg, item->SpellDmg, GetStatCap(StatCap::SpellDamage));
|
||||||
b->SpellDmg = CalcCappedItemBonus(b->SpellDmg, item->SpellDmg, spell_damage_cap);
|
b->SpellShield = CalcCappedItemBonus(b->SpellShield, item->SpellShield, GetStatCap(StatCap::SpellShielding));
|
||||||
b->Clairvoyance = CalcCappedItemBonus(b->Clairvoyance, item->Clairvoyance, clairvoyance_cap);
|
b->StrikeThrough = CalcCappedItemBonus(b->StrikeThrough, item->StrikeThrough, GetStatCap(StatCap::Strikethrough));
|
||||||
b->DSMitigation = CalcCappedItemBonus(b->DSMitigation, item->DSMitigation, dsmitigation_cap);
|
b->StunResist = CalcCappedItemBonus(b->StunResist, item->StunResist, GetStatCap(StatCap::StunResist));
|
||||||
|
|
||||||
if (b->haste < item->Haste) {
|
if (b->haste < item->Haste) {
|
||||||
b->haste = item->Haste;
|
b->haste = item->Haste;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item->ExtraDmgAmt != 0 && item->ExtraDmgSkill <= EQ::skills::HIGHEST_SKILL) {
|
if (item->ExtraDmgAmt != 0 && item->ExtraDmgSkill <= EQ::skills::HIGHEST_SKILL) {
|
||||||
int extra_damage_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::ExtraDamage) :
|
|
||||||
RuleI(Character, ItemExtraDmgCap)
|
|
||||||
);
|
|
||||||
if (item->ExtraDmgSkill == ALL_SKILLS) {
|
if (item->ExtraDmgSkill == ALL_SKILLS) {
|
||||||
for (const auto &skill_id: EQ::skills::GetExtraDamageSkills()) {
|
for (const auto &skill_id: EQ::skills::GetExtraDamageSkills()) {
|
||||||
b->SkillDamageAmount[skill_id] = CalcCappedItemBonus(
|
b->SkillDamageAmount[skill_id] = CalcCappedItemBonus(
|
||||||
b->SkillDamageAmount[skill_id],
|
b->SkillDamageAmount[skill_id],
|
||||||
item->ExtraDmgAmt,
|
item->ExtraDmgAmt,
|
||||||
extra_damage_cap
|
GetStatCap(StatCap::ExtraDamage)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
b->SkillDamageAmount[item->ExtraDmgSkill] = CalcCappedItemBonus(
|
b->SkillDamageAmount[item->ExtraDmgSkill] = CalcCappedItemBonus(
|
||||||
b->SkillDamageAmount[item->ExtraDmgSkill],
|
b->SkillDamageAmount[item->ExtraDmgSkill],
|
||||||
item->ExtraDmgAmt,
|
item->ExtraDmgAmt,
|
||||||
extra_damage_cap
|
GetStatCap(StatCap::ExtraDamage)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
120
zone/mob.cpp
120
zone/mob.cpp
@ -2061,20 +2061,10 @@ void Mob::SendStatsWindow(Client* c, bool use_window)
|
|||||||
for (auto mod2_row_counter = 0; mod2_row_counter < mod2_rows; mod2_row_counter++) {
|
for (auto mod2_row_counter = 0; mod2_row_counter < mod2_rows; mod2_row_counter++) {
|
||||||
switch (mod2_row_counter) {
|
switch (mod2_row_counter) {
|
||||||
case 0: {
|
case 0: {
|
||||||
int avoidance_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::Avoidance) :
|
|
||||||
RuleI(Character, ItemAvoidanceCap)
|
|
||||||
);
|
|
||||||
int combat_effects_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::CombatEffects) :
|
|
||||||
RuleI(Character, ItemCombatEffectsCap)
|
|
||||||
);
|
|
||||||
mod2a_name = "Avoidance";
|
mod2a_name = "Avoidance";
|
||||||
mod2b_name = "Combat Effects";
|
mod2b_name = "Combat Effects";
|
||||||
mod2a_cap = Strings::Commify(avoidance_cap);
|
mod2a_cap = Strings::Commify(GetStatCap(StatCap::Avoidance));
|
||||||
mod2b_cap = Strings::Commify(combat_effects_cap);
|
mod2b_cap = Strings::Commify(GetStatCap(StatCap::CombatEffects));
|
||||||
|
|
||||||
if (IsBot()) {
|
if (IsBot()) {
|
||||||
mod2a = Strings::Commify(CastToBot()->GetAvoidance());
|
mod2a = Strings::Commify(CastToBot()->GetAvoidance());
|
||||||
@ -2091,20 +2081,10 @@ void Mob::SendStatsWindow(Client* c, bool use_window)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 1: {
|
case 1: {
|
||||||
int accuracy_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::Accuracy) :
|
|
||||||
RuleI(Character, ItemAccuracyCap)
|
|
||||||
);
|
|
||||||
int strikethrough_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::Strikethrough) :
|
|
||||||
RuleI(Character, ItemStrikethroughCap)
|
|
||||||
);
|
|
||||||
mod2a_name = "Accuracy";
|
mod2a_name = "Accuracy";
|
||||||
mod2b_name = "Strikethrough";
|
mod2b_name = "Strikethrough";
|
||||||
mod2a_cap = Strings::Commify(accuracy_cap);
|
mod2a_cap = Strings::Commify(GetStatCap(StatCap::Accuracy));
|
||||||
mod2b_cap = Strings::Commify(strikethrough_cap);
|
mod2b_cap = Strings::Commify(GetStatCap(StatCap::Strikethrough));
|
||||||
|
|
||||||
if (IsBot()) {
|
if (IsBot()) {
|
||||||
mod2a = Strings::Commify(CastToBot()->GetAccuracy());
|
mod2a = Strings::Commify(CastToBot()->GetAccuracy());
|
||||||
@ -2121,20 +2101,10 @@ void Mob::SendStatsWindow(Client* c, bool use_window)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 2: {
|
case 2: {
|
||||||
int shielding_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::Shielding) :
|
|
||||||
RuleI(Character, ItemShieldingCap)
|
|
||||||
);
|
|
||||||
int spell_shielding_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::SpellShielding) :
|
|
||||||
RuleI(Character, ItemSpellShieldingCap)
|
|
||||||
);
|
|
||||||
mod2a_name = "Shielding";
|
mod2a_name = "Shielding";
|
||||||
mod2b_name = "Spell Shielding";
|
mod2b_name = "Spell Shielding";
|
||||||
mod2a_cap = Strings::Commify(shielding_cap);
|
mod2a_cap = Strings::Commify(GetStatCap(StatCap::Shielding));
|
||||||
mod2b_cap = Strings::Commify(spell_shielding_cap);
|
mod2b_cap = Strings::Commify(GetStatCap(StatCap::SpellShielding));
|
||||||
|
|
||||||
if (IsBot()) {
|
if (IsBot()) {
|
||||||
mod2a = Strings::Commify(CastToBot()->GetShielding());
|
mod2a = Strings::Commify(CastToBot()->GetShielding());
|
||||||
@ -2152,20 +2122,10 @@ void Mob::SendStatsWindow(Client* c, bool use_window)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 3: {
|
case 3: {
|
||||||
int dot_shielding_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::DOTShielding) :
|
|
||||||
RuleI(Character, ItemDoTShieldingCap)
|
|
||||||
);
|
|
||||||
int stun_resist_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::StunResist) :
|
|
||||||
RuleI(Character, ItemStunResistCap)
|
|
||||||
);
|
|
||||||
mod2a_name = "Stun Resist";
|
mod2a_name = "Stun Resist";
|
||||||
mod2b_name = "DOT Shielding";
|
mod2b_name = "DOT Shielding";
|
||||||
mod2a_cap = Strings::Commify(stun_resist_cap);
|
mod2a_cap = Strings::Commify(GetStatCap(StatCap::DOTShielding));
|
||||||
mod2b_cap = Strings::Commify(dot_shielding_cap);
|
mod2b_cap = Strings::Commify(GetStatCap(StatCap::StunResist));
|
||||||
|
|
||||||
if (IsBot()) {
|
if (IsBot()) {
|
||||||
mod2a = Strings::Commify(CastToBot()->GetStunResist());
|
mod2a = Strings::Commify(CastToBot()->GetStunResist());
|
||||||
@ -2401,11 +2361,6 @@ void Mob::SendStatsWindow(Client* c, bool use_window)
|
|||||||
|
|
||||||
final_string += DialogueWindow::Break(1);
|
final_string += DialogueWindow::Break(1);
|
||||||
|
|
||||||
int attack_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::Attack) :
|
|
||||||
RuleI(Character, ItemATKCap)
|
|
||||||
);
|
|
||||||
// Attack 2
|
// Attack 2
|
||||||
final_string += fmt::format(
|
final_string += fmt::format(
|
||||||
"Offense: {}{}{}{}",
|
"Offense: {}{}{}{}",
|
||||||
@ -2415,7 +2370,7 @@ void Mob::SendStatsWindow(Client* c, bool use_window)
|
|||||||
fmt::format(
|
fmt::format(
|
||||||
" | Item: {} / {} | Used: {}",
|
" | Item: {} / {} | Used: {}",
|
||||||
Strings::Commify(itembonuses.ATK),
|
Strings::Commify(itembonuses.ATK),
|
||||||
Strings::Commify(attack_cap),
|
Strings::Commify(GetStatCap(StatCap::Attack)),
|
||||||
Strings::Commify(static_cast<int>(itembonuses.ATK * 1.342))
|
Strings::Commify(static_cast<int>(itembonuses.ATK * 1.342))
|
||||||
) :
|
) :
|
||||||
""
|
""
|
||||||
@ -2462,11 +2417,6 @@ void Mob::SendStatsWindow(Client* c, bool use_window)
|
|||||||
|
|
||||||
final_string += DialogueWindow::CenterMessage("Haste");
|
final_string += DialogueWindow::CenterMessage("Haste");
|
||||||
|
|
||||||
int haste_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::Haste) :
|
|
||||||
RuleI(Character, HasteCap)
|
|
||||||
);
|
|
||||||
// Haste Table
|
// Haste Table
|
||||||
const auto& haste_table = DialogueWindow::Table(
|
const auto& haste_table = DialogueWindow::Table(
|
||||||
fmt::format(
|
fmt::format(
|
||||||
@ -2485,7 +2435,7 @@ void Mob::SendStatsWindow(Client* c, bool use_window)
|
|||||||
fmt::format(
|
fmt::format(
|
||||||
"{} ({})",
|
"{} ({})",
|
||||||
IsClient() ? Strings::Commify(CastToClient()->GetHaste()) : Strings::Commify(GetHaste()),
|
IsClient() ? Strings::Commify(CastToClient()->GetHaste()) : Strings::Commify(GetHaste()),
|
||||||
Strings::Commify(haste_cap)
|
Strings::Commify(GetStatCap(StatCap::Haste))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -2520,41 +2470,26 @@ void Mob::SendStatsWindow(Client* c, bool use_window)
|
|||||||
|
|
||||||
// Heal Amount
|
// Heal Amount
|
||||||
if (GetHealAmt()) {
|
if (GetHealAmt()) {
|
||||||
int cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::HealAmount) :
|
|
||||||
RuleI(Character, ItemHealAmtCap)
|
|
||||||
);
|
|
||||||
final_string += fmt::format(
|
final_string += fmt::format(
|
||||||
"Heal Amount: {} / {}{}",
|
"Heal Amount: {} / {}{}",
|
||||||
Strings::Commify(GetHealAmt()),
|
Strings::Commify(GetHealAmt()),
|
||||||
Strings::Commify(cap),
|
Strings::Commify(GetStatCap(StatCap::HealAmount)),
|
||||||
DialogueWindow::Break(1)
|
DialogueWindow::Break(1)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Spell Damage
|
// Spell Damage
|
||||||
if (GetSpellDmg()) {
|
if (GetSpellDmg()) {
|
||||||
int cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::SpellDamage) :
|
|
||||||
RuleI(Character, ItemSpellDmgCap)
|
|
||||||
);
|
|
||||||
final_string += fmt::format(
|
final_string += fmt::format(
|
||||||
"Spell Damage: {} / {}{}",
|
"Spell Damage: {} / {}{}",
|
||||||
Strings::Commify(GetSpellDmg()),
|
Strings::Commify(GetSpellDmg()),
|
||||||
Strings::Commify(cap),
|
Strings::Commify(GetStatCap(StatCap::SpellDamage)),
|
||||||
DialogueWindow::Break(1)
|
DialogueWindow::Break(1)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Damage Shield
|
// Damage Shield
|
||||||
if (itembonuses.DamageShield || spellbonuses.DamageShield) {
|
if (itembonuses.DamageShield || spellbonuses.DamageShield) {
|
||||||
int cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::DamageShield) :
|
|
||||||
RuleI(Character, ItemDamageShieldCap)
|
|
||||||
);
|
|
||||||
final_string += fmt::format(
|
final_string += fmt::format(
|
||||||
"Damage Shield: {}{}{}{}",
|
"Damage Shield: {}{}{}{}",
|
||||||
Strings::Commify(itembonuses.DamageShield + spellbonuses.DamageShield),
|
Strings::Commify(itembonuses.DamageShield + spellbonuses.DamageShield),
|
||||||
@ -2568,7 +2503,7 @@ void Mob::SendStatsWindow(Client* c, bool use_window)
|
|||||||
fmt::format(
|
fmt::format(
|
||||||
" | Item: {} / {}",
|
" | Item: {} / {}",
|
||||||
Strings::Commify(itembonuses.DamageShield),
|
Strings::Commify(itembonuses.DamageShield),
|
||||||
Strings::Commify(cap)
|
Strings::Commify(GetStatCap(StatCap::DamageShield))
|
||||||
) :
|
) :
|
||||||
""
|
""
|
||||||
),
|
),
|
||||||
@ -2579,15 +2514,10 @@ void Mob::SendStatsWindow(Client* c, bool use_window)
|
|||||||
// Clairvoyance
|
// Clairvoyance
|
||||||
const auto clairvoyance = IsBot() ? CastToBot()->GetClair() : CastToClient()->GetClair();
|
const auto clairvoyance = IsBot() ? CastToBot()->GetClair() : CastToClient()->GetClair();
|
||||||
if (clairvoyance) {
|
if (clairvoyance) {
|
||||||
int cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::Clairvoyance) :
|
|
||||||
RuleI(Character, ItemClairvoyanceCap)
|
|
||||||
);
|
|
||||||
final_string += fmt::format(
|
final_string += fmt::format(
|
||||||
"Clairvoyance: {} / {}{}",
|
"Clairvoyance: {} / {}{}",
|
||||||
Strings::Commify(clairvoyance),
|
Strings::Commify(clairvoyance),
|
||||||
Strings::Commify(cap),
|
Strings::Commify(GetStatCap(StatCap::Clairvoyance)),
|
||||||
DialogueWindow::Break(1)
|
DialogueWindow::Break(1)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -2595,15 +2525,10 @@ void Mob::SendStatsWindow(Client* c, bool use_window)
|
|||||||
// Damage Shield Mitigation
|
// Damage Shield Mitigation
|
||||||
const auto ds_mitigation = IsBot() ? CastToBot()->GetDSMit() : CastToClient()->GetDSMit();
|
const auto ds_mitigation = IsBot() ? CastToBot()->GetDSMit() : CastToClient()->GetDSMit();
|
||||||
if (ds_mitigation) {
|
if (ds_mitigation) {
|
||||||
int cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::DSMitigation) :
|
|
||||||
RuleI(Character, ItemDSMitigationCap)
|
|
||||||
);
|
|
||||||
final_string += fmt::format(
|
final_string += fmt::format(
|
||||||
"DS Mitigation: {} / {}{}",
|
"DS Mitigation: {} / {}{}",
|
||||||
Strings::Commify(ds_mitigation),
|
Strings::Commify(ds_mitigation),
|
||||||
Strings::Commify(cap),
|
Strings::Commify(GetStatCap(StatCap::DSMitigation)),
|
||||||
DialogueWindow::Break(1)
|
DialogueWindow::Break(1)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -2632,12 +2557,6 @@ void Mob::SendStatsWindow(Client* c, bool use_window)
|
|||||||
final_string += faction_item_string;
|
final_string += faction_item_string;
|
||||||
}
|
}
|
||||||
|
|
||||||
int damage_shield_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::DamageShield) :
|
|
||||||
RuleI(Character, ItemDamageShieldCap)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (use_window) {
|
if (use_window) {
|
||||||
if (final_string.size() < 4096) {
|
if (final_string.size() < 4096) {
|
||||||
const uint32 popup_buttons = (c->ClientVersion() < EQ::versions::ClientVersion::SoD) ? 0 : 1;
|
const uint32 popup_buttons = (c->ClientVersion() < EQ::versions::ClientVersion::SoD) ? 0 : 1;
|
||||||
@ -2679,7 +2598,7 @@ void Mob::SendStatsWindow(Client* c, bool use_window)
|
|||||||
GetRaceIDName(GetRace()),
|
GetRaceIDName(GetRace()),
|
||||||
GetRace(),
|
GetRace(),
|
||||||
IsBot() ? Strings::Commify(CastToBot()->GetDS()) : Strings::Commify(CastToClient()->GetDS()),
|
IsBot() ? Strings::Commify(CastToBot()->GetDS()) : Strings::Commify(CastToClient()->GetDS()),
|
||||||
Strings::Commify(damage_shield_cap),
|
Strings::Commify(GetStatCap(StatCap::DamageShield)),
|
||||||
GetSize(),
|
GetSize(),
|
||||||
GetRunspeed(),
|
GetRunspeed(),
|
||||||
IsBot() ? static_cast<float>(CastToBot()->CalcCurrentWeight()) / 10.0f : static_cast<float>(CastToClient()->CalcCurrentWeight()) / 10.0f,
|
IsBot() ? static_cast<float>(CastToBot()->CalcCurrentWeight()) / 10.0f : static_cast<float>(CastToClient()->CalcCurrentWeight()) / 10.0f,
|
||||||
@ -2783,17 +2702,12 @@ void Mob::SendStatsWindow(Client* c, bool use_window)
|
|||||||
);
|
);
|
||||||
|
|
||||||
if ((IsClient() && CastToClient()->GetHaste()) || (!IsClient() && GetHaste())) {
|
if ((IsClient() && CastToClient()->GetHaste()) || (!IsClient() && GetHaste())) {
|
||||||
int haste_cap = (
|
|
||||||
IsOfClientBot() ?
|
|
||||||
GetStatCap(StatCap::Haste) :
|
|
||||||
RuleI(Character, HasteCap)
|
|
||||||
);
|
|
||||||
c->Message(
|
c->Message(
|
||||||
Chat::White,
|
Chat::White,
|
||||||
fmt::format(
|
fmt::format(
|
||||||
"Haste: {}/{} (Item: {} + Spell: {} + Over: {})",
|
"Haste: {}/{} (Item: {} + Spell: {} + Over: {})",
|
||||||
IsClient() ? Strings::Commify(CastToClient()->GetHaste()) : Strings::Commify(GetHaste()),
|
IsClient() ? Strings::Commify(CastToClient()->GetHaste()) : Strings::Commify(GetHaste()),
|
||||||
Strings::Commify(haste_cap),
|
Strings::Commify(GetStatCap(StatCap::Haste)),
|
||||||
Strings::Commify(itembonuses.haste),
|
Strings::Commify(itembonuses.haste),
|
||||||
Strings::Commify(spellbonuses.haste + spellbonuses.hastetype2),
|
Strings::Commify(spellbonuses.haste + spellbonuses.hastetype2),
|
||||||
Strings::Commify(spellbonuses.hastetype3 + extra_haste)
|
Strings::Commify(spellbonuses.hastetype3 + extra_haste)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user