Updated quest data:
To Great Heights - Part 4
To Great Heights - Part 5
Against the Conscience - Part 1
Surprise
Create a Distraction - Part 1
Create a Distraction - Part 2
To Great Heights - Part 2
Made use of primary constructor
Made `GetModsForWeaponSlot` access dictionary via`TryGet`
Made `GetCompatibleModsForWeaponSlot` access dictionary via`TryGet`
Removed INT cast when returning value from `FromRUB`
Renamed `HydrateLookup` and made protected
Made `LookupCollection` protected and moved inside `HandbookHelper
Decoupled `IsValidRewardItem` from repeatable config
Made `IsValidRewardItem` public
Added `RequiredItemTypeBlacklist` to Completion config, Blacklisted ammo
More nullguards
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>