Skip to content

Commit 44fab36

Browse files
committed
Updates for APT 3.2.3
1 parent e23ac0e commit 44fab36

33 files changed

+637
-124
lines changed

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
22
"name": "CustomCameraRecoil",
3-
"version": "1.0.2",
3+
"version": "1.0.3",
44
"main": "src/mod.js",
55
"license": "MIT",
6-
"author": "Dinkadactyl",
7-
"akiVersion": "3.2.2",
6+
"author": "Refringe",
7+
"akiVersion": "3.2.3",
88
"scripts": {
99
"setup": "npm i",
1010
"build": "node ./packageBuild.ts"

packageBuild.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ const ignoreList = [
3232
"types/",
3333
".git/",
3434
".gitea/",
35+
".github/",
3536
".eslintignore",
3637
".eslintrc.json",
3738
".gitignore",

types/context/ContextVariable.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ export declare class ContextVariable {
44
private timestamp;
55
private type;
66
constructor(value: any, type: ContextVariableType);
7-
getValue(): any;
7+
getValue<T>(): T;
88
getTimestamp(): Date;
99
getType(): ContextVariableType;
1010
}

types/controllers/BotController.d.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,21 @@ import { IBotBase } from "../models/eft/common/tables/IBotBase";
55
import { IBotCore } from "../models/eft/common/tables/IBotCore";
66
import { Difficulty } from "../models/eft/common/tables/IBotType";
77
import { IBotConfig } from "../models/spt/config/IBotConfig";
8+
import { ILogger } from "../models/spt/utils/ILogger";
89
import { ConfigServer } from "../servers/ConfigServer";
910
import { DatabaseServer } from "../servers/DatabaseServer";
11+
import { BotGenerationCacheService } from "../services/BotGenerationCacheService";
12+
import { PmcAiService } from "../services/PmcAiService";
1013
export declare class BotController {
14+
protected logger: ILogger;
1115
protected databaseServer: DatabaseServer;
1216
protected botGenerator: BotGenerator;
1317
protected botHelper: BotHelper;
18+
protected pmcAiService: PmcAiService;
19+
protected botGenerationCacheService: BotGenerationCacheService;
1420
protected configServer: ConfigServer;
1521
protected botConfig: IBotConfig;
16-
constructor(databaseServer: DatabaseServer, botGenerator: BotGenerator, botHelper: BotHelper, configServer: ConfigServer);
22+
constructor(logger: ILogger, databaseServer: DatabaseServer, botGenerator: BotGenerator, botHelper: BotHelper, pmcAiService: PmcAiService, botGenerationCacheService: BotGenerationCacheService, configServer: ConfigServer);
1723
/**
1824
* Return the number of bot loadout varieties to be generated
1925
* @param type bot Type we want the loadout gen count for
@@ -29,7 +35,7 @@ export declare class BotController {
2935
* @returns Difficulty object
3036
*/
3137
getBotDifficulty(type: string, difficulty: string): Difficulty;
32-
protected getPmcDifficultySettings(pmcType: "bear" | "usec", difficulty: string): Difficulty;
38+
protected getPmcDifficultySettings(pmcType: "bear" | "usec", difficulty: string, usecType: string, bearType: string): Difficulty;
3339
generate(sessionId: string, info: IGenerateBotsRequestData): IBotBase[];
3440
getBotCap(): number;
3541
}

types/controllers/MatchController.d.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@ import { IMatchConfig } from "../models/spt/config/IMatchConfig";
1515
import { ILogger } from "../models/spt/utils/ILogger";
1616
import { ConfigServer } from "../servers/ConfigServer";
1717
import { SaveServer } from "../servers/SaveServer";
18+
import { BotGenerationCacheService } from "../services/BotGenerationCacheService";
1819
import { BotLootCacheService } from "../services/BotLootCacheService";
1920
import { MatchLocationService } from "../services/MatchLocationService";
21+
import { PmcAiService } from "../services/PmcAiService";
2022
import { ProfileSnapshotService } from "../services/ProfileSnapshotService";
2123
export declare class MatchController {
2224
protected logger: ILogger;
@@ -27,11 +29,13 @@ export declare class MatchController {
2729
protected botLootCacheService: BotLootCacheService;
2830
protected configServer: ConfigServer;
2931
protected profileSnapshotService: ProfileSnapshotService;
32+
protected pmcAiService: PmcAiService;
33+
protected botGenerationCacheService: BotGenerationCacheService;
3034
protected applicationContext: ApplicationContext;
3135
protected matchConfig: IMatchConfig;
3236
protected inraidConfig: IInRaidConfig;
3337
protected botConfig: IBotConfig;
34-
constructor(logger: ILogger, saveServer: SaveServer, profileHelper: ProfileHelper, matchLocationService: MatchLocationService, traderHelper: TraderHelper, botLootCacheService: BotLootCacheService, configServer: ConfigServer, profileSnapshotService: ProfileSnapshotService, applicationContext: ApplicationContext);
38+
constructor(logger: ILogger, saveServer: SaveServer, profileHelper: ProfileHelper, matchLocationService: MatchLocationService, traderHelper: TraderHelper, botLootCacheService: BotLootCacheService, configServer: ConfigServer, profileSnapshotService: ProfileSnapshotService, pmcAiService: PmcAiService, botGenerationCacheService: BotGenerationCacheService, applicationContext: ApplicationContext);
3539
getEnabled(): boolean;
3640
getProfile(info: IGetProfileRequestData): IPmcData[];
3741
createGroup(sessionID: string, info: ICreateGroupRequestData): any;

types/generators/BotGenerator.d.ts

Lines changed: 37 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { ILogger } from "../models/spt/utils/ILogger";
99
import { ConfigServer } from "../servers/ConfigServer";
1010
import { DatabaseServer } from "../servers/DatabaseServer";
1111
import { BotEquipmentFilterService } from "../services/BotEquipmentFilterService";
12+
import { PmcAiService } from "../services/PmcAiService";
1213
import { HashUtil } from "../utils/HashUtil";
1314
import { JsonUtil } from "../utils/JsonUtil";
1415
import { RandomUtil } from "../utils/RandomUtil";
@@ -30,9 +31,10 @@ export declare class BotGenerator {
3031
protected botEquipmentFilterService: BotEquipmentFilterService;
3132
protected botHelper: BotHelper;
3233
protected gameEventHelper: GameEventHelper;
34+
protected pmcAiService: PmcAiService;
3335
protected configServer: ConfigServer;
3436
protected botConfig: IBotConfig;
35-
constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, jsonUtil: JsonUtil, profileHelper: ProfileHelper, databaseServer: DatabaseServer, botInventoryGenerator: BotInventoryGenerator, botEquipmentFilterService: BotEquipmentFilterService, botHelper: BotHelper, gameEventHelper: GameEventHelper, configServer: ConfigServer);
37+
constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, jsonUtil: JsonUtil, profileHelper: ProfileHelper, databaseServer: DatabaseServer, botInventoryGenerator: BotInventoryGenerator, botEquipmentFilterService: BotEquipmentFilterService, botHelper: BotHelper, gameEventHelper: GameEventHelper, pmcAiService: PmcAiService, configServer: ConfigServer);
3638
/**
3739
* Generate a player scav bot object
3840
* @param role e.g. assault / pmcbot
@@ -41,13 +43,13 @@ export declare class BotGenerator {
4143
* @returns
4244
*/
4345
generatePlayerScav(sessionId: string, role: string, difficulty: string, botTemplate: IBotType): IBotBase;
44-
generate(sessionId: string, info: IGenerateBotsRequestData): IBotBase[];
4546
/**
46-
* Choose if a bot should become a PMC by checking if bot type is allowed to become a Pmc in botConfig.convertFromChances and doing a random int check
47-
* @param botRole the bot role to check if should be a pmc
48-
* @returns true if should be a pmc
47+
* Generate an array of bot objects for populate a raid with
48+
* @param sessionId session id
49+
* @param info request object
50+
* @returns bot array
4951
*/
50-
protected shouldBotBePmc(botRole: string): boolean;
52+
generate(sessionId: string, info: IGenerateBotsRequestData): IBotBase[];
5153
/**
5254
* Get a randomised PMC side based on bot config value 'isUsec'
5355
* @returns pmc side as string
@@ -58,12 +60,30 @@ export declare class BotGenerator {
5860
* @returns IBotBase object
5961
*/
6062
protected getCloneOfBotBase(): IBotBase;
63+
/**
64+
* Create a IBotBase object with equipment/loot/exp etc
65+
* @param sessionId Session id
66+
* @param bot bots base file
67+
* @param role botRole bot will use
68+
* @param node Bot template from db/bots/x.json
69+
* @param isPmc Is bot to be a PMC
70+
* @param isPlayerScav is bot to be a p scav bot
71+
* @returns IBotBase object
72+
*/
6173
protected generateBot(sessionId: string, bot: IBotBase, role: string, node: IBotType, isPmc: boolean, isPlayerScav?: boolean): IBotBase;
6274
/**
6375
* Log the number of PMCs generated to the debug console
76+
* @param output Generated bot array, ready to send to client
6477
*/
6578
protected logPmcGeneratedCount(output: IBotBase[]): void;
66-
protected generateRandomLevel(min: number, max: number): BotGenerator.IRandomisedBotLevelResult;
79+
/**
80+
* Return a randomised bot level and exp value
81+
* @param role botRole being generated for
82+
* @param min Min exp value
83+
* @param max Max exp value
84+
* @returns IRandomisedBotLevelResult object
85+
*/
86+
protected generateRandomLevel(role: string, min: number, max: number): BotGenerator.IRandomisedBotLevelResult;
6787
/**
6888
* Converts health object to the required format
6989
* @param healthObj health object from bot json
@@ -72,19 +92,23 @@ export declare class BotGenerator {
7292
*/
7393
protected generateHealth(healthObj: Health, playerScav?: boolean): PmcHealth;
7494
protected generateSkills(skillsObj: Skills): Skills;
75-
/**
76-
* Convert from pmc side (usec/bear) to the side as defined in the bot config (usecType/bearType)
77-
* @param pmcSide eft side (usec/bear)
78-
* @returns pmc side as defined in config
79-
*/
80-
protected getPmcRole(pmcSide: string): string;
8195
/**
8296
* Iterate through bots inventory and loot to find and remove christmas items (as defined in GameEventHelper)
8397
* @param nodeInventory Bots inventory to iterate over
8498
*/
8599
protected removeChristmasItemsFromBotInventory(nodeInventory: Inventory): void;
100+
/**
101+
* Generate a random Id for a bot and apply to bots _id and aid value
102+
* @param bot bot to update
103+
* @returns updated IBotBase object
104+
*/
86105
protected generateId(bot: IBotBase): IBotBase;
87106
protected generateInventoryID(profile: IBotBase): IBotBase;
107+
/**
108+
* Get the difficulty passed in, if its not "asoline", get selected difficulty from config
109+
* @param requestedDifficulty
110+
* @returns
111+
*/
88112
protected getPMCDifficulty(requestedDifficulty: string): string;
89113
/**
90114
* Add a side-specific (usec/bear) dogtag item to a bots inventory
Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
1+
import { BotGeneratorHelper } from "../helpers/BotGeneratorHelper";
2+
import { WeightedRandomHelper } from "../helpers/WeightedRandomHelper";
13
import { Inventory as PmcInventory } from "../models/eft/common/tables/IBotBase";
2-
import { Inventory, Chances, Generation, Mods } from "../models/eft/common/tables/IBotType";
4+
import { Chances, Generation, Inventory, Mods } from "../models/eft/common/tables/IBotType";
5+
import { EquipmentSlots } from "../models/enums/EquipmentSlots";
6+
import { IBotConfig } from "../models/spt/config/IBotConfig";
7+
import { ILogger } from "../models/spt/utils/ILogger";
8+
import { ConfigServer } from "../servers/ConfigServer";
9+
import { DatabaseServer } from "../servers/DatabaseServer";
310
import { HashUtil } from "../utils/HashUtil";
411
import { RandomUtil } from "../utils/RandomUtil";
5-
import { BotGeneratorHelper } from "../helpers/BotGeneratorHelper";
6-
import { BotWeaponGenerator } from "./BotWeaponGenerator";
712
import { BotLootGenerator } from "./BotLootGenerator";
8-
import { ILogger } from "../models/spt/utils/ILogger";
9-
import { DatabaseServer } from "../servers/DatabaseServer";
10-
import { WeightedRandomHelper } from "../helpers/WeightedRandomHelper";
13+
import { BotWeaponGenerator } from "./BotWeaponGenerator";
1114
export declare class BotInventoryGenerator {
1215
protected logger: ILogger;
1316
protected hashUtil: HashUtil;
@@ -17,8 +20,14 @@ export declare class BotInventoryGenerator {
1720
protected botLootGenerator: BotLootGenerator;
1821
protected botGeneratorHelper: BotGeneratorHelper;
1922
protected weightedRandomHelper: WeightedRandomHelper;
20-
constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, databaseServer: DatabaseServer, botWeaponGenerator: BotWeaponGenerator, botLootGenerator: BotLootGenerator, botGeneratorHelper: BotGeneratorHelper, weightedRandomHelper: WeightedRandomHelper);
21-
generateInventory(sessionId: string, templateInventory: Inventory, equipmentChances: Chances, generation: Generation, botRole: string, isPmc: boolean): PmcInventory;
23+
protected configServer: ConfigServer;
24+
protected botConfig: IBotConfig;
25+
constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, databaseServer: DatabaseServer, botWeaponGenerator: BotWeaponGenerator, botLootGenerator: BotLootGenerator, botGeneratorHelper: BotGeneratorHelper, weightedRandomHelper: WeightedRandomHelper, configServer: ConfigServer);
26+
generateInventory(sessionId: string, templateInventory: Inventory, equipmentChances: Chances, itemGenerationLimitsMinMax: Generation, botRole: string, isPmc: boolean): PmcInventory;
27+
protected addWeaponAndMagazinesToInventory(sessionId: string, weaponSlot: {
28+
slot: EquipmentSlots;
29+
shouldSpawn: boolean;
30+
}, templateInventory: Inventory, botInventory: PmcInventory, equipmentChances: Chances, botRole: string, isPmc: boolean, itemGenerationLimitsMinMax: Generation): void;
2231
protected generateEquipment(equipmentSlot: string, equipmentPool: Record<string, number>, modPool: Mods, spawnChances: Chances, botRole: string, inventory: PmcInventory): void;
2332
protected generateInventoryBase(): PmcInventory;
2433
}

types/generators/BotLootGenerator.d.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { BotGeneratorHelper } from "../helpers/BotGeneratorHelper";
2+
import { BotWeaponGeneratorHelper } from "../helpers/BotWeaponGeneratorHelper";
23
import { HandbookHelper } from "../helpers/HandbookHelper";
34
import { Inventory as PmcInventory } from "../models/eft/common/tables/IBotBase";
45
import { Chances, Inventory, ItemMinMax, ModsChances } from "../models/eft/common/tables/IBotType";
@@ -20,10 +21,11 @@ export declare class BotLootGenerator {
2021
protected handbookHelper: HandbookHelper;
2122
protected botGeneratorHelper: BotGeneratorHelper;
2223
protected botWeaponGenerator: BotWeaponGenerator;
24+
protected botWeaponGeneratorHelper: BotWeaponGeneratorHelper;
2325
protected botLootCacheService: BotLootCacheService;
2426
protected configServer: ConfigServer;
2527
protected botConfig: IBotConfig;
26-
constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, databaseServer: DatabaseServer, handbookHelper: HandbookHelper, botGeneratorHelper: BotGeneratorHelper, botWeaponGenerator: BotWeaponGenerator, botLootCacheService: BotLootCacheService, configServer: ConfigServer);
28+
constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, databaseServer: DatabaseServer, handbookHelper: HandbookHelper, botGeneratorHelper: BotGeneratorHelper, botWeaponGenerator: BotWeaponGenerator, botWeaponGeneratorHelper: BotWeaponGeneratorHelper, botLootCacheService: BotLootCacheService, configServer: ConfigServer);
2729
generateLoot(sessionId: string, templateInventory: Inventory, itemCounts: ItemMinMax, isPmc: boolean, botRole: string, botInventory: PmcInventory, equipmentChances: Chances): void;
2830
protected getRandomisedCount(min: number, max: number, nValue: number): number;
2931
/**

0 commit comments

Comments
 (0)