aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Unit
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2016-01-10 00:14:45 +0100
committerShauren <shauren.trinity@gmail.com>2016-05-20 23:39:39 +0200
commit65c0a0ee4d5c299f3caab04b6cb3fcd7a4a93e2e (patch)
tree32d719777c358074e00a03aaf7cea60840cdf5a5 /src/server/game/Entities/Unit
parent91753a94b33b73185ebb0ef551c02bae422b1a46 (diff)
Core/Entities: Updated updatefields to 7.0.1.20810
Diffstat (limited to 'src/server/game/Entities/Unit')
-rw-r--r--src/server/game/Entities/Unit/StatSystem.cpp36
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp2
2 files changed, 14 insertions, 24 deletions
diff --git a/src/server/game/Entities/Unit/StatSystem.cpp b/src/server/game/Entities/Unit/StatSystem.cpp
index f5660efe00e..deb163fde7e 100644
--- a/src/server/game/Entities/Unit/StatSystem.cpp
+++ b/src/server/game/Entities/Unit/StatSystem.cpp
@@ -752,6 +752,10 @@ void Player::ApplyHealthRegenBonus(int32 amount, bool apply)
void Player::UpdateManaRegen()
{
+ uint32 manaIndex = GetPowerIndex(POWER_MANA);
+ if (manaIndex == MAX_POWERS)
+ return;
+
// Mana regen from spirit
float spirit_regen = OCTRegenMPPerSpirit();
// Apply PCT bonus from SPELL_AURA_MOD_POWER_REGEN_PERCENT aura on spirit base regen
@@ -763,36 +767,22 @@ void Player::UpdateManaRegen()
// Set regen rate in cast state apply only on spirit based regen
int32 modManaRegenInterrupt = GetTotalAuraModifier(SPELL_AURA_MOD_MANA_REGEN_INTERRUPT);
- SetStatFloatValue(UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER, base_regen + CalculatePct(spirit_regen, modManaRegenInterrupt));
- SetStatFloatValue(UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER, 0.001f + spirit_regen + base_regen);
+ SetStatFloatValue(UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER + manaIndex, base_regen + CalculatePct(spirit_regen, modManaRegenInterrupt));
+ SetStatFloatValue(UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER + manaIndex, 0.001f + spirit_regen + base_regen);
}
-void Player::UpdateRuneRegen(RuneType rune)
+void Player::UpdateAllRunesRegen()
{
- if (rune >= NUM_RUNE_TYPES)
+ if (getClass() != CLASS_DEATH_KNIGHT)
return;
- uint32 cooldown = 0;
-
- for (uint32 i = 0; i < MAX_RUNES; ++i)
- if (GetBaseRune(i) == rune)
- {
- cooldown = GetRuneBaseCooldown(i);
- break;
- }
-
- if (cooldown <= 0)
+ uint32 runeIndex = GetPowerIndex(POWER_RUNES);
+ if (runeIndex == MAX_POWERS)
return;
- float regen = float(1 * IN_MILLISECONDS) / float(cooldown);
- SetFloatValue(PLAYER_RUNE_REGEN_1 + uint8(rune), regen);
-}
-
-void Player::UpdateAllRunesRegen()
-{
- for (uint8 i = 0; i < NUM_RUNE_TYPES; ++i)
- if (uint32 cooldown = GetRuneTypeBaseCooldown(RuneType(i)))
- SetFloatValue(PLAYER_RUNE_REGEN_1 + i, float(1 * IN_MILLISECONDS) / float(cooldown));
+ uint32 cooldown = GetRuneTypeBaseCooldown();
+ SetStatFloatValue(UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER + runeIndex, float(1 * IN_MILLISECONDS) / float(cooldown));
+ SetStatFloatValue(UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER + runeIndex, float(1 * IN_MILLISECONDS) / float(cooldown));
}
void Player::_ApplyAllStatBonuses()
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 4328af96d90..271b84364de 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -8234,7 +8234,7 @@ float Unit::GetUnitSpellCriticalChance(Unit* victim, SpellInfo const* spellProto
crit_chance = 0.0f;
// For other schools
else if (GetTypeId() == TYPEID_PLAYER)
- crit_chance = GetFloatValue(PLAYER_SPELL_CRIT_PERCENTAGE1 + GetFirstSchoolInMask(schoolMask));
+ crit_chance = GetFloatValue(PLAYER_SPELL_CRIT_PERCENTAGE1);
else
{
crit_chance = (float)m_baseSpellCritChance;