forked from OpenWF/SpaceNinjaServer
		
	feat: more inventory schemas (#131)
This commit is contained in:
		
							parent
							
								
									8156036203
								
							
						
					
					
						commit
						91ced2c75b
					
				
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -11,3 +11,6 @@ yarn.lock
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# logs
 | 
					# logs
 | 
				
			||||||
/logs
 | 
					/logs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# MongoDB VSCode extension playground scripts
 | 
				
			||||||
 | 
					/database_scripts
 | 
				
			||||||
@ -6,7 +6,7 @@
 | 
				
			|||||||
  "worldSeed": "qihVmIIyYXz0E4+01UjY+ROEiAB7x3k40ZaCUtVLEF17u9TXVita+jHZRuMLB6OT8GOfX8C+kqkyrT26AJEHFV0IDUkoZ1bntDSBL6wN36tq+ttsN/8NIcy1eGIyLzHn1Cosbtp8ykPhIaFKWlWP6v0QUBObIT11xLXF8fd+7cAEUcPygnS6WK048KEjMldK5bXIkkg9NV7ZXWLhNfTVG0mN0VluNUKDlc/JCiYRkxvparpn7xKwFpxqZJIeYhOz/zaktlEcVFxxB6ewd/X+XNq7+SkPUw5btQKQeYax1AxBZHzCk0XF1ihRQKPdMeVzXIRq43Yf/8emu8siIC4dFA==",
 | 
					  "worldSeed": "qihVmIIyYXz0E4+01UjY+ROEiAB7x3k40ZaCUtVLEF17u9TXVita+jHZRuMLB6OT8GOfX8C+kqkyrT26AJEHFV0IDUkoZ1bntDSBL6wN36tq+ttsN/8NIcy1eGIyLzHn1Cosbtp8ykPhIaFKWlWP6v0QUBObIT11xLXF8fd+7cAEUcPygnS6WK048KEjMldK5bXIkkg9NV7ZXWLhNfTVG0mN0VluNUKDlc/JCiYRkxvparpn7xKwFpxqZJIeYhOz/zaktlEcVFxxB6ewd/X+XNq7+SkPUw5btQKQeYax1AxBZHzCk0XF1ihRQKPdMeVzXIRq43Yf/8emu8siIC4dFA==",
 | 
				
			||||||
  "skipStoryModeChoice": true,
 | 
					  "skipStoryModeChoice": true,
 | 
				
			||||||
  "skipTutorial": true,
 | 
					  "skipTutorial": true,
 | 
				
			||||||
  "testMission": true,
 | 
					  "unlockAllMissions": true,
 | 
				
			||||||
  "testQuestKey": true,
 | 
					  "unlockAllQuests": false,
 | 
				
			||||||
  "infiniteResources": true
 | 
					  "infiniteResources": true
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										68
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										68
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@ -235,9 +235,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@mongodb-js/saslprep": {
 | 
					    "node_modules/@mongodb-js/saslprep": {
 | 
				
			||||||
      "version": "1.1.1",
 | 
					      "version": "1.1.4",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.4.tgz",
 | 
				
			||||||
      "integrity": "sha512-t7c5K033joZZMspnHg/gWPE4kandgc2OxE74aYOtGKfgB9VPuVJPix0H6fhmm2erj5PBJ21mqcx34lpIGtUCsQ==",
 | 
					      "integrity": "sha512-8zJ8N1x51xo9hwPh6AWnKdLGEC5N3lDa6kms1YHmFBoRhTpJR6HG8wWk0td1MVCu9cD4YBrvjZEtd5Obw0Fbnw==",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "sparse-bitfield": "^3.0.3"
 | 
					        "sparse-bitfield": "^3.0.3"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@ -394,7 +394,8 @@
 | 
				
			|||||||
    "node_modules/@types/node": {
 | 
					    "node_modules/@types/node": {
 | 
				
			||||||
      "version": "18.16.3",
 | 
					      "version": "18.16.3",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.3.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.3.tgz",
 | 
				
			||||||
      "integrity": "sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q=="
 | 
					      "integrity": "sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@types/qs": {
 | 
					    "node_modules/@types/qs": {
 | 
				
			||||||
      "version": "6.9.7",
 | 
					      "version": "6.9.7",
 | 
				
			||||||
@ -457,11 +458,10 @@
 | 
				
			|||||||
      "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA=="
 | 
					      "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA=="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@types/whatwg-url": {
 | 
					    "node_modules/@types/whatwg-url": {
 | 
				
			||||||
      "version": "8.2.2",
 | 
					      "version": "11.0.4",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.4.tgz",
 | 
				
			||||||
      "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==",
 | 
					      "integrity": "sha512-lXCmTWSHJvf0TRSO58nm978b8HJ/EdsSsEKLd3ODHFjo+3VGAyyTp4v50nWvwtzBxSMQrVOK7tcuN0zGPLICMw==",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@types/node": "*",
 | 
					 | 
				
			||||||
        "@types/webidl-conversions": "*"
 | 
					        "@types/webidl-conversions": "*"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
@ -1178,9 +1178,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/bson": {
 | 
					    "node_modules/bson": {
 | 
				
			||||||
      "version": "6.2.0",
 | 
					      "version": "6.3.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/bson/-/bson-6.2.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/bson/-/bson-6.3.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-ID1cI+7bazPDyL9wYy9GaQ8gEEohWvcUl/Yf0dIdutJxnmInEEyCsb4awy/OiBfall7zBA179Pahi3vCdFze3Q==",
 | 
					      "integrity": "sha512-balJfqwwTBddxfnidJZagCBPP/f48zj9Sdp3OJswREOgsJzHiQSaOIAtApSgDQFYgHqAvFkp53AFSqjMDZoTFw==",
 | 
				
			||||||
      "engines": {
 | 
					      "engines": {
 | 
				
			||||||
        "node": ">=16.20.1"
 | 
					        "node": ">=16.20.1"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@ -2639,13 +2639,13 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/mongodb": {
 | 
					    "node_modules/mongodb": {
 | 
				
			||||||
      "version": "6.2.0",
 | 
					      "version": "6.3.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.2.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.3.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-d7OSuGjGWDZ5usZPqfvb36laQ9CPhnWkAGHT61x5P95p/8nMVeH8asloMwW6GcYFeB0Vj4CB/1wOTDG2RA9BFA==",
 | 
					      "integrity": "sha512-tt0KuGjGtLUhLoU263+xvQmPHEGTw5LbcNC73EoFRYgSHwZt5tsoJC110hDyO1kjQzpgNrpdcSza9PknWN4LrA==",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@mongodb-js/saslprep": "^1.1.0",
 | 
					        "@mongodb-js/saslprep": "^1.1.0",
 | 
				
			||||||
        "bson": "^6.2.0",
 | 
					        "bson": "^6.2.0",
 | 
				
			||||||
        "mongodb-connection-string-url": "^2.6.0"
 | 
					        "mongodb-connection-string-url": "^3.0.0"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "engines": {
 | 
					      "engines": {
 | 
				
			||||||
        "node": ">=16.20.1"
 | 
					        "node": ">=16.20.1"
 | 
				
			||||||
@ -2684,22 +2684,22 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/mongodb-connection-string-url": {
 | 
					    "node_modules/mongodb-connection-string-url": {
 | 
				
			||||||
      "version": "2.6.0",
 | 
					      "version": "3.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==",
 | 
					      "integrity": "sha512-t1Vf+m1I5hC2M5RJx/7AtxgABy1cZmIPQRMXw+gEIPn/cZNF3Oiy+l0UIypUwVB5trcWHq3crg2g3uAR9aAwsQ==",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@types/whatwg-url": "^8.2.1",
 | 
					        "@types/whatwg-url": "^11.0.2",
 | 
				
			||||||
        "whatwg-url": "^11.0.0"
 | 
					        "whatwg-url": "^13.0.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/mongoose": {
 | 
					    "node_modules/mongoose": {
 | 
				
			||||||
      "version": "8.0.2",
 | 
					      "version": "8.1.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.0.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.1.1.tgz",
 | 
				
			||||||
      "integrity": "sha512-Vsi9GzTXjdBVzheT1HZOZ2jHNzzR9Xwb5OyLz/FvDEAhlwrRnXnuqJf0QHINUOQSm7aoyvnPks0q85HJkd6yDw==",
 | 
					      "integrity": "sha512-DbLb0NsiEXmaqLOpEz+AtAsgwhRw6f25gwa1dF5R7jj6lS1D8X6uTdhBSC8GDVtOwe5Tfw2EL7nTn6hiJT3Bgg==",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "bson": "^6.2.0",
 | 
					        "bson": "^6.2.0",
 | 
				
			||||||
        "kareem": "2.5.1",
 | 
					        "kareem": "2.5.1",
 | 
				
			||||||
        "mongodb": "6.2.0",
 | 
					        "mongodb": "6.3.0",
 | 
				
			||||||
        "mpath": "0.9.0",
 | 
					        "mpath": "0.9.0",
 | 
				
			||||||
        "mquery": "5.0.0",
 | 
					        "mquery": "5.0.0",
 | 
				
			||||||
        "ms": "2.1.3",
 | 
					        "ms": "2.1.3",
 | 
				
			||||||
@ -3701,14 +3701,14 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/tr46": {
 | 
					    "node_modules/tr46": {
 | 
				
			||||||
      "version": "3.0.0",
 | 
					      "version": "4.1.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz",
 | 
				
			||||||
      "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
 | 
					      "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "punycode": "^2.1.1"
 | 
					        "punycode": "^2.3.0"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "engines": {
 | 
					      "engines": {
 | 
				
			||||||
        "node": ">=12"
 | 
					        "node": ">=14"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/tree-kill": {
 | 
					    "node_modules/tree-kill": {
 | 
				
			||||||
@ -3986,15 +3986,15 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/whatwg-url": {
 | 
					    "node_modules/whatwg-url": {
 | 
				
			||||||
      "version": "11.0.0",
 | 
					      "version": "13.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
 | 
					      "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "tr46": "^3.0.0",
 | 
					        "tr46": "^4.1.1",
 | 
				
			||||||
        "webidl-conversions": "^7.0.0"
 | 
					        "webidl-conversions": "^7.0.0"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "engines": {
 | 
					      "engines": {
 | 
				
			||||||
        "node": ">=12"
 | 
					        "node": ">=16"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/which": {
 | 
					    "node_modules/which": {
 | 
				
			||||||
 | 
				
			|||||||
@ -3,8 +3,8 @@ import { toInventoryResponse } from "@/src/helpers/inventoryHelpers";
 | 
				
			|||||||
import { Inventory } from "@/src/models/inventoryModels/inventoryModel";
 | 
					import { Inventory } from "@/src/models/inventoryModels/inventoryModel";
 | 
				
			||||||
import { Request, RequestHandler, Response } from "express";
 | 
					import { Request, RequestHandler, Response } from "express";
 | 
				
			||||||
import config from "@/config.json";
 | 
					import config from "@/config.json";
 | 
				
			||||||
import testMissions from "@/static/fixed_responses/testMissions.json";
 | 
					import allMissions from "@/static/fixed_responses/allMissions.json";
 | 
				
			||||||
import testQuestKeys from "@/static/fixed_responses/testQuestKeys.json";
 | 
					import allQuestKeys from "@/static/fixed_responses/allQuestKeys.json";
 | 
				
			||||||
import { ILoadoutDatabase } from "@/src/types/saveLoadoutTypes";
 | 
					import { ILoadoutDatabase } from "@/src/types/saveLoadoutTypes";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const inventoryController: RequestHandler = async (request: Request, response: Response) => {
 | 
					const inventoryController: RequestHandler = async (request: Request, response: Response) => {
 | 
				
			||||||
@ -29,8 +29,8 @@ const inventoryController: RequestHandler = async (request: Request, response: R
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    const inventoryResponse = toInventoryResponse(inventoryJSON);
 | 
					    const inventoryResponse = toInventoryResponse(inventoryJSON);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (config.testMission) inventoryResponse.Missions = testMissions;
 | 
					    if (config.unlockAllMissions) inventoryResponse.Missions = allMissions;
 | 
				
			||||||
    if (config.testQuestKey) inventoryResponse.QuestKeys = testQuestKeys;
 | 
					    if (config.unlockAllQuests) inventoryResponse.QuestKeys = allQuestKeys;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    response.json(inventoryResponse);
 | 
					    response.json(inventoryResponse);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
@ -12,3 +12,7 @@ export const toInventoryResponse = (inventoryDatabase: IInventoryDatabase): IInv
 | 
				
			|||||||
export const toOid = (objectId: Types.ObjectId) => {
 | 
					export const toOid = (objectId: Types.ObjectId) => {
 | 
				
			||||||
    return { $oid: objectId.toString() } satisfies IOid;
 | 
					    return { $oid: objectId.toString() } satisfies IOid;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const toMongoDate = (date: Date) => {
 | 
				
			||||||
 | 
					    return { $date: { $numberLong: date.getTime().toString() } };
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -15,16 +15,66 @@ import { IOperatorLoadOutSigcol, IWeaponDatabase } from "@/src/types/inventoryTy
 | 
				
			|||||||
//Document extends will be deleted soon. TODO: delete and migrate uses to ...
 | 
					//Document extends will be deleted soon. TODO: delete and migrate uses to ...
 | 
				
			||||||
export interface IInventoryDatabaseDocument extends IInventoryDatabase, Document {}
 | 
					export interface IInventoryDatabaseDocument extends IInventoryDatabase, Document {}
 | 
				
			||||||
export interface IInventoryDatabase
 | 
					export interface IInventoryDatabase
 | 
				
			||||||
    extends Omit<IInventoryResponse, "TrainingDate" | "LoadOutPresets" | "Mailbox" | "PendingRecipes"> {
 | 
					    extends Omit<
 | 
				
			||||||
 | 
					        IInventoryResponse,
 | 
				
			||||||
 | 
					        "TrainingDate" | "LoadOutPresets" | "Mailbox" | "PendingRecipes" | "Created" | "QuestKeys" | "BlessingCooldown"
 | 
				
			||||||
 | 
					    > {
 | 
				
			||||||
    accountOwnerId: Types.ObjectId;
 | 
					    accountOwnerId: Types.ObjectId;
 | 
				
			||||||
 | 
					    Created: Date;
 | 
				
			||||||
    TrainingDate: Date; // TrainingDate changed from IMongoDate to Date
 | 
					    TrainingDate: Date; // TrainingDate changed from IMongoDate to Date
 | 
				
			||||||
    LoadOutPresets: Types.ObjectId; // LoadOutPresets changed from ILoadOutPresets to Types.ObjectId for population
 | 
					    LoadOutPresets: Types.ObjectId; // LoadOutPresets changed from ILoadOutPresets to Types.ObjectId for population
 | 
				
			||||||
    Mailbox: Types.ObjectId; // Mailbox changed from IMailbox to Types.ObjectId
 | 
					    Mailbox: Types.ObjectId; // Mailbox changed from IMailbox to Types.ObjectId
 | 
				
			||||||
    PendingRecipes: IPendingRecipe[];
 | 
					    PendingRecipes: IPendingRecipe[];
 | 
				
			||||||
 | 
					    QuestKeys: IQuestKeyDatabase[];
 | 
				
			||||||
 | 
					    BlessingCooldown: Date;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface IInventoryResponseDocument extends IInventoryResponse, Document {}
 | 
					export interface IInventoryResponseDocument extends IInventoryResponse, Document {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface IQuestKeyDatabase {
 | 
				
			||||||
 | 
					    Progress?: IQuestProgress[];
 | 
				
			||||||
 | 
					    unlock?: boolean;
 | 
				
			||||||
 | 
					    Completed?: boolean;
 | 
				
			||||||
 | 
					    CustomData?: string; //TODO: check whether this actually exists
 | 
				
			||||||
 | 
					    ItemType: string;
 | 
				
			||||||
 | 
					    CompletionDate?: Date;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface IFocusUpgrades {
 | 
				
			||||||
 | 
					    ItemType: string;
 | 
				
			||||||
 | 
					    Level: number;
 | 
				
			||||||
 | 
					    IsUniversal: boolean;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface ITypeCount {
 | 
				
			||||||
 | 
					    ItemType: string;
 | 
				
			||||||
 | 
					    ItemCount: number;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface IGenericItem2 {
 | 
				
			||||||
 | 
					    ItemType: string;
 | 
				
			||||||
 | 
					    ItemName: string;
 | 
				
			||||||
 | 
					    ItemId: IOid;
 | 
				
			||||||
 | 
					    XP: number;
 | 
				
			||||||
 | 
					    UpgradeVer: number;
 | 
				
			||||||
 | 
					    Features: number;
 | 
				
			||||||
 | 
					    Polarized: number;
 | 
				
			||||||
 | 
					    CustomizationSlotPurchases: number;
 | 
				
			||||||
 | 
					    ModSlotPurchases: number;
 | 
				
			||||||
 | 
					    FocusLens: string;
 | 
				
			||||||
 | 
					    Expiry: IMongoDate;
 | 
				
			||||||
 | 
					    Polarity: IPolarity[];
 | 
				
			||||||
 | 
					    Configs: IItemConfig[];
 | 
				
			||||||
 | 
					    ModularParts: string[];
 | 
				
			||||||
 | 
					    SkillTree: string;
 | 
				
			||||||
 | 
					    UpgradeType: string;
 | 
				
			||||||
 | 
					    UpgradeFingerprint: string;
 | 
				
			||||||
 | 
					    OffensiveUpgrade: string;
 | 
				
			||||||
 | 
					    DefensiveUpgrade: string;
 | 
				
			||||||
 | 
					    UpgradesExpiry: IMongoDate;
 | 
				
			||||||
 | 
					    ArchonCrystalUpgrades: [];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface IGenericItem {
 | 
					export interface IGenericItem {
 | 
				
			||||||
    ItemType: string;
 | 
					    ItemType: string;
 | 
				
			||||||
    XP?: number;
 | 
					    XP?: number;
 | 
				
			||||||
@ -91,7 +141,7 @@ export interface IInventoryResponse {
 | 
				
			|||||||
    Pistols: IWeaponDatabase[];
 | 
					    Pistols: IWeaponDatabase[];
 | 
				
			||||||
    Melee: IWeaponDatabase[];
 | 
					    Melee: IWeaponDatabase[];
 | 
				
			||||||
    Ships: IShip[];
 | 
					    Ships: IShip[];
 | 
				
			||||||
    QuestKeys: IQuestKey[];
 | 
					    QuestKeys: IQuestKeyResponse[];
 | 
				
			||||||
    FlavourItems: IFlavourItem[];
 | 
					    FlavourItems: IFlavourItem[];
 | 
				
			||||||
    Scoops: IGenericItem[];
 | 
					    Scoops: IGenericItem[];
 | 
				
			||||||
    TrainingRetriesLeft: number;
 | 
					    TrainingRetriesLeft: number;
 | 
				
			||||||
@ -100,8 +150,8 @@ export interface IInventoryResponse {
 | 
				
			|||||||
    Missions: IMission[];
 | 
					    Missions: IMission[];
 | 
				
			||||||
    RandomUpgradesIdentified: number;
 | 
					    RandomUpgradesIdentified: number;
 | 
				
			||||||
    LastRegionPlayed: string;
 | 
					    LastRegionPlayed: string;
 | 
				
			||||||
    XPInfo: IEmailItem[];
 | 
					    XPInfo: ITypeXPItem[];
 | 
				
			||||||
    Recipes: IConsumable[];
 | 
					    Recipes: ITypeCount[];
 | 
				
			||||||
    WeaponSkins: IWeaponSkin[];
 | 
					    WeaponSkins: IWeaponSkin[];
 | 
				
			||||||
    PendingRecipes: IPendingRecipeResponse[];
 | 
					    PendingRecipes: IPendingRecipeResponse[];
 | 
				
			||||||
    TrainingDate: IMongoDate;
 | 
					    TrainingDate: IMongoDate;
 | 
				
			||||||
@ -116,7 +166,7 @@ export interface IInventoryResponse {
 | 
				
			|||||||
    LevelKeys: IConsumable[];
 | 
					    LevelKeys: IConsumable[];
 | 
				
			||||||
    TauntHistory: ITauntHistory[];
 | 
					    TauntHistory: ITauntHistory[];
 | 
				
			||||||
    StoryModeChoice: string;
 | 
					    StoryModeChoice: string;
 | 
				
			||||||
    PeriodicMissionCompletions: IPeriodicMissionCompletion[];
 | 
					    PeriodicMissionCompletions: IPeriodicMissionCompletionDatabase[];
 | 
				
			||||||
    KubrowPetEggs: IKubrowPetEgg[];
 | 
					    KubrowPetEggs: IKubrowPetEgg[];
 | 
				
			||||||
    LoreFragmentScans: ILoreFragmentScan[];
 | 
					    LoreFragmentScans: ILoreFragmentScan[];
 | 
				
			||||||
    EquippedEmotes: string[];
 | 
					    EquippedEmotes: string[];
 | 
				
			||||||
@ -135,7 +185,7 @@ export interface IInventoryResponse {
 | 
				
			|||||||
    SpectreLoadouts: ISpectreLoadout[];
 | 
					    SpectreLoadouts: ISpectreLoadout[];
 | 
				
			||||||
    SentinelWeapons: IWeaponDatabase[];
 | 
					    SentinelWeapons: IWeaponDatabase[];
 | 
				
			||||||
    Sentinels: IWeaponDatabase[];
 | 
					    Sentinels: IWeaponDatabase[];
 | 
				
			||||||
    EmailItems: IEmailItem[];
 | 
					    EmailItems: ITypeXPItem[];
 | 
				
			||||||
    CompletedSyndicates: string[];
 | 
					    CompletedSyndicates: string[];
 | 
				
			||||||
    FocusXP: IFocusXP;
 | 
					    FocusXP: IFocusXP;
 | 
				
			||||||
    Wishlist: string[];
 | 
					    Wishlist: string[];
 | 
				
			||||||
@ -160,7 +210,7 @@ export interface IInventoryResponse {
 | 
				
			|||||||
    AlignmentReplay: IAlignment;
 | 
					    AlignmentReplay: IAlignment;
 | 
				
			||||||
    PersonalGoalProgress: IPersonalGoalProgress[];
 | 
					    PersonalGoalProgress: IPersonalGoalProgress[];
 | 
				
			||||||
    DailyAffiliationSolaris: number;
 | 
					    DailyAffiliationSolaris: number;
 | 
				
			||||||
    SpecialItems: ISpecialItem[];
 | 
					    SpecialItems: IGenericItem2[];
 | 
				
			||||||
    ThemeStyle: string;
 | 
					    ThemeStyle: string;
 | 
				
			||||||
    ThemeBackground: string;
 | 
					    ThemeBackground: string;
 | 
				
			||||||
    ThemeSounds: string;
 | 
					    ThemeSounds: string;
 | 
				
			||||||
@ -395,17 +445,27 @@ export interface ISlot {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface ICustomization {
 | 
					export interface ICustomization {
 | 
				
			||||||
    CrewshipInterior: ITerior;
 | 
					    CrewshipInterior: IShipExterior;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface ITerior {
 | 
					export interface IShipExterior {
 | 
				
			||||||
    SkinFlavourItem: string;
 | 
					    SkinFlavourItem: string;
 | 
				
			||||||
    Colors: IColor;
 | 
					    Colors: IShipExteriorColors;
 | 
				
			||||||
    ShipAttachments?: IShipAttachments;
 | 
					    ShipAttachments?: IShipAttachments;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//TODO: check whether it makes sense to use this specifity of color.
 | 
				
			||||||
 | 
					export interface IShipExteriorColors {
 | 
				
			||||||
 | 
					    t0: number;
 | 
				
			||||||
 | 
					    t1: number;
 | 
				
			||||||
 | 
					    t2: number;
 | 
				
			||||||
 | 
					    t3: number;
 | 
				
			||||||
 | 
					    m0: number;
 | 
				
			||||||
 | 
					    en: number;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface IShipAttachments {
 | 
					export interface IShipAttachments {
 | 
				
			||||||
    HOOD_ORNAMENT: string;
 | 
					    HOOD_ORNAMENT: string; //TODO: Others are probably possible
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface IFlavourItem {
 | 
					export interface IFlavourItem {
 | 
				
			||||||
@ -452,7 +512,7 @@ export interface IDrone {
 | 
				
			|||||||
    RepairStart?: IMongoDate;
 | 
					    RepairStart?: IMongoDate;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface IEmailItem {
 | 
					export interface ITypeXPItem {
 | 
				
			||||||
    ItemType: string;
 | 
					    ItemType: string;
 | 
				
			||||||
    XP: number;
 | 
					    XP: number;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -511,7 +571,7 @@ export interface ISigcol {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
export interface IInfestedFoundry {
 | 
					export interface IInfestedFoundry {
 | 
				
			||||||
    Name: string;
 | 
					    Name: string;
 | 
				
			||||||
    Resources: IResource[];
 | 
					    Resources: ITypeCount[];
 | 
				
			||||||
    Slots: number;
 | 
					    Slots: number;
 | 
				
			||||||
    XP: number;
 | 
					    XP: number;
 | 
				
			||||||
    ConsumedSuits: IConsumedSuit[];
 | 
					    ConsumedSuits: IConsumedSuit[];
 | 
				
			||||||
@ -525,11 +585,6 @@ export interface IConsumedSuit {
 | 
				
			|||||||
    c?: IColor;
 | 
					    c?: IColor;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface IResource {
 | 
					 | 
				
			||||||
    ItemType: string;
 | 
					 | 
				
			||||||
    Count: number;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface IInvasionChainProgress {
 | 
					export interface IInvasionChainProgress {
 | 
				
			||||||
    id: IOid;
 | 
					    id: IOid;
 | 
				
			||||||
    count: number;
 | 
					    count: number;
 | 
				
			||||||
@ -881,12 +936,16 @@ export enum GivingSlotOrderInfo {
 | 
				
			|||||||
    LotusUpgradesModsPistolDualStatElectEventPistolMod = "/Lotus/Upgrades/Mods/Pistol/DualStat/ElectEventPistolMod"
 | 
					    LotusUpgradesModsPistolDualStatElectEventPistolMod = "/Lotus/Upgrades/Mods/Pistol/DualStat/ElectEventPistolMod"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface IPeriodicMissionCompletion {
 | 
					export interface IPeriodicMissionCompletionDatabase {
 | 
				
			||||||
    date: IMongoDate;
 | 
					    date: Date;
 | 
				
			||||||
    tag: string;
 | 
					    tag: string;
 | 
				
			||||||
    count?: number;
 | 
					    count?: number;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface IPeriodicMissionCompletionResponse extends Omit<IPeriodicMissionCompletionDatabase, "date"> {
 | 
				
			||||||
 | 
					    date: IMongoDate;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface IPersonalGoalProgress {
 | 
					export interface IPersonalGoalProgress {
 | 
				
			||||||
    Count: number;
 | 
					    Count: number;
 | 
				
			||||||
    Tag: string;
 | 
					    Tag: string;
 | 
				
			||||||
@ -923,16 +982,11 @@ export interface IPlayerSkills {
 | 
				
			|||||||
    LPS_DRIFT_ENDURANCE: number;
 | 
					    LPS_DRIFT_ENDURANCE: number;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface IQuestKey {
 | 
					export interface IQuestKeyResponse extends Omit<IQuestKeyDatabase, "CompletionDate"> {
 | 
				
			||||||
    Progress?: IProgress[];
 | 
					 | 
				
			||||||
    unlock?: boolean;
 | 
					 | 
				
			||||||
    Completed?: boolean;
 | 
					 | 
				
			||||||
    CustomData?: string;
 | 
					 | 
				
			||||||
    ItemType: string;
 | 
					 | 
				
			||||||
    CompletionDate?: IMongoDate;
 | 
					    CompletionDate?: IMongoDate;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface IProgress {
 | 
					export interface IQuestProgress {
 | 
				
			||||||
    c: number;
 | 
					    c: number;
 | 
				
			||||||
    i: boolean;
 | 
					    i: boolean;
 | 
				
			||||||
    m: boolean;
 | 
					    m: boolean;
 | 
				
			||||||
@ -964,7 +1018,7 @@ export interface ISettings {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
export interface IShip {
 | 
					export interface IShip {
 | 
				
			||||||
    ItemType: string;
 | 
					    ItemType: string;
 | 
				
			||||||
    ShipExterior: ITerior;
 | 
					    ShipExterior: IShipExterior;
 | 
				
			||||||
    AirSupportPower: string;
 | 
					    AirSupportPower: string;
 | 
				
			||||||
    ItemId: IOid;
 | 
					    ItemId: IOid;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -989,28 +1043,6 @@ export interface ISpaceGunConfig {
 | 
				
			|||||||
    Upgrades?: string[];
 | 
					    Upgrades?: string[];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface ISpecialItem {
 | 
					 | 
				
			||||||
    ItemType: string;
 | 
					 | 
				
			||||||
    Configs: ISpecialItemConfig[];
 | 
					 | 
				
			||||||
    XP?: number;
 | 
					 | 
				
			||||||
    UpgradeVer?: number;
 | 
					 | 
				
			||||||
    Features: number;
 | 
					 | 
				
			||||||
    ItemId: IOid;
 | 
					 | 
				
			||||||
    Polarized?: number;
 | 
					 | 
				
			||||||
    Polarity?: IPolarity[];
 | 
					 | 
				
			||||||
    ModSlotPurchases?: number;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface ISpecialItemConfig {
 | 
					 | 
				
			||||||
    Upgrades?: string[];
 | 
					 | 
				
			||||||
    pricol?: IColor;
 | 
					 | 
				
			||||||
    Skins?: string[];
 | 
					 | 
				
			||||||
    attcol?: IColor;
 | 
					 | 
				
			||||||
    eyecol?: IPurpleCol;
 | 
					 | 
				
			||||||
    sigcol?: IPurpleCol;
 | 
					 | 
				
			||||||
    Name?: string;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface IPurpleCol {
 | 
					export interface IPurpleCol {
 | 
				
			||||||
    en: number;
 | 
					    en: number;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,5 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "SubscribedToEmails": 0,
 | 
					  "SubscribedToEmails": 0,
 | 
				
			||||||
  "Created": { "$date": { "$numberLong": "1685829131" } },
 | 
					 | 
				
			||||||
  "SubscribedToEmailsPersonalized": 0,
 | 
					  "SubscribedToEmailsPersonalized": 0,
 | 
				
			||||||
  "RewardSeed": -5604904486637265640,
 | 
					  "RewardSeed": -5604904486637265640,
 | 
				
			||||||
  "CrewMemberBin": { "Slots": 3 },
 | 
					  "CrewMemberBin": { "Slots": 3 },
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user