From c8ae3d688f6dd817aa22e939500b0f40462f5564 Mon Sep 17 00:00:00 2001
From: Sainan <63328889+Sainan@users.noreply.github.com>
Date: Mon, 14 Apr 2025 07:14:15 -0700
Subject: [PATCH] feat: noResourceExtractorDronesDamage cheat (#1613)
Closes #1609
Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1613
Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com>
Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
---
config.json.example | 1 +
src/controllers/api/dronesController.ts | 2 +-
src/services/configService.ts | 1 +
static/webui/index.html | 4 ++++
static/webui/translations/de.js | 1 +
static/webui/translations/en.js | 1 +
static/webui/translations/es.js | 1 +
static/webui/translations/fr.js | 1 +
static/webui/translations/ru.js | 1 +
static/webui/translations/zh.js | 1 +
10 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/config.json.example b/config.json.example
index a813d093..907f8af7 100644
--- a/config.json.example
+++ b/config.json.example
@@ -34,6 +34,7 @@
"noVendorPurchaseLimits": true,
"noKimCooldowns": false,
"instantResourceExtractorDrones": false,
+ "noResourceExtractorDronesDamage": false,
"noDojoRoomBuildStage": false,
"noDecoBuildStage": false,
"fastDojoRoomDestruction": false,
diff --git a/src/controllers/api/dronesController.ts b/src/controllers/api/dronesController.ts
index 97e0d478..f319773b 100644
--- a/src/controllers/api/dronesController.ts
+++ b/src/controllers/api/dronesController.ts
@@ -55,7 +55,7 @@ export const dronesController: RequestHandler = async (req, res) => {
? new Date()
: new Date(Date.now() + getRandomInt(3 * 3600 * 1000, 4 * 3600 * 1000));
drone.PendingDamage =
- Math.random() < system.damageChance
+ !config.noResourceExtractorDronesDamage && Math.random() < system.damageChance
? getRandomInt(system.droneDamage.minValue, system.droneDamage.maxValue)
: 0;
const resource = getRandomWeightedRewardUc(system.resources, droneMeta.probabilities)!;
diff --git a/src/services/configService.ts b/src/services/configService.ts
index c584a1fb..88a6634a 100644
--- a/src/services/configService.ts
+++ b/src/services/configService.ts
@@ -40,6 +40,7 @@ interface IConfig {
noVendorPurchaseLimits?: boolean;
noKimCooldowns?: boolean;
instantResourceExtractorDrones?: boolean;
+ noResourceExtractorDronesDamage?: boolean;
noDojoRoomBuildStage?: boolean;
noDojoDecoBuildStage?: boolean;
fastDojoRoomDestruction?: boolean;
diff --git a/static/webui/index.html b/static/webui/index.html
index 38eb3e54..d4a900c3 100644
--- a/static/webui/index.html
+++ b/static/webui/index.html
@@ -615,6 +615,10 @@
+
+
+
+
diff --git a/static/webui/translations/de.js b/static/webui/translations/de.js
index 31f9dc32..047b3b7d 100644
--- a/static/webui/translations/de.js
+++ b/static/webui/translations/de.js
@@ -139,6 +139,7 @@ dict = {
cheats_noVendorPurchaseLimits: `Keine Kaufbeschränkungen bei Händlern`,
cheats_noKimCooldowns: `Keine Wartezeit bei KIM`,
cheats_instantResourceExtractorDrones: `Sofortige Ressourcen-Extraktor-Drohnen`,
+ cheats_noResourceExtractorDronesDamage: `[UNTRANSLATED] No Resource Extractor Drones Damage`,
cheats_noDojoRoomBuildStage: `Kein Dojo-Raum-Bauvorgang`,
cheats_noDojoDecoBuildStage: `Kein Dojo-Deko-Bauvorgang`,
cheats_fastDojoRoomDestruction: `Schnelle Dojo-Raum-Zerstörung`,
diff --git a/static/webui/translations/en.js b/static/webui/translations/en.js
index 3c9db66f..01a97404 100644
--- a/static/webui/translations/en.js
+++ b/static/webui/translations/en.js
@@ -138,6 +138,7 @@ dict = {
cheats_noVendorPurchaseLimits: `No Vendor Purchase Limits`,
cheats_noKimCooldowns: `No KIM Cooldowns`,
cheats_instantResourceExtractorDrones: `Instant Resource Extractor Drones`,
+ cheats_noResourceExtractorDronesDamage: `No Resource Extractor Drones Damage`,
cheats_noDojoRoomBuildStage: `No Dojo Room Build Stage`,
cheats_noDojoDecoBuildStage: `No Dojo Deco Build Stage`,
cheats_fastDojoRoomDestruction: `Fast Dojo Room Destruction`,
diff --git a/static/webui/translations/es.js b/static/webui/translations/es.js
index e67352cb..b918d6c0 100644
--- a/static/webui/translations/es.js
+++ b/static/webui/translations/es.js
@@ -139,6 +139,7 @@ dict = {
cheats_noVendorPurchaseLimits: `Sin límite de compras de vendedores`,
cheats_noKimCooldowns: `Sin tiempo de espera para conversaciones KIM`,
cheats_instantResourceExtractorDrones: `Drones de extracción de recursos instantáneos`,
+ cheats_noResourceExtractorDronesDamage: `[UNTRANSLATED] No Resource Extractor Drones Damage`,
cheats_noDojoRoomBuildStage: `Sin etapa de construcción de sala del dojo`,
cheats_noDojoDecoBuildStage: `Sin etapa de construcción de decoraciones del dojo`,
cheats_fastDojoRoomDestruction: `Destrucción rápida de salas del dojo`,
diff --git a/static/webui/translations/fr.js b/static/webui/translations/fr.js
index 90188be4..e2ebd5e7 100644
--- a/static/webui/translations/fr.js
+++ b/static/webui/translations/fr.js
@@ -139,6 +139,7 @@ dict = {
cheats_noVendorPurchaseLimits: `[UNTRANSLATED] No Vendor Purchase Limits`,
cheats_noKimCooldowns: `[UNTRANSLATED] No KIM Cooldowns`,
cheats_instantResourceExtractorDrones: `Ressources de drone d'extraction instantannées`,
+ cheats_noResourceExtractorDronesDamage: `[UNTRANSLATED] No Resource Extractor Drones Damage`,
cheats_noDojoRoomBuildStage: `No Dojo Room Build Stage`,
cheats_noDojoDecoBuildStage: `[UNTRANSLATED] No Dojo Deco Build Stage`,
cheats_fastDojoRoomDestruction: `[UNTRANSLATED] Fast Dojo Room Destruction`,
diff --git a/static/webui/translations/ru.js b/static/webui/translations/ru.js
index 8682cca4..1def5df7 100644
--- a/static/webui/translations/ru.js
+++ b/static/webui/translations/ru.js
@@ -139,6 +139,7 @@ dict = {
cheats_noVendorPurchaseLimits: `Отсутствие лимитов на покупки у вендоров`,
cheats_noKimCooldowns: `[UNTRANSLATED] No KIM Cooldowns`,
cheats_instantResourceExtractorDrones: `Мгновенные Экстракторы Ресурсов`,
+ cheats_noResourceExtractorDronesDamage: `[UNTRANSLATED] No Resource Extractor Drones Damage`,
cheats_noDojoRoomBuildStage: `Мгновенное Строительтво Комнат Додзё`,
cheats_noDojoDecoBuildStage: `Мгновенное Строительтво Декораций Додзё`,
cheats_fastDojoRoomDestruction: `Мгновенные Уничтожение Комнат Додзё`,
diff --git a/static/webui/translations/zh.js b/static/webui/translations/zh.js
index 2f720067..1ee2ea4c 100644
--- a/static/webui/translations/zh.js
+++ b/static/webui/translations/zh.js
@@ -139,6 +139,7 @@ dict = {
cheats_noVendorPurchaseLimits: `[UNTRANSLATED] No Vendor Purchase Limits`,
cheats_noKimCooldowns: `[UNTRANSLATED] No KIM Cooldowns`,
cheats_instantResourceExtractorDrones: `即时资源采集无人机`,
+ cheats_noResourceExtractorDronesDamage: `[UNTRANSLATED] No Resource Extractor Drones Damage`,
cheats_noDojoRoomBuildStage: `无视道场房间建造阶段`,
cheats_noDojoDecoBuildStage: `[UNTRANSLATED] No Dojo Deco Build Stage`,
cheats_fastDojoRoomDestruction: `快速拆除道场房间`,