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: SPT-AKI/Server#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
7950bef43e
Make use of global values when sending player back unsold offer items + rep loss
2023-12-16 15:50:35 +00:00
Dev
c394cd6c6c
Ensure all classes are exported consistently
2023-12-15 14:43:05 +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
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
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
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
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
fd40d47698
Handle when hideout crafts have null progress values, not just undefined
2023-12-03 14:50:01 +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
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
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
a1d6596f8d
Fix multiple typos
2023-11-29 11:36:20 +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
14e917823c
Nullguard getMessageItemContents()
when checking count of reward items
2023-11-26 22:53:09 +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
7342849f61
Resolve getRandomizedBulletCount
returning extremely large ammo values for rotating grenade launchers
2023-11-24 15:24:46 +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
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
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: SPT-AKI/Server#168
2023-11-16 21:42:06 +00:00
Dev
909d79f415
Remove unnecessary removeMapAccessKey()
method, now handled in client
2023-11-14 17:34:44 +00:00
Dev
5f774bf3c8
Exit loop after deleting hideout craft
2023-11-11 20:15:46 +00:00
Dev
d2f4327871
Update updateProductionTimers()
to handle Progress
value being undefined
2023-11-10 19:18:58 +00:00
Dev
4580c1cea8
FIx hideout crafts flaged as needFuelForAllProductionTime
not progressing
2023-11-08 16:17:14 +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
203ef0c011
Centralise getting a skill from a player profile into one location profileHelper.getSkillFromProfile()
2023-11-07 15:17:38 +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
1510237b01
take into accout Charisma skill at elite level when calculating daily quest count
2023-11-07 09:58:58 +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