mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-17 16:10:49 +01:00
*Fix Master Shapeshifter - original patch by Drethek
--HG-- branch : trunk
This commit is contained in:
@@ -1531,32 +1531,62 @@ void AuraEffect::HandleShapeshiftBoosts(bool apply)
|
||||
}
|
||||
}
|
||||
}
|
||||
if (GetMiscValue() == FORM_CAT)
|
||||
switch(GetMiscValue())
|
||||
{
|
||||
// Nurturing Instinct
|
||||
if (AuraEffect const * aurEff = m_target->GetAuraEffect(SPELL_AURA_MOD_SPELL_HEALING_OF_STAT_PERCENT, SPELLFAMILY_DRUID, 2254,0))
|
||||
{
|
||||
uint32 spellId = 0;
|
||||
switch (aurEff->GetId())
|
||||
case FORM_CAT:
|
||||
// Nurturing Instinct
|
||||
if (AuraEffect const * aurEff = m_target->GetAuraEffect(SPELL_AURA_MOD_SPELL_HEALING_OF_STAT_PERCENT, SPELLFAMILY_DRUID, 2254,0))
|
||||
{
|
||||
case 33872:
|
||||
spellId = 47179;
|
||||
break;
|
||||
case 33873:
|
||||
spellId = 47180;
|
||||
break;
|
||||
uint32 spellId = 0;
|
||||
switch (aurEff->GetId())
|
||||
{
|
||||
case 33872:
|
||||
spellId = 47179;
|
||||
break;
|
||||
case 33873:
|
||||
spellId = 47180;
|
||||
break;
|
||||
}
|
||||
m_target->CastSpell(m_target, spellId, true, NULL, this);
|
||||
}
|
||||
m_target->CastSpell(m_target, spellId, true, NULL, this);
|
||||
}
|
||||
}
|
||||
// Survival of the Fittest
|
||||
else if (GetMiscValue() == FORM_BEAR || GetMiscValue() == FORM_DIREBEAR)
|
||||
{
|
||||
if (AuraEffect const * aurEff = m_target->GetAuraEffect(SPELL_AURA_MOD_TOTAL_STAT_PERCENTAGE,SPELLFAMILY_DRUID, 961, 0))
|
||||
{
|
||||
int32 bp = m_target->CalculateSpellDamage(aurEff->GetSpellProto(),2,aurEff->GetSpellProto()->EffectBasePoints[2],m_target);
|
||||
m_target->CastCustomSpell(m_target, 62069,&bp, NULL, NULL, true, 0, this);
|
||||
}
|
||||
// Master Shapeshifter - Cat
|
||||
if (AuraEffect const * aurEff = m_target->GetDummyAura(SPELLFAMILY_GENERIC, 2851, 0))
|
||||
{
|
||||
int32 bp = aurEff->GetAmount();
|
||||
m_target->CastCustomSpell(m_target, 48420, &bp, NULL, NULL, true);
|
||||
}
|
||||
break;
|
||||
case FORM_DIREBEAR:
|
||||
case FORM_BEAR:
|
||||
// Master Shapeshifter - Bear
|
||||
if (AuraEffect const * aurEff = m_target->GetDummyAura(SPELLFAMILY_GENERIC, 2851, 0))
|
||||
{
|
||||
int32 bp = aurEff->GetAmount();
|
||||
m_target->CastCustomSpell(m_target, 48418, &bp, NULL, NULL, true);
|
||||
}
|
||||
// Survival of the Fittest
|
||||
if (AuraEffect const * aurEff = m_target->GetAuraEffect(SPELL_AURA_MOD_TOTAL_STAT_PERCENTAGE,SPELLFAMILY_DRUID, 961, 0))
|
||||
{
|
||||
int32 bp = m_target->CalculateSpellDamage(aurEff->GetSpellProto(),2,aurEff->GetSpellProto()->EffectBasePoints[2],m_target);
|
||||
m_target->CastCustomSpell(m_target, 62069,&bp, NULL, NULL, true, 0, this);
|
||||
}
|
||||
break;
|
||||
case FORM_MOONKIN:
|
||||
// Master Shapeshifter - Moonkin
|
||||
if (AuraEffect const * aurEff = m_target->GetDummyAura(SPELLFAMILY_GENERIC, 2851, 0))
|
||||
{
|
||||
int32 bp = aurEff->GetAmount();
|
||||
m_target->CastCustomSpell(m_target, 48421, &bp, NULL, NULL, true);
|
||||
}
|
||||
break;
|
||||
// Master Shapeshifter - Tree of Life
|
||||
case FORM_TREE:
|
||||
if (AuraEffect const * aurEff = m_target->GetDummyAura(SPELLFAMILY_GENERIC, 2851, 0))
|
||||
{
|
||||
int32 bp = aurEff->GetAmount();
|
||||
m_target->CastCustomSpell(m_target, 48422, &bp, NULL, NULL, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3818,6 +3818,18 @@ void SpellMgr::LoadSpellCustomAttr()
|
||||
break;
|
||||
case 29809: // Desecration Arm - 36 instead of 37 - typo? :/
|
||||
spellInfo->EffectRadiusIndex[0] = 37;
|
||||
break;
|
||||
// Master Shapeshifter: missing stance data for forms other than bear - bear version has correct data
|
||||
// To prevent aura staying on target after talent unlearned
|
||||
case 48420:
|
||||
spellInfo->Stances = 1 << (FORM_CAT - 1);
|
||||
break;
|
||||
case 48421:
|
||||
spellInfo->Stances = 1 << (FORM_MOONKIN - 1);
|
||||
break;
|
||||
case 48422:
|
||||
spellInfo->Stances = 1 << (FORM_TREE - 1);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user