feat: unlock all captura scenes (#650)
This commit is contained in:
parent
607ec836e9
commit
44b78ecfe8
@ -21,6 +21,7 @@
|
|||||||
"unlockAllShipDecorations": true,
|
"unlockAllShipDecorations": true,
|
||||||
"unlockAllFlavourItems": true,
|
"unlockAllFlavourItems": true,
|
||||||
"unlockAllSkins": true,
|
"unlockAllSkins": true,
|
||||||
|
"unlockAllCapturaScenes": true,
|
||||||
"universalPolarityEverywhere": true,
|
"universalPolarityEverywhere": true,
|
||||||
"spoofMasteryRank": -1
|
"spoofMasteryRank": -1
|
||||||
}
|
}
|
||||||
|
8
package-lock.json
generated
8
package-lock.json
generated
@ -12,7 +12,7 @@
|
|||||||
"copyfiles": "^2.4.1",
|
"copyfiles": "^2.4.1",
|
||||||
"express": "^5",
|
"express": "^5",
|
||||||
"mongoose": "^8.9.2",
|
"mongoose": "^8.9.2",
|
||||||
"warframe-public-export-plus": "^0.5.15",
|
"warframe-public-export-plus": "^0.5.16",
|
||||||
"warframe-riven-info": "^0.1.2",
|
"warframe-riven-info": "^0.1.2",
|
||||||
"winston": "^3.17.0",
|
"winston": "^3.17.0",
|
||||||
"winston-daily-rotate-file": "^5.0.0"
|
"winston-daily-rotate-file": "^5.0.0"
|
||||||
@ -3877,9 +3877,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/warframe-public-export-plus": {
|
"node_modules/warframe-public-export-plus": {
|
||||||
"version": "0.5.15",
|
"version": "0.5.16",
|
||||||
"resolved": "https://registry.npmjs.org/warframe-public-export-plus/-/warframe-public-export-plus-0.5.15.tgz",
|
"resolved": "https://registry.npmjs.org/warframe-public-export-plus/-/warframe-public-export-plus-0.5.16.tgz",
|
||||||
"integrity": "sha512-xsMgj1+lB2VPDCLuU88YsbwQiGQT5cNgjgNTk1iKx2ZpX31fu19tflTWrTHEJbSnqxuh/8h2LP5ZpBZV0a9fCg=="
|
"integrity": "sha512-4Mgng3ojWfF0mffZDKQLwrKx6qHty7o35F5+nCDmSal1TzjeEclJCSgoMgdAO0e+Ug/lTP7FSiIXcU4SDk3gsw=="
|
||||||
},
|
},
|
||||||
"node_modules/warframe-riven-info": {
|
"node_modules/warframe-riven-info": {
|
||||||
"version": "0.1.2",
|
"version": "0.1.2",
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
"copyfiles": "^2.4.1",
|
"copyfiles": "^2.4.1",
|
||||||
"express": "^5",
|
"express": "^5",
|
||||||
"mongoose": "^8.9.2",
|
"mongoose": "^8.9.2",
|
||||||
"warframe-public-export-plus": "^0.5.15",
|
"warframe-public-export-plus": "^0.5.16",
|
||||||
"warframe-riven-info": "^0.1.2",
|
"warframe-riven-info": "^0.1.2",
|
||||||
"winston": "^3.17.0",
|
"winston": "^3.17.0",
|
||||||
"winston-daily-rotate-file": "^5.0.0"
|
"winston-daily-rotate-file": "^5.0.0"
|
||||||
|
@ -7,9 +7,16 @@ import allDialogue from "@/static/fixed_responses/allDialogue.json";
|
|||||||
import { ILoadoutDatabase } from "@/src/types/saveLoadoutTypes";
|
import { ILoadoutDatabase } from "@/src/types/saveLoadoutTypes";
|
||||||
import { IShipInventory, equipmentKeys } from "@/src/types/inventoryTypes/inventoryTypes";
|
import { IShipInventory, equipmentKeys } from "@/src/types/inventoryTypes/inventoryTypes";
|
||||||
import { IPolarity, ArtifactPolarity } from "@/src/types/inventoryTypes/commonInventoryTypes";
|
import { IPolarity, ArtifactPolarity } from "@/src/types/inventoryTypes/commonInventoryTypes";
|
||||||
import { ExportCustoms, ExportFlavour, ExportKeys, ExportRegions, ExportResources } from "warframe-public-export-plus";
|
import {
|
||||||
|
ExportCustoms,
|
||||||
|
ExportFlavour,
|
||||||
|
ExportKeys,
|
||||||
|
ExportRegions,
|
||||||
|
ExportResources,
|
||||||
|
ExportVirtuals
|
||||||
|
} from "warframe-public-export-plus";
|
||||||
|
|
||||||
const inventoryController: RequestHandler = async (request, response) => {
|
export const inventoryController: RequestHandler = async (request, response) => {
|
||||||
let account;
|
let account;
|
||||||
try {
|
try {
|
||||||
account = await getAccountForRequest(request);
|
account = await getAccountForRequest(request);
|
||||||
@ -152,6 +159,17 @@ const inventoryController: RequestHandler = async (request, response) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (config.unlockAllCapturaScenes) {
|
||||||
|
for (const uniqueName of Object.keys(ExportResources)) {
|
||||||
|
if (resourceInheritsFrom(uniqueName, "/Lotus/Types/Items/MiscItems/PhotoboothTile")) {
|
||||||
|
inventoryResponse.MiscItems.push({
|
||||||
|
ItemType: uniqueName,
|
||||||
|
ItemCount: 1
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (typeof config.spoofMasteryRank === "number" && config.spoofMasteryRank >= 0) {
|
if (typeof config.spoofMasteryRank === "number" && config.spoofMasteryRank >= 0) {
|
||||||
inventoryResponse.PlayerLevel = config.spoofMasteryRank;
|
inventoryResponse.PlayerLevel = config.spoofMasteryRank;
|
||||||
if (!("xpBasedLevelCapDisabled" in request.query)) {
|
if (!("xpBasedLevelCapDisabled" in request.query)) {
|
||||||
@ -206,4 +224,19 @@ const getExpRequiredForMr = (rank: number): number => {
|
|||||||
return 2_250_000 + 147_500 * (rank - 30);
|
return 2_250_000 + 147_500 * (rank - 30);
|
||||||
};
|
};
|
||||||
|
|
||||||
export { inventoryController };
|
const resourceInheritsFrom = (resourceName: string, targetName: string): boolean => {
|
||||||
|
let parentName = resourceGetParent(resourceName);
|
||||||
|
for (; parentName != undefined; parentName = resourceGetParent(parentName)) {
|
||||||
|
if (parentName == targetName) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
|
const resourceGetParent = (resourceName: string): string | undefined => {
|
||||||
|
if (resourceName in ExportResources) {
|
||||||
|
return ExportResources[resourceName].parentName;
|
||||||
|
}
|
||||||
|
return ExportVirtuals[resourceName]?.parentName;
|
||||||
|
};
|
||||||
|
@ -46,6 +46,7 @@ interface IConfig {
|
|||||||
unlockAllShipDecorations?: boolean;
|
unlockAllShipDecorations?: boolean;
|
||||||
unlockAllFlavourItems?: boolean;
|
unlockAllFlavourItems?: boolean;
|
||||||
unlockAllSkins?: boolean;
|
unlockAllSkins?: boolean;
|
||||||
|
unlockAllCapturaScenes?: boolean;
|
||||||
universalPolarityEverywhere?: boolean;
|
universalPolarityEverywhere?: boolean;
|
||||||
spoofMasteryRank?: number;
|
spoofMasteryRank?: number;
|
||||||
}
|
}
|
||||||
|
@ -253,6 +253,10 @@
|
|||||||
<input class="form-check-input" type="checkbox" id="unlockAllSkins" />
|
<input class="form-check-input" type="checkbox" id="unlockAllSkins" />
|
||||||
<label class="form-check-label" for="unlockAllSkins">Unlock All Skins</label>
|
<label class="form-check-label" for="unlockAllSkins">Unlock All Skins</label>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="checkbox" id="unlockAllCapturaScenes" />
|
||||||
|
<label class="form-check-label" for="unlockAllCapturaScenes">Unlock All Captura Scenes</label>
|
||||||
|
</div>
|
||||||
<div class="form-check">
|
<div class="form-check">
|
||||||
<input class="form-check-input" type="checkbox" id="universalPolarityEverywhere" />
|
<input class="form-check-input" type="checkbox" id="universalPolarityEverywhere" />
|
||||||
<label class="form-check-label" for="universalPolarityEverywhere">
|
<label class="form-check-label" for="universalPolarityEverywhere">
|
||||||
|
@ -804,6 +804,7 @@ const uiConfigs = [
|
|||||||
"unlockAllShipDecorations",
|
"unlockAllShipDecorations",
|
||||||
"unlockAllFlavourItems",
|
"unlockAllFlavourItems",
|
||||||
"unlockAllSkins",
|
"unlockAllSkins",
|
||||||
|
"unlockAllCapturaScenes",
|
||||||
"universalPolarityEverywhere",
|
"universalPolarityEverywhere",
|
||||||
"spoofMasteryRank"
|
"spoofMasteryRank"
|
||||||
];
|
];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user