mirror of
https://github.com/sp-tarkov/server.git
synced 2025-02-13 09:50:43 -05:00
Refactor updateWaterFilters()
This commit is contained in:
parent
9fff59f464
commit
d411f5ce1d
@ -501,7 +501,6 @@ export class HideoutHelper
|
|||||||
*/
|
*/
|
||||||
protected updateWaterFilters(waterFilterArea: HideoutArea, production: Production, isGeneratorOn: boolean, pmcData: IPmcData): HideoutArea
|
protected updateWaterFilters(waterFilterArea: HideoutArea, production: Production, isGeneratorOn: boolean, pmcData: IPmcData): HideoutArea
|
||||||
{
|
{
|
||||||
let timeElapsed = this.timeUtil.getTimestamp() - pmcData.Hideout.sptUpdateLastRunTimestamp;
|
|
||||||
// 100 resources last 8 hrs 20 min, 100/8.33/60/60 = 0.00333
|
// 100 resources last 8 hrs 20 min, 100/8.33/60/60 = 0.00333
|
||||||
let filterDrainRate = 0.00333;
|
let filterDrainRate = 0.00333;
|
||||||
// Hideout management resource consumption bonus:
|
// Hideout management resource consumption bonus:
|
||||||
@ -513,21 +512,12 @@ export class HideoutHelper
|
|||||||
const recipe = this.databaseServer.getTables().hideout.production.find(prod => prod._id === HideoutHelper.waterCollector);
|
const recipe = this.databaseServer.getTables().hideout.production.find(prod => prod._id === HideoutHelper.waterCollector);
|
||||||
productionTime = (recipe.productionTime || 0);
|
productionTime = (recipe.productionTime || 0);
|
||||||
|
|
||||||
// Reduce time elapsed (and progress) when generator is off
|
const timeElapsed = this.getTimeElapsedSinceLastServerTick(pmcData, isGeneratorOn);
|
||||||
if (!isGeneratorOn)
|
|
||||||
{
|
|
||||||
timeElapsed = Math.floor(timeElapsed * HideoutHelper.generatorOffMultipler);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (timeElapsed > productionTime)
|
// Get filter drain rate, handle edge case when craft time has gone on longer than total production time
|
||||||
{
|
filterDrainRate *= timeElapsed > productionTime
|
||||||
// We've gone beyond completion
|
? (productionTime - production.Progress)
|
||||||
filterDrainRate *= (productionTime - production.Progress);
|
: timeElapsed;
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
filterDrainRate *= timeElapsed;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Production hasn't completed
|
// Production hasn't completed
|
||||||
if (production.Progress < productionTime)
|
if (production.Progress < productionTime)
|
||||||
@ -582,6 +572,24 @@ export class HideoutHelper
|
|||||||
return waterFilterArea;
|
return waterFilterArea;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get number of ticks that have passed since hideout areas were last processed, reduced when generator is off
|
||||||
|
* @param pmcData Player profile
|
||||||
|
* @param isGeneratorOn Is the generator on for the duration of elapsed time
|
||||||
|
* @returns Amount of time elapsed in seconds
|
||||||
|
*/
|
||||||
|
protected getTimeElapsedSinceLastServerTick(pmcData: IPmcData, isGeneratorOn: boolean): number
|
||||||
|
{
|
||||||
|
// Reduce time elapsed (and progress) when generator is off
|
||||||
|
let timeElapsed = this.timeUtil.getTimestamp() - pmcData.Hideout.sptUpdateLastRunTimestamp;
|
||||||
|
if (!isGeneratorOn)
|
||||||
|
{
|
||||||
|
timeElapsed = Math.floor(timeElapsed * HideoutHelper.generatorOffMultipler);
|
||||||
|
}
|
||||||
|
|
||||||
|
return timeElapsed;
|
||||||
|
}
|
||||||
|
|
||||||
protected getAreaUpdObject(stackCount: number, resourceValue: number, resourceUnitsConsumed: number): Upd
|
protected getAreaUpdObject(stackCount: number, resourceValue: number, resourceUnitsConsumed: number): Upd
|
||||||
{
|
{
|
||||||
return {
|
return {
|
||||||
@ -686,14 +694,14 @@ export class HideoutHelper
|
|||||||
// *******************************************************
|
// *******************************************************
|
||||||
/*
|
/*
|
||||||
public override int InstalledSuppliesCount
|
public override int InstalledSuppliesCount
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return this.int_1;
|
return this.int_1;
|
||||||
}
|
}
|
||||||
protected set
|
protected set
|
||||||
{
|
{
|
||||||
if (this.int_1 === value)
|
if (this.int_1 === value)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user