Refringe
52172f2953
InsuranceController Quality and Maintainability ( !148 )
...
This pull request aims to refactor the InsuranceController class to improve its code quality and maintainability. The changes include restructuring methods, adding detailed comments, and enhancing the overall logic for processing insured items.
Specific changes include:
- Updating the `findItemstoDelete()` method (and the entire class, really) to keep track of which items are tagged using a Set. This *ensures* that an item can only be attempted to be deleted once, as Sets cannot contain duplicates.
- Changing the method in which we remove insurance packages from the profile. We were iterating over them using a `for` in reverse order and then removing them with a splice and the current index. On paper this should work, but funny things were happening... Sometimes. I've created a new method that removes packages from a profile by matching against the package systemData date, time, and location. This should give us a specific insurance package (as we don't have an ID to use). In addition to this we're fetching a new instance of the profile to edit, instead of modifying packages that are being iterated over as they're being iterated over.
-----
I was unable to reproduce the issue where insurance packages were not being removed from the profile, but hopefully these simplified approaches lead to less funny business.
Co-authored-by: Refringe <brownelltyler@gmail.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/148
Co-authored-by: Refringe <refringe@noreply.dev.sp-tarkov.com>
Co-committed-by: Refringe <refringe@noreply.dev.sp-tarkov.com>
2023-10-12 08:38:22 +00:00
Dev
968911e3de
Refactored repeatable quest system
...
Moved quest generation code into its own class
Moved shared methods used by controller and generator into helper class
2023-10-11 17:43:57 +01:00
Dev
0986bd0932
Make separate bossKill min/max properties + adjust various difficulty values
2023-10-11 17:05:06 +01:00
Dev
c2a6ca678e
Add support for daily quests to request specific weapon kill requirements on elimination quests
2023-10-11 17:04:18 +01:00
Dev
2f2e7c2e32
Variable rename to aid in readability
2023-10-11 10:47:54 +01:00
Dev
f67c4293d8
Merge used profile mods onto a single record for each mod by name, choosing newest
2023-10-10 17:01:29 +01:00
Dev
76d8b944d5
Store `AvailableAfter value in statusTimer of timelocked quest
...
Send locked quest to client when requested
Delete `availableAfter` property when accepting a quest
2023-10-10 16:18:55 +01:00
Dev
8edc43e9de
Do not send timelocked quests to client until timer is passed
2023-10-10 14:46:23 +01:00
chomp
0b67a9a0e9
0.13.5.0 ( !147 )
...
Co-authored-by: Dev <dev@dev.sp-tarkov.com>
Co-authored-by: Terkoiz <terkoiz@noreply.dev.sp-tarkov.com>
Co-authored-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
Co-authored-by: Refringe <refringe@noreply.dev.sp-tarkov.com>
Co-authored-by: Kaeno <e>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/147
2023-10-10 11:03:20 +00:00
Dev
96ef616d48
Add comments
2023-08-10 14:30:29 +01:00
Dev
91ec0144ed
Esxpose two endpoints for launcher to get mod-related data
2023-08-10 14:29:09 +01:00
Dev
96de45e580
Expose SPT friend nickname in core config
2023-08-09 16:01:51 +01:00
Dev
643cf9a268
Regenerate item cache on game start
...
Fixes 'item missing from cache' errors seen when using multiple mods that add items to the game
2023-08-09 12:04:31 +01:00
Dev
b3f5ea8287
FIx null excpetion when a weapon reward is picked that has no presets
...
We only want the default preset, so use that function instead
2023-08-09 11:52:20 +01:00
chomp
c1a4c544bc
Add JSONC support to server configs + use by modders ( !112 )
...
Replaced calls (where possible) to JSON.parse/stringify with use of `jsonUtil` functions
`VFS.ts` was tricky, it can't be updated as it'd create a circular dependency
Also add json5 to package.json for modders to have access to
Co-authored-by: Dev <dev@dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/112
2023-08-09 10:49:45 +00:00
Dev
6262d74acc
Pass the location insurance was lost into sendLostInsuranceMessage()
...
make use of mailSendService.sendLocalisedNpcMessageToPlayer()
Make use of new `insuranceFailedLabs` array in prapors json data
2023-08-07 22:43:00 +01:00
Dev
14c6104b65
FIx dialogs not showing
2023-08-04 18:58:00 +01:00
Dev
4dc290c284
Nullgaurd against mods that adjust map static data
2023-08-04 12:57:16 +01:00
Dev
dbf9955272
potential fix for custom trader issue
2023-08-03 15:46:50 +01:00
Dev
beb7c5069b
Improve profile fixing system
...
Remove more modded items from profile when config set to true, warn of set to false
Handle weapon presets + messages containing modded items
2023-08-03 14:36:53 +01:00
Dev
cbcd431f09
Fixed new profiles failing to start game during christmas/new years event
...
Add new function in dialog helper for getting dialogs frm profile - creates empty object if none found
Set gift collection time to 48 hours if none supplied
2023-08-03 12:25:09 +01:00
Dev
831dec7e55
Check for and remove dialogs with the key "undefined"
2023-08-01 23:16:06 +01:00
Dev
1bf3dba1a9
Add 1% chance all PMCs in players game are named after them with random prefixes
2023-08-01 13:31:58 +01:00
Dev
82de7c097d
Replace old "evil x" pmc name system with v2
2023-08-01 12:51:40 +01:00
Dev
a912f7c9cd
When bsg flea blacklsit is disabled, set all items as sellable on flea
2023-07-31 15:41:10 +01:00
Dev
59b2fc3602
Typo fix
2023-07-30 19:29:19 +01:00
Dev
b25342d2f5
Log error when RAID_CONFIGURATION values cannot be found inside getBotDifficulty()
2023-07-28 17:11:18 +01:00
Dev
ef03d546ce
Improvements to PMC gear variety + comment changes
2023-07-26 16:41:54 +01:00
Dev
76dce7a548
Nullguard across multiple dialogueController methods to prevent missing profile/dialog from killing client
2023-07-26 12:47:42 +01:00
Dev
06d39b26a9
Improvements to chat responses
...
Exit response code when gift code entered
Reply to additional keywords
Randomisd responses + added multiple
2023-07-26 09:38:33 +01:00
Dev
0a1913ab49
Fix issue with completing Sadist
not failing Colleagues Part 3
...
Added fail state to colleagues p3
Reworked loop inside `getQuestsFailedByCompletingQuest()` to use .some() instead
Reworked `failQuests()` to check all fail conditions instead of just the first one
2023-07-25 19:20:17 +01:00
Dev
b16d849280
Only add player to users inside getProfilesForMail() if they dont exist
2023-07-25 15:59:39 +01:00
Dev
8178f40b5d
Comment improvements
2023-07-25 14:04:21 +01:00
Dev
38b921a7e4
Move gift checks into GiftService.sendPraporStartingGift
2023-07-25 11:17:54 +01:00
Dev
41b4bdc432
Fix bug that casued prapor to send new player gifts regardless of how old profile was
...
Surround gift sending code with gift recieved check first
2023-07-25 10:36:23 +01:00
Dev
fd365df8ba
FIx getGameConfig() failing on profile creation
2023-07-25 10:22:12 +01:00
Dev
070b9c7ad6
Send total in game time on game start
2023-07-24 16:38:28 +01:00
Dev
848302e769
Convert post-raid player status into an enum and update usages
2023-07-24 16:30:03 +01:00
Dev
ad576a937a
Comment improvements
2023-07-24 15:52:55 +01:00
Dev
40149edeb2
axmc bot weapon generation improvements
...
Slight weapon variety improvement for PMCs
Only generate backpack loot if bot has backpack - reduces warnings during botgen
Move warning mesage to debug
Add sanitar medkit to pmc blacklist
Pass ur to warning message when endpoint body fails json validation
Pass sessionId into `locationController.generateAll()` to help modders when overriding function
Test - Added grizzly x5 to PMC secure containers to see if they heal more when damaged
2023-07-24 13:20:17 +01:00
Dev
f4047489eb
Clean up sptFriend generation code - reduce duplication
2023-07-23 12:30:15 +01:00
Dev
c5332986eb
Fixed issues with moving items to sorting table after opening sealed container
...
Also allow money from sold flea offers to enter sorting table
Remove unused addItem() from InventoryController
Add optional param to inventoryHelper.addItem() to allow use of sorting table, default = off
2023-07-23 12:29:00 +01:00
Dev
253fd3a42a
Fix prapor gift system failure on new profile creation
2023-07-23 11:36:41 +01:00
Dev
618a41fcd9
Add system to make prapor give giffts the first and second day after starting a fresh character
...
Add functionality to handle gift service to use locale ids instead of raw text
2023-07-22 23:23:42 +01:00
Dev
41ef304d97
Improve seasonal system to give gifts during event
...
Add additional equipment to PMCs when event is active
2023-07-22 20:07:58 +01:00
Dev
c3a4caa38a
Convert sptDev profiles quest starter email function to use mail send service
2023-07-22 14:02:13 +01:00
Dev
429d357e89
Correctly parse hours into second for quest code
2023-07-22 13:35:49 +01:00
Dev
f3e1dd59fb
Migrate quest controller to use new message service instead of dialogHelper
2023-07-22 12:56:15 +01:00
Dev
de356f8f71
Fix bad ref
2023-07-21 19:37:51 +01:00
chomp
a7b4ebe316
Rework message sending to support gift system ( !106 )
...
Co-authored-by: Kaeno <e>
Co-authored-by: Dev <dev@dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/106
2023-07-21 17:08:32 +00:00
Dev
67706f09fc
Fix missing import
2023-07-20 20:51:49 +01:00
chomp
e2a1b10989
Fixed bug to when talking with another user. Player messages shows like its being send from player instead of reciever. ( !105 )
...
Co-authored-by: Kaeno <e>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/105
2023-07-20 19:27:28 +00:00
Dev
d1d3674332
Localise warning messages
2023-07-19 13:16:45 +01:00
Dev
129fe0dc97
Localise server errors
2023-07-19 11:00:34 +01:00
Dev
3cba3bfd4a
Additional types added to BaseClasses
2023-07-18 17:16:23 +01:00
Dev
942c079284
Rename all globals.ts interfaces to improve naming consistency
2023-07-18 15:44:14 +01:00
Dev
ca48f0e83c
Add property to location config to allow adding bot min/max spawn limits for maps
...
Limit marksman on customs/woods/streets between 2 and 4, woods to 2 and 5
2023-07-17 14:40:54 +01:00
Dev
02d43d491c
Save time spent in raid to profile
2023-07-17 09:36:10 +01:00
Dev
965e3efbc7
Handle additional events: ignore/set and ignore/remove
...
Pass full request object generateDialogueView instead of just id
Handle case when getting dialogue from profile that does not exist
Improve `getMessagePreview()` nullguard properties that may be missing
2023-07-15 15:01:23 +01:00
Dev
295ed59739
Additional code comments
2023-07-15 14:49:25 +01:00
Dev
5e3d3f5bd7
Rework generateAll() to not have hardcoded skip of "base" map + moved code around + varaible rename
...
Made generate() private
2023-07-15 11:58:35 +01:00
Dev
7a1140c229
Extract coder into function from updateProfileBaseState + log nickname on game start
2023-07-15 11:03:54 +01:00
Dev
ee3766aad3
Add SPT friend :3
2023-07-15 11:02:48 +01:00
Dev
18054e4004
Extract code into seperate functions inside ProfileController + add logger to class
2023-07-15 11:01:29 +01:00
Dev
5d20b6b781
Further comment improvements
2023-07-15 11:00:35 +01:00
Dev
2b6980358c
Moved keepalive code out of GameCallbacks and into its own function inside GameControler
2023-07-15 10:57:39 +01:00
Dev
d2c2a39075
Add comments + improve comment consistency
2023-07-15 10:56:00 +01:00
Dev
195d0e3b1d
Add 'fixes' section to core.json, expose some flags for enabling spt fixes
...
Added flag to enable deletion of modded items from profile - default is off
Fixed issue where loop would stop checking for modded items after finding the first item
2023-07-15 10:53:08 +01:00
Dev
9288a59a77
Convert some privates to protected + some publics to protected
2023-07-15 10:45:33 +01:00
Dev
162709a5b0
Improve comments in gamecallback/controller
...
Move public functions to top of class
Use parameter property instead of hard coded string inside healthTreatment()
2023-07-14 12:55:32 +01:00
Dev
455bde264c
Improve offraidEat
...
use .find() instead of iterating over every item in player inventory
Return client error if consumable item not found + localised
2023-07-14 12:53:31 +01:00
Dev
7a16c7e998
Improvements to skill points given after performing actions:
...
Item crafting:
HideoutManagement skillpoints give
Intellect skillpoints given
Examining item:
Intellect given
Repairing weapon/armor
Intellect given
Cleanup of hideouthelper + reordering of functions
Flagged rewardSkillPoints() as dupe of PlayerService.incrementSkillLevel()
Flagged incrementSkillLevel() as dupe of QuestHelper.rewardsSkillPoints()
Need to decide which one wins
Added nullguards to incrementSkillLevel() + added optional multiplication by global skillprogression rate
Made it update last access timestamp
2023-07-13 10:26:47 +01:00
Dev
fd56bf040e
Convert hideout craft exp magic string into config value
2023-07-12 20:12:16 +01:00
Dev
503551c27e
Refactor getClientQuests
2023-07-10 15:48:49 +01:00
Dev
d0dcfc523b
Move event quest code into own function
2023-07-09 16:31:42 +01:00
Dev
dba6b5f629
Allow modifcaiton of the container airdrop will use (capacity etc)
2023-07-09 14:47:02 +01:00
Dev
ad6b94d8a9
Filter out event quests from data prior to sending them to player
...
Rework season service to use enum instead of magic strings for event names
Add config property to control showing/hiding non-seasonal event quests from player
2023-07-09 14:45:06 +01:00
Dev
cad5dcd679
Add missing quest assort unlocks to questassort.json
...
Add function to write to console what quest assort unlocks are missing
2023-07-09 11:33:43 +01:00
Dev
d6fed1aa0f
Cleanup of generateContainerLoot()
to improve readability
2023-07-02 15:05:32 +01:00
Dev
d28d1a485d
Add additional check to prevent trader item preset exploiting
2023-06-30 19:30:49 +01:00
Dev
7ad1fc3996
Add FiR config and wire up + cleanup of openRandomLootContainer()
2023-06-20 17:19:53 +01:00
Dev
26f29e1522
Add sealed crates to airdrops
2023-06-20 16:59:15 +01:00
Dev
0c31719013
Feature: Add code to handle sealed weapon containers when opened in menu
...
Add handbook price for sealed containers (default of 100rub)
2023-06-20 16:07:05 +01:00
Dev
e4fb8cb40d
Refactor getTraderSuits() to make better use of .filter() instead of loops
...
Moved magic strings into object
Misc comments
2023-06-02 16:21:35 +01:00
Dev
cfbe2739f9
Fix issue with insurance message being incorrect
...
Moved `sendLostInsuranceMessage()` to `insuranceService` + make it read correct id from locale file
2023-06-01 21:24:23 +01:00
Dev
9bf533a1b1
Add additional comments and formatting fixes
2023-06-01 10:46:16 +01:00
Dev
bb9d3739c4
Move logging
2023-05-30 13:58:02 +01:00
Dev
22279a7353
Log sessionid on game start
2023-05-30 13:55:46 +01:00
Dev
774357c1f3
Move fence logging
2023-05-30 13:36:15 +01:00
Dev
00e1679dd9
Log fence standing changes post-raid
2023-05-30 13:35:34 +01:00
Dev
a4efdf9b43
Revert "Store the location insured gear was lost on + time it was lost against insured items in profile"
...
This reverts commit 77508ace73
.
2023-05-27 22:39:32 +01:00
Dev
72239e4434
Rename variables for clarity
2023-05-27 22:31:43 +01:00
Dev
77508ace73
Store the location insured gear was lost on + time it was lost against insured items in profile
2023-05-27 22:31:24 +01:00
Dev
1a3c107f0a
Remove duplicate method that does same as storeLostGear()
2023-05-27 22:26:58 +01:00
Dev
c489db81b1
Protect loop from undefined error inside fixBrokenOfflineMapWaves() when map has missing waves array
2023-05-27 19:03:52 +01:00
Dev
e2b1d4d0c6
null guard against a map without a base json inside fixBrokenOfflineMapWaves()
2023-05-27 19:02:30 +01:00
Dev
17d517e4a9
Improve logging
2023-05-24 19:19:05 +01:00
Dev
17afc9e460
Add endpoint stubs and improve request/response objects
2023-05-20 18:37:39 +01:00
Dev
dcd1da28a6
Refactor InsuranceController.processReturn()
2023-05-19 17:39:26 +01:00
Dev
4d27efd9d1
Additional fix when purchasing clothing
2023-05-15 19:18:42 +01:00
Dev
ce63d5418b
Fix error on purchasing clothing from ragman
2023-05-15 18:37:09 +01:00
Dev
2c3e61b413
Refactor endOfflineRaid()
2023-04-24 11:57:19 +01:00
Dev
9fff59f464
FIx typo, no more pies
2023-04-23 13:44:15 +01:00
Dev
9f8bfae75d
Refactor of buyClothing()
2023-04-23 12:17:18 +01:00
Dev
d284ca47d4
Refactor wearClothing()
2023-04-23 11:38:57 +01:00
chomp
7974e4531b
Refactor functions ( !90 )
...
(cherry picked from commit f6fc6e41c0
)
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/90
2023-04-22 22:41:04 +00:00
Dev
102584e24b
Workaround for bad shotgun dispersion values
2023-04-08 22:17:04 +01:00
Kaeno
ca931165b2
Fix: Fixed some ragfair issues ( !86 )
...
Fixed bug with removing offers from flee and item returning too quickly.
Fixed bug with error message that would show on removal of offers.
Expose property expireSeconds in ragfair.json.
Co-authored-by: Kaeno <>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/86
Co-authored-by: Kaeno <kaeno@noreply.dev.sp-tarkov.com>
Co-committed-by: Kaeno <kaeno@noreply.dev.sp-tarkov.com>
2023-04-06 16:23:52 +00:00
Kaeno
33195f8efb
Fix: Workaround fixing marksmans not spawning on maps in function. fixBrokenOfflineMapWaves ( !84 )
...
Fix: Workaround fixing marksmans not spawning on maps in function fixBrokenOfflineMapWaves
Co-authored-by: Kaeno <>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/84
2023-03-29 19:50:02 +00:00
Dev
27a0df2d92
Fix: Improve InventoryController.toggleItem()
to handle items without a upd property
...
Rewrote loop to use .find()
Added comments + logging
2023-03-26 16:52:40 +01:00
Dev
43ad523dce
Fix: null guard bonus check during upgradeComplete
2023-03-25 16:35:38 +00:00
Dev
990c33b9c6
Feature: expose 3 variables to PMC messages: playerLevel/playerName/playerSide
2023-03-22 17:12:19 +00:00
chomp
d595e26ee6
Feature: Allow PMCs that kill the player to message them a positive/negative message ( !81 )
...
Store bots spawned in raid inside cache (`MatchBotDetailsCacheService`)
Clear cache after raid
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/81
2023-03-22 10:25:34 +00:00
Dev
415b73d674
Feature: Update incrementSkillLevel() call to replace hard coded value with value from globals
2023-03-21 14:35:29 +00:00
Dev
249730ee65
Fix: return the found quest
2023-03-21 14:22:45 +00:00
Dev
1fc35881d8
Refactor: Update various functions with changes from code review
2023-03-21 14:19:49 +00:00
Dev
927273d71d
Feature: Add ability to define different types of airdrop loot containers
...
+ Fixed a typo in `createRandomloot()` function name
+ Added more generically named`getWeightedValue()` function as future replacement for `getWeightedInventoryItem()`
+ Changed `LootRequest` into interface
Added:
Weapon/armor
Barter
Medical/Food
Mixed
2023-03-18 17:29:26 +00:00
chomp
b44f62bb99
Feature: send launcher descriptions of profiles when calling connect()
( !70 )
...
Localise description text
Add `IConnectResponse` object for LauncherController.connect()
Move server name into core.json config
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/70
2023-03-15 14:18:55 +00:00
chomp
f74031b4d5
Feature: Ensure chosen extract for repeatable quest always has a chance above 0 ( !68 )
...
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/68
2023-03-14 12:39:36 +00:00
chomp
08b760cf4c
Feature: expand PMC response system to include different message suffixes ( !64 )
...
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/64
2023-03-13 14:02:39 +00:00
chomp
c81633ac38
Fix: resolve issue with handing in item to quest that allows multiple types of items to be handed in (e.g. punisher p5 - 2 types of makarov can be handed in) ( !63 )
...
Moved some error logging in handoverQuest() to separate functions
Renamed `itemHandoverMode` to `isItemHandoverQuest`
Included some additional pmc responses
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/63
2023-03-13 09:34:04 +00:00
chomp
a79c04ad28
Feature: warn players who have botReload skill active ( !58 )
...
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/58
2023-03-10 11:26:59 +00:00
chomp
d192044b68
Fix: remove redundant reward code as quests are set to ready to start, not started ( !56 )
...
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/56
2023-03-09 11:53:19 +00:00
chomp
1cfd6d76bb
Fix: Give dev-usec profiles starting rewards ( !53 )
...
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/53
2023-03-08 22:41:57 +00:00
chomp
1137912d51
Feature: Add system that allows PMCs to send text messages to player post-raic. Can be positive or negative ( !40 )
...
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/40
2023-03-08 13:26:32 +00:00
chomp
e4bc6c8d68
Feature: Improve numerous endpoints + add function for sending messages to player ( !39 )
...
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/39
2023-03-07 22:25:23 +00:00
Dev
3d849b427b
Squashed 22 commits in an attempt to fix Gitea object bloat
2023-03-05 22:02:56 +02:00
Dev
e1310d74ca
Add Repo
2023-03-03 15:23:46 +00:00