mirror of
https://github.com/EQEmu/Server.git
synced 2026-06-11 15:58:36 +00:00
[Cleanup] Make use of std::abs where possible. (#2739)
# Notes - Resolves https://github.com/EQEmu/Server/issues/338
This commit is contained in:
+23
-19
@@ -285,33 +285,37 @@ int64 Mob::GetActDoTDamage(uint16 spell_id, int64 value, Mob* target, bool from_
|
||||
int64 Mob::GetExtraSpellAmt(uint16 spell_id, int64 extra_spell_amt, int64 base_spell_dmg)
|
||||
{
|
||||
if (RuleB(Spells, FlatItemExtraSpellAmt)) {
|
||||
if (RuleB(Spells, ItemExtraSpellAmtCalcAsPercent))
|
||||
return abs(base_spell_dmg)*extra_spell_amt/100;
|
||||
else
|
||||
if (RuleB(Spells, ItemExtraSpellAmtCalcAsPercent)) {
|
||||
return std::abs(base_spell_dmg) * extra_spell_amt / 100;
|
||||
} else {
|
||||
return extra_spell_amt;
|
||||
}
|
||||
}
|
||||
|
||||
int total_cast_time = 0;
|
||||
|
||||
if (spells[spell_id].recast_time >= spells[spell_id].recovery_time)
|
||||
total_cast_time = spells[spell_id].recast_time + spells[spell_id].cast_time;
|
||||
else
|
||||
if (spells[spell_id].recast_time >= spells[spell_id].recovery_time) {
|
||||
total_cast_time = spells[spell_id].recast_time + spells[spell_id].cast_time;
|
||||
} else {
|
||||
total_cast_time = spells[spell_id].recovery_time + spells[spell_id].cast_time;
|
||||
|
||||
if (total_cast_time > 0 && total_cast_time <= 2500)
|
||||
extra_spell_amt = extra_spell_amt*25/100;
|
||||
else if (total_cast_time > 2500 && total_cast_time < 7000)
|
||||
extra_spell_amt = extra_spell_amt*(167*((total_cast_time - 1000)/1000)) / 1000;
|
||||
else
|
||||
extra_spell_amt = extra_spell_amt * total_cast_time / 7000;
|
||||
|
||||
//Confirmed with parsing 10/9/21 ~Kayen
|
||||
if (extra_spell_amt * 2 > abs(base_spell_dmg)) {
|
||||
extra_spell_amt = abs(base_spell_dmg) / 2;
|
||||
}
|
||||
|
||||
if (RuleB(Spells, ItemExtraSpellAmtCalcAsPercent))
|
||||
return abs(base_spell_dmg)*extra_spell_amt/100;
|
||||
if (total_cast_time > 0 && total_cast_time <= 2500) {
|
||||
extra_spell_amt = extra_spell_amt * 25 / 100;
|
||||
} else if (total_cast_time > 2500 && total_cast_time < 7000) {
|
||||
extra_spell_amt = extra_spell_amt * (167 * ((total_cast_time - 1000) / 1000)) / 1000;
|
||||
} else {
|
||||
extra_spell_amt = extra_spell_amt * total_cast_time / 7000;
|
||||
}
|
||||
|
||||
//Confirmed with parsing 10/9/21 ~Kayen
|
||||
if (extra_spell_amt * 2 > std::abs(base_spell_dmg)) {
|
||||
extra_spell_amt = std::abs(base_spell_dmg) / 2;
|
||||
}
|
||||
|
||||
if (RuleB(Spells, ItemExtraSpellAmtCalcAsPercent)) {
|
||||
return std::abs(base_spell_dmg) * extra_spell_amt / 100;
|
||||
}
|
||||
|
||||
return extra_spell_amt;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user