diff options
author | Souler <soulerhyd@gmail.com> | 2012-03-04 20:45:13 +0100 |
---|---|---|
committer | Souler <soulerhyd@gmail.com> | 2012-03-04 20:48:15 +0100 |
commit | 54fc5c0974b1f1edb0512dca0b0c63cd1bb4bb07 (patch) | |
tree | 9c8ceb0b7b134eec6207454af884d06202bbc55a | |
parent | b825573c2919af5a06b6482f3a437c0638171b92 (diff) |
Core/Arenas/Dalaran Sewers: Repeat the central waterfall knockback while it stills active.
-rw-r--r-- | src/server/game/Battlegrounds/Zones/BattlegroundDS.cpp | 14 | ||||
-rwxr-xr-x | src/server/game/Battlegrounds/Zones/BattlegroundDS.h | 5 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundDS.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundDS.cpp index 7db03381407..1d042f20384 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundDS.cpp +++ b/src/server/game/Battlegrounds/Zones/BattlegroundDS.cpp @@ -65,6 +65,19 @@ void BattlegroundDS::PostUpdateImpl(uint32 diff) setPipeKnockBackTimer(getPipeKnockBackTimer() - diff); } + if (getWaterFallStatus() == BG_DS_WATERFALL_STATUS_ON) // Repeat knockback while the waterfall still active + { + if (getWaterFallKnockbackTimer() < diff) + { + if (Creature* waterSpout = GetBgMap()->GetCreature(BgCreatures[BG_DS_NPC_WATERFALL_KNOCKBACK])) + waterSpout->CastSpell(waterSpout, BG_DS_SPELL_WATER_SPOUT, true); + + setWaterFallKnockbackTimer(BG_DS_WATERFALL_KNOCKBACK_TIMER); + } + else + setWaterFallKnockbackTimer(getWaterFallKnockbackTimer() - diff); + } + if (getWaterFallTimer() < diff) { if (getWaterFallStatus() == BG_DS_WATERFALL_STATUS_OFF) // Add the water @@ -83,6 +96,7 @@ void BattlegroundDS::PostUpdateImpl(uint32 diff) setWaterFallTimer(BG_DS_WATERFALL_DURATION); setWaterFallStatus(BG_DS_WATERFALL_STATUS_ON); + setWaterFallKnockbackTimer(BG_DS_WATERFALL_KNOCKBACK_TIMER); } else //if (getWaterFallStatus() == BG_DS_WATERFALL_STATUS_ON) // Remove collision and water { diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundDS.h b/src/server/game/Battlegrounds/Zones/BattlegroundDS.h index a10e75eb6f4..12ed91fc922 100755 --- a/src/server/game/Battlegrounds/Zones/BattlegroundDS.h +++ b/src/server/game/Battlegrounds/Zones/BattlegroundDS.h @@ -68,6 +68,8 @@ enum BattlegroundDSData BG_DS_WATERFALL_TIMER_MAX = 60000, BG_DS_WATERFALL_WARNING_DURATION = 7000, BG_DS_WATERFALL_DURATION = 10000, + BG_DS_WATERFALL_KNOCKBACK_TIMER = 500, + BG_DS_PIPE_KNOCKBACK_FIRST_DELAY = 5000, BG_DS_PIPE_KNOCKBACK_DELAY = 3000, BG_DS_PIPE_KNOCKBACK_TOTAL_COUNT = 2, @@ -106,6 +108,7 @@ class BattlegroundDS : public Battleground private: uint32 _waterfallTimer; uint8 _waterfallStatus; + uint32 _waterfallKnockbackTimer; uint32 _pipeKnockBackTimer; uint8 _pipeKnockBackCount; @@ -115,6 +118,8 @@ class BattlegroundDS : public Battleground void setWaterFallStatus(uint8 status) { _waterfallStatus = status; }; uint32 getWaterFallTimer() { return _waterfallTimer; }; void setWaterFallTimer(uint32 timer) { _waterfallTimer = timer; }; + uint32 getWaterFallKnockbackTimer() { return _waterfallTimer; }; + void setWaterFallKnockbackTimer(uint32 timer) { _waterfallKnockbackTimer = timer; }; uint8 getPipeKnockBackCount() { return _pipeKnockBackCount; }; void setPipeKnockBackCount(uint8 count) { _pipeKnockBackCount = count; }; uint32 getPipeKnockBackTimer() { return _pipeKnockBackTimer; }; |