mirror of
https://github.com/mangosfour/server.git
synced 2025-12-17 16:37:00 +00:00
[8163] Fixed typo and wrong check affecting threat calculation.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This commit is contained in:
parent
0dc7ea6cc2
commit
e6d40697a1
3 changed files with 19 additions and 28 deletions
|
|
@ -3789,15 +3789,15 @@ void Aura::HandleAuraModSilence(bool apply, bool Real)
|
||||||
void Aura::HandleModThreat(bool apply, bool Real)
|
void Aura::HandleModThreat(bool apply, bool Real)
|
||||||
{
|
{
|
||||||
// only at real add/remove aura
|
// only at real add/remove aura
|
||||||
if(!Real)
|
if (!Real)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(!m_target->isAlive())
|
if (!m_target->isAlive())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Unit* caster = GetCaster();
|
Unit* caster = GetCaster();
|
||||||
|
|
||||||
if(!caster || !caster->isAlive())
|
if (!caster || !caster->isAlive())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int level_diff = 0;
|
int level_diff = 0;
|
||||||
|
|
@ -3815,38 +3815,31 @@ void Aura::HandleModThreat(bool apply, bool Real)
|
||||||
multiplier = 1;
|
multiplier = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (level_diff > 0)
|
if (level_diff > 0)
|
||||||
m_modifier.m_amount += multiplier * level_diff;
|
m_modifier.m_amount += multiplier * level_diff;
|
||||||
|
|
||||||
for(int8 x=0;x < MAX_SPELL_SCHOOL;x++)
|
if (m_target->GetTypeId() == TYPEID_PLAYER)
|
||||||
{
|
for(int8 x=0;x < MAX_SPELL_SCHOOL;x++)
|
||||||
if(m_modifier.m_miscvalue & int32(1<<x))
|
if (m_modifier.m_miscvalue & int32(1<<x))
|
||||||
{
|
ApplyPercentModFloatVar(m_target->m_threatModifier[x], m_modifier.m_amount, apply);
|
||||||
if(m_target->GetTypeId() == TYPEID_PLAYER)
|
|
||||||
ApplyPercentModFloatVar(m_target->m_threatModifier[x], m_positive ? m_modifier.m_amount : -m_modifier.m_amount, apply);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Aura::HandleAuraModTotalThreat(bool apply, bool Real)
|
void Aura::HandleAuraModTotalThreat(bool apply, bool Real)
|
||||||
{
|
{
|
||||||
// only at real add/remove aura
|
// only at real add/remove aura
|
||||||
if(!Real)
|
if (!Real)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(!m_target->isAlive() || m_target->GetTypeId()!= TYPEID_PLAYER)
|
if (!m_target->isAlive() || m_target->GetTypeId() != TYPEID_PLAYER)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Unit* caster = GetCaster();
|
Unit* caster = GetCaster();
|
||||||
|
|
||||||
if(!caster || !caster->isAlive())
|
if (!caster || !caster->isAlive())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
float threatMod = 0.0f;
|
float threatMod = apply ? float(m_modifier.m_amount) : float(-m_modifier.m_amount);
|
||||||
if(apply)
|
|
||||||
threatMod = float(m_modifier.m_amount);
|
|
||||||
else
|
|
||||||
threatMod = float(-m_modifier.m_amount);
|
|
||||||
|
|
||||||
m_target->getHostilRefManager().threatAssist(caster, threatMod);
|
m_target->getHostilRefManager().threatAssist(caster, threatMod);
|
||||||
}
|
}
|
||||||
|
|
@ -3854,18 +3847,18 @@ void Aura::HandleAuraModTotalThreat(bool apply, bool Real)
|
||||||
void Aura::HandleModTaunt(bool apply, bool Real)
|
void Aura::HandleModTaunt(bool apply, bool Real)
|
||||||
{
|
{
|
||||||
// only at real add/remove aura
|
// only at real add/remove aura
|
||||||
if(!Real)
|
if (!Real)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(!m_target->isAlive() || !m_target->CanHaveThreatList())
|
if (!m_target->isAlive() || !m_target->CanHaveThreatList())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Unit* caster = GetCaster();
|
Unit* caster = GetCaster();
|
||||||
|
|
||||||
if(!caster || !caster->isAlive())
|
if (!caster || !caster->isAlive())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(apply)
|
if (apply)
|
||||||
m_target->TauntApply(caster);
|
m_target->TauntApply(caster);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -32,11 +32,9 @@
|
||||||
// The pHatingUnit is not used yet
|
// The pHatingUnit is not used yet
|
||||||
float ThreatCalcHelper::calcThreat(Unit* pHatedUnit, Unit* pHatingUnit, float pThreat, SpellSchoolMask schoolMask, SpellEntry const *pThreatSpell)
|
float ThreatCalcHelper::calcThreat(Unit* pHatedUnit, Unit* pHatingUnit, float pThreat, SpellSchoolMask schoolMask, SpellEntry const *pThreatSpell)
|
||||||
{
|
{
|
||||||
if(pThreatSpell)
|
if (pThreatSpell)
|
||||||
{
|
if (Player* modOwner = pHatedUnit->GetSpellModOwner())
|
||||||
if( Player* modOwner = pHatingUnit->GetSpellModOwner() )
|
|
||||||
modOwner->ApplySpellMod(pThreatSpell->Id, SPELLMOD_THREAT, pThreat);
|
modOwner->ApplySpellMod(pThreatSpell->Id, SPELLMOD_THREAT, pThreat);
|
||||||
}
|
|
||||||
|
|
||||||
float threat = pHatedUnit->ApplyTotalThreatModifier(pThreat, schoolMask);
|
float threat = pHatedUnit->ApplyTotalThreatModifier(pThreat, schoolMask);
|
||||||
return threat;
|
return threat;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "8162"
|
#define REVISION_NR "8163"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue