Implemented SPA 482 SE_Skill_Base_Damage_Mod (#1474)

* Implemented SPA 482 SE_Skill_Base_Damage_Mod

Implemented SPA 482 SE_Skill_Base_Damage_Mod

Modifies base melee damage by skill
Base: pct Limit: skill(-1=ALL), max: none

* Update spell_effects.cpp

fix to remove unknown spa message
This commit is contained in:
KayenEQ
2021-07-29 18:55:06 -04:00
committed by GitHub
parent 7e85224202
commit fee8772bb6
5 changed files with 42 additions and 1 deletions
+36
View File
@@ -1177,6 +1177,17 @@ void Mob::ApplyAABonuses(const AA::Rank &rank, StatBonuses *newbon)
break;
}
case SE_Skill_Base_Damage_Mod: {
// Bad data or unsupported new skill
if (base2 > EQ::skills::HIGHEST_SKILL)
break;
if (base2 == ALL_SKILLS)
newbon->DamageModifier3[EQ::skills::HIGHEST_SKILL + 1] += base1;
else
newbon->DamageModifier3[base2] += base1;
break;
}
case SE_SlayUndead: {
if (newbon->SlayUndead[1] < base1)
newbon->SlayUndead[0] = base1; // Rate
@@ -2323,6 +2334,19 @@ void Mob::ApplySpellsBonuses(uint16 spell_id, uint8 casterlevel, StatBonuses *ne
break;
}
case SE_Skill_Base_Damage_Mod:
{
// Bad data or unsupported new skill
if (base2 > EQ::skills::HIGHEST_SKILL)
break;
int skill = base2 == ALL_SKILLS ? EQ::skills::HIGHEST_SKILL + 1 : base2;
if (effect_value < 0 && new_bonus->DamageModifier3[skill] > effect_value)
new_bonus->DamageModifier3[skill] = effect_value;
else if (effect_value > 0 && new_bonus->DamageModifier3[skill] < effect_value)
new_bonus->DamageModifier3[skill] = effect_value;
break;
}
case SE_MinDamageModifier:
{
// Bad data or unsupported new skill
@@ -4242,6 +4266,18 @@ void Mob::NegateSpellsBonuses(uint16 spell_id)
break;
}
case SE_Skill_Base_Damage_Mod:
{
for (int e = 0; e < EQ::skills::HIGHEST_SKILL + 1; e++)
{
spellbonuses.DamageModifier3[e] = effect_value;
aabonuses.DamageModifier3[e] = effect_value;
itembonuses.DamageModifier3[e] = effect_value;
}
break;
}
case SE_MinDamageModifier:
{
for (int e = 0; e < EQ::skills::HIGHEST_SKILL + 1; e++)