XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

SpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 1 Star 0
返回提交历史

XFEstudio/SpaceNinjaServer

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
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

11 个文件 +34 -16
Renamed src/controllers/custom/unlockAllJobChainBountiesController.ts +22 -4
@@ -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 });
Modified src/routes/custom.ts +2 -2
@@ -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);
Modified static/webui/index.html +1 -1
@@ -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>
Modified static/webui/script.js +2 -2
@@ -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
Modified static/webui/translations/de.js +1 -1
@@ -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`,
Modified static/webui/translations/en.js +1 -1
@@ -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`,
Modified static/webui/translations/es.js +1 -1
@@ -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`,
Modified static/webui/translations/fr.js +1 -1
@@ -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`,
Modified static/webui/translations/ru.js +1 -1
@@ -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: `Мгновенно добывающие Дроны-сборщики`,
Modified static/webui/translations/uk.js +1 -1
@@ -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: `Миттєво добуваючі Дрони-видобувачі`,
Modified static/webui/translations/zh.js +1 -1
@@ -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: `资源无人机即时完成`,