chore: fix various eslint issues
All checks were successful
Build / build (18) (pull_request) Successful in 43s
Build / build (22) (pull_request) Successful in 1m4s
Build / build (18) (push) Successful in 44s
Build / build (20) (push) Successful in 1m3s
Build / build (22) (push) Successful in 1m2s
Build / build (20) (pull_request) Successful in 40s
All checks were successful
Build / build (18) (pull_request) Successful in 43s
Build / build (22) (pull_request) Successful in 1m4s
Build / build (18) (push) Successful in 44s
Build / build (20) (push) Successful in 1m3s
Build / build (22) (push) Successful in 1m2s
Build / build (20) (pull_request) Successful in 40s
This commit is contained in:
parent
236cccc137
commit
1c4d5c5543
@ -38,7 +38,7 @@ export interface IQuestKeyReward {
|
|||||||
Duration: number;
|
Duration: number;
|
||||||
CouponSku: number;
|
CouponSku: number;
|
||||||
Syndicate: string;
|
Syndicate: string;
|
||||||
Milestones: any[];
|
//Milestones: any[];
|
||||||
ChooseSetIndex: number;
|
ChooseSetIndex: number;
|
||||||
NewSystemReward: boolean;
|
NewSystemReward: boolean;
|
||||||
_id: IOid;
|
_id: IOid;
|
||||||
|
@ -258,6 +258,7 @@ const resourceGetParent = (resourceName: string): string | undefined => {
|
|||||||
if (resourceName in ExportResources) {
|
if (resourceName in ExportResources) {
|
||||||
return ExportResources[resourceName].parentName;
|
return ExportResources[resourceName].parentName;
|
||||||
}
|
}
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||||
return ExportVirtuals[resourceName]?.parentName;
|
return ExportVirtuals[resourceName]?.parentName;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2,12 +2,13 @@ import { RequestHandler } from "express";
|
|||||||
import { getSessionByID } from "@/src/managers/sessionManager";
|
import { getSessionByID } from "@/src/managers/sessionManager";
|
||||||
import { logger } from "@/src/utils/logger";
|
import { logger } from "@/src/utils/logger";
|
||||||
|
|
||||||
const joinSessionController: RequestHandler = (_req, res) => {
|
export const joinSessionController: RequestHandler = (req, res) => {
|
||||||
const reqBody = JSON.parse(String(_req.body));
|
const reqBody = JSON.parse(String(req.body)) as IJoinSessionRequest;
|
||||||
logger.debug(`JoinSession Request`, { reqBody });
|
logger.debug(`JoinSession Request`, { reqBody });
|
||||||
const req = JSON.parse(String(_req.body));
|
const session = getSessionByID(reqBody.sessionIds[0]);
|
||||||
const session = getSessionByID(req.sessionIds[0] as string);
|
|
||||||
res.json({ rewardSeed: session?.rewardSeed, sessionId: { $oid: session?.sessionId } });
|
res.json({ rewardSeed: session?.rewardSeed, sessionId: { $oid: session?.sessionId } });
|
||||||
};
|
};
|
||||||
|
|
||||||
export { joinSessionController };
|
interface IJoinSessionRequest {
|
||||||
|
sessionIds: string[];
|
||||||
|
}
|
||||||
|
@ -44,7 +44,7 @@ function getSessionByID(sessionId: string): ISession | undefined {
|
|||||||
return sessions.find(session => session.sessionId === sessionId);
|
return sessions.find(session => session.sessionId === sessionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getSession(sessionIdOrRequest: string | IFindSessionRequest): any[] {
|
function getSession(sessionIdOrRequest: string | IFindSessionRequest): { createdBy: string; id: string }[] {
|
||||||
if (typeof sessionIdOrRequest === "string") {
|
if (typeof sessionIdOrRequest === "string") {
|
||||||
const session = sessions.find(session => session.sessionId === sessionIdOrRequest);
|
const session = sessions.find(session => session.sessionId === sessionIdOrRequest);
|
||||||
if (session) {
|
if (session) {
|
||||||
@ -107,8 +107,7 @@ function updateSession(sessionId: string, sessionData: string): boolean {
|
|||||||
const session = sessions.find(session => session.sessionId === sessionId);
|
const session = sessions.find(session => session.sessionId === sessionId);
|
||||||
if (!session) return false;
|
if (!session) return false;
|
||||||
try {
|
try {
|
||||||
const updatedData = JSON.parse(sessionData);
|
Object.assign(session, JSON.parse(sessionData));
|
||||||
Object.assign(session, updatedData);
|
|
||||||
return true;
|
return true;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Invalid JSON string for session update.");
|
console.error("Invalid JSON string for session update.");
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { IOid } from "@/src/types/commonTypes";
|
import { IOid } from "@/src/types/commonTypes";
|
||||||
import { IEquipmentSelection } from "@/src/types/inventoryTypes/commonInventoryTypes";
|
import { IEquipmentSelection } from "@/src/types/inventoryTypes/commonInventoryTypes";
|
||||||
import { ILoadoutConfigDatabase, ILoadoutDatabase } from "@/src/types/saveLoadoutTypes";
|
import { ILoadoutConfigDatabase, ILoadoutDatabase } from "@/src/types/saveLoadoutTypes";
|
||||||
import { Model, Schema, Types, model } from "mongoose";
|
import { Document, Model, Schema, Types, model } from "mongoose";
|
||||||
|
|
||||||
const oidSchema = new Schema<IOid>(
|
const oidSchema = new Schema<IOid>(
|
||||||
{
|
{
|
||||||
@ -97,3 +97,15 @@ type loadoutDocumentProps = {
|
|||||||
type loadoutModelType = Model<ILoadoutDatabase, {}, loadoutDocumentProps>;
|
type loadoutModelType = Model<ILoadoutDatabase, {}, loadoutDocumentProps>;
|
||||||
|
|
||||||
export const Loadout = model<ILoadoutDatabase, loadoutModelType>("Loadout", loadoutSchema);
|
export const Loadout = model<ILoadoutDatabase, loadoutModelType>("Loadout", loadoutSchema);
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
||||||
|
export type TLoadoutDatabaseDocument = Document<unknown, {}, ILoadoutDatabase> &
|
||||||
|
Omit<
|
||||||
|
ILoadoutDatabase & {
|
||||||
|
_id: Types.ObjectId;
|
||||||
|
} & {
|
||||||
|
__v: number;
|
||||||
|
},
|
||||||
|
keyof loadoutDocumentProps
|
||||||
|
> &
|
||||||
|
loadoutDocumentProps;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { Schema, model } from "mongoose";
|
import { Document, Schema, Types, model } from "mongoose";
|
||||||
import { IShipDatabase } from "../types/shipTypes";
|
import { IShipDatabase } from "../types/shipTypes";
|
||||||
import { toOid } from "@/src/helpers/inventoryHelpers";
|
import { toOid } from "@/src/helpers/inventoryHelpers";
|
||||||
import { colorSchema } from "@/src/models/inventoryModels/inventoryModel";
|
import { colorSchema } from "@/src/models/inventoryModels/inventoryModel";
|
||||||
@ -47,3 +47,11 @@ shipSchema.set("toObject", {
|
|||||||
});
|
});
|
||||||
|
|
||||||
export const Ship = model("Ships", shipSchema);
|
export const Ship = model("Ships", shipSchema);
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
||||||
|
export type TShipDatabaseDocument = Document<unknown, {}, IShipDatabase> &
|
||||||
|
IShipDatabase & {
|
||||||
|
_id: Types.ObjectId;
|
||||||
|
} & {
|
||||||
|
__v: number;
|
||||||
|
};
|
||||||
|
@ -4,7 +4,7 @@ import { IEnemy, IMission, IScan, ITutorial, IAbility, IWeapon, IStatsDatabase,
|
|||||||
const abilitySchema = new Schema<IAbility>(
|
const abilitySchema = new Schema<IAbility>(
|
||||||
{
|
{
|
||||||
type: { type: String, required: true },
|
type: { type: String, required: true },
|
||||||
used: Number
|
used: { type: Number, required: true }
|
||||||
},
|
},
|
||||||
{ _id: false }
|
{ _id: false }
|
||||||
);
|
);
|
||||||
@ -32,7 +32,7 @@ const missionSchema = new Schema<IMission>(
|
|||||||
const scanSchema = new Schema<IScan>(
|
const scanSchema = new Schema<IScan>(
|
||||||
{
|
{
|
||||||
type: { type: String, required: true },
|
type: { type: String, required: true },
|
||||||
scans: Number
|
scans: { type: Number, required: true }
|
||||||
},
|
},
|
||||||
{ _id: false }
|
{ _id: false }
|
||||||
);
|
);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { Loadout } from "@/src/models/inventoryModels/loadoutModel";
|
import { Loadout, TLoadoutDatabaseDocument } from "@/src/models/inventoryModels/loadoutModel";
|
||||||
|
|
||||||
export const getLoadout = async (accountId: string) => {
|
export const getLoadout = async (accountId: string): Promise<TLoadoutDatabaseDocument> => {
|
||||||
const loadout = await Loadout.findOne({ loadoutOwnerId: accountId });
|
const loadout = await Loadout.findOne({ loadoutOwnerId: accountId });
|
||||||
|
|
||||||
if (!loadout) {
|
if (!loadout) {
|
||||||
|
@ -313,6 +313,12 @@ export const addMissionInventoryUpdates = async (
|
|||||||
return inventoryChanges;
|
return inventoryChanges;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
interface AddMissionRewardsReturnType {
|
||||||
|
MissionRewards: IMissionReward[];
|
||||||
|
inventoryChanges?: IInventoryChanges;
|
||||||
|
credits?: IMissionCredits;
|
||||||
|
}
|
||||||
|
|
||||||
//TODO: return type of partial missioninventoryupdate response
|
//TODO: return type of partial missioninventoryupdate response
|
||||||
export const addMissionRewards = async (
|
export const addMissionRewards = async (
|
||||||
inventory: TInventoryDatabaseDocument,
|
inventory: TInventoryDatabaseDocument,
|
||||||
@ -324,7 +330,7 @@ export const addMissionRewards = async (
|
|||||||
VoidTearParticipantsCurrWave: voidTearWave,
|
VoidTearParticipantsCurrWave: voidTearWave,
|
||||||
StrippedItems: strippedItems
|
StrippedItems: strippedItems
|
||||||
}: IMissionInventoryUpdateRequest
|
}: IMissionInventoryUpdateRequest
|
||||||
) => {
|
): Promise<AddMissionRewardsReturnType> => {
|
||||||
if (!rewardInfo) {
|
if (!rewardInfo) {
|
||||||
//TODO: if there is a case where you can have credits collected during a mission but no rewardInfo, add credits needs to be handled earlier
|
//TODO: if there is a case where you can have credits collected during a mission but no rewardInfo, add credits needs to be handled earlier
|
||||||
logger.debug(`Mission ${missions!.Tag} did not have Reward Info `);
|
logger.debug(`Mission ${missions!.Tag} did not have Reward Info `);
|
||||||
@ -435,6 +441,13 @@ export const addMissionRewards = async (
|
|||||||
return { inventoryChanges, MissionRewards, credits };
|
return { inventoryChanges, MissionRewards, credits };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
interface IMissionCredits {
|
||||||
|
MissionCredits: number[];
|
||||||
|
CreditBonus: number[];
|
||||||
|
TotalCredits: number[];
|
||||||
|
DailyMissionBonus?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
//creditBonus is not entirely accurate.
|
//creditBonus is not entirely accurate.
|
||||||
//TODO: consider ActiveBoosters
|
//TODO: consider ActiveBoosters
|
||||||
export const addCredits = (
|
export const addCredits = (
|
||||||
@ -444,11 +457,11 @@ export const addCredits = (
|
|||||||
missionCompletionCredits,
|
missionCompletionCredits,
|
||||||
rngRewardCredits
|
rngRewardCredits
|
||||||
}: { missionDropCredits: number; missionCompletionCredits: number; rngRewardCredits: number }
|
}: { missionDropCredits: number; missionCompletionCredits: number; rngRewardCredits: number }
|
||||||
) => {
|
): IMissionCredits => {
|
||||||
const hasDailyCreditBonus = true;
|
const hasDailyCreditBonus = true;
|
||||||
const totalCredits = missionDropCredits + missionCompletionCredits + rngRewardCredits;
|
const totalCredits = missionDropCredits + missionCompletionCredits + rngRewardCredits;
|
||||||
|
|
||||||
const finalCredits = {
|
const finalCredits: IMissionCredits = {
|
||||||
MissionCredits: [missionDropCredits, missionDropCredits],
|
MissionCredits: [missionDropCredits, missionDropCredits],
|
||||||
CreditBonus: [missionCompletionCredits, missionCompletionCredits],
|
CreditBonus: [missionCompletionCredits, missionCompletionCredits],
|
||||||
TotalCredits: [totalCredits, totalCredits]
|
TotalCredits: [totalCredits, totalCredits]
|
||||||
@ -471,7 +484,7 @@ export const addFixedLevelRewards = (
|
|||||||
rewards: IMissionRewardExternal,
|
rewards: IMissionRewardExternal,
|
||||||
inventory: TInventoryDatabaseDocument,
|
inventory: TInventoryDatabaseDocument,
|
||||||
MissionRewards: IMissionReward[]
|
MissionRewards: IMissionReward[]
|
||||||
) => {
|
): number => {
|
||||||
let missionBonusCredits = 0;
|
let missionBonusCredits = 0;
|
||||||
if (rewards.credits) {
|
if (rewards.credits) {
|
||||||
missionBonusCredits += rewards.credits;
|
missionBonusCredits += rewards.credits;
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
import { PersonalRooms } from "@/src/models/personalRoomsModel";
|
import { PersonalRooms } from "@/src/models/personalRoomsModel";
|
||||||
import { addItem, getInventory } from "@/src/services/inventoryService";
|
import { addItem, getInventory } from "@/src/services/inventoryService";
|
||||||
|
import { TPersonalRoomsDatabaseDocument } from "../types/personalRoomsTypes";
|
||||||
|
|
||||||
export const getPersonalRooms = async (accountId: string) => {
|
export const getPersonalRooms = async (accountId: string): Promise<TPersonalRoomsDatabaseDocument> => {
|
||||||
const personalRooms = await PersonalRooms.findOne({ personalRoomsOwnerId: accountId });
|
const personalRooms = await PersonalRooms.findOne({ personalRoomsOwnerId: accountId });
|
||||||
|
|
||||||
if (!personalRooms) {
|
if (!personalRooms) {
|
||||||
@ -10,7 +11,7 @@ export const getPersonalRooms = async (accountId: string) => {
|
|||||||
return personalRooms;
|
return personalRooms;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const updateShipFeature = async (accountId: string, shipFeature: string) => {
|
export const updateShipFeature = async (accountId: string, shipFeature: string): Promise<void> => {
|
||||||
const personalRooms = await getPersonalRooms(accountId);
|
const personalRooms = await getPersonalRooms(accountId);
|
||||||
|
|
||||||
if (personalRooms.Ship.Features.includes(shipFeature)) {
|
if (personalRooms.Ship.Features.includes(shipFeature)) {
|
||||||
|
@ -108,10 +108,13 @@ export const handlePurchase = async (
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
purchaseRequest.PurchaseParams.Quantity *= offer.QuantityMultiplier;
|
purchaseRequest.PurchaseParams.Quantity *= offer.QuantityMultiplier;
|
||||||
} else if (!ExportVendors[purchaseRequest.PurchaseParams.SourceId!]) {
|
} else {
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||||
|
if (!ExportVendors[purchaseRequest.PurchaseParams.SourceId!]) {
|
||||||
throw new Error(`unknown vendor: ${purchaseRequest.PurchaseParams.SourceId!}`);
|
throw new Error(`unknown vendor: ${purchaseRequest.PurchaseParams.SourceId!}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const purchaseResponse = await handleStoreItemAcquisition(
|
const purchaseResponse = await handleStoreItemAcquisition(
|
||||||
purchaseRequest.PurchaseParams.StoreItem,
|
purchaseRequest.PurchaseParams.StoreItem,
|
||||||
@ -120,8 +123,6 @@ export const handlePurchase = async (
|
|||||||
);
|
);
|
||||||
combineInventoryChanges(purchaseResponse.InventoryChanges, inventoryChanges);
|
combineInventoryChanges(purchaseResponse.InventoryChanges, inventoryChanges);
|
||||||
|
|
||||||
if (!purchaseResponse) throw new Error("purchase response was undefined");
|
|
||||||
|
|
||||||
const currencyChanges = updateCurrency(
|
const currencyChanges = updateCurrency(
|
||||||
inventory,
|
inventory,
|
||||||
purchaseRequest.PurchaseParams.ExpectedPrice,
|
purchaseRequest.PurchaseParams.ExpectedPrice,
|
||||||
@ -149,6 +150,7 @@ export const handlePurchase = async (
|
|||||||
];
|
];
|
||||||
} else {
|
} else {
|
||||||
const syndicate = ExportSyndicates[syndicateTag];
|
const syndicate = ExportSyndicates[syndicateTag];
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||||
if (syndicate) {
|
if (syndicate) {
|
||||||
const favour = syndicate.favours.find(
|
const favour = syndicate.favours.find(
|
||||||
x => x.storeItem == purchaseRequest.PurchaseParams.StoreItem
|
x => x.storeItem == purchaseRequest.PurchaseParams.StoreItem
|
||||||
@ -360,6 +362,7 @@ const handleBoosterPackPurchase = async (
|
|||||||
quantity: number
|
quantity: number
|
||||||
): Promise<IPurchaseResponse> => {
|
): Promise<IPurchaseResponse> => {
|
||||||
const pack = ExportBoosterPacks[typeName];
|
const pack = ExportBoosterPacks[typeName];
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||||
if (!pack) {
|
if (!pack) {
|
||||||
throw new Error(`unknown booster pack: ${typeName}`);
|
throw new Error(`unknown booster pack: ${typeName}`);
|
||||||
}
|
}
|
||||||
|
@ -93,7 +93,10 @@ export const updateQuestStage = (
|
|||||||
Object.assign(questStage, questStageUpdate);
|
Object.assign(questStage, questStageUpdate);
|
||||||
};
|
};
|
||||||
|
|
||||||
export const addQuestKey = (inventory: TInventoryDatabaseDocument, questKey: IQuestKeyDatabase) => {
|
export const addQuestKey = (
|
||||||
|
inventory: TInventoryDatabaseDocument,
|
||||||
|
questKey: IQuestKeyDatabase
|
||||||
|
): IQuestKeyClient | undefined => {
|
||||||
if (inventory.QuestKeys.some(q => q.ItemType === questKey.ItemType)) {
|
if (inventory.QuestKeys.some(q => q.ItemType === questKey.ItemType)) {
|
||||||
logger.warn(`Quest key ${questKey.ItemType} already exists. It will not be added`);
|
logger.warn(`Quest key ${questKey.ItemType} already exists. It will not be added`);
|
||||||
return;
|
return;
|
||||||
@ -115,7 +118,7 @@ export const addQuestKey = (inventory: TInventoryDatabaseDocument, questKey: IQu
|
|||||||
return inventory.QuestKeys[index - 1].toJSON<IQuestKeyClient>();
|
return inventory.QuestKeys[index - 1].toJSON<IQuestKeyClient>();
|
||||||
};
|
};
|
||||||
|
|
||||||
export const completeQuest = async (inventory: TInventoryDatabaseDocument, questKey: string) => {
|
export const completeQuest = async (inventory: TInventoryDatabaseDocument, questKey: string): Promise<void> => {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||||
const chainStages = ExportKeys[questKey]?.chainStages;
|
const chainStages = ExportKeys[questKey]?.chainStages;
|
||||||
|
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
import { Ship } from "@/src/models/shipModel";
|
import { Ship, TShipDatabaseDocument } from "@/src/models/shipModel";
|
||||||
import { ILoadoutDatabase } from "@/src/types/saveLoadoutTypes";
|
|
||||||
import { Types } from "mongoose";
|
import { Types } from "mongoose";
|
||||||
|
|
||||||
export const createShip = async (
|
export const createShip = async (
|
||||||
accountOwnerId: Types.ObjectId,
|
accountOwnerId: Types.ObjectId,
|
||||||
typeName: string = "/Lotus/Types/Items/Ships/DefaultShip"
|
typeName: string = "/Lotus/Types/Items/Ships/DefaultShip"
|
||||||
) => {
|
): Promise<Types.ObjectId> => {
|
||||||
try {
|
try {
|
||||||
const ship = new Ship({
|
const ship = new Ship({
|
||||||
ItemType: typeName,
|
ItemType: typeName,
|
||||||
@ -21,7 +20,7 @@ export const createShip = async (
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getShip = async (shipId: Types.ObjectId, fieldSelection: string = "") => {
|
export const getShip = async (shipId: Types.ObjectId, fieldSelection: string = ""): Promise<TShipDatabaseDocument> => {
|
||||||
const ship = await Ship.findOne({ _id: shipId }, fieldSelection);
|
const ship = await Ship.findOne({ _id: shipId }, fieldSelection);
|
||||||
|
|
||||||
if (!ship) {
|
if (!ship) {
|
||||||
@ -30,15 +29,3 @@ export const getShip = async (shipId: Types.ObjectId, fieldSelection: string = "
|
|||||||
|
|
||||||
return ship;
|
return ship;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getShipLean = async (shipOwnerId: string) => {
|
|
||||||
const ship = await Ship.findOne({ ShipOwnerId: shipOwnerId }).lean().populate<{
|
|
||||||
LoadOutInventory: { LoadOutPresets: ILoadoutDatabase };
|
|
||||||
}>("LoadOutInventory.LoadOutPresets");
|
|
||||||
|
|
||||||
if (!ship) {
|
|
||||||
throw new Error(`error finding a ship for account ${shipOwnerId}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
return ship;
|
|
||||||
};
|
|
||||||
|
@ -82,7 +82,6 @@ export const updateStats = async (playerStats: TStatsDatabaseDocument, payload:
|
|||||||
for (const [type, scans] of Object.entries(data as IUploadEntry)) {
|
for (const [type, scans] of Object.entries(data as IUploadEntry)) {
|
||||||
const scan = playerStats.Scans.find(element => element.type === type);
|
const scan = playerStats.Scans.find(element => element.type === type);
|
||||||
if (scan) {
|
if (scan) {
|
||||||
scan.scans ??= 0;
|
|
||||||
scan.scans += scans;
|
scan.scans += scans;
|
||||||
} else {
|
} else {
|
||||||
playerStats.Scans.push({ type: type, scans });
|
playerStats.Scans.push({ type: type, scans });
|
||||||
@ -95,7 +94,6 @@ export const updateStats = async (playerStats: TStatsDatabaseDocument, payload:
|
|||||||
for (const [type, used] of Object.entries(data as IUploadEntry)) {
|
for (const [type, used] of Object.entries(data as IUploadEntry)) {
|
||||||
const ability = playerStats.Abilities.find(element => element.type === type);
|
const ability = playerStats.Abilities.find(element => element.type === type);
|
||||||
if (ability) {
|
if (ability) {
|
||||||
ability.used ??= 0;
|
|
||||||
ability.used += used;
|
ability.used += used;
|
||||||
} else {
|
} else {
|
||||||
playerStats.Abilities.push({ type: type, used });
|
playerStats.Abilities.push({ type: type, used });
|
||||||
@ -307,22 +305,20 @@ export const updateStats = async (playerStats: TStatsDatabaseDocument, payload:
|
|||||||
for (const [category, value] of Object.entries(actionData as IStatsSet)) {
|
for (const [category, value] of Object.entries(actionData as IStatsSet)) {
|
||||||
switch (category) {
|
switch (category) {
|
||||||
case "ELO_RATING":
|
case "ELO_RATING":
|
||||||
playerStats.Rating = value;
|
playerStats.Rating = value as number;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "RANK":
|
case "RANK":
|
||||||
playerStats.Rank = value;
|
playerStats.Rank = value as number;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "PLAYER_LEVEL":
|
case "PLAYER_LEVEL":
|
||||||
playerStats.PlayerLevel = value;
|
playerStats.PlayerLevel = value as number;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
if (!ignoredCategories.includes(category)) {
|
if (!ignoredCategories.includes(category)) {
|
||||||
if (!unknownCategories[action]) {
|
unknownCategories[action] ??= [];
|
||||||
unknownCategories[action] = [];
|
|
||||||
}
|
|
||||||
unknownCategories[action].push(category);
|
unknownCategories[action].push(category);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -7,7 +7,7 @@ import {
|
|||||||
ITailorShopDatabase,
|
ITailorShopDatabase,
|
||||||
TBootLocation
|
TBootLocation
|
||||||
} from "@/src/types/shipTypes";
|
} from "@/src/types/shipTypes";
|
||||||
import { Model, Types } from "mongoose";
|
import { Document, Model, Types } from "mongoose";
|
||||||
|
|
||||||
export interface IOrbiter {
|
export interface IOrbiter {
|
||||||
Features: string[];
|
Features: string[];
|
||||||
@ -48,3 +48,15 @@ export type PersonalRoomsDocumentProps = {
|
|||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-types
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
||||||
export type PersonalRoomsModelType = Model<IPersonalRoomsDatabase, {}, PersonalRoomsDocumentProps>;
|
export type PersonalRoomsModelType = Model<IPersonalRoomsDatabase, {}, PersonalRoomsDocumentProps>;
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
||||||
|
export type TPersonalRoomsDatabaseDocument = Document<unknown, {}, IPersonalRoomsDatabase> &
|
||||||
|
Omit<
|
||||||
|
IPersonalRoomsDatabase & {
|
||||||
|
_id: Types.ObjectId;
|
||||||
|
} & {
|
||||||
|
__v: number;
|
||||||
|
},
|
||||||
|
keyof PersonalRoomsDocumentProps
|
||||||
|
> &
|
||||||
|
PersonalRoomsDocumentProps;
|
||||||
|
@ -1,29 +1,29 @@
|
|||||||
export interface ISession {
|
export interface ISession {
|
||||||
sessionId: string;
|
sessionId: string;
|
||||||
creatorId: string;
|
creatorId: string;
|
||||||
maxPlayers: number;
|
maxPlayers?: number;
|
||||||
minPlayers: number;
|
minPlayers?: number;
|
||||||
privateSlots: number;
|
privateSlots?: number;
|
||||||
scoreLimit: number;
|
scoreLimit?: number;
|
||||||
timeLimit: number;
|
timeLimit?: number;
|
||||||
gameModeId: number;
|
gameModeId?: number;
|
||||||
eloRating: number;
|
eloRating?: number;
|
||||||
regionId: number;
|
regionId?: number;
|
||||||
difficulty: number;
|
difficulty?: number;
|
||||||
hasStarted: boolean;
|
hasStarted?: boolean;
|
||||||
enableVoice: boolean;
|
enableVoice?: boolean;
|
||||||
matchType: string;
|
matchType?: string;
|
||||||
maps: string[];
|
maps?: string[];
|
||||||
originalSessionId: string;
|
originalSessionId?: string;
|
||||||
customSettings: string;
|
customSettings?: string;
|
||||||
rewardSeed: number;
|
rewardSeed?: number;
|
||||||
guildId: string;
|
guildId?: string;
|
||||||
buildId: number;
|
buildId?: number;
|
||||||
platform: number;
|
platform?: number;
|
||||||
xplatform: boolean;
|
xplatform?: boolean;
|
||||||
freePublic: number;
|
freePublic?: number;
|
||||||
freePrivate: number;
|
freePrivate?: number;
|
||||||
fullReset: number;
|
fullReset?: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IFindSessionRequest {
|
export interface IFindSessionRequest {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user