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",
|
||||
"author": "KcY",
|
||||
"version": "1.3.0",
|
||||
"version": "1.3.1",
|
||||
"license": "NCSA Open Source",
|
||||
"main": "src/mod.js",
|
||||
"akiVersion": "3.0.0",
|
@ -84,6 +84,12 @@ class SeeItemValue implements IMod
|
||||
let sMutli = 1;
|
||||
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 (this.cfg.TraderPrice === false)
|
||||
{
|
@ -1,3 +1,4 @@
|
||||
import { GameHelper } from "../helpers/GameHelper";
|
||||
import { HttpServerHelper } from "../helpers/HttpServerHelper";
|
||||
import { ProfileHelper } from "../helpers/ProfileHelper";
|
||||
import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData";
|
||||
@ -14,9 +15,10 @@ export declare class GameController {
|
||||
protected watermark: Watermark;
|
||||
protected httpServerHelper: HttpServerHelper;
|
||||
protected profileHelper: ProfileHelper;
|
||||
protected gameHelper: GameHelper;
|
||||
protected configServer: ConfigServer;
|
||||
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;
|
||||
protected addMissingBonusesProperty(pmcProfile: IPmcData): void;
|
||||
protected addMissingRepeatableQuestsProperty(pmcProfile: IPmcData): void;
|
||||
@ -24,7 +26,6 @@ export declare class GameController {
|
||||
protected addMissingAkiVersionTagToProfile(fullProfile: IAkiProfile): void;
|
||||
protected addMissingArmorRepairSkill(pmcProfile: IPmcData): void;
|
||||
protected fixNullTraderSalesSums(pmcProfile: IPmcData): void;
|
||||
protected removeDanglingConditionCounters(pmcProfile: IPmcData): void;
|
||||
protected removeDanglingBackendCounters(pmcProfile: IPmcData): void;
|
||||
getGameConfig(sessionID: string): IGameConfigResponse;
|
||||
getServer(): any[];
|
@ -3,10 +3,12 @@ import { InventoryHelper } from "../helpers/InventoryHelper";
|
||||
import { PaymentHelper } from "../helpers/PaymentHelper";
|
||||
import { PresetHelper } from "../helpers/PresetHelper";
|
||||
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 { IHideoutContinousProductionStartRequestData } from "../models/eft/hideout/IHideoutContinousProductionStartRequestData";
|
||||
import { IHideoutProduction } from "../models/eft/hideout/IHideoutProduction";
|
||||
import { IHideoutPutItemInRequestData } from "../models/eft/hideout/IHideoutPutItemInRequestData";
|
||||
import { IHideoutScavCase } from "../models/eft/hideout/IHideoutScavCase";
|
||||
import { IHideoutScavCaseStartRequestData } from "../models/eft/hideout/IHideoutScavCaseStartRequestData";
|
||||
import { IHideoutSingleProductionStartRequestData } from "../models/eft/hideout/IHideoutSingleProductionStartRequestData";
|
||||
import { IHideoutTakeItemOutRequestData } from "../models/eft/hideout/IHideoutTakeItemOutRequestData";
|
||||
@ -47,11 +49,20 @@ export declare class HideoutController {
|
||||
upgradeComplete(pmcData: IPmcData, body: HideoutUpgradeCompleteRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
putItemsInAreaSlots(pmcData: IPmcData, body: IHideoutPutItemInRequestData, 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;
|
||||
singleProductionStart(pmcData: IPmcData, body: IHideoutSingleProductionStartRequestData, 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;
|
||||
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;
|
||||
update(): void;
|
||||
}
|
@ -4,7 +4,7 @@ import { ProfileHelper } from "../helpers/ProfileHelper";
|
||||
import { QuestConditionHelper } from "../helpers/QuestConditionHelper";
|
||||
import { QuestHelper } from "../helpers/QuestHelper";
|
||||
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 { IAcceptQuestRequestData } from "../models/eft/quests/IAcceptQuestRequestData";
|
||||
import { ICompleteQuestRequestData } from "../models/eft/quests/ICompleteQuestRequestData";
|
||||
@ -30,9 +30,45 @@ export declare class QuestController {
|
||||
protected configServer: ConfigServer;
|
||||
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);
|
||||
/**
|
||||
* 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[];
|
||||
acceptQuest(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;
|
||||
/**
|
||||
* 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;
|
||||
}
|
@ -21,6 +21,7 @@ export declare class RepairController {
|
||||
protected repairHelper: RepairHelper;
|
||||
protected configServer: ConfigServer;
|
||||
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);
|
||||
/**
|
||||
* Repair with trader
|
||||
@ -37,5 +38,5 @@ export declare class RepairController {
|
||||
* @param sessionID session id
|
||||
* @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 { PresetHelper } from "../helpers/PresetHelper";
|
||||
import { ProfileHelper } from "../helpers/ProfileHelper";
|
||||
@ -57,13 +58,14 @@ export declare class RepeatableQuestController {
|
||||
protected itemHelper: ItemHelper;
|
||||
protected presetHelper: PresetHelper;
|
||||
protected profileHelper: ProfileHelper;
|
||||
protected gameHelper: GameHelper;
|
||||
protected ragfairServerHelper: RagfairServerHelper;
|
||||
protected itemEventRouter: ItemEventRouter;
|
||||
protected paymentService: PaymentService;
|
||||
protected objectId: ObjectId;
|
||||
protected configServer: ConfigServer;
|
||||
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
|
||||
* 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;
|
||||
constructor(weightedRandomHelper: WeightedRandomHelper, randomUtil: RandomUtil, timeUtil: TimeUtil, configServer: ConfigServer);
|
||||
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;
|
||||
protected getWeightedFog(): string;
|
||||
protected getWeightedRain(): number;
|
@ -13,11 +13,13 @@ import { RandomUtil } from "../utils/RandomUtil";
|
||||
import { ContainerHelper } from "./ContainerHelper";
|
||||
import { InventoryHelper } from "./InventoryHelper";
|
||||
import { ItemHelper } from "./ItemHelper";
|
||||
import { ProbabilityHelper } from "./ProbabilityHelper";
|
||||
export declare class BotGeneratorHelper {
|
||||
protected logger: ILogger;
|
||||
protected jsonUtil: JsonUtil;
|
||||
protected hashUtil: HashUtil;
|
||||
protected randomUtil: RandomUtil;
|
||||
protected probabilityHelper: ProbabilityHelper;
|
||||
protected databaseServer: DatabaseServer;
|
||||
protected durabilityLimitsHelper: DurabilityLimitsHelper;
|
||||
protected itemHelper: ItemHelper;
|
||||
@ -25,8 +27,36 @@ export declare class BotGeneratorHelper {
|
||||
protected containerHelper: ContainerHelper;
|
||||
protected configServer: ConfigServer;
|
||||
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[];
|
||||
/**
|
||||
* 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.
|
||||
* 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 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
|
||||
* @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