From 76f544693be0f38a0b223777cc8c4896e9f3bd1c Mon Sep 17 00:00:00 2001 From: Sainan Date: Sun, 2 Mar 2025 17:27:25 +0100 Subject: [PATCH] add instantResourceExtractorDrones cheat --- config.json.example | 1 + src/controllers/api/dronesController.ts | 6 +++--- src/services/configService.ts | 1 + static/webui/index.html | 4 ++++ static/webui/translations/en.js | 1 + static/webui/translations/ru.js | 1 + 6 files changed, 11 insertions(+), 3 deletions(-) diff --git a/config.json.example b/config.json.example index 04add3df..c6b12971 100644 --- a/config.json.example +++ b/config.json.example @@ -31,6 +31,7 @@ "unlockExilusEverywhere": true, "unlockArcanesEverywhere": true, "noDailyStandingLimits": true, + "instantResourceExtractorDrones": false, "noDojoResearchCosts": true, "noDojoResearchTime": true, "spoofMasteryRank": -1 diff --git a/src/controllers/api/dronesController.ts b/src/controllers/api/dronesController.ts index 7ec3714b..aaf30461 100644 --- a/src/controllers/api/dronesController.ts +++ b/src/controllers/api/dronesController.ts @@ -1,4 +1,5 @@ import { toMongoDate, toOid } from "@/src/helpers/inventoryHelpers"; +import { config } from "@/src/services/configService"; import { addMiscItems, getInventory } from "@/src/services/inventoryService"; import { getAccountIdForRequest } from "@/src/services/loginService"; import { getRandomElement, getRandomInt } from "@/src/services/rngService"; @@ -37,10 +38,9 @@ export const dronesController: RequestHandler = async (req, res) => { ActiveDrones: activeDrones }); } else if ("droneId" in req.query && "systemIndex" in req.query) { - const instantResourceDrones = true; const drone = inventory.Drones.id(req.query.droneId as string)!; const droneMeta = ExportDrones[drone.ItemType]; - drone.DeployTime = instantResourceDrones ? new Date(0) : new Date(); + drone.DeployTime = config.instantResourceExtractorDrones ? new Date(0) : new Date(); if (drone.RepairStart) { const repairMinutes = (Date.now() - drone.RepairStart.getTime()) / 60_000; const hpPerMinute = droneMeta.repairRate / 60; @@ -50,7 +50,7 @@ export const dronesController: RequestHandler = async (req, res) => { drone.System = parseInt(req.query.systemIndex as string); const system = ExportSystems[drone.System - 1]; if (Math.random() < system.damageChance) { - drone.DamageTime = instantResourceDrones + drone.DamageTime = config.instantResourceExtractorDrones ? new Date() : new Date(Date.now() + getRandomInt(3, 4) * 3600_000); drone.PendingDamage = getRandomInt(system.droneDamage.minValue, system.droneDamage.maxValue); diff --git a/src/services/configService.ts b/src/services/configService.ts index 466b062c..83571774 100644 --- a/src/services/configService.ts +++ b/src/services/configService.ts @@ -57,6 +57,7 @@ interface IConfig { unlockExilusEverywhere?: boolean; unlockArcanesEverywhere?: boolean; noDailyStandingLimits?: boolean; + instantResourceExtractorDrones?: boolean; noDojoResearchCosts?: boolean; noDojoResearchTime?: boolean; spoofMasteryRank?: number; diff --git a/static/webui/index.html b/static/webui/index.html index 57e35b47..72dd4de9 100644 --- a/static/webui/index.html +++ b/static/webui/index.html @@ -517,6 +517,10 @@ +
+ + +
diff --git a/static/webui/translations/en.js b/static/webui/translations/en.js index dd8f5d0b..406a61dd 100644 --- a/static/webui/translations/en.js +++ b/static/webui/translations/en.js @@ -111,6 +111,7 @@ dict = { cheats_unlockExilusEverywhere: `Exilus Adapters Everywhere`, cheats_unlockArcanesEverywhere: `Arcane Adapters Everywhere`, cheats_noDailyStandingLimits: `No Daily Standing Limits`, + cheats_instantResourceExtractorDrones: `Instant Resource Extractor Drones`, cheats_noDojoResearchCosts: `No Dojo Research Costs`, cheats_noDojoResearchTime: `No Dojo Research Time`, cheats_spoofMasteryRank: `Spoofed Mastery Rank (-1 to disable)`, diff --git a/static/webui/translations/ru.js b/static/webui/translations/ru.js index a8a2e3ac..a5bc1a4c 100644 --- a/static/webui/translations/ru.js +++ b/static/webui/translations/ru.js @@ -112,6 +112,7 @@ dict = { cheats_unlockExilusEverywhere: `Адаптеры Эксилус везде`, cheats_unlockArcanesEverywhere: `Адаптеры для мистификаторов везде`, cheats_noDailyStandingLimits: `Без ежедневных ограничений репутации`, + cheats_instantResourceExtractorDrones: `[UNTRANSLATED] Instant Resource Extractor Drones`, cheats_noDojoResearchCosts: `[UNTRANSLATED] No Dojo Research Costs`, cheats_noDojoResearchTime: `[UNTRANSLATED] No Dojo Research Time`, cheats_spoofMasteryRank: `Подделанный ранг мастерства (-1 для отключения)`,