d39c7f30f8
Removed: nvgIsActiveChancePercent Added: nvgIsActiveChanceDayPercent nvgIsActiveChanceNightPercent
132 lines
4.2 KiB
TypeScript
132 lines
4.2 KiB
TypeScript
import { MinMaxWithWhitelist } from "../../../models/eft/common/tables/IBotType";
|
|
import { MinMax } from "../../common/MinMax";
|
|
import { IBaseConfig } from "./IBaseConfig";
|
|
import { IBotDurability } from "./IBotDurability";
|
|
import { IPmcConfig } from "./IPmcConfig";
|
|
|
|
export interface IBotConfig extends IBaseConfig
|
|
{
|
|
kind: "aki-bot"
|
|
/** How many variants of each bot should be generated on raid start */
|
|
presetBatch: PresetBatch
|
|
/** What bot types should be classified as bosses */
|
|
bosses: string[]
|
|
/** Control weapon/armor durability min/max values for each bot type */
|
|
durability: IBotDurability
|
|
/** Control the weighting of how expensive an average loot item is on a PMC or Scav */
|
|
lootNValue: LootNvalue
|
|
/** Control what bots are added to a bots revenge list key: bottype, value: bottypes to revenge on seeing their death */
|
|
revenge: Record<string, string[]>
|
|
/** PMC bot specific config settings */
|
|
pmc: IPmcConfig
|
|
/** Control how many items are allowed to spawn on a bot
|
|
* key: bottype, value: <key: itemTpl: value: max item count> */
|
|
itemSpawnLimits: Record<string, Record<string, number>>
|
|
/** Blacklist/whitelist items on a bot */
|
|
equipment: Record<string, EquipmentFilters>
|
|
/** Show a bots botType value after their name */
|
|
showTypeInNickname: boolean
|
|
/** Max number of bots that can be spawned in a raid at any one time */
|
|
maxBotCap: Record<string, number>
|
|
chanceAssaultScavHasPlayerScavName: number;
|
|
/** How many stacks of secret ammo should a bot have in its bot secure container */
|
|
secureContainerAmmoStackCount: number
|
|
/** Batch generation size when type not available in cache */
|
|
botGenerationBatchSizePerType: number
|
|
}
|
|
|
|
export interface PresetBatch
|
|
{
|
|
assault: number
|
|
bossBully: number
|
|
bossGluhar: number
|
|
bossKilla: number
|
|
bossKojaniy: number
|
|
bossSanitar: number
|
|
bossTagilla: number
|
|
bossKnight: number
|
|
bossTest: number
|
|
cursedAssault: number
|
|
followerBully: number
|
|
followerGluharAssault: number
|
|
followerGluharScout: number
|
|
followerGluharSecurity: number
|
|
followerGluharSnipe: number
|
|
followerKojaniy: number
|
|
followerSanitar: number
|
|
followerTagilla: number
|
|
followerBirdEye: number
|
|
followerBigPipe: number
|
|
followerTest: number
|
|
marksman: number
|
|
pmcBot: number
|
|
sectantPriest: number
|
|
sectantWarrior: number
|
|
gifter: number
|
|
test: number
|
|
exUsec: number
|
|
}
|
|
|
|
export interface LootNvalue
|
|
{
|
|
scav: number
|
|
pmc: number
|
|
}
|
|
|
|
export interface EquipmentFilters
|
|
{
|
|
weaponModLimits: ModLimits
|
|
weaponSightWhitelist: Record<string, string[]>
|
|
faceShieldIsActiveChancePercent?: number;
|
|
lightIsActiveDayChancePercent?: number;
|
|
lightIsActiveNightChancePercent?: number;
|
|
laserIsActiveChancePercent?: number;
|
|
nvgIsActiveChanceDayPercent?: number;
|
|
nvgIsActiveChanceNightPercent?: number;
|
|
randomisation: RandomisationDetails[]
|
|
blacklist: EquipmentFilterDetails[]
|
|
whitelist: EquipmentFilterDetails[]
|
|
clothing: WeightingAdjustmentDetails[]
|
|
weightingAdjustments: WeightingAdjustmentDetails[]
|
|
}
|
|
|
|
export interface ModLimits
|
|
{
|
|
/** How many scopes are allowed on a weapon - hard coded to work with OPTIC_SCOPE, ASSAULT_SCOPE, COLLIMATOR, COMPACT_COLLIMATOR */
|
|
scopeLimit?: number
|
|
/** How many lasers or lights are allowed on a weapon - hard coded to work with TACTICAL_COMBO, and FLASHLIGHT */
|
|
lightLaserLimit?: number
|
|
}
|
|
|
|
export interface RandomisationDetails
|
|
{
|
|
levelRange: MinMax
|
|
generation?: Record<string, MinMaxWithWhitelist>
|
|
randomisedWeaponModSlots?: string[]
|
|
randomisedArmorSlots?: string[]
|
|
/** Equipment chances */
|
|
equipment?: Record<string, number>
|
|
/** Modc chances */
|
|
mods?: Record<string, number>
|
|
}
|
|
|
|
export interface EquipmentFilterDetails
|
|
{
|
|
levelRange: MinMax
|
|
equipment: Record<string, string[]>
|
|
cartridge: Record<string, string[]>
|
|
}
|
|
|
|
export interface WeightingAdjustmentDetails
|
|
{
|
|
levelRange: MinMax
|
|
ammo?: AdjustmentDetails
|
|
equipment?: AdjustmentDetails
|
|
clothing?: AdjustmentDetails
|
|
}
|
|
|
|
export interface AdjustmentDetails
|
|
{
|
|
add: Record<string, Record<string, number>>
|
|
edit: Record<string, Record<string, number>>
|
|
} |