feat(webui): adding kitgun (#1382)
Reviewed-on: OpenWF/SpaceNinjaServer#1382 Reviewed-by: Sainan <sainan@calamity.inc> Co-authored-by: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com> Co-committed-by: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com>
This commit is contained in:
parent
b6167165fe
commit
779bc34082
@ -1,7 +1,8 @@
|
|||||||
import { getAccountIdForRequest } from "@/src/services/loginService";
|
import { getAccountIdForRequest } from "@/src/services/loginService";
|
||||||
import { getInventory, addEquipment, occupySlot, productCategoryToInventoryBin } from "@/src/services/inventoryService";
|
import { getInventory, addEquipment, occupySlot, productCategoryToInventoryBin } from "@/src/services/inventoryService";
|
||||||
import { RequestHandler } from "express";
|
|
||||||
import { modularWeaponTypes } from "@/src/helpers/modularWeaponHelper";
|
import { modularWeaponTypes } from "@/src/helpers/modularWeaponHelper";
|
||||||
|
import { ExportWeapons } from "warframe-public-export-plus";
|
||||||
|
import { RequestHandler } from "express";
|
||||||
|
|
||||||
export const addModularEquipmentController: RequestHandler = async (req, res) => {
|
export const addModularEquipmentController: RequestHandler = async (req, res) => {
|
||||||
const accountId = await getAccountIdForRequest(req);
|
const accountId = await getAccountIdForRequest(req);
|
||||||
@ -9,6 +10,23 @@ export const addModularEquipmentController: RequestHandler = async (req, res) =>
|
|||||||
const category = modularWeaponTypes[request.ItemType];
|
const category = modularWeaponTypes[request.ItemType];
|
||||||
const inventoryBin = productCategoryToInventoryBin(category)!;
|
const inventoryBin = productCategoryToInventoryBin(category)!;
|
||||||
const inventory = await getInventory(accountId, `${category} ${inventoryBin}`);
|
const inventory = await getInventory(accountId, `${category} ${inventoryBin}`);
|
||||||
|
request.ModularParts.forEach(part => {
|
||||||
|
if (ExportWeapons[part].gunType) {
|
||||||
|
if (category == "LongGuns") {
|
||||||
|
request.ItemType = {
|
||||||
|
GT_RIFLE: "/Lotus/Weapons/SolarisUnited/Primary/LotusModularPrimary",
|
||||||
|
GT_SHOTGUN: "/Lotus/Weapons/SolarisUnited/Primary/LotusModularPrimaryShotgun",
|
||||||
|
GT_BEAM: "/Lotus/Weapons/SolarisUnited/Primary/LotusModularPrimaryBeam"
|
||||||
|
}[ExportWeapons[part].gunType];
|
||||||
|
} else {
|
||||||
|
request.ItemType = {
|
||||||
|
GT_RIFLE: "/Lotus/Weapons/SolarisUnited/Secondary/LotusModularSecondary",
|
||||||
|
GT_SHOTGUN: "/Lotus/Weapons/SolarisUnited/Secondary/LotusModularSecondaryShotgun",
|
||||||
|
GT_BEAM: "/Lotus/Weapons/SolarisUnited/Secondary/LotusModularSecondaryBeam"
|
||||||
|
}[ExportWeapons[part].gunType];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
addEquipment(inventory, category, request.ItemType, request.ModularParts);
|
addEquipment(inventory, category, request.ItemType, request.ModularParts);
|
||||||
occupySlot(inventory, inventoryBin, true);
|
occupySlot(inventory, inventoryBin, true);
|
||||||
await inventory.save();
|
await inventory.save();
|
||||||
|
@ -163,10 +163,15 @@
|
|||||||
<div class="card mb-3" style="height: 400px;">
|
<div class="card mb-3" style="height: 400px;">
|
||||||
<h5 class="card-header" data-loc="inventory_longGuns"></h5>
|
<h5 class="card-header" data-loc="inventory_longGuns"></h5>
|
||||||
<div class="card-body overflow-auto">
|
<div class="card-body overflow-auto">
|
||||||
<form class="input-group mb-3" onsubmit="doAcquireEquipment('LongGuns');return false;">
|
<form class="input-group mb-3" onsubmit="handleModularSelection('LongGuns');return false;">
|
||||||
<input class="form-control" id="acquire-type-LongGuns" list="datalist-LongGuns" />
|
<input class="form-control" id="acquire-type-LongGuns" list="datalist-LongGuns" />
|
||||||
<button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
|
<button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
|
||||||
</form>
|
</form>
|
||||||
|
<form class="input-group mb-3" id="modular-LongGuns" style="display: none;">
|
||||||
|
<input class="form-control" id="acquire-type-LongGuns-GUN_BARREL" list="datalist-ModularParts-GUN_BARREL" />
|
||||||
|
<input class="form-control" id="acquire-type-LongGuns-GUN_PRIMARY_HANDLE" list="datalist-ModularParts-GUN_PRIMARY_HANDLE" />
|
||||||
|
<input class="form-control" id="acquire-type-LongGuns-GUN_CLIP" list="datalist-ModularParts-GUN_CLIP" />
|
||||||
|
</form>
|
||||||
<table class="table table-hover w-100">
|
<table class="table table-hover w-100">
|
||||||
<tbody id="LongGuns-list"></tbody>
|
<tbody id="LongGuns-list"></tbody>
|
||||||
</table>
|
</table>
|
||||||
@ -179,10 +184,15 @@
|
|||||||
<div class="card mb-3" style="height: 400px;">
|
<div class="card mb-3" style="height: 400px;">
|
||||||
<h5 class="card-header" data-loc="inventory_pistols"></h5>
|
<h5 class="card-header" data-loc="inventory_pistols"></h5>
|
||||||
<div class="card-body overflow-auto">
|
<div class="card-body overflow-auto">
|
||||||
<form class="input-group mb-3" onsubmit="doAcquireEquipment('Pistols');return false;">
|
<form class="input-group mb-3" onsubmit="handleModularSelection('Pistols');return false;">
|
||||||
<input class="form-control" id="acquire-type-Pistols" list="datalist-Pistols" />
|
<input class="form-control" id="acquire-type-Pistols" list="datalist-Pistols" />
|
||||||
<button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
|
<button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
|
||||||
</form>
|
</form>
|
||||||
|
<form class="input-group mb-3" id="modular-Pistols" style="display: none;">
|
||||||
|
<input class="form-control" id="acquire-type-Pistols-GUN_BARREL" list="datalist-ModularParts-GUN_BARREL" />
|
||||||
|
<input class="form-control" id="acquire-type-Pistols-GUN_SECONDARY_HANDLE" list="datalist-ModularParts-GUN_SECONDARY_HANDLE" />
|
||||||
|
<input class="form-control" id="acquire-type-Pistols-GUN_CLIP" list="datalist-ModularParts-GUN_CLIP" />
|
||||||
|
</form>
|
||||||
<table class="table table-hover w-100">
|
<table class="table table-hover w-100">
|
||||||
<tbody id="Pistols-list"></tbody>
|
<tbody id="Pistols-list"></tbody>
|
||||||
</table>
|
</table>
|
||||||
@ -645,6 +655,10 @@
|
|||||||
<datalist id="datalist-ModularParts-BLADE"></datalist>
|
<datalist id="datalist-ModularParts-BLADE"></datalist>
|
||||||
<datalist id="datalist-ModularParts-HILT"></datalist>
|
<datalist id="datalist-ModularParts-HILT"></datalist>
|
||||||
<datalist id="datalist-ModularParts-HILT_WEIGHT"></datalist>
|
<datalist id="datalist-ModularParts-HILT_WEIGHT"></datalist>
|
||||||
|
<datalist id="datalist-ModularParts-GUN_PRIMARY_HANDLE"></datalist>
|
||||||
|
<datalist id="datalist-ModularParts-GUN_SECONDARY_HANDLE"></datalist>
|
||||||
|
<datalist id="datalist-ModularParts-GUN_BARREL"></datalist>
|
||||||
|
<datalist id="datalist-ModularParts-GUN_CLIP"></datalist>
|
||||||
<script src="/webui/libs/jquery-3.6.0.min.js"></script>
|
<script src="/webui/libs/jquery-3.6.0.min.js"></script>
|
||||||
<script src="/webui/libs/whirlpool-js.min.js"></script>
|
<script src="/webui/libs/whirlpool-js.min.js"></script>
|
||||||
<script src="/webui/libs/single.js"></script>
|
<script src="/webui/libs/single.js"></script>
|
||||||
|
@ -194,6 +194,14 @@ function fetchItemList() {
|
|||||||
uniqueName: "/Lotus/Weapons/Ostron/Melee/LotusModularWeapon",
|
uniqueName: "/Lotus/Weapons/Ostron/Melee/LotusModularWeapon",
|
||||||
name: loc("code_zaw")
|
name: loc("code_zaw")
|
||||||
});
|
});
|
||||||
|
data.LongGuns.push({
|
||||||
|
uniqueName: "/Lotus/Weapons/SolarisUnited/Primary/LotusModularPrimary",
|
||||||
|
name: loc("code_kitgun")
|
||||||
|
});
|
||||||
|
data.Pistols.push({
|
||||||
|
uniqueName: "/Lotus/Weapons/SolarisUnited/Secondary/LotusModularSecondary",
|
||||||
|
name: loc("code_kitgun")
|
||||||
|
});
|
||||||
|
|
||||||
const itemMap = {
|
const itemMap = {
|
||||||
// Generics for rivens
|
// Generics for rivens
|
||||||
@ -203,12 +211,10 @@ function fetchItemList() {
|
|||||||
"/Lotus/Weapons/Tenno/Rifle/LotusRifle": { name: loc("code_rifle") },
|
"/Lotus/Weapons/Tenno/Rifle/LotusRifle": { name: loc("code_rifle") },
|
||||||
"/Lotus/Weapons/Tenno/Shotgun/LotusShotgun": { name: loc("code_shotgun") },
|
"/Lotus/Weapons/Tenno/Shotgun/LotusShotgun": { name: loc("code_shotgun") },
|
||||||
// Modular weapons
|
// Modular weapons
|
||||||
"/Lotus/Weapons/SolarisUnited/Primary/LotusModularPrimary": { name: loc("code_kitgun") },
|
|
||||||
"/Lotus/Weapons/SolarisUnited/Primary/LotusModularPrimaryBeam": { name: loc("code_kitgun") },
|
"/Lotus/Weapons/SolarisUnited/Primary/LotusModularPrimaryBeam": { name: loc("code_kitgun") },
|
||||||
"/Lotus/Weapons/SolarisUnited/Primary/LotusModularPrimaryLauncher": { name: loc("code_kitgun") },
|
"/Lotus/Weapons/SolarisUnited/Primary/LotusModularPrimaryLauncher": { name: loc("code_kitgun") },
|
||||||
"/Lotus/Weapons/SolarisUnited/Primary/LotusModularPrimaryShotgun": { name: loc("code_kitgun") },
|
"/Lotus/Weapons/SolarisUnited/Primary/LotusModularPrimaryShotgun": { name: loc("code_kitgun") },
|
||||||
"/Lotus/Weapons/SolarisUnited/Primary/LotusModularPrimarySniper": { name: loc("code_kitgun") },
|
"/Lotus/Weapons/SolarisUnited/Primary/LotusModularPrimarySniper": { name: loc("code_kitgun") },
|
||||||
"/Lotus/Weapons/SolarisUnited/Secondary/LotusModularSecondary": { name: loc("code_kitgun") },
|
|
||||||
"/Lotus/Weapons/SolarisUnited/Secondary/LotusModularSecondaryBeam": { name: loc("code_kitgun") },
|
"/Lotus/Weapons/SolarisUnited/Secondary/LotusModularSecondaryBeam": { name: loc("code_kitgun") },
|
||||||
"/Lotus/Weapons/SolarisUnited/Secondary/LotusModularSecondaryShotgun": { name: loc("code_kitgun") },
|
"/Lotus/Weapons/SolarisUnited/Secondary/LotusModularSecondaryShotgun": { name: loc("code_kitgun") },
|
||||||
"/Lotus/Weapons/Sentients/OperatorAmplifiers/SentTrainingAmplifier/OperatorTrainingAmpWeapon": {
|
"/Lotus/Weapons/Sentients/OperatorAmplifiers/SentTrainingAmplifier/OperatorTrainingAmpWeapon": {
|
||||||
@ -249,7 +255,11 @@ function fetchItemList() {
|
|||||||
"LWPT_AMP_BRACE",
|
"LWPT_AMP_BRACE",
|
||||||
"LWPT_BLADE",
|
"LWPT_BLADE",
|
||||||
"LWPT_HILT",
|
"LWPT_HILT",
|
||||||
"LWPT_HILT_WEIGHT"
|
"LWPT_HILT_WEIGHT",
|
||||||
|
"LWPT_GUN_PRIMARY_HANDLE",
|
||||||
|
"LWPT_GUN_SECONDARY_HANDLE",
|
||||||
|
"LWPT_GUN_BARREL",
|
||||||
|
"LWPT_GUN_CLIP"
|
||||||
];
|
];
|
||||||
if (supportedModularParts.includes(item.partType)) {
|
if (supportedModularParts.includes(item.partType)) {
|
||||||
const option = document.createElement("option");
|
const option = document.createElement("option");
|
||||||
@ -693,6 +703,12 @@ function doAcquireModularEquipment(category, ItemType) {
|
|||||||
case "Melee":
|
case "Melee":
|
||||||
requiredParts = ["BLADE", "HILT", "HILT_WEIGHT"];
|
requiredParts = ["BLADE", "HILT", "HILT_WEIGHT"];
|
||||||
break;
|
break;
|
||||||
|
case "LongGuns":
|
||||||
|
requiredParts = ["GUN_BARREL", "GUN_PRIMARY_HANDLE", "GUN_CLIP"];
|
||||||
|
break;
|
||||||
|
case "Pistols":
|
||||||
|
requiredParts = ["GUN_BARREL", "GUN_SECONDARY_HANDLE", "GUN_CLIP"];
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
requiredParts.forEach(part => {
|
requiredParts.forEach(part => {
|
||||||
const partName = getKey(document.getElementById("acquire-type-" + category + "-" + part));
|
const partName = getKey(document.getElementById("acquire-type-" + category + "-" + part));
|
||||||
@ -1357,7 +1373,9 @@ function toast(text) {
|
|||||||
function handleModularSelection(category) {
|
function handleModularSelection(category) {
|
||||||
const modularWeapons = [
|
const modularWeapons = [
|
||||||
"/Lotus/Weapons/Sentients/OperatorAmplifiers/OperatorAmpWeapon",
|
"/Lotus/Weapons/Sentients/OperatorAmplifiers/OperatorAmpWeapon",
|
||||||
"/Lotus/Weapons/Ostron/Melee/LotusModularWeapon"
|
"/Lotus/Weapons/Ostron/Melee/LotusModularWeapon",
|
||||||
|
"/Lotus/Weapons/SolarisUnited/Primary/LotusModularPrimary",
|
||||||
|
"/Lotus/Weapons/SolarisUnited/Secondary/LotusModularSecondary"
|
||||||
];
|
];
|
||||||
const itemType = getKey(document.getElementById("acquire-type-" + category));
|
const itemType = getKey(document.getElementById("acquire-type-" + category));
|
||||||
|
|
||||||
@ -1370,9 +1388,11 @@ function handleModularSelection(category) {
|
|||||||
{
|
{
|
||||||
const modularWeapons = [
|
const modularWeapons = [
|
||||||
"/Lotus/Weapons/Sentients/OperatorAmplifiers/OperatorAmpWeapon",
|
"/Lotus/Weapons/Sentients/OperatorAmplifiers/OperatorAmpWeapon",
|
||||||
"/Lotus/Weapons/Ostron/Melee/LotusModularWeapon"
|
"/Lotus/Weapons/Ostron/Melee/LotusModularWeapon",
|
||||||
|
"/Lotus/Weapons/SolarisUnited/Primary/LotusModularPrimary",
|
||||||
|
"/Lotus/Weapons/SolarisUnited/Secondary/LotusModularSecondary"
|
||||||
];
|
];
|
||||||
const supportedModularInventoryCategory = ["OperatorAmps", "Melee"];
|
const supportedModularInventoryCategory = ["OperatorAmps", "Melee", "LongGuns", "Pistols"];
|
||||||
supportedModularInventoryCategory.forEach(inventoryCategory => {
|
supportedModularInventoryCategory.forEach(inventoryCategory => {
|
||||||
document.getElementById("acquire-type-" + inventoryCategory).addEventListener("input", function () {
|
document.getElementById("acquire-type-" + inventoryCategory).addEventListener("input", function () {
|
||||||
const modularFields = document.getElementById("modular-" + inventoryCategory);
|
const modularFields = document.getElementById("modular-" + inventoryCategory);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user