Dev
b5951a147b
Log request data when endpoint is missing
2024-01-05 14:50:27 +00:00
Dev
6da2ce2f74
Update quest data + improve quest type accuracy
2024-01-05 14:35:29 +00:00
Dev
1249b309cf
Improve accuracy when handling client/achievement/statistic
2024-01-04 21:28:47 +00:00
Dev
c5bb09cce5
Persist achievement data from client into server profile on raid end
2024-01-04 17:17:11 +00:00
Dev
9eee25a175
Prevent server error when loot generator tries to find non-existent loot
2024-01-02 19:46:21 +00:00
Dev
90f82d0e03
Update map linkages
2024-01-02 19:12:11 +00:00
Dev
628d817348
Show error when missing caliber data in drawAmmoTpl()
2024-01-02 15:01:27 +00:00
Dev
6080c992b9
Fix snow event not spawning
2024-01-02 13:41:52 +00:00
Dev
224f921ea5
use different base class check
2024-01-01 11:33:19 +00:00
Dev
3437b70eaf
Remove unused interfaces
2023-12-30 22:09:55 +00:00
Dev
c39e331423
Replace conditionCounters
array with with TaskConditionCounters
dictionary
2023-12-30 21:59:51 +00:00
Dev
eca799d606
Use correct dictionary for storing data in profile TaskConditionCounters
instead of BackendCounters
2023-12-30 21:30:54 +00:00
Dev
ffc3a28dc8
Fix fillMagazineWithCartridge()
failing to get a cartridge size when weapon is the rotating grenade launcher
2023-12-30 18:43:17 +00:00
Dev
bea2a5d30a
Correctly add armor inserts into statically spawned helmets
2023-12-30 17:38:06 +00:00
Dev
a194569946
Basic implementation for viewing other profiles
2023-12-30 16:41:20 +00:00
Dev
d72fd3fa24
Add base BTR trader server code
2023-12-30 11:21:19 +00:00
Dev
78c53f36d8
Improve post raid type data accuracy
2023-12-30 10:45:37 +00:00
Dev
81393fb629
Improve error logging in weapon gen
2023-12-30 10:45:12 +00:00
Dev
6a8d8258dd
Update getProfileStatus()
to make live
2023-12-29 23:24:23 +00:00
Dev
11e64eacab
Add achievement storage to profile on creation
2023-12-29 23:06:57 +00:00
Dev
22a4ba3643
make account id closer in style to live
2023-12-29 22:53:16 +00:00
Dev
ca7958afed
Implement Place of face
hideout area
...
Implement adding/removing favorite items
2023-12-29 20:22:50 +00:00
Dev
d1b9cbbfc5
Enable snow for christmas/new years
2023-12-29 19:09:03 +00:00
Dev
70dcafc6ba
Add new years 2023 gift
2023-12-29 17:18:28 +00:00
Dev
5a57895998
Fix server error when adding lootable armor to raid
2023-12-29 17:13:48 +00:00
Dev
6d4314c5d8
Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
...
# Conflicts:
# project/src/models/enums/BaseClasses.ts
2023-12-29 15:49:30 +00:00
Dev
8c546bd1a8
Add new base classes and update name of ARMORED_EQUIPMENT
2023-12-29 15:48:25 +00:00
CWXDEV
b1c3e5b310
Add builtInInserts to baseclasses and remove from flea offers
2023-12-29 15:33:43 +00:00
Dev
8e2ad5697e
Add armorColliders
type
2023-12-28 21:39:46 +00:00
Dev
e27f52c505
Added system to randomise the mods on equipment found as loose/static loot
...
controlled via config
2023-12-28 21:31:31 +00:00
Dev
ec263acb96
Add armor plates to various bots
...
Fix rigs mods not being generated for PMCs
2023-12-28 18:57:02 +00:00
Dev
17c4d6cec0
Rework on equipment generation to process mods on an item if the item supports them instead of if the bots mods array has mods
...
Add new bots to bot.json
2023-12-28 18:36:37 +00:00
Dev
7b13f69f18
Handle when no data exists for a map without killing server
2023-12-28 15:13:29 +00:00
CWXDEV
d5d15d64a7
fix order
2023-12-28 13:15:43 +00:00
CWXDEV
5b2b8dc2fb
add achievement images
2023-12-28 12:36:27 +00:00
Dev
b4ca22a0d5
Typo fix
2023-12-28 12:22:06 +00:00
Dev
c1f8cee19f
Fix issues with mag tempalte saving
2023-12-28 12:19:52 +00:00
Dev
8dc322180f
Implement magazine template saving
2023-12-28 12:02:37 +00:00
CWXDEV
d49a9da751
check for null on conditionCounters
2023-12-28 11:30:36 +00:00
Dev
f3fee2bc39
Update bot difficulties + fix various mod errors
2023-12-28 10:58:29 +00:00
Dev
422a817360
Remove unused code
2023-12-28 08:48:40 +00:00
Dev
31198120a1
Add missing param
2023-12-28 00:07:41 +00:00
Dev
06c60b9fd9
Log bot role on error
2023-12-28 00:06:45 +00:00
Dev
369a8a6cca
Begin work on updating equpiment code to handle required mods
2023-12-27 23:29:37 +00:00
Dev
fa01f1c2ae
Add armor plates to default profile
...
Implemented 2 achievement endpoints
2023-12-27 22:43:42 +00:00
Dev
db296499e9
Fix profile ids being prepended with pmc/scav killing game load
2023-12-27 22:01:30 +00:00
Dev
8bd4a31c1e
Remove more code
2023-12-27 20:32:22 +00:00
CWXDEV
488bc9dbf3
fix buildscallbacks
2023-12-27 20:22:53 +00:00
Dev
b6813141fd
Changes to get closer to main menu
2023-12-27 20:19:17 +00:00
Dev
01127d651e
Fix app context
2023-12-27 20:08:57 +00:00
Dev
c3bddbbad2
Add TaskConditionCounters to profile and favorite array
2023-12-27 19:52:35 +00:00
Dev
dccb356f62
Add missing property
2023-12-27 19:12:42 +00:00
Dev
99eaeeb63b
Set winterEventEnabled
value on start
2023-12-27 18:55:58 +00:00
Dev
b76d5b142c
Add achievement files
2023-12-27 18:34:35 +00:00
Dev
9e55a52965
update quest objects and implement get achievemetns
2023-12-27 17:15:38 +00:00
Dev
87b177586e
Add new properties to IGlobals
2023-12-27 16:30:26 +00:00
Dev
5eaca29a50
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
...
# Conflicts:
# project/assets/configs/bot.json
# project/assets/database/locations/shoreline/base.json
# project/assets/database/locations/tarkovstreets/base.json
# project/assets/database/templates/handbook.json
# project/assets/database/templates/items.json
2023-12-27 16:08:54 +00:00
Dev
89c4dfde35
Update JSONs
2023-12-27 15:59:43 +00:00
Dev
b70ef6df39
Stub out various endpoints
2023-12-27 15:05:07 +00:00
Dev
db70e8e4bc
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
...
# Conflicts:
# project/assets/configs/core.json
# project/src/controllers/DialogueController.ts
2023-12-27 11:24:49 +00:00
Dev
f9a1d117ea
prevent client/quest/list
handler from showing quests from traders who no longer exist
2023-12-26 16:26:15 +00:00
Dev
538a5f2807
Fix Czech locale not being picked up correctly
2023-12-26 15:55:50 +00:00
Dev
6caf97d7ee
Flag items given as FiR
...
Fix weapon preset reqeust not returning more than 1 item
2023-12-25 13:22:31 +00:00
Alex
0ade8f4b9c
Added configs and simplification to ChatBot ( !180 )
...
Co-authored-by: clodan <clodan@clodan.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/180
Co-authored-by: Alex <clodan@noreply.dev.sp-tarkov.com>
Co-committed-by: Alex <clodan@noreply.dev.sp-tarkov.com>
2023-12-25 08:38:42 +00:00
Alex
26a6553eaa
Add customizable chat bots and chat commands ( !179 )
...
* Use ICommandoCommand interface to register a new command for Commando! Our new and shiny chat bot that takes care of all your commanding needs
* Use IDialogueChatBot to register you new chatty friend bot!
* If you are feeling lazy, you can also use the ISptCommand and register a command that will use "spt" prefix
* spt give command has been added! Feeling like cheating today? hehe use "spt give tplId quantity" and get a new shiny item on your inbox!
Co-authored-by: clodan <clodan@clodan.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/179
Co-authored-by: Alex <clodan@noreply.dev.sp-tarkov.com>
Co-committed-by: Alex <clodan@noreply.dev.sp-tarkov.com>
2023-12-24 19:54:27 +00:00
Dev
ea2257c2fb
Add function to allow addition of custom weapons to PMCs
2023-12-24 16:06:18 +00:00
Alex
66f04f194a
Added config to compress profile (zero to none performance difference on high end CPUs) and debug time measurements for load/save times ( !178 )
...
Co-authored-by: clodan <clodan@clodan.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/178
Co-authored-by: Alex <clodan@noreply.dev.sp-tarkov.com>
Co-committed-by: Alex <clodan@noreply.dev.sp-tarkov.com>
2023-12-22 09:27:15 +00:00
TheSparta
4f8670c657
Reworked LinkedList and Queue
...
- Reworked LinkedList and Queue
- Written tests for LinkedList and Queue
2023-12-21 22:27:19 +00:00
Dev
c7572fdaf2
Improve accuracy of total game time
2023-12-21 22:12:55 +00:00
Dev
8b287267d5
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
2023-12-21 10:21:08 +00:00
Dev
f451920fb7
Show error when item not found in player inventory when handing over items for quest
2023-12-21 10:15:57 +00:00
Dev
956397864c
Fix items disappearing after repair
2023-12-21 09:31:07 +00:00
Dev
72e4d91185
fix server start error
2023-12-21 09:12:15 +00:00
Dev
b993226296
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
...
# Conflicts:
# project/src/callbacks/DialogueCallbacks.ts
# project/src/callbacks/MatchCallbacks.ts
# project/src/callbacks/NotifierCallbacks.ts
# project/src/controllers/InventoryController.ts
# project/src/controllers/MatchController.ts
# project/src/routers/static/RagfairStaticRouter.ts
2023-12-21 09:07:23 +00:00
Dev
0de6f201fe
Fix exploit where FiR status was preserved when merging non FiR items into a FiR stack
2023-12-20 19:48:26 +00:00
Dev
b5a3f2fe32
Additional tye improvements
2023-12-20 00:27:27 +00:00
Dev
6930267d8b
Add various missing types
2023-12-20 00:17:27 +00:00
Dev
cf782a8fcb
Add endpoint client/ragfair/offer/findbyid
2023-12-19 23:52:39 +00:00
Dev
90324ed343
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
...
# Conflicts:
# project/assets/configs/core.json
# project/package.json
# project/src/generators/RagfairOfferGenerator.ts
2023-12-19 17:31:19 +00:00
Dev
c2cd9ff895
Fix code error in clearValues()
2023-12-19 17:21:22 +00:00
Dev
8a964aef29
improve IScavRaidTimeLocationSettings
comments
2023-12-19 13:23:27 +00:00
Dev
2f3202b921
Skip insured items in special slots being returned on death
2023-12-18 23:08:27 +00:00
Dev
8853159b55
Fix player offers being expired before checking if they were sold
2023-12-18 22:32:46 +00:00
Dev
6b82663ee1
Fix items with a condition property not being correctly classified by ragfair code
2023-12-18 11:18:13 +00:00
Dev
799690d2a6
Clone the preset data prior to pushing into reward away - prevents preset being later modified
2023-12-17 22:42:26 +00:00
Dev
9e95e1bbac
prevent random ammo stacks going above 60
2023-12-17 22:36:47 +00:00
Blurr
0fb1c33edb
Added missing AmmoTypes ( !177 )
...
Had them to hand from a recent mod, so gathered might as well add them. All hashes were originally gathered from https://db.sp-tarkov.com/
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/177
Co-authored-by: Blurr <blurr@noreply.dev.sp-tarkov.com>
Co-committed-by: Blurr <blurr@noreply.dev.sp-tarkov.com>
2023-12-17 14:24:28 +00:00
chomp
1cf8b1ec9b
flea-sell-changes ( !176 )
...
Co-authored-by: Shibdib <shibdib@noreply.dev.sp-tarkov.com>
Co-authored-by: Dev <dev@dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/176
2023-12-17 10:36:54 +00:00
Dev
10b88b54b3
Add guard to fillMagazineWithCartridge()
to prevent bad mod data breaking server
2023-12-16 22:23:50 +00:00
Dev
66630a5fc6
Improve comments
2023-12-16 21:59:30 +00:00
Dev
cc916ff419
Refactor of ammo reward calculaton for daily quests
...
No longer give random value between config min and stack max size (mods that adjust max stack size were causing very broken behaviour)
Ammo stack size is now chosen based on rouble budget for reward, capped at a count of 100
Adjust config min stack size to be 5, this still achieves goal of preventing single stack ammos like grenades but allows inclusion of ammos like patron_12x70_buckshot
2023-12-16 21:49:16 +00:00
Dev
7950bef43e
Make use of global values when sending player back unsold offer items + rep loss
2023-12-16 15:50:35 +00:00
Dev
d2f6a16312
Fix issue spotted by Shibdib
where player flea offers aren't taking into account globals time listing value
2023-12-16 15:11:11 +00:00
Dev
64334339b3
Fix flea not showing correct categories until unlock level + 1
2023-12-15 23:45:04 +00:00
Dev
5b886038e9
Change warning logging into debug inside adjustWeighting()
2023-12-15 19:45:40 +00:00
Dev
f815839ed8
make getUpdateableTraders()
public
2023-12-15 15:26:23 +00:00
Dev
b6e7679b03
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
2023-12-15 14:43:30 +00:00
Dev
c394cd6c6c
Ensure all classes are exported consistently
2023-12-15 14:43:05 +00:00
Dev
268a9b8abd
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
...
# Conflicts:
# project/src/callbacks/BundleCallbacks.ts
# project/src/controllers/RepeatableQuestController.ts
# project/src/helpers/InRaidHelper.ts
# project/src/loaders/PreAkiModLoader.ts
2023-12-15 14:16:15 +00:00
TheSparta
d1dc04cbec
Fixed missed method rename
...
- getAllSeasonalEventItems got renamed getInactiveSeasonalEventItems
2023-12-15 14:10:33 +00:00
Dev
950d17ef1d
Add special slots to getPlayerGear()
2023-12-15 10:38:32 +00:00
Dev
ba1bdc9c5f
Clean up comments for items removed post-raid
2023-12-15 10:36:26 +00:00
Dev
fd14338f5a
Exit isItemIncompatibleWithCurrentItems()
function if item doesnt exist in db or has no _props field
2023-12-14 18:19:50 +00:00
Dev
88c4cf949c
Add comments to various functions
...
Remove redundant function `isWeaponTemplate()`
log warning message when `reparentPresets()` reassigns root item tpl
2023-12-14 15:47:01 +00:00
Dev
bda6d66e92
Log names of files being serialsied
2023-12-13 22:16:21 +00:00
Dev
9e6c12a9b2
Log file being deserialized
2023-12-13 20:02:44 +00:00
XDenizX
d356070688
Added the display of the nickname of the connected player during logging. ( !173 )
...
Co-authored-by: XDenizX <denizik1@mail.ru>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/173
Co-authored-by: XDenizX <xdenizx@noreply.dev.sp-tarkov.com>
Co-committed-by: XDenizX <xdenizx@noreply.dev.sp-tarkov.com>
2023-12-12 09:49:35 +00:00
Dev
786b9013fd
Log to console when seasonal event is active
2023-12-11 14:42:17 +00:00
Dev
14e94dbb8e
Fix issue where scav raids would generate MORE loot the shorter the raid was
2023-12-11 14:42:04 +00:00
Dev
b15c8e196e
Log total count of static items being spawned
2023-12-11 14:41:30 +00:00
Dev
2cebf5f2ee
Prevent giving player 0 intellet as reward after repairing item
2023-12-11 11:46:54 +00:00
Dev
73cfc16699
Prevent giving player 0 intellect skill points when crafting in hideout
2023-12-11 11:45:23 +00:00
Dev
4eebd5feef
Change skill reward being 0 from an error to warning
2023-12-11 11:44:26 +00:00
Dev
25bfda0d56
Prevent increasing a skill to beyond the game limit of 5100 points
2023-12-11 11:43:30 +00:00
Dev
3acd07c034
Update cleanUpCompleteCraftsInProfile()
to handle when a hideout craft is cancelled by player
...
value in kvp will be null
2023-12-10 22:31:55 +00:00
Dev
12cda6acb8
getWeaponRepairSkillPoints()
has a chance to return 0 due to the possibility of a critical failure, only run addSkillPointsToPlayer()
if value is above 0
2023-12-10 13:18:14 +00:00
Dev
bdd9a4cd9b
Improve handling of Lightkeeper quests
...
When LK gives a time-gated quest it was being saved into the profile with a status of `Locked`, meaning it would stay there forever.
Post raid:
Check post-raid for locked quests and update them to be `AvailableAfter` + assign the unlock time to `availableAfter`
Check for quests flagged as `AvailableAfter` and have a `availableAfter` timestamp before current time, change to `AvailableForStart`
2023-12-10 13:09:54 +00:00
Dev
77dba80fbd
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
...
# Conflicts:
# project/assets/configs/core.json
# project/assets/database/locales/global/ch.json
# project/assets/database/locales/global/cz.json
# project/assets/database/locales/global/en.json
# project/assets/database/locales/global/es-mx.json
# project/assets/database/locales/global/es.json
# project/assets/database/locales/global/fr.json
# project/assets/database/locales/global/ge.json
# project/assets/database/locales/global/hu.json
# project/assets/database/locales/global/it.json
# project/assets/database/locales/global/jp.json
# project/assets/database/locales/global/kr.json
# project/assets/database/locales/global/pl.json
# project/assets/database/locales/global/po.json
# project/assets/database/locales/global/ru.json
# project/assets/database/locales/global/sk.json
# project/assets/database/locales/global/tu.json
# project/src/controllers/TradeController.ts
# project/src/generators/LocationGenerator.ts
2023-12-08 22:20:16 +00:00
Dev
18dc76ec2c
Improve handling of adding items to a bot container when the items type is incompatible with container
2023-12-08 16:27:34 +00:00
Dev
8a78e074a4
From testing, inspecting an item sets value to false, not true
2023-12-07 20:37:56 +00:00
Dev
c015882eac
Improve handling of a mail profileChangeEvents
property
2023-12-07 20:16:04 +00:00
Dev
7c2d93e87b
Handle edge case when an item is missing a min/max stack size value
2023-12-07 20:07:46 +00:00
Dev
3f46cffcfe
Rewrote getCategoriesFromOffers()
to make use of filter.reduce instaed of a giant loop
2023-12-07 11:57:28 +00:00
Dev
ef9ecfd51d
Change warning to debug message
2023-12-06 19:18:25 +00:00
Dev
7f995de5d1
Reworked how the flea market categories are calculated, instead of trying to be smart and add/remove in a cache as offers are created, calculate the categories when needed
...
Categories:
Are now much more accurate
take into account when player is below flea unlock level
Any with a (1) and no offers have been fixed
Take into account when offers are barters + barters are filtered out
Skip items with a type of `node` during flea assort generation
2023-12-05 20:41:43 +00:00
Dev
56366068e0
Remove redundant quest item check from fence assort generation as its already handled by itemHelper.isValidItem()
2023-12-05 15:00:23 +00:00
Dev
ef769cf0d7
Cleanup of var names and comments inside addForcedLoot()
...
Prevent duplicate loot locations with same Id being added to client response
2023-12-04 16:00:44 +00:00
Dev
221cd98316
Allow fixProfileBreakingInventoryItemIssues()
to also fix clothing issues
...
Move `fixProfileBreakingInventoryItemIssues` into `ProfileFixerService`
2023-12-03 20:37:35 +00:00
Dev
fd40d47698
Handle when hideout crafts have null progress values, not just undefined
2023-12-03 14:50:01 +00:00
Dev
48de3139ae
Fix bug where setting ragfairconfig.purchasesAreFoundInRaid to true would make trader purchases on flea Found in raid
2023-12-03 12:06:52 +00:00
Dev
3d28574969
Remove unused ref to uuid generator
2023-12-03 11:43:56 +00:00
Dev
1db690afb3
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
...
# Conflicts:
# project/src/controllers/HideoutController.ts
2023-12-03 11:13:22 +00:00
DanW
1fdd1967e9
Change name of trainArrivalDelaySeconds to clarify its meaning ( !171 )
...
Changed the name of the new `trainArrivalDelaySeconds` setting to `trainArrivalDelayObservedSeconds` so it's more obvious that it doesn't actually control the train arrival time.
`trainArrivalDelayObservedSeconds` is my first choice for naming this setting, and `trainArrivalDelayThatYouDefinitelyShouldNotChangeSoDoNotEvenThinkAboutItSeconds` is my second choice.
Co-authored-by: dwesterwick <dwesterwick@yahoo.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/171
Co-authored-by: DanW <danw@noreply.dev.sp-tarkov.com>
Co-committed-by: DanW <danw@noreply.dev.sp-tarkov.com>
2023-12-02 19:41:27 +00:00
Dev
f5e5136603
Fix big that casued bots to spawn with only 1 magazine at most
2023-12-02 19:25:46 +00:00
Dev
12cb176a42
Potential fix for failed/repeatable quests keeping their subtask completed status
2023-12-02 00:10:25 +00:00
Dev
19f6bbaed4
improve weightedRandom()
handling of bad data input
...
update allowed param types, should only be arrays
2023-12-01 17:22:24 +00:00
Dev
52b91cae87
Remove useless length check
2023-12-01 16:45:31 +00:00
Dev
e1790ff7a5
Prevent getWeightedValue()
function from null error if items and weights do not match
2023-12-01 14:15:11 +00:00
Dev
2a3839f6de
Move trainArrivalDelaySeconds
value into config
2023-12-01 09:03:14 +00:00
DanW
1994832281
Improved check for disabling train extracts in Scav raids ( !170 )
...
Made the following changes for determining if train extracts should be disabled in Scav raids:
* When determining at what time the train will leave, include the extraction time and the delay between the train extract activating and it becoming available to board
* Fixed the variable used for determining if the extract should be disabled
* Ensure `MinTime` and `MaxTime` for extracts are never negative
Also, trains are hard, and my brain hurts.
Co-authored-by: dwesterwick <dwesterwick@yahoo.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/170
Co-authored-by: DanW <danw@noreply.dev.sp-tarkov.com>
Co-committed-by: DanW <danw@noreply.dev.sp-tarkov.com>
2023-12-01 08:37:52 +00:00
Dev
8ddad763be
Cleanup of handleScavCase()
2023-11-30 13:44:43 +00:00
Dev
3d01fe6211
Move TraderData
object into ItemEventRouterBase
where it will cause less confusion
2023-11-30 10:30:13 +00:00
Dev
2148eaafe5
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
...
# Conflicts:
# project/src/context/ApplicationContext.ts
# project/src/context/ContextVariableType.ts
# project/src/controllers/QuestController.ts
# project/src/di/Container.ts
# project/src/generators/weapongen/implementations/ExternalInventoryMagGen.ts
2023-11-30 10:20:37 +00:00
Dev
b52ea4f1fa
Only set start time in resetQuestState()
when new status is started
2023-11-30 10:13:45 +00:00
Dev
9ed5869fa6
Reduce calls to this.timeUtil.getTimestamp()
inside getQuestReadyForProfile()
...
Set `startTime` property inside `resetQuestState()`
2023-11-30 10:09:23 +00:00
Dev
67f7eb59c5
Improve handling of profileChanges
, dont overwrite existing data when adding new objects
2023-11-30 10:02:00 +00:00
Dev
288b7cf654
Further cleanup of acceptQuest
2023-11-30 09:36:28 +00:00
Dev
a941a22305
Attempt to resolve issue where failed quests that are restarted retain their previous completed statuses until client restart
...
New function to purge completed condtions + remove status timers beyond what a newly started quest would have + add updated quest status object to `questsStatus` property on profile changes response object
2023-11-29 23:36:31 +00:00
Dev
bfee07d5fe
Fix item tag regex replacing non-english characters
2023-11-29 22:30:23 +00:00
Dev
000e48ca4c
Allow wave adjustment to be controlled via config param
...
Prevent bot wave min/max from falling below 0
2023-11-29 17:18:45 +00:00
Dev
dde5c7e8af
Move raid adjustment code into own service
...
Rename various parts of sytem to better match what it does
2023-11-29 16:52:13 +00:00
Dev
5d0d9e2cd9
Fix issue where OriginalSurvivalTimeSeconds
would be set to the raid time in minutes, not the survival time in seconds
2023-11-29 14:22:48 +00:00
Dev
3945de8b1f
Fix incorrect NewSurviveTimeSeconds
value being sent to client
...
Thanks to DanW
2023-11-29 13:32:55 +00:00
Dev
a1d6596f8d
Fix multiple typos
2023-11-29 11:36:20 +00:00
Dev
c801dba0b7
Fix some weapons not having their chamber loaded with a cartridge during weapon generation
...
weapons:
weapon_izhmeh_mr43_sawed_off_12g
weapon_izhmash_mp18_multi
`addCartridgeToChamber` assumed the only id a chamber could have was `patron_in_weapon` this is wrong, it can also have `patron_in_weapon_000` and `patron_in_weapon_001`
it also assumed weapons only have one chamber
Some weapons can have multiple chambers
Some weapons can have 1 chamber but have the id `patron_in_weapon_000` not `patron_in_weapon`
2023-11-29 11:35:34 +00:00
Dev
9c2725e2fe
Add system that adjusts the loot multipliers for a scav raid based on the percentage of the raid time remaining
...
Controlled per location
Most maps are capped at 40/50% min
Added multiple config proeprties to configure how system works
Added ability to remove all AppContext values by key
During `getRaidTime()` loot % modifier values are stored in app context,
Then, during `generate()` those values are retreived and applied if found
After loot generation values are reset to their original value
2023-11-28 12:42:58 +00:00
Dev
f9cf3242c8
Add new core config entry fixProfileBreakingInventoryItemIssues
, defaults to off
...
Attempts to fix common issues that happen to profile inventory items:
Duplicate items with the same _id value
Item Tag names with non alphanumeric characters
StackObjectsCount null values
2023-11-28 11:06:08 +00:00
Dev
382cf4c785
Update getMessageItemContents()
to handle when its items.data property is null
2023-11-27 18:24:02 +00:00
Dev
cc488477fb
Logging improvements
2023-11-27 17:01:38 +00:00
Dev
58e6cc8cd7
Remove message sending code from acceptRepeatableQuest()
dailies in live do not send messages upon accepting them
2023-11-27 16:35:44 +00:00
Dev
7a798d2b60
Reworked singleplayer/settings/getRaidTime
endpoint
...
Handles adjustments to train extract appearance times
Handles time needed to be alive in a raid to get a Success raid status
Added extra reduction percent weight: 30%
2023-11-27 15:02:35 +00:00
Dev
14e917823c
Nullguard getMessageItemContents()
when checking count of reward items
2023-11-26 22:53:09 +00:00
Dev
130f120fda
Comment change
2023-11-26 22:35:26 +00:00
Dev
8d32cf2d03
Store player scav brain data in config and pass to client when requested
2023-11-26 21:33:47 +00:00
Dev
ac459335c0
Add new endpoint to calcualte a reduced raid time for scavs and send the maps base.EscapeTimeLimit
value to client for PMC raids
2023-11-26 21:11:03 +00:00
Dev
1350fdb78b
Find quest in player quest array using .find
instead of .filter
2023-11-25 13:28:52 +00:00
Dev
64722bac17
Add quit exit for gameStart when resetting profile
2023-11-25 13:26:11 +00:00
Dev
eb22acc785
Handle when checking for gun wall level and linked inventory item does not exist
2023-11-25 13:25:43 +00:00
Dev
0b57fe3a5b
Stop addAmmoIntoEquipmentSlots()
from adding ammo if item cannot find container to add item to
2023-11-25 10:04:17 +00:00
Dev
4057301953
Nullguard prior to saving quest data to scav profile
2023-11-24 19:18:29 +00:00
Dev
3c0e6a34f2
Improve addItemWithChildrenToEquipmentSlot()
, Make it return different result when:
...
There are no containers to add item to
Unknown reason
Improved handling of when container has no space for item
Improve `ExternalInventoryMagGen.process()`, Handle edge case when a weapon with a default internal magazine but weapon uses external magazine
Improve most locations that call `addItemWithChildrenToEquipmentSlot()` to log failure reason
2023-11-24 16:05:58 +00:00
Dev
8c7b5da9ff
Rename variable for clarity
2023-11-24 15:38:37 +00:00
Dev
5a2f6b7581
Optimisation: addAmmoIntoEquipmentSlots()
, if it fails because of lack of space, break out of loop and skip trying to add remaining ammo
2023-11-24 15:35:19 +00:00
Dev
a0016ae2fa
Parse result inside getRandomizedMagazineCount()
to number before returning
2023-11-24 15:31:16 +00:00
Dev
0c658745eb
Add missing base class
2023-11-24 15:26:56 +00:00
Dev
27e16e09d7
log when addLooseWeaponsToInventorySlot()
fails to add weapon to bot inventory
2023-11-24 15:26:41 +00:00
Dev
7342849f61
Resolve getRandomizedBulletCount
returning extremely large ammo values for rotating grenade launchers
2023-11-24 15:24:46 +00:00
Dev
dcb579116c
Fix regression in fixIncorrectAidValue
if check
2023-11-23 20:21:02 +00:00
Dev
aa6f765a64
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
...
# Conflicts:
# project/assets/configs/core.json
2023-11-22 14:28:30 +00:00
Dev
ddb9917c6b
Rework of post-raid scav/pmc profile handling:
...
Moved logic out of `updateProfileBaseStats()` and into separate functions for pmc/scav, left profile-agnostic code alone
new functions `updatePmcProfileDataPostRaid` and `updateScavProfileDataPostRaid`
scav - Only copy active quest progress from client profile to server scav profile
scav - dont attempt to update trader standings, none exist on scav profile
scav - dont transfer psot-raid limb damage to server profile
Update quest status values similarly to PMC quests post raid to ensure they're consistent with existing quest data in profile
Simplifies `migrateScavQuestProgressToPmcProfile`
made various warnings debug instead
2023-11-20 16:33:04 +00:00
Dev
d2209114c9
Rename parameter as it can be scav or pmc profile
2023-11-20 15:07:59 +00:00
Dev
525e5cd21b
Fix length comparison not working as its an object, not an array
2023-11-20 15:05:35 +00:00
Dev
9929cf8c33
Clone handbook data before caching it
2023-11-20 13:47:47 +00:00
Dev
1abc7e3604
Handle failing a quest while raiding as scav
2023-11-20 11:19:11 +00:00
Dev
ccc017c976
Fix issue with scav case rewards being collectable twice
2023-11-20 10:22:03 +00:00
Dev
2132ea7adb
Fix issue with hideout crafts being collectable twice
2023-11-20 10:14:21 +00:00
Dev
f727b13215
prevent collection quests requesting more than 1 ammo per repeatable quest
2023-11-19 20:29:41 +00:00
Dev
aeea8f6e49
Guard against empty RepeatableQuests
array in profile
2023-11-19 16:12:20 +00:00
Dev
396b56d08d
Expose uniqueItemCount
config value for use in choosing total items to return in Completion
quests
...
Weekly quests now require more items than dailies
2023-11-19 14:58:45 +00:00
Dev
1def90e9d6
Improve handling of how reward items have their stack count randomised
...
Separated out how weapons are chosen as rewards
Lowered chance of skill reward
Added additional reward types to most traders
2023-11-19 13:21:34 +00:00
Dev
8cb4833001
Fix reward creatio code giving 1 extra reward compared to what was specified
2023-11-19 10:54:06 +00:00
Dev
ee3096328e
Exit reward finding loop when reward pool is empty
2023-11-19 10:52:50 +00:00
Dev
8fe9fb9391
Adjust getWeaponRepairSkillPoints()
to never return a value below 0
2023-11-18 21:59:48 +00:00
Dev
aed65ce1cb
Rework getWeightedCompatibleAmmo()
to loop over cartridges until it finds one compatible instead of giving up after the first failure
2023-11-18 18:46:03 +00:00
Dev
546ae76976
Add missing request object
2023-11-18 15:03:33 +00:00
Dev
0d205ed50c
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
...
# Conflicts:
# project/src/controllers/HealthController.ts
2023-11-18 14:13:08 +00:00
Dev
b0afad72dd
Randomise min durabiltiy value for weapon/armor collection quests to be 60 or 80%
...
rename param for clarity
2023-11-18 12:33:00 +00:00
Dev
79cb201b82
Split maxExtracts
into additional maxExtractsWithSpecificExit
for repeatable quests
2023-11-18 12:32:03 +00:00
Dev
fa1e15897a
Only heal bodypart if player chose hp healing in post-raid therapist healing screen
2023-11-18 11:33:06 +00:00
Dev
5e919f4793
Only add xp reward to repeatable quests when value is > 0
2023-11-18 11:13:36 +00:00
Dev
0abcd8b3b7
Further adjustments to daily/weekly reward xp/roubles/skill reward chance
...
Adjusted fence quest values in level increments of 10 + make fence reward Euros instead of Roubles
2023-11-17 18:39:08 +00:00
Dev
c2aaf9c6fb
Add workaround for stm-9 generating with an impossible configuration and being reset to default
2023-11-17 12:40:23 +00:00
Dev
ba2666f801
Set production
property to null when no updates are to be sent to the client
2023-11-17 11:13:14 +00:00
Dev
2f122df9f6
Update SPTUSEC and SPTBEAR values
2023-11-17 09:18:30 +00:00
Refringe
6cd86e67b0
Merge branch 'master' into 3.8.0
...
# Conflicts:
# project/.vscode/launch.json
# project/assets/database/locations/bigmap/base.json
# project/assets/database/locations/interchange/base.json
# project/assets/database/locations/rezervbase/base.json
# project/gulpfile.mjs
# project/package.json
# project/src/ErrorHandler.ts
# project/src/Program.ts
# project/src/callbacks/DataCallbacks.ts
# project/src/callbacks/DialogueCallbacks.ts
# project/src/callbacks/GameCallbacks.ts
# project/src/callbacks/HandbookCallbacks.ts
# project/src/callbacks/HealthCallbacks.ts
# project/src/callbacks/HttpCallbacks.ts
# project/src/callbacks/LauncherCallbacks.ts
# project/src/callbacks/LocationCallbacks.ts
# project/src/callbacks/MatchCallbacks.ts
# project/src/callbacks/ModCallbacks.ts
# project/src/callbacks/NotifierCallbacks.ts
# project/src/callbacks/PresetCallbacks.ts
# project/src/callbacks/ProfileCallbacks.ts
# project/src/callbacks/RagfairCallbacks.ts
# project/src/callbacks/TraderCallbacks.ts
# project/src/context/ApplicationContext.ts
# project/src/context/ContextVariableType.ts
# project/src/controllers/BotController.ts
# project/src/controllers/CustomizationController.ts
# project/src/controllers/DialogueController.ts
# project/src/controllers/GameController.ts
# project/src/controllers/HealthController.ts
# project/src/controllers/HideoutController.ts
# project/src/controllers/InraidController.ts
# project/src/controllers/InsuranceController.ts
# project/src/controllers/InventoryController.ts
# project/src/controllers/LauncherController.ts
# project/src/controllers/LocationController.ts
# project/src/controllers/MatchController.ts
# project/src/controllers/QuestController.ts
# project/src/controllers/RagfairController.ts
# project/src/controllers/RepeatableQuestController.ts
# project/src/controllers/TradeController.ts
# project/src/di/Container.ts
# project/src/di/Router.ts
# project/src/generators/BotEquipmentModGenerator.ts
# project/src/generators/BotLevelGenerator.ts
# project/src/generators/BotWeaponGenerator.ts
# project/src/generators/LocationGenerator.ts
# project/src/generators/LootGenerator.ts
# project/src/generators/RepeatableQuestGenerator.ts
# project/src/generators/WeatherGenerator.ts
# project/src/generators/weapongen/InventoryMagGen.ts
# project/src/generators/weapongen/implementations/BarrelInventoryMagGen.ts
# project/src/generators/weapongen/implementations/ExternalInventoryMagGen.ts
# project/src/helpers/AssortHelper.ts
# project/src/helpers/BotGeneratorHelper.ts
# project/src/helpers/InRaidHelper.ts
# project/src/helpers/ProfileHelper.ts
# project/src/helpers/RagfairHelper.ts
# project/src/helpers/RagfairOfferHelper.ts
# project/src/helpers/TraderHelper.ts
# project/src/loaders/ModLoadOrder.ts
# project/src/loaders/PostDBModLoader.ts
# project/src/loaders/PreAkiModLoader.ts
# project/src/models/eft/common/IGlobals.ts
# project/src/models/eft/common/ILocationBase.ts
# project/src/models/eft/common/tables/IBotBase.ts
# project/src/models/eft/common/tables/IProfileTemplate.ts
# project/src/models/eft/common/tables/ITemplateItem.ts
# project/src/models/eft/dialog/IAcceptFriendRequestData.ts
# project/src/models/eft/dialog/IDeleteFriendRequest.ts
# project/src/models/eft/game/IGameConfigResponse.ts
# project/src/models/eft/game/IGameKeepAliveResponse.ts
# project/src/models/eft/game/IGameStartResponse.ts
# project/src/models/eft/match/IJoinMatchResult.ts
# project/src/models/eft/notifier/INotifier.ts
# project/src/models/eft/profile/GetProfileStatusResponseData.ts
# project/src/models/eft/trade/IProcessBuyTradeRequestData.ts
# project/src/models/eft/trade/IProcessSellTradeRequestData.ts
# project/src/models/enums/WildSpawnTypeNumber.ts
# project/src/models/spt/bots/BotGenerationDetails.ts
# project/src/models/spt/config/IBotConfig.ts
# project/src/models/spt/config/IBotDurability.ts
# project/src/models/spt/config/IInRaidConfig.ts
# project/src/models/spt/config/ILocationConfig.ts
# project/src/models/spt/config/IQuestConfig.ts
# project/src/models/spt/config/ISeasonalEventConfig.ts
# project/src/models/spt/server/ILocations.ts
# project/src/models/spt/utils/IUuidGenerator.ts
# project/src/routers/dynamic/BotDynamicRouter.ts
# project/src/routers/dynamic/BundleDynamicRouter.ts
# project/src/routers/dynamic/CustomizationDynamicRouter.ts
# project/src/routers/dynamic/DataDynamicRouter.ts
# project/src/routers/dynamic/HttpDynamicRouter.ts
# project/src/routers/dynamic/InraidDynamicRouter.ts
# project/src/routers/dynamic/LocationDynamicRouter.ts
# project/src/routers/dynamic/NotifierDynamicRouter.ts
# project/src/routers/dynamic/TraderDynamicRouter.ts
# project/src/routers/save_load/InsuranceSaveLoadRouter.ts
# project/src/routers/save_load/ProfileSaveLoadRouter.ts
# project/src/routers/serializers/NotifySerializer.ts
# project/src/routers/static/BotStaticRouter.ts
# project/src/routers/static/BundleStaticRouter.ts
# project/src/routers/static/ClientLogStaticRouter.ts
# project/src/routers/static/CustomizationStaticRouter.ts
# project/src/routers/static/DataStaticRouter.ts
# project/src/routers/static/DialogStaticRouter.ts
# project/src/routers/static/GameStaticRouter.ts
# project/src/routers/static/HealthStaticRouter.ts
# project/src/routers/static/InraidStaticRouter.ts
# project/src/routers/static/InsuranceStaticRouter.ts
# project/src/routers/static/ItemEventStaticRouter.ts
# project/src/routers/static/LauncherStaticRouter.ts
# project/src/routers/static/LocationStaticRouter.ts
# project/src/routers/static/MatchStaticRouter.ts
# project/src/routers/static/NotifierStaticRouter.ts
# project/src/routers/static/PresetStaticRouter.ts
# project/src/routers/static/ProfileStaticRouter.ts
# project/src/routers/static/QuestStaticRouter.ts
# project/src/routers/static/RagfairStaticRouter.ts
# project/src/routers/static/TraderStaticRouter.ts
# project/src/routers/static/WeatherStaticRouter.ts
# project/src/services/BotEquipmentFilterService.ts
# project/src/services/BotGenerationCacheService.ts
# project/src/services/BotWeaponModLimitService.ts
# project/src/services/PaymentService.ts
# project/src/services/ProfileFixerService.ts
# project/src/services/RagfairOfferService.ts
# project/src/services/RagfairTaxService.ts
# project/src/services/RepairService.ts
# project/src/services/SeasonalEventService.ts
# project/src/utils/RagfairOfferHolder.ts
# project/src/utils/TimeUtil.ts
# project/src/utils/UUidGenerator.ts
# project/src/utils/VFS.ts
# project/src/utils/collections/queue/Queue.ts
# project/src/utils/logging/AbstractWinstonLogger.ts
# project/src/utils/logging/WinstonMainLogger.ts
# project/src/utils/logging/WinstonRequestLogger.ts
# project/tests/utils/TimeUtil.test.ts
Manually resolved by Refringe.
2023-11-16 23:35:11 -05:00
Refringe
4ac12ef70a
Formatting/Linting Changes ( !168 )
...
These are the formatting & linting configuration changes from the `3.8.0` branch and the changes that they make to the overall project.
The majority of these changes are from running two commands:
`npm run lint:fix`
`npm run style:fix`
This has already been run on the `3.8.0` branch and this PR should make `master` play nicer when it comes to merges going forward.
There are now four VSCode plugins recommended for server development. They've been added to the workspace file and a user should get a UI notification when the workspace is opened if they're not installed.
The four plugins are:
https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig
https://marketplace.visualstudio.com/items?itemName=dprint.dprint
https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint
https://marketplace.visualstudio.com/items?itemName=biomejs.biome
Once installed they should just work within the workspace.
Also, be sure to `npm i` to get the new dprint application.
Co-authored-by: Refringe <brownelltyler@gmail.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/168
2023-11-16 21:42:06 +00:00
Dev
ba443ca9a9
Fix bot generation error when crazyAssaultEvent
spawns
2023-11-16 18:43:22 +00:00
Refringe
50f8a84f5c
Rewrites a number of filter().reduce() calls to use more straight-forward for...of loop.
2023-11-16 10:18:11 -05:00
Refringe
f6ba864ea8
Removes unnecessary constructor.
2023-11-16 10:16:20 -05:00
Refringe
a4d2013ff6
Converts forEach loop to for...of loop
2023-11-16 10:15:52 -05:00
Refringe
be841a3de3
Resolves Type Issue in ProfileFixerService
...
When attempting to access a property/type that *shouldn't* exist (on purpose) it has to be cast to the type manually, else annoying type error.
2023-11-16 10:11:31 -05:00
Refringe
00be492d5e
Resolves ESLint Naming Convention Issues
2023-11-16 10:09:01 -05:00
Refringe
0ac9e147cb
Resolved post-conflict syntax errors. Sorry!
2023-11-16 10:07:46 -05:00
Dev
b70474133b
Fix multiple locations in code where an array for hideout areas is incorrectly accessed like a dictionary
2023-11-16 14:33:39 +00:00
Dev
15082afde2
Fix reorderHideoutAreasWithResouceInputs()
off by one error because it was checking the index instead of finding the area type
2023-11-16 14:30:08 +00:00
Dev
fce724b380
Fix water collector craft not resetting after completion of craft
2023-11-16 12:55:57 +00:00
Dev
925d9b3f07
Add fence rep gain on taking COOP extract
...
Refactored fence rep handling code for Car extracts
2023-11-16 11:38:55 +00:00
Refringe
8066eb942e
Merge branch 'fix/linting-errors' into 3.8.0
...
# Conflicts:
# project/src/callbacks/DataCallbacks.ts
# project/src/callbacks/DialogueCallbacks.ts
# project/src/callbacks/GameCallbacks.ts
# project/src/callbacks/HandbookCallbacks.ts
# project/src/callbacks/HealthCallbacks.ts
# project/src/callbacks/HttpCallbacks.ts
# project/src/callbacks/InventoryCallbacks.ts
# project/src/callbacks/LauncherCallbacks.ts
# project/src/callbacks/ModCallbacks.ts
# project/src/callbacks/PresetCallbacks.ts
# project/src/callbacks/TraderCallbacks.ts
# project/src/context/ApplicationContext.ts
# project/src/context/ContextVariableType.ts
# project/src/controllers/BotController.ts
# project/src/controllers/CustomizationController.ts
# project/src/controllers/DialogueController.ts
# project/src/controllers/GameController.ts
# project/src/controllers/HideoutController.ts
# project/src/controllers/InraidController.ts
# project/src/controllers/InsuranceController.ts
# project/src/controllers/InventoryController.ts
# project/src/controllers/LauncherController.ts
# project/src/controllers/LocationController.ts
# project/src/controllers/QuestController.ts
# project/src/controllers/RagfairController.ts
# project/src/controllers/RepeatableQuestController.ts
# project/src/controllers/TradeController.ts
# project/src/di/Container.ts
# project/src/di/Router.ts
# project/src/generators/BotEquipmentModGenerator.ts
# project/src/generators/BotGenerator.ts
# project/src/generators/BotWeaponGenerator.ts
# project/src/generators/LocationGenerator.ts
# project/src/generators/LootGenerator.ts
# project/src/generators/RepeatableQuestGenerator.ts
# project/src/generators/WeatherGenerator.ts
# project/src/generators/weapongen/InventoryMagGen.ts
# project/src/generators/weapongen/implementations/BarrelInventoryMagGen.ts
# project/src/generators/weapongen/implementations/ExternalInventoryMagGen.ts
# project/src/helpers/AssortHelper.ts
# project/src/helpers/BotGeneratorHelper.ts
# project/src/helpers/HttpServerHelper.ts
# project/src/helpers/InRaidHelper.ts
# project/src/helpers/TradeHelper.ts
# project/src/helpers/TraderHelper.ts
# project/src/loaders/PostDBModLoader.ts
# project/src/loaders/PreAkiModLoader.ts
# project/src/models/eft/common/tables/IProfileTemplate.ts
# project/src/models/eft/common/tables/ITemplateItem.ts
# project/src/models/eft/dialog/IAcceptFriendRequestData.ts
# project/src/models/eft/dialog/IDeleteFriendRequest.ts
# project/src/models/eft/game/IGameConfigResponse.ts
# project/src/models/eft/game/IGameKeepAliveResponse.ts
# project/src/models/eft/game/IGameStartResponse.ts
# project/src/models/eft/match/IJoinMatchResult.ts
# project/src/models/eft/notifier/INotifier.ts
# project/src/models/eft/profile/GetProfileStatusResponseData.ts
# project/src/models/eft/trade/IProcessSellTradeRequestData.ts
# project/src/models/external/HttpFramework.ts
# project/src/models/external/tsyringe.ts
# project/src/models/spt/config/ILocationConfig.ts
# project/src/models/spt/server/ILocations.ts
# project/src/routers/dynamic/BundleDynamicRouter.ts
# project/src/routers/dynamic/DataDynamicRouter.ts
# project/src/routers/dynamic/HttpDynamicRouter.ts
# project/src/routers/dynamic/NotifierDynamicRouter.ts
# project/src/routers/save_load/HealthSaveLoadRouter.ts
# project/src/routers/save_load/InraidSaveLoadRouter.ts
# project/src/routers/save_load/InsuranceSaveLoadRouter.ts
# project/src/routers/save_load/ProfileSaveLoadRouter.ts
# project/src/routers/static/BundleStaticRouter.ts
# project/src/routers/static/ClientLogStaticRouter.ts
# project/src/routers/static/DataStaticRouter.ts
# project/src/routers/static/DialogStaticRouter.ts
# project/src/routers/static/GameStaticRouter.ts
# project/src/routers/static/HealthStaticRouter.ts
# project/src/routers/static/InraidStaticRouter.ts
# project/src/routers/static/LauncherStaticRouter.ts
# project/src/routers/static/LocationStaticRouter.ts
# project/src/routers/static/MatchStaticRouter.ts
# project/src/routers/static/ProfileStaticRouter.ts
# project/src/routers/static/QuestStaticRouter.ts
# project/src/routers/static/RagfairStaticRouter.ts
# project/src/routers/static/WeatherStaticRouter.ts
# project/src/services/BotGenerationCacheService.ts
# project/src/services/BotLootCacheService.ts
# project/src/services/LocalisationService.ts
# project/src/services/ProfileFixerService.ts
# project/src/services/RagfairOfferService.ts
# project/src/services/RagfairTaxService.ts
# project/src/services/RepairService.ts
# project/src/utils/App.ts
# project/src/utils/DatabaseImporter.ts
# project/src/utils/RagfairOfferHolder.ts
# project/src/utils/collections/queue/Queue.ts
# project/tests/__factories__/ProfileInsurance.factory.ts
# project/tests/controllers/InsuranceController.test.ts
Manually resolved by Refringe
2023-11-15 22:28:43 -05:00
Refringe
622949cd83
Auto-formatting Sweep
2023-11-15 21:12:40 -05:00
Dev
467c87b026
Fix trader repair not costing any money
2023-11-15 20:17:24 +00:00
Dev
6dddeed6a8
Add 25% chance to double daily reward stack (item should be stackable and not weapon)
2023-11-15 19:43:35 +00:00
Dev
3b053b741b
Allow custom profiles to use localied descriptions
...
Fixed an inconsistently named locale key
Added logger to LauncherController
2023-11-15 11:16:56 +00:00
Dev
8cda48cac7
Get a more accurate price for weapon preset rewards
2023-11-14 23:12:50 +00:00
Dev
c9dc0d2192
Make each trader reward different types of items
...
Prevent trader from rewarding more than 1 weapon
Fixed trader failing to find default weapon to send as reward
2023-11-14 23:05:34 +00:00
Dev
cd36e3993d
When rewarding a weapon for a repeatable quest, choose a random default preset if the chosen weapon has no defaults
2023-11-14 21:43:37 +00:00
Dev
909d79f415
Remove unnecessary removeMapAccessKey()
method, now handled in client
2023-11-14 17:34:44 +00:00
Dev
bb8677bc65
Rework payMoney()
to handle taking money from post-raid therapist healing
2023-11-14 17:06:11 +00:00
Dev
844cb12cc1
If offer to remove is not found, don't reduce rep loss
2023-11-14 16:09:45 +00:00
Dev
1021a945cb
Fix insurance costing 0 roubles
2023-11-14 11:46:51 +00:00
Refringe
0793df60c2
Formatting Change - Space is now given around object properties.
2023-11-13 12:38:16 -05:00
Refringe
32b47bdc18
Formatting Change - When a statement can be moved into a single line and still be under the maximum line length, it is.
2023-11-13 12:31:52 -05:00
Refringe
7533d33358
Formatting Change - Operator positions are now at the start of the next line (for multi-line statements).
2023-11-13 12:29:16 -05:00
Dev
206f0d672d
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
...
# Conflicts:
# project/assets/configs/core.json
2023-11-13 17:06:19 +00:00
Refringe
2b826f8b1e
Conditional Code Adjustments Re:Biome
...
When multiple falsey conditions are being checked Biome recommends to check for all the truthy conditions negated. Logic remains untouched, while only using one negation. Apparently easier to comprehend.
2023-11-13 12:00:49 -05:00
Refringe
ce45862e75
Favours dot object notation whenever possible.
2023-11-13 11:51:02 -05:00
Refringe
e709b6c111
Reformatted imports with (only) Biome.
2023-11-13 11:43:37 -05:00
Refringe
4479f68388
Formatting for utils.
2023-11-13 11:14:58 -05:00
Refringe
8576929404
Formatting for services.
2023-11-13 11:13:25 -05:00
Refringe
ca9ab9bcc8
Formatting for servers.
2023-11-13 11:12:51 -05:00
Refringe
b90fb8c8b9
Formatting for routers.
2023-11-13 11:12:17 -05:00
Refringe
d62ccce3ca
Formatting for models.
2023-11-13 11:11:36 -05:00
Refringe
3f2d36a2fc
Formatting for loader classes.
2023-11-13 11:10:44 -05:00
Refringe
8586447d21
Formatting for helper classes.
2023-11-13 11:10:22 -05:00
Refringe
d3e5418fc8
Formatting for generator classes.
2023-11-13 11:05:05 -05:00
Dev
6cf91ad923
Skip null production objects inside handleRecipe()
2023-11-13 12:01:48 +00:00
Dev
0666aad779
Implement Unbind
event handler
...
Occurs when player moves item from quick access panel to inventory
Small optimistion for `Bind` event, once item is found, exit loop
2023-11-12 10:10:34 +00:00
Dev
5f774bf3c8
Exit loop after deleting hideout craft
2023-11-11 20:15:46 +00:00
Refringe
3ef51e771b
Formatting of DI classes.
2023-11-10 16:58:55 -05:00
Refringe
87bb07cfd9
Formatting for controller classes.
2023-11-10 16:49:29 -05:00
Refringe
5fa8803f8c
Auto-formatting for context classes.
2023-11-10 15:23:51 -05:00
Refringe
ab7f41b924
Auto-formatting for callback classes.
2023-11-10 15:19:56 -05:00
Refringe
90cdd6eea1
Auto-formatting of root-level files.
2023-11-10 15:17:43 -05:00
Dev
8fda5395e6
FIx getFleaPriceForItem()
handing items with a price of 0 incorrectly.
...
Only show error when price returned is undefined
2023-11-10 20:11:36 +00:00
Dev
d2f4327871
Update updateProductionTimers()
to handle Progress
value being undefined
2023-11-10 19:18:58 +00:00
Dev
37029791da
Nullguard removeQuestFromScavProfile()
accessing a null scav quest array
2023-11-10 19:13:14 +00:00
Dev
7849a730f2
Fix nullguard firing for all traders
2023-11-10 19:00:04 +00:00
Dev
ade4875362
Change warning in checkTraderRepairValuesExist()
to use nickname
2023-11-10 10:37:26 +00:00
Dev
c4c923f8dc
Update checkTraderRepairValuesExist() to not use .clone
2023-11-10 10:31:22 +00:00
Dev
21dd62269e
Log server values on start
2023-11-09 22:27:20 +00:00
Dev
171d39d5cf
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
2023-11-09 14:49:41 +00:00
TheSparta
f48e704bf1
import DependencyContainer type directly from tsyringe
...
- Redundant re-export of DependencyContainer from tsyringe, caused madge to think it was a circular dependency due to the file name also being tsyringe, deleted the file and importing directly from tsyringe instead.
2023-11-08 19:53:03 +00:00
TheSparta
09a64b801a
fixed lint/style/noNonNullAssertion
2023-11-08 19:53:01 +00:00
TheSparta
98a793229c
fixed lint/complexity/noUselessSwitchCase
2023-11-08 19:53:00 +00:00
TheSparta
f2ef3efdac
fixed suppressions/unused
2023-11-08 19:53:00 +00:00
TheSparta
d13bcc2eba
fixed lint/style/noInferrableTypes
2023-11-08 19:52:59 +00:00
TheSparta
ed1557d26b
fixed suppressions/deprecatedSuppressionComment
2023-11-08 19:52:58 +00:00
TheSparta
e3c833a085
fixed lint/style/useExponentiationOperator
2023-11-08 19:52:58 +00:00
TheSparta
133c0f760d
fixed lint/suspicious/noGlobalIsNan
2023-11-08 19:52:57 +00:00
TheSparta
5b46e956c4
fixed lint/complexity/useLiteralKeys
2023-11-08 19:52:56 +00:00
TheSparta
3eee163aae
fixed lint/complexity/noForEach
2023-11-08 19:51:52 +00:00
TheSparta
40a9ed4102
fixed lint/complexity/noUselessConstructor
2023-11-08 19:51:52 +00:00
TheSparta
0308ae4bf7
fixed lint/style/useEnumInitializers
2023-11-08 19:51:51 +00:00
Dev
4580c1cea8
FIx hideout crafts flaged as needFuelForAllProductionTime
not progressing
2023-11-08 16:17:14 +00:00
Dev
98ab19c6fa
Update countAllInsuranceItems()
to make use of MathUtil.arraySum()
2023-11-08 09:51:15 +00:00
Dev
4f7715825a
Make timeutil.pad()
protected so it appears in mod types data
2023-11-08 09:06:22 +00:00
Refringe
eaa4c3cf0b
Removes trailing spaces.
2023-11-07 23:29:25 -05:00
Refringe
a190311612
Removes IUUidGenerator Class
...
Removes the `IUUidGenerator` class in favour of the built-in `crypto.randomUUID()` method.
2023-11-07 23:27:52 -05:00
Refringe
0ad85b45e1
Small ItemHelper.getRandomCompatibleCaliberTemplateId()
Improvements
...
- Updated to safely access a deeply nested property.
- Updated to safely access the item `_id` and `_name` properties in the warning log.
- Updated to use the `RandomUtil.getArrayValue()` method to select a random ammo item template ID.
- Finished up some tests.
2023-11-07 22:59:04 -05:00
Refringe
3ba9e48a3e
Updates TimeUtil Class
...
- Adds the `date-fns-tz` module to dep.
- Moves the `date-fns` module from development dependancies to dependancies.
- Removes the depreciated `substr` method usage.
- Adds the `pad` method to handle padding time digits.
- Dates and times are now standardized UTC.
- Adds basic tests for all methods.
2023-11-07 21:32:57 -05:00
Dev
80afa0262c
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
2023-11-07 21:22:06 +00:00
Dev
dfd1bcc589
getTemplatePrice(), when an item cannot be found in the handbook, add it with the price of 0 instead of 1
2023-11-07 21:21:34 +00:00
Dev
7941675102
getItemPrice()
if static price is 0 and dynamic price is missing, return 0 instead of undefined
2023-11-07 21:13:41 +00:00
Dev
d2736f4004
Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into testing-redux
2023-11-07 20:59:14 +00:00
Dev
123df5c595
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
2023-11-07 20:58:56 +00:00
Dev
1f622a0760
Add Trader Repair Value on game start
2023-11-07 20:00:02 +00:00
Dev
8fb8b66afb
Add Charisma bonus when using repair kit (50% chane of no toall durability loss on kit use)
2023-11-07 17:01:24 +00:00
Dev
203ef0c011
Centralise getting a skill from a player profile into one location profileHelper.getSkillFromProfile()
2023-11-07 15:17:38 +00:00
Dev
d10c226db0
Add Melee skill to enum
2023-11-07 15:05:59 +00:00
Dev
847586f073
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
2023-11-07 14:44:26 +00:00
Dev
7defca2ae4
Add ability for repeatable quests to reward skill points
...
Slightly increase rep gain from weekly quests
2023-11-07 14:38:13 +00:00
Dev
5a60e4dcf0
Consolodate multiple functions (incrementSkillLevel
, rewardSkillpoints
) that do the same task into one addSkillpointsToPlayer
, make them use enum for skill type instead of string
2023-11-07 11:20:25 +00:00
Dev
206509359e
Add Charisma points when insuring items
, points to reward is a total guess until data can be obtained
2023-11-07 10:40:14 +00:00
Dev
938e439c81
Use daily quest count value from globals instead of hard coding it
2023-11-07 10:20:59 +00:00
Dev
1510237b01
take into accout Charisma skill at elite level when calculating daily quest count
2023-11-07 09:58:58 +00:00
Dev
214e81ba83
Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into testing-redux
2023-11-06 14:54:34 +00:00
Dev
0abfe0699e
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
2023-11-06 14:52:14 +00:00
TheSparta
a244e89abe
Skip mods that are duplicated ( !165 )
...
- Instead of loading duplicated mods, it now skips all of them.
- Changed a few localisation strings, deleted the ones that became outdated.
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/165
Co-authored-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
Co-committed-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
2023-11-06 14:51:31 +00:00
Dev
1cccb0445a
Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into testing-redux
2023-11-06 13:19:15 +00:00
Dev
6de32bad6a
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
2023-11-06 13:18:56 +00:00
Dev
2040835566
Set halloween event as disabled by default + enable for halloween
2023-11-06 13:18:38 +00:00
Dev
4bce4b49f4
Change server logging to be grouped by day instead of per hour
2023-11-06 12:44:59 +00:00
Dev
6ba0cfa459
Fix inverted check
2023-11-06 09:24:13 +00:00
Dev
32b356d3f1
Fix isbotPmc
isBotBoss
and isBotFollower
failing when undefined values are passed in
2023-11-05 20:29:10 +00:00
Dev
5656384c8f
Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into testing-redux
2023-11-05 20:25:15 +00:00
Dev
d3b7e5ef7a
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
2023-11-05 20:24:28 +00:00
Dev
df6a08367b
Remove reduandant else from getRepairableItemQualityValue()
2023-11-05 13:19:10 +00:00
Dev
c527824d60
Change getRepairableItemQualityValue()
to handle max durability being lower than durability
2023-11-05 13:16:59 +00:00
Dev
7e409735d1
Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into testing-redux
2023-11-05 12:39:38 +00:00
Dev
c7dfc5b9cf
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
2023-11-05 12:39:20 +00:00
Dev
8f70b03284
Fix hasBuyRestrictions erroring on bad input data
...
Fix isItemTplStackable erroring on bad input data
2023-11-05 12:37:17 +00:00
Refringe
98a35f4b47
Merge branch '3.8.0' into testing-redux
2023-11-04 21:12:49 -04:00
Dev
8ee176b9d8
Handle when fillCamora()
cannot find camora slots in weapons modPool
2023-11-04 20:11:09 +00:00
TheSparta
9638288381
Fix level calcualtion function
2023-11-04 17:01:24 +00:00
TheSparta
45dad54e3e
Fixed PlayerService.calculateLevel
2023-11-04 14:53:08 +00:00
Dev
86c519b117
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
2023-11-04 10:50:13 +00:00
Dev
75958ee7d2
Replace hard coded blacklist in isValidItem()
with more appropriate call to ItemFilterService.isValidItem()
2023-11-04 10:49:52 +00:00
Dev
24894643de
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
2023-11-04 10:43:06 +00:00
Dev
ab01e42271
Call getDynamicItemPrice()
correctly inside getItemPrice()
2023-11-04 10:28:33 +00:00
Dev
432f778512
Make randomiseAmmoStackSize()
and randomiseMoneyStackSize()
not purge the entire upd object
...
Always randomise the ammo stack size, not only if it doesnt have one
2023-11-04 09:08:33 +00:00
Refringe
047884e9c7
Additional InsuranceController
Tests
...
- Adds tests for the remaining methods in the `InsuranceController`.
- Adds a `countAllInsuranceItems()` method to the `InsuranceController`.
- Adds the Vitest UI and coverage packages.
- Updates the `profileInsuranceFactory` to use second-epoch dates instead of millisecond-epoch dates.
- Updates the `InsuranceController.fetchHideoutItemParent()` method to log a warning when an item with a slotId of 'hideout' cannot be found.
TODO:
- The Vitest coverage options are not working.
2023-11-03 17:39:33 -04:00
Dev
93209e4a76
Add config option to force stock to spawn on a bot during weapon generation
...
Enable it for various bot types (most bosses/raiders)
2023-11-03 17:40:00 +00:00
Dev
a5a0bf82d7
Changes after feedback from Drakia
2023-11-02 21:16:31 +00:00
Dev
981da646b0
Add 2023 haloween event system
...
Event bots are generated from their base type, then their role is updated before being sent to the client e.g. peacefullZryachiyEvent becomes bossZryachiy for generation, then back to peacefullZryachiyEvent
2023-11-02 15:02:18 +00:00
Dev
0a85f6f319
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
2023-11-02 09:00:14 +00:00
DrakiaXYZ
ebeda336db
Implement live-like calculation of Weapon Maintenance XP ( !164 )
...
- Implement formula based on 30 weapon repairs done on live
- Return the repair amount as `repairAmount` from `repairItemByKit`
- Add an additional `repairPoints` to `RepairDetails` to return the repair points used
- Update `repairAmount` references to `repairPoints` to keep old behavior
- Add new parameter to rewardSkillPoints that applies live-like level scaling
- Only give weapon maintenance XP when using a repair kit
This implementation comes with a "Crit Fail" and "Crit Success" mechanic to account for live sometimes randomly being -4 or +4 off from my estimated values. By default the chance of each is 10%, and they can overlap and cancel each other out
Spreadsheet of live repair data:
https://docs.google.com/spreadsheets/d/1-tR4WYelhZfKZ3ZDbxr3nd73Y60E1wQRjDWONpMVSew/edit?usp=sharing
Useful columns:
C: The amount of dura attempted to be repaired, this is used in the estimated skill calculated
G: Hand entered value of how much skill gain I actually saw on live (Multiplied by 10 for readability. So "3.2" would be "32")
J: The estimated skill gain, based on the calculation included in this merge request
K: How far off the estimated skill gain was (Negative implies we guessed high and the actual result was lower)
One thing of note:
I've modified all the existing references to `repairAmount` to be the new `repairPoints` when a repair kit is used. This is to keep the existing behaviour outside of my direct changes as much as possible.
However, this seems to be incorrect in some cases (For example, buff chance is repairPoints/maxDura, but repairPoints will go down the higher your int. I'm assuming this is meant to be repairedDura/maxDura). May want to update these references to use `repairAmount` once they've been confirmed to expect the repair amount instead of repair points used.
Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/164
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2023-11-02 08:56:02 +00:00
Refringe
946552199e
Merge branch '3.8.0' into testing-redux
...
# Conflicts:
# project/package.json
Manually resolved by Refringe
2023-11-02 01:56:18 -04:00
Refringe
85a227e7d5
Updates 🚀
...
- Created profileInsurance test fixture.
- Created ProfileInsurance test factory class.
- Improved many of the InsuranceController method tests by utilizing the factory and fixture. Still some left to do here.
- Adds the `date-fns` package as a development dependancy for easy date manipulation.
- Cleaned up some comments.
Bug Fixes 🐞
- Resolved an issue where `ItemHelper.getAttachmentMainParent()` was not returning null when it should have.
- Resolved an issue where `InsuranceController.populateParentAttachmentsMap()` would continue to process when the parent could not be found.
2023-11-02 01:47:28 -04:00
Dev
b1842e1c49
When generating a specific location condition for an elimination quest, don't add weapon requirement props to it - unnecessary
...
Clean up kill condition generation method comments/param names
Replace magic strings with objects
2023-11-01 13:29:47 +00:00
Dev
9d56030880
Remove unused class property
2023-11-01 13:06:01 +00:00
Dev
90b76eab68
Correctly check when difficulty is not a number
2023-11-01 11:36:13 +00:00
Dev
d1db6cc7a9
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
2023-11-01 11:35:18 +00:00
Dev
37b7712602
Rename function getAllSeasonalEventItems()
to getInactiveSeasonalEventItems()
2023-11-01 11:35:05 +00:00
Dev
9d3f6dc092
For slots that have seasonal items added, force slot spawn chance to be at least 75%
2023-11-01 11:00:43 +00:00
Dev
1c6550894e
Add additional items to halloween items list
2023-11-01 10:43:47 +00:00
Refringe
7f37d48753
InsuranceController Tests & Minor Changes
...
- Adds tests for the majority of the methods within InsuranceController.
- Simplifies the `InsuranceController.sendMail()` method so that the toDelete parameter is no longer required.
- Modifies `InsuranceController.findItemsToDelete()` to only process regular and attachment items when they exist.
- Modifies `InsuranceController.rollForDelete()` to return null in the event that the provided Trader can not be found.
2023-10-31 23:08:13 -04:00
Dev
fc606ee540
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
...
# Conflicts:
# project/assets/database/bots/types/assault.json
# project/assets/database/bots/types/bossknight.json
# project/assets/database/bots/types/bosszryachiy.json
# project/assets/database/bots/types/followerzryachiy.json
2023-10-31 19:10:23 +00:00
Dev
1c18282cfe
Log profile save action into console window, not log file
2023-10-30 15:14:26 +00:00
Dev
dacb72e78d
Cleanup of akihttplistener
2023-10-30 09:36:19 +00:00
Dev
476788fee8
Fix build issue caused by merge of #162
2023-10-30 09:25:34 +00:00
ree
9fa0bcc705
Properly re-assemble all data in http requests before handling it ( !162 )
...
Remove unneeded HttpBufferHandler
-----------
The old code processed each chunk of data as an entire request, which is not correct. It was observed split data after ~14600 bytes (on a 1 gig lan connection). I think it was worse on remote connections.
This was the cause of the "unknown compression method" and invalid json parse errors when saving the profile.
Co-authored-by: Decoy <redacted@example.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/162
Reviewed-by: Terkoiz <terkoiz@noreply.dev.sp-tarkov.com>
Co-authored-by: ree <ree@noreply.dev.sp-tarkov.com>
Co-committed-by: ree <ree@noreply.dev.sp-tarkov.com>
2023-10-30 09:23:30 +00:00
TheSparta
f354811ca8
A few changes to Watermark and Error Handling
...
- Made it so Watermark doesn't initialize on the constructor, this makes it possible for tests to use `@spt-aki/di/Container`;
- Removed unnecessary calls to `ErrorHandler.handleCriticalError`, all you really need to do is `throw new Error()` and it'll get caught automatically.
2023-10-29 22:20:33 +00:00
Refringe
00ac9e190a
Additional Tests & New Setup
...
- Adds additional ItemHelper tests
- Attempts to bring container registration into the environment to debug how we can register everything but not actually start the server.
2023-10-29 22:20:32 +00:00
Dev
fe703b34ec
Remove unused file
2023-10-29 20:46:50 +00:00
Dev
220a89b915
Default value to false if not found intead of letting it be undefined
2023-10-29 20:45:35 +00:00
Dev
6f62d0b400
Rename variable for clarity
...
Remove redundant `BlocksX` check
2023-10-29 20:44:41 +00:00
Dev
8223124882
Sort mod_barrel
after mod_handguard
to prevent weapon gen errors with certain combinations of barrel + gas blocks causing all handgaurds to be incompatible
...
Also force gas block to be processed AFTER barrel + handguard
2023-10-29 16:35:03 +00:00
Dev
fd7e59d1d2
Adjust servers handling of item stacks, when item has a StackMaxSize
value of 1, use that instead of items db property StackMaxRandom
2023-10-28 19:39:45 +01:00
Dev
6d30d86ea4
Correctly handle when crafts are completed, null craft data instead of removing entire production key/value pair
2023-10-28 17:57:14 +01:00
Dev
cc86ecce2b
Send correct data to client to inform it craft has been cancelled
2023-10-28 17:48:37 +01:00
Dev
ce50c88b87
Improve error message text
2023-10-28 16:16:39 +01:00
Dev
0316278b15
First pass at handling the cancellation of a hideout craft.
...
Doesnt explode server with unhandled exception error
Does remove craft from profile
Doesnt remove it from client screen until client refresh
2023-10-28 15:53:13 +01:00
Dev
73be87bee4
Update IBotDurability
with additional bot types
2023-10-28 12:44:44 +01:00
Dev
48913e8707
Update getDefaultCounters()
to return data found from live profile
2023-10-28 12:40:21 +01:00
Dev
6e3e8f13d6
set NeedWipeOptions
on profile creation
2023-10-28 12:28:52 +01:00
Dev
6e5d35dbd1
Update JSONs
2023-10-28 12:20:48 +01:00
chomp
ea518adb32
Add new WildSpawnTypes for 26835 ( !161 )
...
Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/161
2023-10-28 09:39:49 +00:00
Dev
f4fce0612e
Force handguards that take a sub-handguard to set handguard spawn chance to 100% - fixes split handguards appearing without the lower part
...
Only adds lower when weapon has no launcher attached
Adjust sub stock adding code to trigger when stock has a subslot that starts with `mod_stock`, this means `mod_stock_akms` and `mod_stock_000` will be included
2023-10-26 20:31:05 +01:00
DrakiaXYZ
170a185928
Add a new /singleplayer/log route ( !160 )
...
Add a new /singleplayer/log route for logging data to the server console from the client
Supports:
- All server log levels
- `Custom` log level with text/background color
- Specifying the source of the log line (ex. Plugin name)
Example output:
![Example](https://i.imgur.com/c0XBYLm.png )
Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/160
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2023-10-26 09:44:17 +00:00
Dev
1f90ae0bb0
Add undefined check to updateProfileBaseStats()
2023-10-25 18:13:33 +01:00
Dev
0e3d25df03
Improve getTrader()
...
Error when no profile found
Reduce returns to 1
fold two checks into one
Remove magic string reliance on TradersInfo exist check
More comments
2023-10-25 12:18:27 +01:00
Dev
729b180e85
Add request object type
2023-10-25 11:54:11 +01:00
Dev
b29f0a0904
Coop extract gifts from fence are now Found in Raid
2023-10-25 10:14:19 +01:00
Dev
90efc36360
Fix incorrect value names in getEliminationKillCount
2023-10-24 17:06:02 +01:00
Dev
a5dbfef7d0
Localise some error text
2023-10-24 16:40:34 +01:00
Dev
657dd358c2
Give method an access type protected
2023-10-24 15:12:18 +01:00
Dev
1cf63ad1ad
Split pmc kill requirement for elimination into separate min/max counts from other bot types
2023-10-24 15:01:31 +01:00
Dev
c3777af231
Add guards to dynamic spawn point generation
...
Rename some variables for clarity
2023-10-24 11:15:23 +01:00
Refringe
8541e5f028
Refactor Currency Handling in PaymentService.payMoney()
Method ( !159 )
...
This commit includes a series of changes aimed at improving the logic and readability of the `payMoney` method in the PaymentService class. The method is pivotal for handling in-game payments, specifically in cases involving multiple types of currencies and barter trades. The changes resolve an issue that prevented barter payments that included both a currency and another item.
## Changes:
- Replaced `barterPrice` variable with a `currencyAmounts` mapping that efficiently tracks each type of currency involved in the trade.
- Updated how the `costOfPurchaseInCurrency` variable is calculated to factor in multiple currencies.
- Introduced a new variable `totalCurrencyAmount` to sum up the total amount of all currencies, which is checked to determine whether any (non)currency payment is necessary.
- Added some inline comments for readability.
Resolves #176
Co-authored-by: Refringe <brownelltyler@gmail.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/159
Co-authored-by: Refringe <refringe@noreply.dev.sp-tarkov.com>
Co-committed-by: Refringe <refringe@noreply.dev.sp-tarkov.com>
2023-10-24 09:27:46 +00:00
Dev
250b9dca3f
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server
2023-10-23 19:29:35 +01:00
Dev
7b0298cda2
Adjsut 2 bot gen errors to be warnings
2023-10-23 19:19:05 +01:00
TheSparta
7aee78eb49
Fixes Insured items on secured containers ( !158 )
...
This PR fixes both https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/174 and https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/175 .
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/158
Co-authored-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
Co-committed-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
2023-10-23 16:45:40 +00:00
Dev
69ee8983b2
Improve logging text
2023-10-22 13:14:38 +01:00
Dev
3c709311d8
Correctly save statusTimer values into profile
2023-10-21 21:24:14 +01:00
Dev
ec7d3e1699
Fix bad injection
2023-10-21 20:22:11 +01:00
Dev
54d47585f2
Show sessionid/profile id when profile data is saved
2023-10-21 20:19:45 +01:00
Dev
018b0a8f70
Fix profile creation error
2023-10-21 20:13:29 +01:00
Dev
573d91a9c2
Persist ConditionCounters
data between pscav runs
...
Move values around to help with readability
2023-10-21 18:23:58 +01:00
Dev
de2f70fb79
Remove replaced repeatable quest from PMC and scav profile
2023-10-21 17:39:44 +01:00
Dev
3f07fc1bfc
Cleanup of async method names
...
Add method comments
Reduction of code complexity inside `executeModsAsync()`
Add error message when loaded mod has no `main` property
2023-10-20 12:23:19 +01:00
Dev
33d3e6ce05
move log to correct place
2023-10-19 22:55:53 +01:00
Dev
234cd0b833
Randomise standing loss for dailies
2023-10-19 21:49:38 +01:00
Dev
83590dcc25
Get id if not found in profile
2023-10-19 21:44:10 +01:00
Dev
20b9a39cda
Add missing IDs to json and pass throughout code
2023-10-19 21:36:17 +01:00
Dev
fa2a8c6513
Add missing id property to accept quest client response
2023-10-19 21:06:09 +01:00
Dev
11ae41dcff
Fix missing text
2023-10-19 20:59:06 +01:00
Dev
489189bd81
Add missing properties to templates
2023-10-19 20:51:16 +01:00
Dev
79dc3cca1b
Correct mistake in sending repeatable data to client on quest accept
2023-10-19 20:43:42 +01:00
Dev
d97beda4b7
Rework how repeatable quests are replaced
2023-10-19 20:04:47 +01:00
Dev
57b1fe0733
Improve bad replacement quest error messaging
2023-10-19 19:30:23 +01:00
TheSparta
418d9f2a8f
Import path alias on the whole project ( !157 )
...
- Ability to use @spt-aki path alias on the whole project.
- Swapped all imports from relative paths, for imports using the path alias.
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/157
Co-authored-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
Co-committed-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
2023-10-19 17:21:17 +00:00
Dev
5af4abab91
Handle critical errors on mod load better - show player error in console instead of closing it on error
2023-10-19 15:25:52 +01:00
Dev
6589bcc0a2
Show human readable error when two mods have conflciting load order requirements
...
Improve cyclic error message text
2023-10-19 15:18:07 +01:00
Dev
2507837198
When launcher requests profiles and the exp is null, fall back to 0
- Fixes profile killing launcher listing ability
...
Use properties without quotes
Update nullguard to use Nullish coalescing
2023-10-19 11:37:07 +01:00
Dev
14c0b73482
Log build date on server start
2023-10-19 11:25:41 +01:00
Dev
e8d3fb805e
updates to modLoadOrder
2023-10-18 17:36:36 +01:00
TheSparta
6231d73109
Implemented loadBefore and loadAfter ( !156 )
...
This PR adds the ability to set `loadBefore` and `loadAfter` on a mod's package.json, this allows for modders to define an array of mods their current mod needs to load before or after.
Examples:
if we have <u>__MOD1__</u> that has `loadAfter` = `[ "MOD2" ]` the loading order would be:
1 - MOD2
2 - MOD1
if we have <u>__MOD2__</u> that has `loadBefore` = `[ "MOD1" ]` the loading order would also be:
1 - MOD2
2 - MOD1
Begone zzzzzz, name your mods the way you want to.
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/156
Co-authored-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
Co-committed-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
2023-10-18 14:44:29 +00:00
Dev
1adeed29ef
Transfer ConditionCounter and quest status changes incurred during scav raid into pmc profile
...
Only add quests to scav profile when its a pickup/exploration/elimination quest
2023-10-17 22:04:19 +01:00
Dev
480967ab9a
Incldue m4a1 with gas block item in modIsFrontOrRearSight()
check
2023-10-17 20:45:40 +01:00
Dev
99cb77d3cf
Save scav quests into scav profile when accepting them
2023-10-17 16:31:21 +01:00
Dev
650a3173c8
Implement Pickup
quests for scav
...
It seems like these are scav-only
2023-10-17 16:28:48 +01:00
Dev
f70cbcced7
Set quest side to scav when generated for fence
2023-10-16 18:33:09 +01:00
Dev
4b70bfb60d
Improve sourcemap handling in modCompilerService
2023-10-16 18:25:14 +01:00
TheSparta
fe6865b2f0
Added sourcemap generation for typescript mods ( !155 )
...
This PR makes it so typescript generates inline sourcemaps when transpiling mods to javascript.
This will make it so stacktraces originating in the mod source code point to the typescript files, lines and columns.
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/155
Co-authored-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
Co-committed-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
2023-10-15 16:15:34 +00:00
Dev
04235ca024
Reward more items for daillies/weeklies
...
Cleanup of `generateReward` item reward pool generation into its own function + return an easier array to work with
2023-10-15 11:46:33 +01:00
Dev
7bc0d3f383
Prevent distance + melee kill quest combination
2023-10-15 10:49:23 +01:00
Dev
f155f5f0d0
Improve code comments
2023-10-15 10:44:12 +01:00
Dev
d44bda96cf
make use of isbaseclasses
to check for bad items instead of a non-optimal loop
2023-10-15 10:43:27 +01:00
Dev
fdd328b07a
use function that only gets static price for daily rewards instead of function that falls back to flea price - improve price consistency
2023-10-15 10:39:35 +01:00
Dev
18c68fa353
make daily rewards found in raid
2023-10-15 10:38:50 +01:00
Dev
f23c8d484e
Fix peacekeeper rewarding dollars instead of euros
2023-10-15 10:33:52 +01:00
Dev
cd74f05558
Cleanup of daily reward code doing the same item check multiple times
2023-10-15 10:28:52 +01:00
TheSparta
1ab7c5946e
Fixed stacktraces and source maps on the built exe ( !153 )
...
This PR fixes a long standing issue where stacktraces in the built executable didn't have line and column numbers, so you were left wondering where exactly in a given function an error occurred.
This also fixes source maps being generated but not actually included in the executable, this fix results in `source-map-support` actually doing it's job, so now stacktrace paths point to the typescript files, line and column number, instead of the transpiled javascript line and column number.
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/153
Co-authored-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
Co-committed-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
2023-10-15 07:31:16 +00:00
Dev
5a0e16634e
Fixed seasonal event items not appearing on flea during event
...
Don't rely on globals event value for event check, store event bools on SeasonaleventService class construction
Remove dupe function `getSeasonalEventItemsToBlock(), rely on `getAllSeasonalEventItems()`
2023-10-14 16:52:48 +01:00
Dev
11b885539d
Fix halloween icons not loading
2023-10-14 16:05:12 +01:00
Dev
5dd2e10211
Configure additional scav property values on generation
2023-10-14 13:29:27 +01:00
Dev
79b9b2a7aa
Update various property values on scav generation
2023-10-14 13:18:07 +01:00
Dev
0b50385b84
Fix error on death because extract is undefined
2023-10-14 10:31:01 +01:00
Refringe
7948e3473c
Refactor of InsuranceController & New ItemHelper Methods ( !151 )
...
This commit is my second go-around at refactoring the `InsuranceController`, attempting to improving the code's modularity, maintainability, and efficiency while squashing a few bugs along the way.
1. **InsuranceController.ts**
- Removed `ITemplateItem` import, as it is no longer used.
- Introduced the `adoptOrphanedItems` method to manage orphaned items in the insurance list.
- Since "normal" items are individually rolled for deletion, and can be nested within one another, there are situations where a parent item is deleted, leaving its children orphaned. This method moves those orphaned children from their missing parent into the root of the insurance container.
- Overhauled `findItemsToDelete` method to improve its efficiency and readability:
- Divided the original monolithic method into smaller, specialized methods like `populateItemsMap`, `populateParentAttachmentsMap`, `processRegularItems`, and `processAttachments`.
- Changed the return type to `Set<string>` for better performance.
- Introduced `EnrichedItem` interface (a simple extension of the `Item` interface) to add additional item data, like `name` and `maxPrice` to `Item` objects as they're processed throughout the class. This is done in place of repeatedly querying for this data, or complicating return types.
- Enhanced logging capabilities to debug the item deletion process. Due to the *current* lack of testing available I've stepped up the amount of debug logging that is done. This will hopefully help us find issues in the future.
- Modified the `rollForItemDelete` method, now renamed to `rollForDelete`, to include more detailed logging, return a boolean directly, and changed the `insuredItem` parameter to be optional.
- Added new methods for dealing with some of the particulars that arise from item adoption and creating item maps.
- Improved inline comments and documentation for better code maintainability.
2. **ItemHelper.ts**
- Added the `isRaidModdable` method to check if an item is *actually* modifiable in-raid, which takes into account not just the item, but the item that it's attached to.
- Added the `getAttachmentMainParent` method to fetch the main parent item of a given attachment, useful for item hierarchy traversal. For example, if you pass it an item ID of a suppressor, it will traverse up the muzzle brake, barrel, upper receiver, and return the gun that the suppressor is ultimately attached to, even if that gun is located within other multiple containers.
- Added the `isAttachmentAttached` method to check if an item is an attachment that is currently attached to its parent.
**Fixes:**
- Resolved an issue that caused item attachments from being property grouped together for deletion rolls. This issue prevented valuable attachments from being taken first.
- Resolved an issue that caused child items being orphaned when their parent was removed due to an insurance roll. Probable cause of the bug that made the client spaz out and send repeated insurance packages to the profile---Though I'm still unable to reproduce.
- Probably more...
Co-authored-by: Refringe <brownelltyler@gmail.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/151
Co-authored-by: Refringe <refringe@noreply.dev.sp-tarkov.com>
Co-committed-by: Refringe <refringe@noreply.dev.sp-tarkov.com>
2023-10-14 09:05:49 +00:00
TheSparta
723f8db572
Updated dependencies + A few other things ( !150 )
...
Initially this was going to be an update to dependencies but it seems i got a little carried away!
Anyways this PR removes 2 unused dependencies (`jshint` and `utf-8-validate`), and 2 other, `del` and `fs-extra` that were replaced by the built-in `fs/promises`.
It also renames all `tsconfig` and `Dockerfile` files, in a way that when viewed in a file tree sorted alphabetically they will be next to each other.
It also updates the typescript target to `ES2022`, and changes moduleResolution from `Node` to `Node10` (this isn't an update, they are the same thing but `Node` is now deprecated).
It also adds the `node:` discriminator to every import from built-in modules.
It also has major changes to the build script, `del` and `fs-extra` were only being used in the build script, it's now using `fs/promises` instead, cleaned up the code from some functions, adds better documentation to a few functions, and renames some gulp tasks and npm scripts to better represent what they actually do.
And finally it updates dependencies, except for `atomically` which can't be updated unless the project switches to ESM.
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/150
Co-authored-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
Co-committed-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
2023-10-14 09:01:41 +00:00
Dev
87e2948806
Remove scripts content from imported mods package data
2023-10-14 09:48:24 +01:00
Dev
035fce63c3
Make use of Set
data structure inside createRandomLoot()
to improve performance via .has
instead of .includes
2023-10-13 20:18:39 +01:00
Dev
292791aca4
make itemHasBaseClass()
more robust against bad input
2023-10-13 16:54:17 +01:00
Dev
8e377594da
Split up code inside validateQuestAssortUnlocksExist()
to improve readability
2023-10-13 09:45:47 +01:00
Dev
45788e1489
Fix scav case erroring on item generation
2023-10-13 09:28:04 +01:00
Dev
3c3fd56e65
Send gift to player after taking coop extract
2023-10-12 20:04:50 +01:00
Dev
3598418f6e
Disable filtering out healing items from backpack loot
2023-10-12 14:33:09 +01:00
Dev
29ffe86caa
Remove redundant item added check from value check
2023-10-12 13:25:13 +01:00
Dev
db619a30b3
Add boss item blacklist and wire into:
...
airdrops
scav cases
sealed weapon containers
daily quests
Default boss item filter to on
2023-10-12 11:00:04 +01:00
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
a19e322373
Remove debug logging inside addMissingHideoutBonusesToProfile()
2023-10-11 09:01:45 +01:00
Dev
68a8d34489
Protect against a missing upd object inside changeItemStack()
2023-10-10 22:37:38 +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
gasmo
8d911ccc19
Fix ballooning recursive function ( !120 )
...
The `BotEquipmentModPoolService.generatePool()` method is recursive, but it does not check if the pool it creates already contains data for sub items when it finds them and calls itself on them. This creates substantial bloat in the function that is undetectable to end users, but causes some additional delay when it is called.
I noticed this when using a server mod that allows for less restrictions on mod combinations (as it would hit the system recursion limit and error out) but the bloat still affects vanilla - it takes ~1 minute for all the recursive calls to end, whereas this fix reduces that to <10 seconds.
To fix this, I've moved a block of code into the conditional block that checks if the item we're adding (and its' sub items) are already in the pool before it calls itself.
This is my first pull request, so let me know if I've fudged up somewhere and I'll do my best to fix it.
I submitted a previous request about this, but I removed my name from the commits so I had to delete the branch.
Co-authored-by: gasmo <burr.cameron@gmail.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/120
Co-authored-by: gasmo <gasmo@noreply.dev.sp-tarkov.com>
Co-committed-by: gasmo <gasmo@noreply.dev.sp-tarkov.com>
2023-08-18 14:17:54 +00:00
Dev
1b387f706d
Revert "Update JSONs + add new params to interfaces"
...
This reverts commit 3bf644c0e4
.
2023-08-10 16:02:33 +01:00
Dev
3bf644c0e4
Update JSONs + add new params to interfaces
2023-08-10 16:00:49 +01: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
e591ea9e8f
make setFenceAssort and setFenceDiscountAssort public
2023-08-09 22:04:35 +01:00
Dev
285f65bb8d
Only remove item from fence assort if he has items to remove
...
Add empty assort check to remove function too
2023-08-09 19:20:41 +01:00
Dev
96de45e580
Expose SPT friend nickname in core config
2023-08-09 16:01:51 +01:00
Dev
99715f90cd
Update JSONs and include end of wipe gift
...
Add additional method to send localised messages from SYSTEM to player
2023-08-09 14:22:16 +01:00
Dev
7a1301d436
Fix request logger throwing errors when logging non-json data
2023-08-09 12:16:41 +01:00
Dev
dea27097b3
Improve server start message selection
2023-08-09 12:07:31 +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
ee46d1e6b8
Extend sendLocalisedNpcMessageToPlayer() to allow for custom systemData
2023-08-07 22:40:06 +01:00
Dev
dd26a94ede
Nullguard against missing data from client
2023-08-07 19:42:23 +01:00
Dev
74f7ee8e77
Rework usage of filter() into some()
2023-08-07 11:17:46 +01:00
Dev
92c30dbe5d
Add code to check BackendCounter values pre vs post-raid
2023-08-07 11:13:17 +01:00
Dev
b2530a6083
log not implemented message for stash row reward
2023-08-06 16:54:31 +01:00
chomp
6a864bffa9
Rework high flea listing price adjuster to be configurable, more item types can be added ( !111 )
...
Co-authored-by: Dev <dev@dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/111
2023-08-06 11:36:07 +00:00
chomp
a962823192
Persist durability changes + faceshield hit values incurred during a raid ( !110 )
...
Fixes insured items comin back full durability
Co-authored-by: CWX <CWX@noreply.dev.sp-tarkov.com>
Co-authored-by: Dev <dev@dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/110
2023-08-05 17:26:16 +00:00
Dev
9dd2d3cd04
Improve nullguard code inside findAndAddRandomPresetToLoot()
2023-08-05 14:50:05 +01:00
Dev
14c6104b65
FIx dialogs not showing
2023-08-04 18:58:00 +01:00
Dev
08c81aff26
introduce itemsDb variable inside repairItemByKit()
2023-08-04 15:59:34 +01:00
Dev
ce65ec1260
Add upd null object check to addMaxResourceToKitIfMissing()
2023-08-04 15:55:59 +01:00
Dev
4dc290c284
Nullgaurd against mods that adjust map static data
2023-08-04 12:57:16 +01:00
Dev
2a98b0a1b9
Move trader enum checking logic into traderHelper
2023-08-04 11:19:27 +01:00
Dev
07217e9ed0
Further extension of profiel fixing code, deletes more
...
Clothing, active repeatable quests with bad trader/items, trader purchases from bad traders
2023-08-04 10:25:21 +01:00
Dev
281cba8db5
Prevent randomiseItemUpdProperties() running if the item being randomised has a db item with no _props data
2023-08-04 08:49:22 +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
0c37a76ff6
Improve processFailedQuests() handling of null parameter
2023-08-03 08:38:36 +01:00
Dev
172722a915
Cleanup code and also check if standing is 0
2023-08-02 16:15:33 +01:00
Dev
3fefe90b56
Set lightkeeper rep to 0,01 on account creation, prevents showing
2023-08-02 16:02:44 +01:00
Dev
f5eb96ed48
Refactor of hideout skill gains from area completion
2023-08-02 15:55:33 +01:00
Dev
946512ca6d
FIx server error with not being able to find singular hiddeout craft now there are two DSP crafts
2023-08-02 12:57:08 +01:00
Dev
3876e1ae15
Pull mod sorting code into its own function
2023-08-02 08:50:04 +01:00
Dev
cda89084d3
Show error when trader id can't be found in Traders enum
...
Exit early when sending messages from trader if no trader supplied
2023-08-02 08:29:23 +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
11acbbc0f2
Add Production object if none exists prior to adding a production to it + Move functions around for consistency
2023-07-31 19:18:29 +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
5b7199b952
Update flea prices + Add sytem for adjusting unreasonable high mod prices on flea
2023-07-30 15:22:19 +01:00
Dev
6b8fadef40
Save trader standing changes post-raid
2023-07-30 11:30:31 +01:00
Dev
a514a94b45
Improve wording + Add missing properties from config
2023-07-29 10:16:03 +01:00
Dev
b25342d2f5
Log error when RAID_CONFIGURATION values cannot be found inside getBotDifficulty()
2023-07-28 17:11:18 +01:00
Dev
5a435b363a
25206
2023-07-28 10:01:14 +01:00
Dev
32b32e627b
Force afaks into PMCs secure container
2023-07-27 15:01:08 +01:00
Dev
8a26d3f807
Rework items added to container code, now stops after 4 failed attempts
...
Don't increment cost of loot container total value if item was not placed in container
2023-07-27 13:14:09 +01:00
Dev
2d57bdb0ef
Add option to force healing items into PMCs secure
...
Make bots heal to a 90% instead of 65%
Log when item cannot fit into container when genning bots
2023-07-27 12:15:06 +01:00
Dev
6581896e30
Revert 999 stack size of ammo in bots secure containers + set secure stack count to 20 instead of 15
2023-07-26 22:46:19 +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
69f08d9f87
Improve comments
2023-07-25 21:14:18 +01:00
Dev
6e33a9c37e
Add functionality to fail quests on server after failing them in-raid, fixes failing colleagues part 3 by completing sadist
2023-07-25 20:37:45 +01:00
Dev
9e056cf8f3
Handle failing quests post-raid if they are now failed and were not pre-raid
2023-07-25 19:50:46 +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
903dbdf432
Improve emulation of live tarkov data - Remove hideout data from bots that are not pmcs or pscavs prior to being sent to client
2023-07-25 17:44:23 +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
1a80d3fab8
Prevent exception in gift existence check doesnt find a profile
2023-07-25 10:35:12 +01:00
Dev
fd365df8ba
FIx getGameConfig() failing on profile creation
2023-07-25 10:22:12 +01:00
Dev
4a491df965
Add stackObjectCount for camora slots on weapons
2023-07-24 21:44:00 +01:00
Dev
777ca0c8ef
Fix issue with PMCs generating with one cartridge in magazine + no cartridge in weapon chamber
2023-07-24 21:24:55 +01:00
Dev
7e60ea9d79
Remove dupe items from seasonal gear
2023-07-24 18:47:26 +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
5c6aafea51
Add enum for notification type
2023-07-24 15:19:31 +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
e84781be5f
Handle moving items into sorting table when stash has no space
2023-07-23 11:51:04 +01:00
Dev
253fd3a42a
Fix prapor gift system failure on new profile creation
2023-07-23 11:36:41 +01:00
Dev
89ab3a99a8
sealedWeaponContainer - Get random weapon preset if default preset not found
2023-07-23 11:27:04 +01:00
Dev
e4b9be3bea
Fix for ragfair failed offers killing profile
2023-07-23 10:47:38 +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
5071072092
Place fence seasonal item blocking behind config propery
2023-07-22 14:16:19 +01:00
Dev
a04113eaa1
Block seasonal items when not inside active season (christmas/halloween so far)
2023-07-22 14:11:47 +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
ab912f519f
Fix issue with trader ids not being propigated to the profile
2023-07-22 13:59:21 +01:00
Dev
00a2fbde22
typo
2023-07-22 13:37:40 +01:00
Dev
429d357e89
Correctly parse hours into second for quest code
2023-07-22 13:35:49 +01:00
Dev
a09c813358
Add extra check for messages from traders where dialog type is defined
2023-07-22 13:32:37 +01:00
Dev
25ea9afae4
Typo
2023-07-22 13:14:40 +01:00
Dev
f2caff3c70
Migrate ragfair returnItems() to use new mail send service
...
Some renames + comments
2023-07-22 13:13:01 +01:00
Dev
3526b2764a
Migrate quest fail to new MailSendService
2023-07-22 13:02:42 +01:00
Dev
f3e1dd59fb
Migrate quest controller to use new message service instead of dialogHelper
2023-07-22 12:56:15 +01:00
Dev
1617617cf2
Improve localisation to reduce confusion that server mods are loaded, not client and server mods
...
Small comment typo fix
2023-07-22 11:46:38 +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
a9e6d5d0fe
Stub out more of gift service + allow adjustment of sender for dialogs
2023-07-20 21:29:27 +01:00
Dev
4092ff7c9d
Add stub of gift service
2023-07-20 21:07:47 +01: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
c3232ac979
Refactor of InsuranceService
...
Add two methods to item helper, `getStaticItemPrice()` + `getFleaItemPrice()`
Changed how getItemPrice() works to return handbook price if its 1 rouble, not if its over 1
2023-07-20 16:04:26 +01:00
Dev
58063ce303
Fix incorrect comment
2023-07-20 14:02:53 +01:00
Dev
78d097498c
Update JSONs and add new properties to server interfaces
2023-07-20 13:53:44 +01:00
Dev
6edf331aff
Use corect type
2023-07-20 13:22:47 +01:00
Dev
a79a5f7aec
Allow modders to set item min/max stack size limits for any item on fence
2023-07-20 12:00:24 +01: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
d001fe8fb5
Adjust the secure container ammo stack sizes for PMCs to reduce chance PMCs run out of ammo
2023-07-18 19:14:52 +01:00