[Bug Fix] Melee Life tap overflowing and causing damage (#1773)

* Update mob.cpp

* Update mob.cpp
This commit is contained in:
KayenEQ 2021-11-18 09:10:02 -05:00 committed by GitHub
parent 3efd9c7f60
commit fac0d795f2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -5199,19 +5199,21 @@ int16 Mob::GetPositionalDmgAmt(Mob* defender)
void Mob::MeleeLifeTap(int32 damage) { void Mob::MeleeLifeTap(int32 damage) {
int32 lifetap_amt = 0; int32 lifetap_amt = 0;
lifetap_amt = spellbonuses.MeleeLifetap + itembonuses.MeleeLifetap + aabonuses.MeleeLifetap int32 melee_lifetap_mod = spellbonuses.MeleeLifetap + itembonuses.MeleeLifetap + aabonuses.MeleeLifetap
+ spellbonuses.Vampirism + itembonuses.Vampirism + aabonuses.Vampirism; + spellbonuses.Vampirism + itembonuses.Vampirism + aabonuses.Vampirism;
if(lifetap_amt && damage > 0){ if(melee_lifetap_mod && damage > 0){
lifetap_amt = damage * lifetap_amt / 100; lifetap_amt = damage * (static_cast<float>(melee_lifetap_mod) / 100.0f);
LogCombat("Melee lifetap healing for [{}] damage", damage); LogCombat("Melee lifetap healing [{}] points of damage with modifier of [{}] ", lifetap_amt, melee_lifetap_mod);
if (lifetap_amt > 0) if (lifetap_amt >= 0) {
HealDamage(lifetap_amt); //Heal self for modified damage amount. HealDamage(lifetap_amt); //Heal self for modified damage amount.
else }
else {
Damage(this, -lifetap_amt, 0, EQ::skills::SkillEvocation, false); //Dmg self for modified damage amount. Damage(this, -lifetap_amt, 0, EQ::skills::SkillEvocation, false); //Dmg self for modified damage amount.
} }
}
} }
bool Mob::TryDoubleMeleeRoundEffect() { bool Mob::TryDoubleMeleeRoundEffect() {