Files
moonwell-core/modules/mod-autobalance/src/ABConfig.cpp
T

350 lines
12 KiB
C++

/*
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE
*/
#include "ABConfig.h"
#include "ABUtils.h"
std::map <int, int> forcedCreatureIds;
std::list<uint32> disabledDungeonIds;
uint32 minPlayersNormal;
uint32 minPlayersHeroic;
uint32 minPlayersRaid;
uint32 minPlayersRaidHeroic;
std::map<uint32, uint8> minPlayersPerDungeonIdMap;
std::map<uint32, uint8> minPlayersPerHeroicDungeonIdMap;
std::map<uint32, AutoBalanceInflectionPointSettings> dungeonOverrides;
std::map<uint32, AutoBalanceInflectionPointSettings> bossOverrides;
std::map<uint32, AutoBalanceStatModifiers> statModifierOverrides;
std::map<uint32, AutoBalanceStatModifiers> statModifierBossOverrides;
std::map<uint32, AutoBalanceStatModifiers> statModifierCreatureOverrides;
std::map<uint8, AutoBalanceLevelScalingDynamicLevelSettings> levelScalingDynamicLevelOverrides;
std::map<uint32, uint32> levelScalingDistanceCheckOverrides;
// spell IDs that spend player health
// player abilities don't actually appear to be caught by `ModifySpellDamageTaken`,
// but I'm leaving them here in case they ever DO get caught by it
std::list<uint32> spellIdsThatSpendPlayerHealth =
{
45529, // Blood Tap
2687, // Bloodrage
27869, // Dark Rune
16666, // Demonic Rune
755, // Health Funnel (Rank 1)
3698, // Health Funnel (Rank 2)
3699, // Health Funnel (Rank 3)
3700, // Health Funnel (Rank 4)
11693, // Health Funnel (Rank 5)
11694, // Health Funnel (Rank 6)
11695, // Health Funnel (Rank 7)
27259, // Health Funnel (Rank 8)
47856, // Health Funnel (Rank 9)
1454, // Life Tap (Rank 1)
1455, // Life Tap (Rank 2)
1456, // Life Tap (Rank 3)
11687, // Life Tap (Rank 4)
11688, // Life Tap (Rank 5)
11689, // Life Tap (Rank 6)
27222, // Life Tap (Rank 7)
57946, // Life Tap (Rank 8)
29858, // Soulshatter
55213 // Unholy Frenzy
};
// spell IDs that should never be modified
// handles cases where a spell is reflecting damage or otherwise converting player damage to something else
std::list<uint32> spellIdsToNeverModify =
{
1177 // Twin Empathy (AQ40 Twin Emperors, only in `spell_dbc` database table)
};
// creature IDs that should never be considered clones
// handles cases where a creature is spawned by another creature, but is not a clone (doesn't retain health/mana values)
std::list<uint32> creatureIDsThatAreNotClones =
{
16152 // Attumen the Huntsman (Karazhan) combined form
};
int8 PlayerCountDifficultyOffset;
bool LevelScaling;
int8 LevelScalingSkipHigherLevels;
int8 LevelScalingSkipLowerLevels;
int8 LevelScalingDynamicLevelCeilingDungeons;
int8 LevelScalingDynamicLevelFloorDungeons;
int8 LevelScalingDynamicLevelCeilingRaids;
int8 LevelScalingDynamicLevelFloorRaids;
int8 LevelScalingDynamicLevelCeilingHeroicDungeons;
int8 LevelScalingDynamicLevelFloorHeroicDungeons;
int8 LevelScalingDynamicLevelCeilingHeroicRaids;
int8 LevelScalingDynamicLevelFloorHeroicRaids;
ScalingMethod LevelScalingMethod;
uint32 rewardRaid;
uint32 rewardDungeon;
uint32 MinPlayerReward;
bool Announcement;
bool LevelScalingEndGameBoost;
bool PlayerChangeNotify;
bool rewardEnabled;
float MinHPModifier;
float MinManaModifier;
float MinDamageModifier;
float MinCCDurationModifier;
float MaxCCDurationModifier;
//
// RewardScaling.*
//
ScalingMethod RewardScalingMethod;
bool RewardScalingXP;
bool RewardScalingMoney;
float RewardScalingXPModifier;
float RewardScalingMoneyModifier;
uint64_t globalConfigTime = GetCurrentConfigTime();
//
// Enable.*
//
bool EnableGlobal;
bool Enable5M;
bool Enable10M;
bool Enable15M;
bool Enable20M;
bool Enable25M;
bool Enable40M;
bool Enable5MHeroic;
bool Enable10MHeroic;
bool Enable25MHeroic;
bool EnableOtherNormal;
bool EnableOtherHeroic;
//
// InflectionPoint*
//
float InflectionPoint;
float InflectionPointCurveFloor;
float InflectionPointCurveCeiling;
float InflectionPointBoss;
float InflectionPointHeroic;
float InflectionPointHeroicCurveFloor;
float InflectionPointHeroicCurveCeiling;
float InflectionPointHeroicBoss;
float InflectionPointRaid;
float InflectionPointRaidCurveFloor;
float InflectionPointRaidCurveCeiling;
float InflectionPointRaidBoss;
float InflectionPointRaidHeroic;
float InflectionPointRaidHeroicCurveFloor;
float InflectionPointRaidHeroicCurveCeiling;
float InflectionPointRaidHeroicBoss;
float InflectionPointRaid10M;
float InflectionPointRaid10MCurveFloor;
float InflectionPointRaid10MCurveCeiling;
float InflectionPointRaid10MBoss;
float InflectionPointRaid10MHeroic;
float InflectionPointRaid10MHeroicCurveFloor;
float InflectionPointRaid10MHeroicCurveCeiling;
float InflectionPointRaid10MHeroicBoss;
float InflectionPointRaid15M;
float InflectionPointRaid15MCurveFloor;
float InflectionPointRaid15MCurveCeiling;
float InflectionPointRaid15MBoss;
float InflectionPointRaid20M;
float InflectionPointRaid20MCurveFloor;
float InflectionPointRaid20MCurveCeiling;
float InflectionPointRaid20MBoss;
float InflectionPointRaid25M;
float InflectionPointRaid25MCurveFloor;
float InflectionPointRaid25MCurveCeiling;
float InflectionPointRaid25MBoss;
float InflectionPointRaid25MHeroic;
float InflectionPointRaid25MHeroicCurveFloor;
float InflectionPointRaid25MHeroicCurveCeiling;
float InflectionPointRaid25MHeroicBoss;
float InflectionPointRaid40M;
float InflectionPointRaid40MCurveFloor;
float InflectionPointRaid40MCurveCeiling;
float InflectionPointRaid40MBoss;
//
// StatModifier*
//
float StatModifier_Global;
float StatModifier_Health;
float StatModifier_Mana;
float StatModifier_Armor;
float StatModifier_Damage;
float StatModifier_CCDuration;
float StatModifierHeroic_Global;
float StatModifierHeroic_Health;
float StatModifierHeroic_Mana;
float StatModifierHeroic_Armor;
float StatModifierHeroic_Damage;
float StatModifierHeroic_CCDuration;
float StatModifierRaid_Global;
float StatModifierRaid_Health;
float StatModifierRaid_Mana;
float StatModifierRaid_Armor;
float StatModifierRaid_Damage;
float StatModifierRaid_CCDuration;
float StatModifierRaidHeroic_Global;
float StatModifierRaidHeroic_Health;
float StatModifierRaidHeroic_Mana;
float StatModifierRaidHeroic_Armor;
float StatModifierRaidHeroic_Damage;
float StatModifierRaidHeroic_CCDuration;
float StatModifierRaid10M_Global;
float StatModifierRaid10M_Health;
float StatModifierRaid10M_Mana;
float StatModifierRaid10M_Armor;
float StatModifierRaid10M_Damage;
float StatModifierRaid10M_CCDuration;
float StatModifierRaid10MHeroic_Global;
float StatModifierRaid10MHeroic_Health;
float StatModifierRaid10MHeroic_Mana;
float StatModifierRaid10MHeroic_Armor;
float StatModifierRaid10MHeroic_Damage;
float StatModifierRaid10MHeroic_CCDuration;
float StatModifierRaid15M_Global;
float StatModifierRaid15M_Health;
float StatModifierRaid15M_Mana;
float StatModifierRaid15M_Armor;
float StatModifierRaid15M_Damage;
float StatModifierRaid15M_CCDuration;
float StatModifierRaid20M_Global;
float StatModifierRaid20M_Health;
float StatModifierRaid20M_Mana;
float StatModifierRaid20M_Armor;
float StatModifierRaid20M_Damage;
float StatModifierRaid20M_CCDuration;
float StatModifierRaid25M_Global;
float StatModifierRaid25M_Health;
float StatModifierRaid25M_Mana;
float StatModifierRaid25M_Armor;
float StatModifierRaid25M_Damage;
float StatModifierRaid25M_CCDuration;
float StatModifierRaid25MHeroic_Global;
float StatModifierRaid25MHeroic_Health;
float StatModifierRaid25MHeroic_Mana;
float StatModifierRaid25MHeroic_Armor;
float StatModifierRaid25MHeroic_Damage;
float StatModifierRaid25MHeroic_CCDuration;
float StatModifierRaid40M_Global;
float StatModifierRaid40M_Health;
float StatModifierRaid40M_Mana;
float StatModifierRaid40M_Armor;
float StatModifierRaid40M_Damage;
float StatModifierRaid40M_CCDuration;
//
// StatModifier* (Boss)
//
float StatModifier_Boss_Global;
float StatModifier_Boss_Health;
float StatModifier_Boss_Mana;
float StatModifier_Boss_Armor;
float StatModifier_Boss_Damage;
float StatModifier_Boss_CCDuration;
float StatModifierHeroic_Boss_Global;
float StatModifierHeroic_Boss_Health;
float StatModifierHeroic_Boss_Mana;
float StatModifierHeroic_Boss_Armor;
float StatModifierHeroic_Boss_Damage;
float StatModifierHeroic_Boss_CCDuration;
float StatModifierRaid_Boss_Global;
float StatModifierRaid_Boss_Health;
float StatModifierRaid_Boss_Mana;
float StatModifierRaid_Boss_Armor;
float StatModifierRaid_Boss_Damage;
float StatModifierRaid_Boss_CCDuration;
float StatModifierRaidHeroic_Boss_Global;
float StatModifierRaidHeroic_Boss_Health;
float StatModifierRaidHeroic_Boss_Mana;
float StatModifierRaidHeroic_Boss_Armor;
float StatModifierRaidHeroic_Boss_Damage;
float StatModifierRaidHeroic_Boss_CCDuration;
float StatModifierRaid10M_Boss_Global;
float StatModifierRaid10M_Boss_Health;
float StatModifierRaid10M_Boss_Mana;
float StatModifierRaid10M_Boss_Armor;
float StatModifierRaid10M_Boss_Damage;
float StatModifierRaid10M_Boss_CCDuration;
float StatModifierRaid10MHeroic_Boss_Global;
float StatModifierRaid10MHeroic_Boss_Health;
float StatModifierRaid10MHeroic_Boss_Mana;
float StatModifierRaid10MHeroic_Boss_Armor;
float StatModifierRaid10MHeroic_Boss_Damage;
float StatModifierRaid10MHeroic_Boss_CCDuration;
float StatModifierRaid15M_Boss_Global;
float StatModifierRaid15M_Boss_Health;
float StatModifierRaid15M_Boss_Mana;
float StatModifierRaid15M_Boss_Armor;
float StatModifierRaid15M_Boss_Damage;
float StatModifierRaid15M_Boss_CCDuration;
float StatModifierRaid20M_Boss_Global;
float StatModifierRaid20M_Boss_Health;
float StatModifierRaid20M_Boss_Mana;
float StatModifierRaid20M_Boss_Armor;
float StatModifierRaid20M_Boss_Damage;
float StatModifierRaid20M_Boss_CCDuration;
float StatModifierRaid25M_Boss_Global;
float StatModifierRaid25M_Boss_Health;
float StatModifierRaid25M_Boss_Mana;
float StatModifierRaid25M_Boss_Armor;
float StatModifierRaid25M_Boss_Damage;
float StatModifierRaid25M_Boss_CCDuration;
float StatModifierRaid25MHeroic_Boss_Global;
float StatModifierRaid25MHeroic_Boss_Health;
float StatModifierRaid25MHeroic_Boss_Mana;
float StatModifierRaid25MHeroic_Boss_Armor;
float StatModifierRaid25MHeroic_Boss_Damage;
float StatModifierRaid25MHeroic_Boss_CCDuration;
float StatModifierRaid40M_Boss_Global;
float StatModifierRaid40M_Boss_Health;
float StatModifierRaid40M_Boss_Mana;
float StatModifierRaid40M_Boss_Armor;
float StatModifierRaid40M_Boss_Damage;
float StatModifierRaid40M_Boss_CCDuration;