* Updated Sorcerer Insignia Skills
* Fixes#2630.
* Added missing Elemental 20% damage bonus for level 1 Insignia.
* Adjusted the recovery bonus to only apply to Elementals.
* Adjusted 25% magic damage bonus calculation.
* Added the missing ASPD bonus for Wind Insignia.
* Insignias should not affect status immune.
* Removed the BATK addition.
* Miscellaneous cleanups.
Thanks to @admkakaroto and @exneval!
* Changes some pointers to const pointers to prevent unwanted behavoir.
* Changes sc_timer_next to a lambda function with only the tick as a
paramter.
* sce is not reassigned in sc_timer_next anymore, therefore it should be
crash safe (see #2414 and #2539)
* Fixes#2682: `getitem3`, `delitem3`, and `countitem3` always fail if `RandomValueArray` or `RandomParamArray` are not defined (Not all Item Options need 'Value' and 'Param')
* Thanks to @rAthenaCN
* Updated status change documentation for SC_STRIKING, SC_MOONLITSERENADE, SC_RUSHWINDMILL, SC_GT_REVITALIZE, SC_GT_ENERGYGAIN, SC_GT_CHANGE.
Thanks to @uddevil!
* Added the custom and test scripts to the buildbot
All scripts inside the custom and test npc directory are now parsed and executed automatically by the buildbot.
The only exceptions are the custom battleground scripts that would cause duplication warnings.
Thanks to @Jeybla for the Unix script!
* Fix#2591 spinlock issue.
Add basic_test, for few integration test.
Add thread_local_storage support in cmake
Fix thread.c for linux and fix small typo
* Follow up to 1c66035.
* Reverted a lambda function which was causing a mismatch between achievement vectors and player achievements.
Thanks to @reymarbc and @cydh!
* Fixes#2621
* Makes the getspawn functions independent of the mob_db struct.
Removes the getMobID() function from the struct which caused the
the issue.
* Thanks to @Lemongrass3110 and @uddevil!
* Adjusting Vending tax to match official
* Fixes#2528.
* There are no taxes on items being sold for less than 100 million. Anything above incurs a 5% tax.
* Refactored the tax code to use a single function.
Thanks to @mazvi, @Jeybla, and @lighta!
* Refactored achievements to utilize C++ features
* Cleaned up the YAML parser.
* Moved achievements from DBMap to an unordered_map.
* Moved achievement targets from DBMap to a vector.
* Changed all struct arrays into vectors.
* Changed all char arrays to strings.
* Changed all int arrays to std::arrays.
* Removed achievement_dummy as it's no longer needed.
* Achievements now use smart pointer to ensure proper construction and deconstruction of objects.
Thanks to @lighta!