From 0e9078320c1988a8109a73076e3fc56e854e4f0e Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Fri, 27 Jun 2025 05:34:26 +0200 Subject: [PATCH] boosters --- src/controllers/custom/setBoosterController.ts | 4 ++-- src/services/missionInventoryUpdateService.ts | 14 ++++++++++++++ static/webui/script.js | 3 +-- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/controllers/custom/setBoosterController.ts b/src/controllers/custom/setBoosterController.ts index 28939614..b0a1ddbf 100644 --- a/src/controllers/custom/setBoosterController.ts +++ b/src/controllers/custom/setBoosterController.ts @@ -23,9 +23,9 @@ export const setBoosterController: RequestHandler = async (req, res) => { res.status(400).send("Invalid ItemType provided."); return; } - const now = Math.floor(Date.now() / 1000); + const now = Math.trunc(Date.now() / 1000); for (const { ItemType, ExpiryDate } of requests) { - if (ExpiryDate < now) { + if (ExpiryDate <= now) { // remove expired boosters const index = boosters.findIndex(item => item.ItemType === ItemType); if (index !== -1) { diff --git a/src/services/missionInventoryUpdateService.ts b/src/services/missionInventoryUpdateService.ts index 445c02fe..d44b06fb 100644 --- a/src/services/missionInventoryUpdateService.ts +++ b/src/services/missionInventoryUpdateService.ts @@ -1426,6 +1426,20 @@ export const addCredits = async ( const totalCredits = finalCredits.MissionCredits[1] + finalCredits.CreditsBonus[1] + rngRewardCredits; finalCredits.TotalCredits = [totalCredits, totalCredits]; + if (config.worldState?.creditBoost) { + inventory.RegularCredits += finalCredits.TotalCredits[1]; + finalCredits.TotalCredits[1] += finalCredits.TotalCredits[1]; + } + const now = Math.trunc(Date.now() / 1000); + if ((inventory.Boosters.find(x => x.ItemType == "/Lotus/Types/Boosters/CreditBooster")?.ExpiryDate ?? 0) > now) { + inventory.RegularCredits += finalCredits.TotalCredits[1]; + finalCredits.TotalCredits[1] += finalCredits.TotalCredits[1]; + } + if ((inventory.Boosters.find(x => x.ItemType == "/Lotus/Types/Boosters/CreditBlessing")?.ExpiryDate ?? 0) > now) { + inventory.RegularCredits += finalCredits.TotalCredits[1]; + finalCredits.TotalCredits[1] += finalCredits.TotalCredits[1]; + } + return finalCredits; }; diff --git a/static/webui/script.js b/static/webui/script.js index 91cc54a1..60ef4cad 100644 --- a/static/webui/script.js +++ b/static/webui/script.js @@ -2275,14 +2275,13 @@ function doAcquireBoosters() { const ExpiryDate = Date.now() / 1000 + 3 * 24 * 60 * 60; // default 3 days setBooster(uniqueName, ExpiryDate, () => { $("#acquire-type-Boosters").val(""); - updateInventory(); }); } function doChangeBoosterExpiry(ItemType, ExpiryDateInput) { console.log("Changing booster expiry for", ItemType, "to", ExpiryDateInput.value); // cast local datetime string to unix timestamp - const ExpiryDate = new Date(ExpiryDateInput.value).getTime() / 1000; + const ExpiryDate = Math.trunc(new Date(ExpiryDateInput.value).getTime() / 1000); if (isNaN(ExpiryDate)) { ExpiryDateInput.addClass("is-invalid").focus(); return false;