aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Pet/Pet.cpp12
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp6
-rw-r--r--src/server/game/Globals/ObjectMgr.h6
3 files changed, 18 insertions, 6 deletions
diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp
index 5ad30f70458..2d233e2f76d 100644
--- a/src/server/game/Entities/Pet/Pet.cpp
+++ b/src/server/game/Entities/Pet/Pet.cpp
@@ -904,8 +904,16 @@ bool Guardian::InitStatsForLevel(uint8 petlevel)
SetBonusDamage(val * 0.15f);
- SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, float(petlevel - (petlevel / 4)));
- SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, float(petlevel + (petlevel / 4)));
+ if (pInfo)
+ {
+ SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, float(pInfo->minDamage));
+ SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, float(pInfo->maxDamage));
+ }
+ else
+ {
+ SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, float(petlevel - (petlevel / 4)));
+ SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, float(petlevel + (petlevel / 4)));
+ }
//SetModifierValue(UNIT_MOD_ATTACK_POWER, BASE_VALUE, float(cinfo->attackpower));
break;
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index c6fc79a51d0..00461bbfb99 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -3322,8 +3322,8 @@ void ObjectMgr::LoadPetLevelInfo()
{
uint32 oldMSTime = getMSTime();
- // 0 1 2 3 4 5 6 7 8 9
- QueryResult result = WorldDatabase.Query("SELECT creature_entry, level, hp, mana, str, agi, sta, inte, spi, armor FROM pet_levelstats");
+ // 0 1 2 3 4 5 6 7 8 9 10 11
+ QueryResult result = WorldDatabase.Query("SELECT creature_entry, level, hp, mana, str, agi, sta, inte, spi, armor, min_dmg, max_dmg FROM pet_levelstats");
if (!result)
{
@@ -3372,6 +3372,8 @@ void ObjectMgr::LoadPetLevelInfo()
pLevelInfo->health = fields[2].GetUInt16();
pLevelInfo->mana = fields[3].GetUInt16();
pLevelInfo->armor = fields[9].GetUInt32();
+ pLevelInfo->minDamage = fields[10].GetUInt16();
+ pLevelInfo->maxDamage = fields[11].GetUInt16();
for (uint8 i = 0; i < MAX_STATS; i++)
pLevelInfo->stats[i] = fields[i + 4].GetUInt16();
diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h
index 6c5c69ad226..dbbdefc9874 100644
--- a/src/server/game/Globals/ObjectMgr.h
+++ b/src/server/game/Globals/ObjectMgr.h
@@ -663,7 +663,7 @@ typedef std::pair<ExclusiveQuestGroups::const_iterator, ExclusiveQuestGroups::co
struct PetLevelInfo
{
- PetLevelInfo() : health(0), mana(0), armor(0)
+ PetLevelInfo() : health(0), mana(0), armor(0), minDamage(0), maxDamage(0)
{
for (uint16& stat : stats)
stat = 0;
@@ -672,7 +672,9 @@ struct PetLevelInfo
uint16 stats[MAX_STATS];
uint16 health;
uint16 mana;
- uint16 armor;
+ uint32 armor;
+ uint16 minDamage;
+ uint16 maxDamage;
};
struct MailLevelReward