Merge branch 'feat-syndicate' of https://github.com/janisslsm/SpaceNinjaServer into feat-syndicate

This commit is contained in:
Jānis 2024-06-02 18:27:40 +03:00
commit 0aa3d5437a
4 changed files with 26 additions and 16 deletions

View File

@ -5,7 +5,6 @@ import { RequestHandler } from "express";
import { getAccountIdForRequest } from "@/src/services/loginService"; import { getAccountIdForRequest } from "@/src/services/loginService";
// eslint-disable-next-line @typescript-eslint/no-misused-promises // eslint-disable-next-line @typescript-eslint/no-misused-promises
const syndicateSacrificeController: RequestHandler = async (request, response) => { const syndicateSacrificeController: RequestHandler = async (request, response) => {
const accountId = await getAccountIdForRequest(request); const accountId = await getAccountIdForRequest(request);
const body = getJSONfromString(request.body); const body = getJSONfromString(request.body);
let reply = {}; let reply = {};

View File

@ -17,7 +17,12 @@ import {
ITypeCount ITypeCount
} from "@/src/types/inventoryTypes/inventoryTypes"; } from "@/src/types/inventoryTypes/inventoryTypes";
import { IGenericUpdate } from "../types/genericUpdate"; import { IGenericUpdate } from "../types/genericUpdate";
import { IArtifactsRequest, IMissionInventoryUpdateRequest, IThemeUpdateRequest, IUpdateChallengeProgressRequest } from "../types/requestTypes"; import {
IArtifactsRequest,
IMissionInventoryUpdateRequest,
IThemeUpdateRequest,
IUpdateChallengeProgressRequest
} from "../types/requestTypes";
import { logger } from "@/src/utils/logger"; import { logger } from "@/src/utils/logger";
import { WeaponTypeInternal } from "@/src/services/itemDataService"; import { WeaponTypeInternal } from "@/src/services/itemDataService";
import { ISyndicateSacrifice, ISyndicateSacrificeResponse } from "../types/syndicateTypes"; import { ISyndicateSacrifice, ISyndicateSacrificeResponse } from "../types/syndicateTypes";
@ -166,7 +171,10 @@ export const updateTheme = async (data: IThemeUpdateRequest, accountId: string)
await inventory.save(); await inventory.save();
}; };
export const syndicateSacrifice = async (data: ISyndicateSacrifice, accountId: string): Promise<ISyndicateSacrificeResponse> => { export const syndicateSacrifice = async (
data: ISyndicateSacrifice,
accountId: string
): Promise<ISyndicateSacrificeResponse> => {
const inventory = await getInventory(accountId); const inventory = await getInventory(accountId);
const syndicate = inventory.Affiliations.find(x => x.Tag == data.AffiliationTag); const syndicate = inventory.Affiliations.find(x => x.Tag == data.AffiliationTag);
const level = data.SacrificeLevel - (syndicate?.Title ?? 0); const level = data.SacrificeLevel - (syndicate?.Title ?? 0);
@ -176,7 +184,7 @@ export const syndicateSacrifice = async (data: ISyndicateSacrifice, accountId: s
Level: data.SacrificeLevel, Level: data.SacrificeLevel,
LevelIncrease: level <= 0 ? 1 : level, LevelIncrease: level <= 0 ? 1 : level,
NewEpisodeReward: syndicate?.Tag == "RadioLegionIntermission9Syndicate" NewEpisodeReward: syndicate?.Tag == "RadioLegionIntermission9Syndicate"
} };
if (syndicate?.Title !== undefined) syndicate.Title += 1; if (syndicate?.Title !== undefined) syndicate.Title += 1;
@ -320,7 +328,10 @@ export const updateChallengeProgress = async (challenges: IUpdateChallengeProgre
await inventory.save(); await inventory.save();
}; };
export const addSeasonalChallengeHistory = (inventory: IInventoryDatabaseDocument, itemsArray: ISeasonChallengeHistory[] | undefined) => { export const addSeasonalChallengeHistory = (
inventory: IInventoryDatabaseDocument,
itemsArray: ISeasonChallengeHistory[] | undefined
) => {
const category = inventory.SeasonChallengeHistory; const category = inventory.SeasonChallengeHistory;
itemsArray?.forEach(({ challenge, id }) => { itemsArray?.forEach(({ challenge, id }) => {
@ -376,9 +387,10 @@ export const missionInventoryUpdate = async (data: IMissionInventoryUpdateReques
// syndicate // syndicate
data.AffiliationChanges?.forEach(affiliation => { data.AffiliationChanges?.forEach(affiliation => {
const syndicate = inventory.Affiliations.find(x => x.Tag == affiliation.Tag); const syndicate = inventory.Affiliations.find(x => x.Tag == affiliation.Tag);
if (syndicate !== undefined) { if (syndicate !== undefined) {
syndicate.Standing = syndicate.Standing === undefined ? affiliation.Standing : syndicate.Standing + affiliation.Standing; syndicate.Standing =
syndicate.Standing === undefined ? affiliation.Standing : syndicate.Standing + affiliation.Standing;
syndicate.Title = syndicate.Title === undefined ? affiliation.Title : syndicate.Title + affiliation.Title; syndicate.Title = syndicate.Title === undefined ? affiliation.Title : syndicate.Title + affiliation.Title;
} else { } else {
inventory.Affiliations.push({ inventory.Affiliations.push({
@ -389,7 +401,7 @@ export const missionInventoryUpdate = async (data: IMissionInventoryUpdateReques
FreeFavorsUsed: [] FreeFavorsUsed: []
}); });
} }
}) });
// Gear XP // Gear XP
gearKeys.forEach(key => addGearExpByCategory(inventory, data[key], key)); gearKeys.forEach(key => addGearExpByCategory(inventory, data[key], key));

View File

@ -27,11 +27,10 @@ export interface IThemeUpdateRequest {
Sounds?: string; Sounds?: string;
} }
export interface IAffiliationChange export interface IAffiliationChange {
{ Tag: string;
Tag: string, Standing: number;
Standing: number, Title: number;
Title: number
} }
export interface IUpdateChallengeProgressRequest { export interface IUpdateChallengeProgressRequest {