add createGarden
This commit is contained in:
		
							parent
							
								
									3937dc0ef8
								
							
						
					
					
						commit
						e358e83140
					
				@ -2,13 +2,12 @@ import { RequestHandler } from "express";
 | 
				
			|||||||
import { config } from "@/src/services/configService";
 | 
					import { config } from "@/src/services/configService";
 | 
				
			||||||
import allShipFeatures from "@/static/fixed_responses/allShipFeatures.json";
 | 
					import allShipFeatures from "@/static/fixed_responses/allShipFeatures.json";
 | 
				
			||||||
import { getAccountIdForRequest } from "@/src/services/loginService";
 | 
					import { getAccountIdForRequest } from "@/src/services/loginService";
 | 
				
			||||||
import { getPersonalRooms } from "@/src/services/personalRoomsService";
 | 
					import { createGarden, getPersonalRooms } from "@/src/services/personalRoomsService";
 | 
				
			||||||
import { getShip } from "@/src/services/shipService";
 | 
					import { getShip } from "@/src/services/shipService";
 | 
				
			||||||
import { toOid } from "@/src/helpers/inventoryHelpers";
 | 
					import { toOid } from "@/src/helpers/inventoryHelpers";
 | 
				
			||||||
import { IGetShipResponse } from "@/src/types/shipTypes";
 | 
					import { IGetShipResponse } from "@/src/types/shipTypes";
 | 
				
			||||||
import { IPersonalRoomsClient } from "@/src/types/personalRoomsTypes";
 | 
					import { IPersonalRoomsClient } from "@/src/types/personalRoomsTypes";
 | 
				
			||||||
import { getLoadout } from "@/src/services/loadoutService";
 | 
					import { getLoadout } from "@/src/services/loadoutService";
 | 
				
			||||||
import { getRandomElement } from "@/src/services/rngService";
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const getShipController: RequestHandler = async (req, res) => {
 | 
					export const getShipController: RequestHandler = async (req, res) => {
 | 
				
			||||||
    const accountId = await getAccountIdForRequest(req);
 | 
					    const accountId = await getAccountIdForRequest(req);
 | 
				
			||||||
@ -16,64 +15,7 @@ export const getShipController: RequestHandler = async (req, res) => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    // Setup gardening if it's missing. Maybe should be done as part of some quest completion in the future.
 | 
					    // Setup gardening if it's missing. Maybe should be done as part of some quest completion in the future.
 | 
				
			||||||
    if (personalRoomsDb.Apartment.Gardening.Planters.length == 0) {
 | 
					    if (personalRoomsDb.Apartment.Gardening.Planters.length == 0) {
 | 
				
			||||||
        const plantTypes = [
 | 
					        personalRoomsDb.Apartment.Gardening = createGarden();
 | 
				
			||||||
            "/Lotus/Types/Items/Plants/MiscItems/DuvxDuviriGrowingPlantA",
 | 
					 | 
				
			||||||
            "/Lotus/Types/Items/Plants/MiscItems/DuvxDuviriGrowingPlantB",
 | 
					 | 
				
			||||||
            "/Lotus/Types/Items/Plants/MiscItems/DuvxDuviriGrowingPlantC",
 | 
					 | 
				
			||||||
            "/Lotus/Types/Items/Plants/MiscItems/DuvxDuviriGrowingPlantD",
 | 
					 | 
				
			||||||
            "/Lotus/Types/Items/Plants/MiscItems/DuvxDuviriGrowingPlantE",
 | 
					 | 
				
			||||||
            "/Lotus/Types/Items/Plants/MiscItems/DuvxDuviriGrowingPlantF"
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
        const endTime = new Date(Date.now() + 79200_000); // Plants will take 22 hours to grow
 | 
					 | 
				
			||||||
        personalRoomsDb.Apartment.Gardening = {
 | 
					 | 
				
			||||||
            Planters: [
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    Name: "Garden0",
 | 
					 | 
				
			||||||
                    Plants: [
 | 
					 | 
				
			||||||
                        {
 | 
					 | 
				
			||||||
                            PlantType: getRandomElement(plantTypes),
 | 
					 | 
				
			||||||
                            EndTime: endTime,
 | 
					 | 
				
			||||||
                            PlotIndex: 0
 | 
					 | 
				
			||||||
                        },
 | 
					 | 
				
			||||||
                        {
 | 
					 | 
				
			||||||
                            PlantType: getRandomElement(plantTypes),
 | 
					 | 
				
			||||||
                            EndTime: endTime,
 | 
					 | 
				
			||||||
                            PlotIndex: 1
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    ]
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    Name: "Garden1",
 | 
					 | 
				
			||||||
                    Plants: [
 | 
					 | 
				
			||||||
                        {
 | 
					 | 
				
			||||||
                            PlantType: getRandomElement(plantTypes),
 | 
					 | 
				
			||||||
                            EndTime: endTime,
 | 
					 | 
				
			||||||
                            PlotIndex: 0
 | 
					 | 
				
			||||||
                        },
 | 
					 | 
				
			||||||
                        {
 | 
					 | 
				
			||||||
                            PlantType: getRandomElement(plantTypes),
 | 
					 | 
				
			||||||
                            EndTime: endTime,
 | 
					 | 
				
			||||||
                            PlotIndex: 1
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    ]
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    Name: "Garden2",
 | 
					 | 
				
			||||||
                    Plants: [
 | 
					 | 
				
			||||||
                        {
 | 
					 | 
				
			||||||
                            PlantType: getRandomElement(plantTypes),
 | 
					 | 
				
			||||||
                            EndTime: endTime,
 | 
					 | 
				
			||||||
                            PlotIndex: 0
 | 
					 | 
				
			||||||
                        },
 | 
					 | 
				
			||||||
                        {
 | 
					 | 
				
			||||||
                            PlantType: getRandomElement(plantTypes),
 | 
					 | 
				
			||||||
                            EndTime: endTime,
 | 
					 | 
				
			||||||
                            PlotIndex: 1
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    ]
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            ]
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        await personalRoomsDb.save();
 | 
					        await personalRoomsDb.save();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +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";
 | 
					import { TPersonalRoomsDatabaseDocument } from "../types/personalRoomsTypes";
 | 
				
			||||||
 | 
					import { IGardeningDatabase } from "../types/shipTypes";
 | 
				
			||||||
 | 
					import { getRandomElement } from "./rngService";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const getPersonalRooms = async (accountId: string): Promise<TPersonalRoomsDatabaseDocument> => {
 | 
					export const getPersonalRooms = async (accountId: string): Promise<TPersonalRoomsDatabaseDocument> => {
 | 
				
			||||||
    const personalRooms = await PersonalRooms.findOne({ personalRoomsOwnerId: accountId });
 | 
					    const personalRooms = await PersonalRooms.findOne({ personalRoomsOwnerId: accountId });
 | 
				
			||||||
@ -25,3 +27,64 @@ export const updateShipFeature = async (accountId: string, shipFeature: string):
 | 
				
			|||||||
    await addItem(inventory, shipFeature, -1);
 | 
					    await addItem(inventory, shipFeature, -1);
 | 
				
			||||||
    await inventory.save();
 | 
					    await inventory.save();
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const createGarden = (): IGardeningDatabase => {
 | 
				
			||||||
 | 
					    const plantTypes = [
 | 
				
			||||||
 | 
					        "/Lotus/Types/Items/Plants/MiscItems/DuvxDuviriGrowingPlantA",
 | 
				
			||||||
 | 
					        "/Lotus/Types/Items/Plants/MiscItems/DuvxDuviriGrowingPlantB",
 | 
				
			||||||
 | 
					        "/Lotus/Types/Items/Plants/MiscItems/DuvxDuviriGrowingPlantC",
 | 
				
			||||||
 | 
					        "/Lotus/Types/Items/Plants/MiscItems/DuvxDuviriGrowingPlantD",
 | 
				
			||||||
 | 
					        "/Lotus/Types/Items/Plants/MiscItems/DuvxDuviriGrowingPlantE",
 | 
				
			||||||
 | 
					        "/Lotus/Types/Items/Plants/MiscItems/DuvxDuviriGrowingPlantF"
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					    const endTime = new Date(Date.now() + 79200_000); // Plants will take 22 hours to grow
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					        Planters: [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                Name: "Garden0",
 | 
				
			||||||
 | 
					                Plants: [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        PlantType: getRandomElement(plantTypes),
 | 
				
			||||||
 | 
					                        EndTime: endTime,
 | 
				
			||||||
 | 
					                        PlotIndex: 0
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        PlantType: getRandomElement(plantTypes),
 | 
				
			||||||
 | 
					                        EndTime: endTime,
 | 
				
			||||||
 | 
					                        PlotIndex: 1
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ]
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                Name: "Garden1",
 | 
				
			||||||
 | 
					                Plants: [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        PlantType: getRandomElement(plantTypes),
 | 
				
			||||||
 | 
					                        EndTime: endTime,
 | 
				
			||||||
 | 
					                        PlotIndex: 0
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        PlantType: getRandomElement(plantTypes),
 | 
				
			||||||
 | 
					                        EndTime: endTime,
 | 
				
			||||||
 | 
					                        PlotIndex: 1
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ]
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                Name: "Garden2",
 | 
				
			||||||
 | 
					                Plants: [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        PlantType: getRandomElement(plantTypes),
 | 
				
			||||||
 | 
					                        EndTime: endTime,
 | 
				
			||||||
 | 
					                        PlotIndex: 0
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        PlantType: getRandomElement(plantTypes),
 | 
				
			||||||
 | 
					                        EndTime: endTime,
 | 
				
			||||||
 | 
					                        PlotIndex: 1
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ]
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user