aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/common/Utilities/Timer.h18
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp28
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp6
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp12
4 files changed, 38 insertions, 26 deletions
diff --git a/src/common/Utilities/Timer.h b/src/common/Utilities/Timer.h
index 4abd6cc8ca1..8acd5cbdc11 100644
--- a/src/common/Utilities/Timer.h
+++ b/src/common/Utilities/Timer.h
@@ -19,7 +19,7 @@
#define TRINITY_TIMER_H
#include "Define.h"
-#include <chrono>
+#include "Duration.h"
inline std::chrono::steady_clock::time_point GetApplicationStartTime()
{
@@ -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 013552adeca..1db5952bd57 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
@@ -171,7 +171,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);
}
@@ -187,16 +187,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:
@@ -232,7 +232,7 @@ struct npc_wisp_invis : public ScriptedAI
me->RemoveAurasDueToSpell(SPELL_HEADLESS_HORSEMAN___SMOKE);
if (_secondSpell)
DoCast(me, _secondSpell);
- _timer.Reset(0);
+ _timer.Reset(0s);
}
}
@@ -245,7 +245,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();
@@ -262,7 +262,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
@@ -384,7 +384,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));
@@ -422,7 +422,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);
@@ -438,7 +438,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();
@@ -461,7 +461,7 @@ struct boss_headless_horseman : public ScriptedAI
void Reset() override
{
- _laughTimer.Reset(0);
+ _laughTimer.Reset(0s);
Initialize();
DoCastSelf(SPELL_HEADLESS_HORSEMAN_CLIMAX___HEAD_VISUAL);
@@ -654,7 +654,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);
@@ -783,7 +783,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));
}
@@ -803,7 +803,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 f00a7c1c3db..ab07d735037 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->RemoveFlag(UNIT_FIELD_FLAGS, 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);
}
}
@@ -242,7 +242,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();
}
@@ -259,7 +259,7 @@ public:
_events.Reset();
_scheduler.CancelAll();
- _killYellTimer.Reset(0);
+ _killYellTimer.Reset(0s);
DoCastSelf(SPELL_RETRIBUTION_AURA);
me->SetReactState(REACT_AGGRESSIVE);
@@ -289,7 +289,7 @@ public:
if (_killYellTimer.Passed())
{
Talk(SAY_WH_KILL);
- _killYellTimer.Reset(5 * IN_MILLISECONDS);
+ _killYellTimer.Reset(5s);
}
}