*Fix demonic knowledge
*Fix applying of some cast mods *Set correct dr for shattered barrier. --HG-- branch : trunk
This commit is contained in:
@@ -338,7 +338,7 @@ enum SpellCategory
|
|||||||
#define SPELL_ATTR_EX3_UNK16 0x00010000 // 16 no triggers effects that trigger on casting a spell??
|
#define SPELL_ATTR_EX3_UNK16 0x00010000 // 16 no triggers effects that trigger on casting a spell??
|
||||||
#define SPELL_ATTR_EX3_UNK17 0x00020000 // 17 no triggers effects that trigger on casting a spell??
|
#define SPELL_ATTR_EX3_UNK17 0x00020000 // 17 no triggers effects that trigger on casting a spell??
|
||||||
#define SPELL_ATTR_EX3_UNK18 0x00040000 // 18
|
#define SPELL_ATTR_EX3_UNK18 0x00040000 // 18
|
||||||
#define SPELL_ATTR_EX3_UNK19 0x00080000 // 19
|
#define SPELL_ATTR_EX3_UNK19 0x00080000 // 19 spells triggered by spell with this flag can't proc caster auras and can proc from triggered (swings too - 20178)
|
||||||
#define SPELL_ATTR_EX3_DEATH_PERSISTENT 0x00100000 // 20 Death persistent spells
|
#define SPELL_ATTR_EX3_DEATH_PERSISTENT 0x00100000 // 20 Death persistent spells
|
||||||
#define SPELL_ATTR_EX3_UNK21 0x00200000 // 21
|
#define SPELL_ATTR_EX3_UNK21 0x00200000 // 21
|
||||||
#define SPELL_ATTR_EX3_REQ_WAND 0x00400000 // 22 Req wand
|
#define SPELL_ATTR_EX3_REQ_WAND 0x00400000 // 22 Req wand
|
||||||
|
|||||||
@@ -2302,6 +2302,7 @@ void Spell::prepare(SpellCastTargets const* targets, AuraEffect* triggeredByAura
|
|||||||
|
|
||||||
// calculate cast time (calculated after first CheckCast check to prevent charge counting for first CheckCast fail)
|
// calculate cast time (calculated after first CheckCast check to prevent charge counting for first CheckCast fail)
|
||||||
m_casttime = GetSpellCastTime(m_spellInfo, this);
|
m_casttime = GetSpellCastTime(m_spellInfo, this);
|
||||||
|
m_caster->ModSpellCastTime(m_spellInfo, m_casttime, this);
|
||||||
|
|
||||||
// set timer base at cast time
|
// set timer base at cast time
|
||||||
ReSetTimer();
|
ReSetTimer();
|
||||||
|
|||||||
@@ -750,7 +750,7 @@ void AreaAuraEffect::Update(uint32 diff)
|
|||||||
// recalculate basepoints for lower rank (all AreaAura spell not use custom basepoints?)
|
// recalculate basepoints for lower rank (all AreaAura spell not use custom basepoints?)
|
||||||
//if(actualSpellInfo != GetSpellProto())
|
//if(actualSpellInfo != GetSpellProto())
|
||||||
// actualBasePoints = actualSpellInfo->EffectBasePoints[m_effIndex];
|
// actualBasePoints = actualSpellInfo->EffectBasePoints[m_effIndex];
|
||||||
Aura * aur = (*tIter)->AddAuraEffect(actualSpellInfo->Id, GetEffIndex(), caster);
|
Aura * aur = (*tIter)->AddAuraEffect(actualSpellInfo->Id, GetEffIndex(), caster, &m_currentBasePoints);
|
||||||
|
|
||||||
if(m_areaAuraType == AREA_AURA_ENEMY)
|
if(m_areaAuraType == AREA_AURA_ENEMY)
|
||||||
caster->CombatStart(*tIter);
|
caster->CombatStart(*tIter);
|
||||||
|
|||||||
+13
-4
@@ -5212,7 +5212,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
|
|||||||
// only on dispel/remove aura by destroy
|
// only on dispel/remove aura by destroy
|
||||||
target = NULL;
|
target = NULL;
|
||||||
triggered_spell_id = 55080;
|
triggered_spell_id = 55080;
|
||||||
CastSpell(target, triggered_spell_id, true);
|
CastSpell(target, triggered_spell_id, true, 0, triggeredByAura);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
// Hot Streak
|
// Hot Streak
|
||||||
@@ -13581,7 +13581,7 @@ void Unit::AddAura(uint32 spellId, Unit* target)
|
|||||||
target->AddAura(Aur);
|
target->AddAura(Aur);
|
||||||
}
|
}
|
||||||
|
|
||||||
Aura * Unit::AddAuraEffect(uint32 spellId, uint8 effIndex, Unit* caster)
|
Aura * Unit::AddAuraEffect(uint32 spellId, uint8 effIndex, Unit* caster, int32 * basePoints)
|
||||||
{
|
{
|
||||||
SpellEntry const *spellInfo = sSpellStore.LookupEntry(spellId);
|
SpellEntry const *spellInfo = sSpellStore.LookupEntry(spellId);
|
||||||
if(!spellInfo || !caster)
|
if(!spellInfo || !caster)
|
||||||
@@ -13594,7 +13594,7 @@ Aura * Unit::AddAuraEffect(uint32 spellId, uint8 effIndex, Unit* caster)
|
|||||||
|
|
||||||
if (aur)
|
if (aur)
|
||||||
{
|
{
|
||||||
AuraEffect *aurEffect = CreateAuraEffect(aur, effIndex, NULL, caster);
|
AuraEffect *aurEffect = CreateAuraEffect(aur, effIndex, basePoints, caster);
|
||||||
if (!aurEffect)
|
if (!aurEffect)
|
||||||
return aur;
|
return aur;
|
||||||
if (!aur->SetPartAura(aurEffect, effIndex))
|
if (!aur->SetPartAura(aurEffect, effIndex))
|
||||||
@@ -13602,7 +13602,16 @@ Aura * Unit::AddAuraEffect(uint32 spellId, uint8 effIndex, Unit* caster)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
aur = new Aura(spellInfo, 1<<effIndex, NULL, this ,caster);
|
if (basePoints)
|
||||||
|
{
|
||||||
|
int32 amount [3];
|
||||||
|
amount[effIndex] = *basePoints;
|
||||||
|
aur = new Aura(spellInfo, 1<<effIndex, &amount[0], this ,caster);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
aur = new Aura(spellInfo, 1<<effIndex, NULL, this ,caster);
|
||||||
|
}
|
||||||
AddAura(aur);
|
AddAura(aur);
|
||||||
}
|
}
|
||||||
return aur;
|
return aur;
|
||||||
|
|||||||
+1
-1
@@ -1186,7 +1186,7 @@ class TRINITY_DLL_SPEC Unit : public WorldObject
|
|||||||
void CastSpell(GameObject *go, uint32 spellId, bool triggered, Item *castItem = NULL, AuraEffect* triggeredByAura = NULL, uint64 originalCaster = 0);
|
void CastSpell(GameObject *go, uint32 spellId, bool triggered, Item *castItem = NULL, AuraEffect* triggeredByAura = NULL, uint64 originalCaster = 0);
|
||||||
void AddAura(uint32 spellId, Unit *target);
|
void AddAura(uint32 spellId, Unit *target);
|
||||||
void HandleAuraEffect(AuraEffect * aureff, bool apply);
|
void HandleAuraEffect(AuraEffect * aureff, bool apply);
|
||||||
Aura *AddAuraEffect(uint32 spellId, uint8 effIndex, Unit* caster);
|
Aura *AddAuraEffect(uint32 spellId, uint8 effIndex, Unit* caster, int32 * basePoints=NULL);
|
||||||
|
|
||||||
bool IsDamageToThreatSpell(SpellEntry const * spellInfo) const;
|
bool IsDamageToThreatSpell(SpellEntry const * spellInfo) const;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user