feat(Core/Maps): Implement dynamic respawn rates (#21417)

Co-authored-by: r00ty-tc <r00ty-tc@users.noreply.github.com>
Co-authored-by: Jelle Meeus <sogladev@gmail.com>
Co-authored-by Treeston

This is a partial cherry-pick of: 59db2eeea0
This commit is contained in:
Andrew
2025-02-12 15:06:42 -03:00
committed by GitHub
parent 5421f13c13
commit 16fa25b7a9
8 changed files with 118 additions and 2 deletions

View File

@@ -594,6 +594,9 @@ public:
void DeleteRespawnTimes();
[[nodiscard]] time_t GetInstanceResetPeriod() const { return _instanceResetPeriod; }
void UpdatePlayerZoneStats(uint32 oldZone, uint32 newZone);
void ApplyDynamicModeRespawnScaling(WorldObject const* obj, uint32& respawnDelay) const;
TaskScheduler _creatureRespawnScheduler;
void ScheduleCreatureRespawn(ObjectGuid /*creatureGuid*/, Milliseconds /*respawnTimer*/, Position pos = Position());
@@ -780,6 +783,8 @@ private:
std::unordered_map<ObjectGuid::LowType /*dbGUID*/, time_t> _creatureRespawnTimes;
std::unordered_map<ObjectGuid::LowType /*dbGUID*/, time_t> _goRespawnTimes;
std::unordered_map<uint32, uint32> _zonePlayerCountMap;
ZoneDynamicInfoMap _zoneDynamicInfo;
uint32 _defaultLight;