Core/Pets: merged funjoker's new Pet Slot system
* fixed packets and handling for stable master * fixed Control Pet / Demon handling * corrected wrong trainer spell for the Control spells * Added base support for Assist behaivior * corrected action bar layout * Hunter Pets will now have the same level as their tamer (patch 4.1 change) * corrected health stats for pets
This commit is contained in:
1 parent
b2945a5c58
commit
b7c15093a6
32 files changed
+803
-685
No files matched your search
@@ -960,17 +960,6 @@ void Creature::CalculateMinMaxDamage(WeaponAttackType attType, bool normalized,
|
||||
######## ########
|
||||
#######################################*/
|
||||
|
||||
#define ENTRY_IMP 416
|
||||
#define ENTRY_VOIDWALKER 1860
|
||||
#define ENTRY_SUCCUBUS 1863
|
||||
#define ENTRY_FELHUNTER 417
|
||||
#define ENTRY_FELGUARD 17252
|
||||
#define ENTRY_WATER_ELEMENTAL 510
|
||||
#define ENTRY_TREANT 1964
|
||||
#define ENTRY_FIRE_ELEMENTAL 15438
|
||||
#define ENTRY_GHOUL 26125
|
||||
#define ENTRY_BLOODWORM 28017
|
||||
|
||||
bool Guardian::UpdateStats(Stats stat)
|
||||
{
|
||||
if (stat >= MAX_STATS)
|
||||
@@ -1102,13 +1091,12 @@ void Guardian::UpdateMaxHealth()
|
||||
float multiplicator;
|
||||
switch (GetEntry())
|
||||
{
|
||||
case ENTRY_IMP: multiplicator = 8.4f; break;
|
||||
case ENTRY_VOIDWALKER: multiplicator = 11.0f; break;
|
||||
case ENTRY_SUCCUBUS: multiplicator = 9.1f; break;
|
||||
case ENTRY_FELHUNTER: multiplicator = 9.5f; break;
|
||||
case ENTRY_FELGUARD: multiplicator = 11.0f; break;
|
||||
case ENTRY_BLOODWORM: multiplicator = 1.0f; break;
|
||||
default: multiplicator = 10.0f; break;
|
||||
case ENTRY_BLOODWORM:
|
||||
multiplicator = 1.0f;
|
||||
break;
|
||||
default:
|
||||
multiplicator = 14.0f;
|
||||
break;
|
||||
}
|
||||
|
||||
float value = GetModifierValue(unitMod, BASE_VALUE) + GetCreateHealth();
|
||||
@@ -1116,6 +1104,37 @@ void Guardian::UpdateMaxHealth()
|
||||
value += GetModifierValue(unitMod, TOTAL_VALUE) + stamina * multiplicator;
|
||||
value *= GetModifierValue(unitMod, TOTAL_PCT);
|
||||
|
||||
if (Unit* owner = GetOwner())
|
||||
{
|
||||
switch (GetEntry())
|
||||
{
|
||||
case ENTRY_IMP:
|
||||
value = (7.7 * getLevel() / 80) * GetOwner()->GetStat(STAT_STAMINA) + GetModifierValue(unitMod, BASE_VALUE) + GetCreateHealth();
|
||||
break;
|
||||
case ENTRY_VOIDWALKER:
|
||||
value = (15.0 * getLevel() / 80) * GetOwner()->GetStat(STAT_STAMINA) + GetModifierValue(unitMod, BASE_VALUE) + GetCreateHealth();
|
||||
break;
|
||||
case ENTRY_FELHUNTER:
|
||||
case ENTRY_FELGUARD:
|
||||
case ENTRY_SUCCUBUS:
|
||||
value = (9.1 * getLevel() / 80) * GetOwner()->GetStat(STAT_STAMINA) + GetModifierValue(unitMod, BASE_VALUE) + GetCreateHealth();
|
||||
break;
|
||||
case ENTRY_WATER_ELEMENTAL:
|
||||
value = (7.0 * getLevel() / 80) * GetOwner()->GetStat(STAT_STAMINA) + GetModifierValue(unitMod, BASE_VALUE) + GetCreateHealth();
|
||||
break;
|
||||
case ENTRY_SPIRIT_WOLF:
|
||||
case ENTRY_GARGOYLE:
|
||||
case ENTRY_SHADOWFIEND:
|
||||
value = (4.2 * getLevel() / 80) * GetOwner()->GetStat(STAT_STAMINA) + GetModifierValue(unitMod, BASE_VALUE) + GetCreateHealth();
|
||||
break;
|
||||
case ENTRY_TREANT:
|
||||
value = (1.9 * getLevel() / 80) * GetOwner()->GetStat(STAT_STAMINA) + GetModifierValue(unitMod, BASE_VALUE) + GetCreateHealth();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
SetMaxHealth((uint32)value);
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user