[Bug Fix] Limit MeleeMitigationEffect to defender if only client. (#3918)

* [Bug] Limit MeleeMitigationEffect to defender if only client.

* Fix MeleeMitigation to properly Add (Substract due to negative values).

* defender fix
This commit is contained in:
Fryguy 2024-01-08 23:30:29 -05:00 committed by GitHub
parent 46a0cf6b02
commit 97dbf85a4c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -5362,24 +5362,29 @@ void Mob::DoRiposte(Mob *defender)
void Mob::ApplyMeleeDamageMods(uint16 skill, int64 &damage, Mob *defender, ExtraAttackOptions *opts)
{
int64 dmgbonusmod = 0;
int64 damage_bonus_mod = 0;
damage_bonus_mod += GetMeleeDamageMod_SE(skill);
damage_bonus_mod += GetMeleeDmgPositionMod(defender);
dmgbonusmod += GetMeleeDamageMod_SE(skill);
dmgbonusmod += GetMeleeDmgPositionMod(defender);
if (opts)
dmgbonusmod += opts->melee_damage_bonus_flat;
if (opts) {
damage_bonus_mod += opts->melee_damage_bonus_flat;
}
if (defender) {
if (defender->IsOfClientBotMerc() && defender->GetClass() == Class::Warrior) {
dmgbonusmod -= 5;
}
// 168 defensive
dmgbonusmod += (defender->spellbonuses.MeleeMitigationEffect +
defender->itembonuses.MeleeMitigationEffect +
defender->aabonuses.MeleeMitigationEffect);
damage_bonus_mod -= 5;
}
damage += damage * dmgbonusmod / 100;
if (defender->IsOfClientBotMerc()) {
damage_bonus_mod += (
defender->spellbonuses.MeleeMitigationEffect +
defender->itembonuses.MeleeMitigationEffect +
defender->aabonuses.MeleeMitigationEffect
);
}
}
damage += damage * damage_bonus_mod / 100;
}
bool Mob::HasDied() {