mission inventory update - mods, resources
This commit is contained in:
parent
2ed10a80c9
commit
b66fdc17ba
1
.gitignore
vendored
1
.gitignore
vendored
@ -4,3 +4,4 @@
|
||||
/.env
|
||||
/static/data/*.bin
|
||||
yarn.lock
|
||||
/tmp
|
@ -1,6 +1,57 @@
|
||||
import { RequestHandler } from "express";
|
||||
import { addRawUpgrades, addMiscItems } from "@/src/services/inventoryService";
|
||||
import fs from 'fs';
|
||||
/*
|
||||
- [ ] crossPlaySetting
|
||||
- [ ] rewardsMultiplier
|
||||
- [ ] ActiveBoosters
|
||||
- [ ] LongGuns
|
||||
- [ ] Pistols
|
||||
- [ ] Suits
|
||||
- [ ] Melee
|
||||
- [x] RawUpgrades
|
||||
- [x] MiscItems
|
||||
- [ ] RegularCredits
|
||||
- [ ] RandomUpgradesIdentified
|
||||
- [ ] MissionFailed
|
||||
- [ ] MissionStatus
|
||||
- [ ] CurrentLoadOutIds
|
||||
- [ ] AliveTime
|
||||
- [ ] MissionTime
|
||||
- [ ] Missions
|
||||
- [ ] CompletedAlerts
|
||||
- [ ] LastRegionPlayed
|
||||
- [ ] GameModeId
|
||||
- [ ] hosts
|
||||
- [ ] ChallengeProgress
|
||||
- [ ] SeasonChallengeHistory
|
||||
- [ ] PS
|
||||
- [ ] ActiveDojoColorResearch
|
||||
- [ ] RewardInfo
|
||||
- [ ] ReceivedCeremonyMsg
|
||||
- [ ] LastCeremonyResetDate
|
||||
- [ ] MissionPTS
|
||||
- [ ] RepHash
|
||||
- [ ] EndOfMatchUpload
|
||||
- [ ] ObjectiveReached
|
||||
- [ ] FpsAvg
|
||||
- [ ] FpsMin
|
||||
- [ ] FpsMax
|
||||
- [ ] FpsSamples
|
||||
*/
|
||||
const missionInventoryUpdateController: RequestHandler = async (req, res) => {
|
||||
fs.writeFile("./tmp/test", req.body, function(err) {
|
||||
if(err) {
|
||||
return console.log(err);
|
||||
}
|
||||
});
|
||||
|
||||
const [data, _secondIGuessIsSalt] = String(req.body).split("\n");
|
||||
const {RawUpgrades, MiscItems} = JSON.parse(data);
|
||||
const id = req.query.accountId as string;
|
||||
addRawUpgrades(RawUpgrades, id);
|
||||
addMiscItems(MiscItems, id);
|
||||
|
||||
const missionInventoryUpdateController: RequestHandler = (_req, res) => {
|
||||
res.json({});
|
||||
};
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { Model, Schema, Types, model } from "mongoose";
|
||||
import { FlavourItem, IInventoryDatabase } from "../types/inventoryTypes/inventoryTypes";
|
||||
import { FlavourItem, RawUpgrade, MiscItem, IInventoryDatabase } from "../types/inventoryTypes/inventoryTypes";
|
||||
import { Oid } from "../types/commonTypes";
|
||||
import { ISuitDatabase, ISuitDocument } from "@/src/types/inventoryTypes/SuitTypes";
|
||||
import { IWeaponDatabase } from "@/src/types/inventoryTypes/weaponTypes";
|
||||
@ -334,6 +334,8 @@ type InventoryDocumentProps = {
|
||||
Pistols: Types.DocumentArray<IWeaponDatabase>;
|
||||
Melee: Types.DocumentArray<IWeaponDatabase>;
|
||||
FlavourItems: Types.DocumentArray<FlavourItem>;
|
||||
RawUpgrades: Types.DocumentArray<RawUpgrade>;
|
||||
MiscItems: Types.DocumentArray<MiscItem>;
|
||||
};
|
||||
|
||||
type InventoryModelType = Model<IInventoryDatabase, {}, InventoryDocumentProps>;
|
||||
|
@ -5,7 +5,7 @@ import { Types } from "mongoose";
|
||||
import { ISuitResponse } from "@/src/types/inventoryTypes/SuitTypes";
|
||||
import { SlotType } from "@/src/types/purchaseTypes";
|
||||
import { IWeaponResponse } from "@/src/types/inventoryTypes/weaponTypes";
|
||||
import { FlavourItem } from "@/src/types/inventoryTypes/inventoryTypes";
|
||||
import { FlavourItem, RawUpgrade, MiscItem } from "@/src/types/inventoryTypes/inventoryTypes";
|
||||
|
||||
const createInventory = async (accountOwnerId: Types.ObjectId) => {
|
||||
try {
|
||||
@ -106,4 +106,36 @@ export const addCustomization = async (customizatonName: string, accountId: stri
|
||||
return changedInventory.FlavourItems[flavourItemIndex].toJSON(); //mongoose bug forces as FlavourItem
|
||||
};
|
||||
|
||||
export const addRawUpgrades = async (rawUpgrades: RawUpgrade[], accountId: string): Promise<void> => {
|
||||
const inventory = await getInventory(accountId);
|
||||
rawUpgrades?.forEach(item => {
|
||||
const { ItemCount, ItemType } = item;
|
||||
const existingItemIndex = inventory.RawUpgrades.findIndex(i => i.ItemType === ItemType);
|
||||
|
||||
if (existingItemIndex !== -1) {
|
||||
inventory.RawUpgrades[existingItemIndex].ItemCount += ItemCount;
|
||||
inventory.markModified('RawUpgrades.' + existingItemIndex + '.ItemCount');
|
||||
} else {
|
||||
inventory.RawUpgrades.push({ ItemCount, ItemType });
|
||||
}
|
||||
});
|
||||
await inventory.save();
|
||||
};
|
||||
|
||||
export const addMiscItems = async (miscItems: MiscItem[], accountId: string): Promise<void> => {
|
||||
const inventory = await getInventory(accountId);
|
||||
miscItems?.forEach(item => {
|
||||
const { ItemCount, ItemType } = item;
|
||||
const existingItemIndex = inventory.MiscItems.findIndex(i => i.ItemType === ItemType);
|
||||
|
||||
if (existingItemIndex !== -1) {
|
||||
inventory.MiscItems[existingItemIndex].ItemCount += ItemCount;
|
||||
inventory.markModified('MiscItems.' + existingItemIndex + '.ItemCount');
|
||||
} else {
|
||||
inventory.MiscItems.push({ ItemCount, ItemType });
|
||||
}
|
||||
});
|
||||
await inventory.save();
|
||||
};
|
||||
|
||||
export { createInventory, addPowerSuit };
|
||||
|
@ -377,6 +377,16 @@ export interface FlavourItem {
|
||||
ItemType: string;
|
||||
}
|
||||
|
||||
export interface RawUpgrade {
|
||||
ItemCount: number;
|
||||
ItemType: string;
|
||||
}
|
||||
|
||||
export interface MiscItem {
|
||||
ItemCount: number;
|
||||
ItemType: string;
|
||||
}
|
||||
|
||||
export interface CrewshipWeapon {
|
||||
PILOT: Pilot;
|
||||
PORT_GUNS: PortGuns;
|
||||
|
Loading…
x
Reference in New Issue
Block a user