Files
KJack a0c643568e Feat/Fix: Dynamic creature levels, reworked reward scaling, many fixes and improvements (#133)
* Fix: add checks to CCDuration adjustment

* Remove `AutoBalance.DungeonsOnly`, replicate functionality with better `AutoBalance.Enable.*` settings
- Remove `AutoBalance.DungeonsOnly` and replace with `AutoBalance.Enable.*` settings
    - old setting will be reported as a warning and won't take effect
    - doesn't appear that this setting ever worked as intended
- 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
- Rework some of the `if` statements to better illustrate what's being checked
- remove skipLevel variable that was made redundant by an earlier change regarding critters
- Add more comments throughout
- Update `.gitignore` for vs_code

* Remove unneeded aura check (done with other checks)

* Correct CCDuration documentation in conf file

* WIP: improve confing reloading

* WIP: Rework map level selection to use average creature level.

* Dynamic level scaling is working, but imperfect so far. WIP.

* Fix issue with server crash if the caster of an applied aura is not online.

* Update src/AutoBalance.cpp

* Adjust "critter" detection, add logging, fix summons scaling

* XP/Money multiplier is working but WIP.

* Add dynamic level scaling

- fix handling of summoned creatures (with or without a summoner)
- convert lazy logging to LOG_DEBUG
- creatures lower than 75% of the LFG minimum level will be ignord for scaling
- creatures who are friendly, vendors, or have gossip lines will be ignored for scaling

* Still scale friendly creatures, but don't include them in map stats

* (Re)implement dynamic scaling/floor ceiling to create a more consistent scaling experience
- remove concept of "active" list, replace with a counter
- improve in-game command output, allow non-GMs to use some of them
- add individual dynamic scaling floor/ceiling settings for dungeon, heroic dungeon, raid, and heroic raid
- change LFG requirement to affect the map stats to 85% of min, 115% of max
- update average multiplier for XP/gold scaling to only use health and damage modifiers

* Moved creature spawn logic to `Creature_SelectLevel`

* Add `AutoBalance.LevelScaling.DynamicLevel.PerInstance`
- rename other DynamicLevel settings
- remove unneeded contructors for custom classes
- further refine non-active creature detection
- switch XP and Gold average multiplier to both be calculated after leveling adjustments

* Update description in .conf.dist to match code.

* Fix creatures being double-added to the creature list.

* Change damage scaling to be based on the player's level, not the dungeon's
- smooth the transition between explansions by linearly interpolating between
  the old and new damage scaling values

* Scale health based on the higher player level in the instance.
- ease transition between expansions

* Bump version to 3.0.0 to reflect new defaults.
- default level scaling method to "dynamic"
- fix small conf.dist typo

* Bump version to 3.0.0 to reflect updated defaults.

* Add distance check option for winged instances.
- created `AutoBalance.LevelScaling.DynamicLevel.DistanceCheck.PerInstance` option
- improve behavior when a player in combat exits the instance
- improve behavior in winged dungeons when a GM exits the instance
- alterations to command outputs
- reduce processing when updating creatures that aren't included in map stats

* Clarify config, update defaults

* Don't show player enter/exit output if globally disabled.

* Fix dynamic config reload for global enable.

* Update to v2.2 rather than v3.0

* Removed unused GetAreaLevel function

* Remove extraneous debug

* Fix output. Don't show leave message to player who left.

* Use enum for dynamic/fixed settings.

* Add more per-instance level scaling settings
- SkipHigherLevels and SkipLowerLevels can now be specified per Instance ID
- Added a default override for Blackrock Depths
- Fix rewards config issue
- Start moving global settings into each map to allow for per-map settings
- Further enhance the `.ab creaturestat` and `.ab mapstat` commands

---------

Co-authored-by: Stefano Borzì <stefanoborzi32@gmail.com>
2023-06-16 14:17:14 -03:00
..