mirror of
https://github.com/EQEmu/Server.git
synced 2026-06-26 07:17:16 +00:00
Implemented SPA 484
Implemented SE_Fc_Spell_Damage_Amt_IncomingPC 484 // focus effect that modifies incoming spell damage by flat amount. Consider it a debuff that adds damage to incoming spells. Positive value to add additional damage.
This commit is contained in:
+2
-2
@@ -825,8 +825,8 @@ typedef enum {
|
|||||||
//#define SE_Ff_Value_Max 480 //
|
//#define SE_Ff_Value_Max 480 //
|
||||||
//#define SE_Fc_Cast_Spell_On_Land 481 //
|
//#define SE_Fc_Cast_Spell_On_Land 481 //
|
||||||
//#define SE_Skill_Base_Damage_Mod 482 //
|
//#define SE_Skill_Base_Damage_Mod 482 //
|
||||||
#define SE_Fc_Spell_Damage_Pct_IncomingPC 483 //
|
#define SE_Fc_Spell_Damage_Pct_IncomingPC 483 // Implemented - modifies incoming spell damage by percent
|
||||||
//#define SE_Fc_Spell_Damage_Amt_IncomingPC 484 //
|
#define SE_Fc_Spell_Damage_Amt_IncomingPC 484 // Implemented - modifies incoming spell damage by flat amount. Typically adds damage to incoming spells.
|
||||||
//#define SE_Ff_CasterClass 485 //
|
//#define SE_Ff_CasterClass 485 //
|
||||||
//#define SE_Ff_Same_Caster 486 //
|
//#define SE_Ff_Same_Caster 486 //
|
||||||
//#define SE_Extend_Tradeskill_Cap 487 //
|
//#define SE_Extend_Tradeskill_Cap 487 //
|
||||||
|
|||||||
@@ -3755,6 +3755,8 @@ uint8 Mob::IsFocusEffect(uint16 spell_id,int effect_index, bool AA,uint32 aa_eff
|
|||||||
return focusFcDamagePctCrit;
|
return focusFcDamagePctCrit;
|
||||||
case SE_FcDamageAmtIncoming:
|
case SE_FcDamageAmtIncoming:
|
||||||
return focusFcDamageAmtIncoming;
|
return focusFcDamageAmtIncoming;
|
||||||
|
case SE_Fc_Spell_Damage_Amt_IncomingPC:
|
||||||
|
return focusFcSpellDamageAmtIncomingPC;
|
||||||
case SE_FcHealAmtIncoming:
|
case SE_FcHealAmtIncoming:
|
||||||
return focusFcHealAmtIncoming;
|
return focusFcHealAmtIncoming;
|
||||||
case SE_FcHealPctIncoming:
|
case SE_FcHealPctIncoming:
|
||||||
|
|||||||
@@ -136,6 +136,7 @@ typedef enum { //focus types
|
|||||||
focusBlockNextSpell,
|
focusBlockNextSpell,
|
||||||
focusFcHealPctIncoming,
|
focusFcHealPctIncoming,
|
||||||
focusFcDamageAmtIncoming,
|
focusFcDamageAmtIncoming,
|
||||||
|
focusFcSpellDamageAmtIncomingPC,
|
||||||
focusFcHealAmtIncoming,
|
focusFcHealAmtIncoming,
|
||||||
focusFcBaseEffects,
|
focusFcBaseEffects,
|
||||||
focusIncreaseNumHits,
|
focusIncreaseNumHits,
|
||||||
|
|||||||
@@ -3061,6 +3061,7 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial, int level_ove
|
|||||||
case SE_SkillDamageTaken:
|
case SE_SkillDamageTaken:
|
||||||
case SE_FcSpellVulnerability:
|
case SE_FcSpellVulnerability:
|
||||||
case SE_Fc_Spell_Damage_Pct_IncomingPC:
|
case SE_Fc_Spell_Damage_Pct_IncomingPC:
|
||||||
|
case SE_Fc_Spell_Damage_Amt_IncomingPC:
|
||||||
case SE_FcTwincast:
|
case SE_FcTwincast:
|
||||||
case SE_DelayDeath:
|
case SE_DelayDeath:
|
||||||
case SE_CastOnFadeEffect:
|
case SE_CastOnFadeEffect:
|
||||||
@@ -4814,6 +4815,11 @@ int16 Client::CalcAAFocus(focusType type, const AA::Rank &rank, uint16 spell_id)
|
|||||||
value = base1;
|
value = base1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case SE_Fc_Spell_Damage_Amt_IncomingPC:
|
||||||
|
if (type == focusFcSpellDamageAmtIncomingPC)
|
||||||
|
value = base1;
|
||||||
|
break;
|
||||||
|
|
||||||
case SE_FcHealAmtIncoming:
|
case SE_FcHealAmtIncoming:
|
||||||
if (type == focusFcHealAmtIncoming)
|
if (type == focusFcHealAmtIncoming)
|
||||||
value = base1;
|
value = base1;
|
||||||
@@ -5343,6 +5349,11 @@ int16 Mob::CalcFocusEffect(focusType type, uint16 focus_id, uint16 spell_id, boo
|
|||||||
value = focus_spell.base[i];
|
value = focus_spell.base[i];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case SE_Fc_Spell_Damage_Amt_IncomingPC:
|
||||||
|
if (type == focusFcSpellDamageAmtIncomingPC)
|
||||||
|
value = focus_spell.base[i];
|
||||||
|
break;
|
||||||
|
|
||||||
case SE_FcHealAmtIncoming:
|
case SE_FcHealAmtIncoming:
|
||||||
if (type == focusFcHealAmtIncoming)
|
if (type == focusFcHealAmtIncoming)
|
||||||
value = focus_spell.base[i];
|
value = focus_spell.base[i];
|
||||||
@@ -6328,6 +6339,7 @@ bool Mob::DoHPToManaCovert(uint16 mana_cost)
|
|||||||
int32 Mob::GetFcDamageAmtIncoming(Mob *caster, uint32 spell_id, bool use_skill, uint16 skill )
|
int32 Mob::GetFcDamageAmtIncoming(Mob *caster, uint32 spell_id, bool use_skill, uint16 skill )
|
||||||
{
|
{
|
||||||
//Used to check focus derived from SE_FcDamageAmtIncoming which adds direct damage to Spells or Skill based attacks.
|
//Used to check focus derived from SE_FcDamageAmtIncoming which adds direct damage to Spells or Skill based attacks.
|
||||||
|
//Used to check focus derived from SE_Fc_Spell_Damage_Amt_IncomingPC which adds direct damage to Spells.
|
||||||
int32 dmg = 0;
|
int32 dmg = 0;
|
||||||
bool limit_exists = false;
|
bool limit_exists = false;
|
||||||
bool skill_found = false;
|
bool skill_found = false;
|
||||||
@@ -6376,6 +6388,20 @@ int32 Mob::GetFcDamageAmtIncoming(Mob *caster, uint32 spell_id, bool use_skill,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (spellbonuses.FocusEffects[focusFcSpellDamageAmtIncomingPC]) {
|
||||||
|
int buff_count = GetMaxTotalSlots();
|
||||||
|
for (int i = 0; i < buff_count; i++) {
|
||||||
|
|
||||||
|
if ((IsValidSpell(buffs[i].spellid) && (IsEffectInSpell(buffs[i].spellid, SE_FcDamageAmtIncoming)))) {
|
||||||
|
|
||||||
|
int32 focus = caster->CalcFocusEffect(focusFcSpellDamageAmtIncomingPC, buffs[i].spellid, spell_id);
|
||||||
|
if (focus) {
|
||||||
|
dmg += focus;
|
||||||
|
CheckNumHitsRemaining(NumHit::MatchingSpells, i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return dmg;
|
return dmg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user