返回提交历史
Renamed
src/controllers/custom/unlockAllJobChainBountiesController.ts
+22
-4
Modified
src/routes/custom.ts
+2
-2
Modified
static/webui/index.html
+1
-1
Modified
static/webui/script.js
+2
-2
Modified
static/webui/translations/de.js
+1
-1
Modified
static/webui/translations/en.js
+1
-1
Modified
static/webui/translations/es.js
+1
-1
Modified
static/webui/translations/fr.js
+1
-1
Modified
static/webui/translations/ru.js
+1
-1
Modified
static/webui/translations/uk.js
+1
-1
Modified
static/webui/translations/zh.js
+1
-1
XFEstudio/XFESpaceNinjaServer
feat(webui): unlock all job chain bounties (#3113)
Replaces unlock all profit taker stages. Needed for Venus to be gilded (steel path completion indicator). A bit unsure if the SP bounty rotates in some way, but just adding A-C should eliminate any such potential problems. Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/3113 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
3a87c4a1
代码差异
11 个文件
+34
-16
@@ -10,16 +10,34 @@ const allEudicoHeistJobs = [
10
10
"/Lotus/Types/Gameplay/Venus/Jobs/Heists/HeistProfitTakerBountyFour"
11
11
];
12
12
13
export const unlockAllProfitTakerStagesController: RequestHandler = async (req, res) => {
13
const allNokkoColonyJobs = [
14
"/Lotus/Types/Gameplay/NokkoColony/Jobs/NokkoJobA",
15
"/Lotus/Types/Gameplay/NokkoColony/Jobs/NokkoJobB",
16
"/Lotus/Types/Gameplay/NokkoColony/Jobs/NokkoJobC",
17
"/Lotus/Types/Gameplay/NokkoColony/Jobs/NokkoJobSteelPathA",
18
"/Lotus/Types/Gameplay/NokkoColony/Jobs/NokkoJobSteelPathB",
19
"/Lotus/Types/Gameplay/NokkoColony/Jobs/NokkoJobSteelPathC"
20
];
21
22
export const unlockAllJobChainBountiesController: RequestHandler = async (req, res) => {
14
23
const accountId = await getAccountIdForRequest(req);
15
24
const inventory = await getInventory(accountId, "CompletedJobChains");
16
25
inventory.CompletedJobChains ??= [];
17
const chain = inventory.CompletedJobChains.find(x => x.LocationTag == "EudicoHeists");
18
if (chain) {
19
chain.Jobs = allEudicoHeistJobs;
26
27
const eudicoHeistsChain = inventory.CompletedJobChains.find(x => x.LocationTag == "EudicoHeists");
28
if (eudicoHeistsChain) {
29
eudicoHeistsChain.Jobs = allEudicoHeistJobs;
20
30
} else {
21
31
inventory.CompletedJobChains.push({ LocationTag: "EudicoHeists", Jobs: allEudicoHeistJobs });
22
32
}
33
34
const nokkoColonyChain = inventory.CompletedJobChains.find(x => x.LocationTag == "NokkoColony");
35
if (nokkoColonyChain) {
36
nokkoColonyChain.Jobs = allNokkoColonyJobs;
37
} else {
38
inventory.CompletedJobChains.push({ LocationTag: "NokkoColony", Jobs: allNokkoColonyJobs });
39
}
40
23
41
await inventory.save();
24
42
res.end();
25
43
sendWsBroadcastToGame(accountId, { sync_inventory: true });
@@ -17,7 +17,7 @@ import { addMissingMaxRankModsController } from "../controllers/custom/addMissin
17
17
import { webuiFileChangeDetectedController } from "../controllers/custom/webuiFileChangeDetectedController.ts";
18
18
import { completeAllMissionsController } from "../controllers/custom/completeAllMissionsController.ts";
19
19
import { addMissingHelminthBlueprintsController } from "../controllers/custom/addMissingHelminthBlueprintsController.ts";
20
import { unlockAllProfitTakerStagesController } from "../controllers/custom/unlockAllProfitTakerStagesController.ts";
20
import { unlockAllJobChainBountiesController } from "../controllers/custom/unlockAllJobChainBountiesController.ts";
21
21
import { unlockAllSimarisResearchEntriesController } from "../controllers/custom/unlockAllSimarisResearchEntriesController.ts";
22
22
import { unlockAllScansController } from "../controllers/custom/unlockAllScansController.ts";
23
23
import { unlockAllShipFeaturesController } from "../controllers/custom/unlockAllShipFeaturesController.ts";
@@ -71,7 +71,7 @@ customRouter.get("/addMissingMaxRankMods", addMissingMaxRankModsController);
71
71
customRouter.get("/webuiFileChangeDetected", webuiFileChangeDetectedController);
72
72
customRouter.get("/completeAllMissions", completeAllMissionsController);
73
73
customRouter.get("/addMissingHelminthBlueprints", addMissingHelminthBlueprintsController);
74
customRouter.get("/unlockAllProfitTakerStages", unlockAllProfitTakerStagesController);
74
customRouter.get("/unlockAllJobChainBounties", unlockAllJobChainBountiesController);
75
75
customRouter.get("/unlockAllSimarisResearchEntries", unlockAllSimarisResearchEntriesController);
76
76
customRouter.get("/unlockAllScans", unlockAllScansController);
77
77
customRouter.get("/unlockAllShipFeatures", unlockAllShipFeaturesController);
@@ -1182,7 +1182,7 @@
1182
1182
<button class="btn btn-primary" onclick="debounce(addMissingHelminthRecipes);" data-loc="cheats_addMissingSubsumedAbilities"></button>
1183
1183
<button class="btn btn-primary" onclick="doIntrinsicsUnlockAll();" data-loc="cheats_intrinsicsUnlockAll"></button>
1184
1184
<button class="btn btn-primary" onclick="debounce(doMaxPlexus);" data-loc="cheats_maxPlexus"></button>
1185
<button class="btn btn-primary" onclick="debounce(unlockAllProfitTakerStages);" data-loc="cheats_unlockAllProfitTakerStages"></button>
1185
<button class="btn btn-primary" onclick="debounce(unlockAllJobChainBounties);" data-loc="cheats_unlockAllJobChainBounties"></button>
1186
1186
<button class="btn btn-primary" onclick="debounce(unlockAllSimarisResearchEntries);" data-loc="cheats_unlockAllSimarisResearchEntries"></button>
1187
1187
</div>
1188
1188
</div>
@@ -3847,9 +3847,9 @@ async function unlockAllMissions() {
3847
3847
toast(loc("cheats_unlockAllMissions_ok"));
3848
3848
}
3849
3849
3850
async function unlockAllProfitTakerStages() {
3850
async function unlockAllJobChainBounties() {
3851
3851
await revalidateAuthz();
3852
await fetch("/custom/unlockAllProfitTakerStages?" + window.authz);
3852
await fetch("/custom/unlockAllJobChainBounties?" + window.authz);
3853
3853
toast(loc(window.have_game_ws ? "code_succAdded" : "cheats_unlockSuccInventory"));
3854
3854
}
3855
3855
@@ -252,7 +252,7 @@ dict = {
252
252
cheats_baroFullyStocked: `Baro hat volles Inventar`,
253
253
cheats_alertsRepeatable: `Alarmierungen wiederholbar`,
254
254
cheats_syndicateMissionsRepeatable: `Syndikat-Missionen wiederholbar`,
255
cheats_unlockAllProfitTakerStages: `Alle Profiteintreiber-Phasen freischalten`,
255
cheats_unlockAllJobChainBounties: `[UNTRANSLATED] Unlock All Job Chain Bounties`,
256
256
cheats_unlockSuccInventory: `Erfolgreich. Bitte beachte, dass du dein Inventar neu synchronisieren musst, z. B. durch Besuch eines Dojo/Relais oder durch erneutes Anmelden.`,
257
257
cheats_instantFinishRivenChallenge: `Riven-Mod Herausforderung sofort abschließen`,
258
258
cheats_instantResourceExtractorDrones: `Sofortige Ressourcen-Extraktor-Drohnen`,
@@ -251,7 +251,7 @@ dict = {
251
251
cheats_baroFullyStocked: `Baro Fully Stocked`,
252
252
cheats_alertsRepeatable: `Alerts Repeatable`,
253
253
cheats_syndicateMissionsRepeatable: `Syndicate Missions Repeatable`,
254
cheats_unlockAllProfitTakerStages: `Unlock All Profit Taker Stages`,
254
cheats_unlockAllJobChainBounties: `Unlock All Job Chain Bounties`,
255
255
cheats_unlockSuccInventory: `Success. Please note that you'll need to resync your inventory, e.g. by visiting a dojo/relay or relogging.`,
256
256
cheats_instantFinishRivenChallenge: `Instant Finish Riven Challenge`,
257
257
cheats_instantResourceExtractorDrones: `Instant Resource Extractor Drones`,
@@ -252,7 +252,7 @@ dict = {
252
252
cheats_baroFullyStocked: `Baro con stock completo`,
253
253
cheats_alertsRepeatable: `[UNTRANSLATED] Alerts Repeatable`,
254
254
cheats_syndicateMissionsRepeatable: `Misiones de sindicato rejugables`,
255
cheats_unlockAllProfitTakerStages: `Desbloquea todas las etapas del Roba-ganancias`,
255
cheats_unlockAllJobChainBounties: `[UNTRANSLATED] Unlock All Job Chain Bounties`,
256
256
cheats_unlockSuccInventory: `[UNTRANSLATED] Success. Please note that you'll need to resync your inventory, e.g. by visiting a dojo/relay or relogging.`,
257
257
cheats_instantFinishRivenChallenge: `Terminar desafío de agrietado inmediatamente`,
258
258
cheats_instantResourceExtractorDrones: `Drones de extracción de recursos instantáneos`,
@@ -252,7 +252,7 @@ dict = {
252
252
cheats_baroFullyStocked: `Stock de Baro au max`,
253
253
cheats_alertsRepeatable: `[UNTRANSLATED] Alerts Repeatable`,
254
254
cheats_syndicateMissionsRepeatable: `Mission syndicat répétables`,
255
cheats_unlockAllProfitTakerStages: `Débloquer toutes les étapes du Preneur de Profit`,
255
cheats_unlockAllJobChainBounties: `[UNTRANSLATED] Unlock All Job Chain Bounties`,
256
256
cheats_unlockSuccInventory: `[UNTRANSLATED] Success. Please note that you'll need to resync your inventory, e.g. by visiting a dojo/relay or relogging.`,
257
257
cheats_instantFinishRivenChallenge: `Débloquer le challenge Riven instantanément`,
258
258
cheats_instantResourceExtractorDrones: `Ressources de drones d'extraction instantannées`,
@@ -252,7 +252,7 @@ dict = {
252
252
cheats_baroFullyStocked: `Баро полностью укомплектован`,
253
253
cheats_alertsRepeatable: `[UNTRANSLATED] Alerts Repeatable`,
254
254
cheats_syndicateMissionsRepeatable: `Повторять миссии синдиката`,
255
cheats_unlockAllProfitTakerStages: `Разблокировать все этапы Сферы извлечения прибыли`,
255
cheats_unlockAllJobChainBounties: `[UNTRANSLATED] Unlock All Job Chain Bounties`,
256
256
cheats_unlockSuccInventory: `[UNTRANSLATED] Success. Please note that you'll need to resync your inventory, e.g. by visiting a dojo/relay or relogging.`,
257
257
cheats_instantFinishRivenChallenge: `Мгновенное завершение испытания мода Разлома`,
258
258
cheats_instantResourceExtractorDrones: `Мгновенно добывающие Дроны-сборщики`,
@@ -252,7 +252,7 @@ dict = {
252
252
cheats_baroFullyStocked: `Баро повністю укомплектований`,
253
253
cheats_alertsRepeatable: `[UNTRANSLATED] Alerts Repeatable`,
254
254
cheats_syndicateMissionsRepeatable: `Повторювати місії синдиката`,
255
cheats_unlockAllProfitTakerStages: `Розблокувати всі етапи Привласнювачки`,
255
cheats_unlockAllJobChainBounties: `[UNTRANSLATED] Unlock All Job Chain Bounties`,
256
256
cheats_unlockSuccInventory: `[UNTRANSLATED] Success. Please note that you'll need to resync your inventory, e.g. by visiting a dojo/relay or relogging.`,
257
257
cheats_instantFinishRivenChallenge: `Миттєве завершення випробування модифікатора Розколу`,
258
258
cheats_instantResourceExtractorDrones: `Миттєво добуваючі Дрони-видобувачі`,
@@ -252,7 +252,7 @@ dict = {
252
252
cheats_baroFullyStocked: `虚空商人贩卖所有商品`,
253
253
cheats_alertsRepeatable: `[UNTRANSLATED] Alerts Repeatable`,
254
254
cheats_syndicateMissionsRepeatable: `集团任务可重复完成`,
255
cheats_unlockAllProfitTakerStages: `解锁利润收割者圆蛛所有阶段`,
255
cheats_unlockAllJobChainBounties: `[UNTRANSLATED] Unlock All Job Chain Bounties`,
256
256
cheats_unlockSuccInventory: `[UNTRANSLATED] Success. Please note that you'll need to resync your inventory, e.g. by visiting a dojo/relay or relogging.`,
257
257
cheats_instantFinishRivenChallenge: `立即完成裂罅挑战`,
258
258
cheats_instantResourceExtractorDrones: `资源无人机即时完成`,