From c6acab6c11602fc07243c3ba3f5c630c08511079 Mon Sep 17 00:00:00 2001
From: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com>
Date: Mon, 7 Apr 2025 13:02:23 +0200
Subject: [PATCH] feat: No Decoration Build Stage cheat
Closes #1502
---
config.json.example | 1 +
src/controllers/api/placeDecoInComponentController.ts | 3 ++-
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/fr.js | 1 +
static/webui/translations/ru.js | 1 +
static/webui/translations/zh.js | 1 +
9 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/config.json.example b/config.json.example
index 4e52c750..626d2d7b 100644
--- a/config.json.example
+++ b/config.json.example
@@ -34,6 +34,7 @@
"noVendorPurchaseLimits": true,
"instantResourceExtractorDrones": false,
"noDojoRoomBuildStage": false,
+ "noDecoBuildStage": false,
"fastDojoRoomDestruction": false,
"noDojoResearchCosts": false,
"noDojoResearchTime": false,
diff --git a/src/controllers/api/placeDecoInComponentController.ts b/src/controllers/api/placeDecoInComponentController.ts
index 7dab5bbf..a70b07a1 100644
--- a/src/controllers/api/placeDecoInComponentController.ts
+++ b/src/controllers/api/placeDecoInComponentController.ts
@@ -13,6 +13,7 @@ import { GuildPermission } from "@/src/types/guildTypes";
import { RequestHandler } from "express";
import { Types } from "mongoose";
import { ExportDojoRecipes, ExportResources } from "warframe-public-export-plus";
+import { config } from "@/src/services/configService";
export const placeDecoInComponentController: RequestHandler = async (req, res) => {
const accountId = await getAccountIdForRequest(req);
@@ -62,7 +63,7 @@ export const placeDecoInComponentController: RequestHandler = async (req, res) =
guild.VaultShipDecorations!.find(x => x.ItemType == itemType)!.ItemCount -= 1;
}
}
- if (!meta || (meta.price == 0 && meta.ingredients.length == 0)) {
+ if (!meta || (meta.price == 0 && meta.ingredients.length == 0) || config.noDecoBuildStage) {
deco.CompletionTime = new Date();
} else if (
guild.AutoContributeFromVault &&
diff --git a/src/services/configService.ts b/src/services/configService.ts
index 04c47d36..a13f81ad 100644
--- a/src/services/configService.ts
+++ b/src/services/configService.ts
@@ -39,6 +39,7 @@ interface IConfig {
noVendorPurchaseLimits?: boolean;
instantResourceExtractorDrones?: boolean;
noDojoRoomBuildStage?: boolean;
+ noDecoBuildStage?: boolean;
fastDojoRoomDestruction?: boolean;
noDojoResearchCosts?: boolean;
noDojoResearchTime?: boolean;
diff --git a/static/webui/index.html b/static/webui/index.html
index 6468d53a..a35b3b31 100644
--- a/static/webui/index.html
+++ b/static/webui/index.html
@@ -608,6 +608,10 @@
+
+
+
+
diff --git a/static/webui/translations/de.js b/static/webui/translations/de.js
index 51250542..57f50758 100644
--- a/static/webui/translations/de.js
+++ b/static/webui/translations/de.js
@@ -137,6 +137,7 @@ dict = {
cheats_noVendorPurchaseLimits: `Keine Kaufbeschränkungen bei Händlern`,
cheats_instantResourceExtractorDrones: `Sofortige Ressourcen-Extraktor-Drohnen`,
cheats_noDojoRoomBuildStage: `Kein Dojo-Raum-Bauvorgang`,
+ cheats_noDecoBuildStage: `[UNTRANSLATED] No Decoration Build Stage`,
cheats_fastDojoRoomDestruction: `Schnelle Dojo-Raum-Zerstörung`,
cheats_noDojoResearchCosts: `Keine Dojo-Forschungskosten`,
cheats_noDojoResearchTime: `Keine Dojo-Forschungszeit`,
diff --git a/static/webui/translations/en.js b/static/webui/translations/en.js
index 88466019..ec671d4b 100644
--- a/static/webui/translations/en.js
+++ b/static/webui/translations/en.js
@@ -136,6 +136,7 @@ dict = {
cheats_noVendorPurchaseLimits: `No Vendor Purchase Limits`,
cheats_instantResourceExtractorDrones: `Instant Resource Extractor Drones`,
cheats_noDojoRoomBuildStage: `No Dojo Room Build Stage`,
+ cheats_noDecoBuildStage: `No Decoration Build Stage`,
cheats_fastDojoRoomDestruction: `Fast Dojo Room Destruction`,
cheats_noDojoResearchCosts: `No Dojo Research Costs`,
cheats_noDojoResearchTime: `No Dojo Research Time`,
diff --git a/static/webui/translations/fr.js b/static/webui/translations/fr.js
index 2e119445..62c47fee 100644
--- a/static/webui/translations/fr.js
+++ b/static/webui/translations/fr.js
@@ -137,6 +137,7 @@ dict = {
cheats_noVendorPurchaseLimits: `[UNTRANSLATED] No Vendor Purchase Limits`,
cheats_instantResourceExtractorDrones: `Ressources de drone d'extraction instantannées`,
cheats_noDojoRoomBuildStage: `No Dojo Room Build Stage`,
+ cheats_noDecoBuildStage: `[UNTRANSLATED] No Decoration Build Stage`,
cheats_fastDojoRoomDestruction: `[UNTRANSLATED] Fast Dojo Room Destruction`,
cheats_noDojoResearchCosts: `Aucun coût de recherche (Dojo)`,
cheats_noDojoResearchTime: `Aucun temps de recherche (Dojo)`,
diff --git a/static/webui/translations/ru.js b/static/webui/translations/ru.js
index 1543b848..bbb468df 100644
--- a/static/webui/translations/ru.js
+++ b/static/webui/translations/ru.js
@@ -137,6 +137,7 @@ dict = {
cheats_noVendorPurchaseLimits: `Отсутствие лимитов на покупки у вендоров`,
cheats_instantResourceExtractorDrones: `Мгновенные Экстракторы Ресурсов`,
cheats_noDojoRoomBuildStage: `Мгновенное Строительтво Комнат Додзё`,
+ cheats_noDecoBuildStage: `Мгновенное Строительтво Украшений`,
cheats_fastDojoRoomDestruction: `Мгновенные Уничтожение Комнат Додзё`,
cheats_noDojoResearchCosts: `Бесплатные Исследование Додзё`,
cheats_noDojoResearchTime: `Мгновенные Исследование Додзё`,
diff --git a/static/webui/translations/zh.js b/static/webui/translations/zh.js
index 423a47df..856ec742 100644
--- a/static/webui/translations/zh.js
+++ b/static/webui/translations/zh.js
@@ -137,6 +137,7 @@ dict = {
cheats_noVendorPurchaseLimits: `[UNTRANSLATED] No Vendor Purchase Limits`,
cheats_instantResourceExtractorDrones: `即时资源采集无人机`,
cheats_noDojoRoomBuildStage: `无视道场房间建造阶段`,
+ cheats_noDecoBuildStage: `[UNTRANSLATED] No Decoration Build Stage`,
cheats_fastDojoRoomDestruction: `快速拆除道场房间`,
cheats_noDojoResearchCosts: `无视道场研究消耗`,
cheats_noDojoResearchTime: `无视道场研究时间`,