*Allow imp to learn Phase Shift

*Correct bonus damage for Unstable Affliction
*Correct some procflags.

--HG--
branch : trunk
rename : sql/updates/2685_world_spell_proc_event.sql => sql/updates/2774_world_spell_proc_event.sql
This commit is contained in:
QAston
2009-04-18 17:32:04 +02:00
parent fe01557bc3
commit c9290eac28
7 changed files with 25 additions and 23 deletions
+8 -5
View File
@@ -5631,12 +5631,15 @@ void Spell::CalculateDamageDoneForAllTargets()
}
}
bool usesAmmo=true;
Unit::AuraEffectList const& Auras = m_caster->GetAurasByType(SPELL_AURA_ABILITY_CONSUME_NO_AMMO);
for(Unit::AuraEffectList::const_iterator j = Auras.begin();j != Auras.end(); ++j)
bool usesAmmo = !m_IsTriggeredSpell;
if (usesAmmo)
{
if((*j)->isAffectedOnSpell(m_spellInfo))
usesAmmo=false;
Unit::AuraEffectList const& Auras = m_caster->GetAurasByType(SPELL_AURA_ABILITY_CONSUME_NO_AMMO);
for(Unit::AuraEffectList::const_iterator j = Auras.begin();j != Auras.end(); ++j)
{
if((*j)->isAffectedOnSpell(m_spellInfo))
usesAmmo=false;
}
}
for(std::list<TargetInfo>::iterator ihit= m_UniqueTargetInfo.begin(); ihit != m_UniqueTargetInfo.end(); ++ihit)
+1 -1
View File
@@ -4937,7 +4937,7 @@ void Spell::EffectScriptEffect(uint32 effIndex)
// Viper Sting - Instantly restores mana to you equal to 60% of the total amount drained by your Viper Sting.
if (familyFlag[1] & 0x00000080)
{
int32 tickCount = (aura->GetAuraMaxDuration() - aura->GetAuraDuration()) / aura->GetPartAura(0)->GetAuraAmplitude();
int32 tickCount = aura->GetPartAura(0)->GetTickNumber();
spellId = 53358; // 53358 Chimera Shot - Viper
// Amount of one aura tick
basePoint = aura->GetPartAura(0)->GetAmount() * aura->GetTarget()->GetMaxPower(POWER_MANA) / 100 ;
+2 -3
View File
@@ -2519,9 +2519,8 @@ void SpellMgr::LoadPetLevelupSpellMap()
// not exist
if(!spell)
continue;
if (!spell->spellLevel)
continue;
if (!spell->SpellFamilyName)
// Make sure that triggered spells aren't learned
if (!spell->SpellFamilyName && !spell->StartRecoveryCategory)
continue;
mPetLevelupSpellMap.insert(PetLevelupSpellMap::value_type(creatureFamily->ID, std::make_pair(spell->spellLevel , spell->Id )));
count++;
+1 -2
View File
@@ -3957,10 +3957,9 @@ void Unit::RemoveAurasDueToSpellByDispel(uint32 spellId, uint64 casterGUID, Unit
if (aur->GetSpellProto()->SpellFamilyName == SPELLFAMILY_WARLOCK && (aur->GetSpellProto()->SpellFamilyFlags[1] & 0x0100))
{
int32 damage = aur->GetPartAura(0)->GetAmount()*9;
uint64 caster_guid = aur->GetCasterGUID();
RemoveAuraFromStack(iter, AURA_REMOVE_BY_ENEMY_SPELL);
// backfire damage and silence
dispeler->CastCustomSpell(dispeler, 31117, &damage, NULL, NULL, true, NULL, NULL,caster_guid);
dispeler->CastCustomSpell(dispeler, 31117, &damage, NULL, NULL, true, NULL, NULL,dispeler->GetGUID());
return;
}
RemoveAuraFromStack(iter, AURA_REMOVE_BY_ENEMY_SPELL);