mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-27 15:46:24 +00:00
refactor(Core): AddEventAtOffset (#23140)
This commit is contained in:
@@ -366,7 +366,7 @@ void BattlegroundQueue::RemovePlayer(ObjectGuid guid, bool decreaseInvitedCount)
|
||||
|
||||
void BattlegroundQueue::AddEvent(BasicEvent* Event, uint64 e_time)
|
||||
{
|
||||
m_events.AddEvent(Event, m_events.CalculateTime(e_time));
|
||||
m_events.AddEventAtOffset(Event, Milliseconds(e_time));
|
||||
}
|
||||
|
||||
bool BattlegroundQueue::IsPlayerInvitedToRatedArena(ObjectGuid pl_guid)
|
||||
|
||||
@@ -2159,12 +2159,12 @@ void Creature::Respawn(bool force)
|
||||
}
|
||||
}
|
||||
|
||||
void Creature::ForcedDespawn(uint32 timeMSToDespawn, Seconds forceRespawnTimer)
|
||||
void Creature::ForcedDespawn(Milliseconds timeMSToDespawn, Seconds forceRespawnTimer)
|
||||
{
|
||||
if (timeMSToDespawn)
|
||||
if (timeMSToDespawn > 0ms)
|
||||
{
|
||||
ForcedDespawnDelayEvent* pEvent = new ForcedDespawnDelayEvent(*this, forceRespawnTimer);
|
||||
m_Events.AddEvent(pEvent, m_Events.CalculateTime(timeMSToDespawn));
|
||||
m_Events.AddEventAtOffset(pEvent, timeMSToDespawn);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2182,9 +2182,9 @@ void Creature::ForcedDespawn(uint32 timeMSToDespawn, Seconds forceRespawnTimer)
|
||||
void Creature::DespawnOrUnsummon(Milliseconds msTimeToDespawn /*= 0ms*/, Seconds forcedRespawnTimer /*= 0s*/)
|
||||
{
|
||||
if (TempSummon* summon = this->ToTempSummon())
|
||||
summon->UnSummon(msTimeToDespawn.count());
|
||||
summon->UnSummon(msTimeToDespawn);
|
||||
else
|
||||
ForcedDespawn(msTimeToDespawn.count(), forcedRespawnTimer);
|
||||
ForcedDespawn(msTimeToDespawn, forcedRespawnTimer);
|
||||
}
|
||||
|
||||
void Creature::DespawnOnEvade(Seconds respawnDelay)
|
||||
@@ -2464,7 +2464,7 @@ void Creature::CallAssistance(Unit* target /*= nullptr*/)
|
||||
e->AddAssistant((*assistList.begin())->GetGUID());
|
||||
assistList.pop_front();
|
||||
}
|
||||
m_Events.AddEvent(e, m_Events.CalculateTime(sWorld->getIntConfig(CONFIG_CREATURE_FAMILY_ASSISTANCE_DELAY)));
|
||||
m_Events.AddEventAtOffset(e, Milliseconds(sWorld->getIntConfig(CONFIG_CREATURE_FAMILY_ASSISTANCE_DELAY)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3762,7 +3762,7 @@ void Creature::ModifyThreatPercentTemp(Unit* victim, int32 percent, Milliseconds
|
||||
}
|
||||
|
||||
TemporaryThreatModifierEvent* pEvent = new TemporaryThreatModifierEvent(*this, victim->GetGUID(), currentThreat);
|
||||
m_Events.AddEvent(pEvent, m_Events.CalculateTime(duration.count()));
|
||||
m_Events.AddEventAtOffset(pEvent, duration);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -505,7 +505,7 @@ protected:
|
||||
bool IsAlwaysDetectableFor(WorldObject const* seer) const override;
|
||||
|
||||
private:
|
||||
void ForcedDespawn(uint32 timeMSToDespawn = 0, Seconds forcedRespawnTimer = 0s);
|
||||
void ForcedDespawn(Milliseconds timeMSToDespawn = 0ms, Seconds forcedRespawnTimer = 0s);
|
||||
|
||||
[[nodiscard]] bool CanPeriodicallyCallForAssistance() const;
|
||||
|
||||
|
||||
@@ -284,13 +284,12 @@ void TempSummon::SetTempSummonType(TempSummonType type)
|
||||
m_type = type;
|
||||
}
|
||||
|
||||
void TempSummon::UnSummon(uint32 msTime)
|
||||
void TempSummon::UnSummon(Milliseconds msTime)
|
||||
{
|
||||
if (msTime)
|
||||
if (msTime > 0ms)
|
||||
{
|
||||
ForcedUnsummonDelayEvent* pEvent = new ForcedUnsummonDelayEvent(*this);
|
||||
|
||||
m_Events.AddEvent(pEvent, m_Events.CalculateTime(msTime));
|
||||
m_Events.AddEventAtOffset(pEvent, msTime);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ public:
|
||||
void Update(uint32 time) override;
|
||||
virtual void InitStats(uint32 lifetime);
|
||||
virtual void InitSummon();
|
||||
virtual void UnSummon(uint32 msTime = 0);
|
||||
virtual void UnSummon(Milliseconds msTime = 0ms);
|
||||
void UpdateObjectVisibilityOnCreate() override;
|
||||
void RemoveFromWorld() override;
|
||||
void SetTempSummonType(TempSummonType type);
|
||||
@@ -133,4 +133,5 @@ public:
|
||||
private:
|
||||
TempSummon& m_owner;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -119,11 +119,11 @@ void Totem::InitSummon()
|
||||
}
|
||||
}
|
||||
|
||||
void Totem::UnSummon(uint32 msTime)
|
||||
void Totem::UnSummon(Milliseconds msTime)
|
||||
{
|
||||
if (msTime)
|
||||
if (msTime > 0ms)
|
||||
{
|
||||
m_Events.AddEvent(new ForcedUnsummonDelayEvent(*this), m_Events.CalculateTime(msTime));
|
||||
m_Events.AddEventAtOffset(new ForcedUnsummonDelayEvent(*this), msTime);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ public:
|
||||
void Update(uint32 time) override;
|
||||
void InitStats(uint32 duration) override;
|
||||
void InitSummon() override;
|
||||
void UnSummon(uint32 msTime = 0) override;
|
||||
void UnSummon(Milliseconds msTime = 0ms) override;
|
||||
uint32 GetSpell(uint8 slot = 0) const { return m_spells[slot]; }
|
||||
uint32 GetTotemDuration() const { return m_duration; }
|
||||
void SetTotemDuration(uint32 duration) { m_duration = duration; }
|
||||
|
||||
@@ -11071,7 +11071,7 @@ int32 Unit::DealHeal(Unit* healer, Unit* victim, uint32 addhealth)
|
||||
return gain;
|
||||
}
|
||||
|
||||
bool RedirectSpellEvent::Execute(uint64 /*e_time*/, uint32 /*p_time*/)
|
||||
bool RedirectSpellEvent::Execute(uint64 /*e_time*/, uint32 /*p_time*/)
|
||||
{
|
||||
if (Unit* auraOwner = ObjectAccessor::GetUnit(_self, _auraOwnerGUID))
|
||||
{
|
||||
@@ -19572,7 +19572,7 @@ void Unit::ExitVehicle(Position const* /*exitPosition*/)
|
||||
}
|
||||
}
|
||||
|
||||
bool VehicleDespawnEvent::Execute(uint64 /*e_time*/, uint32 /*p_time*/)
|
||||
bool VehicleDespawnEvent::Execute(uint64 /*e_time*/, uint32 /*p_time*/)
|
||||
{
|
||||
Position pos = _self;
|
||||
_self.MovePositionToFirstCollision(pos, 20.0f, M_PI);
|
||||
@@ -19699,7 +19699,7 @@ void Unit::_ExitVehicle(Position const* exitPosition)
|
||||
setDeathState(DeathState::JustDied);
|
||||
// If for other reason we as minion are exiting the vehicle (ejected, master dismounted) - unsummon
|
||||
else
|
||||
ToTempSummon()->UnSummon(2000); // Approximation
|
||||
ToTempSummon()->UnSummon(2s); // Approximation
|
||||
}
|
||||
|
||||
if (player)
|
||||
@@ -20086,7 +20086,7 @@ class AuraMunchingQueue : public BasicEvent
|
||||
public:
|
||||
AuraMunchingQueue(Unit& owner, ObjectGuid targetGUID, int32 basePoints, uint32 spellId, AuraEffect* aurEff, AuraType auraType) : _owner(owner), _targetGUID(targetGUID), _basePoints(basePoints), _spellId(spellId), _aurEff(aurEff), _auraType(auraType) { }
|
||||
|
||||
bool Execute(uint64 /*eventTime*/, uint32 /*updateTime*/) override
|
||||
bool Execute(uint64 /*e_time*/, uint32 /*p_time*/) override
|
||||
{
|
||||
if (_owner.IsInWorld() && _owner.FindMap())
|
||||
if (Unit* target = ObjectAccessor::GetUnit(_owner, _targetGUID))
|
||||
|
||||
@@ -2392,7 +2392,7 @@ void Spell::AddUnitTarget(Unit* target, uint32 effectMask, bool checkIfValid /*=
|
||||
targetInfo.reflectResult = SPELL_MISS_PARRY;
|
||||
|
||||
// Increase time interval for reflected spells by 1.5
|
||||
m_caster->m_Events.AddEvent(new ReflectEvent(m_caster, targetInfo.targetGUID, m_spellInfo), m_caster->m_Events.CalculateTime(targetInfo.timeDelay));
|
||||
m_caster->m_Events.AddEventAtOffset(new ReflectEvent(m_caster, targetInfo.targetGUID, m_spellInfo), Milliseconds(targetInfo.timeDelay));
|
||||
targetInfo.timeDelay += targetInfo.timeDelay >> 1;
|
||||
|
||||
m_spellFlags |= SPELL_FLAG_REFLECTED;
|
||||
@@ -3439,7 +3439,7 @@ SpellCastResult Spell::prepare(SpellCastTargets const* targets, AuraEffect const
|
||||
|
||||
// create and add update event for this spell
|
||||
_spellEvent = new SpellEvent(this);
|
||||
m_caster->m_Events.AddEvent(_spellEvent, m_caster->m_Events.CalculateTime(1));
|
||||
m_caster->m_Events.AddEventAtOffset(_spellEvent, 1ms);
|
||||
|
||||
if (sDisableMgr->IsDisabledFor(DISABLE_TYPE_SPELL, m_spellInfo->Id, m_caster))
|
||||
{
|
||||
@@ -8166,7 +8166,7 @@ bool SpellEvent::IsDeletable() const
|
||||
return m_Spell->IsDeletable();
|
||||
}
|
||||
|
||||
bool ReflectEvent::Execute(uint64 /*e_time*/, uint32 /*p_time*/)
|
||||
bool ReflectEvent::Execute(uint64 /*e_time*/, uint32 /*p_time*/)
|
||||
{
|
||||
Unit* target = ObjectAccessor::GetUnit(*_caster, _targetGUID);
|
||||
if (target && _caster->IsInMap(target))
|
||||
|
||||
Reference in New Issue
Block a user