*Implement spell aura 177.
--HG-- branch : trunk
This commit is contained in:
+1
-3
@@ -7472,9 +7472,7 @@ bool ChatHandler::HandleUnPossessCommand(const char* args)
|
||||
Unit* pUnit = getSelectedUnit();
|
||||
if(!pUnit) pUnit = m_session->GetPlayer();
|
||||
|
||||
pUnit->RemoveAurasByType(SPELL_AURA_MOD_CHARM);
|
||||
pUnit->RemoveAurasByType(SPELL_AURA_MOD_POSSESS_PET);
|
||||
pUnit->RemoveAurasByType(SPELL_AURA_MOD_POSSESS);
|
||||
pUnit->RemoveCharmAuras();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
+1
-5
@@ -16729,11 +16729,7 @@ void Player::StopCastingCharm()
|
||||
ExitVehicle();
|
||||
}
|
||||
if(GetCharmGUID())
|
||||
{
|
||||
charm->RemoveAurasByType(SPELL_AURA_MOD_CHARM);
|
||||
charm->RemoveAurasByType(SPELL_AURA_MOD_POSSESS_PET);
|
||||
charm->RemoveAurasByType(SPELL_AURA_MOD_POSSESS);
|
||||
}
|
||||
charm->RemoveCharmAuras();
|
||||
|
||||
if(GetCharmGUID())
|
||||
{
|
||||
|
||||
+22
-7
@@ -229,7 +229,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS]=
|
||||
&AuraEffect::HandleModSpellDamagePercentFromStat, //174 SPELL_AURA_MOD_SPELL_DAMAGE_OF_STAT_PERCENT implemented in Unit::SpellBaseDamageBonus
|
||||
&AuraEffect::HandleModSpellHealingPercentFromStat, //175 SPELL_AURA_MOD_SPELL_HEALING_OF_STAT_PERCENT implemented in Unit::SpellBaseHealingBonus
|
||||
&AuraEffect::HandleSpiritOfRedemption, //176 SPELL_AURA_SPIRIT_OF_REDEMPTION only for Spirit of Redemption spell, die at aura end
|
||||
&AuraEffect::HandleNULL, //177 SPELL_AURA_AOE_CHARM
|
||||
&AuraEffect::HandleCharmConvert, //177 SPELL_AURA_AOE_CHARM
|
||||
&AuraEffect::HandleNoImmediateEffect, //178 SPELL_AURA_MOD_DEBUFF_RESISTANCE implemented in Unit::MagicSpellHitResult
|
||||
&AuraEffect::HandleNoImmediateEffect, //179 SPELL_AURA_MOD_ATTACKER_SPELL_CRIT_CHANCE implemented in Unit::SpellCriticalBonus
|
||||
&AuraEffect::HandleNoImmediateEffect, //180 SPELL_AURA_MOD_FLAT_SPELL_DAMAGE_VERSUS implemented in Unit::SpellDamageBonus
|
||||
@@ -1794,19 +1794,16 @@ void AuraEffect::TriggerSpell()
|
||||
// case 27747: break;
|
||||
// Frost Blast
|
||||
case 27808:
|
||||
caster->CastCustomSpell(29879, SPELLVALUE_BASE_POINT0, target->GetMaxHealth()*0.26f, m_target, true, NULL, this);
|
||||
caster->CastCustomSpell(29879, SPELLVALUE_BASE_POINT0, (float)m_target->GetMaxHealth()*0.26f, m_target, true, NULL, this);
|
||||
return;
|
||||
// Detonate Mana
|
||||
case 27819:
|
||||
{
|
||||
int32 mana = (uint32)m_target->GetMaxPower(POWER_MANA)*0.25f;
|
||||
if(mana)
|
||||
if(int32 mana = (int32)(m_target->GetMaxPower(POWER_MANA) / 4))
|
||||
{
|
||||
mana = m_target->ModifyPower(POWER_MANA, -mana);
|
||||
m_target->CastCustomSpell(27820, SPELLVALUE_BASE_POINT0, -mana*4, NULL, true, NULL, this, caster->GetGUID());
|
||||
}
|
||||
return;
|
||||
}
|
||||
// // Controller Timer
|
||||
// case 28095: break;
|
||||
// // Stalagg Chain
|
||||
@@ -7067,7 +7064,7 @@ void AuraEffect::HandleModCharm(bool apply, bool Real, bool /*changeAmount*/)
|
||||
|
||||
if(apply)
|
||||
{
|
||||
if(int32(m_target->getLevel()) > m_amount)
|
||||
if(m_amount && int32(m_target->getLevel()) > m_amount)
|
||||
return;
|
||||
|
||||
m_target->SetCharmedBy(caster, CHARM_TYPE_CHARM);
|
||||
@@ -7076,6 +7073,24 @@ void AuraEffect::HandleModCharm(bool apply, bool Real, bool /*changeAmount*/)
|
||||
m_target->RemoveCharmedBy(caster);
|
||||
}
|
||||
|
||||
void AuraEffect::HandleCharmConvert(bool apply, bool Real, bool /*changeAmount*/)
|
||||
{
|
||||
if(!Real)
|
||||
return;
|
||||
|
||||
Unit* caster = GetCaster();
|
||||
|
||||
if(apply)
|
||||
{
|
||||
if(m_amount && int32(m_target->getLevel()) > m_amount)
|
||||
return;
|
||||
|
||||
m_target->SetCharmedBy(caster, CHARM_TYPE_CONVERT);
|
||||
}
|
||||
else
|
||||
m_target->RemoveCharmedBy(caster);
|
||||
}
|
||||
|
||||
void AuraEffect::HandlePhase(bool apply, bool Real, bool /*changeAmount*/)
|
||||
{
|
||||
if(!Real)
|
||||
|
||||
@@ -330,6 +330,7 @@ class TRINITY_DLL_SPEC AuraEffect
|
||||
void HandleNoReagentUseAura(bool Apply, bool Real, bool changeAmount);
|
||||
void HandlePhase(bool Apply, bool Real, bool changeAmount);
|
||||
void HandleAuraAllowOnlyAbility(bool apply, bool Real, bool changeAmount);
|
||||
void HandleCharmConvert(bool apply, bool Real, bool changeAmount);
|
||||
|
||||
// add/remove SPELL_AURA_MOD_SHAPESHIFT (36) linked auras
|
||||
void HandleShapeshiftBoosts(bool apply);
|
||||
|
||||
@@ -477,6 +477,7 @@ SpellSpecific GetSpellSpecific(uint32 spellId)
|
||||
case SPELL_AURA_MOD_CHARM:
|
||||
case SPELL_AURA_MOD_POSSESS_PET:
|
||||
case SPELL_AURA_MOD_POSSESS:
|
||||
case SPELL_AURA_AOE_CHARM:
|
||||
return SPELL_CHARM;
|
||||
case SPELL_AURA_TRACK_CREATURES:
|
||||
case SPELL_AURA_TRACK_RESOURCES:
|
||||
@@ -3310,6 +3311,7 @@ void SpellMgr::LoadSpellCustomAttr()
|
||||
case SPELL_AURA_MOD_POSSESS:
|
||||
case SPELL_AURA_MOD_CONFUSE:
|
||||
case SPELL_AURA_MOD_CHARM:
|
||||
case SPELL_AURA_AOE_CHARM:
|
||||
case SPELL_AURA_MOD_FEAR:
|
||||
case SPELL_AURA_MOD_STUN:
|
||||
mSpellCustomAttr[i] |= SPELL_ATTR_CU_AURA_CC;
|
||||
|
||||
@@ -8711,6 +8711,7 @@ void Unit::RemoveCharmAuras()
|
||||
RemoveAurasByType(SPELL_AURA_MOD_CHARM);
|
||||
RemoveAurasByType(SPELL_AURA_MOD_POSSESS_PET);
|
||||
RemoveAurasByType(SPELL_AURA_MOD_POSSESS);
|
||||
RemoveAurasByType(SPELL_AURA_AOE_CHARM);
|
||||
}
|
||||
|
||||
void Unit::UnsummonAllTotems()
|
||||
@@ -13673,6 +13674,7 @@ void Unit::SetCharmedBy(Unit* charmer, CharmType type)
|
||||
((Player*)charmer)->CharmSpellInitialize();
|
||||
break;
|
||||
default:
|
||||
case CHARM_TYPE_CONVERT:
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -13762,6 +13764,7 @@ void Unit::RemoveCharmedBy(Unit *charmer)
|
||||
}
|
||||
break;
|
||||
default:
|
||||
case CHARM_TYPE_CONVERT:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -890,6 +890,7 @@ enum CharmType
|
||||
CHARM_TYPE_CHARM,
|
||||
CHARM_TYPE_POSSESS,
|
||||
CHARM_TYPE_VEHICLE,
|
||||
CHARM_TYPE_CONVERT,
|
||||
};
|
||||
|
||||
enum ActionBarIndex
|
||||
|
||||
Reference in New Issue
Block a user