Fix bitcoins being returned in bundles instead of individually

This commit is contained in:
Dev 2024-01-30 13:24:46 +00:00
parent 491a5204bb
commit 81960a23fe

View File

@ -34,7 +34,7 @@ export class HideoutHelper
public static bitcoinFarm = "5d5c205bd582a50d042a3c0e";
public static bitcoinProductionId = "5d5c205bd582a50d042a3c0e";
public static waterCollector = "5d5589c1f934db045e6c5492";
public static bitcoin = "59faff1d86f7746c51718c9c";
public static bitcoinTpl = "59faff1d86f7746c51718c9c";
public static expeditionaryFuelTank = "5d1b371186f774253763a656";
public static maxSkillPoint = 5000;
@ -832,7 +832,7 @@ export class HideoutHelper
{
btcProd.Products.push({
_id: this.hashUtil.generate(),
_tpl: HideoutHelper.bitcoin,
_tpl: HideoutHelper.bitcoinTpl,
upd: { StackObjectsCount: 1 },
});
@ -968,50 +968,48 @@ export class HideoutHelper
return this.httpResponse.appendErrorToOutput(output, errorMsg);
}
// Add each coin individually to player
for (let index = 0; index < craftedCoinCount; index++)
{
const request = {
itemWithModsToAdd: [
{
_id: this.hashUtil.generate(),
_tpl: HideoutHelper.bitcoinTpl,
upd: {
StackObjectsCount: 1
}
}
],
foundInRaid: true,
useSortingTable: false,
callback: null
};
// Add FiR coin to player inventory
this.inventoryHelper.addItemToStash(sessionId, request, pmcData, output);
if (output.warnings.length > 0)
{
return output;
}
}
// Is at max capacity
const coinSlotCount = this.getBTCSlots(pmcData);
const btcCoinCreationRequest = this.createBitcoinRequest(pmcData, coinSlotCount);
if (pmcData.Hideout.Production[HideoutHelper.bitcoinFarm].Products.length >= coinSlotCount)
{
// Set start to now
pmcData.Hideout.Production[HideoutHelper.bitcoinFarm].StartTimestamp = this.timeUtil.getTimestamp();
}
// Add FiR coins to player inventory
this.inventoryHelper.addItemToStash(sessionId, btcCoinCreationRequest, pmcData, output);
// Remove crafted coins from production in profile now they've been collected
// Can only collect all coins, not individially
pmcData.Hideout.Production[HideoutHelper.bitcoinFarm].Products = [];
return output;
}
/**
* Create a bitcoin request object
* @param pmcData Player profile
* @returns IAddItemRequestData
*/
protected createBitcoinRequest(pmcData: IPmcData, coinSlotCount: number): IAddItemDirectRequest
{
return {
itemWithModsToAdd: [
{
_id: this.hashUtil.generate(),
_tpl: HideoutHelper.bitcoin,
upd: {
StackObjectsCount: pmcData.Hideout.Production[HideoutHelper.bitcoinFarm].Products.length
}
}
],
foundInRaid: true,
useSortingTable: false,
callback: () =>
{
// Is at max capacity
if (pmcData.Hideout.Production[HideoutHelper.bitcoinFarm].Products.length >= coinSlotCount)
{
// Set start to now
pmcData.Hideout.Production[HideoutHelper.bitcoinFarm].StartTimestamp = this.timeUtil.getTimestamp();
}
// Remove crafted coins from production in profile now they've been collected
pmcData.Hideout.Production[HideoutHelper.bitcoinFarm].Products = [];
}
};
}
/**
* Upgrade hideout wall from starting level to interactable level if necessary stations have been upgraded
* @param pmcProfile Profile to upgrade wall in