aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2016-09-20 23:09:10 +0200
committerShauren <shauren.trinity@gmail.com>2016-09-20 23:09:10 +0200
commitbba7b6a554c3be59edc2a9b520e5ba132b0efc52 (patch)
tree7f4013616e58b77c8060f43e46c8a152c8a02579 /src/server/game/Entities
parente1f4b6b04cc8bf386f23d45c930d706855af03c5 (diff)
Core/Player: Set max power values from PowerType.db2
Diffstat (limited to 'src/server/game/Entities')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp46
1 files changed, 5 insertions, 41 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 089b9c50ab1..a04a4fa397e 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -11101,47 +11101,11 @@ uint32 Unit::GetPowerIndex(uint32 powerType) const
int32 Unit::GetCreatePowers(Powers power) const
{
- switch (power)
- {
- case POWER_MANA:
- return GetCreateMana();
- case POWER_RAGE:
- case POWER_PAIN:
- return 1000;
- case POWER_FOCUS:
- if (GetTypeId() == TYPEID_PLAYER && getClass() == CLASS_HUNTER)
- return 100;
- return (GetTypeId() == TYPEID_PLAYER || !((Creature const*)this)->IsPet() || ((Pet const*)this)->getPetType() != HUNTER_PET ? 0 : 100);
- case POWER_ENERGY:
- case POWER_FURY:
- return 100;
- case POWER_COMBO_POINTS:
- return 5;
- case POWER_RUNIC_POWER:
- return 1000;
- case POWER_RUNES:
- return 6;
- case POWER_SOUL_SHARDS:
- return 400;
- case POWER_LUNAR_POWER:
- return 100;
- case POWER_HOLY_POWER:
- return 3;
- case POWER_CHI:
- return 4;
- case POWER_INSANITY:
- return 3;
- case POWER_BURNING_EMBERS:
- return 40;
- case POWER_DEMONIC_FURY:
- return 1000;
- case POWER_ARCANE_CHARGES:
- return 4;
- case POWER_HEALTH:
- return 0;
- default:
- break;
- }
+ if (power == POWER_MANA)
+ return GetCreateMana();
+
+ if (PowerTypeEntry const* powerType = sDB2Manager.GetPowerTypeEntry(power))
+ return powerType->MaxPower;
return 0;
}