{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":76854669,"defaultBranch":"master","name":"mod-autobalance","ownerLogin":"azerothcore","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2016-12-19T11:01:26.000Z","ownerAvatar":"https://github.com/avatars/u/20147732?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1721335465.0","currentOid":""},"activityList":{"items":[{"before":"b43a41cf8524da7f500bc78bedb68eefdf1f6d90","after":null,"ref":"refs/heads/fix","pushedAt":"2024-07-18T20:44:25.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Kitzunu","name":null,"path":"/Kitzunu","primaryAvatarUrl":"https://github.com/avatars/u/24550914?s=80&v=4"}},{"before":"b8de96284501cf8aa90e1e9cda30db6ad0faa540","after":"94b4b4b19e85b2b92eeb0205c63327d0f508e9ed","ref":"refs/heads/master","pushedAt":"2024-07-18T20:44:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Kitzunu","name":null,"path":"/Kitzunu","primaryAvatarUrl":"https://github.com/avatars/u/24550914?s=80&v=4"},"commit":{"message":"Fix (#186)\n\n* Update AutoBalance.cpp\r\n\r\n* Update AutoBalance.cpp","shortMessageHtmlLink":"Fix (#186)"}},{"before":null,"after":"b43a41cf8524da7f500bc78bedb68eefdf1f6d90","ref":"refs/heads/fix","pushedAt":"2024-07-18T20:41:37.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Kitzunu","name":null,"path":"/Kitzunu","primaryAvatarUrl":"https://github.com/avatars/u/24550914?s=80&v=4"},"commit":{"message":"Update AutoBalance.cpp","shortMessageHtmlLink":"Update AutoBalance.cpp"}},{"before":"1eda5d10b1ae25327994e270c0ada819f8a24b72","after":null,"ref":"refs/heads/fix.shti","pushedAt":"2024-07-18T20:23:39.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"sudlud","name":null,"path":"/sudlud","primaryAvatarUrl":"https://github.com/avatars/u/7723845?s=80&v=4"}},{"before":"9048d394b4ec10cf6cb39e9f7becf8fd3ebcd123","after":"b8de96284501cf8aa90e1e9cda30db6ad0faa540","ref":"refs/heads/master","pushedAt":"2024-07-18T20:23:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sudlud","name":null,"path":"/sudlud","primaryAvatarUrl":"https://github.com/avatars/u/7723845?s=80&v=4"},"commit":{"message":"Update AutoBalance.cpp (#185)","shortMessageHtmlLink":"Update AutoBalance.cpp (#185)"}},{"before":null,"after":"1eda5d10b1ae25327994e270c0ada819f8a24b72","ref":"refs/heads/fix.shti","pushedAt":"2024-07-18T19:43:41.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Kitzunu","name":null,"path":"/Kitzunu","primaryAvatarUrl":"https://github.com/avatars/u/24550914?s=80&v=4"},"commit":{"message":"Update AutoBalance.cpp","shortMessageHtmlLink":"Update AutoBalance.cpp"}},{"before":"02225b44b6043fe4c371d056c3dcef4bb0d189bc","after":"9048d394b4ec10cf6cb39e9f7becf8fd3ebcd123","ref":"refs/heads/master","pushedAt":"2024-02-23T14:19:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Helias","name":"Stefano Borzì","path":"/Helias","primaryAvatarUrl":"https://github.com/avatars/u/519778?s=80&v=4"},"commit":{"message":"Feat: In-game hints support internationalized text. (#179)","shortMessageHtmlLink":"Feat: In-game hints support internationalized text. (#179)"}},{"before":"a20143dde5f6e1dd992f537f45be3b03dceaee76","after":"02225b44b6043fe4c371d056c3dcef4bb0d189bc","ref":"refs/heads/master","pushedAt":"2023-11-09T13:37:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Helias","name":"Stefano Borzì","path":"/Helias","primaryAvatarUrl":"https://github.com/avatars/u/519778?s=80&v=4"},"commit":{"message":"(fix) Add null check, reduce load on map creation, fix incorrect max health on some creatures (#171)\n\n* Only skip critters that are flavor-only (<= level 5)\n\n* Refactor to break out some logic into separate functions.\n\n* Refactor more repeated operations into separate functions\n- Add worldHealthMultiplier, intended to be used to scale the health of attackable game objects in the instance\n\n* Continued refinement of non-creature-based damage and healing\n\n* Rework damage handling, improve coverage, debug logging\n- tear out and re-implement all the damage handling to ensure more cases are handled\n- use the map's damage modifier when damage happens where the source isn't a creature\n- better handle when the source of damage no longer exists (logged out or despawned)\n- extensive (optional) logging under the `module.AutoBalance.Damage` logging prefix\n- WIP implementattion of game object damage handling (destructible buildings)\n- fix a long-standing error in the class name for some logging\n\n* World damage scaling is working, WIP\n- need to apply statmodifiers still\n- improved logging\n\n* - many, many logging improvements\n- fix a bug with the enable check case statements (stupid case breaks)\n- remove antiquated battleground checks - should never scale in battlegrounds\n- better handle \"special\" creatures (totems, triggers, critters)\n- allow combat critters to scale correctly\n- allow intentionally-low-level triggers and critters to remain low level\n- workaround an issue with summons showing the wrong level client-side (level change ramp up)\n- further improve GM and user commands\n- erase map AB info from maps when they are created, preventing issues with instance ID re-use\n- better handle instances with no non-GM characters (disable scaling temporarily)\n\n* Further work on summoned creatures, still WIP\n- removed unnecessary `std::string`s\n\n* WIP\n\n* Rewrite multiplier calculation, reduce required processing\n- majory re-wrote the multiplicer calculations to increase accuracy and clarity\n- take advantage of new `OnBeforeCreatureSelectLevel` hook to set the initial level of creatures before they are added to the world\n- separated level-scaled and non-level-scaled multipliers for tracking and display\n- move creature relevancy check to new function `isCreatureRelevant`\n- rename many variables to standardize and clarify\n- add option to force a map stats update, to be used when a player enters the map\n- players leaving the map are no longer included in the map's stats\n- sweeping improvements in logging of the multiplier calculation process (`AutoBalance.StatGeneration`)\n- update `.ab creaturestat` to show new scaled modifiers in an understandable way\n\n* Optimize map updates to only occur when necessary. WIP.\n\n* Create documentation for Info classes, add player lists\n\n* Reworking config tracking, WIP\n\n* Rewrite player tracking to remove kludges, many improvements\n- replace kludgy player count detection with an internal player list (more features coming Soon)\n- skip scaling on player-owned summons, totems, etc\n- skip scaling on flavor critters but not on combat critters\n- separate map and global config times, reducing the work to refresh if only a map config changes\n- centralize detection of \"non-relevant\" creatures, use a `skipMe` tag to speed up processing\n- correctly handle a GM leaving the instance who was previously a non-GM when they entered\n- temporarily disable in-combat checking\n- improve logging format to produce the ID needed for `.go creature `\n- standardize logging format\n\n* Performance improvements, fix statmodifier selection, logging\n- moved enums to top the file, added `Relevance` enum\n- improve performance of `isCreatureRelevant` but saving the decision from previous runs\n- fix issues with summon detection to (hopefully) cover all edge cases\n- consolidate and fix StatModifier case selection, add debugs\n- more logging improvements all around\n\n* Recount players on a config reload.\n\n* Improve player enter/leave behavior.\n\n* Improve handling of empty instances, properly scale trigger creatures, improve `.ab mapstat`\n\n* Check that the target for `.ab creaturestat` is in a dungeon.\n\n* Move boss detection to separate function\n- boss summons now also count as a \"boss\"\n\n* Do not modify spells that hurt the player but are intended to - Dark Runes, etc\n- logging improvements\n\n* Fix world multipliers not getting reloaded. Logging improvements.\n\n* Additional debug for boss detection\n\n* Fix percent-based damage auras, map multipliers honor level scaling\n- percent-based damage auras will now ignore level scaling (per-player scaling only)\n- map multipliers (damage/healing and health) will now honor the level scaling setting\n- use a custom struct to store and move around world multipliers\n- properly remove LevelScalingEndGameBoost until it can be fixed (#156)\n- creatures summoned by a boss will now be scaled like bosses\n- further refinement of trigger handling logic\n- fix active creature not being decremented on creature removal\n- fix incorrect announcing of GMs entering/exiting the instance\n- improvements for in-game commands\n- continued log improvements\n\n* World multipliers now honor stat modifiers\n- logging improvements\n\n* Re-enable the processing of map stats when the instance is empty\n\n* Combat locking: WIP\n\n* Combat locking - better implementation. WIP, needs notifications.\n\n* Re-implement combat locking\n\n* Complete migration from skipMe to isCreatureRelevant\n\n* Code and log cleanup\n\n* Handle a combatLockMinPlayers of 0\n\n* Update bug report template to request AB-specific information\n\n* Update README.md with commands, loggers, and min AC version\n\n* Add logging settings to .conf.dist file. Small logging change.\n\n* Replace uint with uint8.\n\n* Rename `GetCurrentTime()` and remove case ranges to make Windows happy\n\n* Code cleanup. Replace case statements. Remove `entry`, which is unneeded.\n\n* (Hopefully) final code cleanup, comment refinement\n\n* Fix enemy totems not level scaling. Update logging statement.\n\n* Resolve issue with heroic dungeons that don't have LFG levels defined\n\n* Fix dungeon difficulty normal, add error logging if no LFG found\n\n* Fix incorrect heroic settings.\n- fix display issue with active creatures\n\n* Fix syntax error.\n- that'll teach me to commit before I build\n\n* Handle cloned summons, improve creaturestat command\n- track summoner as a part of AutoBalanceCreatureInfo\n- detect when a summon is a clone and use the correct current health instead of scaling again\n- add summon information to `.ab creaturestat`\n- as always, logging improvements\n\n* Handle shared damage auras, add never modify spells\n- spells with SPELL_AURA_SHARE_DAMAGE_PCT effects will now correctly be unmodified\n- added `spellIdsToNeverModify` and correctly skip modification of them\n- add \"Twin Empathy\" (1177) to the `spellIdsToNeverModify` list\n- convert `_IsAuraPercentDamage` to `_isAuraWithEffectType` since this probably isn't the last I'll need it\n- logging changes, naturally\n\n* Move initial scaling from first OnAllCreatureUpdate to Creature_SelectLevel\n\n* Tell user to move logging settings to `worldserver.conf`, since they don't work well in module config\n\n* Fix combat locking.\n\n* Small update to spellIdsToNeverModify\n\n* Move warning to debug.\n\n* Add creatureIDsThatAreNotClones. Fix crash.\n\n* Check spellIdsToNeverModify for game object damage too\n\n* Add important logging hint\n\n* Attempt to resolve crash for non-standard class/race combinations\n\n* Remove disabling instance when no non-GMs in the map. Add extra SetHealth/SetMaxHealth just before adding creatures to the world.\n- Fixes #168\n- Fixes #169\n\n* Remove hack-ish health set. Set instance min of 1. Reduce unneeded calculations.\n\n* Restore our modified max health just after the creature is added to the world, if necessary\n\n* Fix mis-used of health function.","shortMessageHtmlLink":"(fix) Add null check, reduce load on map creation, fix incorrect max …"}},{"before":"50a5d5e451d67cf5eb48a1d55bb1acec5aa5ef4a","after":"a20143dde5f6e1dd992f537f45be3b03dceaee76","ref":"refs/heads/master","pushedAt":"2023-10-25T09:34:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Helias","name":"Stefano Borzì","path":"/Helias","primaryAvatarUrl":"https://github.com/avatars/u/519778?s=80&v=4"},"commit":{"message":"Fix crash when summoner is gone. Add creatureIDsThatAreNotClones. (#162)","shortMessageHtmlLink":"Fix crash when summoner is gone. Add creatureIDsThatAreNotClones. (#162)"}},{"before":"9100569ccbc2a86cc118da256da41bb02599c5aa","after":"50a5d5e451d67cf5eb48a1d55bb1acec5aa5ef4a","ref":"refs/heads/master","pushedAt":"2023-10-19T15:52:30.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Helias","name":"Stefano Borzì","path":"/Helias","primaryAvatarUrl":"https://github.com/avatars/u/519778?s=80&v=4"},"commit":{"message":"World damage/healing, destructible buildings, multiplier rewrite, logging improvements (#157)\n\n* Only skip critters that are flavor-only (<= level 5)\r\n\r\n* Refactor to break out some logic into separate functions.\r\n\r\n* Refactor more repeated operations into separate functions\r\n- Add worldHealthMultiplier, intended to be used to scale the health of attackable game objects in the instance\r\n\r\n* Continued refinement of non-creature-based damage and healing\r\n\r\n* Rework damage handling, improve coverage, debug logging\r\n- tear out and re-implement all the damage handling to ensure more cases are handled\r\n- use the map's damage modifier when damage happens where the source isn't a creature\r\n- better handle when the source of damage no longer exists (logged out or despawned)\r\n- extensive (optional) logging under the `module.AutoBalance.Damage` logging prefix\r\n- WIP implementattion of game object damage handling (destructible buildings)\r\n- fix a long-standing error in the class name for some logging\r\n\r\n* World damage scaling is working, WIP\r\n- need to apply statmodifiers still\r\n- improved logging\r\n\r\n* - many, many logging improvements\r\n- fix a bug with the enable check case statements (stupid case breaks)\r\n- remove antiquated battleground checks - should never scale in battlegrounds\r\n- better handle \"special\" creatures (totems, triggers, critters)\r\n- allow combat critters to scale correctly\r\n- allow intentionally-low-level triggers and critters to remain low level\r\n- workaround an issue with summons showing the wrong level client-side (level change ramp up)\r\n- further improve GM and user commands\r\n- erase map AB info from maps when they are created, preventing issues with instance ID re-use\r\n- better handle instances with no non-GM characters (disable scaling temporarily)\r\n\r\n* Further work on summoned creatures, still WIP\r\n- removed unnecessary `std::string`s\r\n\r\n* WIP\r\n\r\n* Rewrite multiplier calculation, reduce required processing\r\n- majory re-wrote the multiplicer calculations to increase accuracy and clarity\r\n- take advantage of new `OnBeforeCreatureSelectLevel` hook to set the initial level of creatures before they are added to the world\r\n- separated level-scaled and non-level-scaled multipliers for tracking and display\r\n- move creature relevancy check to new function `isCreatureRelevant`\r\n- rename many variables to standardize and clarify\r\n- add option to force a map stats update, to be used when a player enters the map\r\n- players leaving the map are no longer included in the map's stats\r\n- sweeping improvements in logging of the multiplier calculation process (`AutoBalance.StatGeneration`)\r\n- update `.ab creaturestat` to show new scaled modifiers in an understandable way\r\n\r\n* Optimize map updates to only occur when necessary. WIP.\r\n\r\n* Create documentation for Info classes, add player lists\r\n\r\n* Reworking config tracking, WIP\r\n\r\n* Rewrite player tracking to remove kludges, many improvements\r\n- replace kludgy player count detection with an internal player list (more features coming Soon)\r\n- skip scaling on player-owned summons, totems, etc\r\n- skip scaling on flavor critters but not on combat critters\r\n- separate map and global config times, reducing the work to refresh if only a map config changes\r\n- centralize detection of \"non-relevant\" creatures, use a `skipMe` tag to speed up processing\r\n- correctly handle a GM leaving the instance who was previously a non-GM when they entered\r\n- temporarily disable in-combat checking\r\n- improve logging format to produce the ID needed for `.go creature `\r\n- standardize logging format\r\n\r\n* Performance improvements, fix statmodifier selection, logging\r\n- moved enums to top the file, added `Relevance` enum\r\n- improve performance of `isCreatureRelevant` but saving the decision from previous runs\r\n- fix issues with summon detection to (hopefully) cover all edge cases\r\n- consolidate and fix StatModifier case selection, add debugs\r\n- more logging improvements all around\r\n\r\n* Recount players on a config reload.\r\n\r\n* Improve player enter/leave behavior.\r\n\r\n* Improve handling of empty instances, properly scale trigger creatures, improve `.ab mapstat`\r\n\r\n* Check that the target for `.ab creaturestat` is in a dungeon.\r\n\r\n* Move boss detection to separate function\r\n- boss summons now also count as a \"boss\"\r\n\r\n* Do not modify spells that hurt the player but are intended to - Dark Runes, etc\r\n- logging improvements\r\n\r\n* Fix world multipliers not getting reloaded. Logging improvements.\r\n\r\n* Additional debug for boss detection\r\n\r\n* Fix percent-based damage auras, map multipliers honor level scaling\r\n- percent-based damage auras will now ignore level scaling (per-player scaling only)\r\n- map multipliers (damage/healing and health) will now honor the level scaling setting\r\n- use a custom struct to store and move around world multipliers\r\n- properly remove LevelScalingEndGameBoost until it can be fixed (#156)\r\n- creatures summoned by a boss will now be scaled like bosses\r\n- further refinement of trigger handling logic\r\n- fix active creature not being decremented on creature removal\r\n- fix incorrect announcing of GMs entering/exiting the instance\r\n- improvements for in-game commands\r\n- continued log improvements\r\n\r\n* World multipliers now honor stat modifiers\r\n- logging improvements\r\n\r\n* Re-enable the processing of map stats when the instance is empty\r\n\r\n* Combat locking: WIP\r\n\r\n* Combat locking - better implementation. WIP, needs notifications.\r\n\r\n* Re-implement combat locking\r\n\r\n* Complete migration from skipMe to isCreatureRelevant\r\n\r\n* Code and log cleanup\r\n\r\n* Handle a combatLockMinPlayers of 0\r\n\r\n* Update bug report template to request AB-specific information\r\n\r\n* Update README.md with commands, loggers, and min AC version\r\n\r\n* Add logging settings to .conf.dist file. Small logging change.\r\n\r\n* Replace uint with uint8.\r\n\r\n* Rename `GetCurrentTime()` and remove case ranges to make Windows happy\r\n\r\n* Code cleanup. Replace case statements. Remove `entry`, which is unneeded.\r\n\r\n* (Hopefully) final code cleanup, comment refinement\r\n\r\n* Fix enemy totems not level scaling. Update logging statement.\r\n\r\n* Resolve issue with heroic dungeons that don't have LFG levels defined\r\n\r\n* Fix dungeon difficulty normal, add error logging if no LFG found\r\n\r\n* Fix incorrect heroic settings.\r\n- fix display issue with active creatures\r\n\r\n* Fix syntax error.\r\n- that'll teach me to commit before I build\r\n\r\n* Handle cloned summons, improve creaturestat command\r\n- track summoner as a part of AutoBalanceCreatureInfo\r\n- detect when a summon is a clone and use the correct current health instead of scaling again\r\n- add summon information to `.ab creaturestat`\r\n- as always, logging improvements\r\n\r\n* Handle shared damage auras, add never modify spells\r\n- spells with SPELL_AURA_SHARE_DAMAGE_PCT effects will now correctly be unmodified\r\n- added `spellIdsToNeverModify` and correctly skip modification of them\r\n- add \"Twin Empathy\" (1177) to the `spellIdsToNeverModify` list\r\n- convert `_IsAuraPercentDamage` to `_isAuraWithEffectType` since this probably isn't the last I'll need it\r\n- logging changes, naturally\r\n\r\n* Move initial scaling from first OnAllCreatureUpdate to Creature_SelectLevel\r\n\r\n* Tell user to move logging settings to `worldserver.conf`, since they don't work well in module config\r\n\r\n* Fix combat locking.\r\n\r\n* Small update to spellIdsToNeverModify\r\n\r\n* Move warning to debug.","shortMessageHtmlLink":"World damage/healing, destructible buildings, multiplier rewrite, log…"}},{"before":"c7693f7094ed590a86bc262624c3458cebd7cf25","after":"9100569ccbc2a86cc118da256da41bb02599c5aa","ref":"refs/heads/master","pushedAt":"2023-09-25T18:26:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Helias","name":"Stefano Borzì","path":"/Helias","primaryAvatarUrl":"https://github.com/avatars/u/519778?s=80&v=4"},"commit":{"message":"Add per-instance disable, rework MinPlayers, enhance .ab mapstats output, improve resillience (#155)\n\n* Add per-instance disable, min players\n\n* Add disabling instances, rework MinPlayers, enhance .ab mapstats\n- disabling instances can now be done without restarting the server (just a config reload)\n- removed the `checkmap` command that wasn't useful and had the potential to break things\n- reworked the MinPlayers feature to be more flexible and to not require you to list every instance to use it\n\n* Update `.ab mapstat` to provide EVEN MORE information\n\n* Make code change as suggested by @helias\n\n* Removed several very-old and very-not-needed creature scaling defaults.","shortMessageHtmlLink":"Add per-instance disable, rework MinPlayers, enhance .ab mapstats out…"}},{"before":"db19dfcf406fafc59919845a89645df9da4177c3","after":"c7693f7094ed590a86bc262624c3458cebd7cf25","ref":"refs/heads/master","pushedAt":"2023-08-15T10:46:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pangolp","name":"Walter Pagani","path":"/pangolp","primaryAvatarUrl":"https://github.com/avatars/u/2810187?s=80&v=4"},"commit":{"message":"Dmg loot fix (#145)\n\n* Update AutoBalance.cpp\r\n\r\nScale DmgRequired similarly to Creature HP\r\n\r\n* Update AutoBalance.cpp\r\n\r\nFix typo\r\n\r\n* Update AutoBalance.cpp\r\n\r\nI blame python\r\n\r\n* Update AutoBalance.cpp\r\n\r\nFix Math","shortMessageHtmlLink":"Dmg loot fix (#145)"}},{"before":"5ab14a61c5aeea4f6121063e6e8ac85a40f24e77","after":null,"ref":"refs/heads/BarbzYHOOL-patch-1","pushedAt":"2023-07-26T15:47:18.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pangolp","name":"Walter Pagani","path":"/pangolp","primaryAvatarUrl":"https://github.com/avatars/u/2810187?s=80&v=4"}},{"before":"466ef31e76b153c7a062b0c8237905f04825a268","after":null,"ref":"refs/heads/2.0","pushedAt":"2023-07-26T15:47:06.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pangolp","name":"Walter Pagani","path":"/pangolp","primaryAvatarUrl":"https://github.com/avatars/u/2810187?s=80&v=4"}},{"before":"8b9479f706332d49250a94df33f8bdae86eed038","after":"db19dfcf406fafc59919845a89645df9da4177c3","ref":"refs/heads/master","pushedAt":"2023-07-26T15:39:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pangolp","name":"Walter Pagani","path":"/pangolp","primaryAvatarUrl":"https://github.com/avatars/u/2810187?s=80&v=4"},"commit":{"message":"fix. StatModifier Per-Creature (#141)","shortMessageHtmlLink":"fix. StatModifier Per-Creature (#141)"}},{"before":"34bdfc633244e33cc83c2dd24cc3432226e38d89","after":"8b9479f706332d49250a94df33f8bdae86eed038","ref":"refs/heads/master","pushedAt":"2023-07-19T23:14:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pangolp","name":"Walter Pagani","path":"/pangolp","primaryAvatarUrl":"https://github.com/avatars/u/2810187?s=80&v=4"},"commit":{"message":"Fixed Null Ptr (#139)","shortMessageHtmlLink":"Fixed Null Ptr (#139)"}},{"before":"74bb9e6cce1ae56b47b144fab9fa64e0fbbfef03","after":"34bdfc633244e33cc83c2dd24cc3432226e38d89","ref":"refs/heads/master","pushedAt":"2023-06-27T21:45:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pangolp","name":"Walter Pagani","path":"/pangolp","primaryAvatarUrl":"https://github.com/avatars/u/2810187?s=80&v=4"},"commit":{"message":"Only do expansion-level HP/damage adjustments if Level Scaling is enabled (#138)\n\n- closes #137","shortMessageHtmlLink":"Only do expansion-level HP/damage adjustments if Level Scaling is ena…"}},{"before":"a0c643568e0cfc755b4bede3901746dae96844c0","after":"74bb9e6cce1ae56b47b144fab9fa64e0fbbfef03","ref":"refs/heads/master","pushedAt":"2023-06-17T23:55:59.144Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pangolp","name":"Walter Pagani","path":"/pangolp","primaryAvatarUrl":"https://github.com/avatars/u/2810187?s=80&v=4"},"commit":{"message":"Fix `AutoBalance.LevelScaling=0` bug and mapstat average bug (#136)\n\n* Fix issue with server crash if the caster of an applied aura is not online.\r\n\r\n* Update src/AutoBalance.cpp\r\n\r\n* Fix dead creatures when LevelScaling is disabled (#135)\r\n- fix unreported issue where killed then revived creatures were counting multiple times in map stat calculations\r\n- reduce uneccesary recalculation of creature stats\r\n- improve XP debug logging\r\n\r\n---------\r\n\r\nCo-authored-by: Stefano Borzì ","shortMessageHtmlLink":"Fix AutoBalance.LevelScaling=0
bug and mapstat average bug (#136)"}},{"before":"4125af946f60e984c88b9b03f766cdf7cb9278fa","after":"a0c643568e0cfc755b4bede3901746dae96844c0","ref":"refs/heads/master","pushedAt":"2023-06-16T17:17:14.698Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pangolp","name":"Walter Pagani","path":"/pangolp","primaryAvatarUrl":"https://github.com/avatars/u/2810187?s=80&v=4"},"commit":{"message":"Feat/Fix: Dynamic creature levels, reworked reward scaling, many fixes and improvements (#133)\n\n* Fix: add checks to CCDuration adjustment\n\n* Remove `AutoBalance.DungeonsOnly`, replicate functionality with better `AutoBalance.Enable.*` settings\n- Remove `AutoBalance.DungeonsOnly` and replace with `AutoBalance.Enable.*` settings\n - old setting will be reported as a warning and won't take effect\n - doesn't appear that this setting ever worked as intended\n- Further reorganization of the settings file with new headers, better order, and deprecated settings section that will give appropriate warnings without creating config load errors\n- Rework some of the `if` statements to better illustrate what's being checked\n- remove skipLevel variable that was made redundant by an earlier change regarding critters\n- Add more comments throughout\n- Update `.gitignore` for vs_code\n\n* Remove unneeded aura check (done with other checks)\n\n* Correct CCDuration documentation in conf file\n\n* WIP: improve confing reloading\n\n* WIP: Rework map level selection to use average creature level.\n\n* Dynamic level scaling is working, but imperfect so far. WIP.\n\n* Fix issue with server crash if the caster of an applied aura is not online.\n\n* Update src/AutoBalance.cpp\n\n* Adjust \"critter\" detection, add logging, fix summons scaling\n\n* XP/Money multiplier is working but WIP.\n\n* Add dynamic level scaling\n\n- fix handling of summoned creatures (with or without a summoner)\n- convert lazy logging to LOG_DEBUG\n- creatures lower than 75% of the LFG minimum level will be ignord for scaling\n- creatures who are friendly, vendors, or have gossip lines will be ignored for scaling\n\n* Still scale friendly creatures, but don't include them in map stats\n\n* (Re)implement dynamic scaling/floor ceiling to create a more consistent scaling experience\n- remove concept of \"active\" list, replace with a counter\n- improve in-game command output, allow non-GMs to use some of them\n- add individual dynamic scaling floor/ceiling settings for dungeon, heroic dungeon, raid, and heroic raid\n- change LFG requirement to affect the map stats to 85% of min, 115% of max\n- update average multiplier for XP/gold scaling to only use health and damage modifiers\n\n* Moved creature spawn logic to `Creature_SelectLevel`\n\n* Add `AutoBalance.LevelScaling.DynamicLevel.PerInstance`\n- rename other DynamicLevel settings\n- remove unneeded contructors for custom classes\n- further refine non-active creature detection\n- switch XP and Gold average multiplier to both be calculated after leveling adjustments\n\n* Update description in .conf.dist to match code.\n\n* Fix creatures being double-added to the creature list.\n\n* Change damage scaling to be based on the player's level, not the dungeon's\n- smooth the transition between explansions by linearly interpolating between\n the old and new damage scaling values\n\n* Scale health based on the higher player level in the instance.\n- ease transition between expansions\n\n* Bump version to 3.0.0 to reflect new defaults.\n- default level scaling method to \"dynamic\"\n- fix small conf.dist typo\n\n* Bump version to 3.0.0 to reflect updated defaults.\n\n* Add distance check option for winged instances.\n- created `AutoBalance.LevelScaling.DynamicLevel.DistanceCheck.PerInstance` option\n- improve behavior when a player in combat exits the instance\n- improve behavior in winged dungeons when a GM exits the instance\n- alterations to command outputs\n- reduce processing when updating creatures that aren't included in map stats\n\n* Clarify config, update defaults\n\n* Don't show player enter/exit output if globally disabled.\n\n* Fix dynamic config reload for global enable.\n\n* Update to v2.2 rather than v3.0\n\n* Removed unused GetAreaLevel function\n\n* Remove extraneous debug\n\n* Fix output. Don't show leave message to player who left.\n\n* Use enum for dynamic/fixed settings.\n\n* Add more per-instance level scaling settings\n- SkipHigherLevels and SkipLowerLevels can now be specified per Instance ID\n- Added a default override for Blackrock Depths\n- Fix rewards config issue\n- Start moving global settings into each map to allow for per-map settings\n- Further enhance the `.ab creaturestat` and `.ab mapstat` commands\n\n---------\n\nCo-authored-by: Stefano Borzì ","shortMessageHtmlLink":"Feat/Fix: Dynamic creature levels, reworked reward scaling, many fixe…"}},{"before":"f83bccb0610efc8f0c0029995fbe276da0966c57","after":"4125af946f60e984c88b9b03f766cdf7cb9278fa","ref":"refs/heads/master","pushedAt":"2023-06-16T13:26:39.803Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Nyeriah","name":"Andrew","path":"/Nyeriah","primaryAvatarUrl":"https://github.com/avatars/u/47818697?s=80&v=4"},"commit":{"message":"chore(Module/Structure): update structure (#134)","shortMessageHtmlLink":"chore(Module/Structure): update structure (#134)"}},{"before":"4046d05b4d356d2c222fd89b620d907e202c31c0","after":"f83bccb0610efc8f0c0029995fbe276da0966c57","ref":"refs/heads/master","pushedAt":"2023-05-29T13:46:36.133Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Helias","name":"Stefano Borzì","path":"/Helias","primaryAvatarUrl":"https://github.com/avatars/u/519778?s=80&v=4"},"commit":{"message":"Fix: Crash when the caster of an aura is a player and is not online (#131)\n\n* Fix issue with server crash if the caster of an applied aura is not online.\r\n\r\n* Update src/AutoBalance.cpp\r\n\r\n---------\r\n\r\nCo-authored-by: Stefano Borzì ","shortMessageHtmlLink":"Fix: Crash when the caster of an aura is a player and is not online (#…"}},{"before":"b49240972acc65e01315d8463cdbf175cb14f52b","after":"4046d05b4d356d2c222fd89b620d907e202c31c0","ref":"refs/heads/master","pushedAt":"2023-05-27T12:23:42.772Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Helias","name":"Stefano Borzì","path":"/Helias","primaryAvatarUrl":"https://github.com/avatars/u/519778?s=80&v=4"},"commit":{"message":" Remove `AutoBalance.DungeonsOnly`, replace with better `AutoBalance.Enable.*` settings (#128)\n\n* Fix: add checks to CCDuration adjustment\r\n\r\n* Remove `AutoBalance.DungeonsOnly`, replicate functionality with better `AutoBalance.Enable.*` settings\r\n- Remove `AutoBalance.DungeonsOnly` and replace with `AutoBalance.Enable.*` settings\r\n - old setting will be reported as a warning and won't take effect\r\n - doesn't appear that this setting ever worked as intended\r\n- Further reorganization of the settings file with new headers, better order, and deprecated settings section that will give appropriate warnings without creating config load errors\r\n- Rework some of the `if` statements to better illustrate what's being checked\r\n- remove skipLevel variable that was made redundant by an earlier change regarding critters\r\n- Add more comments throughout\r\n- Update `.gitignore` for vs_code\r\n\r\n* Remove unneeded aura check (done with other checks)\r\n\r\n* Correct CCDuration documentation in conf file","shortMessageHtmlLink":" Remove AutoBalance.DungeonsOnly
, replace with better `AutoBalance.…"}},{"before":"c23e5ab38b262a8c1f69eb61e616cc32400b0646","after":"b49240972acc65e01315d8463cdbf175cb14f52b","ref":"refs/heads/master","pushedAt":"2023-05-24T23:00:51.301Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Helias","name":"Stefano Borzì","path":"/Helias","primaryAvatarUrl":"https://github.com/avatars/u/519778?s=80&v=4"},"commit":{"message":"Fix: add checks to CCDuration adjustment (#127)","shortMessageHtmlLink":"Fix: add checks to CCDuration adjustment (#127)"}},{"before":"bdd4454fdbcd6bab57ffb9d34d27957a574ea4c5","after":"c23e5ab38b262a8c1f69eb61e616cc32400b0646","ref":"refs/heads/master","pushedAt":"2023-05-24T18:04:23.365Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Helias","name":"Stefano Borzì","path":"/Helias","primaryAvatarUrl":"https://github.com/avatars/u/519778?s=80&v=4"},"commit":{"message":"features: Add curveFloor and curveCeiling settings, expand raid types, CCDuration, others (#125)\n\n* (features) Add curveFloor and curveCeiling settings, expand raid types\r\n\r\nconf/AutoBalance.conf.dist:\r\n- add settings for 10/15/40 player raids\r\n- add curveFloor/curveCeiling settings for all raid types\r\n- make all non-generic InflectionPoint settings optional. Use the generic settings by default, allow specifying more-specific ones by uncommenting configuration and updating.\r\n- set boss inflection point modifer per raid type, deprecate old global setting (still supported in the code for backwards compatability)\r\n- enhance/reword existing variable descriptions based on actual functionality\r\n- create unified explanation of InflectionPoint settings\r\n- add images and interactive spreadsheet to understand how difficulty settings work\r\n- reorder existing variables into new sections\r\n\r\nsrc/AutoBalance.cpp:\r\n- split up InflctionPoint settings by instance type and size\r\n- add curveFloor/curveCeiling and per-instance size boss settings\r\n- refactor configuration settings ingest. All settings default to the correct higher-level settings now.\r\n- add new `.ab` command as a shorter version of `.autobalance`\r\n\r\n* Fix incorrect boss multipliers.\r\n\r\n* Update README.md file\r\n\r\n* Update Google Sheets link.\r\n\r\n* Add per-dungeon-type rate adjustments in `AutoBalance.StatModifier.*`\r\n- `AutoBalance.StatModifier.*` allows a flat multiplier on all or a single stat for dungeon type and/or player count\r\n- `AutoBalance.StatModifier.Boss.Global` is an additional multiplier applied only to bosses\r\n- deprecates old `AuthBalance.rate.*` settings\r\n - old settings will be imported into correct `AutoBalance.StatModifier` variables to maintain backwards-compatibility\r\n - using deprecated settings will cause warnings in the server log on startup\r\n- Update spreadsheet to handle new `StatModifier` settings\r\n\r\n* Revert testing values to default.\r\n- also, add Tracking Hound to scaling-disabled creatures\r\n\r\n* Comment out optional stat modifiers\r\n\r\n* Add `StatModifierPerDungeon` setting.\r\nAllows administrators to set StatModifier settings per dungeon map ID.\r\n- reworked setting selection case statements to not make incorrect assignments when overrides are used (WIP)\r\n\r\n* Separate selection of InflectionPoint, Boss InflectionPoint, and StatModifier overrides so that each can be used separately.\r\n- create StatModifier overrides for the new StatModifier settings\r\n- allow for empty/unset values that will inherit the higher-level setting\r\n\r\n* Update to v2.1.0. More features, more cleanup.\r\n\r\nacore-module.json\r\n- update to v2.1.0\r\n\r\nconf/AutoBalance.conf.dist:\r\n- further clarify several setting descriptions\r\n- replace 'DungeonID' with the more-correct 'InstanceID' for descriptions\r\n- Rename 'PerDungeonScaling' to 'InflectionPoint.PerInstance', old setting name still supported (with console warning)\r\n- 'InflectionPoint.PerInstance' now supports specifiying (or not) CurveFloor and CurveCeiling\r\n- Rename 'PerDungeonBossScaling' to 'InflectionPoint.Boss.PerInstance', old setting name still supported (with console warning)\r\n- 'AutoBalance.StatModifier.PerInstance' created to specify (or not) global, health, mana, armor, damage, and boss.global multiplers\r\n- add note about deprecated parameters\r\n\r\nsrc/AutoBalance.cpp:\r\n- create new `AutoBalanceInflectionPointSettings` class to be able to map instance IDs to override settings\r\n- rename `LoadDungeonOverrides` and `LoadBossOverrides` to a unified `LoadInflectionPointOverrides`\r\n- add LoadStatModifierOverrides to handle per-instance stat modifiers\r\n- create deprecation warnings for all deprecated variables. Handle their values in a backwards-compatible way\r\n- separate inflection point, boss inflection point, and stat modifier selection to allow for separate overrides for each\r\n- change order that overrides are applied so that any values that aren't specified will still inherit the appropriate values from the per-instance-type settings\r\n- reorder output of \".autobalance creaturestat\" to match the override string format\r\n\r\n* Fix old setting name.\r\n\r\n* Fix confusing/wrong InflectionPoint example\r\n\r\n* Improve overall accuracy of the calculated multiplier.\r\n- always calculate the multiplier, even when the instance is full\r\n- use a curveCeilingAdjustment to bring the final multiplier closer (~1-3% error) to the curveCeiling setting\r\n\r\n* Fix infinite loop when a critter is the last creature to be up for modification.\r\n\r\n* Separate StatModifier for bosses into separate values for each stat. Allow creature-level overrides.\r\n- StatModifier*.Boss. is now broken up into its own settings that do not interact with the non-boss modifiers\r\n- StatModifier for boss and non-boss no longer interact (change from previous commit in this branch)\r\n- Added explanation of how the various StatModifier settings override each other\r\n- Add `AutoBalance.StatModifier.Boss.PerInstance` to set per-instance boss stat modifiers\r\n- Add `AutoBalance.StatModifier.PerCreature` to set per-creature stat modifiers\r\n- Lots of smaller documentation changes\r\n- Fix curveCeilingAdjustment being calculated incorrectly\r\n- Fixes #101 (thanks @duncrafter)\r\n\r\n* Convert commented out variables to empty values. AzerothCore does not support commented out variables.\r\n\r\n* Resolve issue where \"raids\" that have higher than 5 max players but aren't marked \"IsRaid()\" by the game were getting dungeon settings.\r\n- AutoBalance no longer checks to see if an instance is marked as a raid\r\n - if it has 5 or less for max players, it's a dungeon\r\n - if it has more than 5 for max players, its a raid\r\n\r\nAlso improve instance entrance text to give a better hint of which settings are being used.\r\n\r\n* Add StatModifier.CCDuration to change the duration of CC effects on players\r\n\r\n* Remove case range that was causing some issues.\r\n\r\n* Handle < 5 players. Fix syntax of GetOption.","shortMessageHtmlLink":"features: Add curveFloor and curveCeiling settings, expand raid types…"}},{"before":"beda6e901db921579b7f26d1817ae5d83f11bbae","after":"bdd4454fdbcd6bab57ffb9d34d27957a574ea4c5","ref":"refs/heads/master","pushedAt":"2023-05-06T08:30:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Nefertumm","name":"Angelo Venturini","path":"/Nefertumm","primaryAvatarUrl":"https://github.com/avatars/u/19627365?s=80&v=4"},"commit":{"message":"fix: Include new parameter for OnGiveXP hook. (#124)","shortMessageHtmlLink":"fix: Include new parameter for OnGiveXP hook. (#124)"}},{"before":"564dbc40e8565f1f08d094ebee4b41cd56e52137","after":"beda6e901db921579b7f26d1817ae5d83f11bbae","ref":"refs/heads/master","pushedAt":"2023-04-30T08:32:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Helias","name":"Stefano Borzì","path":"/Helias","primaryAvatarUrl":"https://github.com/avatars/u/519778?s=80&v=4"},"commit":{"message":"fix: Update AutoBalance for sLFGDungeonStore changes. (#123)\n\n* Update auto balance.\r\n\r\n* Rebuild\r\n\r\n* Revert rebuild","shortMessageHtmlLink":"fix: Update AutoBalance for sLFGDungeonStore changes. (#123)"}},{"before":"4333ae02262aa169baebf5db4759b92c48335974","after":"564dbc40e8565f1f08d094ebee4b41cd56e52137","ref":"refs/heads/master","pushedAt":"2023-04-29T23:10:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Kitzunu","name":null,"path":"/Kitzunu","primaryAvatarUrl":"https://github.com/avatars/u/24550914?s=80&v=4"},"commit":{"message":"Update AutoBalance.cpp (#120)","shortMessageHtmlLink":"Update AutoBalance.cpp (#120)"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEg1OZ7QA","startCursor":null,"endCursor":null}},"title":"Activity · azerothcore/mod-autobalance"}