33 Commits

Author SHA1 Message Date
Archangel 4daaf1fc47 Make ItemBaseClassService more robust, stop hydrating the entire DB each time 2025-12-18 15:40:00 +01:00
DrakiaXYZ d2e2f04c93 Merge 4.0.3 changes to main (#674)
* Fix exception sometimes thrown on save
- Switch back from File.Rename to File.Move, as Rename is throwing exceptions on some users systems

* Change BTR skin to tarcola during Christmas event

* Added comment

* Remove unused using

* Add wipe Response model

* formatting and add Wipe Endpoint to V2

* Format Style Fixes

* Merge pull request #669 from sp-tarkov/Assembly-ref-validation

Validate core assembly reference when loading mods

* removed zombies from customs and interchange + increased infection across other maps that have zombie kill quests

* Don't apply hostility changes to maps without zombies during halloween

`ReplaceBotHostiltiy` has optional map whitelist param

* Updated hostility values for maps with infection:
bosses = hostile to player not to pmc bots
followers = hostile to player not to pmc bots
pmcs = hostile to player + always hostile to scavs
scavs = hostile to player and pmc bots
raiders = hostile to player and pmc bots

Adjusted infection rates to just maps with zombie kill quests

* Format Style Fixes

* Added missing values for event bosses

* Format Style Fixes

* Added missing values for `ravangezryachiyevent`
Fixed preset typo `bossTagillaAgro`

* Format Style Fixes

* Flagged `Night of The Cult` as halloween quest

* Fixed incorrect logic

* Enabled `Night of The Cult` bosses to spawn

* Format Style Fixes

* Addd a new ReleaseCheckService to notify users of updates (#670)

* Addd a new ReleaseCheckService to notify users of updates
- Pulls the latest release from GitHub API to compare the tag against the users current SPT version
- Runs at the very end of the startup process to avoid being pushed off screen by mod logging
- Only notifies of patch version increments, not major or minor increments
- Links the release notes so users can Ctrl+Click to open directly to the upgrade page
- Is run on its own thread, and discards all errors, so as to not impact users without an internet connection or ability to access GitHub

* Formatting

* Use record for the ReleaseInformation class

---------

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>

* ProfileDataService changes:

Added `ClearProfileData()`
Replaced filepath access with `Path.Combine`
Reduced various sources of duplication

* Adjusted `Goons` spawn chance to 20% across `Customs/Lighthouse/Woods/Shoreline`

* Account for compound items in DialogHelper.GetMessageItemContents

* Generate weapon/armor price based on the child item price total

* Added halloween event bosses to april event

* Flagged infected spawns as `ForceSpawn` and ``

* Add migration for invalid pockets

* Default assign IEnumerable

* Post raid effect fixes:
When exiting raid with severe muscle pain, prevent client instructing server to add mild muscle pain
When exiting a raid with effect that has a timer, decrease timer value by amount of time spent in raid

* Updated nuget packages

* Fixed player scav not having correct HP values on limbs #642

* Remove unused record

* Revert "Updated nuget packages"

This reverts commit f6d9d461a6.

* Added `IMP mine detector` to reward and flea blacklist

* Fixed weapon builds not overwriting existing #654

Cleaned up `SaveWeaponBuild` and `SaveEquipmentBuild`

---------

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Co-authored-by: Chomp <27521899+chompDev@users.noreply.github.com>
Co-authored-by: Chomp <dev@dev.sp-tarkov.com>
Co-authored-by: CWX <CWXDEV@outlook.com>
Co-authored-by: sp-tarkov-bot <singleplayertarkov@gmail.com>
Co-authored-by: Cj <161484149+CJ-SPT@users.noreply.github.com>
Co-authored-by: Tyfon <29051038+tyfon7@users.noreply.github.com>
Co-authored-by: Archangel <jesse@archangel.wtf>
2025-10-31 14:55:07 -07:00
DrakiaXYZ aa8911f5aa Add sanity checks to CustomItemService's AddToLocaleDbs method 2025-10-20 12:17:50 -07:00
Cj 37c900c8aa Always overwrite locales instead of reporting an error if the key exists 2025-10-19 16:40:45 -04:00
Cj fd47c47c3e Remove potential for deadlock in ProfileDataService 2025-10-19 01:13:46 -04:00
Cj 80b49eb077 Write profile data json indented 2025-10-19 00:28:45 -04:00
Cj 4f73860e66 Fix ProfileDataService adding the string to the cache instead of the object 2025-10-19 00:09:27 -04:00
DrakiaXYZ a98a5ce8a1 Discard duplicate item locale entry instead of throwing an exception 2025-10-16 18:19:08 -07:00
Cj 11ae50875a Custom quest service (#589)
* Initial work

* add todo

* Fix up errors

* More work on CustomQuestService

* Fix mistake

* Remove cloning work, its cancer

* clean-up

* Use TryAdd as a guard

* localize errors

* remove unused exception

* fix using

* fix not passing logging params
2025-09-14 09:20:25 +01:00
Cj 3596a12a19 Rename parameter for clarity 2025-09-10 12:04:54 -04:00
Cj 6ae1d6f52b Implement ModItemCacheService (#587)
* Implement `ModItemCacheService`

* Fix file name

* Return early

* Make AI happy
2025-09-09 15:29:00 +00:00
Archangel 7e2e3db3fd Change property naming to be more consistent (#578) 2025-08-28 15:32:02 +02:00
sp-tarkov-bot b14b74bf24 Format Style Fixes 2025-07-28 19:39:29 +00:00
Chomp 2c5420f3db list to ienumerable 2025-07-24 16:05:14 +01:00
Chomp 1320f7d0ab Ienumerable changes 2025-07-23 13:06:48 +01:00
Chomp 040be2feaa More strings to MongoIds
Convert constructors into primary constructors

Simplified logic with use of ??, ??= and method groups

Cleaned up redundant conditional access qualifiers
2025-07-14 22:29:41 +01:00
Chomp 4f5571c2d4 Converted more ids to MongoId 2025-07-05 12:35:03 +01:00
Chomp 2609db2536 Removed unused injections 2025-07-04 09:40:22 +01:00
Jesse ebe8f9ded5 Mongoid changes (#440)
* Remove old IsValidMongoId and Regex

* Convert more configs to MongoId, as well as BaseClasses

* Remove HashUtil.Generate(), replaced with new MongoId()
2025-07-03 15:42:16 +01:00
Jesse 54f0d0779c Convert TemplateItem to MongoId (#436)
* Convert TemplateItem to MongoId

* Push new extensions

* Handle null mongoid's being passed to regex

* Handle null strings, fixes item events

* Updated loot generation to work with new property `composedKey`

Fixed typo in `SlotId`

* Fix missing method after merge

* Remove duplicately named MongoIDExtensions?

* Fixed location loot generation to handle impending loot json changes

* Updated location JSONs with new properties (excluding lighthouse loose loot)

* Fixed build issue with ItemTplGenerator

* use correct handing for new mongo ids

* Added helper method to improve readability

---------

Co-authored-by: Chomp <dev@dev.sp-tarkov.com>
2025-07-02 10:14:04 +01:00
refringe 6e01428b2b .NET Format Style Fixes 2025-06-18 17:09:20 +00:00
Archangel 3419368f53 Add Transformer to Lazyload, get rid of event
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
2025-06-15 19:08:38 +02:00
Chomp e596974d07 Cleaned up usings 2025-06-14 16:43:24 +01:00
GrooveypenguinX f4428deccf fixed missing import for customitemservice, added bundle loading sequence in the program.cs (#333)
* 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>
2025-06-01 15:34:14 +01:00
Chomp 2357fd4a4f Fixed build 2025-06-01 15:29:05 +01:00
GrooveypenguinX 3e9c557a89 Fixed overrideproperties not applying in customitemservice
Swapped out the old method with new logic that sets the properties using reflection, and can also handle fields.

(cherry picked from commit 026c8dec5fa5cffd09de438e43d74e18a480d907)
2025-06-01 14:26:52 +01:00
hulkhan22 320e6adb84 Minor cleanup 2025-05-17 13:04:34 +02:00
Alex 1499627d3c DI completely reworked to keep status of singletons on multi type components 2025-05-06 10:52:22 +01:00
CWX 7c7297f63c Code cleanup and format 2025-04-22 14:49:05 +01:00
CWX 69ecde139e Update uasges to use LocalService 2025-04-17 13:21:38 +01:00
Alex c36543bd13 Added ProfileDataService 2025-04-01 12:33:03 +01:00
TetrisGG 86f31fe202 Change Services Comments
Changed comments to XML standard
Added missing comments
Adjusted wording on some comments for clarity.
2025-03-09 13:40:05 +01:00
clodan 270f095413 renamed projects and namespaces 2025-03-07 13:16:43 +00:00