update for see item value mod
This commit is contained in:
parent
99bd83330a
commit
f3ed4e59ae
Binary file not shown.
@ -1,46 +0,0 @@
|
|||||||
import { BotGeneratorHelper } from "../helpers/BotGeneratorHelper";
|
|
||||||
import { ItemHelper } from "../helpers/ItemHelper";
|
|
||||||
import { WeightedRandomHelper } from "../helpers/WeightedRandomHelper";
|
|
||||||
import { Inventory as PmcInventory } from "../models/eft/common/IPmcData";
|
|
||||||
import { MinMax, Mods, ModsChances } from "../models/eft/common/tables/IBotType";
|
|
||||||
import { Item } from "../models/eft/common/tables/IItem";
|
|
||||||
import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem";
|
|
||||||
import { ILogger } from "../models/spt/utils/ILogger";
|
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
|
||||||
import { HashUtil } from "../utils/HashUtil";
|
|
||||||
import { RandomUtil } from "../utils/RandomUtil";
|
|
||||||
export declare class BotWeaponGenerator {
|
|
||||||
protected logger: ILogger;
|
|
||||||
protected hashUtil: HashUtil;
|
|
||||||
protected databaseServer: DatabaseServer;
|
|
||||||
protected itemHelper: ItemHelper;
|
|
||||||
protected weightedRandomHelper: WeightedRandomHelper;
|
|
||||||
protected botGeneratorHelper: BotGeneratorHelper;
|
|
||||||
protected randomUtil: RandomUtil;
|
|
||||||
constructor(logger: ILogger, hashUtil: HashUtil, databaseServer: DatabaseServer, itemHelper: ItemHelper, weightedRandomHelper: WeightedRandomHelper, botGeneratorHelper: BotGeneratorHelper, randomUtil: RandomUtil);
|
|
||||||
generateWeapon(equipmentSlot: string, weaponPool: Record<string, number>, modPool: Mods, modChances: ModsChances, magCounts: MinMax, botRole: string, isPmc: boolean, inventory: PmcInventory): void;
|
|
||||||
/** Checks if all required slots are occupied on a weapon and all it's mods */
|
|
||||||
protected isWeaponValid(itemList: Item[]): boolean;
|
|
||||||
/**
|
|
||||||
* Generates extra magazines or bullets (if magazine is internal) and adds them to TacticalVest and Pockets.
|
|
||||||
* Additionally, adds extra bullets to SecuredContainer
|
|
||||||
*
|
|
||||||
* @param {*} weaponMods
|
|
||||||
* @param {*} weaponTemplate
|
|
||||||
* @param {*} magCounts
|
|
||||||
* @param {*} ammoTpl
|
|
||||||
* @returns
|
|
||||||
*/
|
|
||||||
protected generateExtraMagazines(weaponMods: Item[], weaponTemplate: ITemplateItem, magCounts: MinMax, ammoTpl: string, inventory: PmcInventory): void;
|
|
||||||
protected addBullets(ammoTpl: string, bulletCount: number, inventory: PmcInventory): void;
|
|
||||||
/**
|
|
||||||
* Finds and returns tpl of ammo that should be used, while making sure it's compatible
|
|
||||||
*
|
|
||||||
* @param {*} weaponMods
|
|
||||||
* @param {*} weaponTemplate
|
|
||||||
* @returns
|
|
||||||
*/
|
|
||||||
protected getCompatibleAmmo(weaponMods: Item[], weaponTemplate: ITemplateItem): string;
|
|
||||||
/** Fill existing magazines to full, while replacing their contents with specified ammo */
|
|
||||||
protected fillExistingMagazines(weaponMods: Item[], magazine: Item, ammoTpl: string): void;
|
|
||||||
}
|
|
@ -1,401 +0,0 @@
|
|||||||
export interface ITemplateItem {
|
|
||||||
_id: string;
|
|
||||||
_name: string;
|
|
||||||
_parent: string;
|
|
||||||
_type: string;
|
|
||||||
_props: Props;
|
|
||||||
_proto: string;
|
|
||||||
}
|
|
||||||
export interface Props {
|
|
||||||
Name: string;
|
|
||||||
ShortName: string;
|
|
||||||
Description: string;
|
|
||||||
Weight: number;
|
|
||||||
BackgroundColor: string;
|
|
||||||
Width: number;
|
|
||||||
Height: number;
|
|
||||||
StackMaxSize: number;
|
|
||||||
Rarity?: string;
|
|
||||||
SpawnChance?: number;
|
|
||||||
CreditsPrice?: number;
|
|
||||||
ItemSound: string;
|
|
||||||
Prefab: Prefab;
|
|
||||||
UsePrefab: Prefab;
|
|
||||||
StackObjectsCount: number;
|
|
||||||
NotShownInSlot: boolean;
|
|
||||||
ExaminedByDefault: boolean;
|
|
||||||
ExamineTime: number;
|
|
||||||
IsUndiscardable: boolean;
|
|
||||||
IsUnsaleable: boolean;
|
|
||||||
IsUnbuyable: boolean;
|
|
||||||
IsUngivable: boolean;
|
|
||||||
IsLockedafterEquip: boolean;
|
|
||||||
QuestItem: boolean;
|
|
||||||
LootExperience: number;
|
|
||||||
ExamineExperience: number;
|
|
||||||
HideEntrails: boolean;
|
|
||||||
RepairCost: number;
|
|
||||||
RepairSpeed: number;
|
|
||||||
ExtraSizeLeft: number;
|
|
||||||
ExtraSizeRight: number;
|
|
||||||
ExtraSizeUp: number;
|
|
||||||
ExtraSizeDown: number;
|
|
||||||
ExtraSizeForceAdd: boolean;
|
|
||||||
MergesWithChildren: boolean;
|
|
||||||
CanSellOnRagfair: boolean;
|
|
||||||
CanRequireOnRagfair: boolean;
|
|
||||||
ConflictingItems: string[];
|
|
||||||
DiscardLimit: number;
|
|
||||||
Unlootable: boolean;
|
|
||||||
UnlootableFromSlot: string;
|
|
||||||
UnlootableFromSide: string[];
|
|
||||||
AnimationVariantsNumber: number;
|
|
||||||
DiscardingBlock: boolean;
|
|
||||||
RagFairCommissionModifier: number;
|
|
||||||
IsAlwaysAvailableForInsurance: boolean;
|
|
||||||
Grids: Grid[];
|
|
||||||
Slots: Slot[];
|
|
||||||
CanPutIntoDuringTheRaid: boolean;
|
|
||||||
CantRemoveFromSlotsDuringRaid: string[];
|
|
||||||
weapClass: string;
|
|
||||||
weapUseType: string;
|
|
||||||
ammoCaliber: string;
|
|
||||||
Durability: number;
|
|
||||||
MaxDurability: number;
|
|
||||||
OperatingResource: number;
|
|
||||||
RepairComplexity: number;
|
|
||||||
durabSpawnMin: number;
|
|
||||||
durabSpawnMax: number;
|
|
||||||
isFastReload: boolean;
|
|
||||||
RecoilForceUp: number;
|
|
||||||
RecoilForceBack: number;
|
|
||||||
Convergence: number;
|
|
||||||
RecoilAngle: number;
|
|
||||||
weapFireType: string[];
|
|
||||||
RecolDispersion: number;
|
|
||||||
SingleFireRate: number;
|
|
||||||
CanQueueSecondShot: boolean;
|
|
||||||
bFirerate: number;
|
|
||||||
Ergonomics: number;
|
|
||||||
Velocity: number;
|
|
||||||
bEffDist: number;
|
|
||||||
bHearDist: number;
|
|
||||||
isChamberLoad: boolean;
|
|
||||||
chamberAmmoCount: number;
|
|
||||||
isBoltCatch: boolean;
|
|
||||||
defMagType: string;
|
|
||||||
defAmmo: string;
|
|
||||||
AdjustCollimatorsToTrajectory: boolean;
|
|
||||||
shotgunDispersion: number;
|
|
||||||
Chambers: Chamber[];
|
|
||||||
CameraRecoil: number;
|
|
||||||
CameraSnap: number;
|
|
||||||
ReloadMode: string;
|
|
||||||
CenterOfImpact: number;
|
|
||||||
AimPlane: number;
|
|
||||||
DeviationCurve: number;
|
|
||||||
DeviationMax: number;
|
|
||||||
Foldable: boolean;
|
|
||||||
Retractable: boolean;
|
|
||||||
TacticalReloadStiffnes: Xyz;
|
|
||||||
TacticalReloadFixation: number;
|
|
||||||
RecoilCenter: Xyz;
|
|
||||||
RotationCenter: Xyz;
|
|
||||||
RotationCenterNoStock: Xyz;
|
|
||||||
SizeReduceRight: number;
|
|
||||||
FoldedSlot: string;
|
|
||||||
CompactHandling: boolean;
|
|
||||||
SightingRange: number;
|
|
||||||
MinRepairDegradation: number;
|
|
||||||
MaxRepairDegradation: number;
|
|
||||||
MinRepairKitDegradation: number;
|
|
||||||
MaxRepairKitDegradation: number;
|
|
||||||
IronSightRange: number;
|
|
||||||
MustBoltBeOpennedForExternalReload: boolean;
|
|
||||||
MustBoltBeOpennedForInternalReload: boolean;
|
|
||||||
BoltAction: boolean;
|
|
||||||
HipAccuracyRestorationDelay: number;
|
|
||||||
HipAccuracyRestorationSpeed: number;
|
|
||||||
HipInnaccuracyGain: number;
|
|
||||||
ManualBoltCatch: boolean;
|
|
||||||
BurstShotsCount: number;
|
|
||||||
BaseMalfunctionChance: number;
|
|
||||||
AllowJam: boolean;
|
|
||||||
AllowFeed: boolean;
|
|
||||||
AllowMisfire: boolean;
|
|
||||||
AllowSlide: boolean;
|
|
||||||
DurabilityBurnRatio: number;
|
|
||||||
HeatFactorGun: number;
|
|
||||||
CoolFactorGun: number;
|
|
||||||
CoolFactorGunMods: number;
|
|
||||||
HeatFactorByShot: number;
|
|
||||||
AllowOverheat: boolean;
|
|
||||||
DoubleActionAccuracyPenalty: number;
|
|
||||||
RecoilPosZMult: number;
|
|
||||||
ShotgunDispersion: number;
|
|
||||||
StackMinRandom: number;
|
|
||||||
StackMaxRandom: number;
|
|
||||||
StackSlots: StackSlot[];
|
|
||||||
SearchSound: string;
|
|
||||||
BlocksArmorVest: boolean;
|
|
||||||
RigLayoutName: string;
|
|
||||||
armorZone: string[];
|
|
||||||
armorClass: number;
|
|
||||||
speedPenaltyPercent: number;
|
|
||||||
mousePenalty: number;
|
|
||||||
weaponErgonomicPenalty: number;
|
|
||||||
BluntThroughput: number;
|
|
||||||
ArmorMaterial: string;
|
|
||||||
medUseTime: number;
|
|
||||||
medEffectType: string;
|
|
||||||
MaxHpResource: number;
|
|
||||||
hpResourceRate: number;
|
|
||||||
StimulatorBuffs: string;
|
|
||||||
effects_health: EffectsHealth;
|
|
||||||
effects_damage: EffectsDamage;
|
|
||||||
knifeHitDelay: number;
|
|
||||||
knifeHitSlashRate: number;
|
|
||||||
knifeHitStabRate: number;
|
|
||||||
knifeHitRadius: number;
|
|
||||||
knifeHitSlashDam: number;
|
|
||||||
knifeHitStabDam: number;
|
|
||||||
knifeDurab: number;
|
|
||||||
PrimaryDistance: number;
|
|
||||||
SecondryDistance: number;
|
|
||||||
SlashPenetration: number;
|
|
||||||
StabPenetration: number;
|
|
||||||
PrimaryConsumption: number;
|
|
||||||
SecondryConsumption: number;
|
|
||||||
DeflectionConsumption: number;
|
|
||||||
MaxResource: number;
|
|
||||||
AppliedTrunkRotation: Xyz;
|
|
||||||
AppliedHeadRotation: Xyz;
|
|
||||||
DisplayOnModel: boolean;
|
|
||||||
AdditionalAnimationLayer: number;
|
|
||||||
StaminaBurnRate: number;
|
|
||||||
ColliderScaleMultiplier: Xyz;
|
|
||||||
ammoType: string;
|
|
||||||
InitialSpeed: number;
|
|
||||||
BallisticCoeficient: number;
|
|
||||||
BulletMassGram: number;
|
|
||||||
BulletDiameterMilimeters: number;
|
|
||||||
Damage: number;
|
|
||||||
ammoAccr: number;
|
|
||||||
ammoRec: number;
|
|
||||||
ammoDist: number;
|
|
||||||
buckshotBullets: number;
|
|
||||||
PenetrationPower: number;
|
|
||||||
PenetrationPowerDiviation: number;
|
|
||||||
ammoHear: number;
|
|
||||||
ammoSfx: string;
|
|
||||||
MisfireChance: number;
|
|
||||||
MinFragmentsCount: number;
|
|
||||||
MaxFragmentsCount: number;
|
|
||||||
ammoShiftChance: number;
|
|
||||||
casingName: string;
|
|
||||||
casingEjectPower: number;
|
|
||||||
casingMass: number;
|
|
||||||
casingSounds: string;
|
|
||||||
ProjectileCount: number;
|
|
||||||
PenetrationChance: number;
|
|
||||||
RicochetChance: number;
|
|
||||||
FragmentationChance: number;
|
|
||||||
Deterioration: number;
|
|
||||||
SpeedRetardation: number;
|
|
||||||
Tracer: boolean;
|
|
||||||
TracerColor: string;
|
|
||||||
TracerDistance: number;
|
|
||||||
ArmorDamage: number;
|
|
||||||
Caliber: string;
|
|
||||||
StaminaBurnPerDamage: number;
|
|
||||||
HeavyBleedingDelta: number;
|
|
||||||
LightBleedingDelta: number;
|
|
||||||
ShowBullet: boolean;
|
|
||||||
HasGrenaderComponent: boolean;
|
|
||||||
FuzeArmTimeSec: number;
|
|
||||||
ExplosionStrength: number;
|
|
||||||
MinExplosionDistance: number;
|
|
||||||
MaxExplosionDistance: number;
|
|
||||||
FragmentsCount: number;
|
|
||||||
FragmentType: string;
|
|
||||||
ShowHitEffectOnExplode: boolean;
|
|
||||||
ExplosionType: string;
|
|
||||||
AmmoLifeTimeSec: number;
|
|
||||||
Contusion: Contusion;
|
|
||||||
ArmorDistanceDistanceDamage: Xyz;
|
|
||||||
Blindness: Xyz;
|
|
||||||
IsLightAndSoundShot: boolean;
|
|
||||||
LightAndSoundShotAngle: number;
|
|
||||||
LightAndSoundShotSelfContusionTime: number;
|
|
||||||
LightAndSoundShotSelfContusionStrength: number;
|
|
||||||
MalfMisfireChance: number;
|
|
||||||
DurabilityBurnModificator: number;
|
|
||||||
HeatFactor: number;
|
|
||||||
MalfFeedChance: number;
|
|
||||||
Accuracy: number;
|
|
||||||
Recoil: number;
|
|
||||||
Loudness: number;
|
|
||||||
EffectiveDistance: number;
|
|
||||||
RaidModdable: boolean;
|
|
||||||
ToolModdable: boolean;
|
|
||||||
BlocksFolding: boolean;
|
|
||||||
BlocksCollapsible: boolean;
|
|
||||||
IsAnimated: boolean;
|
|
||||||
HasShoulderContact: boolean;
|
|
||||||
DoubleActionAccuracyPenaltyMult: number;
|
|
||||||
magAnimationIndex: number;
|
|
||||||
Cartridges: Cartridge[];
|
|
||||||
CanFast: boolean;
|
|
||||||
CanHit: boolean;
|
|
||||||
CanAdmin: boolean;
|
|
||||||
LoadUnloadModifier: number;
|
|
||||||
CheckTimeModifier: number;
|
|
||||||
CheckOverride: number;
|
|
||||||
ReloadMagType: string;
|
|
||||||
VisibleAmmoRangesString: string;
|
|
||||||
MalfunctionChance: number;
|
|
||||||
TagColor: number;
|
|
||||||
TagName: string;
|
|
||||||
MaximumNumberOfUsage: number;
|
|
||||||
CustomAimPlane: string;
|
|
||||||
sightModType: string;
|
|
||||||
aimingSensitivity: number;
|
|
||||||
SightModesCount: number;
|
|
||||||
OpticCalibrationDistances: number[];
|
|
||||||
ScopesCount: number;
|
|
||||||
AimSensitivity: number[][];
|
|
||||||
ModesCount: number[];
|
|
||||||
Zooms: number[][];
|
|
||||||
CalibrationDistances: number[][];
|
|
||||||
Intensity: number;
|
|
||||||
Mask: string;
|
|
||||||
MaskSize: number;
|
|
||||||
NoiseIntensity: number;
|
|
||||||
NoiseScale: number;
|
|
||||||
Color: Color;
|
|
||||||
DiffuseIntensity: number;
|
|
||||||
HasHinge: boolean;
|
|
||||||
Resource?: number;
|
|
||||||
CoolFactor?: number;
|
|
||||||
foodUseTime?: number;
|
|
||||||
foodEffectType?: string;
|
|
||||||
MaxRepairResource: number;
|
|
||||||
RepairQuality: number;
|
|
||||||
RepairType: string;
|
|
||||||
TargetItemFilter: string[];
|
|
||||||
apResource: number;
|
|
||||||
krResource: number;
|
|
||||||
}
|
|
||||||
export interface Prefab {
|
|
||||||
path: string;
|
|
||||||
rcid: string;
|
|
||||||
}
|
|
||||||
export interface Grid {
|
|
||||||
_name: string;
|
|
||||||
_id: string;
|
|
||||||
_parent: string;
|
|
||||||
_props: GridProps;
|
|
||||||
_proto: string;
|
|
||||||
}
|
|
||||||
export interface GridProps {
|
|
||||||
filters: GridFilter[];
|
|
||||||
cellsH: number;
|
|
||||||
cellsV: number;
|
|
||||||
minCount: number;
|
|
||||||
maxCount: number;
|
|
||||||
maxWeight: number;
|
|
||||||
isSortingTable: boolean;
|
|
||||||
}
|
|
||||||
export interface GridFilter {
|
|
||||||
Filter: string[];
|
|
||||||
ExcludedFilter: string[];
|
|
||||||
}
|
|
||||||
export interface Slot {
|
|
||||||
_name: string;
|
|
||||||
_id: string;
|
|
||||||
_parent: string;
|
|
||||||
_props: SlotProps;
|
|
||||||
_required: boolean;
|
|
||||||
_mergeSlotWithChildren: boolean;
|
|
||||||
_proto: string;
|
|
||||||
}
|
|
||||||
export interface SlotProps {
|
|
||||||
filters: Filter[];
|
|
||||||
}
|
|
||||||
export interface Chamber {
|
|
||||||
_name: string;
|
|
||||||
_id: string;
|
|
||||||
_parent: string;
|
|
||||||
_props: ChamberProps;
|
|
||||||
_required: boolean;
|
|
||||||
_mergeSlotWithChildren: boolean;
|
|
||||||
_proto: string;
|
|
||||||
}
|
|
||||||
export interface ChamberProps {
|
|
||||||
filters: FilterProps[];
|
|
||||||
}
|
|
||||||
export interface FilterProps {
|
|
||||||
Filter: string[];
|
|
||||||
}
|
|
||||||
export interface Xyz {
|
|
||||||
x: number;
|
|
||||||
y: number;
|
|
||||||
z: number;
|
|
||||||
}
|
|
||||||
export interface StackSlot {
|
|
||||||
_name?: string;
|
|
||||||
_id: string;
|
|
||||||
_sptTpl: string;
|
|
||||||
parent: string;
|
|
||||||
location: any;
|
|
||||||
slotId: string;
|
|
||||||
_max_count: number;
|
|
||||||
_props?: StackSlotProps;
|
|
||||||
_proto?: string;
|
|
||||||
upd: any;
|
|
||||||
}
|
|
||||||
export interface StackSlotProps {
|
|
||||||
filters: Filter[];
|
|
||||||
}
|
|
||||||
export interface EffectsHealth {
|
|
||||||
Hydration: Hydration;
|
|
||||||
}
|
|
||||||
export interface Hydration {
|
|
||||||
value: number;
|
|
||||||
}
|
|
||||||
export interface EffectsDamage {
|
|
||||||
Pain: Pain;
|
|
||||||
Contusion: Contusion;
|
|
||||||
}
|
|
||||||
export interface Pain {
|
|
||||||
delay: number;
|
|
||||||
duration: number;
|
|
||||||
fadeOut: number;
|
|
||||||
}
|
|
||||||
export interface Contusion {
|
|
||||||
delay: number;
|
|
||||||
duration: number;
|
|
||||||
fadeOut: number;
|
|
||||||
}
|
|
||||||
export interface Cartridge {
|
|
||||||
_name: string;
|
|
||||||
_id: string;
|
|
||||||
_parent: string;
|
|
||||||
_max_count: number;
|
|
||||||
_props: CartridgeProps;
|
|
||||||
_proto: string;
|
|
||||||
}
|
|
||||||
export interface CartridgeProps {
|
|
||||||
filters: Filter[];
|
|
||||||
}
|
|
||||||
export interface Filter {
|
|
||||||
Shift?: number;
|
|
||||||
Filter: string[];
|
|
||||||
AnimationIndex?: number;
|
|
||||||
}
|
|
||||||
export interface Color {
|
|
||||||
r: number;
|
|
||||||
g: number;
|
|
||||||
b: number;
|
|
||||||
a: number;
|
|
||||||
}
|
|
@ -1,25 +0,0 @@
|
|||||||
export declare enum HideoutAreasEnum {
|
|
||||||
NOTSET = -1,
|
|
||||||
VENTS = 0,
|
|
||||||
SECURITY = 1,
|
|
||||||
LAVATORY = 2,
|
|
||||||
STASH = 3,
|
|
||||||
GENERATOR = 4,
|
|
||||||
HEATING = 5,
|
|
||||||
WATER_COLLECTOR = 6,
|
|
||||||
MEDSTATION = 7,
|
|
||||||
NUTRITION_UNIT = 8,
|
|
||||||
REST_SPACE = 9,
|
|
||||||
WORKBENCH = 10,
|
|
||||||
INTEL_CENTER = 11,
|
|
||||||
SHOOTING_RANGE = 12,
|
|
||||||
LIBRARY = 13,
|
|
||||||
SCAV_CASE = 14,
|
|
||||||
ILLUMINATION = 15,
|
|
||||||
PLACE_OF_FAME = 16,
|
|
||||||
AIR_FILTERING = 17,
|
|
||||||
SOLAR_POWER = 18,
|
|
||||||
BOOZE_GENERATOR = 19,
|
|
||||||
BITCOIN_FARM = 20,
|
|
||||||
CHRISTMAS_TREE = 21
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
export declare enum MemberCategory {
|
|
||||||
Default = 0,
|
|
||||||
Developer = 1,
|
|
||||||
UniqueId = 2,
|
|
||||||
Trader = 4,
|
|
||||||
Group = 8,
|
|
||||||
System = 16,
|
|
||||||
ChatModerator = 32,
|
|
||||||
ChatModeratorWithPermanentBan = 64,
|
|
||||||
UnitTest = 128,
|
|
||||||
Sherpa = 256,
|
|
||||||
Emissary = 512
|
|
||||||
}
|
|
@ -1,10 +0,0 @@
|
|||||||
export declare const enum Traders {
|
|
||||||
PRAPOR = "54cb50c76803fa8b248b4571",
|
|
||||||
THERAPIST = "54cb57776803fa99248b456e",
|
|
||||||
FENCE = "579dc571d53a0658a154fbec",
|
|
||||||
SKIER = "58330581ace78e27b8b10cee",
|
|
||||||
PEACEKEEPER = "5935c25fb3acc3127c3d8cd9",
|
|
||||||
MECHANIC = "5a7c2eca46aef81a7ca2145d",
|
|
||||||
RAGMAN = "5ac3b934156ae10c4430e83c",
|
|
||||||
JAEGER = "5c0647fdd443bc2504c2d371"
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
import { VFS } from "./VFS";
|
|
||||||
import { JsonUtil } from "./JsonUtil";
|
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
|
||||||
import { ImageRouter } from "../routers/ImageRouter";
|
|
||||||
import { OnLoad } from "../di/OnLoad";
|
|
||||||
import { ILogger } from "../models/spt/utils/ILogger";
|
|
||||||
export declare class DatabaseImporter extends OnLoad {
|
|
||||||
protected logger: ILogger;
|
|
||||||
protected vfs: VFS;
|
|
||||||
protected jsonUtil: JsonUtil;
|
|
||||||
protected databaseServer: DatabaseServer;
|
|
||||||
protected imageRouter: ImageRouter;
|
|
||||||
constructor(logger: ILogger, vfs: VFS, jsonUtil: JsonUtil, databaseServer: DatabaseServer, imageRouter: ImageRouter);
|
|
||||||
onLoad(): void;
|
|
||||||
getRoute(): string;
|
|
||||||
loadRecursive(filepath: string): any;
|
|
||||||
loadImages(filepath: string): void;
|
|
||||||
}
|
|
Binary file not shown.
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "SeeItemValue",
|
"name": "SeeItemValue",
|
||||||
"author": "KcY",
|
"author": "KcY",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"license": "NCSA Open Source",
|
"license": "NCSA Open Source",
|
||||||
"main": "src/mod.js",
|
"main": "src/mod.js",
|
||||||
"akiVersion": "3.0.0",
|
"akiVersion": "3.0.0",
|
@ -84,6 +84,12 @@ class SeeItemValue implements IMod
|
|||||||
let sMutli = 1;
|
let sMutli = 1;
|
||||||
let parentId = "";
|
let parentId = "";
|
||||||
|
|
||||||
|
// if roubles return 1 and dont check traders.
|
||||||
|
if (id === "5449016a4bdc2d6f028b456f")
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
// if TraderPrice in cfg is False get price from flea AVG
|
// if TraderPrice in cfg is False get price from flea AVG
|
||||||
if (this.cfg.TraderPrice === false)
|
if (this.cfg.TraderPrice === false)
|
||||||
{
|
{
|
@ -1,3 +1,4 @@
|
|||||||
|
import { GameHelper } from "../helpers/GameHelper";
|
||||||
import { HttpServerHelper } from "../helpers/HttpServerHelper";
|
import { HttpServerHelper } from "../helpers/HttpServerHelper";
|
||||||
import { ProfileHelper } from "../helpers/ProfileHelper";
|
import { ProfileHelper } from "../helpers/ProfileHelper";
|
||||||
import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData";
|
import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData";
|
||||||
@ -14,9 +15,10 @@ export declare class GameController {
|
|||||||
protected watermark: Watermark;
|
protected watermark: Watermark;
|
||||||
protected httpServerHelper: HttpServerHelper;
|
protected httpServerHelper: HttpServerHelper;
|
||||||
protected profileHelper: ProfileHelper;
|
protected profileHelper: ProfileHelper;
|
||||||
|
protected gameHelper: GameHelper;
|
||||||
protected configServer: ConfigServer;
|
protected configServer: ConfigServer;
|
||||||
protected httpConfig: IHttpConfig;
|
protected httpConfig: IHttpConfig;
|
||||||
constructor(logger: ILogger, watermark: Watermark, httpServerHelper: HttpServerHelper, profileHelper: ProfileHelper, configServer: ConfigServer);
|
constructor(logger: ILogger, watermark: Watermark, httpServerHelper: HttpServerHelper, profileHelper: ProfileHelper, gameHelper: GameHelper, configServer: ConfigServer);
|
||||||
gameStart(_url: string, _info: IEmptyRequestData, sessionID: string): void;
|
gameStart(_url: string, _info: IEmptyRequestData, sessionID: string): void;
|
||||||
protected addMissingBonusesProperty(pmcProfile: IPmcData): void;
|
protected addMissingBonusesProperty(pmcProfile: IPmcData): void;
|
||||||
protected addMissingRepeatableQuestsProperty(pmcProfile: IPmcData): void;
|
protected addMissingRepeatableQuestsProperty(pmcProfile: IPmcData): void;
|
||||||
@ -24,7 +26,6 @@ export declare class GameController {
|
|||||||
protected addMissingAkiVersionTagToProfile(fullProfile: IAkiProfile): void;
|
protected addMissingAkiVersionTagToProfile(fullProfile: IAkiProfile): void;
|
||||||
protected addMissingArmorRepairSkill(pmcProfile: IPmcData): void;
|
protected addMissingArmorRepairSkill(pmcProfile: IPmcData): void;
|
||||||
protected fixNullTraderSalesSums(pmcProfile: IPmcData): void;
|
protected fixNullTraderSalesSums(pmcProfile: IPmcData): void;
|
||||||
protected removeDanglingConditionCounters(pmcProfile: IPmcData): void;
|
|
||||||
protected removeDanglingBackendCounters(pmcProfile: IPmcData): void;
|
protected removeDanglingBackendCounters(pmcProfile: IPmcData): void;
|
||||||
getGameConfig(sessionID: string): IGameConfigResponse;
|
getGameConfig(sessionID: string): IGameConfigResponse;
|
||||||
getServer(): any[];
|
getServer(): any[];
|
@ -3,10 +3,12 @@ import { InventoryHelper } from "../helpers/InventoryHelper";
|
|||||||
import { PaymentHelper } from "../helpers/PaymentHelper";
|
import { PaymentHelper } from "../helpers/PaymentHelper";
|
||||||
import { PresetHelper } from "../helpers/PresetHelper";
|
import { PresetHelper } from "../helpers/PresetHelper";
|
||||||
import { ProfileHelper } from "../helpers/ProfileHelper";
|
import { ProfileHelper } from "../helpers/ProfileHelper";
|
||||||
import { IPmcData } from "../models/eft/common/IPmcData";
|
import { HideoutArea, IPmcData, Product } from "../models/eft/common/IPmcData";
|
||||||
import { HideoutUpgradeCompleteRequestData } from "../models/eft/hideout/HideoutUpgradeCompleteRequestData";
|
import { HideoutUpgradeCompleteRequestData } from "../models/eft/hideout/HideoutUpgradeCompleteRequestData";
|
||||||
import { IHideoutContinousProductionStartRequestData } from "../models/eft/hideout/IHideoutContinousProductionStartRequestData";
|
import { IHideoutContinousProductionStartRequestData } from "../models/eft/hideout/IHideoutContinousProductionStartRequestData";
|
||||||
|
import { IHideoutProduction } from "../models/eft/hideout/IHideoutProduction";
|
||||||
import { IHideoutPutItemInRequestData } from "../models/eft/hideout/IHideoutPutItemInRequestData";
|
import { IHideoutPutItemInRequestData } from "../models/eft/hideout/IHideoutPutItemInRequestData";
|
||||||
|
import { IHideoutScavCase } from "../models/eft/hideout/IHideoutScavCase";
|
||||||
import { IHideoutScavCaseStartRequestData } from "../models/eft/hideout/IHideoutScavCaseStartRequestData";
|
import { IHideoutScavCaseStartRequestData } from "../models/eft/hideout/IHideoutScavCaseStartRequestData";
|
||||||
import { IHideoutSingleProductionStartRequestData } from "../models/eft/hideout/IHideoutSingleProductionStartRequestData";
|
import { IHideoutSingleProductionStartRequestData } from "../models/eft/hideout/IHideoutSingleProductionStartRequestData";
|
||||||
import { IHideoutTakeItemOutRequestData } from "../models/eft/hideout/IHideoutTakeItemOutRequestData";
|
import { IHideoutTakeItemOutRequestData } from "../models/eft/hideout/IHideoutTakeItemOutRequestData";
|
||||||
@ -47,11 +49,20 @@ export declare class HideoutController {
|
|||||||
upgradeComplete(pmcData: IPmcData, body: HideoutUpgradeCompleteRequestData, sessionID: string): IItemEventRouterResponse;
|
upgradeComplete(pmcData: IPmcData, body: HideoutUpgradeCompleteRequestData, sessionID: string): IItemEventRouterResponse;
|
||||||
putItemsInAreaSlots(pmcData: IPmcData, body: IHideoutPutItemInRequestData, sessionID: string): IItemEventRouterResponse;
|
putItemsInAreaSlots(pmcData: IPmcData, body: IHideoutPutItemInRequestData, sessionID: string): IItemEventRouterResponse;
|
||||||
takeItemsFromAreaSlots(pmcData: IPmcData, body: IHideoutTakeItemOutRequestData, sessionID: string): IItemEventRouterResponse;
|
takeItemsFromAreaSlots(pmcData: IPmcData, body: IHideoutTakeItemOutRequestData, sessionID: string): IItemEventRouterResponse;
|
||||||
|
protected removeItemFromGenerator(sessionID: string, pmcData: IPmcData, body: IHideoutTakeItemOutRequestData, output: IItemEventRouterResponse, hideoutArea: HideoutArea): IItemEventRouterResponse;
|
||||||
toggleArea(pmcData: IPmcData, body: IHideoutToggleAreaRequestData, sessionID: string): IItemEventRouterResponse;
|
toggleArea(pmcData: IPmcData, body: IHideoutToggleAreaRequestData, sessionID: string): IItemEventRouterResponse;
|
||||||
singleProductionStart(pmcData: IPmcData, body: IHideoutSingleProductionStartRequestData, sessionID: string): IItemEventRouterResponse;
|
singleProductionStart(pmcData: IPmcData, body: IHideoutSingleProductionStartRequestData, sessionID: string): IItemEventRouterResponse;
|
||||||
scavCaseProductionStart(pmcData: IPmcData, body: IHideoutScavCaseStartRequestData, sessionID: string): IItemEventRouterResponse;
|
scavCaseProductionStart(pmcData: IPmcData, body: IHideoutScavCaseStartRequestData, sessionID: string): IItemEventRouterResponse;
|
||||||
|
protected getRandomisedItemRarityCounter(recipe: IHideoutScavCase): {
|
||||||
|
[x: string]: number;
|
||||||
|
};
|
||||||
|
protected getRandomisedScavRewards(rarityItemCounter: {
|
||||||
|
[x: string]: number;
|
||||||
|
}): Product[];
|
||||||
continuousProductionStart(pmcData: IPmcData, body: IHideoutContinousProductionStartRequestData, sessionID: string): IItemEventRouterResponse;
|
continuousProductionStart(pmcData: IPmcData, body: IHideoutContinousProductionStartRequestData, sessionID: string): IItemEventRouterResponse;
|
||||||
takeProduction(pmcData: IPmcData, body: IHideoutTakeProductionRequestData, sessionID: string): IItemEventRouterResponse;
|
takeProduction(pmcData: IPmcData, body: IHideoutTakeProductionRequestData, sessionID: string): IItemEventRouterResponse;
|
||||||
|
protected handleRecipie(sessionID: string, recipe: IHideoutProduction, pmcData: IPmcData, body: IHideoutTakeProductionRequestData, output: IItemEventRouterResponse): IItemEventRouterResponse;
|
||||||
|
protected handleScavCase(sessionID: string, pmcData: IPmcData, body: IHideoutTakeProductionRequestData, output: IItemEventRouterResponse): IItemEventRouterResponse;
|
||||||
registerProduction(pmcData: IPmcData, body: IHideoutSingleProductionStartRequestData | IHideoutContinousProductionStartRequestData, sessionID: string): IItemEventRouterResponse;
|
registerProduction(pmcData: IPmcData, body: IHideoutSingleProductionStartRequestData | IHideoutContinousProductionStartRequestData, sessionID: string): IItemEventRouterResponse;
|
||||||
update(): void;
|
update(): void;
|
||||||
}
|
}
|
@ -4,7 +4,7 @@ import { ProfileHelper } from "../helpers/ProfileHelper";
|
|||||||
import { QuestConditionHelper } from "../helpers/QuestConditionHelper";
|
import { QuestConditionHelper } from "../helpers/QuestConditionHelper";
|
||||||
import { QuestHelper } from "../helpers/QuestHelper";
|
import { QuestHelper } from "../helpers/QuestHelper";
|
||||||
import { IPmcData } from "../models/eft/common/IPmcData";
|
import { IPmcData } from "../models/eft/common/IPmcData";
|
||||||
import { IQuest } from "../models/eft/common/tables/IQuest";
|
import { IQuest, Reward } from "../models/eft/common/tables/IQuest";
|
||||||
import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse";
|
import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse";
|
||||||
import { IAcceptQuestRequestData } from "../models/eft/quests/IAcceptQuestRequestData";
|
import { IAcceptQuestRequestData } from "../models/eft/quests/IAcceptQuestRequestData";
|
||||||
import { ICompleteQuestRequestData } from "../models/eft/quests/ICompleteQuestRequestData";
|
import { ICompleteQuestRequestData } from "../models/eft/quests/ICompleteQuestRequestData";
|
||||||
@ -30,9 +30,45 @@ export declare class QuestController {
|
|||||||
protected configServer: ConfigServer;
|
protected configServer: ConfigServer;
|
||||||
protected questConfig: IQuestConfig;
|
protected questConfig: IQuestConfig;
|
||||||
constructor(logger: ILogger, timeUtil: TimeUtil, itemEventRouter: ItemEventRouter, databaseServer: DatabaseServer, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, configServer: ConfigServer);
|
constructor(logger: ILogger, timeUtil: TimeUtil, itemEventRouter: ItemEventRouter, databaseServer: DatabaseServer, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, configServer: ConfigServer);
|
||||||
|
/**
|
||||||
|
* Get all quests visible to player
|
||||||
|
* Exclude quests with incomplete preconditions (level/loyalty)
|
||||||
|
* @param sessionID session id
|
||||||
|
* @returns array of IQuest
|
||||||
|
*/
|
||||||
getClientQuests(sessionID: string): IQuest[];
|
getClientQuests(sessionID: string): IQuest[];
|
||||||
acceptQuest(pmcData: IPmcData, acceptedQuest: IAcceptQuestRequestData, sessionID: string): IItemEventRouterResponse;
|
acceptQuest(pmcData: IPmcData, acceptedQuest: IAcceptQuestRequestData, sessionID: string): IItemEventRouterResponse;
|
||||||
acceptRepeatableQuest(pmcData: IPmcData, acceptedQuest: IAcceptQuestRequestData, sessionID: string): IItemEventRouterResponse;
|
acceptRepeatableQuest(pmcData: IPmcData, acceptedQuest: IAcceptQuestRequestData, sessionID: string): IItemEventRouterResponse;
|
||||||
|
/**
|
||||||
|
* Remove completed quest from profile
|
||||||
|
* Add newly unlocked quests to profile
|
||||||
|
* Also recalculate thier level due to exp rewards
|
||||||
|
* @param pmcData Player profile
|
||||||
|
* @param body completed quest request
|
||||||
|
* @param sessionID session id
|
||||||
|
* @returns ItemEvent response
|
||||||
|
*/
|
||||||
completeQuest(pmcData: IPmcData, body: ICompleteQuestRequestData, sessionID: string): IItemEventRouterResponse;
|
completeQuest(pmcData: IPmcData, body: ICompleteQuestRequestData, sessionID: string): IItemEventRouterResponse;
|
||||||
|
/**
|
||||||
|
* Send a popup to player on completion of a quest
|
||||||
|
* @param sessionID session id
|
||||||
|
* @param pmcData player profile
|
||||||
|
* @param completedQuestId completed quest id
|
||||||
|
* @param questRewards rewards given to player
|
||||||
|
*/
|
||||||
|
protected sendDialogMessageOnQuestComplete(sessionID: string, pmcData: IPmcData, completedQuestId: string, questRewards: Reward[]): void;
|
||||||
|
/**
|
||||||
|
* Returns a list of quests that should be failed when a quest is completed
|
||||||
|
* @param completedQuestId quest completed id
|
||||||
|
* @returns array of quests
|
||||||
|
*/
|
||||||
|
protected getQuestsFailedByCompletingQuest(completedQuestId: string): IQuest[];
|
||||||
|
/**
|
||||||
|
* Fail the quests provided
|
||||||
|
* @param sessionID session id
|
||||||
|
* @param pmcData player profile
|
||||||
|
* @param questsToFail quests to fail
|
||||||
|
*/
|
||||||
|
protected failQuests(sessionID: string, pmcData: IPmcData, questsToFail: IQuest[]): void;
|
||||||
handoverQuest(pmcData: IPmcData, body: IHandoverQuestRequestData, sessionID: string): IItemEventRouterResponse;
|
handoverQuest(pmcData: IPmcData, body: IHandoverQuestRequestData, sessionID: string): IItemEventRouterResponse;
|
||||||
}
|
}
|
@ -21,6 +21,7 @@ export declare class RepairController {
|
|||||||
protected repairHelper: RepairHelper;
|
protected repairHelper: RepairHelper;
|
||||||
protected configServer: ConfigServer;
|
protected configServer: ConfigServer;
|
||||||
protected repairConfig: IRepairConfig;
|
protected repairConfig: IRepairConfig;
|
||||||
|
protected readonly WEAPON_SKILL_REPAIR_GAIN: number;
|
||||||
constructor(logger: ILogger, itemEventRouter: ItemEventRouter, databaseServer: DatabaseServer, questHelper: QuestHelper, traderHelper: TraderHelper, paymentService: PaymentService, repairHelper: RepairHelper, configServer: ConfigServer);
|
constructor(logger: ILogger, itemEventRouter: ItemEventRouter, databaseServer: DatabaseServer, questHelper: QuestHelper, traderHelper: TraderHelper, paymentService: PaymentService, repairHelper: RepairHelper, configServer: ConfigServer);
|
||||||
/**
|
/**
|
||||||
* Repair with trader
|
* Repair with trader
|
||||||
@ -37,5 +38,5 @@ export declare class RepairController {
|
|||||||
* @param sessionID session id
|
* @param sessionID session id
|
||||||
* @returns item event router action
|
* @returns item event router action
|
||||||
*/
|
*/
|
||||||
repair(pmcData: IPmcData, body: IRepairActionDataRequest, sessionID: string): IItemEventRouterResponse;
|
repairWithKit(pmcData: IPmcData, body: IRepairActionDataRequest, sessionID: string): IItemEventRouterResponse;
|
||||||
}
|
}
|
@ -1,3 +1,4 @@
|
|||||||
|
import { GameHelper } from "../helpers/GameHelper";
|
||||||
import { ItemHelper } from "../helpers/ItemHelper";
|
import { ItemHelper } from "../helpers/ItemHelper";
|
||||||
import { PresetHelper } from "../helpers/PresetHelper";
|
import { PresetHelper } from "../helpers/PresetHelper";
|
||||||
import { ProfileHelper } from "../helpers/ProfileHelper";
|
import { ProfileHelper } from "../helpers/ProfileHelper";
|
||||||
@ -57,13 +58,14 @@ export declare class RepeatableQuestController {
|
|||||||
protected itemHelper: ItemHelper;
|
protected itemHelper: ItemHelper;
|
||||||
protected presetHelper: PresetHelper;
|
protected presetHelper: PresetHelper;
|
||||||
protected profileHelper: ProfileHelper;
|
protected profileHelper: ProfileHelper;
|
||||||
|
protected gameHelper: GameHelper;
|
||||||
protected ragfairServerHelper: RagfairServerHelper;
|
protected ragfairServerHelper: RagfairServerHelper;
|
||||||
protected itemEventRouter: ItemEventRouter;
|
protected itemEventRouter: ItemEventRouter;
|
||||||
protected paymentService: PaymentService;
|
protected paymentService: PaymentService;
|
||||||
protected objectId: ObjectId;
|
protected objectId: ObjectId;
|
||||||
protected configServer: ConfigServer;
|
protected configServer: ConfigServer;
|
||||||
protected questConfig: IQuestConfig;
|
protected questConfig: IQuestConfig;
|
||||||
constructor(timeUtil: TimeUtil, logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, itemHelper: ItemHelper, presetHelper: PresetHelper, profileHelper: ProfileHelper, ragfairServerHelper: RagfairServerHelper, itemEventRouter: ItemEventRouter, paymentService: PaymentService, objectId: ObjectId, configServer: ConfigServer);
|
constructor(timeUtil: TimeUtil, logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, itemHelper: ItemHelper, presetHelper: PresetHelper, profileHelper: ProfileHelper, gameHelper: GameHelper, ragfairServerHelper: RagfairServerHelper, itemEventRouter: ItemEventRouter, paymentService: PaymentService, objectId: ObjectId, configServer: ConfigServer);
|
||||||
/**
|
/**
|
||||||
* This is the method reached by the /client/repeatalbeQuests/activityPeriods endpoint
|
* This is the method reached by the /client/repeatalbeQuests/activityPeriods endpoint
|
||||||
* Returns an array of objects in the format of repeatable quests to the client.
|
* Returns an array of objects in the format of repeatable quests to the client.
|
@ -0,0 +1,88 @@
|
|||||||
|
import { BotGeneratorHelper } from "../helpers/BotGeneratorHelper";
|
||||||
|
import { ItemHelper } from "../helpers/ItemHelper";
|
||||||
|
import { WeightedRandomHelper } from "../helpers/WeightedRandomHelper";
|
||||||
|
import { Inventory as PmcInventory } from "../models/eft/common/IPmcData";
|
||||||
|
import { Inventory, MinMax, ModsChances } from "../models/eft/common/tables/IBotType";
|
||||||
|
import { Item } from "../models/eft/common/tables/IItem";
|
||||||
|
import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem";
|
||||||
|
import { ILogger } from "../models/spt/utils/ILogger";
|
||||||
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||||
|
import { HashUtil } from "../utils/HashUtil";
|
||||||
|
import { RandomUtil } from "../utils/RandomUtil";
|
||||||
|
export declare class BotWeaponGenerator {
|
||||||
|
protected logger: ILogger;
|
||||||
|
protected hashUtil: HashUtil;
|
||||||
|
protected databaseServer: DatabaseServer;
|
||||||
|
protected itemHelper: ItemHelper;
|
||||||
|
protected weightedRandomHelper: WeightedRandomHelper;
|
||||||
|
protected botGeneratorHelper: BotGeneratorHelper;
|
||||||
|
protected randomUtil: RandomUtil;
|
||||||
|
private readonly modMagazineSlotId;
|
||||||
|
constructor(logger: ILogger, hashUtil: HashUtil, databaseServer: DatabaseServer, itemHelper: ItemHelper, weightedRandomHelper: WeightedRandomHelper, botGeneratorHelper: BotGeneratorHelper, randomUtil: RandomUtil);
|
||||||
|
generateWeapon(equipmentSlot: string, templateInventory: Inventory, modChances: ModsChances, magCounts: MinMax, botRole: string, isPmc: boolean, inventory: PmcInventory): void;
|
||||||
|
/**
|
||||||
|
* Get the mods necessary to kit out a weapon to its preset level
|
||||||
|
* @param weaponTpl weapon to find preset for
|
||||||
|
* @param equipmentSlot the slot the weapon will be placed in
|
||||||
|
* @param weaponParentId
|
||||||
|
* @returns array of weapon mods
|
||||||
|
*/
|
||||||
|
protected getPresetWeaponMods(weaponTpl: string, equipmentSlot: string, weaponParentId: string, itemTemplate: ITemplateItem, botRole: string): Item[];
|
||||||
|
/** Checks if all required slots are occupied on a weapon and all it's mods */
|
||||||
|
protected isWeaponValid(itemList: Item[]): boolean;
|
||||||
|
/**
|
||||||
|
* Generates extra magazines or bullets (if magazine is internal) and adds them to TacticalVest and Pockets.
|
||||||
|
* Additionally, adds extra bullets to SecuredContainer
|
||||||
|
* @param weaponMods
|
||||||
|
* @param weaponTemplate
|
||||||
|
* @param magCounts
|
||||||
|
* @param ammoTpl
|
||||||
|
* @param inventory
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
protected generateExtraMagazines(weaponMods: Item[], weaponTemplate: ITemplateItem, magCounts: MinMax, ammoTpl: string, inventory: PmcInventory): void;
|
||||||
|
/**
|
||||||
|
* Get a randomised count of magazines
|
||||||
|
* @param magCounts min and max value returned value can be between
|
||||||
|
* @returns numberical value of magazine count
|
||||||
|
*/
|
||||||
|
protected getRandomisedMagazineCount(magCounts: MinMax): number;
|
||||||
|
/**
|
||||||
|
* Add ammo to the secure container
|
||||||
|
* @param stackCount How many stacks of ammo to add
|
||||||
|
* @param ammoTpl Ammo type to add
|
||||||
|
* @param stackSize Size of the ammo stack to add
|
||||||
|
* @param inventory Player inventory
|
||||||
|
*/
|
||||||
|
protected addAmmoToSecureContainer(stackCount: number, ammoTpl: string, stackSize: number, inventory: PmcInventory): void;
|
||||||
|
/**
|
||||||
|
* Get a weapons magazine tpl from a weapon template
|
||||||
|
* @param weaponMods mods from a weapon template
|
||||||
|
* @param weaponTemplate Weapon to get magazine tpl for
|
||||||
|
* @returns magazine tpl string
|
||||||
|
*/
|
||||||
|
protected getMagazineTplFromWeaponTemplate(weaponMods: Item[], weaponTemplate: ITemplateItem): string;
|
||||||
|
protected addBulletsToVestAndPockets(ammoTpl: string, bulletCount: number, inventory: PmcInventory): void;
|
||||||
|
/**
|
||||||
|
* Finds and returns compatible ammo tpl
|
||||||
|
*
|
||||||
|
* @param {*} weaponMods
|
||||||
|
* @param {*} weaponTemplate
|
||||||
|
* @returns compatible ammo tpl
|
||||||
|
*/
|
||||||
|
protected getCompatibleAmmo(weaponMods: Item[], weaponTemplate: ITemplateItem): string;
|
||||||
|
/**
|
||||||
|
* Fill existing magazines to full, while replacing their contents with specified ammo
|
||||||
|
* @param weaponMods
|
||||||
|
* @param magazine
|
||||||
|
* @param ammoTpl
|
||||||
|
*/
|
||||||
|
protected fillExistingMagazines(weaponMods: Item[], magazine: Item, ammoTpl: string): void;
|
||||||
|
/**
|
||||||
|
* Fill each Camora with a bullet
|
||||||
|
* @param weaponMods Weapon mods to find and update camora mod(s) from
|
||||||
|
* @param magazineId magazine id to find and add to
|
||||||
|
* @param ammoTpl ammo template id to hydate with
|
||||||
|
*/
|
||||||
|
protected fillCamorasWithAmmo(weaponMods: Item[], magazineId: string, ammoTpl: string): void;
|
||||||
|
}
|
@ -12,6 +12,19 @@ export declare class WeatherGenerator {
|
|||||||
protected weatherConfig: IWeatherConfig;
|
protected weatherConfig: IWeatherConfig;
|
||||||
constructor(weightedRandomHelper: WeightedRandomHelper, randomUtil: RandomUtil, timeUtil: TimeUtil, configServer: ConfigServer);
|
constructor(weightedRandomHelper: WeightedRandomHelper, randomUtil: RandomUtil, timeUtil: TimeUtil, configServer: ConfigServer);
|
||||||
calculateTime(data: IWeatherData): IWeatherData;
|
calculateTime(data: IWeatherData): IWeatherData;
|
||||||
|
/**
|
||||||
|
* Get server uptime seconds multiplied by a multiplier and add to current time as seconds
|
||||||
|
* Format to BSGs requirements
|
||||||
|
* @param computedDate current date
|
||||||
|
* @returns formatted time
|
||||||
|
*/
|
||||||
|
protected getAcceleratedTime(computedDate: Date): string;
|
||||||
|
/**
|
||||||
|
* Get current time formatted to fit BSGs requirement
|
||||||
|
* @param computedDate
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
protected getNormalTime(computedDate: Date): string;
|
||||||
generateWeather(data: IWeatherData): IWeatherData;
|
generateWeather(data: IWeatherData): IWeatherData;
|
||||||
protected getWeightedFog(): string;
|
protected getWeightedFog(): string;
|
||||||
protected getWeightedRain(): number;
|
protected getWeightedRain(): number;
|
@ -13,11 +13,13 @@ import { RandomUtil } from "../utils/RandomUtil";
|
|||||||
import { ContainerHelper } from "./ContainerHelper";
|
import { ContainerHelper } from "./ContainerHelper";
|
||||||
import { InventoryHelper } from "./InventoryHelper";
|
import { InventoryHelper } from "./InventoryHelper";
|
||||||
import { ItemHelper } from "./ItemHelper";
|
import { ItemHelper } from "./ItemHelper";
|
||||||
|
import { ProbabilityHelper } from "./ProbabilityHelper";
|
||||||
export declare class BotGeneratorHelper {
|
export declare class BotGeneratorHelper {
|
||||||
protected logger: ILogger;
|
protected logger: ILogger;
|
||||||
protected jsonUtil: JsonUtil;
|
protected jsonUtil: JsonUtil;
|
||||||
protected hashUtil: HashUtil;
|
protected hashUtil: HashUtil;
|
||||||
protected randomUtil: RandomUtil;
|
protected randomUtil: RandomUtil;
|
||||||
|
protected probabilityHelper: ProbabilityHelper;
|
||||||
protected databaseServer: DatabaseServer;
|
protected databaseServer: DatabaseServer;
|
||||||
protected durabilityLimitsHelper: DurabilityLimitsHelper;
|
protected durabilityLimitsHelper: DurabilityLimitsHelper;
|
||||||
protected itemHelper: ItemHelper;
|
protected itemHelper: ItemHelper;
|
||||||
@ -25,8 +27,36 @@ export declare class BotGeneratorHelper {
|
|||||||
protected containerHelper: ContainerHelper;
|
protected containerHelper: ContainerHelper;
|
||||||
protected configServer: ConfigServer;
|
protected configServer: ConfigServer;
|
||||||
protected botConfig: IBotConfig;
|
protected botConfig: IBotConfig;
|
||||||
constructor(logger: ILogger, jsonUtil: JsonUtil, hashUtil: HashUtil, randomUtil: RandomUtil, databaseServer: DatabaseServer, durabilityLimitsHelper: DurabilityLimitsHelper, itemHelper: ItemHelper, inventoryHelper: InventoryHelper, containerHelper: ContainerHelper, configServer: ConfigServer);
|
constructor(logger: ILogger, jsonUtil: JsonUtil, hashUtil: HashUtil, randomUtil: RandomUtil, probabilityHelper: ProbabilityHelper, databaseServer: DatabaseServer, durabilityLimitsHelper: DurabilityLimitsHelper, itemHelper: ItemHelper, inventoryHelper: InventoryHelper, containerHelper: ContainerHelper, configServer: ConfigServer);
|
||||||
generateModsForItem(items: Item[], modPool: Mods, parentId: string, parentTemplate: ITemplateItem, modSpawnChances: ModsChances, isPmc?: boolean): Item[];
|
generateModsForItem(items: Item[], modPool: Mods, parentId: string, parentTemplate: ITemplateItem, modSpawnChances: ModsChances, isPmc?: boolean): Item[];
|
||||||
|
/**
|
||||||
|
* Get a list of non black-listed cartridges from the PMC bot config
|
||||||
|
* @param modSlot mod item slot
|
||||||
|
* @param itemModPool
|
||||||
|
* @returns string array of cartridges PMCs can use
|
||||||
|
*/
|
||||||
|
protected getNonBlacklistedCartridges(modSlot: string, itemModPool: Record<string, string[]>): string[];
|
||||||
|
/**
|
||||||
|
* randomly choose if a mod should be spawned, 100% for required mods OR mod is ammo slot
|
||||||
|
* never return true for an item that has 0% spawn chance
|
||||||
|
* @param itemSlot slot the item sits in
|
||||||
|
* @param modSlot slot the mod sits in
|
||||||
|
* @param modSpawnChances Chances for various mod spawns
|
||||||
|
* @returns boolean true if it should spawn
|
||||||
|
*/
|
||||||
|
protected shouldModBeSpawned(itemSlot: Slot, modSlot: string, modSpawnChances: ModsChances): boolean;
|
||||||
|
/**
|
||||||
|
* Get a list of containers that hold ammo
|
||||||
|
* @returns string array
|
||||||
|
*/
|
||||||
|
protected getAmmoContainers(): string[];
|
||||||
|
/**
|
||||||
|
* Get the slot details for an item (chamber/cartridge/slot)
|
||||||
|
* @param modSlot e.g patron_in_weapon
|
||||||
|
* @param parentTemplate item template
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
protected getModItemSlot(modSlot: string, parentTemplate: ITemplateItem): Slot;
|
||||||
/**
|
/**
|
||||||
* With the shotgun revolver (60db29ce99594040e04c4a27) 12.12 introduced CylinderMagazines.
|
* With the shotgun revolver (60db29ce99594040e04c4a27) 12.12 introduced CylinderMagazines.
|
||||||
* Those magazines (e.g. 60dc519adf4c47305f6d410d) have a "Cartridges" entry with a _max_count=0.
|
* Those magazines (e.g. 60dc519adf4c47305f6d410d) have a "Cartridges" entry with a _max_count=0.
|
@ -34,7 +34,7 @@ export declare class BotHelper {
|
|||||||
* @param difficultySettings bot settings to alter
|
* @param difficultySettings bot settings to alter
|
||||||
* @param typesToAdd bot type to add to enemy list
|
* @param typesToAdd bot type to add to enemy list
|
||||||
*/
|
*/
|
||||||
addBotToEnemyList(difficultySettings: Difficulty, typesToAdd: string[]): void;
|
addBotToEnemyList(difficultySettings: Difficulty, typesToAdd: string[], typeBeingEdited: string): void;
|
||||||
/**
|
/**
|
||||||
* Add a bot to the REVENGE_BOT_TYPES array
|
* Add a bot to the REVENGE_BOT_TYPES array
|
||||||
* @param difficultySettings bot settings to alter
|
* @param difficultySettings bot settings to alter
|
@ -0,0 +1,11 @@
|
|||||||
|
import { IPmcData } from "../models/eft/common/IPmcData";
|
||||||
|
import { ILogger } from "../models/spt/utils/ILogger";
|
||||||
|
export declare class GameHelper {
|
||||||
|
protected logger: ILogger;
|
||||||
|
constructor(logger: ILogger);
|
||||||
|
/**
|
||||||
|
* Remove condition conters no longer used
|
||||||
|
* @param pmcProfile profile to remove old counters from
|
||||||
|
*/
|
||||||
|
removeDanglingConditionCounters(pmcProfile: IPmcData): void;
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user