mirror of
https://github.com/sp-tarkov/server.git
synced 2025-02-13 09:50:43 -05:00
Added a weighting bias to the level chosen for bots, favors the higher value
This commit is contained in:
parent
adcd0194bf
commit
797d75fd4f
@ -183,6 +183,7 @@ export class BotEquipmentModGenerator {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Get chosen mods db template and check it fits into slot
|
||||||
const modTemplate = this.itemHelper.getItem(modTpl);
|
const modTemplate = this.itemHelper.getItem(modTpl);
|
||||||
if (!this.isModValidForSlot(modTemplate, itemSlotTemplate, modSlotName, parentTemplate, settings.botRole)) {
|
if (!this.isModValidForSlot(modTemplate, itemSlotTemplate, modSlotName, parentTemplate, settings.botRole)) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -4,6 +4,7 @@ import { IBotBase } from "@spt/models/eft/common/tables/IBotBase";
|
|||||||
import { BotGenerationDetails } from "@spt/models/spt/bots/BotGenerationDetails";
|
import { BotGenerationDetails } from "@spt/models/spt/bots/BotGenerationDetails";
|
||||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||||
|
import { MathUtil } from "@spt/utils/MathUtil";
|
||||||
import { RandomUtil } from "@spt/utils/RandomUtil";
|
import { RandomUtil } from "@spt/utils/RandomUtil";
|
||||||
import { inject, injectable } from "tsyringe";
|
import { inject, injectable } from "tsyringe";
|
||||||
|
|
||||||
@ -13,6 +14,7 @@ export class BotLevelGenerator {
|
|||||||
@inject("PrimaryLogger") protected logger: ILogger,
|
@inject("PrimaryLogger") protected logger: ILogger,
|
||||||
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
||||||
@inject("DatabaseService") protected databaseService: DatabaseService,
|
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||||
|
@inject("MathUtil") protected mathUtil: MathUtil,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -33,8 +35,7 @@ export class BotLevelGenerator {
|
|||||||
|
|
||||||
// Get random level based on the exp table.
|
// Get random level based on the exp table.
|
||||||
let exp = 0;
|
let exp = 0;
|
||||||
const level = this.randomUtil.getInt(lowestLevel, highestLevel);
|
const level = this.chooseBotLevel(lowestLevel, highestLevel, 1, 1.15);
|
||||||
|
|
||||||
for (let i = 0; i < level; i++) {
|
for (let i = 0; i < level; i++) {
|
||||||
exp += expTable[i].exp;
|
exp += expTable[i].exp;
|
||||||
}
|
}
|
||||||
@ -47,6 +48,10 @@ export class BotLevelGenerator {
|
|||||||
return { level, exp };
|
return { level, exp };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected chooseBotLevel(min: number, max: number, shift: number, number: number): number {
|
||||||
|
return this.randomUtil.getBiasedRandomNumber(min, max, shift, number);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the highest level a bot can be relative to the players level, but no further than the max size from globals.exp_table
|
* Get the highest level a bot can be relative to the players level, but no further than the max size from globals.exp_table
|
||||||
* @param botGenerationDetails Details to help generate a bot
|
* @param botGenerationDetails Details to help generate a bot
|
||||||
|
Loading…
x
Reference in New Issue
Block a user