mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-16 22:58:34 +00:00
[Spells] Implemented SPA 489 SE_Worn_Endurance_Regen_Cap (#1493)
Implemented SE_Worn_Endurance_Regen_Cap 489 modify worn item regen cap base: amt, limit: none, max: none Also added support to allow item mana regen cap to check item and spell bonuses.
This commit is contained in:
@@ -1628,6 +1628,9 @@ void Mob::ApplyAABonuses(const AA::Rank &rank, StatBonuses *newbon)
|
||||
break;
|
||||
}
|
||||
|
||||
case SE_Worn_Endurance_Regen_Cap:
|
||||
newbon->ItemEnduranceRegenCap += base1;
|
||||
break;
|
||||
|
||||
// to do
|
||||
case SE_PetDiscipline:
|
||||
@@ -3541,6 +3544,14 @@ void Mob::ApplySpellsBonuses(uint16 spell_id, uint8 casterlevel, StatBonuses *ne
|
||||
new_bonus->Pet_Add_Atk += effect_value;
|
||||
break;
|
||||
|
||||
case SE_Worn_Endurance_Regen_Cap:
|
||||
new_bonus->ItemEnduranceRegenCap += effect_value;
|
||||
break;
|
||||
|
||||
case SE_ItemManaRegenCapIncrease:
|
||||
new_bonus->ItemManaRegenCap += effect_value;
|
||||
break;
|
||||
|
||||
case SE_Weapon_Stance: {
|
||||
if (IsValidSpell(effect_value)) { //base1 is the spell_id of buff
|
||||
if (base2 <= WEAPON_STANCE_TYPE_MAX) { //0=2H, 1=Shield, 2=DW
|
||||
@@ -4925,6 +4936,12 @@ void Mob::NegateSpellsBonuses(uint16 spell_id)
|
||||
itembonuses.ItemHPRegenCap = effect_value;
|
||||
break;
|
||||
|
||||
case SE_Worn_Endurance_Regen_Cap:
|
||||
spellbonuses.ItemEnduranceRegenCap = effect_value;
|
||||
aabonuses.ItemEnduranceRegenCap = effect_value;
|
||||
itembonuses.ItemEnduranceRegenCap = effect_value;
|
||||
break;
|
||||
|
||||
case SE_OffhandRiposteFail:
|
||||
spellbonuses.OffhandRiposteFail = effect_value;
|
||||
aabonuses.OffhandRiposteFail = effect_value;
|
||||
|
||||
@@ -781,7 +781,7 @@ int32 Client::CalcManaRegen(bool bCombat)
|
||||
|
||||
int32 Client::CalcManaRegenCap()
|
||||
{
|
||||
int32 cap = RuleI(Character, ItemManaRegenCap) + aabonuses.ItemManaRegenCap;
|
||||
int32 cap = RuleI(Character, ItemManaRegenCap) + aabonuses.ItemManaRegenCap + itembonuses.ItemManaRegenCap + spellbonuses.ItemManaRegenCap;
|
||||
return (cap * RuleI(Character, ManaRegenMultiplier) / 100);
|
||||
}
|
||||
|
||||
@@ -1751,7 +1751,7 @@ int32 Client::CalcEnduranceRegen(bool bCombat)
|
||||
|
||||
int32 Client::CalcEnduranceRegenCap()
|
||||
{
|
||||
int cap = RuleI(Character, ItemEnduranceRegenCap);
|
||||
int cap = RuleI(Character, ItemEnduranceRegenCap) + aabonuses.ItemEnduranceRegenCap + itembonuses.ItemEnduranceRegenCap + spellbonuses.ItemEnduranceRegenCap;
|
||||
return (cap * RuleI(Character, EnduranceRegenMultiplier) / 100);
|
||||
}
|
||||
|
||||
|
||||
@@ -549,6 +549,7 @@ struct StatBonuses {
|
||||
int32 DS_Mitigation_Percentage; // base = percent amt of DS mitigation. Negative value to reduce
|
||||
int32 Pet_Crit_Melee_Damage_Pct_Owner; // base = percent mod for pet critcal damage from owner
|
||||
int32 Pet_Add_Atk; // base = Pet ATK bonus from owner
|
||||
int32 ItemEnduranceRegenCap; // modify endurance regen cap
|
||||
int32 WeaponStance[WEAPON_STANCE_TYPE_MAX +1];// base = trigger spell id, base2 = 0 is 2h, 1 is shield, 2 is dual wield, [0]spid 2h, [1]spid shield, [2]spid DW
|
||||
|
||||
// AAs
|
||||
|
||||
@@ -3238,8 +3238,8 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial, int level_ove
|
||||
case SE_AddExtraAttackPct_1h_Primary:
|
||||
case SE_AddExtraAttackPct_1h_Secondary:
|
||||
case SE_Skill_Base_Damage_Mod:
|
||||
case SE_Worn_Endurance_Regen_Cap:
|
||||
case SE_Buy_AA_Rank:
|
||||
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user