* Added missing import for reflection /bonk
* Implemented bundles.json loading directly into program.cs
`IsBundleMod` is now read from all loaded mods metadata, and if set to true the bundles.json is read from the mod directory.
* re-assign the sorted valid mods to the loadedMods list
since ValidateMods returns the sortedLoadedMods, this is the list of mods we should be passing to our other spots
---------
Co-authored-by: Chomp <27521899+chompDev@users.noreply.github.com>
Swapped out the old method with new logic that sets the properties using reflection, and can also handle fields.
(cherry picked from commit 026c8dec5fa5cffd09de438e43d74e18a480d907)
* Added safety checks around dictionary lookups for Areas Stages
* Added lots of debug logs for websocket handling
* Removed debug comments
---------
Co-authored-by: Alex <alex@dm-me-for-questions.com>
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
* 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