[Spells] Implemented SPA 504 and 506 (#1488)

* Implemented SPA 504 and 506

 SE_Damage_Taken_Position_Amt	506 // implemented - modify melee damage by amt if dmg taken from Front or Behind

SE_Melee_Damage_Position_Amt	504 // implemented - modify melee damage by amt if done from Front or Behind

* fix, description updates

* Update spdat.h
This commit is contained in:
KayenEQ
2021-08-10 15:46:52 -04:00
committed by GitHub
parent 51ad6d65dc
commit 416fadd554
7 changed files with 135 additions and 24 deletions
+70 -12
View File
@@ -1545,6 +1545,26 @@ void Mob::ApplyAABonuses(const AA::Rank &rank, StatBonuses *newbon)
break;
}
case SE_Damage_Taken_Position_Amt:
{
//Mitigate if damage taken from behind base2 = 0, from front base2 = 1
if (base2 < 0 || base2 > 2)
break;
newbon->Damage_Taken_Position_Amt[base2] += base1;
break;
}
case SE_Melee_Damage_Position_Amt:
{
//Mitigate if damage taken from behind base2 = 0, from front base2 = 1
if (base2 < 0 || base2 > 2)
break;
newbon->Melee_Damage_Position_Amt[base2] += base1;
break;
}
case SE_DS_Mitigation_Amount:
newbon->DS_Mitigation_Amount += base1;
break;
@@ -3485,6 +3505,26 @@ void Mob::ApplySpellsBonuses(uint16 spell_id, uint8 casterlevel, StatBonuses *ne
break;
}
case SE_Damage_Taken_Position_Amt:
{
//Mitigate if damage taken from behind base2 = 0, from front base2 = 1
if (base2 < 0 || base2 > 2)
break;
new_bonus->Damage_Taken_Position_Amt[base2] += effect_value;
break;
}
case SE_Melee_Damage_Position_Amt:
{
//Mitigate if damage taken from behind base2 = 0, from front base2 = 1
if (base2 < 0 || base2 > 2)
break;
new_bonus->Melee_Damage_Position_Amt[base2] += effect_value;
break;
}
case SE_DS_Mitigation_Amount:
new_bonus->DS_Mitigation_Amount += effect_value;
break;
@@ -5121,21 +5161,39 @@ void Mob::NegateSpellsBonuses(uint16 spell_id)
break;
case SE_Melee_Damage_Position_Mod:
spellbonuses.Melee_Damage_Position_Mod[SBIndex::POSITIONAL_DAMAGE_MOD] = effect_value;
aabonuses.Melee_Damage_Position_Mod[SBIndex::POSITIONAL_DAMAGE_MOD] = effect_value;
itembonuses.Melee_Damage_Position_Mod[SBIndex::POSITIONAL_DAMAGE_MOD] = effect_value;
spellbonuses.Melee_Damage_Position_Mod[SBIndex::POSITIONAL_LOCATION] = effect_value;
aabonuses.Melee_Damage_Position_Mod[SBIndex::POSITIONAL_LOCATION] = effect_value;
itembonuses.Melee_Damage_Position_Mod[SBIndex::POSITIONAL_LOCATION] = effect_value;
spellbonuses.Melee_Damage_Position_Mod[SBIndex::POSITION_BACK] = effect_value;
aabonuses.Melee_Damage_Position_Mod[SBIndex::POSITION_BACK] = effect_value;
itembonuses.Melee_Damage_Position_Mod[SBIndex::POSITION_BACK] = effect_value;
spellbonuses.Melee_Damage_Position_Mod[SBIndex::POSITION_FRONT] = effect_value;
aabonuses.Melee_Damage_Position_Mod[SBIndex::POSITION_FRONT] = effect_value;
itembonuses.Melee_Damage_Position_Mod[SBIndex::POSITION_FRONT] = effect_value;
break;
case SE_Damage_Taken_Position_Mod:
spellbonuses.Damage_Taken_Position_Mod[SBIndex::POSITIONAL_DAMAGE_MOD] = effect_value;
aabonuses.Damage_Taken_Position_Mod[SBIndex::POSITIONAL_DAMAGE_MOD] = effect_value;
itembonuses.Damage_Taken_Position_Mod[SBIndex::POSITIONAL_DAMAGE_MOD] = effect_value;
spellbonuses.Damage_Taken_Position_Mod[SBIndex::POSITIONAL_LOCATION] = effect_value;
aabonuses.Damage_Taken_Position_Mod[SBIndex::POSITIONAL_LOCATION] = effect_value;
itembonuses.Damage_Taken_Position_Mod[SBIndex::POSITIONAL_LOCATION] = effect_value;
spellbonuses.Damage_Taken_Position_Mod[SBIndex::POSITION_BACK] = effect_value;
aabonuses.Damage_Taken_Position_Mod[SBIndex::POSITION_BACK] = effect_value;
itembonuses.Damage_Taken_Position_Mod[SBIndex::POSITION_BACK] = effect_value;
spellbonuses.Damage_Taken_Position_Mod[SBIndex::POSITION_FRONT] = effect_value;
aabonuses.Damage_Taken_Position_Mod[SBIndex::POSITION_FRONT] = effect_value;
itembonuses.Damage_Taken_Position_Mod[SBIndex::POSITION_FRONT] = effect_value;
break;
case SE_Melee_Damage_Position_Amt:
spellbonuses.Melee_Damage_Position_Amt[SBIndex::POSITION_BACK] = effect_value;
aabonuses.Melee_Damage_Position_Amt[SBIndex::POSITION_BACK] = effect_value;
itembonuses.Melee_Damage_Position_Amt[SBIndex::POSITION_BACK] = effect_value;
spellbonuses.Melee_Damage_Position_Amt[SBIndex::POSITION_FRONT] = effect_value;
aabonuses.Melee_Damage_Position_Amt[SBIndex::POSITION_FRONT] = effect_value;
itembonuses.Melee_Damage_Position_Amt[SBIndex::POSITION_FRONT] = effect_value;
break;
case SE_Damage_Taken_Position_Amt:
spellbonuses.Damage_Taken_Position_Amt[SBIndex::POSITION_BACK] = effect_value;
aabonuses.Damage_Taken_Position_Amt[SBIndex::POSITION_BACK] = effect_value;
itembonuses.Damage_Taken_Position_Amt[SBIndex::POSITION_BACK] = effect_value;
spellbonuses.Damage_Taken_Position_Amt[SBIndex::POSITION_FRONT] = effect_value;
aabonuses.Damage_Taken_Position_Amt[SBIndex::POSITION_FRONT] = effect_value;
itembonuses.Damage_Taken_Position_Amt[SBIndex::POSITION_FRONT] = effect_value;
break;