chore: move unlock all profit taker stages to a per-account button #2717
@ -18,7 +18,6 @@
 | 
				
			|||||||
  "unlockAllSkins": false,
 | 
					  "unlockAllSkins": false,
 | 
				
			||||||
  "unlockAllCapturaScenes": false,
 | 
					  "unlockAllCapturaScenes": false,
 | 
				
			||||||
  "fullyStockedVendors": false,
 | 
					  "fullyStockedVendors": false,
 | 
				
			||||||
  "unlockAllProfitTakerStages": false,
 | 
					 | 
				
			||||||
  "skipClanKeyCrafting": false,
 | 
					  "skipClanKeyCrafting": false,
 | 
				
			||||||
  "noDojoRoomBuildStage": false,
 | 
					  "noDojoRoomBuildStage": false,
 | 
				
			||||||
  "noDecoBuildStage": false,
 | 
					  "noDecoBuildStage": false,
 | 
				
			||||||
 | 
				
			|||||||
@ -486,19 +486,6 @@ export const getInventoryResponse = async (
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (config.unlockAllProfitTakerStages) {
 | 
					 | 
				
			||||||
        inventoryResponse.CompletedJobChains ??= [];
 | 
					 | 
				
			||||||
        const EudicoHeists = inventoryResponse.CompletedJobChains.find(x => x.LocationTag == "EudicoHeists");
 | 
					 | 
				
			||||||
        if (EudicoHeists) {
 | 
					 | 
				
			||||||
            EudicoHeists.Jobs = allEudicoHeistJobs;
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            inventoryResponse.CompletedJobChains.push({
 | 
					 | 
				
			||||||
                LocationTag: "EudicoHeists",
 | 
					 | 
				
			||||||
                Jobs: allEudicoHeistJobs
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (config.unlockAllSimarisResearchEntries) {
 | 
					    if (config.unlockAllSimarisResearchEntries) {
 | 
				
			||||||
        inventoryResponse.LibraryPersonalTarget = undefined;
 | 
					        inventoryResponse.LibraryPersonalTarget = undefined;
 | 
				
			||||||
        inventoryResponse.LibraryPersonalProgress = [
 | 
					        inventoryResponse.LibraryPersonalProgress = [
 | 
				
			||||||
@ -515,13 +502,6 @@ export const getInventoryResponse = async (
 | 
				
			|||||||
    return inventoryResponse;
 | 
					    return inventoryResponse;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const allEudicoHeistJobs = [
 | 
					 | 
				
			||||||
    "/Lotus/Types/Gameplay/Venus/Jobs/Heists/HeistProfitTakerBountyOne",
 | 
					 | 
				
			||||||
    "/Lotus/Types/Gameplay/Venus/Jobs/Heists/HeistProfitTakerBountyTwo",
 | 
					 | 
				
			||||||
    "/Lotus/Types/Gameplay/Venus/Jobs/Heists/HeistProfitTakerBountyThree",
 | 
					 | 
				
			||||||
    "/Lotus/Types/Gameplay/Venus/Jobs/Heists/HeistProfitTakerBountyFour"
 | 
					 | 
				
			||||||
];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const getExpRequiredForMr = (rank: number): number => {
 | 
					const getExpRequiredForMr = (rank: number): number => {
 | 
				
			||||||
    if (rank <= 30) {
 | 
					    if (rank <= 30) {
 | 
				
			||||||
        return 2500 * rank * rank;
 | 
					        return 2500 * rank * rank;
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					import { getInventory } from "../../services/inventoryService.ts";
 | 
				
			||||||
 | 
					import { getAccountIdForRequest } from "../../services/loginService.ts";
 | 
				
			||||||
 | 
					import type { RequestHandler } from "express";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const allEudicoHeistJobs = [
 | 
				
			||||||
 | 
					    "/Lotus/Types/Gameplay/Venus/Jobs/Heists/HeistProfitTakerBountyOne",
 | 
				
			||||||
 | 
					    "/Lotus/Types/Gameplay/Venus/Jobs/Heists/HeistProfitTakerBountyTwo",
 | 
				
			||||||
 | 
					    "/Lotus/Types/Gameplay/Venus/Jobs/Heists/HeistProfitTakerBountyThree",
 | 
				
			||||||
 | 
					    "/Lotus/Types/Gameplay/Venus/Jobs/Heists/HeistProfitTakerBountyFour"
 | 
				
			||||||
 | 
					];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const unlockAllProfitTakerStagesController: RequestHandler = async (req, res) => {
 | 
				
			||||||
 | 
					    const accountId = await getAccountIdForRequest(req);
 | 
				
			||||||
 | 
					    const inventory = await getInventory(accountId, "CompletedJobChains");
 | 
				
			||||||
 | 
					    inventory.CompletedJobChains ??= [];
 | 
				
			||||||
 | 
					    const chain = inventory.CompletedJobChains.find(x => x.LocationTag == "EudicoHeists");
 | 
				
			||||||
 | 
					    if (chain) {
 | 
				
			||||||
 | 
					        chain.Jobs = allEudicoHeistJobs;
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        inventory.CompletedJobChains.push({ LocationTag: "EudicoHeists", Jobs: allEudicoHeistJobs });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    await inventory.save();
 | 
				
			||||||
 | 
					    res.end();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@ -14,6 +14,7 @@ import { addMissingMaxRankModsController } from "../controllers/custom/addMissin
 | 
				
			|||||||
import { webuiFileChangeDetectedController } from "../controllers/custom/webuiFileChangeDetectedController.ts";
 | 
					import { webuiFileChangeDetectedController } from "../controllers/custom/webuiFileChangeDetectedController.ts";
 | 
				
			||||||
import { completeAllMissionsController } from "../controllers/custom/completeAllMissionsController.ts";
 | 
					import { completeAllMissionsController } from "../controllers/custom/completeAllMissionsController.ts";
 | 
				
			||||||
import { addMissingHelminthBlueprintsController } from "../controllers/custom/addMissingHelminthBlueprintsController.ts";
 | 
					import { addMissingHelminthBlueprintsController } from "../controllers/custom/addMissingHelminthBlueprintsController.ts";
 | 
				
			||||||
 | 
					import { unlockAllProfitTakerStagesController } from "../controllers/custom/unlockAllProfitTakerStagesController.ts";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { abilityOverrideController } from "../controllers/custom/abilityOverrideController.ts";
 | 
					import { abilityOverrideController } from "../controllers/custom/abilityOverrideController.ts";
 | 
				
			||||||
import { createAccountController } from "../controllers/custom/createAccountController.ts";
 | 
					import { createAccountController } from "../controllers/custom/createAccountController.ts";
 | 
				
			||||||
@ -48,6 +49,7 @@ customRouter.get("/addMissingMaxRankMods", addMissingMaxRankModsController);
 | 
				
			|||||||
customRouter.get("/webuiFileChangeDetected", webuiFileChangeDetectedController);
 | 
					customRouter.get("/webuiFileChangeDetected", webuiFileChangeDetectedController);
 | 
				
			||||||
customRouter.get("/completeAllMissions", completeAllMissionsController);
 | 
					customRouter.get("/completeAllMissions", completeAllMissionsController);
 | 
				
			||||||
customRouter.get("/addMissingHelminthBlueprints", addMissingHelminthBlueprintsController);
 | 
					customRouter.get("/addMissingHelminthBlueprints", addMissingHelminthBlueprintsController);
 | 
				
			||||||
 | 
					customRouter.get("/unlockAllProfitTakerStages", unlockAllProfitTakerStagesController);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
customRouter.post("/abilityOverride", abilityOverrideController);
 | 
					customRouter.post("/abilityOverride", abilityOverrideController);
 | 
				
			||||||
customRouter.post("/createAccount", createAccountController);
 | 
					customRouter.post("/createAccount", createAccountController);
 | 
				
			||||||
 | 
				
			|||||||
@ -26,7 +26,6 @@ export interface IConfig extends IConfigRemovedOptions {
 | 
				
			|||||||
    unlockAllCapturaScenes?: boolean;
 | 
					    unlockAllCapturaScenes?: boolean;
 | 
				
			||||||
    unlockAllDecoRecipes?: boolean;
 | 
					    unlockAllDecoRecipes?: boolean;
 | 
				
			||||||
    fullyStockedVendors?: boolean;
 | 
					    fullyStockedVendors?: boolean;
 | 
				
			||||||
    unlockAllProfitTakerStages?: boolean;
 | 
					 | 
				
			||||||
    skipClanKeyCrafting?: boolean;
 | 
					    skipClanKeyCrafting?: boolean;
 | 
				
			||||||
    noDojoRoomBuildStage?: boolean;
 | 
					    noDojoRoomBuildStage?: boolean;
 | 
				
			||||||
    noDojoDecoBuildStage?: boolean;
 | 
					    noDojoDecoBuildStage?: boolean;
 | 
				
			||||||
@ -105,6 +104,7 @@ export const configRemovedOptionsKeys = [
 | 
				
			|||||||
    "unlockDoubleCapacityPotatoesEverywhere",
 | 
					    "unlockDoubleCapacityPotatoesEverywhere",
 | 
				
			||||||
    "unlockExilusEverywhere",
 | 
					    "unlockExilusEverywhere",
 | 
				
			||||||
    "unlockArcanesEverywhere",
 | 
					    "unlockArcanesEverywhere",
 | 
				
			||||||
 | 
					    "unlockAllProfitTakerStages",
 | 
				
			||||||
    "noDailyStandingLimits",
 | 
					    "noDailyStandingLimits",
 | 
				
			||||||
    "noDailyFocusLimit",
 | 
					    "noDailyFocusLimit",
 | 
				
			||||||
    "noArgonCrystalDecay",
 | 
					    "noArgonCrystalDecay",
 | 
				
			||||||
 | 
				
			|||||||
@ -791,6 +791,7 @@
 | 
				
			|||||||
                                    <button class="btn btn-primary" onclick="debounce(addMissingHelminthRecipes);" data-loc="cheats_addMissingSubsumedAbilities"></button>
 | 
					                                    <button class="btn btn-primary" onclick="debounce(addMissingHelminthRecipes);" data-loc="cheats_addMissingSubsumedAbilities"></button>
 | 
				
			||||||
                                    <button class="btn btn-primary" onclick="doIntrinsicsUnlockAll();" data-loc="cheats_intrinsicsUnlockAll"></button>
 | 
					                                    <button class="btn btn-primary" onclick="doIntrinsicsUnlockAll();" data-loc="cheats_intrinsicsUnlockAll"></button>
 | 
				
			||||||
                                    <button class="btn btn-primary" onclick="debounce(doMaxPlexus);" data-loc="inventory_maxPlexus"></button>
 | 
					                                    <button class="btn btn-primary" onclick="debounce(doMaxPlexus);" data-loc="inventory_maxPlexus"></button>
 | 
				
			||||||
 | 
					                                    <button class="btn btn-primary" onclick="debounce(doUnlockAllProfitTakerStages);" data-loc="cheats_unlockAllProfitTakerStages"></button>
 | 
				
			||||||
                                </div>
 | 
					                                </div>
 | 
				
			||||||
                                <form class="mt-2" onsubmit="doChangeSupportedSyndicate(); return false;">
 | 
					                                <form class="mt-2" onsubmit="doChangeSupportedSyndicate(); return false;">
 | 
				
			||||||
                                    <label class="form-label" for="changeSyndicate" data-loc="cheats_changeSupportedSyndicate"></label>
 | 
					                                    <label class="form-label" for="changeSyndicate" data-loc="cheats_changeSupportedSyndicate"></label>
 | 
				
			||||||
@ -846,10 +847,6 @@
 | 
				
			|||||||
                                        <input class="form-check-input" type="checkbox" id="fullyStockedVendors" />
 | 
					                                        <input class="form-check-input" type="checkbox" id="fullyStockedVendors" />
 | 
				
			||||||
                                        <label class="form-check-label" for="fullyStockedVendors" data-loc="cheats_fullyStockedVendors"></label>
 | 
					                                        <label class="form-check-label" for="fullyStockedVendors" data-loc="cheats_fullyStockedVendors"></label>
 | 
				
			||||||
                                    </div>
 | 
					                                    </div>
 | 
				
			||||||
                                    <div class="form-check">
 | 
					 | 
				
			||||||
                                        <input class="form-check-input" type="checkbox" id="unlockAllProfitTakerStages" />
 | 
					 | 
				
			||||||
                                        <label class="form-check-label" for="unlockAllProfitTakerStages" data-loc="cheats_unlockAllProfitTakerStages"></label>
 | 
					 | 
				
			||||||
                                    </div>
 | 
					 | 
				
			||||||
                                    <div class="form-check">
 | 
					                                    <div class="form-check">
 | 
				
			||||||
                                        <input class="form-check-input" type="checkbox" id="skipClanKeyCrafting" />
 | 
					                                        <input class="form-check-input" type="checkbox" id="skipClanKeyCrafting" />
 | 
				
			||||||
                                        <label class="form-check-label" for="skipClanKeyCrafting" data-loc="cheats_skipClanKeyCrafting"></label>
 | 
					                                        <label class="form-check-label" for="skipClanKeyCrafting" data-loc="cheats_skipClanKeyCrafting"></label>
 | 
				
			||||||
 | 
				
			|||||||
@ -2719,6 +2719,12 @@ async function doUnlockAllMissions() {
 | 
				
			|||||||
    toast(loc("cheats_unlockAllMissions_ok"));
 | 
					    toast(loc("cheats_unlockAllMissions_ok"));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					async function doUnlockAllProfitTakerStages() {
 | 
				
			||||||
 | 
					    await revalidateAuthz();
 | 
				
			||||||
 | 
					    await fetch("/custom/unlockAllProfitTakerStages?" + window.authz);
 | 
				
			||||||
 | 
					    toast(loc("cheats_unlockSucc"));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const importSamples = {
 | 
					const importSamples = {
 | 
				
			||||||
    maxFocus: {
 | 
					    maxFocus: {
 | 
				
			||||||
        FocusUpgrades: [
 | 
					        FocusUpgrades: [
 | 
				
			||||||
 | 
				
			|||||||
@ -210,6 +210,7 @@ dict = {
 | 
				
			|||||||
    cheats_baroFullyStocked: `Baro hat volles Inventar`,
 | 
					    cheats_baroFullyStocked: `Baro hat volles Inventar`,
 | 
				
			||||||
    cheats_syndicateMissionsRepeatable: `Syndikat-Missionen wiederholbar`,
 | 
					    cheats_syndicateMissionsRepeatable: `Syndikat-Missionen wiederholbar`,
 | 
				
			||||||
    cheats_unlockAllProfitTakerStages: `Alle Profiteintreiber-Phasen freischalten`,
 | 
					    cheats_unlockAllProfitTakerStages: `Alle Profiteintreiber-Phasen freischalten`,
 | 
				
			||||||
 | 
					    cheats_unlockSucc: `[UNTRANSLATED] Successfully unlocked.`,
 | 
				
			||||||
    cheats_instantFinishRivenChallenge: `Riven-Mod Herausforderung sofort abschließen`,
 | 
					    cheats_instantFinishRivenChallenge: `Riven-Mod Herausforderung sofort abschließen`,
 | 
				
			||||||
    cheats_instantResourceExtractorDrones: `Sofortige Ressourcen-Extraktor-Drohnen`,
 | 
					    cheats_instantResourceExtractorDrones: `Sofortige Ressourcen-Extraktor-Drohnen`,
 | 
				
			||||||
    cheats_noResourceExtractorDronesDamage: `Kein Schaden für Ressourcen-Extraktor-Drohnen`,
 | 
					    cheats_noResourceExtractorDronesDamage: `Kein Schaden für Ressourcen-Extraktor-Drohnen`,
 | 
				
			||||||
 | 
				
			|||||||
@ -209,6 +209,7 @@ dict = {
 | 
				
			|||||||
    cheats_baroFullyStocked: `Baro Fully Stocked`,
 | 
					    cheats_baroFullyStocked: `Baro Fully Stocked`,
 | 
				
			||||||
    cheats_syndicateMissionsRepeatable: `Syndicate Missions Repeatable`,
 | 
					    cheats_syndicateMissionsRepeatable: `Syndicate Missions Repeatable`,
 | 
				
			||||||
    cheats_unlockAllProfitTakerStages: `Unlock All Profit Taker Stages`,
 | 
					    cheats_unlockAllProfitTakerStages: `Unlock All Profit Taker Stages`,
 | 
				
			||||||
 | 
					    cheats_unlockSucc: `Successfully unlocked.`,
 | 
				
			||||||
    cheats_instantFinishRivenChallenge: `Instant Finish Riven Challenge`,
 | 
					    cheats_instantFinishRivenChallenge: `Instant Finish Riven Challenge`,
 | 
				
			||||||
    cheats_instantResourceExtractorDrones: `Instant Resource Extractor Drones`,
 | 
					    cheats_instantResourceExtractorDrones: `Instant Resource Extractor Drones`,
 | 
				
			||||||
    cheats_noResourceExtractorDronesDamage: `No Resource Extractor Drones Damage`,
 | 
					    cheats_noResourceExtractorDronesDamage: `No Resource Extractor Drones Damage`,
 | 
				
			||||||
 | 
				
			|||||||
@ -210,6 +210,7 @@ dict = {
 | 
				
			|||||||
    cheats_baroFullyStocked: `Baro con stock completo`,
 | 
					    cheats_baroFullyStocked: `Baro con stock completo`,
 | 
				
			||||||
    cheats_syndicateMissionsRepeatable: `Misiones de sindicato rejugables`,
 | 
					    cheats_syndicateMissionsRepeatable: `Misiones de sindicato rejugables`,
 | 
				
			||||||
    cheats_unlockAllProfitTakerStages: `Desbloquea todas las etapas del Roba-ganancias`,
 | 
					    cheats_unlockAllProfitTakerStages: `Desbloquea todas las etapas del Roba-ganancias`,
 | 
				
			||||||
 | 
					    cheats_unlockSucc: `[UNTRANSLATED] Successfully unlocked.`,
 | 
				
			||||||
    cheats_instantFinishRivenChallenge: `Terminar desafío de agrietado inmediatamente`,
 | 
					    cheats_instantFinishRivenChallenge: `Terminar desafío de agrietado inmediatamente`,
 | 
				
			||||||
    cheats_instantResourceExtractorDrones: `Drones de extracción de recursos instantáneos`,
 | 
					    cheats_instantResourceExtractorDrones: `Drones de extracción de recursos instantáneos`,
 | 
				
			||||||
    cheats_noResourceExtractorDronesDamage: `Sin daño a los drones extractores de recursos`,
 | 
					    cheats_noResourceExtractorDronesDamage: `Sin daño a los drones extractores de recursos`,
 | 
				
			||||||
 | 
				
			|||||||
@ -210,6 +210,7 @@ dict = {
 | 
				
			|||||||
    cheats_baroFullyStocked: `Stock de Baro au max`,
 | 
					    cheats_baroFullyStocked: `Stock de Baro au max`,
 | 
				
			||||||
    cheats_syndicateMissionsRepeatable: `Mission syndicat répétables`,
 | 
					    cheats_syndicateMissionsRepeatable: `Mission syndicat répétables`,
 | 
				
			||||||
    cheats_unlockAllProfitTakerStages: `Débloquer toutes les étapes du Preneur de Profit`,
 | 
					    cheats_unlockAllProfitTakerStages: `Débloquer toutes les étapes du Preneur de Profit`,
 | 
				
			||||||
 | 
					    cheats_unlockSucc: `[UNTRANSLATED] Successfully unlocked.`,
 | 
				
			||||||
    cheats_instantFinishRivenChallenge: `Débloquer le challenge Riven instantanément`,
 | 
					    cheats_instantFinishRivenChallenge: `Débloquer le challenge Riven instantanément`,
 | 
				
			||||||
    cheats_instantResourceExtractorDrones: `Ressources de drones d'extraction instantannées`,
 | 
					    cheats_instantResourceExtractorDrones: `Ressources de drones d'extraction instantannées`,
 | 
				
			||||||
    cheats_noResourceExtractorDronesDamage: `Aucun dégâts aux drones d'extraction de resources`,
 | 
					    cheats_noResourceExtractorDronesDamage: `Aucun dégâts aux drones d'extraction de resources`,
 | 
				
			||||||
 | 
				
			|||||||
@ -210,6 +210,7 @@ dict = {
 | 
				
			|||||||
    cheats_baroFullyStocked: `Баро полностью укомплектован`,
 | 
					    cheats_baroFullyStocked: `Баро полностью укомплектован`,
 | 
				
			||||||
    cheats_syndicateMissionsRepeatable: `Повторять миссии синдиката`,
 | 
					    cheats_syndicateMissionsRepeatable: `Повторять миссии синдиката`,
 | 
				
			||||||
    cheats_unlockAllProfitTakerStages: `Разблокировать все этапы Сферы извлечения прибыли`,
 | 
					    cheats_unlockAllProfitTakerStages: `Разблокировать все этапы Сферы извлечения прибыли`,
 | 
				
			||||||
 | 
					    cheats_unlockSucc: `[UNTRANSLATED] Successfully unlocked.`,
 | 
				
			||||||
    cheats_instantFinishRivenChallenge: `Мгновенное завершение испытания мода Разлома`,
 | 
					    cheats_instantFinishRivenChallenge: `Мгновенное завершение испытания мода Разлома`,
 | 
				
			||||||
    cheats_instantResourceExtractorDrones: `Мгновенно добывающие Дроны-сборщики`,
 | 
					    cheats_instantResourceExtractorDrones: `Мгновенно добывающие Дроны-сборщики`,
 | 
				
			||||||
    cheats_noResourceExtractorDronesDamage: `Без урона по Дронам-сборщикам`,
 | 
					    cheats_noResourceExtractorDronesDamage: `Без урона по Дронам-сборщикам`,
 | 
				
			||||||
 | 
				
			|||||||
@ -210,6 +210,7 @@ dict = {
 | 
				
			|||||||
    cheats_baroFullyStocked: `Баро повністю укомплектований`,
 | 
					    cheats_baroFullyStocked: `Баро повністю укомплектований`,
 | 
				
			||||||
    cheats_syndicateMissionsRepeatable: `Повторювати місії синдиката`,
 | 
					    cheats_syndicateMissionsRepeatable: `Повторювати місії синдиката`,
 | 
				
			||||||
    cheats_unlockAllProfitTakerStages: `Розблокувати всі етапи Привласнювачки`,
 | 
					    cheats_unlockAllProfitTakerStages: `Розблокувати всі етапи Привласнювачки`,
 | 
				
			||||||
 | 
					    cheats_unlockSucc: `[UNTRANSLATED] Successfully unlocked.`,
 | 
				
			||||||
    cheats_instantFinishRivenChallenge: `Миттєве завершення випробування модифікатора Розколу`,
 | 
					    cheats_instantFinishRivenChallenge: `Миттєве завершення випробування модифікатора Розколу`,
 | 
				
			||||||
    cheats_instantResourceExtractorDrones: `Миттєво добуваючі Дрони-видобувачі`,
 | 
					    cheats_instantResourceExtractorDrones: `Миттєво добуваючі Дрони-видобувачі`,
 | 
				
			||||||
    cheats_noResourceExtractorDronesDamage: `Без шкоди по Дронам-видобувачам`,
 | 
					    cheats_noResourceExtractorDronesDamage: `Без шкоди по Дронам-видобувачам`,
 | 
				
			||||||
 | 
				
			|||||||
@ -210,6 +210,7 @@ dict = {
 | 
				
			|||||||
    cheats_baroFullyStocked: `虚空商人贩卖所有商品`,
 | 
					    cheats_baroFullyStocked: `虚空商人贩卖所有商品`,
 | 
				
			||||||
    cheats_syndicateMissionsRepeatable: `集团任务可重复完成`,
 | 
					    cheats_syndicateMissionsRepeatable: `集团任务可重复完成`,
 | 
				
			||||||
    cheats_unlockAllProfitTakerStages: `解锁利润收割者圆蛛所有阶段`,
 | 
					    cheats_unlockAllProfitTakerStages: `解锁利润收割者圆蛛所有阶段`,
 | 
				
			||||||
 | 
					    cheats_unlockSucc: `[UNTRANSLATED] Successfully unlocked.`,
 | 
				
			||||||
    cheats_instantFinishRivenChallenge: `立即完成裂罅挑战`,
 | 
					    cheats_instantFinishRivenChallenge: `立即完成裂罅挑战`,
 | 
				
			||||||
    cheats_instantResourceExtractorDrones: `资源无人机即时完成`,
 | 
					    cheats_instantResourceExtractorDrones: `资源无人机即时完成`,
 | 
				
			||||||
    cheats_noResourceExtractorDronesDamage: `资源无人机不会损毁`,
 | 
					    cheats_noResourceExtractorDronesDamage: `资源无人机不会损毁`,
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user