feat: gravimag installation (#366)
This commit is contained in:
parent
d0b8c8a1d3
commit
e34cb305ad
@ -1,7 +1,7 @@
|
||||
import { RequestHandler } from "express";
|
||||
import { IUpgradesRequest } from "@/src/types/requestTypes";
|
||||
import { FocusSchool, IEquipmentDatabase, EquipmentFeatures } from "@/src/types/inventoryTypes/commonInventoryTypes";
|
||||
import { IMiscItem, TEquipmentKey } from "@/src/types/inventoryTypes/inventoryTypes";
|
||||
import { IMiscItem } from "@/src/types/inventoryTypes/inventoryTypes";
|
||||
import { getAccountIdForRequest } from "@/src/services/loginService";
|
||||
import { addMiscItems, getInventory, updateCurrency } from "@/src/services/inventoryService";
|
||||
|
||||
@ -29,7 +29,7 @@ export const upgradesController: RequestHandler = async (req, res) => {
|
||||
switch (operation.UpgradeRequirement) {
|
||||
case "/Lotus/Types/Items/MiscItems/OrokinReactor":
|
||||
case "/Lotus/Types/Items/MiscItems/OrokinCatalyst":
|
||||
for (const item of inventory[payload.ItemCategory as TEquipmentKey] as IEquipmentDatabase[]) {
|
||||
for (const item of inventory[payload.ItemCategory]) {
|
||||
if (item._id.toString() == payload.ItemId.$oid) {
|
||||
item.Features ??= 0;
|
||||
item.Features |= EquipmentFeatures.DOUBLE_CAPACITY;
|
||||
@ -39,7 +39,7 @@ export const upgradesController: RequestHandler = async (req, res) => {
|
||||
break;
|
||||
case "/Lotus/Types/Items/MiscItems/UtilityUnlocker":
|
||||
case "/Lotus/Types/Items/MiscItems/WeaponUtilityUnlocker":
|
||||
for (const item of inventory[payload.ItemCategory as TEquipmentKey] as IEquipmentDatabase[]) {
|
||||
for (const item of inventory[payload.ItemCategory]) {
|
||||
if (item._id.toString() == payload.ItemId.$oid) {
|
||||
item.Features ??= 0;
|
||||
item.Features |= EquipmentFeatures.UTILITY_SLOT;
|
||||
@ -47,10 +47,20 @@ export const upgradesController: RequestHandler = async (req, res) => {
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "/Lotus/Types/Items/MiscItems/HeavyWeaponCatalyst":
|
||||
console.assert(payload.ItemCategory == "SpaceGuns");
|
||||
for (const item of inventory[payload.ItemCategory]) {
|
||||
if (item._id.toString() == payload.ItemId.$oid) {
|
||||
item.Features ??= 0;
|
||||
item.Features |= EquipmentFeatures.GRAVIMAG_INSTALLED;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "/Lotus/Types/Items/MiscItems/WeaponPrimaryArcaneUnlocker":
|
||||
case "/Lotus/Types/Items/MiscItems/WeaponSecondaryArcaneUnlocker":
|
||||
case "/Lotus/Types/Items/MiscItems/WeaponMeleeArcaneUnlocker":
|
||||
for (const item of inventory[payload.ItemCategory as TEquipmentKey] as IEquipmentDatabase[]) {
|
||||
for (const item of inventory[payload.ItemCategory]) {
|
||||
if (item._id.toString() == payload.ItemId.$oid) {
|
||||
item.Features ??= 0;
|
||||
item.Features |= EquipmentFeatures.ARCANE_SLOT;
|
||||
@ -62,7 +72,7 @@ export const upgradesController: RequestHandler = async (req, res) => {
|
||||
case "/Lotus/Types/Items/MiscItems/FormaUmbra":
|
||||
case "/Lotus/Types/Items/MiscItems/FormaAura":
|
||||
case "/Lotus/Types/Items/MiscItems/FormaStance":
|
||||
for (const item of inventory[payload.ItemCategory as TEquipmentKey] as IEquipmentDatabase[]) {
|
||||
for (const item of inventory[payload.ItemCategory]) {
|
||||
if (item._id.toString() == payload.ItemId.$oid) {
|
||||
item.XP = 0;
|
||||
setSlotPolarity(item, operation.PolarizeSlot, operation.PolarizeValue);
|
||||
@ -73,7 +83,7 @@ export const upgradesController: RequestHandler = async (req, res) => {
|
||||
}
|
||||
break;
|
||||
case "/Lotus/Types/Items/MiscItems/ModSlotUnlocker":
|
||||
for (const item of inventory[payload.ItemCategory as TEquipmentKey] as IEquipmentDatabase[]) {
|
||||
for (const item of inventory[payload.ItemCategory]) {
|
||||
if (item._id.toString() == payload.ItemId.$oid) {
|
||||
item.ModSlotPurchases ??= 0;
|
||||
item.ModSlotPurchases += 1;
|
||||
@ -88,7 +98,7 @@ export const upgradesController: RequestHandler = async (req, res) => {
|
||||
}
|
||||
break;
|
||||
case "/Lotus/Types/Items/MiscItems/CustomizationSlotUnlocker":
|
||||
for (const item of inventory[payload.ItemCategory as TEquipmentKey] as IEquipmentDatabase[]) {
|
||||
for (const item of inventory[payload.ItemCategory]) {
|
||||
if (item._id.toString() == payload.ItemId.$oid) {
|
||||
item.CustomizationSlotPurchases ??= 0;
|
||||
item.CustomizationSlotPurchases += 1;
|
||||
@ -104,7 +114,7 @@ export const upgradesController: RequestHandler = async (req, res) => {
|
||||
break;
|
||||
case "":
|
||||
console.assert(operation.OperationType == "UOT_SWAP_POLARITY");
|
||||
for (const item of inventory[payload.ItemCategory as TEquipmentKey] as IEquipmentDatabase[]) {
|
||||
for (const item of inventory[payload.ItemCategory]) {
|
||||
if (item._id.toString() == payload.ItemId.$oid) {
|
||||
for (let i = 0; i != operation.PolarityRemap.length; ++i) {
|
||||
if (operation.PolarityRemap[i].Slot != i) {
|
||||
|
@ -85,6 +85,7 @@ export interface IEquipmentClient extends Omit<IEquipmentDatabase, "_id"> {
|
||||
export enum EquipmentFeatures {
|
||||
DOUBLE_CAPACITY = 1,
|
||||
UTILITY_SLOT = 2,
|
||||
GRAVIMAG_INSTALLED = 4,
|
||||
ARCANE_SLOT = 32,
|
||||
INCARNON_GENESIS = 512
|
||||
}
|
||||
|
@ -66,7 +66,8 @@ export type TEquipmentKey =
|
||||
| "Melee"
|
||||
| "SpecialItems"
|
||||
| "Sentinels"
|
||||
| "SentinelWeapons";
|
||||
| "SentinelWeapons"
|
||||
| "SpaceGuns";
|
||||
|
||||
export interface IDuviriInfo {
|
||||
Seed: number;
|
||||
|
@ -10,7 +10,8 @@ import {
|
||||
ITypeCount,
|
||||
IMission,
|
||||
IRawUpgrade,
|
||||
ISeasonChallenge
|
||||
ISeasonChallenge,
|
||||
TEquipmentKey
|
||||
} from "./inventoryTypes/inventoryTypes";
|
||||
|
||||
export interface IArtifactsRequest {
|
||||
@ -85,7 +86,7 @@ export interface IUpdateGlyphRequest {
|
||||
}
|
||||
|
||||
export interface IUpgradesRequest {
|
||||
ItemCategory: string;
|
||||
ItemCategory: TEquipmentKey;
|
||||
ItemId: IOid;
|
||||
ItemFeatures: number;
|
||||
UpgradeVersion: number;
|
||||
|
Loading…
x
Reference in New Issue
Block a user