Convert constructors into primary constructors
Simplified logic with use of ??, ??= and method groups
Cleaned up redundant conditional access qualifiers
* Add new service to handle profile migrations
* Handle various null checks
* Remove unecessary assignments
* Further works on this:
- Loads profiles as JObject's initally, so migration can take place on profiles that don't have proper compatability
- Adds prerequisite migrations, and sorts them after one another
* Throw exception if profile can't be deserialized after migration
* Cleanup & use profile version
* Further migrations work, support 3.10 & 3.11 profiles upgrading to 4.0
* Update parameter name
* Add better chatbot handling by making them asynchronous
Removes the need for having RunInTimespan as await Task.Delay now can handle this
* Remove now unused classes
* Handle commando's commands with ValueTask
* Set values as not nullable, client sends all of these
* Remove old IsValidMongoId and Regex
* Convert more configs to MongoId, as well as BaseClasses
* Remove HashUtil.Generate(), replaced with new MongoId()
Made `RagfairRequiredItemService` a singleton
Made `RagfairRequiredItemService ` store offerIds instead of offer objects, reducing memory footprint
Reworked `GetOffersThatRequireItem` to work with `RagfairRequiredItemService` changes
Moved `GenerateDynamicOffers` to run after garbage colelction, this means GC will work on memory prior to new offers being added but after stale offers are removed
Made `PaymentHelper` a singleton + Store currency tpls in a hashset instead of list
Comment improvements
This will break mods and their examples!
In addition:
- Removes being able to add custom locales, modders should do .AddTransformer on the LazyLoaded value in the database!
- Fixes up PostDBLoad methods trying to use .Value which won't work as this data will be unloaded after 30 seconds
- Move all other SPT code to use .AddTransformer
* Rename `Assets` to `SPT_Data`
* Added GZ 20+ variant to repeatable quest system #395
* Repeatable code cleanup
* Removed PMC level check for repeatable Quest pool generation #395
they will always generate for both GZ variants
* Rename `Assets` to `SPT_Data`
---------
Co-authored-by: Chomp <dev@dev.sp-tarkov.com>
* Further async changes
- SaveServer & Backup Server are now async
- Anything that ties in with SaveServer saving (Such as callbacks) are now async
- Various async util methods added
- Removed two wrapper methods and switched code over to use the actual method
* Update test
* Add file validation
* Revert "Added checks.dat build script (#343)"
This reverts commit 39228f88e705b58858d162256a5b5e10fe99148c.
* Update to use pwsh
* Wrap code in using