230 Commits

Author SHA1 Message Date
Dev
c68c9a72fb Refactor handleScavCase() to use addItemToStash()
blacklist soft armor inserts from scavcase rewards
2024-01-21 16:40:14 +00:00
Dev
d112d0fa6e Reworked openRandomLootContainer() to make use of addItemToStash() 2024-01-20 22:13:47 +00:00
Dev
13ce200f80 Small optimisations applied to reateRandomLoot() 2024-01-20 18:08:09 +00:00
Dev
80fdaf65e6 Finalise fence changes 2024-01-20 17:56:19 +00:00
Dev
42b915990e Moe majority of assort generation from FenceService into FenceBaseAssortGenerator
Generate an items children and store in fence assort base

Better handle presets
Fix `removeRandomItemFromAssorts()` not removing all of an items mods from memory
Correctly calculate an items price including its children
2024-01-20 16:20:39 +00:00
OkaMoez
8b2fa7c8dd Adjust server raid time calculations to match client (!202)
This change brings the server in raid time calculation (accelerated time/time you see when choosing a map) to parity with the client.

The time returned by `getInRaidTime()` effectively is the same, but the server can stop using `acceleration - 1` and the adjacent comment has an answer.

-----

The Tarkov client calculates current raid time via the following formula in `Session.GetCurrentLocationTime()`:
`In Raid Time = Today's Date + Connection Time + Time Since Client Connection * Acceleration`

The server currently uses the following:
`In Raid Time = Current Date and Time + Time Since Client Connection * (Acceleration - 1)`

The `Current Time` and `-1` used in the server calculation effectively cancel each other out if `acceleration > 1`.  Removing both should have no effect on the calculated time (not date).

The client side using `Today's Date + Connection Time` is kinda weird.  Using `acceleration = 1`, you'd see the calculated date move 2 days after 24 hours.  That said, I don't see the date portion of the raid time being used, so that might not matter.  Either way, I've matched the formula to avoid any edge cases causing desync.

Co-authored-by: OkaMoez <43766412+OkaMoez@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/202
Co-authored-by: OkaMoez <okamoez@noreply.dev.sp-tarkov.com>
Co-committed-by: OkaMoez <okamoez@noreply.dev.sp-tarkov.com>
(cherry picked from commit afb64c1ebf20505bf3c91143aa4c8e6b65aac21c)
2024-01-20 10:02:59 +00:00
Dev
05533bb166 Prevent no exit data killing client start 2024-01-20 00:19:52 +00:00
Dev
1c9acbbc2e improve bot generation time 2024-01-19 19:21:51 +00:00
Dev
34b9d318a3 Pull some code out of addLootFromPool() into its own function 2024-01-19 11:57:25 +00:00
Dev
63ca393372 Add short circuit optimisation to isItemIncompatibleWithCurrentItems() 2024-01-19 09:56:18 +00:00
Dev
f3f008e0ec Rename function to help with clarity 2024-01-19 09:52:56 +00:00
Dev
0d4fdf11e3 include handling armors without plates 2024-01-18 23:29:07 +00:00
Dev
310762d66d Refactor airdrop loot generation to account for armor plate changes 2024-01-18 23:25:08 +00:00
Dev
ea0d8224e6 Add loop to try multiple armor pieces to find one that's compatible with bots current loadout 2024-01-18 22:36:14 +00:00
Dev
8f12bf479a Generate armor vest for bots first, then rig 2024-01-18 21:39:35 +00:00
Dev
bb741f681d Store and process secure container loot items for bots
Give gifter more items
2024-01-18 12:07:32 +00:00
Dev
04edb19f14 Allow dogtags to be added to custom bots 2024-01-17 22:17:12 +00:00
Dev
f38d098aae Exclude scav coop exits when choosing pmc exit 2024-01-17 16:47:53 +00:00
Dev
727a85f5fc Improve repeatable quest exit choice code 2024-01-17 16:39:55 +00:00
Dev
d9186e0e48 Improve workaround for spawnpoint values 2024-01-17 10:45:25 +00:00
Dev
03a451115c Temp fix to ensure dynamic loot count generator doesnt generate a negative value 2024-01-16 21:55:25 +00:00
Dev
4d1066b51a Make use of presetHelper instead of rolling own implementation 2024-01-16 10:28:08 +00:00
Spoony
e1a8f26507 Generate ammo box Ragfair offers with cartridges (!198)
#### TL;DR
Previously, Ragfair offers involving ammo boxes weren't generated with cartridges inside of them. This copies a lot of the logic from `InventoryHelper.hydrateAmmoBoxWithAmmo()` to add ammo to offers when they are generated. Made to fix #312.

#### Testing
Purchased various ammo boxes from Flea:

![image](/attachments/340fb349-2589-4b1a-81fa-f8d63f6f1a36)

Purchased ammo boxes are listed as full:

![image](/attachments/f52057d3-efe0-40e7-b64e-8d257a818fa5)

Unloading them produces correct ammunition:

![image](/attachments/33c71f7b-d452-473e-9705-cbad1ecc3f7d)

Co-authored-by: Spoony <Spoony@example.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/198
Co-authored-by: Spoony <spoony@noreply.dev.sp-tarkov.com>
Co-committed-by: Spoony <spoony@noreply.dev.sp-tarkov.com>
2024-01-16 10:26:48 +00:00
Dev
34628561ce Filter repeatable explore quest map exits per side 2024-01-15 23:13:57 +00:00
Dev
2f07d6083f Fix armor plates/visors/helmet plate inserts not having thier durability altered on ragfair 2024-01-14 22:28:53 +00:00
Dev
5005a5160a Improve buyItem() handling of multiple and stackable item purchases
rename `reparentPresets` to `reparentItemAndChildren` and move to `itemHelper`
2024-01-14 21:12:56 +00:00
Dev
303be64880 Move code to its own variable 2024-01-14 14:38:10 +00:00
Dev
72fdada5d7 Add vistor shot damage to those listed on flea/fence - 25% chance a damaged helmet can have a visor with bullet hits
Improved `FenceService.addModsToArmorModSlots()` to not break when it cant find a default plate tpl
2024-01-13 20:47:59 +00:00
Dev
ae6bb7a43b Small cleanup of preset handling code in addItem() 2024-01-13 15:00:31 +00:00
Dev
6cd82ce2a6 Add location property minFillLooseMagazinePercent
Make static/dynamic magazine loot have chance to not have cartridges
2024-01-13 12:30:15 +00:00
Dev
48f99ecfa6 Additional changes to randomiseWeaponDurabilityValues()
Move chance to make changes check outside of function
Aliased ragfair config property
Aliased chosen child multipler value
Added comment to function
2024-01-13 09:15:11 +00:00
r2go
a87129c541 #284 fixed flea armors not having random values (!193)
https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/284

Probably needs some balancing since some armors are very random, some are not at all. It feels pretty realistic I think.

Any feedback is appriciated.

Co-authored-by: r2go-beep <hans@hummelusa.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/193
Co-authored-by: r2go <r2go@noreply.dev.sp-tarkov.com>
Co-committed-by: r2go <r2go@noreply.dev.sp-tarkov.com>
2024-01-13 09:03:51 +00:00
CWXDEV
22ad266b27 why the f*ck we using spaces and not tabs :reee: 2024-01-12 23:47:41 +00:00
CWXDEV
091e4fa41b added check to make sure same item isnt used, still has an edge case, if maxRequestedAmount is too high, and we cant offer enough items, dupes will appear, but this will fix normal use 2024-01-12 23:44:58 +00:00
Dev
0440bdab70 Reworked flea armor listing code
Randomises plate durability
Randomises insert durability
2024-01-12 21:59:30 +00:00
Dev
98241d894f Rework how plates are filtered from bot equipment
Add `filterPlatesByLevel` to bot config
2024-01-12 17:00:22 +00:00
Dev
cb18d251ba Improve selection of items to add mods for:
quest rewards
bot loot gen
map loot gen
fence assort gen

Updated `removeRandomModsOfItem()` to also skip slots with a _required prop
2024-01-11 17:42:58 +00:00
Dev
dc1e172df0 Handle generating a fence armor item and a default plate is not found
Add extra plates to pool

Centralise plate-related checks into itemhelper
2024-01-10 14:47:09 +00:00
Dev
f59041121b Fix plate filtering code not correctly handling when no plates of desired armor level are found 2024-01-09 23:46:57 +00:00
Dev
4078d7cc89 Fix plates not spawning on bots because of capitalisation 2024-01-09 20:16:49 +00:00
Dev
a9c36ec205 Fix issue with armors as quest rewards not being sent with soft inserts
Centralised a soft insert check into `ItemHelper`

Add extra base types to `generateGearPool()` in equipment bot pool service
2024-01-09 16:49:59 +00:00
Dev
f3964639bd Rename mods to weaponMods and add new object equipmentMods
regenerate bot jsons to include this new data (includes correct inclusion of equipment slot "TacticalVest" which was previously missing)

Fix issue with PMM ammo causes generation issues
2024-01-09 15:31:56 +00:00
Dev
01e63118c6 Rename function 2024-01-09 10:58:06 +00:00
Dev
bac86262d4 Improve handling of equipment mod generation 2024-01-09 10:30:00 +00:00
Dev
15d53a2d38 Fix armor in bot backpacks having no soft inserts
centralise code that adds mods to equipment into one location
2024-01-08 23:27:18 +00:00
Dev
07b5ab432e Check for empty pool when adding mods to equipment during loot generation 2024-01-08 09:40:18 +00:00
Dev
92e600e906 Improve logic for choosing an exit inside generateExplorationQuest() 2024-01-07 20:49:33 +00:00
Dev
628a3f71d8 Add comment 2024-01-07 20:20:25 +00:00
Dev
6231a56fea Prevent duplicate items spawning in static containers 2024-01-07 20:17:07 +00:00
Dev
db13df89d9 Add plate filtering system based on bot level 2024-01-07 15:34:59 +00:00