mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-02-02 18:43:48 +00:00
fix(Core/Spells): Fingers of Frost should always proc alongside with … (#13008)
...Frostbite.
This commit is contained in:
@@ -1450,6 +1450,26 @@ void Aura::HandleAuraSpecificMods(AuraApplication const* aurApp, Unit* caster, b
|
|||||||
else
|
else
|
||||||
target->AddAura(74396, target);
|
target->AddAura(74396, target);
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
case 12494: // Frostbite, synchronise with Fingers of Frost
|
||||||
|
{
|
||||||
|
// Find Fingers of Frost
|
||||||
|
if (AuraEffect* aurEff = caster->GetAuraEffect(SPELL_AURA_PROC_TRIGGER_SPELL, SPELLFAMILY_MAGE, 2947, EFFECT_0))
|
||||||
|
{
|
||||||
|
if (SpellInfo const* triggeringSpellInfo = GetTriggeredByAuraSpellInfo())
|
||||||
|
{
|
||||||
|
uint8 fbRank = sSpellMgr->GetSpellRank(triggeringSpellInfo->Id);
|
||||||
|
uint8 fofRank = sSpellMgr->GetSpellRank(aurEff->GetId());
|
||||||
|
uint8 chance = uint8(std::ceil(fofRank * fbRank * 16.6f));
|
||||||
|
|
||||||
|
if (roll_chance_i(chance))
|
||||||
|
{
|
||||||
|
caster->CastSpell(caster, aurEff->GetSpellInfo()->Effects[EFFECT_0].TriggerSpell, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3278,12 +3278,14 @@ void Spell::DoTriggersOnSpellHit(Unit* unit, uint8 effMask)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_caster->CastCustomSpell(i->triggeredSpell->Id, SPELLVALUE_AURA_DURATION, _duration, unit, true);
|
AuraEffect const* triggeringAuraEffect = m_caster->GetAuraEffect(i->triggeredByAura->Id, i->triggeredByEffIdx);
|
||||||
|
m_caster->CastCustomSpell(i->triggeredSpell->Id, SPELLVALUE_AURA_DURATION, _duration, unit, true, nullptr, triggeringAuraEffect);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_caster->CastSpell(unit, i->triggeredSpell, true);
|
AuraEffect const* triggeringAuraEffect = m_caster->GetAuraEffect(i->triggeredByAura->Id, i->triggeredByEffIdx);
|
||||||
|
m_caster->CastSpell(unit, i->triggeredSpell, true, nullptr, triggeringAuraEffect);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -8766,6 +8768,7 @@ void Spell::PrepareTriggersExecutedOnHit()
|
|||||||
HitTriggerSpell spellTriggerInfo;
|
HitTriggerSpell spellTriggerInfo;
|
||||||
spellTriggerInfo.triggeredSpell = spellInfo;
|
spellTriggerInfo.triggeredSpell = spellInfo;
|
||||||
spellTriggerInfo.triggeredByAura = auraSpellInfo;
|
spellTriggerInfo.triggeredByAura = auraSpellInfo;
|
||||||
|
spellTriggerInfo.triggeredByEffIdx = (*i)->GetEffIndex();
|
||||||
spellTriggerInfo.chance = chance * (*i)->GetBase()->GetStackAmount();
|
spellTriggerInfo.chance = chance * (*i)->GetBase()->GetStackAmount();
|
||||||
m_hitTriggerSpells.push_back(spellTriggerInfo);
|
m_hitTriggerSpells.push_back(spellTriggerInfo);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -741,7 +741,7 @@ public:
|
|||||||
{
|
{
|
||||||
SpellInfo const* triggeredSpell;
|
SpellInfo const* triggeredSpell;
|
||||||
SpellInfo const* triggeredByAura;
|
SpellInfo const* triggeredByAura;
|
||||||
// uint8 triggeredByEffIdx This might be needed at a later stage - No need known for now
|
uint8 triggeredByEffIdx;
|
||||||
int32 chance;
|
int32 chance;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user