feat: echoes of umbra (#2177)
Having this item in the inventory unlocks the helminth option which is helpfully called "remove cyst" to install and uninstall it on a frame. Reviewed-on: #2177 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
This commit is contained in:
parent
01e490768c
commit
6c2055a246
27
src/controllers/api/umbraController.ts
Normal file
27
src/controllers/api/umbraController.ts
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
import { fromMongoDate, fromOid } from "@/src/helpers/inventoryHelpers";
|
||||||
|
import { getJSONfromString } from "@/src/helpers/stringHelpers";
|
||||||
|
import { addMiscItem, getInventory } from "@/src/services/inventoryService";
|
||||||
|
import { getAccountIdForRequest } from "@/src/services/loginService";
|
||||||
|
import { IEquipmentClient } from "@/src/types/inventoryTypes/commonInventoryTypes";
|
||||||
|
import { RequestHandler } from "express";
|
||||||
|
|
||||||
|
export const umbraController: RequestHandler = async (req, res) => {
|
||||||
|
const accountId = await getAccountIdForRequest(req);
|
||||||
|
const inventory = await getInventory(accountId, "Suits MiscItems");
|
||||||
|
const payload = getJSONfromString<IUmbraRequest>(String(req.body));
|
||||||
|
for (const clientSuit of payload.Suits) {
|
||||||
|
const dbSuit = inventory.Suits.id(fromOid(clientSuit.ItemId))!;
|
||||||
|
if (clientSuit.UmbraDate) {
|
||||||
|
addMiscItem(inventory, "/Lotus/Types/Items/MiscItems/UmbraEchoes", -1);
|
||||||
|
dbSuit.UmbraDate = fromMongoDate(clientSuit.UmbraDate);
|
||||||
|
} else {
|
||||||
|
dbSuit.UmbraDate = undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
await inventory.save();
|
||||||
|
res.end();
|
||||||
|
};
|
||||||
|
|
||||||
|
interface IUmbraRequest {
|
||||||
|
Suits: IEquipmentClient[];
|
||||||
|
}
|
@ -148,6 +148,7 @@ import { syndicateStandingBonusController } from "@/src/controllers/api/syndicat
|
|||||||
import { tauntHistoryController } from "@/src/controllers/api/tauntHistoryController";
|
import { tauntHistoryController } from "@/src/controllers/api/tauntHistoryController";
|
||||||
import { tradingController } from "@/src/controllers/api/tradingController";
|
import { tradingController } from "@/src/controllers/api/tradingController";
|
||||||
import { trainingResultController } from "@/src/controllers/api/trainingResultController";
|
import { trainingResultController } from "@/src/controllers/api/trainingResultController";
|
||||||
|
import { umbraController } from "@/src/controllers/api/umbraController";
|
||||||
import { unlockShipFeatureController } from "@/src/controllers/api/unlockShipFeatureController";
|
import { unlockShipFeatureController } from "@/src/controllers/api/unlockShipFeatureController";
|
||||||
import { updateAlignmentController } from "@/src/controllers/api/updateAlignmentController";
|
import { updateAlignmentController } from "@/src/controllers/api/updateAlignmentController";
|
||||||
import { updateChallengeProgressController } from "@/src/controllers/api/updateChallengeProgressController";
|
import { updateChallengeProgressController } from "@/src/controllers/api/updateChallengeProgressController";
|
||||||
@ -329,6 +330,7 @@ apiRouter.post("/syndicateSacrifice.php", syndicateSacrificeController);
|
|||||||
apiRouter.post("/syndicateStandingBonus.php", syndicateStandingBonusController);
|
apiRouter.post("/syndicateStandingBonus.php", syndicateStandingBonusController);
|
||||||
apiRouter.post("/tauntHistory.php", tauntHistoryController);
|
apiRouter.post("/tauntHistory.php", tauntHistoryController);
|
||||||
apiRouter.post("/trainingResult.php", trainingResultController);
|
apiRouter.post("/trainingResult.php", trainingResultController);
|
||||||
|
apiRouter.post("/umbra.php", umbraController);
|
||||||
apiRouter.post("/unlockShipFeature.php", unlockShipFeatureController);
|
apiRouter.post("/unlockShipFeature.php", unlockShipFeatureController);
|
||||||
apiRouter.post("/updateAlignment.php", updateAlignmentController);
|
apiRouter.post("/updateAlignment.php", updateAlignmentController);
|
||||||
apiRouter.post("/updateChallengeProgress.php", updateChallengeProgressController);
|
apiRouter.post("/updateChallengeProgress.php", updateChallengeProgressController);
|
||||||
|
@ -1580,7 +1580,7 @@ export const addMiscItem = (
|
|||||||
inventory: TInventoryDatabaseDocument,
|
inventory: TInventoryDatabaseDocument,
|
||||||
type: string,
|
type: string,
|
||||||
count: number,
|
count: number,
|
||||||
inventoryChanges: IInventoryChanges
|
inventoryChanges: IInventoryChanges = {}
|
||||||
): void => {
|
): void => {
|
||||||
const miscItemChanges: IMiscItem[] = [
|
const miscItemChanges: IMiscItem[] = [
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user