mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-22 12:18:27 +00:00
[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:
+51
-4
@@ -3865,8 +3865,8 @@ int32 Mob::GetPositionalDmgTaken(Mob *attacker)
|
||||
int back_arc = 0;
|
||||
int total_mod = 0;
|
||||
|
||||
back_arc += itembonuses.Damage_Taken_Position_Mod[SBIndex::POSITIONAL_DAMAGE_MOD] + aabonuses.Damage_Taken_Position_Mod[SBIndex::POSITIONAL_DAMAGE_MOD] + spellbonuses.Damage_Taken_Position_Mod[SBIndex::POSITIONAL_DAMAGE_MOD];
|
||||
front_arc += itembonuses.Damage_Taken_Position_Mod[SBIndex::POSITIONAL_LOCATION] + aabonuses.Damage_Taken_Position_Mod[SBIndex::POSITIONAL_LOCATION] + spellbonuses.Damage_Taken_Position_Mod[SBIndex::POSITIONAL_LOCATION];
|
||||
back_arc += itembonuses.Damage_Taken_Position_Mod[SBIndex::POSITION_BACK] + aabonuses.Damage_Taken_Position_Mod[SBIndex::POSITION_BACK] + spellbonuses.Damage_Taken_Position_Mod[SBIndex::POSITION_BACK];
|
||||
front_arc += itembonuses.Damage_Taken_Position_Mod[SBIndex::POSITION_FRONT] + aabonuses.Damage_Taken_Position_Mod[SBIndex::POSITION_FRONT] + spellbonuses.Damage_Taken_Position_Mod[SBIndex::POSITION_FRONT];
|
||||
|
||||
if (back_arc || front_arc) { //Do they have this bonus?
|
||||
if (attacker->BehindMob(this, attacker->GetX(), attacker->GetY()))//Check if attacker is striking from behind
|
||||
@@ -3883,6 +3883,29 @@ int32 Mob::GetPositionalDmgTaken(Mob *attacker)
|
||||
return total_mod;
|
||||
}
|
||||
|
||||
int32 Mob::GetPositionalDmgTakenAmt(Mob *attacker)
|
||||
{
|
||||
if (!attacker)
|
||||
return 0;
|
||||
|
||||
int front_arc = 0;
|
||||
int back_arc = 0;
|
||||
int total_amt = 0;
|
||||
|
||||
back_arc += itembonuses.Damage_Taken_Position_Amt[SBIndex::POSITION_BACK] + aabonuses.Damage_Taken_Position_Amt[SBIndex::POSITION_BACK] + spellbonuses.Damage_Taken_Position_Amt[SBIndex::POSITION_BACK];
|
||||
front_arc += itembonuses.Damage_Taken_Position_Amt[SBIndex::POSITION_FRONT] + aabonuses.Damage_Taken_Position_Amt[SBIndex::POSITION_FRONT] + spellbonuses.Damage_Taken_Position_Amt[SBIndex::POSITION_FRONT];
|
||||
|
||||
if (back_arc || front_arc) {
|
||||
if (attacker->BehindMob(this, attacker->GetX(), attacker->GetY()))
|
||||
total_amt = back_arc;
|
||||
else
|
||||
total_amt = front_arc;
|
||||
}
|
||||
|
||||
return total_amt;
|
||||
}
|
||||
|
||||
|
||||
int16 Mob::GetHealRate(uint16 spell_id, Mob* caster) {
|
||||
|
||||
int16 heal_rate = 0;
|
||||
@@ -4859,8 +4882,8 @@ int16 Mob::GetMeleeDmgPositionMod(Mob* defender)
|
||||
int back_arc = 0;
|
||||
int total_mod = 0;
|
||||
|
||||
back_arc += itembonuses.Melee_Damage_Position_Mod[SBIndex::POSITIONAL_DAMAGE_MOD] + aabonuses.Melee_Damage_Position_Mod[SBIndex::POSITIONAL_DAMAGE_MOD] + spellbonuses.Melee_Damage_Position_Mod[SBIndex::POSITIONAL_DAMAGE_MOD];
|
||||
front_arc += itembonuses.Melee_Damage_Position_Mod[SBIndex::POSITIONAL_LOCATION] + aabonuses.Melee_Damage_Position_Mod[SBIndex::POSITIONAL_LOCATION] + spellbonuses.Melee_Damage_Position_Mod[SBIndex::POSITIONAL_LOCATION];
|
||||
back_arc += itembonuses.Melee_Damage_Position_Mod[SBIndex::POSITION_BACK] + aabonuses.Melee_Damage_Position_Mod[SBIndex::POSITION_BACK] + spellbonuses.Melee_Damage_Position_Mod[SBIndex::POSITION_BACK];
|
||||
front_arc += itembonuses.Melee_Damage_Position_Mod[SBIndex::POSITION_FRONT] + aabonuses.Melee_Damage_Position_Mod[SBIndex::POSITION_FRONT] + spellbonuses.Melee_Damage_Position_Mod[SBIndex::POSITION_FRONT];
|
||||
|
||||
if (back_arc || front_arc) { //Do they have this bonus?
|
||||
if (BehindMob(defender, GetX(), GetY()))//Check if attacker is striking from behind
|
||||
@@ -4899,6 +4922,30 @@ int16 Mob::GetSkillDmgAmt(uint16 skill)
|
||||
return skill_dmg;
|
||||
}
|
||||
|
||||
int16 Mob::GetPositionalDmgAmt(Mob* defender)
|
||||
{
|
||||
if (!defender)
|
||||
return 0;
|
||||
|
||||
//SPA 504
|
||||
int front_arc_dmg_amt = 0;
|
||||
int back_arc_dmg_amt = 0;
|
||||
|
||||
int total_amt = 0;
|
||||
|
||||
back_arc_dmg_amt += itembonuses.Melee_Damage_Position_Amt[SBIndex::POSITION_BACK] + aabonuses.Melee_Damage_Position_Amt[SBIndex::POSITION_BACK] + spellbonuses.Melee_Damage_Position_Amt[SBIndex::POSITION_BACK];
|
||||
front_arc_dmg_amt += itembonuses.Melee_Damage_Position_Amt[SBIndex::POSITION_FRONT] + aabonuses.Melee_Damage_Position_Amt[SBIndex::POSITION_FRONT] + spellbonuses.Melee_Damage_Position_Amt[SBIndex::POSITION_FRONT];
|
||||
|
||||
if (back_arc_dmg_amt || front_arc_dmg_amt) {
|
||||
if (BehindMob(defender, GetX(), GetY()))
|
||||
total_amt = back_arc_dmg_amt;
|
||||
else
|
||||
total_amt = front_arc_dmg_amt;
|
||||
}
|
||||
|
||||
return total_amt;
|
||||
}
|
||||
|
||||
void Mob::MeleeLifeTap(int32 damage) {
|
||||
|
||||
int32 lifetap_amt = 0;
|
||||
|
||||
Reference in New Issue
Block a user