From de77c061204ebe5e0e1d201681f82fdcaf565aec Mon Sep 17 00:00:00 2001 From: Animan8000 Date: Mon, 17 Nov 2025 00:05:05 -0800 Subject: [PATCH] feat: skipAllPopups cheat & update skipAllDialogue (#3035) Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/3035 Reviewed-by: Sainan <63328889+sainan@users.noreply.github.com> Co-authored-by: Animan8000 Co-committed-by: Animan8000 --- src/controllers/api/inventoryController.ts | 7 +++++ src/models/inventoryModels/inventoryModel.ts | 1 + src/types/inventoryTypes/inventoryTypes.ts | 1 + static/fixed_responses/allDialogue.json | 5 ++++ static/fixed_responses/allPopups.json | 27 ++++++++++++++++++++ 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/uk.js | 1 + static/webui/translations/zh.js | 1 + 13 files changed, 52 insertions(+) create mode 100644 static/fixed_responses/allPopups.json diff --git a/src/controllers/api/inventoryController.ts b/src/controllers/api/inventoryController.ts index e68ae983..30dddae1 100644 --- a/src/controllers/api/inventoryController.ts +++ b/src/controllers/api/inventoryController.ts @@ -4,6 +4,7 @@ import type { TInventoryDatabaseDocument } from "../../models/inventoryModels/in import { Inventory } from "../../models/inventoryModels/inventoryModel.ts"; import { config } from "../../services/configService.ts"; import allDialogue from "../../../static/fixed_responses/allDialogue.json" with { type: "json" }; +import allPopups from "../../../static/fixed_responses/allPopups.json" with { type: "json" }; import type { ILoadoutDatabase } from "../../types/saveLoadoutTypes.ts"; import type { IInventoryClient, IShipInventory } from "../../types/inventoryTypes/inventoryTypes.ts"; import { equipmentKeys } from "../../types/inventoryTypes/inventoryTypes.ts"; @@ -326,6 +327,12 @@ export const getInventoryResponse = async ( } } + if (inventory.skipAllPopups) { + for (const str of allPopups) { + addString(inventoryResponse.NodeIntrosCompleted, str); + } + } + if (config.worldState?.baroTennoConRelay) { [ "/Lotus/Types/Items/Events/TennoConRelay2022EarlyAccess", diff --git a/src/models/inventoryModels/inventoryModel.ts b/src/models/inventoryModels/inventoryModel.ts index fa582fa0..162491e2 100644 --- a/src/models/inventoryModels/inventoryModel.ts +++ b/src/models/inventoryModels/inventoryModel.ts @@ -1448,6 +1448,7 @@ const inventorySchema = new Schema( // SNS account cheats skipAllDialogue: Boolean, + skipAllPopups: Boolean, dontSubtractPurchaseCreditCost: Boolean, dontSubtractPurchasePlatinumCost: Boolean, dontSubtractPurchaseItemCost: Boolean, diff --git a/src/types/inventoryTypes/inventoryTypes.ts b/src/types/inventoryTypes/inventoryTypes.ts index 1bc2c61c..50457383 100644 --- a/src/types/inventoryTypes/inventoryTypes.ts +++ b/src/types/inventoryTypes/inventoryTypes.ts @@ -23,6 +23,7 @@ export type InventoryDatabaseEquipment = { // Fields specific to SNS export interface IAccountCheats { skipAllDialogue?: boolean; + skipAllPopups?: boolean; dontSubtractPurchaseCreditCost?: boolean; dontSubtractPurchasePlatinumCost?: boolean; dontSubtractPurchaseItemCost?: boolean; diff --git a/static/fixed_responses/allDialogue.json b/static/fixed_responses/allDialogue.json index 72bdc5b4..b846ebfa 100644 --- a/static/fixed_responses/allDialogue.json +++ b/static/fixed_responses/allDialogue.json @@ -1,4 +1,6 @@ [ + "ArcaneWallConsole", + "CetusHub4", "SolarisUnitedHub1", "/Lotus/Language/SolarisVenus/FishmongerName", "/Lotus/Language/SolarisVenus/ProspectorName", @@ -12,6 +14,7 @@ "SaturnWolf3", "SaturnWolf4", "SaturnWolf5", + "SyndicateFirstPledge", "ConclaveSyndicate", "ArbitersSyndicate", "LibrarySyndicate", @@ -117,6 +120,7 @@ "/Lotus/Language/EntratiLab/EntratiGeneral/Fibonacci", "/Lotus/Language/EntratiLab/EntratiGeneral/BirdThree", "/Lotus/Language/Zariman/Quinn", + "/Lotus/Language/EntratiLab/EntratiGeneral/Tagfer", "/Lotus/Language/EntratiLab/EntratiGeneral/TagferFirstRank1", "VoidVaultIntro", "PurchasePlatformLockedNotificationSeen", @@ -137,6 +141,7 @@ "EntratiLabConquestHardModeUnlocked", "/Lotus/Language/Npcs/KonzuPostNewWar", "/Lotus/Language/SolarisVenus/EudicoPostNewWar", + "/Lotus/Language/FiveFates/KoumeiStatueHubName", "/Lotus/Language/NokkoColony/NokkoVendorName", "NokkoVisions_FirstVisit" ] diff --git a/static/fixed_responses/allPopups.json b/static/fixed_responses/allPopups.json new file mode 100644 index 00000000..a5ee4530 --- /dev/null +++ b/static/fixed_responses/allPopups.json @@ -0,0 +1,27 @@ +[ + "RailjackPlexusTutorial", + "RailjackIntrinsicsTutorial", + "RailjackDryDockTutorial", + "RailjackStarchartTutorial", + "NPE_poponce_ayatans", + "NPE_poponce_sellmodinfo", + "NPE_poponce_transmuteinfo", + "MarketOpened", + "PrimeTokensTutorial", + "WelcomeScreen_Undermind", + "WelcomeScreen_Jade", + "WelcomeScreen_Isleweaver", + "WelcomeScreen_Techrot", + "WelcomeScreen_1999", + "WelcomeScreen_Koumei", + "WelcomeScreen_Dante", + "WelcomeScreen_Whispers", + "WelcomeScreen_Dagath", + "WelcomeScreen_Kullervo", + "EpisodeIntro_RadioLegionIntermission14Syndicate", + "EpisodeIntro_RadioLegionIntermission13Syndicate", + "EpisodeIntro_RadioLegionIntermission12Syndicate", + "EpisodeIntro_RadioLegionIntermission11Syndicate", + "EpisodeIntro_RadioLegionIntermission10Syndicate", + "EpisodeIntro_RadioLegionIntermission9Syndicate" +] diff --git a/static/webui/index.html b/static/webui/index.html index 6f356c97..d1d53f4f 100644 --- a/static/webui/index.html +++ b/static/webui/index.html @@ -960,6 +960,10 @@ +
+ + +
diff --git a/static/webui/translations/de.js b/static/webui/translations/de.js index 65d94ec8..3400ae46 100644 --- a/static/webui/translations/de.js +++ b/static/webui/translations/de.js @@ -212,6 +212,7 @@ dict = { cheats_server: `Server`, cheats_skipTutorial: `Tutorial überspringen`, cheats_skipAllDialogue: `Alle Dialoge überspringen`, + cheats_skipAllPopups: `Alle Popups überspringen`, cheats_unlockAllScans: `Alle Scans freischalten`, cheats_unlockSuccRelog: `Erfolgreich. Bitte beachte, dass du dich neu anmelden musst, damit der Client dies aktualisiert.`, cheats_unlockAllMissions: `Alle Missionen freischalten`, diff --git a/static/webui/translations/en.js b/static/webui/translations/en.js index 890782b5..a265ff97 100644 --- a/static/webui/translations/en.js +++ b/static/webui/translations/en.js @@ -211,6 +211,7 @@ dict = { cheats_server: `Server`, cheats_skipTutorial: `Skip Tutorial`, cheats_skipAllDialogue: `Skip All Dialogue`, + cheats_skipAllPopups: `Skip All Popups`, cheats_unlockAllScans: `Unlock All Scans`, cheats_unlockSuccRelog: `Success. Please note that you'll need to relog for the client to refresh this.`, cheats_unlockAllMissions: `Unlock All Missions`, diff --git a/static/webui/translations/es.js b/static/webui/translations/es.js index 3938ddf2..d66645bb 100644 --- a/static/webui/translations/es.js +++ b/static/webui/translations/es.js @@ -212,6 +212,7 @@ dict = { cheats_server: `Servidor`, cheats_skipTutorial: `Omitir tutorial`, cheats_skipAllDialogue: `Omitir todos los diálogos`, + cheats_skipAllPopups: `[UNTRANSLATED] Skip All Popups`, cheats_unlockAllScans: `Desbloquear todos los escaneos`, cheats_unlockSuccRelog: `Éxito. Ten en cuenta que deberás volver a iniciar sesión para que el cliente se actualice.`, cheats_unlockAllMissions: `Desbloquear todas las misiones`, diff --git a/static/webui/translations/fr.js b/static/webui/translations/fr.js index bed177cb..c308216f 100644 --- a/static/webui/translations/fr.js +++ b/static/webui/translations/fr.js @@ -212,6 +212,7 @@ dict = { cheats_server: `Serveur`, cheats_skipTutorial: `Passer le tutoriel`, cheats_skipAllDialogue: `Passer les dialogues`, + cheats_skipAllPopups: `[UNTRANSLATED] Skip All Popups`, cheats_unlockAllScans: `Débloquer tous les scans`, cheats_unlockSuccRelog: `Succès. Une reconnexion est requise pour appliquer les changements.`, cheats_unlockAllMissions: `Débloquer toutes les missions`, diff --git a/static/webui/translations/ru.js b/static/webui/translations/ru.js index d5b0c633..db0c3400 100644 --- a/static/webui/translations/ru.js +++ b/static/webui/translations/ru.js @@ -212,6 +212,7 @@ dict = { cheats_server: `Сервер`, cheats_skipTutorial: `Пропустить обучение`, cheats_skipAllDialogue: `Пропустить все диалоги`, + cheats_skipAllPopups: `[UNTRANSLATED] Skip All Popups`, cheats_unlockAllScans: `Разблокировать все сканирования`, cheats_unlockSuccRelog: `Успех. Вам необходимо повторно войти в игру, чтобы клиент обновил эту информацию.`, cheats_unlockAllMissions: `Разблокировать все миссии`, diff --git a/static/webui/translations/uk.js b/static/webui/translations/uk.js index 8c79c51d..0db46336 100644 --- a/static/webui/translations/uk.js +++ b/static/webui/translations/uk.js @@ -212,6 +212,7 @@ dict = { cheats_server: `Сервер`, cheats_skipTutorial: `Пропустити навчання`, cheats_skipAllDialogue: `Пропустити всі діалоги`, + cheats_skipAllPopups: `[UNTRANSLATED] Skip All Popups`, cheats_unlockAllScans: `Розблокувати всі сканування`, cheats_unlockSuccRelog: `Успіх. Вам потрібно буде повторно увійти в гру, щоб клієнт оновив цю інформацію.`, cheats_unlockAllMissions: `Розблокувати всі місії`, diff --git a/static/webui/translations/zh.js b/static/webui/translations/zh.js index e95904c0..0fb1dd8a 100644 --- a/static/webui/translations/zh.js +++ b/static/webui/translations/zh.js @@ -212,6 +212,7 @@ dict = { cheats_server: `服务器`, cheats_skipTutorial: `跳过教程`, cheats_skipAllDialogue: `跳过所有对话`, + cheats_skipAllPopups: `[UNTRANSLATED] Skip All Popups`, cheats_unlockAllScans: `解锁所有扫描`, cheats_unlockSuccRelog: `[UNTRANSLATED] Success. Please note that you'll need to relog for the client to refresh this.`, cheats_unlockAllMissions: `解锁所有星图`,