aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Player
diff options
context:
space:
mode:
authorclick <none@none>2010-12-02 22:50:30 +0100
committerclick <none@none>2010-12-02 22:50:30 +0100
commit28c2e270db3fb866369da1e01e6a7030a9e64eee (patch)
treeafa0814cd5e304cc4507a68c42d6bea506f1e9ac /src/server/game/Entities/Player
parent2338eae0ff984c2b0e3e18f3dbb0301a47674613 (diff)
Core/Battlegrounds: Implement power resets on arena-fight preparations (first 60 seconds before arena-fight kicks off) (Thanks to Kaelima)
Restores all player powers every 5 seconds untill arena starts (fixes possible exploit with entering arena battle with full rage or runic power) (The 5 second timer is not 100% confirmed, as official pages only states that the power is reset after prep-time - needs feedback) Closes issue 4805 --HG-- branch : trunk
Diffstat (limited to 'src/server/game/Entities/Player')
-rwxr-xr-xsrc/server/game/Entities/Player/Player.cpp20
-rwxr-xr-xsrc/server/game/Entities/Player/Player.h2
2 files changed, 22 insertions, 0 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 7d8a72d7d56..cc4ca11f207 100755
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -2360,6 +2360,26 @@ void Player::RegenerateHealth()
ModifyHealth(int32(addvalue));
}
+void Player::ResetAllPowers()
+{
+ SetHealth(GetMaxHealth());
+ switch (getPowerType())
+ {
+ case POWER_MANA:
+ SetPower(POWER_MANA, GetMaxPower(POWER_MANA));
+ break;
+ case POWER_RAGE:
+ SetPower(POWER_RAGE, 0);
+ break;
+ case POWER_ENERGY:
+ SetPower(POWER_ENERGY, GetMaxPower(POWER_ENERGY));
+ break;
+ case POWER_RUNIC_POWER:
+ SetPower(POWER_RUNIC_POWER, 0);
+ break;
+ }
+}
+
bool Player::CanInteractWithNPCs(bool alive) const
{
if (alive && !isAlive())
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index d09be1ec43a..e64c7d0807b 100755
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -1993,6 +1993,8 @@ class Player : public Unit, public GridObject<Player>
void _ApplyAllStatBonuses();
void _RemoveAllStatBonuses();
+ void ResetAllPowers();
+
void _ApplyWeaponDependentAuraMods(Item *item, WeaponAttackType attackType, bool apply);
void _ApplyWeaponDependentAuraCritMod(Item *item, WeaponAttackType attackType, AuraEffect const * aura, bool apply);
void _ApplyWeaponDependentAuraDamageMod(Item *item, WeaponAttackType attackType, AuraEffect const * aura, bool apply);