[Spells] SPA69 TotalHP can be used in Worn Slot, Fixes/Updates to Max HP related variables. (#4244)

* Allow SPA69 to work on worn effects.

Update to allow SPA69 to work on worn effects which the client accepts and calculates properly.

Updated spell effect related Max HP change variables. 1) We had stat bonuses defined that did same function. Without updating would have had to create another variable for above to work. 2) Negate bonuses spell effect end up negating item HPs. which is not intended since using same variable for items and spells.

* HP variable updates

fixes

* HP variable updates

fixes

* HP variable updates

fixes

* Update mob.cpp
This commit is contained in:
KayenEQ
2024-04-15 06:06:17 -04:00
committed by GitHub
parent 1bc1f71254
commit 989d199908
10 changed files with 41 additions and 29 deletions
+10 -11
View File
@@ -938,7 +938,7 @@ void Mob::ApplyAABonuses(const AA::Rank &rank, StatBonuses *newbon)
case SE_IncreaseRange:
break;
case SE_MaxHPChange:
newbon->MaxHP += base_value;
newbon->PercentMaxHPChange += base_value;
break;
case SE_Packrat:
newbon->Packrat += base_value;
@@ -997,7 +997,7 @@ void Mob::ApplyAABonuses(const AA::Rank &rank, StatBonuses *newbon)
newbon->BuffSlotIncrease += base_value;
break;
case SE_TotalHP:
newbon->HP += base_value;
newbon->FlatMaxHPChange += base_value;
break;
case SE_StunResist:
newbon->StunResist += base_value;
@@ -2237,7 +2237,7 @@ void Mob::ApplySpellsBonuses(uint16 spell_id, uint8 casterlevel, StatBonuses *ne
case SE_TotalHP:
{
new_bonus->HP += effect_value;
new_bonus->FlatMaxHPChange += effect_value;
break;
}
@@ -2919,7 +2919,7 @@ void Mob::ApplySpellsBonuses(uint16 spell_id, uint8 casterlevel, StatBonuses *ne
}
case SE_MaxHPChange:
new_bonus->MaxHPChange += effect_value;
new_bonus->PercentMaxHPChange += effect_value;
break;
case SE_EndurancePool:
@@ -4515,9 +4515,9 @@ void Mob::NegateSpellEffectBonuses(uint16 spell_id)
break;
case SE_TotalHP:
if (negate_spellbonus) { spellbonuses.HP = effect_value; }
if (negate_aabonus) { aabonuses.HP = effect_value; }
if (negate_itembonus) { itembonuses.HP = effect_value; }
if (negate_spellbonus) { spellbonuses.FlatMaxHPChange = effect_value; }
if (negate_aabonus) { aabonuses.FlatMaxHPChange = effect_value; }
if (negate_itembonus) { itembonuses.FlatMaxHPChange = effect_value; }
break;
case SE_ManaRegen_v2:
@@ -4999,10 +4999,9 @@ void Mob::NegateSpellEffectBonuses(uint16 spell_id)
}
case SE_MaxHPChange:
if (negate_spellbonus) { spellbonuses.MaxHPChange = effect_value; }
if (negate_aabonus) { aabonuses.MaxHPChange = effect_value; }
if (negate_aabonus) { aabonuses.MaxHP = effect_value; }
if (negate_itembonus) { itembonuses.MaxHPChange = effect_value; }
if (negate_spellbonus) { spellbonuses.PercentMaxHPChange = effect_value; }
if (negate_aabonus) { aabonuses.PercentMaxHPChange = effect_value; }
if (negate_itembonus) { itembonuses.PercentMaxHPChange = effect_value; }
break;
case SE_EndurancePool: