AURA_STATE_HEALTHLESS_20_PERCENT apply only on alive targets
This commit is contained in:
parent
4185e88803
commit
3ffded2406
@ -357,7 +357,10 @@ void Unit::Update(uint32 update_diff, uint32 p_time)
|
|||||||
// update abilities available only for fraction of time
|
// update abilities available only for fraction of time
|
||||||
UpdateReactives(update_diff);
|
UpdateReactives(update_diff);
|
||||||
|
|
||||||
ModifyAuraState(AURA_STATE_HEALTHLESS_20_PERCENT, GetHealth() < GetMaxHealth() * 0.20f);
|
if (IsAlive())
|
||||||
|
{
|
||||||
|
ModifyAuraState(AURA_STATE_HEALTHLESS_20_PERCENT, GetHealth() < GetMaxHealth() * 0.20f);
|
||||||
|
}
|
||||||
UpdateSplineMovement(p_time);
|
UpdateSplineMovement(p_time);
|
||||||
i_motionMaster.UpdateMotion(p_time);
|
i_motionMaster.UpdateMotion(p_time);
|
||||||
}
|
}
|
||||||
@ -5577,7 +5580,7 @@ int32 Unit::SpellBonusWithCoeffs(Unit* pCaster, SpellEntry const* spellProto, in
|
|||||||
modOwner->ApplySpellMod(spellProto->Id, SPELLMOD_SPELL_BONUS_DAMAGE, coeff);
|
modOwner->ApplySpellMod(spellProto->Id, SPELLMOD_SPELL_BONUS_DAMAGE, coeff);
|
||||||
coeff /= 100.0f;
|
coeff /= 100.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
total += int32(benefit * coeff * LvlPenalty);
|
total += int32(benefit * coeff * LvlPenalty);
|
||||||
|
|
||||||
return total;
|
return total;
|
||||||
@ -6633,8 +6636,8 @@ int32 Unit::ModifyHealth(int32 dVal)
|
|||||||
|
|
||||||
int32 maxHealth = (int32)GetMaxHealth();
|
int32 maxHealth = (int32)GetMaxHealth();
|
||||||
|
|
||||||
int32 gain;
|
int32 gain;
|
||||||
if (val < maxHealth)
|
if (val < maxHealth)
|
||||||
{
|
{
|
||||||
SetHealth(val);
|
SetHealth(val);
|
||||||
gain = val - curHealth;
|
gain = val - curHealth;
|
||||||
@ -6664,7 +6667,7 @@ int32 Unit::ModifyPower(Powers power, int32 dVal)
|
|||||||
|
|
||||||
int32 maxPower = (int32)GetMaxPower(power);
|
int32 maxPower = (int32)GetMaxPower(power);
|
||||||
|
|
||||||
int32 gain;
|
int32 gain;
|
||||||
if (val < maxPower)
|
if (val < maxPower)
|
||||||
{
|
{
|
||||||
SetPower(power, val);
|
SetPower(power, val);
|
||||||
@ -7063,7 +7066,7 @@ void Unit::SetSpeedRate(UnitMoveType mtype, float rate, bool forced)
|
|||||||
};
|
};
|
||||||
|
|
||||||
const SpeedOpcodePair& speedOpcodes = SetSpeed2Opc_table[mtype];
|
const SpeedOpcodePair& speedOpcodes = SetSpeed2Opc_table[mtype];
|
||||||
|
|
||||||
if (forced && GetTypeId() == TYPEID_PLAYER)
|
if (forced && GetTypeId() == TYPEID_PLAYER)
|
||||||
{
|
{
|
||||||
// register forced speed changes for WorldSession::HandleForceSpeedChangeAck
|
// register forced speed changes for WorldSession::HandleForceSpeedChangeAck
|
||||||
@ -7606,7 +7609,7 @@ bool Unit::HandleStatModifier(UnitMods unitMod, UnitModifierType modifierType, f
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
float val;
|
float val;
|
||||||
|
|
||||||
switch (modifierType)
|
switch (modifierType)
|
||||||
{
|
{
|
||||||
@ -8787,8 +8790,8 @@ bool Unit::IsStandState() const
|
|||||||
|
|
||||||
bool Unit::IsSeatedState() const
|
bool Unit::IsSeatedState() const
|
||||||
{
|
{
|
||||||
uint8 standState = getStandState();
|
uint8 standState = getStandState();
|
||||||
return standState != UNIT_STAND_STATE_SLEEP && standState != UNIT_STAND_STATE_STAND;
|
return standState != UNIT_STAND_STATE_SLEEP && standState != UNIT_STAND_STATE_STAND;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Unit::SetStandState(uint8 state)
|
void Unit::SetStandState(uint8 state)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user