Commit Graph

272 Commits

Author SHA1 Message Date
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
Dev
c6135802be Refactor equipment mod parameters 2024-01-07 14:46:25 +00:00
Dev
bd60cf51e2 Fix event system not working for events other than halloween and christmas
Allow events to overlap

Rename config property from `enableWinterEvent` to `forceWinterEvent`
2024-01-06 23:29:42 +00:00
Dev
9bc9d46e84 Improve function comments 2024-01-06 15:21:16 +00:00
Dev
52a5380c33 Add botRelativeLevelDeltaMin to pmc.json to allow configuration of lowest level of pmc relative to player 2024-01-06 15:19:04 +00:00
Dev
9dbd3d1acf Updated server handling of quests/repeatable quests to match 0.14 changes - this will break profiles 2024-01-05 19:52:21 +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
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
c39e331423 Replace conditionCounters array with with TaskConditionCounters dictionary 2023-12-30 21:59:51 +00:00
Dev
bea2a5d30a Correctly add armor inserts into statically spawned helmets 2023-12-30 17:38:06 +00:00
Dev
81393fb629 Improve error logging in weapon gen 2023-12-30 10:45:12 +00:00
Dev
5a57895998 Fix server error when adding lootable armor to raid 2023-12-29 17:13:48 +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
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
Dev
f3fee2bc39 Update bot difficulties + fix various mod errors 2023-12-28 10:58:29 +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
c3bddbbad2 Add TaskConditionCounters to profile and favorite array 2023-12-27 19:52:35 +00:00
Dev
99eaeeb63b Set winterEventEnabled value on start 2023-12-27 18:55:58 +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
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
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
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
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
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
b15c8e196e Log total count of static items being spawned 2023-12-11 14:41:30 +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
7c2d93e87b Handle edge case when an item is missing a min/max stack size value 2023-12-07 20:07:46 +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
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
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
cc488477fb Logging improvements 2023-11-27 17:01:38 +00:00
Dev
130f120fda Comment change 2023-11-26 22:35:26 +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
27e16e09d7 log when addLooseWeaponsToInventorySlot() fails to add weapon to bot inventory 2023-11-24 15:26:41 +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
f727b13215 prevent collection quests requesting more than 1 ammo per repeatable quest 2023-11-19 20:29:41 +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
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
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