mirror of
https://github.com/mangosfour/server.git
synced 2025-12-16 04:37:00 +00:00
[7785] Allow regenerate energy for pets if this current power type.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This commit is contained in:
parent
75dda239d7
commit
7355eb2f52
3 changed files with 40 additions and 13 deletions
|
|
@ -552,18 +552,26 @@ void Pet::Update(uint32 diff)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(getPetType() != HUNTER_PET)
|
//regenerate focus for hunter pets or energy for deathknight's ghoul
|
||||||
break;
|
|
||||||
|
|
||||||
//regenerate Focus
|
|
||||||
if(m_regenTimer <= diff)
|
if(m_regenTimer <= diff)
|
||||||
{
|
{
|
||||||
RegenerateFocus();
|
switch (getPowerType())
|
||||||
|
{
|
||||||
|
case POWER_FOCUS:
|
||||||
|
case POWER_ENERGY:
|
||||||
|
Regenerate(getPowerType());
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
m_regenTimer = 4000;
|
m_regenTimer = 4000;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
m_regenTimer -= diff;
|
m_regenTimer -= diff;
|
||||||
|
|
||||||
|
if(getPetType() != HUNTER_PET)
|
||||||
|
break;
|
||||||
|
|
||||||
if(m_happinessTimer <= diff)
|
if(m_happinessTimer <= diff)
|
||||||
{
|
{
|
||||||
LooseHappiness();
|
LooseHappiness();
|
||||||
|
|
@ -580,22 +588,41 @@ void Pet::Update(uint32 diff)
|
||||||
Creature::Update(diff);
|
Creature::Update(diff);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Pet::RegenerateFocus()
|
void Pet::Regenerate(Powers power)
|
||||||
{
|
{
|
||||||
uint32 curValue = GetPower(POWER_FOCUS);
|
uint32 curValue = GetPower(power);
|
||||||
uint32 maxValue = GetMaxPower(POWER_FOCUS);
|
uint32 maxValue = GetMaxPower(power);
|
||||||
|
|
||||||
if (curValue >= maxValue)
|
if (curValue >= maxValue)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
float addvalue = 24 * sWorld.getRate(RATE_POWER_FOCUS);
|
float addvalue = 0.0f;
|
||||||
|
|
||||||
|
switch (power)
|
||||||
|
{
|
||||||
|
case POWER_FOCUS:
|
||||||
|
{
|
||||||
|
// For hunter pets.
|
||||||
|
addvalue = 24 * sWorld.getRate(RATE_POWER_FOCUS);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case POWER_ENERGY:
|
||||||
|
{
|
||||||
|
// For deathknight's ghoul.
|
||||||
|
addvalue = 20;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Apply modifiers (if any).
|
||||||
AuraList const& ModPowerRegenPCTAuras = GetAurasByType(SPELL_AURA_MOD_POWER_REGEN_PERCENT);
|
AuraList const& ModPowerRegenPCTAuras = GetAurasByType(SPELL_AURA_MOD_POWER_REGEN_PERCENT);
|
||||||
for(AuraList::const_iterator i = ModPowerRegenPCTAuras.begin(); i != ModPowerRegenPCTAuras.end(); ++i)
|
for(AuraList::const_iterator i = ModPowerRegenPCTAuras.begin(); i != ModPowerRegenPCTAuras.end(); ++i)
|
||||||
if ((*i)->GetModifier()->m_miscvalue == POWER_FOCUS)
|
if ((*i)->GetModifier()->m_miscvalue == power)
|
||||||
addvalue *= ((*i)->GetModifier()->m_amount + 100) / 100.0f;
|
addvalue *= ((*i)->GetModifier()->m_amount + 100) / 100.0f;
|
||||||
|
|
||||||
ModifyPower(POWER_FOCUS, (int32)addvalue);
|
ModifyPower(power, (int32)addvalue);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Pet::LooseHappiness()
|
void Pet::LooseHappiness()
|
||||||
|
|
|
||||||
|
|
@ -152,7 +152,7 @@ class Pet : public Creature
|
||||||
return m_autospells[pos];
|
return m_autospells[pos];
|
||||||
}
|
}
|
||||||
|
|
||||||
void RegenerateFocus();
|
void Regenerate(Powers power);
|
||||||
void LooseHappiness();
|
void LooseHappiness();
|
||||||
HappinessState GetHappinessState();
|
HappinessState GetHappinessState();
|
||||||
void GivePetXP(uint32 xp);
|
void GivePetXP(uint32 xp);
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "7784"
|
#define REVISION_NR "7785"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue