diff options
Diffstat (limited to 'src')
4 files changed, 37 insertions, 25 deletions
diff --git a/src/common/Utilities/Timer.h b/src/common/Utilities/Timer.h index a197c5cfbb4..1af967f886a 100644 --- a/src/common/Utilities/Timer.h +++ b/src/common/Utilities/Timer.h @@ -155,11 +155,18 @@ public: { } + TimeTrackerSmall(Milliseconds expiry) : i_expiryTime(expiry.count()) { } + void Update(int32 diff) { i_expiryTime -= diff; } + void Update(Milliseconds diff) + { + Update(diff.count()); + } + bool Passed() const { return i_expiryTime <= 0; @@ -170,9 +177,14 @@ public: i_expiryTime = interval; } - int32 GetExpiry() const + void Reset(Milliseconds expiry) { - return i_expiryTime; + Reset(expiry.count()); + } + + Milliseconds GetExpiry() const + { + return Milliseconds(i_expiryTime); } private: diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp index 2379123678d..28a8dfe30bb 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp @@ -170,7 +170,7 @@ static char const* HeadlessHorsemanInitialPlayerTexts[] = struct npc_wisp_invis : public ScriptedAI { - npc_wisp_invis(Creature* creature) : ScriptedAI(creature), _timer(0), _creatureType(0), _firstSpell(0), _secondSpell(0) + npc_wisp_invis(Creature* creature) : ScriptedAI(creature), _timer(0s), _creatureType(0), _firstSpell(0), _secondSpell(0) { creature->SetDisplayId(DISPLAYID_INVIS_WISP_INVISIBLE); } @@ -186,16 +186,16 @@ struct npc_wisp_invis : public ScriptedAI _firstSpell = SPELL_HEADLESS_HORSEMAN___PUMPKIN_AURA; break; case INVIS_WISP_CREATURE_TYPE_FLAME: - _timer.Reset(15 * IN_MILLISECONDS); + _timer.Reset(15s); _firstSpell = SPELL_HEADLESS_HORSEMAN___FIRE; _secondSpell = SPELL_HEADLESS_HORSEMAN_CLIMAX___HEAD_IS_DEAD; break; case INVIS_WISP_CREATURE_TYPE_SMOKE: - _timer.Reset(15 * IN_MILLISECONDS); + _timer.Reset(15s); _firstSpell = SPELL_HEADLESS_HORSEMAN___SMOKE; break; case INVIS_WISP_CREATURE_TYPE_BLUE: - _timer.Reset(7 * IN_MILLISECONDS); + _timer.Reset(7s); _secondSpell = SPELL_HEADLESS_HORSEMAN___WISP_FLIGHT_MISSILE; break; default: @@ -231,7 +231,7 @@ struct npc_wisp_invis : public ScriptedAI me->RemoveAurasDueToSpell(SPELL_HEADLESS_HORSEMAN___SMOKE); if (_secondSpell) DoCast(me, _secondSpell); - _timer.Reset(0); + _timer.Reset(0s); } } @@ -244,7 +244,7 @@ private: struct npc_head : public ScriptedAI { - npc_head(Creature* creature) : ScriptedAI(creature), _laughTimer(urand(15 * IN_MILLISECONDS, 30 * IN_MILLISECONDS)) + npc_head(Creature* creature) : ScriptedAI(creature), _laughTimer(randtime(15s, 30s)) { creature->SetReactState(REACT_PASSIVE); Initialize(); @@ -261,7 +261,7 @@ struct npc_head : public ScriptedAI void Reset() override { Initialize(); - _laughTimer.Reset(urand(15 * IN_MILLISECONDS, 30 * IN_MILLISECONDS)); + _laughTimer.Reset(randtime(15s, 30s)); _scheduler.CancelAll(); // Just to be sure it's MOTION_SLOT_DEFAULT is static @@ -383,7 +383,7 @@ struct npc_head : public ScriptedAI if (_laughTimer.Passed()) { - _laughTimer.Reset(urand(15 * IN_MILLISECONDS, 30 * IN_MILLISECONDS)); + _laughTimer.Reset(randtime(15s, 30s)); DoPlaySoundToSet(me, Trinity::Containers::SelectRandomContainerElement(HeadlessHorsemanRandomLaughSound)); @@ -421,7 +421,7 @@ private: void DoTalk(uint32 entry) { Talk(entry); - _laughTimer.Reset(3 * IN_MILLISECONDS); + _laughTimer.Reset(3s); if (Creature* speaker = DoSpawnCreature(NPC_HELPER, 0.f, 0.f, 0.f, 0.f, TEMPSUMMON_TIMED_DESPAWN, 1s)) speaker->CastSpell(speaker, SPELL_HEADLESS_HORSEMAN___SPEAKS, false); @@ -437,7 +437,7 @@ private: struct boss_headless_horseman : public ScriptedAI { - boss_headless_horseman(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()), _laughTimer(0), _phase(0), _id(0) + boss_headless_horseman(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()), _laughTimer(0s), _phase(0), _id(0) { Initialize(); @@ -460,7 +460,7 @@ struct boss_headless_horseman : public ScriptedAI void Reset() override { - _laughTimer.Reset(0); + _laughTimer.Reset(0s); Initialize(); DoCastSelf(SPELL_HEADLESS_HORSEMAN_CLIMAX___HEAD_VISUAL); @@ -653,7 +653,7 @@ struct boss_headless_horseman : public ScriptedAI if (spellInfo->Id != SPELL_HEADLESS_HORSEMAN_CLIMAX___SEND_HEAD) return; - _laughTimer.Reset(urand(2 * IN_MILLISECONDS, 5 * IN_MILLISECONDS)); + _laughTimer.Reset(randtime(2s, 5s)); _withHead = true; _scheduler.CancelGroup(TASK_GROUP_WITHOUT_HEAD); @@ -782,7 +782,7 @@ struct boss_headless_horseman : public ScriptedAI if (_withHead && _laughTimer.Passed()) { - _laughTimer.Reset(urand(11 * IN_MILLISECONDS, 22 * IN_MILLISECONDS)); + _laughTimer.Reset(randtime(11s, 22s)); DoPlaySoundToSet(me, Trinity::Containers::SelectRandomContainerElement(HeadlessHorsemanRandomLaughSound)); } @@ -802,7 +802,7 @@ private: void DoTalk(uint8 textEntry, Unit* target = nullptr) { Talk(textEntry, target); - _laughTimer.Reset(std::min<uint32>(10 * IN_MILLISECONDS, _laughTimer.GetExpiry() + 4 * IN_MILLISECONDS)); + _laughTimer.Reset(std::min(std::chrono::duration_cast<Milliseconds>(10s), _laughTimer.GetExpiry() + 4s)); } InstanceScript* _instance; diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp index c6532c4209c..2f74d20bc49 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp @@ -63,12 +63,12 @@ private: struct boss_high_inquisitor_fairbanks : public BossAI { - boss_high_inquisitor_fairbanks(Creature* creature) : BossAI(creature, DATA_HIGH_INQUISITOR_FAIRBANKS), _healTimer(0), _powerWordShield(false) { } + boss_high_inquisitor_fairbanks(Creature* creature) : BossAI(creature, DATA_HIGH_INQUISITOR_FAIRBANKS), _healTimer(0s), _powerWordShield(false) { } void Reset() override { _Reset(); - _healTimer.Reset(0); + _healTimer.Reset(0s); _powerWordShield = false; me->SetStandState(UNIT_STAND_STATE_DEAD); } @@ -95,7 +95,7 @@ struct boss_high_inquisitor_fairbanks : public BossAI if (!me->IsNonMeleeSpellCast(false) && _healTimer.Passed()) { - _healTimer.Reset(30 * IN_MILLISECONDS); + _healTimer.Reset(30s); DoCastSelf(SPELL_HEAL); } } diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp index 3f2c21135c6..54a52074021 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp @@ -77,7 +77,7 @@ Position const WhitemaneIntroMovePos = { 1163.113370f, 1398.856812f, 32.527786f, struct boss_scarlet_commander_mograine : public BossAI { public: - boss_scarlet_commander_mograine(Creature* creature) : BossAI(creature, DATA_MOGRAINE_AND_WHITE_EVENT), _killYellTimer(0) + boss_scarlet_commander_mograine(Creature* creature) : BossAI(creature, DATA_MOGRAINE_AND_WHITE_EVENT), _killYellTimer(0s) { Initialize(); } @@ -93,7 +93,7 @@ public: Initialize(); _Reset(); - _killYellTimer.Reset(0); + _killYellTimer.Reset(0s); DoCastSelf(SPELL_RETRIBUTION_AURA, true); me->RemoveUnitFlag(UnitFlags(UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE)); @@ -128,7 +128,7 @@ public: if (_killYellTimer.Passed()) { Talk(SAY_MO_KILL); - _killYellTimer.Reset(5 * IN_MILLISECONDS); + _killYellTimer.Reset(5s); } } @@ -241,7 +241,7 @@ private: struct boss_high_inquisitor_whitemane : public ScriptedAI { public: - boss_high_inquisitor_whitemane(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()), _killYellTimer(0) + boss_high_inquisitor_whitemane(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()), _killYellTimer(0s) { Initialize(); } @@ -258,7 +258,7 @@ public: _events.Reset(); _scheduler.CancelAll(); - _killYellTimer.Reset(0); + _killYellTimer.Reset(0s); DoCastSelf(SPELL_RETRIBUTION_AURA); me->SetReactState(REACT_AGGRESSIVE); @@ -288,7 +288,7 @@ public: if (_killYellTimer.Passed()) { Talk(SAY_WH_KILL); - _killYellTimer.Reset(5 * IN_MILLISECONDS); + _killYellTimer.Reset(5s); } } |