Changes and updates for v1.0 release. Feature complete for v1.0 and verified/tested all features as working.

This commit is contained in:
VforValens 2022-08-01 22:49:45 -04:00
parent f2a319bfd2
commit c445442589
11 changed files with 228 additions and 201 deletions

@ -117,7 +117,10 @@
"examineByDefault": false,
"removeBackpackFilter": true,
"weightModifier": 1
"weightModifier": 1,
"roublesMaxStack": 500000,
"dollarsMaxStack": 50000,
"eurosMaxStack": 50000
},
"loot":

@ -15,7 +15,6 @@ export class Airdrop
this.logger = logger;
this.tables = databaseServer.getTables();
this.airdropConfig = airdropConfig;
this.modConfig = this.modConfig.airdrop;
}
public updateAirdrops();
@ -23,23 +22,23 @@ export class Airdrop
if (this.modConfig.airdropChancePercent != 25)
{
this.airdropChance();
this.logger.info(`Customs Airdrop Chance is ${this.modConfig.airdropChancePercent.bigmap}`);
this.logger.info(`Woods Airdrop Chance is ${this.modConfig.airdropChancePercent.woods}`);
this.logger.info(`Lighthouse Airdrop Chance is ${this.modConfig.airdropChancePercent.lighthouse}`);
this.logger.info(`Shoreline Airdrop Chance is ${this.modConfig.airdropChancePercent.shoreline}`);
this.logger.info(`Interchange Airdrop Chance is ${this.modConfig.airdropChancePercent.interchange}`);
this.logger.info(`Reserve Airdrop Chance is ${this.modConfig.airdropChancePercent.reserve}`);
this.logger.info(`Customs Airdrop Chance is ${this.modConfig.airdrop.airdropChancePercent.bigmap}`);
this.logger.info(`Woods Airdrop Chance is ${this.modConfig.airdrop.airdropChancePercent.woods}`);
this.logger.info(`Lighthouse Airdrop Chance is ${this.modConfig.airdrop.airdropChancePercent.lighthouse}`);
this.logger.info(`Shoreline Airdrop Chance is ${this.modConfig.airdrop.airdropChancePercent.shoreline}`);
this.logger.info(`Interchange Airdrop Chance is ${this.modConfig.airdrop.airdropChancePercent.interchange}`);
this.logger.info(`Reserve Airdrop Chance is ${this.modConfig.airdrop.airdropChancePercent.reserve}`);
}
}
private airdropChance();
{
this.airdropConfig.airdropChancePercent["bigmap"] = this.modConfig.airdropChancePercent.bigmap;
this.airdropConfig.airdropChancePercent["woods"] = this.modConfig.airdropChancePercent.woods;
this.airdropConfig.airdropChancePercent["lighthouse"] = this.modConfig.airdropChancePercent.lighthouse;
this.airdropConfig.airdropChancePercent["shoreline"] = this.modConfig.airdropChancePercent.shoreline;
this.airdropConfig.airdropChancePercent["interchange"] = this.modConfig.airdropChancePercent.interchange;
this.airdropConfig.airdropChancePercent["reserve"] = this.modConfig.airdropChancePercent.reserve;
this.airdropConfig.airdropChancePercent["bigmap"] = this.modConfig.airdrop.airdropChancePercent.bigmap;
this.airdropConfig.airdropChancePercent["woods"] = this.modConfig.airdrop.airdropChancePercent.woods;
this.airdropConfig.airdropChancePercent["lighthouse"] = this.modConfig.airdrop.airdropChancePercent.lighthouse;
this.airdropConfig.airdropChancePercent["shoreline"] = this.modConfig.airdrop.airdropChancePercent.shoreline;
this.airdropConfig.airdropChancePercent["interchange"] = this.modConfig.airdrop.airdropChancePercent.interchange;
this.airdropConfig.airdropChancePercent["reserve"] = this.modConfig.airdrop.airdropChancePercent.reserve;
}
}

@ -13,60 +13,59 @@ export class Bots
constructor(logger: ILogger, databaseServer: DatabaseServer, botConfig: IBotConfig)
{
this.logger = logger;
this.modConfig = this.modConfig.bots;
this.botConfig = botConfig;
this.tables = databaseServer.getTables();
}
public updateBots(): void
{
if (this.modConfig.pmcDifficulty.toLowerCase() != "asonline")
if (this.modConfig.bots.pmcDifficulty.toLowerCase() != "asonline")
{
this.pmcDifficulty();
this.logger.info(`PMC Bot Difficulty set to ${this.modConfig.pmcDifficulty}`);
this.logger.info(`PMC Bot Difficulty set to ${this.modConfig.bots.pmcDifficulty}`);
}
if (this.modConfig.containersOnBots)
if (this.modConfig.bots.containersOnBots)
{
this.containersOnBots();
this.logger.info(`Containers On Bots: ${this.modConfig.containersOnBots}`);
this.logger.info(`Containers On Bots: ${this.modConfig.bots.containersOnBots}`);
}
if (this.modConfig.isUsec != 50)
if (this.modConfig.bots.isUsec != 50)
{
this.isUsec();
this.logger.info(`isUsec Chance is: ${this.modConfig.isUsec}`);
this.logger.info(`isUsec Chance is: ${this.modConfig.bots.isUsec}`);
}
if (this.modConfig.maxBackpackLootTotalRub != 150000
|| this.modConfig.maxPocketLootTotalRub !=50000
|| this.modConfig.maxVestLootTotalRub != 50000)
if (this.modConfig.bots.maxBackpackLootTotalRub != 150000
|| this.modConfig.bots.maxPocketLootTotalRub !=50000
|| this.modConfig.bots.maxVestLootTotalRub != 50000)
{
this.pmcLoot();
this.logger.info("PMC Loot totals changed!");
this.logger.info(`Max Backpack Total Value: ${this.modConfig.maxBackpackLootTotalRub}`);
this.logger.info(`Max Pocket Total Value: ${this.modConfig.maxPocketLootTotalRub}`);
this.logger.info(`Max Vest Total Value: ${this.modConfig.maxVestLootTotalRub}`);
this.logger.info(`Max Backpack Total Value: ${this.modConfig.bots.maxBackpackLootTotalRub}`);
this.logger.info(`Max Pocket Total Value: ${this.modConfig.bots.maxPocketLootTotalRub}`);
this.logger.info(`Max Vest Total Value: ${this.modConfig.bots.maxVestLootTotalRub}`);
}
if (this.modConfig.chanceSameSideIsHostilePercent != 50)
if (this.modConfig.bots.chanceSameSideIsHostilePercent != 50)
{
this.sameSideIsHostile();
this.logger.info(`Chance Same Side Is Hostle is ${this.modConfig.chanceSameSideIsHostilePercent}`);
this.logger.info(`Chance Same Side Is Hostle is ${this.modConfig.bots.chanceSameSideIsHostilePercent}`);
}
if (this.modConfig.maxBotCap != 20)
if (this.modConfig.bots.maxBotCap != 20)
{
this.maxBotCap();
this.logger.info(`Bot Cap is now ${this.modConfig.botCap}`);
this.logger.info(`Bot Cap is now ${this.modConfig.bots.maxBotCap}`);
}
if (this.modConfig.pmcNValue != 1.7 || this.modConfig.scavNValue != 2)
if (this.modConfig.bots.pmcNValue != 1.7 || this.modConfig.bots.scavNValue != 2)
{
this.lootNValue();
this.logger.info("Loot NValue has been changed!");
this.logger.info(`Scav NValue set to ${this.modConfig.scavNValue}`);
this.logger.info(`PMC NValue set to ${this.modConfig.pmcNValue}`);
this.logger.info(`Scav NValue set to ${this.modConfig.bots.scavNValue}`);
this.logger.info(`PMC NValue set to ${this.modConfig.bots.pmcNValue}`);
}
}
@ -83,7 +82,7 @@ export class Bots
*/
private pmcDifficulty(): void
{
this.botConfig.pmc.difficulty = this.modConfig.pmcDifficulty;
this.botConfig.pmc.difficulty = this.modConfig.bots.pmcDifficulty;
}
private containersOnBots(): void
@ -103,30 +102,30 @@ export class Bots
private isUsec(): void
{
this.botConfig.pmc.isUsec = this.modConfig.isUsec;
this.botConfig.pmc.isUsec = this.modConfig.bots.isUsec;
}
private pmcLoot(): void
{
this.botConfig.pmc.maxBackpackLootTotalRub = this.modConfig.maxBackpackLootTotalRub;
this.botConfig.pmc.maxPocketLootTotalRub = this.modConfig.maxPocketLootTotalRub;
this.botConfig.pmc.maxVestLootTotalRub = this.modConfig.maxVestLootTotalRub;
this.botConfig.pmc.maxBackpackLootTotalRub = this.modConfig.bots.maxBackpackLootTotalRub;
this.botConfig.pmc.maxPocketLootTotalRub = this.modConfig.bots.maxPocketLootTotalRub;
this.botConfig.pmc.maxVestLootTotalRub = this.modConfig.bots.maxVestLootTotalRub;
}
private sameSideIsHostile(): void
{
this.botConfig.pmc.chanceSameSideIsHostilePercent = this.modConfig.chanceSameSideIsHostilePercent;
this.botConfig.pmc.chanceSameSideIsHostilePercent = this.modConfig.bots.chanceSameSideIsHostilePercent;
}
private maxBotCap(): void
{
this.botConfig.maxBotCap = this.modConfig.maxBotCap;
this.botConfig.maxBotCap = this.modConfig.bots.maxBotCap;
}
private lootNValue(): void
{
this.botConfig.lootNValue.scav = this.modConfig.scavNValue;
this.botConfig.lootNValue.pmc = this.modConfig.pmcNValue;
this.botConfig.lootNValue.scav = this.modConfig.bots.scavNValue;
this.botConfig.lootNValue.pmc = this.modConfig.bots.pmcNValue;
}

@ -14,39 +14,38 @@ export class Globals
this.logger = logger;
this.databaseServer = databaseServer;
this.globals = this.databaseServer.getTables().globals.config.Health.Falling;
this.modConfig = this.modConfig.globals;
}
public updateGlobals(): void
{
if (this.modConfig.damagePerMeter != 9 || this.modConfig.safeHeight != 3)
if (this.modConfig.globals.damagePerMeter != 9 || this.modConfig.globals.safeHeight != 3)
{
this.damagePerMeter();
this.safeHeight();
this.logger.info(`Safe Fall Height set to ${this.modConfig.safeHeight} meters`);
this.logger.info(`Damage Per Meter set to ${this.modConfig.damagePerMeter} meters`)
this.logger.info(`Safe Fall Height set to ${this.modConfig.globals.safeHeight} meters`);
this.logger.info(`Damage Per Meter set to ${this.modConfig.globals.damagePerMeter} meters`)
}
if (this.modConfig.maxTraders)
if (this.modConfig.globals.maxTraders)
{
this.maxTraders();
this.logger.info(`Max Loyalty Traders is: ${this.modConfig.maxTraders}`);
this.logger.info(`Max Loyalty Traders is: ${this.modConfig.globals.maxTraders}`);
}
}
private damagePerMeter(): void
{
this.damagePerMeter = this.modConfig.damagePerMeter;
this.globals.DamagePerMeter = this.modConfig.globals.damagePerMeter;
}
private safeHeight(): void
{
this.safeHeight = this.modConfig.safeHeight;
this.globals.SafeHeight = this.modConfig.globals.safeHeight;
}
private maxTraders(): void
{
this.databaseServer.getTables().globals.config.MaxLoyaltyLevelForAll = this.modConfig.maxTraders;
this.databaseServer.getTables().globals.config.MaxLoyaltyLevelForAll = this.modConfig.globals.maxTraders;
}
}

@ -12,37 +12,36 @@ export class Hideout
{
this.logger = logger;
this.databaseServer = databaseServer;
this.modConfig = this.modConfig.hideout;
}
public updateHideout(): void
{
if (this.modConfig.constructionTime != 1)
if (this.modConfig.hideout.constructionTime != 1)
{
this.updateConstructionTime();
this.logger.info(`Construction Time Patched to ${this.hideout.constructionTime} `);
this.logger.info(`Construction Time Patched to ${this.modConfig.hideout.constructionTime} `);
}
if (this.modConfig.productionTime != 1)
if (this.modConfig.hideout.productionTime != 1)
{
this.updateProductionTime();
this.logger.info(`Production Time Patched to ${this.hideout.productionTime} `);
this.logger.info(`Production Time Patched to ${this.modConfig.hideout.productionTime} `);
}
if (this.modConfig.scavCaseTime != 1)
if (this.modConfig.hideout.scavCaseTime != 1)
{
this.updateScavCase();
this.logger.info(`Scav Case TIme Patched to ${this.hideout.scavCaseTime}`);
this.logger.info(`Scav Case TIme Patched to ${this.modConfig.hideout.scavCaseTime}`);
}
if (this.modConfig.airFilterUnitFlowRate != 0.0047222222222222
||this.modConfig.generatorFuelFlowRate != 0.0013194444444444
||this.modConfig.gpuBoostRate != 0.041225)
if (this.modConfig.hideout.airFilterUnitFlowRate != 0.0047222222222222
||this.modConfig.hideout.generatorFuelFlowRate != 0.0013194444444444
||this.modConfig.hideout.gpuBoostRate != 0.041225)
{
this.updateSettings();
this.logger.info(`Air Filter Flow Rate set to ${this.hideout.airFilterUnitFlowRate}`);
this.logger.info(`Generator Fuel Flow Rate set to ${this.hideout.generatorFuelFlowRate}`);
this.logger.info(`GPU Boost Rate set to ${this.hideout.gpuBoostRate}`);
this.logger.info(`Air Filter Flow Rate set to ${this.modConfig.hideout.airFilterUnitFlowRate}`);
this.logger.info(`Generator Fuel Flow Rate set to ${this.modConfig.hideout.generatorFuelFlowRate}`);
this.logger.info(`GPU Boost Rate set to ${this.modConfig.hideout.gpuBoostRate}`);
}
}
@ -54,7 +53,7 @@ export class Hideout
for (const stage in area.stages)
{
const stageData = area.stages[stage];
stageData.constructionTime *= this.modConfig.constructionTime;
stageData.constructionTime *= this.modConfig.hideout.constructionTime;
}
}
}
@ -63,7 +62,7 @@ export class Hideout
{
for (const production of this.databaseServer.getTables().hideout.production)
{
production.productionTime *= this.modConfig.productionTime;
production.productionTime *= this.modConfig.hideout.productionTime;
}
}
@ -71,16 +70,16 @@ export class Hideout
{
for (const scavCase of this.databaseServer.getTables().hideout.scavcase)
{
scavCase.ProductionTime *= this.modConfig.scavCaseTime;
scavCase.ProductionTime *= this.modConfig.hideout.scavCaseTime;
}
}
private updateSettings()
{
const settings = this.databaseServer.getTables().hideout.settings;
settings.airFilterUnitFlowRate = this.modConfig.airFilterUnitFlowRate;
settings.generatorFuelFlowRate = this.modConfig.generatorFuelFlowRate;
settings.gpuBoostRate = this.modConfig.gpuBoostRate;
settings.airFilterUnitFlowRate = this.modConfig.hideout.airFilterUnitFlowRate;
settings.generatorFuelFlowRate = this.modConfig.hideout.generatorFuelFlowRate;
settings.gpuBoostRate = this.modConfig.hideout.gpuBoostRate;
}

@ -1,53 +1,46 @@
import { IDatabaseTables } from "@spt-aki/models/spt/server/IDatabaseTables";
import { ILogger } from "@spt-aki/models/spt/utils/ILogger";
import { DatabaseServer } from "@spt-aki/servers/DatabaseServer";
import { IInsuranceConfig } from "@spt-aki/models/spt/config/IInsuranceConfig";
export class Insurance
{
private modConfig = require("../config/config.json");
private logger: ILogger;
private tables: IDatabaseTables;
private insuranceConfig: IInsuranceConfig;
constructor(logger:ILogger, databaseServer: DatabaseServer, insuranceConfig: IInsuranceConfig)
constructor(logger:ILogger, insuranceConfig: IInsuranceConfig)
{
this.logger = logger;
this.tables = databaseServer.getTables();
this.insuranceConfig = insuranceConfig;
this.modConfig = this.modConfig.insurance;
}
updateInsurance(): void
{
if (this.insuranceConfig.insuranceMultiplier["54cb50c76803fa8b248b4571"] != 0.16
|| this.insuranceConfig.insuranceMultiplier["54cb57776803fa99248b456e"] != 0.25)
public updateInsurance(): void
{
const insMult = this.modConfig.insurance.insuranceMultiplier
if (insMult.prapor != 0.16 || insMult.therapist != 0.25)
{
this.insuranceMultiplier();
this.logger.info(`Prapor Insurance Price Multiplier Set to ${this.modConfig.insuranceMultiplier.prapor}`);
this.logger.info(`Therapist Insurance Price Multiplier Set to ${this.modConfig.insuranceMultiplier.therapist}`);
}
this.insureMult();
this.logger.info(`Prapor Insurance Price Multiplier Set to ${insMult.prapor}`);
} this.logger.info(`Therapist Insurance Price Multiplier Set to ${insMult.therapist}`);
if (this.insuranceConfig.returnChancePercent["54cb50c76803fa8b248b4571"] != 80
|| this.insuranceConfig.returnChancePercent["54cb57776803fa99248b456e"] != 85)
const insReturn = this.modConfig.insurance.returnChancePercent
if (insReturn.prapor != 80 || insReturn.therapist != 85)
{
this.returnChancePercent();
this.logger.info(`Prapor Return Chance Percent Set to ${this.modConfig.returnChancePercent.prapor}`);
this.logger.info(`Therapist Return Chance Percent Set to ${this.modConfig.returnChancePercent.therapist}`);
this.insureReturn();
this.logger.info(`Prapor Insurance Return Chance Set to ${this.modConfig.insurance.returnChancePercent.prapor}`);
this.logger.info(`Therapist Insurance Return Chance set to ${this.modConfig.insurance.returnChancePercent.therapist}`);
}
}
private insuranceMultiplier(): void
private insureMult(): void
{
this.insuranceConfig.insuranceMultiplier["54cb50c76803fa8b248b4571"] = this.modConfig.insuranceMultiplier.prapor;
this.insuranceConfig.insuranceMultiplier["54cb57776803fa99248b456e"] = this.modConfig.insuranceMultiplier.therapist;
this.insuranceConfig.insuranceMultiplier["54cb50c76803fa8b248b4571"] = this.modConfig.insurance.insuranceMultiplier.prapor;
this.insuranceConfig.insuranceMultiplier["54cb57776803fa99248b456e"] = this.modConfig.insurance.insuranceMultiplier.therapist;
}
private returnChancePercent(): void
private insureReturn(): void
{
this.insuranceConfig.returnChancePercent["54cb50c76803fa8b248b4571"] = this.modConfig.returnChancePercent.prapor;
this.insuranceConfig.returnChancePercent["54cb57776803fa99248b456e"] = this.modConfig.returnChancePercent.therapist;
this.insuranceConfig.returnChancePercent["54cb50c76803fa8b248b4571"] = this.modConfig.insurance.returnChancePercent.prapor;
this.insuranceConfig.returnChancePercent["54cb57776803fa99248b456e"] = this.modConfig.insurance.returnChancePercent.therapist;
}
}

@ -11,140 +11,197 @@ export class Items
{
this.logger = logger;
this.databaseServer = databaseServer;
this.modConfig = this.modConfig.items;
}
public updateItems(): void
{
if (this.modConfig.weightModifier != 1)
if (this.modConfig.items.weightModifier != 1)
{
this.updateWeight();
this.logger.info(`Weight Multipler patched to ${this.modConfig.weightModifier}`);
this.logger.info(`Weight Multipler patched to ${this.modConfig.items.weightModifier}`);
}
if (this.modConfig.removeBackpackFilter)
if (this.modConfig.items.removeBackpackFilter)
{
this.updateBackpacks();
this.logger.info(`Backpack Restrictions Removed: ${this.modConfig.removeBackpackFilter}`)
this.logger.info(`Backpack Restrictions Removed: ${this.modConfig.items.removeBackpackFilter}`)
}
if (this.modConfig.standardStash.vertical != 28 || this.modConfig.standardStash.horizontal != 10)
if (this.modConfig.items.standardStash.vertical != 28 || this.modConfig.items.standardStash.horizontal != 10)
{
this.standardStash();
this.logger.info(`Standard Stash Vertical changed to ${this.modConfig.standardStash.vertical}`);
this.logger.info(`Standard Stash Horizontal changed to ${this.modConfig.standardStash.horizontal}`);
this.logger.info(`Standard Stash Vertical changed to ${this.modConfig.items.standardStash.vertical}`);
this.logger.info(`Standard Stash Horizontal changed to ${this.modConfig.items.standardStash.horizontal}`);
}
if (this.modConfig.behindStash.vertical != 38 || this.modConfig.behindStash.horizontal != 10)
if (this.modConfig.items.behindStash.vertical != 38 || this.modConfig.items.behindStash.horizontal != 10)
{
this.behindStash();
this.logger.info(`Left Behind Stash Vertical changed to ${this.modConfig.behindStash.vertical}`);
this.logger.info(`Left Behind Stash Horizontal changed to ${this.modConfig.behindStash.horizontal}`);
this.logger.info(`Left Behind Stash Vertical changed to ${this.modConfig.items.behindStash.vertical}`);
this.logger.info(`Left Behind Stash Horizontal changed to ${this.modConfig.items.behindStash.horizontal}`);
}
if (this.modConfig.escapeStash.vertical != 48 || this.modConfig.escapeStash.horizontal != 10)
if (this.modConfig.items.escapeStash.vertical != 48 || this.modConfig.items.escapeStash.horizontal != 10)
{
this.escapeStash();
this.logger.info(`Prepare for Escape Stash Vertical changed to ${this.modConfig.escapeStash.vertical}`);
this.logger.info(`Prepare for Escape Stash Horizontal changed to ${this.modConfig.escapeStash.horizontal}`);
this.logger.info(`Prepare for Escape Stash Vertical changed to ${this.modConfig.items.escapeStash.vertical}`);
this.logger.info(`Prepare for Escape Stash Horizontal changed to ${this.modConfig.items.escapeStash.horizontal}`);
}
if (this.modConfig.eodStash.vertical != 68 || this.modConfig.eodStash.horizontal != 10)
if (this.modConfig.items.eodStash.vertical != 68 || this.modConfig.items.eodStash.horizontal != 10)
{
this.eodStash();
this.logger.info(`Edge of Darkness Stash Vertical changed to ${this.modConfig.eodStash.vertical}`);
this.logger.info(`Edge of Darkness Stash Horizontal changed to ${this.modConfig.eodStash.horizontal}`);
this.logger.info(`Edge of Darkness Stash Vertical changed to ${this.modConfig.items.eodStash.vertical}`);
this.logger.info(`Edge of Darkness Stash Horizontal changed to ${this.modConfig.items.eodStash.horizontal}`);
}
if (this.modConfig.examineByDefault)
if (this.modConfig.items.examineByDefault)
{
this.examineByDefault();
this.logger.info(`Examine By Default is ${this.modConfig.examineByDefault}`);
this.logger.info(`Examine By Default is ${this.modConfig.items.examineByDefault}`);
}
if (this.modConfig.items.roublesMaxStack != 500000)
{
this.roublesMaxStack();
this.logger.info(`Rouble Max Stack set to ${this.modConfig.items.roublesMaxStack}`);
}
if (this.modConfig.items.dollarsMaxStack != 50000)
{
this.dollarsMaxStack();
this.logger.info(`Dollar Max Stack set to ${this.modConfig.items.dollarsMaxStack}`);
}
if (this.modConfig.items.eurosMaxStack != 50000)
{
this.eurosMaxStack();
this.logger.info(`Euro Max Stack set to ${this.modConfig.items.eurosMaxStack}`);
}
}
private updateWeight()
private updateWeight(): void
{
const items = Object.values(this.databaseServer.getTables().templates.items);
for (const item of items)
{
if (item._props?.Weight)
{
item._props.Weight *= this.modConfig.weightModifier;
item._props.Weight *= this.modConfig.items.weightModifier;
}
}
}
private updateBackpacks()
private updateBackpacks(): void
{
const items = Object.values(this.databaseServer.getTables().templates.items);
for (const item of items)
{
if (item._props.ItemSound === "gear_backpack")
if (item._parent === "5448e53e4bdc2d60728b4567")
{
item._props.Grids[0]._props.filters[0].ExcludedFilter = [];
for (const grid of item._props.Grids)
grid._props.filters[0].ExcludedFilter = [];
}
}
}
private standardStash()
private standardStash(): void
{
const items = Object.values(this.databaseServer.getTables().templates.items);
for (const item of items)
{
if (item._name === "Standard stash 10x28")
{
item._props.Grids["cellsH"] = this.modConfig.standardStash.horizontal;
item._props.Grids["cellsV"] = this.modConfig.standardStash.vertical;
item._props.Grids["cellsH"] = this.modConfig.items.standardStash.horizontal;
item._props.Grids["cellsV"] = this.modConfig.items.standardStash.vertical;
}
}
}
private behindStash()
private behindStash(): void
{
const items = Object.values(this.databaseServer.getTables().templates.items);
for (const item of items)
{
if (item._name === "Left Behind stash 10x38")
{
item._props.Grids["cellsH"] = this.modConfig.behindStash.horizontal;
item._props.Grids["cellsV"] = this.modConfig.behindStash.vertical;
item._props.Grids["cellsH"] = this.modConfig.items.behindStash.horizontal;
item._props.Grids["cellsV"] = this.modConfig.items.behindStash.vertical;
}
}
}
private escapeStash()
private escapeStash(): void
{
const items = Object.values(this.databaseServer.getTables().templates.items);
for (const item of items)
{
if (item._name === "Prepare for escape stash 10x48")
{
item._props.Grids["cellsH"] = this.modConfig.escapeStash.horizontal;
item._props.Grids["cellsV"] = this.modConfig.escapeStash.vertical;
item._props.Grids["cellsH"] = this.modConfig.items.escapeStash.horizontal;
item._props.Grids["cellsV"] = this.modConfig.items.escapeStash.vertical;
}
}
}
private eodStash()
private eodStash(): void
{
const items = Object.values(this.databaseServer.getTables().templates.items);
for (const item of items)
{
if (item._name === "Edge of darkness stash 10x68")
{
item._props.Grids["cellsH"] = this.modConfig.eodStash.horizontal;
item._props.Grids["cellsV"] = this.modConfig.eodStash.vertical;
item._props.Grids["cellsH"] = this.modConfig.items.eodStash.horizontal;
item._props.Grids["cellsV"] = this.modConfig.items.eodStash.vertical;
}
}
}
private examineByDefault()
private examineByDefault(): void
{
const items = Object.values(this.databaseServer.getTables().templates.items);
for (const item of items)
{
item._props.ExaminedByDefault = this.modConfig.examineByDefault;
item._props.ExaminedByDefault = this.modConfig.items.examineByDefault;
}
}
private roublesMaxStack(): void
{
const items = Object.values(this.databaseServer.getTables().templates.items);
for (const item of items)
{
if (item._id === "5449016a4bdc2d6f028b456f")
{
item._props.StackMaxSize = this.modConfig.items.roublesMaxStack;
}
}
}
private dollarsMaxStack(): void
{
const items = Object.values(this.databaseServer.getTables().templates.items);
for (const item of items)
{
if (item._id === "5696686a4bdc2da3298b456a")
{
item._props.StackMaxSize = this.modConfig.items.roublesMaxStack;
}
}
}
private eurosMaxStack(): void
{
const items = Object.values(this.databaseServer.getTables().templates.items);
for (const item of items)
{
if (item._id === "569668774bdc2da2298b4568")
{
item._props.StackMaxSize = this.modConfig.items.roublesMaxStack;
}
}
}
}

@ -15,26 +15,27 @@ export class Loot
this.logger = logger;
this.locationConfig = locationConfig;
this.tables = databaseServer.getTables();
this.modConfig = this.modConfig.loot;
}
public updateLoot(): void
{
if (this.modConfig.loot.looseLootMultiplier > 1)
if (this.modConfig.looseLootMultiplier > 1)
{
this.looseLootMultiplier();
this.logger.info(`Loose Loot Multiplier: ${this.modConfig.loot.looseLootMultiplier}`);
this.logger.info(`Loose Loot Multiplier: ${this.modConfig.looseLootMultiplier}`);
}
if (this.modConfig.loot.staticLootMultiplier > 1)
if (this.modConfig.staticLootMultiplier > 1)
{
this.staticLootMultiplier();
this.logger.info(`Static Loot Multiplier: ${this.modConfig.loot.staticLootMultiplier}`);
this.logger.info(`Static Loot Multiplier: ${this.modConfig.staticLootMultiplier}`);
}
if (this.modConfig.loot.containersInMarkedRoom)
if (this.modConfig.containersInMarkedRoom)
{
this.containersInMarkedRoom();
this.logger.info(`Containers In Marked Room: ${this.modConfig.loot.containersInMarkedRoom}`);
this.logger.info(`Containers In Marked Room: ${this.modConfig.containersInMarkedRoom}`);
}
}
@ -42,7 +43,7 @@ export class Loot
{
for (const map in this.locationConfig.looseLootMultiplier)
{
this.locationConfig.looseLootMultiplier[map] = this.modConfig.loot.looseLootMultiplier;
this.locationConfig.looseLootMultiplier[map] = this.modConfig.looseLootMultiplier;
}
}
@ -50,45 +51,19 @@ export class Loot
{
for (const map in this.locationConfig.staticLootMultiplier)
{
this.locationConfig.staticLootMultiplier[map] = this.modConfig.loot.staticLootMultiplier;
this.locationConfig.staticLootMultiplier[map] = this.modConfig.staticLootMultiplier;
}
}
/**
* Changes the loot database/tables to include containers in marked rooms.
*
* Container "id"s
*
* S I C C pouch: 5d235bb686f77443f4331278
*
* Magazine Case: 5c127c4486f7745625356c13
*
* Weapon Case: 59fb023c86f7746d0d4b423c
*
* T H I C C Weapon Case: 5b6d9ce188a4501afc1b2b25
*
* Item Case: 59fb042886f7746c5005a7b2
*
* T H I C C Item Case: 5c0a840b86f7742ffa4f2482
*
* Money case: 59fb016586f7746d0d4b423a
*
* Mr Holodilnick Thermal Bag: 5c093db286f7740a1b2617e3
*
* Medicine case: 5aafbcd986f7745e590fff23
*
* Lucky scav junkbox: 5b7c710788a4506dec015957
*
* Grenade case: 5e2af55f86f7746d4159f07c
*
* Secure container: 5448bf274bdc2dfc2f8b456a
*
* @variable containersInMarkedRoom Enables common containers (items case, weapon case, etc.) in Marked Rooms.
*/
private containersInMarkedRoom(): void
{
// Customs Marked Room Loot.
const spawnPoints = this.tables.locations.bigmap.looseLoot.spawnpoints;
let spawnPoints = this.tables.locations.bigmap.looseLoot.spawnpoints;
const cstmsmarked1 = spawnPoints.find(x=>x.template.Id==="Loot 135 (10)1203364");
const cstmsmarked2 = spawnPoints.find(x=>x.template.Id==="Loot 135 (9)1198014");
const cstmsmarked3 = spawnPoints.find(x=>x.template.Id==="Loot 135 (8)1207194");
@ -98,6 +73,7 @@ export class Loot
cstmsmarked3.itemDistribution.push(...this.containers());
// Reserve Marked Room Loot.
spawnPoints = this.tables.locations.rezervbase.looseLoot.spawnpoints;
const rsrvRBBK1 = spawnPoints.find(x=>x.template.Id==="Loot 135 (10)49516");
const rsrvRBBK2 = spawnPoints.find(x=>x.template.Id==="Loot 135 (8)69186");
const rsrvRBBK3 = spawnPoints.find(x=>x.template.Id==="Loot 135 (9)39600");

@ -45,7 +45,9 @@ class ValensAIO implements IPostDBLoadMod
this.ragfairConfig = this.configServer.getConfig<IRagfairConfig>(ConfigTypes.RAGFAIR);
this.botConfig = this.configServer.getConfig<IBotConfig>(ConfigTypes.BOT);
this.tables = this.databaseServer.getTables();
this.inRaidConfig = this.configServer.getConfig<IInRaidConfig>(ConfigTypes.IN_RAID);
this.insuranceConfig = this.configServer.getConfig<IInsuranceConfig>(ConfigTypes.INSURANCE);
//const airdrop = new Airdrop(this.logger, this.airdropConfig, this.databaseServer)
//airdrop.updateAirdrops();
@ -61,9 +63,9 @@ class ValensAIO implements IPostDBLoadMod
const hideout = new Hideout(this.logger, this.databaseServer);
hideout.updateHideout();
const insurance = new Insurance(this.logger, this.databaseServer, this.insuranceConfig);
const insurance = new Insurance(this.logger, this.insuranceConfig);
insurance.updateInsurance();
const items = new Items(this.logger, this.databaseServer);
items.updateItems();
@ -72,6 +74,7 @@ class ValensAIO implements IPostDBLoadMod
const raid = new Raid(this.logger, this.databaseServer, this.inRaidConfig);
raid.updateRaid();
}
}

@ -15,55 +15,54 @@ export class Raid
this.logger = logger;
this.tables = databaseServer.getTables();
this.inRaidConfig = inRaidConfig;
this.modConfig = this.modConfig.raid;
}
updateRaid(): void
{
if (this.modConfig.fixOpenZones)
if (this.modConfig.raid.fixOpenZones)
{
this.fixOpenZones();
this.logger.info(`Open Zones: ${this.modConfig.raid.fixOpenZones}.`)
}
if (this.modConfig.chompiesBossFix)
if (this.modConfig.raid.chompiesBossFix)
{
this.chompiesBossFix();
this.logger.info(`Chompies Boss Fix: ${this.modConfig.raid.chompiesBossFix}.`)
}
if (this.modConfig.timeLimit)
if (this.modConfig.raid.timeLimit)
{
this.raidTimeLimit();
this.logger.info(`Raid Time Limits set to ${this.modConfig.raid.timeLimit} minutes.`);
}
if (this.modConfig.aiAmount.toLowerCase() != "asonline"
||this.modConfig.aiDifficulty.toLowerCase() != "asonline"
||this.modConfig.bossEnabled != true
||this.modConfig.scavWars != false
||this.modConfig.taggedAndCursed != false
||this.modConfig.enablePve != false)
if (this.modConfig.raid.aiAmount.toLowerCase() != "asonline"
||this.modConfig.raid.aiDifficulty.toLowerCase() != "asonline"
||this.modConfig.raid.bossEnabled != true
||this.modConfig.raid.scavWars != false
||this.modConfig.raid.taggedAndCursed != false
||this.modConfig.raid.enablePve != false)
{
this.raidDifficulty();
this.logger.info(`AI Amount set to ${this.modConfig.aiAmount}`);
this.logger.info(`AI Difficulty set to ${this.modConfig.aiDifficulty}`);
this.logger.info(`Boss Enabled set to ${this.modConfig.bossEnabled}`);
this.logger.info(`Scav Wars set to ${this.modConfig.scavWars}`);
this.logger.info(`Tagged And Cursed set to ${this.modConfig.taggedAndCursed}`);
this.logger.info(`Enable PvE set to ${this.modConfig.enablePve}`);
this.logger.info(`AI Amount set to ${this.modConfig.raid.aiAmount}`);
this.logger.info(`AI Difficulty set to ${this.modConfig.raid.aiDifficulty}`);
this.logger.info(`Boss Enabled set to ${this.modConfig.raid.bossEnabled}`);
this.logger.info(`Scav Wars set to ${this.modConfig.raid.scavWars}`);
this.logger.info(`Tagged And Cursed set to ${this.modConfig.raid.taggedAndCursed}`);
this.logger.info(`Enable PvE set to ${this.modConfig.raid.enablePve}`);
}
if (this.modConfig.carExtractBaseStandingGain != 0.25)
if (this.modConfig.raid.carExtractBaseStandingGain != 0.25)
{
this.carExtractsGain();
this.logger.info(`Car Extract Base Standing Gain set to ${this.modConfig.carExtractBaseStandingGain}`);
this.logger.info(`Car Extract Base Standing Gain set to ${this.modConfig.raid.carExtractBaseStandingGain}`);
}
if (this.modConfig.scavExtractGain != 0.01)
{
this.scavExtractGain();
this.logger.info(`Scav Extract Gain set to ${this.modConfig.scavExtractGain}`);
this.logger.info(`Scav Extract Gain set to ${this.modConfig.raid.scavExtractGain}`);
}
}
@ -129,21 +128,21 @@ export class Raid
private raidDifficulty(): void
{
this.inRaidConfig.raidMenuSettings.aiAmount = this.modConfig.aiAmount
this.inRaidConfig.raidMenuSettings.aiDifficulty = this.modConfig.aiDifficulty
this.inRaidConfig.raidMenuSettings.bossEnabled = this.modConfig.bossEnabled
this.inRaidConfig.raidMenuSettings.scavWars = this.modConfig.scavWars
this.inRaidConfig.raidMenuSettings.taggedAndCursed = this.modConfig.taggedAndCursed
this.inRaidConfig.raidMenuSettings.enablePve = this.modConfig.enablePve
this.inRaidConfig.raidMenuSettings["aiAmount"] = this.modConfig.raid.aiAmount;
this.inRaidConfig.raidMenuSettings["aiDifficulty"] = this.modConfig.raid.aiDifficulty;
this.inRaidConfig.raidMenuSettings["bossEnabled"] = this.modConfig.raid.bossEnabled;
this.inRaidConfig.raidMenuSettings["scavWars"] = this.modConfig.raid.scavWars;
this.inRaidConfig.raidMenuSettings["taggedAndCursed"] = this.modConfig.raid.taggedAndCursed;
this.inRaidConfig.raidMenuSettings["enablePve"] = this.modConfig.raid.enablePve;
}
private carExtractsGain(): void
{
this.inRaidConfig.carExtractBaseStandingGain = this.modConfig.carExtractBaseStandingGain;
this.inRaidConfig.carExtractBaseStandingGain = this.modConfig.raid.carExtractBaseStandingGain;
}
private scavExtractGain(): void
{
this.inRaidConfig.scavExtractGain = this.modConfig.scavExtractGain;
this.inRaidConfig.scavExtractGain = this.modConfig.raid.scavExtractGain;
}
}