diff options
| author | click <none@none> | 2010-12-02 22:50:30 +0100 |
|---|---|---|
| committer | click <none@none> | 2010-12-02 22:50:30 +0100 |
| commit | 28c2e270db3fb866369da1e01e6a7030a9e64eee (patch) | |
| tree | afa0814cd5e304cc4507a68c42d6bea506f1e9ac /src/server/game/Entities/Player | |
| parent | 2338eae0ff984c2b0e3e18f3dbb0301a47674613 (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-x | src/server/game/Entities/Player/Player.cpp | 20 | ||||
| -rwxr-xr-x | src/server/game/Entities/Player/Player.h | 2 |
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); |
