Archived
Updated Progressive Bot System
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
[General]
|
||||
gameName=spt
|
||||
modid=0
|
||||
version=d2025.1.8.0
|
||||
version=d2025.1.14.0
|
||||
newestVersion=
|
||||
category="1,"
|
||||
nexusFileStatus=1
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Acids Progressive Bot System",
|
||||
"version": "1.4.0",
|
||||
"version": "1.4.1",
|
||||
"sptVersion": "~3.10",
|
||||
"loadBefore": [],
|
||||
"loadAfter": [
|
||||
|
||||
+1
-1
@@ -11980,7 +11980,7 @@
|
||||
"mod_pistol_grip": 100,
|
||||
"mod_pistol_grip_akms": 0,
|
||||
"mod_pistolgrip": 0,
|
||||
"mod_pistolgrip_000": 0,
|
||||
"mod_pistolgrip_000": 100,
|
||||
"mod_reciever": 100,
|
||||
"mod_scope": 13,
|
||||
"mod_scope_000": 0,
|
||||
|
||||
+8
-4
@@ -3,8 +3,10 @@
|
||||
"equipment": {
|
||||
"FirstPrimaryWeapon": {
|
||||
"LongRange": {
|
||||
"5c07c60e0db834002330051f": 30,
|
||||
"5bfea6e90db834001b7347f3": 20
|
||||
"5c07c60e0db834002330051f": 25,
|
||||
"5bfea6e90db834001b7347f3": 15,
|
||||
"623063e994fc3f7b302a9696": 8,
|
||||
"5447a9cd4bdc2dbd208b4567": 8
|
||||
},
|
||||
"ShortRange": {
|
||||
"5a7828548dc32e5a9c28b516": 20,
|
||||
@@ -50,8 +52,10 @@
|
||||
},
|
||||
"SecondPrimaryWeapon": {
|
||||
"LongRange": {
|
||||
"5c07c60e0db834002330051f": 30,
|
||||
"5bfea6e90db834001b7347f3": 20
|
||||
"5c07c60e0db834002330051f": 25,
|
||||
"5bfea6e90db834001b7347f3": 15,
|
||||
"623063e994fc3f7b302a9696": 8,
|
||||
"5447a9cd4bdc2dbd208b4567": 8
|
||||
},
|
||||
"ShortRange": {
|
||||
"5a7828548dc32e5a9c28b516": 20,
|
||||
|
||||
+1
-5
@@ -6378,11 +6378,7 @@
|
||||
"5a789261c5856700186c65d3"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {
|
||||
"mod_scope": [
|
||||
"609b9e31506cf869cf3eaf41"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {},
|
||||
"5a788031c585673f2b5c1c79": {
|
||||
"mod_foregrip": [
|
||||
"5c7fc87d2e221644f31c0298",
|
||||
|
||||
+1
-1
@@ -11990,7 +11990,7 @@
|
||||
"mod_pistol_grip": 100,
|
||||
"mod_pistol_grip_akms": 0,
|
||||
"mod_pistolgrip": 0,
|
||||
"mod_pistolgrip_000": 0,
|
||||
"mod_pistolgrip_000": 100,
|
||||
"mod_reciever": 100,
|
||||
"mod_scope": 13,
|
||||
"mod_scope_000": 0,
|
||||
|
||||
+6
-2
@@ -6,7 +6,9 @@
|
||||
"5c07c60e0db834002330051f": 25,
|
||||
"5d43021ca4b9362eab4b5e25": 3,
|
||||
"5b0bbe4e5acfc40dc528a72d": 1,
|
||||
"5bfea6e90db834001b7347f3": 20
|
||||
"5bfea6e90db834001b7347f3": 15,
|
||||
"623063e994fc3f7b302a9696": 8,
|
||||
"5447a9cd4bdc2dbd208b4567": 8
|
||||
},
|
||||
"ShortRange": {
|
||||
"5a7828548dc32e5a9c28b516": 15,
|
||||
@@ -59,7 +61,9 @@
|
||||
"5c07c60e0db834002330051f": 25,
|
||||
"5d43021ca4b9362eab4b5e25": 3,
|
||||
"5b0bbe4e5acfc40dc528a72d": 1,
|
||||
"5bfea6e90db834001b7347f3": 20
|
||||
"5bfea6e90db834001b7347f3": 15,
|
||||
"623063e994fc3f7b302a9696": 8,
|
||||
"5447a9cd4bdc2dbd208b4567": 8
|
||||
},
|
||||
"ShortRange": {
|
||||
"5a7828548dc32e5a9c28b516": 15,
|
||||
|
||||
+1
-5
@@ -6607,11 +6607,7 @@
|
||||
"5a789261c5856700186c65d3"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {
|
||||
"mod_scope": [
|
||||
"609b9e31506cf869cf3eaf41"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {},
|
||||
"5a788031c585673f2b5c1c79": {
|
||||
"mod_foregrip": [
|
||||
"5c7fc87d2e221644f31c0298",
|
||||
|
||||
+1
-1
@@ -12002,7 +12002,7 @@
|
||||
"mod_pistol_grip": 100,
|
||||
"mod_pistol_grip_akms": 0,
|
||||
"mod_pistolgrip": 0,
|
||||
"mod_pistolgrip_000": 0,
|
||||
"mod_pistolgrip_000": 100,
|
||||
"mod_reciever": 100,
|
||||
"mod_scope": 13,
|
||||
"mod_scope_000": 0,
|
||||
|
||||
+11
-6
@@ -4,10 +4,12 @@
|
||||
"FirstPrimaryWeapon": {
|
||||
"LongRange": {
|
||||
"5c07c60e0db834002330051f": 25,
|
||||
"5d43021ca4b9362eab4b5e25": 25,
|
||||
"5d43021ca4b9362eab4b5e25": 20,
|
||||
"5b0bbe4e5acfc40dc528a72d": 15,
|
||||
"5bfea6e90db834001b7347f3": 25,
|
||||
"5df8ce05b11454561e39243b": 10
|
||||
"5bfea6e90db834001b7347f3": 20,
|
||||
"5df8ce05b11454561e39243b": 15,
|
||||
"623063e994fc3f7b302a9696": 8,
|
||||
"5447a9cd4bdc2dbd208b4567": 8
|
||||
},
|
||||
"ShortRange": {
|
||||
"5a7828548dc32e5a9c28b516": 5,
|
||||
@@ -75,10 +77,12 @@
|
||||
"SecondPrimaryWeapon": {
|
||||
"LongRange": {
|
||||
"5c07c60e0db834002330051f": 25,
|
||||
"5d43021ca4b9362eab4b5e25": 25,
|
||||
"5d43021ca4b9362eab4b5e25": 20,
|
||||
"5b0bbe4e5acfc40dc528a72d": 15,
|
||||
"5bfea6e90db834001b7347f3": 25,
|
||||
"5df8ce05b11454561e39243b": 10
|
||||
"5bfea6e90db834001b7347f3": 20,
|
||||
"5df8ce05b11454561e39243b": 15,
|
||||
"623063e994fc3f7b302a9696": 8,
|
||||
"5447a9cd4bdc2dbd208b4567": 8
|
||||
},
|
||||
"ShortRange": {
|
||||
"5a7828548dc32e5a9c28b516": 5,
|
||||
@@ -753,6 +757,7 @@
|
||||
"56e335e4d2720b6c058b456d": 20,
|
||||
"5ca20d5986f774331e7c9602": 10,
|
||||
"5e9dcf5986f7746c417435b3": 10,
|
||||
"59e763f286f7742ee57895da": 15,
|
||||
"6038d614d10cbf667352dd44": 1,
|
||||
"6034d103ca006d2dca39b3f0": 1,
|
||||
"656ddcf0f02d7bcea90bf395": 1,
|
||||
|
||||
+1
-5
@@ -6708,11 +6708,7 @@
|
||||
"5a789261c5856700186c65d3"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {
|
||||
"mod_scope": [
|
||||
"609b9e31506cf869cf3eaf41"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {},
|
||||
"5a788031c585673f2b5c1c79": {
|
||||
"mod_foregrip": [
|
||||
"5c7fc87d2e221644f31c0298",
|
||||
|
||||
+1
-1
@@ -11994,7 +11994,7 @@
|
||||
"mod_pistol_grip": 100,
|
||||
"mod_pistol_grip_akms": 0,
|
||||
"mod_pistolgrip": 0,
|
||||
"mod_pistolgrip_000": 0,
|
||||
"mod_pistolgrip_000": 100,
|
||||
"mod_reciever": 100,
|
||||
"mod_scope": 13,
|
||||
"mod_scope_000": 0,
|
||||
|
||||
+1
-5
@@ -7529,11 +7529,7 @@
|
||||
"5a789261c5856700186c65d3"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {
|
||||
"mod_scope": [
|
||||
"609b9e31506cf869cf3eaf41"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {},
|
||||
"5a788031c585673f2b5c1c79": {
|
||||
"mod_foregrip": [
|
||||
"5cda9bcfd7f00c0c0b53e900",
|
||||
|
||||
+1
-1
@@ -11982,7 +11982,7 @@
|
||||
"mod_pistol_grip": 100,
|
||||
"mod_pistol_grip_akms": 0,
|
||||
"mod_pistolgrip": 0,
|
||||
"mod_pistolgrip_000": 0,
|
||||
"mod_pistolgrip_000": 100,
|
||||
"mod_reciever": 100,
|
||||
"mod_scope": 13,
|
||||
"mod_scope_000": 0,
|
||||
|
||||
+1
-5
@@ -7319,11 +7319,7 @@
|
||||
"5a789261c5856700186c65d3"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {
|
||||
"mod_scope": [
|
||||
"609b9e31506cf869cf3eaf41"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {},
|
||||
"5a788031c585673f2b5c1c79": {
|
||||
"mod_foregrip": [
|
||||
"5cda9bcfd7f00c0c0b53e900",
|
||||
|
||||
+1
-1
@@ -11982,7 +11982,7 @@
|
||||
"mod_pistol_grip": 100,
|
||||
"mod_pistol_grip_akms": 0,
|
||||
"mod_pistolgrip": 0,
|
||||
"mod_pistolgrip_000": 0,
|
||||
"mod_pistolgrip_000": 100,
|
||||
"mod_reciever": 100,
|
||||
"mod_scope": 13,
|
||||
"mod_scope_000": 0,
|
||||
|
||||
+1
-5
@@ -7023,11 +7023,7 @@
|
||||
"5a789261c5856700186c65d3"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {
|
||||
"mod_scope": [
|
||||
"609b9e31506cf869cf3eaf41"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {},
|
||||
"5a788031c585673f2b5c1c79": {
|
||||
"mod_foregrip": [
|
||||
"5cda9bcfd7f00c0c0b53e900",
|
||||
|
||||
+1
-1
@@ -12038,7 +12038,7 @@
|
||||
"mod_pistol_grip": 100,
|
||||
"mod_pistol_grip_akms": 0,
|
||||
"mod_pistolgrip": 0,
|
||||
"mod_pistolgrip_000": 0,
|
||||
"mod_pistolgrip_000": 100,
|
||||
"mod_reciever": 100,
|
||||
"mod_scope": 13,
|
||||
"mod_scope_000": 0,
|
||||
|
||||
+1
-5
@@ -7006,11 +7006,7 @@
|
||||
"5a789261c5856700186c65d3"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {
|
||||
"mod_scope": [
|
||||
"609b9e31506cf869cf3eaf41"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {},
|
||||
"5a788031c585673f2b5c1c79": {
|
||||
"mod_foregrip": [
|
||||
"5cda9bcfd7f00c0c0b53e900",
|
||||
|
||||
+70
@@ -0,0 +1,70 @@
|
||||
import { inject, injectable } from "tsyringe";
|
||||
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { RandomUtil } from "@spt/utils/RandomUtil";
|
||||
|
||||
import { BotGeneratorHelper } from "@spt/helpers/BotGeneratorHelper";
|
||||
import { ApplicationContext } from "@spt/context/ApplicationContext";
|
||||
import { ContextVariableType } from "@spt/context/ContextVariableType";
|
||||
import { ContainerHelper } from "@spt/helpers/ContainerHelper";
|
||||
import { DurabilityLimitsHelper } from "@spt/helpers/DurabilityLimitsHelper";
|
||||
import { InventoryHelper } from "@spt/helpers/InventoryHelper";
|
||||
import { ItemHelper } from "@spt/helpers/ItemHelper";
|
||||
import { IUpd } from "@spt/models/eft/common/tables/IItem";
|
||||
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
|
||||
import { IGetRaidConfigurationRequestData } from "@spt/models/eft/match/IGetRaidConfigurationRequestData";
|
||||
import { BaseClasses } from "@spt/models/enums/BaseClasses";
|
||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||
import { IRandomisedResourceValues } from "@spt/models/spt/config/IBotConfig";
|
||||
|
||||
/** Handle profile related client events */
|
||||
@injectable()
|
||||
export class APBSBotGeneratorHelper extends BotGeneratorHelper
|
||||
{
|
||||
|
||||
constructor(
|
||||
@inject("PrimaryLogger") protected logger: ILogger,
|
||||
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
||||
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||
@inject("DurabilityLimitsHelper") protected durabilityLimitsHelper: DurabilityLimitsHelper,
|
||||
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
||||
@inject("InventoryHelper") protected inventoryHelper: InventoryHelper,
|
||||
@inject("ContainerHelper") protected containerHelper: ContainerHelper,
|
||||
@inject("ApplicationContext") protected applicationContext: ApplicationContext,
|
||||
@inject("LocalisationService") protected localisationService: LocalisationService,
|
||||
@inject("ConfigServer") protected configServer: ConfigServer
|
||||
)
|
||||
{
|
||||
super(logger,
|
||||
randomUtil,
|
||||
databaseService,
|
||||
durabilityLimitsHelper,
|
||||
itemHelper,
|
||||
inventoryHelper,
|
||||
containerHelper,
|
||||
applicationContext,
|
||||
localisationService,
|
||||
configServer)
|
||||
}
|
||||
|
||||
protected override getRandomizedResourceValue(maxResource: number, randomizationValues: IRandomisedResourceValues): number
|
||||
{
|
||||
if (!randomizationValues)
|
||||
{
|
||||
return maxResource;
|
||||
}
|
||||
|
||||
if (this.randomUtil.getChance100(randomizationValues.chanceMaxResourcePercent))
|
||||
{
|
||||
return maxResource;
|
||||
}
|
||||
|
||||
const newResourceValue = this.randomUtil.getInt(
|
||||
this.randomUtil.getPercentOfValue(randomizationValues.resourcePercent, maxResource, 0),
|
||||
maxResource
|
||||
)
|
||||
return newResourceValue ? newResourceValue : 1;
|
||||
}
|
||||
}
|
||||
-18
@@ -75,24 +75,6 @@ export class APBSBotLevelGenerator
|
||||
return result;
|
||||
}
|
||||
|
||||
if (!botGenerationDetails.isPmc && !botGenerationDetails.isPlayerScav && ModConfig.config.enableScavCustomLevelDeltas)
|
||||
{
|
||||
const expTable = this.databaseService.getGlobals().config.exp.level.exp_table;
|
||||
const botLevelRange = this.apbsGetRelativeBotLevelRange(botGenerationDetails, levelDetails, expTable.length);
|
||||
const min = botLevelRange.min <= 0 ? 1 : botLevelRange.min;
|
||||
const max = botLevelRange.max >= 79 ? 79 : botLevelRange.max;
|
||||
const level = this.randomUtil.getInt(min, max);
|
||||
const exp = this.profileHelper.getExperience(level);
|
||||
const tier = this.apbsTierGetter.getTierByLevel(level);
|
||||
bot.Info.Tier = this.chadOrChill(tier.toString());
|
||||
|
||||
const result: IRandomisedBotLevelResult = {
|
||||
level,
|
||||
exp
|
||||
};
|
||||
return result;
|
||||
}
|
||||
|
||||
const expTable = this.databaseService.getGlobals().config.exp.level.exp_table;
|
||||
const botLevelRange = this.apbsGetRelativeBotLevelRange(botGenerationDetails, levelDetails, expTable.length);
|
||||
const min = botLevelRange.min <= 0 ? 1 : botLevelRange.min;
|
||||
|
||||
+6
-6
@@ -33,18 +33,18 @@ export class RaidInformation
|
||||
},
|
||||
"laboratory":
|
||||
{
|
||||
"LongRange": 5,
|
||||
"ShortRange": 95
|
||||
"LongRange": 10,
|
||||
"ShortRange": 90
|
||||
},
|
||||
"factory4_night":
|
||||
{
|
||||
"LongRange": 1,
|
||||
"ShortRange": 99
|
||||
"LongRange": 5,
|
||||
"ShortRange": 95
|
||||
},
|
||||
"factory4_day":
|
||||
{
|
||||
"LongRange": 1,
|
||||
"ShortRange": 99
|
||||
"LongRange": 5,
|
||||
"ShortRange": 95
|
||||
},
|
||||
"Interchange":
|
||||
{
|
||||
|
||||
+43
-4
@@ -16,6 +16,11 @@ export class BlacklistHelper
|
||||
)
|
||||
{}
|
||||
|
||||
private invalidAmmoIDs: string[] = [];
|
||||
private invalidEquipmentIDs: string[] = [];
|
||||
private invalidWeaponIDs: string[] = [];
|
||||
private invalidAttachmentIDs: string[] = [];
|
||||
|
||||
public initialize(): void
|
||||
{
|
||||
if (ModConfig.config.tier1AmmoBlacklist.length > 0) this.removeBlacklistedAmmo(ModConfig.config.tier1AmmoBlacklist, 1);
|
||||
@@ -46,6 +51,8 @@ export class BlacklistHelper
|
||||
if (ModConfig.config.tier5AttachmentBlacklist.length > 0) this.removeBlacklistedAttachments(ModConfig.config.tier5AttachmentBlacklist, 5);
|
||||
if (ModConfig.config.tier6AttachmentBlacklist.length > 0) this.removeBlacklistedAttachments(ModConfig.config.tier6AttachmentBlacklist, 6);
|
||||
if (ModConfig.config.tier7AttachmentBlacklist.length > 0) this.removeBlacklistedAttachments(ModConfig.config.tier7AttachmentBlacklist, 7);
|
||||
|
||||
this.validateBlacklist();
|
||||
}
|
||||
|
||||
private removeBlacklistedAmmo(ammoBlacklist: string[], tier: number): void
|
||||
@@ -76,7 +83,7 @@ export class BlacklistHelper
|
||||
}
|
||||
if (itemDetails == undefined || itemDetails._parent != "5485a8684bdc2da71d8b4567")
|
||||
{
|
||||
this.apbsLogger.log(Logging.WARN, `"${ammoBlacklist[item]}" in Ammo Blacklist is either an invalid ammunition or item ID.`)
|
||||
if (!this.invalidAmmoIDs.includes(ammoBlacklist[item])) this.invalidAmmoIDs.push(ammoBlacklist[item])
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -109,7 +116,7 @@ export class BlacklistHelper
|
||||
}
|
||||
if (itemDetails == undefined)
|
||||
{
|
||||
this.apbsLogger.log(Logging.WARN, `"${equipmentBlacklist[item]}" in Equipment Blacklist is an invalid item ID.`)
|
||||
if (!this.invalidEquipmentIDs.includes(equipmentBlacklist[item])) this.invalidEquipmentIDs.push(equipmentBlacklist[item])
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -178,7 +185,7 @@ export class BlacklistHelper
|
||||
}
|
||||
if (itemDetails == undefined)
|
||||
{
|
||||
this.apbsLogger.log(Logging.WARN, `"${weaponBlacklist[item]}" in Weapon Blacklist is an invalid item ID.`)
|
||||
if (!this.invalidWeaponIDs.includes(weaponBlacklist[item])) this.invalidWeaponIDs.push(weaponBlacklist[item])
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -219,7 +226,7 @@ export class BlacklistHelper
|
||||
}
|
||||
if (itemDetails == undefined)
|
||||
{
|
||||
this.apbsLogger.log(Logging.WARN, `"${attachmentBlacklist[item]}" in Attachment Blacklist is either an invalid attachment or item ID.`)
|
||||
if (!this.invalidAttachmentIDs.includes(attachmentBlacklist[item])) this.invalidAttachmentIDs.push(attachmentBlacklist[item])
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -233,4 +240,36 @@ export class BlacklistHelper
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
private validateBlacklist(): void
|
||||
{
|
||||
if (this.invalidAmmoIDs.length > 0)
|
||||
{
|
||||
for (const item in this.invalidAmmoIDs)
|
||||
{
|
||||
this.apbsLogger.log(Logging.WARN, `"${this.invalidAmmoIDs[item]}" in Ammo Blacklist is an invalid item ID.`)
|
||||
}
|
||||
}
|
||||
if (this.invalidEquipmentIDs.length > 0)
|
||||
{
|
||||
for (const item in this.invalidEquipmentIDs)
|
||||
{
|
||||
this.apbsLogger.log(Logging.WARN, `"${this.invalidEquipmentIDs[item]}" in Equipment Blacklist is an invalid item ID.`)
|
||||
}
|
||||
}
|
||||
if (this.invalidWeaponIDs.length > 0)
|
||||
{
|
||||
for (const item in this.invalidWeaponIDs)
|
||||
{
|
||||
this.apbsLogger.log(Logging.WARN, `"${this.invalidWeaponIDs[item]}" in Weapon Blacklist is an invalid item ID.`)
|
||||
}
|
||||
}
|
||||
if (this.invalidAttachmentIDs.length > 0)
|
||||
{
|
||||
for (const item in this.invalidAttachmentIDs)
|
||||
{
|
||||
this.apbsLogger.log(Logging.WARN, `"${this.invalidAttachmentIDs[item]}" in Attachment Blacklist is an invalid item ID.`)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+14
-33
@@ -100,27 +100,8 @@ export class ModdedImportHelper
|
||||
"671d8b8c0959c721a50ca838"
|
||||
]
|
||||
|
||||
this.clothingBlacklist = [
|
||||
"668bc5cd834c88e06b08b645", // All of this is Artem hands, because they are being configured as Body instead...Crackboooonnneee!!
|
||||
"668bc5cd834c88e06b08b64a",
|
||||
"668bc5cd834c88e06b08b64d",
|
||||
"668bc5cd834c88e06b08b650",
|
||||
"668bc5cd834c88e06b08b652",
|
||||
"668bc5cd834c88e06b08b655",
|
||||
"668bc5cd834c88e06b08b658",
|
||||
"668bc5cd834c88e06b08b65b",
|
||||
"668bc5cd834c88e06b08b65e",
|
||||
"668bc5cd834c88e06b08b662",
|
||||
"668bc5cd834c88e06b08b665",
|
||||
"668bc5cd834c88e06b08b668",
|
||||
"668bc5cd834c88e06b08b66b",
|
||||
"668bc5cd834c88e06b08b66e",
|
||||
"668bc5cd834c88e06b08b671",
|
||||
"668bc5cd834c88e06b08b674",
|
||||
"668bc5cd834c88e06b08b677",
|
||||
"668bc5cd834c88e06b08b67a",
|
||||
"668bc5cd834c88e06b08b67d"
|
||||
]
|
||||
// This is empty now because Crackbone fixed Artem - but I'm leaving this here for future use
|
||||
this.clothingBlacklist = []
|
||||
}
|
||||
|
||||
public tiersTable = [];
|
||||
@@ -142,14 +123,14 @@ export class ModdedImportHelper
|
||||
this.apbsLogger.log(Logging.WARN, "Checking & importing Modded Weapons...Support not granted for this feature...")
|
||||
|
||||
// Build the joined list for every weapon used in APBS
|
||||
const weapons: ITemplateItem = {};
|
||||
const weapons = {};
|
||||
vanillaItemList.equipment.LongRange.forEach(element => weapons[element] = this.getItem(element))
|
||||
vanillaItemList.equipment.ShortRange.forEach(element => weapons[element] = this.getItem(element))
|
||||
vanillaItemList.equipment.Holster.forEach(element => weapons[element] = this.getItem(element))
|
||||
vanillaItemList.equipment.Scabbard.forEach(element => weapons[element] = this.getItem(element))
|
||||
|
||||
// Push this list to the function to filter and import
|
||||
this.getModdedItems(weapons, BaseClasses.WEAPON, "Weapons");
|
||||
this.getModdedItems(weapons as ITemplateItem, BaseClasses.WEAPON, "Weapons");
|
||||
}
|
||||
|
||||
private buildVanillaEquipmentList(): void
|
||||
@@ -157,19 +138,19 @@ export class ModdedImportHelper
|
||||
this.apbsLogger.log(Logging.WARN, "Checking & importing Modded Equipment...Support not granted for this feature...")
|
||||
|
||||
// Build the joined list for every armour type used in APBS
|
||||
const armours: ITemplateItem = {};
|
||||
const armours = {};
|
||||
vanillaItemList.equipment.ArmorVest.forEach(element => armours[element] = this.getItem(element))
|
||||
|
||||
const headwear: ITemplateItem = {};
|
||||
const headwear = {};
|
||||
vanillaItemList.equipment.Headwear.forEach(element => headwear[element] = this.getItem(element))
|
||||
|
||||
const tacticalVests: ITemplateItem = {};
|
||||
const tacticalVests = {};
|
||||
vanillaItemList.equipment.TacticalVest.forEach(element => tacticalVests[element] = this.getItem(element))
|
||||
|
||||
// Push these lists to the function to filter and import
|
||||
this.getModdedItems(armours, BaseClasses.ARMOR, "Armours");
|
||||
this.getModdedItems(headwear, BaseClasses.HEADWEAR, "Helmets");
|
||||
this.getModdedItems(tacticalVests, BaseClasses.VEST, "Vests");
|
||||
this.getModdedItems(armours as ITemplateItem, BaseClasses.ARMOR, "Armours");
|
||||
this.getModdedItems(headwear as ITemplateItem, BaseClasses.HEADWEAR, "Helmets");
|
||||
this.getModdedItems(tacticalVests as ITemplateItem, BaseClasses.VEST, "Vests");
|
||||
}
|
||||
|
||||
private buildVanillaClothingList(): void
|
||||
@@ -177,15 +158,15 @@ export class ModdedImportHelper
|
||||
this.apbsLogger.log(Logging.WARN, "Checking & importing Modded Clothing...Support not granted for this feature...")
|
||||
|
||||
// Build the joined list for every body & feet type used in APBS
|
||||
const body: ICustomizationItem = {};
|
||||
const body = {};
|
||||
vanillaClothingList.appearance.body.forEach(element => body[element] = this.getCustomization(element))
|
||||
|
||||
const feet: ICustomizationItem = {};
|
||||
const feet = {};
|
||||
vanillaClothingList.appearance.feet.forEach(element => feet[element] = this.getCustomization(element))
|
||||
|
||||
// Push these lists to the function to filter and import
|
||||
this.getModdedClothing(body, "Body");
|
||||
this.getModdedClothing(feet, "Feet");
|
||||
this.getModdedClothing(body as ICustomizationItem, "Body");
|
||||
this.getModdedClothing(feet as ICustomizationItem, "Feet");
|
||||
}
|
||||
|
||||
private getModdedClothing(clothingList: ICustomizationItem, className: string): void
|
||||
|
||||
+3
@@ -60,6 +60,7 @@ import { APBSMethodHolder } from "./InventoryMagGen/APBSMethodHolder";
|
||||
import { APBSBarrelInventoryMagGen } from "./InventoryMagGen/APBSBarrelInventoryMagGen";
|
||||
import { APBSInternalMagazineInventoryMagGen } from "./InventoryMagGen/APBSInternalMagazineInventoryMagGen";
|
||||
import { APBSUbglExternalMagGen } from "./InventoryMagGen/APBSUbglExternalMagGen";
|
||||
import { APBSBotGeneratorHelper } from "./ClassExtensions/APBSBotGeneratorHelper";
|
||||
|
||||
export class InstanceManager
|
||||
{
|
||||
@@ -213,6 +214,8 @@ export class InstanceManager
|
||||
this.container.register("BotLootCacheService", { useToken: "APBSBotLootCacheService" });
|
||||
this.container.register<APBSBotLootGenerator>("APBSBotLootGenerator", APBSBotLootGenerator);
|
||||
this.container.register("BotLootGenerator", { useToken: "APBSBotLootGenerator" });
|
||||
this.container.register<APBSBotGeneratorHelper>("APBSBotGeneratorHelper", APBSBotGeneratorHelper);
|
||||
this.container.register("BotGeneratorHelper", { useToken: "APBSBotGeneratorHelper" });
|
||||
|
||||
this.container.register("BotWeaponGenerator", { useToken: "APBSBotWeaponGenerator" });
|
||||
|
||||
|
||||
+1
-1
@@ -11980,7 +11980,7 @@
|
||||
"mod_pistol_grip": 100,
|
||||
"mod_pistol_grip_akms": 0,
|
||||
"mod_pistolgrip": 0,
|
||||
"mod_pistolgrip_000": 0,
|
||||
"mod_pistolgrip_000": 100,
|
||||
"mod_reciever": 100,
|
||||
"mod_scope": 13,
|
||||
"mod_scope_000": 0,
|
||||
|
||||
+8
-4
@@ -3,8 +3,10 @@
|
||||
"equipment": {
|
||||
"FirstPrimaryWeapon": {
|
||||
"LongRange": {
|
||||
"5c07c60e0db834002330051f": 30,
|
||||
"5bfea6e90db834001b7347f3": 20
|
||||
"5c07c60e0db834002330051f": 25,
|
||||
"5bfea6e90db834001b7347f3": 15,
|
||||
"623063e994fc3f7b302a9696": 8,
|
||||
"5447a9cd4bdc2dbd208b4567": 8
|
||||
},
|
||||
"ShortRange": {
|
||||
"5a7828548dc32e5a9c28b516": 20,
|
||||
@@ -50,8 +52,10 @@
|
||||
},
|
||||
"SecondPrimaryWeapon": {
|
||||
"LongRange": {
|
||||
"5c07c60e0db834002330051f": 30,
|
||||
"5bfea6e90db834001b7347f3": 20
|
||||
"5c07c60e0db834002330051f": 25,
|
||||
"5bfea6e90db834001b7347f3": 15,
|
||||
"623063e994fc3f7b302a9696": 8,
|
||||
"5447a9cd4bdc2dbd208b4567": 8
|
||||
},
|
||||
"ShortRange": {
|
||||
"5a7828548dc32e5a9c28b516": 20,
|
||||
|
||||
+1
-5
@@ -6378,11 +6378,7 @@
|
||||
"5a789261c5856700186c65d3"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {
|
||||
"mod_scope": [
|
||||
"609b9e31506cf869cf3eaf41"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {},
|
||||
"5a788031c585673f2b5c1c79": {
|
||||
"mod_foregrip": [
|
||||
"5c7fc87d2e221644f31c0298",
|
||||
|
||||
+1
-1
@@ -11990,7 +11990,7 @@
|
||||
"mod_pistol_grip": 100,
|
||||
"mod_pistol_grip_akms": 0,
|
||||
"mod_pistolgrip": 0,
|
||||
"mod_pistolgrip_000": 0,
|
||||
"mod_pistolgrip_000": 100,
|
||||
"mod_reciever": 100,
|
||||
"mod_scope": 13,
|
||||
"mod_scope_000": 0,
|
||||
|
||||
+6
-2
@@ -6,7 +6,9 @@
|
||||
"5c07c60e0db834002330051f": 25,
|
||||
"5d43021ca4b9362eab4b5e25": 3,
|
||||
"5b0bbe4e5acfc40dc528a72d": 1,
|
||||
"5bfea6e90db834001b7347f3": 20
|
||||
"5bfea6e90db834001b7347f3": 15,
|
||||
"623063e994fc3f7b302a9696": 8,
|
||||
"5447a9cd4bdc2dbd208b4567": 8
|
||||
},
|
||||
"ShortRange": {
|
||||
"5a7828548dc32e5a9c28b516": 15,
|
||||
@@ -59,7 +61,9 @@
|
||||
"5c07c60e0db834002330051f": 25,
|
||||
"5d43021ca4b9362eab4b5e25": 3,
|
||||
"5b0bbe4e5acfc40dc528a72d": 1,
|
||||
"5bfea6e90db834001b7347f3": 20
|
||||
"5bfea6e90db834001b7347f3": 15,
|
||||
"623063e994fc3f7b302a9696": 8,
|
||||
"5447a9cd4bdc2dbd208b4567": 8
|
||||
},
|
||||
"ShortRange": {
|
||||
"5a7828548dc32e5a9c28b516": 15,
|
||||
|
||||
+1
-5
@@ -6607,11 +6607,7 @@
|
||||
"5a789261c5856700186c65d3"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {
|
||||
"mod_scope": [
|
||||
"609b9e31506cf869cf3eaf41"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {},
|
||||
"5a788031c585673f2b5c1c79": {
|
||||
"mod_foregrip": [
|
||||
"5c7fc87d2e221644f31c0298",
|
||||
|
||||
+1
-1
@@ -12002,7 +12002,7 @@
|
||||
"mod_pistol_grip": 100,
|
||||
"mod_pistol_grip_akms": 0,
|
||||
"mod_pistolgrip": 0,
|
||||
"mod_pistolgrip_000": 0,
|
||||
"mod_pistolgrip_000": 100,
|
||||
"mod_reciever": 100,
|
||||
"mod_scope": 13,
|
||||
"mod_scope_000": 0,
|
||||
|
||||
+11
-6
@@ -4,10 +4,12 @@
|
||||
"FirstPrimaryWeapon": {
|
||||
"LongRange": {
|
||||
"5c07c60e0db834002330051f": 25,
|
||||
"5d43021ca4b9362eab4b5e25": 25,
|
||||
"5d43021ca4b9362eab4b5e25": 20,
|
||||
"5b0bbe4e5acfc40dc528a72d": 15,
|
||||
"5bfea6e90db834001b7347f3": 25,
|
||||
"5df8ce05b11454561e39243b": 10
|
||||
"5bfea6e90db834001b7347f3": 20,
|
||||
"5df8ce05b11454561e39243b": 15,
|
||||
"623063e994fc3f7b302a9696": 8,
|
||||
"5447a9cd4bdc2dbd208b4567": 8
|
||||
},
|
||||
"ShortRange": {
|
||||
"5a7828548dc32e5a9c28b516": 5,
|
||||
@@ -75,10 +77,12 @@
|
||||
"SecondPrimaryWeapon": {
|
||||
"LongRange": {
|
||||
"5c07c60e0db834002330051f": 25,
|
||||
"5d43021ca4b9362eab4b5e25": 25,
|
||||
"5d43021ca4b9362eab4b5e25": 20,
|
||||
"5b0bbe4e5acfc40dc528a72d": 15,
|
||||
"5bfea6e90db834001b7347f3": 25,
|
||||
"5df8ce05b11454561e39243b": 10
|
||||
"5bfea6e90db834001b7347f3": 20,
|
||||
"5df8ce05b11454561e39243b": 15,
|
||||
"623063e994fc3f7b302a9696": 8,
|
||||
"5447a9cd4bdc2dbd208b4567": 8
|
||||
},
|
||||
"ShortRange": {
|
||||
"5a7828548dc32e5a9c28b516": 5,
|
||||
@@ -753,6 +757,7 @@
|
||||
"56e335e4d2720b6c058b456d": 20,
|
||||
"5ca20d5986f774331e7c9602": 10,
|
||||
"5e9dcf5986f7746c417435b3": 10,
|
||||
"59e763f286f7742ee57895da": 15,
|
||||
"6038d614d10cbf667352dd44": 1,
|
||||
"6034d103ca006d2dca39b3f0": 1,
|
||||
"656ddcf0f02d7bcea90bf395": 1,
|
||||
|
||||
+1
-5
@@ -6708,11 +6708,7 @@
|
||||
"5a789261c5856700186c65d3"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {
|
||||
"mod_scope": [
|
||||
"609b9e31506cf869cf3eaf41"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {},
|
||||
"5a788031c585673f2b5c1c79": {
|
||||
"mod_foregrip": [
|
||||
"5c7fc87d2e221644f31c0298",
|
||||
|
||||
+1
-1
@@ -11994,7 +11994,7 @@
|
||||
"mod_pistol_grip": 100,
|
||||
"mod_pistol_grip_akms": 0,
|
||||
"mod_pistolgrip": 0,
|
||||
"mod_pistolgrip_000": 0,
|
||||
"mod_pistolgrip_000": 100,
|
||||
"mod_reciever": 100,
|
||||
"mod_scope": 13,
|
||||
"mod_scope_000": 0,
|
||||
|
||||
+1
-5
@@ -7529,11 +7529,7 @@
|
||||
"5a789261c5856700186c65d3"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {
|
||||
"mod_scope": [
|
||||
"609b9e31506cf869cf3eaf41"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {},
|
||||
"5a788031c585673f2b5c1c79": {
|
||||
"mod_foregrip": [
|
||||
"5cda9bcfd7f00c0c0b53e900",
|
||||
|
||||
+1
-1
@@ -11982,7 +11982,7 @@
|
||||
"mod_pistol_grip": 100,
|
||||
"mod_pistol_grip_akms": 0,
|
||||
"mod_pistolgrip": 0,
|
||||
"mod_pistolgrip_000": 0,
|
||||
"mod_pistolgrip_000": 100,
|
||||
"mod_reciever": 100,
|
||||
"mod_scope": 13,
|
||||
"mod_scope_000": 0,
|
||||
|
||||
+1
-5
@@ -7319,11 +7319,7 @@
|
||||
"5a789261c5856700186c65d3"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {
|
||||
"mod_scope": [
|
||||
"609b9e31506cf869cf3eaf41"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {},
|
||||
"5a788031c585673f2b5c1c79": {
|
||||
"mod_foregrip": [
|
||||
"5cda9bcfd7f00c0c0b53e900",
|
||||
|
||||
+1
-1
@@ -11982,7 +11982,7 @@
|
||||
"mod_pistol_grip": 100,
|
||||
"mod_pistol_grip_akms": 0,
|
||||
"mod_pistolgrip": 0,
|
||||
"mod_pistolgrip_000": 0,
|
||||
"mod_pistolgrip_000": 100,
|
||||
"mod_reciever": 100,
|
||||
"mod_scope": 13,
|
||||
"mod_scope_000": 0,
|
||||
|
||||
+1
-5
@@ -7023,11 +7023,7 @@
|
||||
"5a789261c5856700186c65d3"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {
|
||||
"mod_scope": [
|
||||
"609b9e31506cf869cf3eaf41"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {},
|
||||
"5a788031c585673f2b5c1c79": {
|
||||
"mod_foregrip": [
|
||||
"5cda9bcfd7f00c0c0b53e900",
|
||||
|
||||
+1
-1
@@ -12038,7 +12038,7 @@
|
||||
"mod_pistol_grip": 100,
|
||||
"mod_pistol_grip_akms": 0,
|
||||
"mod_pistolgrip": 0,
|
||||
"mod_pistolgrip_000": 0,
|
||||
"mod_pistolgrip_000": 100,
|
||||
"mod_reciever": 100,
|
||||
"mod_scope": 13,
|
||||
"mod_scope_000": 0,
|
||||
|
||||
+1
-5
@@ -7006,11 +7006,7 @@
|
||||
"5a789261c5856700186c65d3"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {
|
||||
"mod_scope": [
|
||||
"609b9e31506cf869cf3eaf41"
|
||||
]
|
||||
},
|
||||
"5a787fdfc5856700142fdd9a": {},
|
||||
"5a788031c585673f2b5c1c79": {
|
||||
"mod_foregrip": [
|
||||
"5cda9bcfd7f00c0c0b53e900",
|
||||
|
||||
Reference in New Issue
Block a user