[Spells] Implemented SPA 122 SE_ReduceSkill (#4234)

* Implement SPA122 v1

* Implemented SPA 122 ReduceSkill

SE_ReduceSkill SPA 122	 base: skill id, limit: none, max: none, formula: % skill is reduced (positive)

* Implemented SPA 122 Reduce Skill

remove incorrect SPA addition

* Break out multiple lines

* reformatted

reformatted

---------

Co-authored-by: Akkadius <akkadius1@gmail.com>
This commit is contained in:
KayenEQ
2024-05-04 19:11:12 -04:00
committed by GitHub
parent 758859eea6
commit a71ad416b4
6 changed files with 56 additions and 2 deletions
+19
View File
@@ -2789,6 +2789,25 @@ void Mob::ApplySpellsBonuses(uint16 spell_id, uint8 casterlevel, StatBonuses *ne
break;
}
case SE_ReduceSkill: {
// Bad data or unsupported new skill
if (spells[spell_id].base_value[i] > EQ::skills::HIGHEST_SKILL) {
break;
}
//cap skill reducation at 100%
uint32 skill_reducation_percent = spells[spell_id].formula[i];
if (spells[spell_id].formula[i] > 100) {
skill_reducation_percent = 100;
}
if (spells[spell_id].base_value[i] <= EQ::skills::HIGHEST_SKILL) {
if (new_bonus->ReduceSkill[spells[spell_id].base_value[i]] < skill_reducation_percent) {
new_bonus->ReduceSkill[spells[spell_id].base_value[i]] = skill_reducation_percent;
}
}
break;
}
case SE_StunResist:
{
if(new_bonus->StunResist < effect_value)