diff --git a/src/controllers/api/updateQuestController.ts b/src/controllers/api/updateQuestController.ts index 042e1d23..43c3d53b 100644 --- a/src/controllers/api/updateQuestController.ts +++ b/src/controllers/api/updateQuestController.ts @@ -37,5 +37,6 @@ export const updateQuestController: RequestHandler = async (req, res) => { return; } + await inventory.save(); res.send({ MissionRewards: [] }); }; diff --git a/src/models/inventoryModels/inventoryModel.ts b/src/models/inventoryModels/inventoryModel.ts index eead6914..a803a36c 100644 --- a/src/models/inventoryModels/inventoryModel.ts +++ b/src/models/inventoryModels/inventoryModel.ts @@ -941,6 +941,7 @@ const inventorySchema = new Schema( //Complete Mission\Quests Missions: [Schema.Types.Mixed], QuestKeys: [questKeysSchema], + ActiveQuest: { type: String, default: "/Lotus/Types/Keys/VorsPrize/VorsPrizeQuestKeyChain" }, //TODO: check after mission starting gear //item like DojoKey or Boss missions key LevelKeys: [Schema.Types.Mixed], //Active quests diff --git a/src/models/personalRoomsModel.ts b/src/models/personalRoomsModel.ts index 76c9e315..36243c6d 100644 --- a/src/models/personalRoomsModel.ts +++ b/src/models/personalRoomsModel.ts @@ -88,7 +88,7 @@ const apartmentDefault: IApartment = { const orbiterSchema = new Schema( { - Features: { type: [String], default: ["/Lotus/Types/Items/ShipFeatureItems/EarthNavigationFeatureItem"] }, + Features: [String], Rooms: [roomSchema], ContentUrlSignature: { type: String, required: false }, BootLocation: String @@ -96,7 +96,7 @@ const orbiterSchema = new Schema( { _id: false } ); const orbiterDefault: IOrbiter = { - Features: [], + Features: ["/Lotus/Types/Items/ShipFeatureItems/EarthNavigationFeatureItem"], //TODO: potentially remove after missionstarting gear Rooms: [ { Name: "AlchemyRoom", MaxCapacity: 1600 }, { Name: "BridgeRoom", MaxCapacity: 1600 }, diff --git a/src/services/inventoryService.ts b/src/services/inventoryService.ts index 6ccbca2a..0d1f4eb1 100644 --- a/src/services/inventoryService.ts +++ b/src/services/inventoryService.ts @@ -71,8 +71,10 @@ export const createInventory = async ( { ItemCount: 1, ItemType: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem2" }, { ItemCount: 1, ItemType: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem3" }, { ItemCount: 1, ItemType: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem4" }, - { ItemCount: 1, ItemType: "/Lotus/Types/Restoratives/LisetAutoHack" }, + { ItemCount: 1, ItemType: "/Lotus/Types/Restoratives/LisetAutoHack" } + ]; + const vorsPrizeRewards = [ // Vor's Prize rewards { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Warframe/AvatarHealthMaxMod" }, { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Warframe/AvatarShieldMaxMod" }, @@ -95,7 +97,6 @@ export const createInventory = async ( { ItemCount: 400, ItemType: "/Lotus/Types/Items/MiscItems/PolymerBundle" }, { ItemCount: 150, ItemType: "/Lotus/Types/Items/MiscItems/AlloyPlate" } ]; - for (const equipment of defaultEquipment) { await addItem(inventory, equipment.ItemType, equipment.ItemCount); } diff --git a/src/services/loginService.ts b/src/services/loginService.ts index fb9f36eb..5d518255 100644 --- a/src/services/loginService.ts +++ b/src/services/loginService.ts @@ -45,16 +45,16 @@ export const createPersonalRooms = async (accountId: Types.ObjectId, shipId: Typ activeShipId: shipId }); if (config.skipTutorial) { - // Vor's Prize rewards - const defaultFeatures = [ - "/Lotus/Types/Items/ShipFeatureItems/EarthNavigationFeatureItem", - "/Lotus/Types/Items/ShipFeatureItems/MercuryNavigationFeatureItem", - "/Lotus/Types/Items/ShipFeatureItems/ArsenalFeatureItem", - "/Lotus/Types/Items/ShipFeatureItems/SocialMenuFeatureItem", - "/Lotus/Types/Items/ShipFeatureItems/FoundryFeatureItem", - "/Lotus/Types/Items/ShipFeatureItems/ModsFeatureItem" - ]; - personalRooms.Ship.Features.push(...defaultFeatures); + // // Vor's Prize rewards + // const defaultFeatures = [ + // "/Lotus/Types/Items/ShipFeatureItems/EarthNavigationFeatureItem", + // "/Lotus/Types/Items/ShipFeatureItems/MercuryNavigationFeatureItem", + // "/Lotus/Types/Items/ShipFeatureItems/ArsenalFeatureItem", + // "/Lotus/Types/Items/ShipFeatureItems/SocialMenuFeatureItem", + // "/Lotus/Types/Items/ShipFeatureItems/FoundryFeatureItem", + // "/Lotus/Types/Items/ShipFeatureItems/ModsFeatureItem" + // ]; + // personalRooms.Ship.Features.push(...defaultFeatures); } await personalRooms.save(); }; diff --git a/src/services/personalRoomsService.ts b/src/services/personalRoomsService.ts index c9604c7a..e84e3341 100644 --- a/src/services/personalRoomsService.ts +++ b/src/services/personalRoomsService.ts @@ -1,4 +1,5 @@ import { PersonalRooms } from "@/src/models/personalRoomsModel"; +import { addItem, getInventory } from "@/src/services/inventoryService"; export const getPersonalRooms = async (accountId: string) => { const personalRooms = await PersonalRooms.findOne({ personalRoomsOwnerId: accountId }); @@ -11,10 +12,15 @@ export const getPersonalRooms = async (accountId: string) => { export const updateShipFeature = async (accountId: string, shipFeature: string) => { const personalRooms = await getPersonalRooms(accountId); + + // if (personalRooms.Ship.Features.includes(shipFeature)) { + // throw new Error(`ship feature ${shipFeature} already unlocked`); + // } + personalRooms.Ship.Features.push(shipFeature); - - //push if not already present - - //remove ship feature item from misc items await personalRooms.save(); + + const inventory = await getInventory(accountId); + await addItem(inventory, shipFeature, -1); + await inventory.save(); };