/* * Copyright (C) 2016+ AzerothCore , license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE */ #ifndef __AB_UTILS_H #define __AB_UTILS_H #include "ABInflectionPointSettings.h" #include "ABLevelScalingDynamicLevelSettings.h" #include "ABMapInfo.h" #include "ABStatModifiers.h" #include "AutoBalance.h" #include "Creature.h" #include "Map.h" #include "SharedDefines.h" #include #include #include void AddCreatureToMapCreatureList(Creature* creature, bool addToCreatureList = true, bool forceRecalculation = false); void RemoveCreatureFromMapData(Creature* creature); uint64_t GetCurrentConfigTime(); uint32 getBaseExpansionValueForLevel(const uint32 baseValues[3], uint8 targetLevel); float getBaseExpansionValueForLevel(const float baseValues[3], uint8 targetLevel); float getDefaultMultiplier(Map* map, AutoBalanceInflectionPointSettings inflectionPointSettings); int GetForcedNumPlayers(int creatureId); World_Multipliers getWorldMultiplier(Map* map, BaseValueType baseValueType); AutoBalanceInflectionPointSettings getInflectionPointSettings(InstanceMap* instanceMap, bool isBoss = false); void getStatModifiersDebug(Map* map, Creature* creature, std::string message); AutoBalanceStatModifiers getStatModifiers(Map* map, Creature* creature = nullptr); bool hasBossOverride(uint32 dungeonId); bool hasDungeonOverride(uint32 dungeonId); bool hasDynamicLevelOverride(uint32 dungeonId); bool hasLevelScalingDistanceCheckOverride(uint32 dungeonId); bool hasStatModifierBossOverride(uint32 dungeonId); bool hasStatModifierCreatureOverride(uint32 creatureId); bool hasStatModifierOverride(uint32 dungeonId); bool isBossOrBossSummon(Creature* creature, bool log = false); bool isCreatureRelevant(Creature* creature); bool isDungeonInDisabledDungeonIds(uint32 dungeonId); bool isDungeonInMinPlayerMap(uint32 dungeonId, bool isHeroic); void LoadForcedCreatureIdsFromString(std::string creatureIds, int forcedPlayerCount); std::list LoadDisabledDungeons(std::string dungeonIdString); std::map LoadDistanceCheckOverrides(std::string dungeonIdString); std::map LoadDynamicLevelOverrides(std::string dungeonIdString); std::map LoadInflectionPointOverrides(std::string dungeonIdString); void LoadMapSettings(Map* map); std::map LoadMinPlayersPerDungeonId(std::string minPlayersString); std::map LoadStatModifierOverrides(std::string dungeonIdString); bool ShouldMapBeEnabled (Map* map); void UpdateMapPlayerStats (Map* map); void AddPlayerToMap(Map* map, Player* player); bool RemovePlayerFromMap(Map* map, Player* player); bool UpdateMapDataIfNeeded(Map* map, bool force = false); AutoBalanceMapInfo* GetMapInfo(Map* map); #endif