Moved values out of `ArmorItemCanHoldMods` and into frozen set
Added Tpls to spelling dictionary
Changed list parameters to be `ienumerable` or `icollection` where possible
Made `ArmorItemHasRemovablePlateSlots` use class property directly
Made `ItemHasSlots` return false when checked item doesn't exist instead of throwing an unhandled exception
Folded `HasBuyRestrictions` logic into one line
Filter weapon preset root items by fence blacklist prior to looping over them
Added an exit after 25 failed attempts to add a preset to assort to prevent infinite loop
https://github.com/sp-tarkov/server-csharp/issues/167
* Added an option for modders to add their own Data handlers for ItemEventRouter handling serialization
* Made return type for func nullable
---------
Co-authored-by: Alex <clodanSPT@hotmail.com>
Co-authored-by: Alex <alex@dm-me-for-questions.com>
* chore: Bot generation performance improvements (#227)
* Bot generation performance improvements
* Revert debug logging logic
* Get rid of Info log which is bound to be printed inevitably at each bot wave generation
* Use assault const
* Removed comments
Removed lowercase side constants
Renamed equipment role to better explain its purpose
Fixed `Blocks` property being serialised to client
Updated `_slotsWithNoCompatIssues` to use existing enum type
Reduced log line to be debug
* Fixed `GetRandomTextThatMatchesPartialKey` incorrectly checking eft locales instead of spt locales
* Updated various methods to be protected
---------
Co-authored-by: hulkhan22 <clandestine984@gmail.com>
Co-authored-by: Chomp <dev@dev.sp-tarkov.com>
Added code to validate items fit into airdrop crate
Updated `CreateForcedLoot` and `CreateRandomLoot` to return items with their children
Updated `SetFoundInRaid` to not add a upd to money/currency if it doesn't already have one