diff --git a/src/controllers/api/feedPrinceController.ts b/src/controllers/api/feedPrinceController.ts index 89c6fce6..67fd07db 100644 --- a/src/controllers/api/feedPrinceController.ts +++ b/src/controllers/api/feedPrinceController.ts @@ -6,24 +6,40 @@ import { logger } from "../../utils/logger.ts"; export const feedPrinceController: RequestHandler = async (req, res) => { const accountId = await getAccountIdForRequest(req); - const inventory = await getInventory(accountId, "MiscItems NokkoColony"); + const inventory = await getInventory(accountId, "MiscItems NokkoColony NodeIntrosCompleted"); const payload = getJSONfromString(String(req.body)); switch (payload.Mode) { case "r": { - const InventoryChanges = {}; - addMiscItem(inventory, "/Lotus/Types/Items/MiscItems/MushroomFood", payload.Amount * -1, InventoryChanges); inventory.NokkoColony ??= { FeedLevel: 0, JournalEntries: [] }; + const InventoryChanges = {}; inventory.NokkoColony.FeedLevel += payload.Amount; - await inventory.save(); - res.json({ - FeedSucceeded: true, - FeedLevel: inventory.NokkoColony.FeedLevel, - InventoryChanges - }); + if ( + (!inventory.NodeIntrosCompleted.includes("CompletedVision1") && inventory.NokkoColony.FeedLevel > 20) || + (!inventory.NodeIntrosCompleted.includes("CompletedVision2") && inventory.NokkoColony.FeedLevel > 60) + ) { + res.json({ + FeedSucceeded: false, + FeedLevel: inventory.NokkoColony.FeedLevel - payload.Amount, + InventoryChanges + }); + } else { + addMiscItem( + inventory, + "/Lotus/Types/Items/MiscItems/MushroomFood", + payload.Amount * -1, + InventoryChanges + ); + await inventory.save(); + res.json({ + FeedSucceeded: true, + FeedLevel: inventory.NokkoColony.FeedLevel, + InventoryChanges + }); + } break; }