Core/Pets: updated levelstats for all Warlock pets between level 81 and 85 based on sniff data and corrected some scaling formulars based on SimulationCraft data

This commit is contained in:
Ovahlord
2018-11-02 01:58:08 +01:00
parent 2f3f524254
commit 94ea71678a
2 changed files with 33 additions and 16 deletions

View File

@@ -0,0 +1,13 @@
-- Voidwalker
UPDATE `pet_levelstats` SET `hp`= 43285, `mana`= 23422, `armor`= 27943, `str`= 453, `agi`= 883, `sta`= 353, `inte`= 159, `spi`= 225 WHERE `creature_entry`= 1860 AND `level`= 85;
UPDATE `pet_levelstats` SET `hp`= 35908, `mana`= 19537, `armor`= 24957, `str`= 420, `agi`= 737, `sta`= 348, `inte`= 157, `spi`= 222 WHERE `creature_entry`= 1860 AND `level`= 84;
UPDATE `pet_levelstats` SET `hp`= 28531, `mana`= 15652, `armor`= 21970, `str`= 395, `agi`= 590, `sta`= 343, `inte`= 155, `spi`= 219 WHERE `creature_entry`= 1860 AND `level`= 83;
UPDATE `pet_levelstats` SET `hp`= 21155, `mana`= 11767, `armor`= 18984, `str`= 370, `agi`= 444, `sta`= 338, `inte`= 153, `spi`= 215 WHERE `creature_entry`= 1860 AND `level`= 82;
UPDATE `pet_levelstats` SET `hp`= 13778, `mana`= 7882, `armor`= 15997, `str`= 345, `agi`= 297, `sta`= 333, `inte`= 151, `spi`= 212 WHERE `creature_entry`= 1860 AND `level`= 81;
-- Doomguard, Felhunter, Succubus and Imp
UPDATE `pet_levelstats` SET `hp`= 43285, `mana`= 23422, `armor`= 16083, `str`= 453, `agi`= 883, `sta`= 353, `inte`= 159, `spi`= 225 WHERE `creature_entry` IN (1863, 17252, 417, 416) AND `level`= 85;
UPDATE `pet_levelstats` SET `hp`= 35908, `mana`= 19537, `armor`= 15469, `str`= 420, `agi`= 737, `sta`= 348, `inte`= 157, `spi`= 222 WHERE `creature_entry` IN (1863, 17252, 417, 416) AND `level`= 84;
UPDATE `pet_levelstats` SET `hp`= 28531, `mana`= 15652, `armor`= 14854, `str`= 395, `agi`= 590, `sta`= 343, `inte`= 155, `spi`= 219 WHERE `creature_entry` IN (1863, 17252, 417, 416) AND `level`= 83;
UPDATE `pet_levelstats` SET `hp`= 21155, `mana`= 11767, `armor`= 14240, `str`= 370, `agi`= 444, `sta`= 338, `inte`= 153, `spi`= 215 WHERE `creature_entry` IN (1863, 17252, 417, 416) AND `level`= 82;
UPDATE `pet_levelstats` SET `hp`= 13778, `mana`= 7882, `armor`= 13625, `str`= 345, `agi`= 297, `sta`= 333, `inte`= 151, `spi`= 212 WHERE `creature_entry` IN (1863, 17252, 417, 416) AND `level`= 81;

View File

@@ -83,6 +83,11 @@ enum MiscPetCalculate
SPELL_PET_HEALTH_SCALING = 61679,
};
enum WarlockSpellIconId
{
SPELL_ICON_ID_GLYPH_OF_VOID_WALKER = 217,
};
class spell_warl_pet_scaling_01 : public AuraScript
{
PrepareAuraScript(spell_warl_pet_scaling_01);
@@ -95,35 +100,35 @@ class spell_warl_pet_scaling_01 : public AuraScript
{
if (Player* owner = pet->GetOwner())
{
float stamina = std::max(0.0f, owner->GetStat(STAT_STAMINA) - owner->GetCreateStat(STAT_STAMINA));
stamina *= 0.75f;
float stamina = owner->GetStat(STAT_STAMINA) * 0.6496f;
float staminaBonus = 0.0f;
float maxHealthBonus = 0.0f;
switch (pet->GetEntry())
{
case ENTRY_IMP:
staminaBonus = uint32(stamina * 8.4f);
maxHealthBonus = owner->CountPctFromMaxHealth(30);
staminaBonus = stamina * 8.4f;
break;
case ENTRY_FELGUARD:
case ENTRY_VOIDWALKER:
staminaBonus = uint32(stamina * 11.0f);
maxHealthBonus = owner->CountPctFromMaxHealth(50);
staminaBonus = stamina * 11.0f;
break;
case ENTRY_SUCCUBUS:
staminaBonus = uint32(stamina * 9.1f);
maxHealthBonus = owner->CountPctFromMaxHealth(40);
staminaBonus = stamina * 9.1f;
break;
case ENTRY_FELHUNTER:
staminaBonus = uint32(stamina * 9.5f);
maxHealthBonus = owner->CountPctFromMaxHealth(40);
staminaBonus = stamina * 9.5f;
break;
default:
break;
}
amount = int32(staminaBonus + maxHealthBonus);
float glyphBonus = 0.0f;
// Glyph of Voidwalker
if (pet->GetEntry() == ENTRY_VOIDWALKER)
if (AuraEffect* glyphEffect = owner->GetDummyAuraEffect(SPELLFAMILY_WARLOCK, SPELL_ICON_ID_GLYPH_OF_VOID_WALKER, EFFECT_0))
glyphBonus = CalculatePct(pet->GetCreateHealth() + staminaBonus, glyphEffect->GetAmount());
amount = int32(staminaBonus + glyphBonus);
}
}
}
@@ -194,8 +199,7 @@ class spell_warl_pet_scaling_02 : public AuraScript
break;
}
float ownerMana = CalculatePct(owner->GetMaxPower(POWER_MANA), 30);
amount = int32(ownerMana + manaBonus);
amount = int32(manaBonus);
}
}
}
@@ -526,7 +530,7 @@ class spell_hun_pet_scaling_01 : public AuraScript
else if (pet->HasAura(SPELL_HUNTER_PET_CUNNING_MARKER))
mod = 0.725f;
float stamina = std::max(0.0f, owner->GetStat(STAT_STAMINA) - owner->GetCreateStat(STAT_STAMINA));
float stamina = owner->GetStat(STAT_STAMINA);
uint32 bonus = (stamina * mod) * 14.0f;
amount = bonus;
}
@@ -1103,7 +1107,7 @@ class spell_mage_water_elemental_scaling_01 : public AuraScript
{
if (Player* owner = pet->GetOwner())
{
float stamina = CalculatePct(std::max(0.0f, (owner->GetStat(STAT_STAMINA) - owner->GetCreateStat(STAT_STAMINA))), 30);
float stamina = CalculatePct(owner->GetStat(STAT_STAMINA), 30);
float staminaBonus = stamina * 7.5f;
float maxHealthBonus = owner->CountPctFromMaxHealth(50);