feat: implement helminth naming & archon shard installation #320
@ -8,14 +8,16 @@ export const infestedFoundryController: RequestHandler = async (req, res) => {
 | 
			
		||||
    const accountId = await getAccountIdForRequest(req);
 | 
			
		||||
    const payload = getJSONfromString(req.body.toString());
 | 
			
		||||
    switch (req.query.mode) {
 | 
			
		||||
        case "s": { // shard installation
 | 
			
		||||
        case "s": {
 | 
			
		||||
            // shard installation
 | 
			
		||||
            const request = payload as IShardInstallRequest;
 | 
			
		||||
            const inventory = await getInventory(accountId);
 | 
			
		||||
            const suit = inventory.Suits.find(suit => suit._id.toString() == request.SuitId.$oid)!;
 | 
			
		||||
            if (!suit.ArchonCrystalUpgrades
 | 
			
		||||
                || suit.ArchonCrystalUpgrades.length != 5 // we shouldn't have an array like this, but older inventories may disagree...
 | 
			
		||||
            if (
 | 
			
		||||
                !suit.ArchonCrystalUpgrades ||
 | 
			
		||||
                suit.ArchonCrystalUpgrades.length != 5 // we shouldn't have an array like this, but older inventories may disagree...
 | 
			
		||||
            ) {
 | 
			
		||||
                suit.ArchonCrystalUpgrades = [ {}, {}, {}, {}, {} ];
 | 
			
		||||
                suit.ArchonCrystalUpgrades = [{}, {}, {}, {}, {}];
 | 
			
		||||
            }
 | 
			
		||||
            suit.ArchonCrystalUpgrades[request.Slot] = {
 | 
			
		||||
                UpgradeType: request.UpgradeType,
 | 
			
		||||
@ -37,7 +39,8 @@ export const infestedFoundryController: RequestHandler = async (req, res) => {
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        case "n": { // name the beast
 | 
			
		||||
        case "n": {
 | 
			
		||||
            // name the beast
 | 
			
		||||
            const inventory = await getInventory(accountId);
 | 
			
		||||
            inventory.InfestedFoundry ??= {};
 | 
			
		||||
            inventory.InfestedFoundry.Name = payload.newName as string;
 | 
			
		||||
@ -70,16 +73,16 @@ interface IShardInstallRequest {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const colorToShard: Record<string, string> = {
 | 
			
		||||
    "ACC_RED": "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalAmar",
 | 
			
		||||
    "ACC_RED_MYTHIC": "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalAmarMythic",
 | 
			
		||||
    "ACC_YELLOW": "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalNira",
 | 
			
		||||
    "ACC_YELLOW_MYTHIC": "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalNiraMythic",
 | 
			
		||||
    "ACC_BLUE": "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalBoreal",
 | 
			
		||||
    "ACC_BLUE_MYTHIC": "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalBorealMythic",
 | 
			
		||||
    "ACC_GREEN": "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalGreen",
 | 
			
		||||
    "ACC_GREEN_MYTHIC": "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalGreenMythic",
 | 
			
		||||
    "ACC_ORANGE": "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalOrange",
 | 
			
		||||
    "ACC_ORANGE_MYTHIC": "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalOrangeMythic",
 | 
			
		||||
    "ACC_PURPLE": "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalViolet",
 | 
			
		||||
    "ACC_PURPLE_MYTHIC": "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalVioletMythic",
 | 
			
		||||
    ACC_RED: "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalAmar",
 | 
			
		||||
    ACC_RED_MYTHIC: "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalAmarMythic",
 | 
			
		||||
    ACC_YELLOW: "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalNira",
 | 
			
		||||
    ACC_YELLOW_MYTHIC: "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalNiraMythic",
 | 
			
		||||
    ACC_BLUE: "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalBoreal",
 | 
			
		||||
    ACC_BLUE_MYTHIC: "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalBorealMythic",
 | 
			
		||||
    ACC_GREEN: "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalGreen",
 | 
			
		||||
    ACC_GREEN_MYTHIC: "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalGreenMythic",
 | 
			
		||||
    ACC_ORANGE: "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalOrange",
 | 
			
		||||
    ACC_ORANGE_MYTHIC: "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalOrangeMythic",
 | 
			
		||||
    ACC_PURPLE: "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalViolet",
 | 
			
		||||
    ACC_PURPLE_MYTHIC: "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalVioletMythic"
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -183,10 +183,13 @@ ItemConfigSchema.set("toJSON", {
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
const ArchonCrystalUpgradeSchema = new Schema<IArchonCrystalUpgrade>({
 | 
			
		||||
    UpgradeType: String,
 | 
			
		||||
    Color: String
 | 
			
		||||
}, { _id: false });
 | 
			
		||||
const ArchonCrystalUpgradeSchema = new Schema<IArchonCrystalUpgrade>(
 | 
			
		||||
    {
 | 
			
		||||
        UpgradeType: String,
 | 
			
		||||
        Color: String
 | 
			
		||||
    },
 | 
			
		||||
    { _id: false }
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
ArchonCrystalUpgradeSchema.set("toJSON", {
 | 
			
		||||
    transform(_document, returnedObject) {
 | 
			
		||||
@ -444,16 +447,19 @@ const consumedSchuitsSchema = new Schema<IConsumedSuit>({
 | 
			
		||||
    c: colorSchema
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
const infestedFoundrySchema = new Schema<IInfestedFoundry>({
 | 
			
		||||
    Name: String,
 | 
			
		||||
    Resources: { type: [typeCountSchema], default: undefined },
 | 
			
		||||
    Slots: Number,
 | 
			
		||||
    XP: Number,
 | 
			
		||||
    ConsumedSuits: { type: [consumedSchuitsSchema], default: undefined },
 | 
			
		||||
    InvigorationIndex: Number,
 | 
			
		||||
    InvigorationSuitOfferings: { type: [String], default: undefined },
 | 
			
		||||
    InvigorationsApplied: Number
 | 
			
		||||
}, { _id: false });
 | 
			
		||||
const infestedFoundrySchema = new Schema<IInfestedFoundry>(
 | 
			
		||||
    {
 | 
			
		||||
        Name: String,
 | 
			
		||||
        Resources: { type: [typeCountSchema], default: undefined },
 | 
			
		||||
        Slots: Number,
 | 
			
		||||
        XP: Number,
 | 
			
		||||
        ConsumedSuits: { type: [consumedSchuitsSchema], default: undefined },
 | 
			
		||||
        InvigorationIndex: Number,
 | 
			
		||||
        InvigorationSuitOfferings: { type: [String], default: undefined },
 | 
			
		||||
        InvigorationsApplied: Number
 | 
			
		||||
    },
 | 
			
		||||
    { _id: false }
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
const questProgressSchema = new Schema<IQuestProgress>({
 | 
			
		||||
    c: Number,
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user