aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorWyrserth <wyrserth@protonmail.com>2019-07-18 02:19:19 +0200
committerWyrserth <wyrserth@protonmail.com>2019-07-18 02:20:36 +0200
commit5f5d2028df70e82d5cd70837953acd059f2ac7fb (patch)
treebe627448bb3079f2330faf962626202123ecc70f /src
parent50b2c3b34d5ffc9539e3f3954ec6b4e5f8a87efc (diff)
Core/Creature: don't set guardian stats in Creature::UpdateEntry(), because stat calculation from guardians is already done in Guardian::InitStatsForLevel.
Closes #281. Signed-off-by: Wyrserth <wyrserth@protonmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp34
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp6
2 files changed, 20 insertions, 20 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index 4c68ccd77e3..60a428c8dd4 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -569,21 +569,25 @@ bool Creature::UpdateEntry(uint32 entry, CreatureData const* data /*= nullptr*/,
if (updateLevel)
SelectLevel();
- uint32 previousHealth = GetHealth();
- UpdateLevelDependantStats();
- if (previousHealth > 0)
- SetHealth(previousHealth);
-
- SetMeleeDamageSchool(SpellSchools(cInfo->dmgschool));
- SetStatFlatModifier(UNIT_MOD_RESISTANCE_HOLY, BASE_VALUE, float(cInfo->resistance[SPELL_SCHOOL_HOLY]));
- SetStatFlatModifier(UNIT_MOD_RESISTANCE_FIRE, BASE_VALUE, float(cInfo->resistance[SPELL_SCHOOL_FIRE]));
- SetStatFlatModifier(UNIT_MOD_RESISTANCE_NATURE, BASE_VALUE, float(cInfo->resistance[SPELL_SCHOOL_NATURE]));
- SetStatFlatModifier(UNIT_MOD_RESISTANCE_FROST, BASE_VALUE, float(cInfo->resistance[SPELL_SCHOOL_FROST]));
- SetStatFlatModifier(UNIT_MOD_RESISTANCE_SHADOW, BASE_VALUE, float(cInfo->resistance[SPELL_SCHOOL_SHADOW]));
- SetStatFlatModifier(UNIT_MOD_RESISTANCE_ARCANE, BASE_VALUE, float(cInfo->resistance[SPELL_SCHOOL_ARCANE]));
-
- SetCanModifyStats(true);
- UpdateAllStats();
+ // Do not update guardian stats here - they are handled in Guardian::InitStatsForLevel()
+ if (!IsGuardian())
+ {
+ uint32 previousHealth = GetHealth();
+ UpdateLevelDependantStats();
+ if (previousHealth > 0)
+ SetHealth(previousHealth);
+
+ SetMeleeDamageSchool(SpellSchools(cInfo->dmgschool));
+ SetStatFlatModifier(UNIT_MOD_RESISTANCE_HOLY, BASE_VALUE, float(cInfo->resistance[SPELL_SCHOOL_HOLY]));
+ SetStatFlatModifier(UNIT_MOD_RESISTANCE_FIRE, BASE_VALUE, float(cInfo->resistance[SPELL_SCHOOL_FIRE]));
+ SetStatFlatModifier(UNIT_MOD_RESISTANCE_NATURE, BASE_VALUE, float(cInfo->resistance[SPELL_SCHOOL_NATURE]));
+ SetStatFlatModifier(UNIT_MOD_RESISTANCE_FROST, BASE_VALUE, float(cInfo->resistance[SPELL_SCHOOL_FROST]));
+ SetStatFlatModifier(UNIT_MOD_RESISTANCE_SHADOW, BASE_VALUE, float(cInfo->resistance[SPELL_SCHOOL_SHADOW]));
+ SetStatFlatModifier(UNIT_MOD_RESISTANCE_ARCANE, BASE_VALUE, float(cInfo->resistance[SPELL_SCHOOL_ARCANE]));
+
+ SetCanModifyStats(true);
+ UpdateAllStats();
+ }
// checked and error show at loading templates
if (FactionTemplateEntry const* factionTemplate = sFactionTemplateStore.LookupEntry(cInfo->faction))
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index c1ee51ef98c..50819405226 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -5863,11 +5863,7 @@ void Unit::SetMinion(Minion *minion, bool apply)
}
if (minion->HasUnitTypeMask(UNIT_MASK_CONTROLABLE_GUARDIAN))
- {
- if (AddGuidValue(UNIT_FIELD_SUMMON, minion->GetGUID()))
- {
- }
- }
+ AddGuidValue(UNIT_FIELD_SUMMON, minion->GetGUID());
if (minion->m_Properties && minion->m_Properties->Type == SUMMON_TYPE_MINIPET)
SetCritterGUID(minion->GetGUID());