mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-13 18:51:29 +00:00
Renamed various Cast on Fade spell effects to more accurately describe their functions.
Missing code from prior commit.
This commit is contained in:
parent
542c0913d6
commit
8453d5bc48
@ -1003,7 +1003,7 @@ bool IsSuspendableSpell(uint16 spell_id)
|
|||||||
uint32 GetMorphTrigger(uint32 spell_id)
|
uint32 GetMorphTrigger(uint32 spell_id)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < EFFECT_COUNT; ++i)
|
for (int i = 0; i < EFFECT_COUNT; ++i)
|
||||||
if (spells[spell_id].effectid[i] == SE_ImprovedSpellEffect)
|
if (spells[spell_id].effectid[i] == SE_CastOnFadeEffect)
|
||||||
return spells[spell_id].base[i];
|
return spells[spell_id].base[i];
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -1012,9 +1012,9 @@ uint32 GetMorphTrigger(uint32 spell_id)
|
|||||||
bool IsCastonFadeDurationSpell(uint16 spell_id)
|
bool IsCastonFadeDurationSpell(uint16 spell_id)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < EFFECT_COUNT; ++i) {
|
for (int i = 0; i < EFFECT_COUNT; ++i) {
|
||||||
if (spells[spell_id].effectid[i] == SE_ImprovedSpellEffect
|
if (spells[spell_id].effectid[i] == SE_CastOnFadeEffect
|
||||||
|| spells[spell_id].effectid[i] == SE_BossSpellTrigger
|
|| spells[spell_id].effectid[i] == SE_CastOnFadeEffectNPC
|
||||||
|| spells[spell_id].effectid[i] == SE_CastOnWearoff){
|
|| spells[spell_id].effectid[i] == SE_CastOnFadeEffectAlways){
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -348,8 +348,8 @@ struct StatBonuses {
|
|||||||
uint16 SpellThresholdGuard[3]; // 0 = Mitigation value 1 = Buff Slot 2 = Min damage to trigger.
|
uint16 SpellThresholdGuard[3]; // 0 = Mitigation value 1 = Buff Slot 2 = Min damage to trigger.
|
||||||
uint16 MitigateSpellRune[4]; // 0 = Mitigation value 1 = Buff Slot 2 = Max mitigation per spell 3 = Rune Amt
|
uint16 MitigateSpellRune[4]; // 0 = Mitigation value 1 = Buff Slot 2 = Max mitigation per spell 3 = Rune Amt
|
||||||
uint16 MitigateDotRune[4]; // 0 = Mitigation value 1 = Buff Slot 2 = Max mitigation per tick 3 = Rune Amt
|
uint16 MitigateDotRune[4]; // 0 = Mitigation value 1 = Buff Slot 2 = Max mitigation per tick 3 = Rune Amt
|
||||||
uint32 TriggerMeleeThreshold[3]; // 0 = Spell Effect ID 1 = Buff slot 2 = Damage Amount to Trigger
|
bool TriggerMeleeThreshold; // Has Melee Threshhold
|
||||||
uint32 TriggerSpellThreshold[3]; // 0 = Spell Effect ID 1 = Buff slot 2 = Damage Amount to Trigger
|
bool TriggerSpellThreshold; // Has Spell Threshhold
|
||||||
uint16 ManaAbsorbPercentDamage[2]; // 0 = Mitigation value 1 = Buff Slot
|
uint16 ManaAbsorbPercentDamage[2]; // 0 = Mitigation value 1 = Buff Slot
|
||||||
int16 ShieldBlock; // Chance to Shield Block
|
int16 ShieldBlock; // Chance to Shield Block
|
||||||
int16 BlockBehind; // Chance to Block Behind (with our without shield)
|
int16 BlockBehind; // Chance to Block Behind (with our without shield)
|
||||||
|
|||||||
@ -3452,7 +3452,7 @@ bool Mob::TryFadeEffect(int slot)
|
|||||||
{
|
{
|
||||||
for(int i = 0; i < EFFECT_COUNT; i++)
|
for(int i = 0; i < EFFECT_COUNT; i++)
|
||||||
{
|
{
|
||||||
if (spells[buffs[slot].spellid].effectid[i] == SE_CastOnWearoff || spells[buffs[slot].spellid].effectid[i] == SE_EffectOnFade)
|
if (spells[buffs[slot].spellid].effectid[i] == SE_CastOnFadeEffectAlways || spells[buffs[slot].spellid].effectid[i] == SE_CastOnRuneFadeEffect)
|
||||||
{
|
{
|
||||||
uint16 spell_id = spells[buffs[slot].spellid].base[i];
|
uint16 spell_id = spells[buffs[slot].spellid].base[i];
|
||||||
BuffFadeBySlot(slot);
|
BuffFadeBySlot(slot);
|
||||||
|
|||||||
@ -1317,18 +1317,6 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case SE_TriggerMeleeThreshold:
|
|
||||||
{
|
|
||||||
buffs[buffslot].melee_rune = spells[spell_id].base2[i];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case SE_TriggerSpellThreshold:
|
|
||||||
{
|
|
||||||
buffs[buffslot].magic_rune = spells[spell_id].base2[i];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case SE_DistanceRemoval:
|
case SE_DistanceRemoval:
|
||||||
{
|
{
|
||||||
buffs[buffslot].caston_x = int(GetX());
|
buffs[buffslot].caston_x = int(GetX());
|
||||||
@ -2864,10 +2852,10 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial)
|
|||||||
case SE_FcTwincast:
|
case SE_FcTwincast:
|
||||||
case SE_DelayDeath:
|
case SE_DelayDeath:
|
||||||
case SE_InterruptCasting:
|
case SE_InterruptCasting:
|
||||||
case SE_ImprovedSpellEffect:
|
case SE_CastOnFadeEffect:
|
||||||
case SE_BossSpellTrigger:
|
case SE_CastOnFadeEffectNPC:
|
||||||
case SE_CastOnWearoff:
|
case SE_CastOnFadeEffectAlways:
|
||||||
case SE_EffectOnFade:
|
case SE_CastOnRuneFadeEffect:
|
||||||
case SE_MaxHPChange:
|
case SE_MaxHPChange:
|
||||||
case SE_SympatheticProc:
|
case SE_SympatheticProc:
|
||||||
case SE_FcDamageAmt:
|
case SE_FcDamageAmt:
|
||||||
@ -2982,6 +2970,7 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial)
|
|||||||
case SE_FinishingBlowLvl:
|
case SE_FinishingBlowLvl:
|
||||||
case SE_Assassinate:
|
case SE_Assassinate:
|
||||||
case SE_AssassinateLevel:
|
case SE_AssassinateLevel:
|
||||||
|
case SE_FactionModPct:
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -3569,9 +3558,9 @@ void Mob::DoBuffTic(uint16 spell_id, int slot, uint32 ticsremaining, uint8 caste
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// These effects always trigger when they fade.
|
// These effects always trigger when they fade.
|
||||||
case SE_ImprovedSpellEffect:
|
case SE_CastOnFadeEffect:
|
||||||
case SE_BossSpellTrigger:
|
case SE_CastOnFadeEffectNPC:
|
||||||
case SE_CastOnWearoff:
|
case SE_CastOnFadeEffectAlways:
|
||||||
{
|
{
|
||||||
if (ticsremaining == 1)
|
if (ticsremaining == 1)
|
||||||
{
|
{
|
||||||
@ -5378,7 +5367,7 @@ void Mob::CheckNumHitsRemaining(uint8 type, uint32 buff_slot, uint16 spell_id)
|
|||||||
2: [Outgoing Hit Attempts] (185=SE_DamageModifer, 184=SE_HitChance)
|
2: [Outgoing Hit Attempts] (185=SE_DamageModifer, 184=SE_HitChance)
|
||||||
3: [Incoming Spells] (180=SE_ResistSpellChance, 296=SE_FcSpellVulnerability) //Note: Determinetal spells only unless proven otherwise
|
3: [Incoming Spells] (180=SE_ResistSpellChance, 296=SE_FcSpellVulnerability) //Note: Determinetal spells only unless proven otherwise
|
||||||
4: [Outgoing Spells]
|
4: [Outgoing Spells]
|
||||||
5: [Outgoing Hit Successes] (220=SE_SkillDamageAmount, 178=SE_MeleeLifetap, 121=SE_ReverseDS, ?373=SE_CastOnWearoff)
|
5: [Outgoing Hit Successes] (220=SE_SkillDamageAmount, 178=SE_MeleeLifetap, 121=SE_ReverseDS, ?373=SE_CastOnFadeEffectAlways)
|
||||||
6: [Incoming Hit Successes] (59=SE_DamageShield, 197=SE_SkillDamageTaken, 162=define SE_MitigateMeleeDamage)
|
6: [Incoming Hit Successes] (59=SE_DamageShield, 197=SE_SkillDamageTaken, 162=define SE_MitigateMeleeDamage)
|
||||||
7: [Matching Spells] *When focus is triggered (focus effects)
|
7: [Matching Spells] *When focus is triggered (focus effects)
|
||||||
8: [Incoming Hits or Spells] (329=SE_ManaAbsorbPercentDamage)
|
8: [Incoming Hits or Spells] (329=SE_ManaAbsorbPercentDamage)
|
||||||
@ -6312,3 +6301,48 @@ void Mob::ResourceTap(int32 damage, uint16 spellid){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Mob::TryTriggerThreshHold(int32 damage, int effect_id, Mob* attacker){
|
||||||
|
|
||||||
|
if (damage <= 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if ((SE_TriggerMeleeThreshold == effect_id) && !spellbonuses.TriggerMeleeThreshold )
|
||||||
|
return;
|
||||||
|
else if ((SE_TriggerSpellThreshold == effect_id) && !spellbonuses.TriggerSpellThreshold)
|
||||||
|
return;
|
||||||
|
|
||||||
|
int buff_count = GetMaxTotalSlots();
|
||||||
|
|
||||||
|
for(int slot = 0; slot < buff_count; slot++) {
|
||||||
|
|
||||||
|
if(IsValidSpell(buffs[slot].spellid)){
|
||||||
|
|
||||||
|
for(int i = 0; i < EFFECT_COUNT; i++){
|
||||||
|
|
||||||
|
if (spells[buffs[slot].spellid].effectid[i] == effect_id){
|
||||||
|
|
||||||
|
uint16 spell_id = spells[buffs[slot].spellid].base[i];
|
||||||
|
|
||||||
|
if (damage > spells[buffs[slot].spellid].base2[i]){
|
||||||
|
|
||||||
|
BuffFadeBySlot(slot);
|
||||||
|
|
||||||
|
if (IsValidSpell(spell_id)) {
|
||||||
|
|
||||||
|
if (IsBeneficialSpell(spell_id))
|
||||||
|
SpellFinished(spell_id, this, 10, 0, -1, spells[spell_id].ResistDiff);
|
||||||
|
|
||||||
|
else if(attacker)
|
||||||
|
SpellFinished(spell_id, attacker, 10, 0, -1, spells[spell_id].ResistDiff);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user