forked from OpenWF/SpaceNinjaServer
Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
ffca79a5d9 |
8
package-lock.json
generated
8
package-lock.json
generated
@ -18,7 +18,7 @@
|
|||||||
"mongoose": "^8.11.0",
|
"mongoose": "^8.11.0",
|
||||||
"morgan": "^1.10.0",
|
"morgan": "^1.10.0",
|
||||||
"typescript": ">=5.5 <5.6.0",
|
"typescript": ">=5.5 <5.6.0",
|
||||||
"warframe-public-export-plus": "^0.5.48",
|
"warframe-public-export-plus": "^0.5.47",
|
||||||
"warframe-riven-info": "^0.1.2",
|
"warframe-riven-info": "^0.1.2",
|
||||||
"winston": "^3.17.0",
|
"winston": "^3.17.0",
|
||||||
"winston-daily-rotate-file": "^5.0.0"
|
"winston-daily-rotate-file": "^5.0.0"
|
||||||
@ -4013,9 +4013,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/warframe-public-export-plus": {
|
"node_modules/warframe-public-export-plus": {
|
||||||
"version": "0.5.48",
|
"version": "0.5.47",
|
||||||
"resolved": "https://registry.npmjs.org/warframe-public-export-plus/-/warframe-public-export-plus-0.5.48.tgz",
|
"resolved": "https://registry.npmjs.org/warframe-public-export-plus/-/warframe-public-export-plus-0.5.47.tgz",
|
||||||
"integrity": "sha512-vJitVYnaViQo43xAkL/h3MJ/6wS7YknKEYhYs+N/GrsspYLMPGf9KSuR19tprB2g9KVGS5o67t0v5K8p0RTQCQ=="
|
"integrity": "sha512-ZJK3VT1PdSPwZlhIzUVBlydwK4DM0sOmeCiixVMgOM8XuOPJ8OHfQUoLKydtw5rxCsowzFPbx5b3KBke5C4akQ=="
|
||||||
},
|
},
|
||||||
"node_modules/warframe-riven-info": {
|
"node_modules/warframe-riven-info": {
|
||||||
"version": "0.1.2",
|
"version": "0.1.2",
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
"mongoose": "^8.11.0",
|
"mongoose": "^8.11.0",
|
||||||
"morgan": "^1.10.0",
|
"morgan": "^1.10.0",
|
||||||
"typescript": ">=5.5 <5.6.0",
|
"typescript": ">=5.5 <5.6.0",
|
||||||
"warframe-public-export-plus": "^0.5.48",
|
"warframe-public-export-plus": "^0.5.47",
|
||||||
"warframe-riven-info": "^0.1.2",
|
"warframe-riven-info": "^0.1.2",
|
||||||
"winston": "^3.17.0",
|
"winston": "^3.17.0",
|
||||||
"winston-daily-rotate-file": "^5.0.0"
|
"winston-daily-rotate-file": "^5.0.0"
|
||||||
|
@ -1,34 +0,0 @@
|
|||||||
import { getJSONfromString } from "@/src/helpers/stringHelpers";
|
|
||||||
import { RequestHandler } from "express";
|
|
||||||
import glyphCodes from "@/static/fixed_responses/glyphsCodes.json";
|
|
||||||
import { getAccountIdForRequest } from "@/src/services/loginService";
|
|
||||||
import { addItem, getInventory } from "@/src/services/inventoryService";
|
|
||||||
|
|
||||||
export const redeemPromoCodeController: RequestHandler = async (req, res) => {
|
|
||||||
const body = getJSONfromString<IRedeemPromoCodeRequest>(String(req.body));
|
|
||||||
if (!(body.codeId in glyphCodes)) {
|
|
||||||
res.status(400).send("INVALID_CODE").end();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const accountId = await getAccountIdForRequest(req);
|
|
||||||
const inventory = await getInventory(accountId, "FlavourItems");
|
|
||||||
const acquiredGlyphs: string[] = [];
|
|
||||||
for (const glyph of (glyphCodes as Record<string, string[]>)[body.codeId]) {
|
|
||||||
if (!inventory.FlavourItems.find(x => x.ItemType == glyph)) {
|
|
||||||
acquiredGlyphs.push(glyph);
|
|
||||||
await addItem(inventory, glyph);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (acquiredGlyphs.length == 0) {
|
|
||||||
res.status(400).send("USED_CODE").end();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
await inventory.save();
|
|
||||||
res.json({
|
|
||||||
FlavourItems: acquiredGlyphs
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
interface IRedeemPromoCodeRequest {
|
|
||||||
codeId: string;
|
|
||||||
}
|
|
@ -1,27 +0,0 @@
|
|||||||
import { Guild, GuildMember } from "@/src/models/guildModel";
|
|
||||||
import { getAccountForRequest, isAdministrator } from "@/src/services/loginService";
|
|
||||||
import { RequestHandler } from "express";
|
|
||||||
|
|
||||||
export const getAccountInfoController: RequestHandler = async (req, res) => {
|
|
||||||
const account = await getAccountForRequest(req);
|
|
||||||
const info: IAccountInfo = {
|
|
||||||
DisplayName: account.DisplayName
|
|
||||||
};
|
|
||||||
if (isAdministrator(account)) {
|
|
||||||
info.IsAdministrator = true;
|
|
||||||
}
|
|
||||||
const guildMember = await GuildMember.findOne({ accountId: account._id, status: 0 }, "guildId rank");
|
|
||||||
if (guildMember) {
|
|
||||||
const guild = (await Guild.findOne({ _id: guildMember.guildId }, "Ranks"))!;
|
|
||||||
info.GuildId = guildMember.guildId.toString();
|
|
||||||
info.GuildPermissions = guild.Ranks[guildMember.rank].Permissions;
|
|
||||||
}
|
|
||||||
res.json(info);
|
|
||||||
};
|
|
||||||
|
|
||||||
interface IAccountInfo {
|
|
||||||
DisplayName: string;
|
|
||||||
IsAdministrator?: boolean;
|
|
||||||
GuildId?: string;
|
|
||||||
GuildPermissions?: number;
|
|
||||||
}
|
|
@ -76,6 +76,7 @@ import {
|
|||||||
IIncentiveState,
|
IIncentiveState,
|
||||||
ISongChallenge,
|
ISongChallenge,
|
||||||
ILibraryPersonalProgress,
|
ILibraryPersonalProgress,
|
||||||
|
ICrewShipWeaponDatabase,
|
||||||
IRecentVendorPurchaseDatabase,
|
IRecentVendorPurchaseDatabase,
|
||||||
IVendorPurchaseHistoryEntryDatabase,
|
IVendorPurchaseHistoryEntryDatabase,
|
||||||
IVendorPurchaseHistoryEntryClient,
|
IVendorPurchaseHistoryEntryClient,
|
||||||
@ -839,7 +840,8 @@ const EquipmentSchema = new Schema<IEquipmentDatabase>(
|
|||||||
Customization: crewShipCustomizationSchema,
|
Customization: crewShipCustomizationSchema,
|
||||||
RailjackImage: FlavourItemSchema,
|
RailjackImage: FlavourItemSchema,
|
||||||
CrewMembers: crewShipMembersSchema,
|
CrewMembers: crewShipMembersSchema,
|
||||||
Details: detailsSchema
|
Details: detailsSchema,
|
||||||
|
IsNew: Boolean
|
||||||
},
|
},
|
||||||
{ id: false }
|
{ id: false }
|
||||||
);
|
);
|
||||||
@ -1117,6 +1119,25 @@ const alignmentSchema = new Schema<IAlignment>(
|
|||||||
{ _id: false }
|
{ _id: false }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const crewShipWeaponSchema2 = new Schema<ICrewShipWeaponDatabase>(
|
||||||
|
{
|
||||||
|
ItemType: String
|
||||||
|
},
|
||||||
|
{ id: false }
|
||||||
|
);
|
||||||
|
|
||||||
|
crewShipWeaponSchema2.virtual("ItemId").get(function () {
|
||||||
|
return { $oid: this._id.toString() } satisfies IOid;
|
||||||
|
});
|
||||||
|
|
||||||
|
crewShipWeaponSchema2.set("toJSON", {
|
||||||
|
virtuals: true,
|
||||||
|
transform(_document, returnedObject) {
|
||||||
|
delete returnedObject._id;
|
||||||
|
delete returnedObject.__v;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
|
const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
|
||||||
{
|
{
|
||||||
accountOwnerId: Schema.Types.ObjectId,
|
accountOwnerId: Schema.Types.ObjectId,
|
||||||
@ -1239,20 +1260,20 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
|
|||||||
|
|
||||||
//Default RailJack
|
//Default RailJack
|
||||||
CrewShipAmmo: [typeCountSchema],
|
CrewShipAmmo: [typeCountSchema],
|
||||||
CrewShipWeapons: [EquipmentSchema],
|
CrewShipWeapons: [crewShipWeaponSchema2],
|
||||||
CrewShipWeaponSkins: [upgradeSchema],
|
CrewShipWeaponSkins: [upgradeSchema],
|
||||||
CrewShipSalvagedWeapons: [EquipmentSchema],
|
|
||||||
CrewShipSalvagedWeaponSkins: [upgradeSchema],
|
|
||||||
|
|
||||||
//RailJack Crew
|
//NPC Crew and weapon
|
||||||
CrewMembers: [Schema.Types.Mixed],
|
CrewMembers: [Schema.Types.Mixed],
|
||||||
|
CrewShipSalvagedWeaponSkins: [Schema.Types.Mixed],
|
||||||
|
CrewShipSalvagedWeapons: [Schema.Types.Mixed],
|
||||||
|
|
||||||
//Complete Mission\Quests
|
//Complete Mission\Quests
|
||||||
Missions: [missionSchema],
|
Missions: [missionSchema],
|
||||||
QuestKeys: [questKeysSchema],
|
QuestKeys: [questKeysSchema],
|
||||||
ActiveQuest: { type: String, default: "" },
|
ActiveQuest: { type: String, default: "" },
|
||||||
//item like DojoKey or Boss missions key
|
//item like DojoKey or Boss missions key
|
||||||
LevelKeys: [typeCountSchema],
|
LevelKeys: [Schema.Types.Mixed],
|
||||||
//Active quests
|
//Active quests
|
||||||
Quests: [Schema.Types.Mixed],
|
Quests: [Schema.Types.Mixed],
|
||||||
|
|
||||||
@ -1313,7 +1334,7 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
|
|||||||
SpectreLoadouts: { type: [spectreLoadoutsSchema], default: undefined },
|
SpectreLoadouts: { type: [spectreLoadoutsSchema], default: undefined },
|
||||||
|
|
||||||
//New Quest Email
|
//New Quest Email
|
||||||
EmailItems: [typeCountSchema],
|
EmailItems: [TypeXPItemSchema],
|
||||||
|
|
||||||
//Profile->Wishlist
|
//Profile->Wishlist
|
||||||
Wishlist: [String],
|
Wishlist: [String],
|
||||||
@ -1485,9 +1506,6 @@ inventorySchema.set("toJSON", {
|
|||||||
if (inventoryDatabase.NextRefill) {
|
if (inventoryDatabase.NextRefill) {
|
||||||
inventoryResponse.NextRefill = toMongoDate(inventoryDatabase.NextRefill);
|
inventoryResponse.NextRefill = toMongoDate(inventoryDatabase.NextRefill);
|
||||||
}
|
}
|
||||||
if (inventoryDatabase.EntratiVaultCountResetDate) {
|
|
||||||
inventoryResponse.EntratiVaultCountResetDate = toMongoDate(inventoryDatabase.EntratiVaultCountResetDate);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -1507,8 +1525,8 @@ export type InventoryDocumentProps = {
|
|||||||
WeaponSkins: Types.DocumentArray<IWeaponSkinDatabase>;
|
WeaponSkins: Types.DocumentArray<IWeaponSkinDatabase>;
|
||||||
QuestKeys: Types.DocumentArray<IQuestKeyDatabase>;
|
QuestKeys: Types.DocumentArray<IQuestKeyDatabase>;
|
||||||
Drones: Types.DocumentArray<IDroneDatabase>;
|
Drones: Types.DocumentArray<IDroneDatabase>;
|
||||||
|
CrewShipWeapons: Types.DocumentArray<ICrewShipWeaponDatabase>;
|
||||||
CrewShipWeaponSkins: Types.DocumentArray<IUpgradeDatabase>;
|
CrewShipWeaponSkins: Types.DocumentArray<IUpgradeDatabase>;
|
||||||
CrewShipSalvagedWeaponsSkins: Types.DocumentArray<IUpgradeDatabase>;
|
|
||||||
} & { [K in TEquipmentKey]: Types.DocumentArray<IEquipmentDatabase> };
|
} & { [K in TEquipmentKey]: Types.DocumentArray<IEquipmentDatabase> };
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-types
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
||||||
|
@ -77,7 +77,6 @@ import { playerSkillsController } from "@/src/controllers/api/playerSkillsContro
|
|||||||
import { projectionManagerController } from "@/src/controllers/api/projectionManagerController";
|
import { projectionManagerController } from "@/src/controllers/api/projectionManagerController";
|
||||||
import { purchaseController } from "@/src/controllers/api/purchaseController";
|
import { purchaseController } from "@/src/controllers/api/purchaseController";
|
||||||
import { queueDojoComponentDestructionController } from "@/src/controllers/api/queueDojoComponentDestructionController";
|
import { queueDojoComponentDestructionController } from "@/src/controllers/api/queueDojoComponentDestructionController";
|
||||||
import { redeemPromoCodeController } from "@/src/controllers/api/redeemPromoCodeController";
|
|
||||||
import { removeFromGuildController } from "@/src/controllers/api/removeFromGuildController";
|
import { removeFromGuildController } from "@/src/controllers/api/removeFromGuildController";
|
||||||
import { rerollRandomModController } from "@/src/controllers/api/rerollRandomModController";
|
import { rerollRandomModController } from "@/src/controllers/api/rerollRandomModController";
|
||||||
import { saveDialogueController } from "@/src/controllers/api/saveDialogueController";
|
import { saveDialogueController } from "@/src/controllers/api/saveDialogueController";
|
||||||
@ -217,7 +216,6 @@ apiRouter.post("/placeDecoInComponent.php", placeDecoInComponentController);
|
|||||||
apiRouter.post("/playerSkills.php", playerSkillsController);
|
apiRouter.post("/playerSkills.php", playerSkillsController);
|
||||||
apiRouter.post("/projectionManager.php", projectionManagerController);
|
apiRouter.post("/projectionManager.php", projectionManagerController);
|
||||||
apiRouter.post("/purchase.php", purchaseController);
|
apiRouter.post("/purchase.php", purchaseController);
|
||||||
apiRouter.post("/redeemPromoCode.php", redeemPromoCodeController);
|
|
||||||
apiRouter.post("/removeFromGuild.php", removeFromGuildController);
|
apiRouter.post("/removeFromGuild.php", removeFromGuildController);
|
||||||
apiRouter.post("/rerollRandomMod.php", rerollRandomModController);
|
apiRouter.post("/rerollRandomMod.php", rerollRandomModController);
|
||||||
apiRouter.post("/saveDialogue.php", saveDialogueController);
|
apiRouter.post("/saveDialogue.php", saveDialogueController);
|
||||||
|
@ -6,7 +6,6 @@ import { pushArchonCrystalUpgradeController } from "@/src/controllers/custom/pus
|
|||||||
import { popArchonCrystalUpgradeController } from "@/src/controllers/custom/popArchonCrystalUpgradeController";
|
import { popArchonCrystalUpgradeController } from "@/src/controllers/custom/popArchonCrystalUpgradeController";
|
||||||
import { deleteAccountController } from "@/src/controllers/custom/deleteAccountController";
|
import { deleteAccountController } from "@/src/controllers/custom/deleteAccountController";
|
||||||
import { getNameController } from "@/src/controllers/custom/getNameController";
|
import { getNameController } from "@/src/controllers/custom/getNameController";
|
||||||
import { getAccountInfoController } from "@/src/controllers/custom/getAccountInfoController";
|
|
||||||
import { renameAccountController } from "@/src/controllers/custom/renameAccountController";
|
import { renameAccountController } from "@/src/controllers/custom/renameAccountController";
|
||||||
import { ircDroppedController } from "@/src/controllers/custom/ircDroppedController";
|
import { ircDroppedController } from "@/src/controllers/custom/ircDroppedController";
|
||||||
import { unlockAllIntrinsicsController } from "@/src/controllers/custom/unlockAllIntrinsicsController";
|
import { unlockAllIntrinsicsController } from "@/src/controllers/custom/unlockAllIntrinsicsController";
|
||||||
@ -30,7 +29,6 @@ customRouter.get("/pushArchonCrystalUpgrade", pushArchonCrystalUpgradeController
|
|||||||
customRouter.get("/popArchonCrystalUpgrade", popArchonCrystalUpgradeController);
|
customRouter.get("/popArchonCrystalUpgrade", popArchonCrystalUpgradeController);
|
||||||
customRouter.get("/deleteAccount", deleteAccountController);
|
customRouter.get("/deleteAccount", deleteAccountController);
|
||||||
customRouter.get("/getName", getNameController);
|
customRouter.get("/getName", getNameController);
|
||||||
customRouter.get("/getAccountInfo", getAccountInfoController);
|
|
||||||
customRouter.get("/renameAccount", renameAccountController);
|
customRouter.get("/renameAccount", renameAccountController);
|
||||||
customRouter.get("/ircDropped", ircDroppedController);
|
customRouter.get("/ircDropped", ircDroppedController);
|
||||||
customRouter.get("/unlockAllIntrinsics", unlockAllIntrinsicsController);
|
customRouter.get("/unlockAllIntrinsics", unlockAllIntrinsicsController);
|
||||||
|
@ -23,12 +23,6 @@ import {
|
|||||||
IKubrowPetDetailsDatabase,
|
IKubrowPetDetailsDatabase,
|
||||||
ILoadoutConfigClient,
|
ILoadoutConfigClient,
|
||||||
ILoadOutPresets,
|
ILoadOutPresets,
|
||||||
INemesisClient,
|
|
||||||
INemesisDatabase,
|
|
||||||
IPendingRecipeClient,
|
|
||||||
IPendingRecipeDatabase,
|
|
||||||
IQuestKeyClient,
|
|
||||||
IQuestKeyDatabase,
|
|
||||||
ISlots,
|
ISlots,
|
||||||
IUpgradeClient,
|
IUpgradeClient,
|
||||||
IUpgradeDatabase,
|
IUpgradeDatabase,
|
||||||
@ -150,27 +144,6 @@ const convertKubrowDetails = (client: IKubrowPetDetailsClient): IKubrowPetDetail
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const convertQuestKey = (client: IQuestKeyClient): IQuestKeyDatabase => {
|
|
||||||
return {
|
|
||||||
...client,
|
|
||||||
CompletionDate: convertOptionalDate(client.CompletionDate)
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
const convertPendingRecipe = (client: IPendingRecipeClient): IPendingRecipeDatabase => {
|
|
||||||
return {
|
|
||||||
...client,
|
|
||||||
CompletionDate: convertDate(client.CompletionDate)
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
const convertNemesis = (client: INemesisClient): INemesisDatabase => {
|
|
||||||
return {
|
|
||||||
...client,
|
|
||||||
d: convertDate(client.d)
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
export const importInventory = (db: TInventoryDatabaseDocument, client: Partial<IInventoryClient>): void => {
|
export const importInventory = (db: TInventoryDatabaseDocument, client: Partial<IInventoryClient>): void => {
|
||||||
for (const key of equipmentKeys) {
|
for (const key of equipmentKeys) {
|
||||||
if (client[key] !== undefined) {
|
if (client[key] !== undefined) {
|
||||||
@ -180,22 +153,10 @@ export const importInventory = (db: TInventoryDatabaseDocument, client: Partial<
|
|||||||
if (client.WeaponSkins !== undefined) {
|
if (client.WeaponSkins !== undefined) {
|
||||||
replaceArray<IWeaponSkinDatabase>(db.WeaponSkins, client.WeaponSkins.map(convertWeaponSkin));
|
replaceArray<IWeaponSkinDatabase>(db.WeaponSkins, client.WeaponSkins.map(convertWeaponSkin));
|
||||||
}
|
}
|
||||||
for (const key of ["Upgrades", "CrewShipSalvagedWeaponSkins", "CrewShipWeaponSkins"] as const) {
|
if (client.Upgrades !== undefined) {
|
||||||
if (client[key] !== undefined) {
|
replaceArray<IUpgradeDatabase>(db.Upgrades, client.Upgrades.map(convertUpgrade));
|
||||||
replaceArray<IUpgradeDatabase>(db[key], client[key].map(convertUpgrade));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
for (const key of [
|
for (const key of ["RawUpgrades", "MiscItems", "Consumables"] as const) {
|
||||||
"RawUpgrades",
|
|
||||||
"MiscItems",
|
|
||||||
"Consumables",
|
|
||||||
"Recipes",
|
|
||||||
"LevelKeys",
|
|
||||||
"EmailItems",
|
|
||||||
"ShipDecorations",
|
|
||||||
"CrewShipAmmo",
|
|
||||||
"CrewShipRawSalvage"
|
|
||||||
] as const) {
|
|
||||||
if (client[key] !== undefined) {
|
if (client[key] !== undefined) {
|
||||||
db[key].splice(0, db[key].length);
|
db[key].splice(0, db[key].length);
|
||||||
client[key].forEach(x => {
|
client[key].forEach(x => {
|
||||||
@ -229,16 +190,8 @@ export const importInventory = (db: TInventoryDatabaseDocument, client: Partial<
|
|||||||
replaceSlots(db[key], client[key]);
|
replaceSlots(db[key], client[key]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (const key of [
|
if (client.UseAdultOperatorLoadout !== undefined) {
|
||||||
"UseAdultOperatorLoadout",
|
db.UseAdultOperatorLoadout = client.UseAdultOperatorLoadout;
|
||||||
"HasOwnedVoidProjectionsPreviously",
|
|
||||||
"ReceivedStartingGear",
|
|
||||||
"ArchwingEnabled",
|
|
||||||
"PlayedParkourTutorial"
|
|
||||||
] as const) {
|
|
||||||
if (client[key] !== undefined) {
|
|
||||||
db[key] = client[key];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
for (const key of [
|
for (const key of [
|
||||||
"PlayerLevel",
|
"PlayerLevel",
|
||||||
@ -246,37 +199,18 @@ export const importInventory = (db: TInventoryDatabaseDocument, client: Partial<
|
|||||||
"PremiumCredits",
|
"PremiumCredits",
|
||||||
"PremiumCreditsFree",
|
"PremiumCreditsFree",
|
||||||
"FusionPoints",
|
"FusionPoints",
|
||||||
"PrimeTokens",
|
"PrimeTokens"
|
||||||
"TradesRemaining",
|
|
||||||
"GiftsRemaining",
|
|
||||||
"ChallengesFixVersion"
|
|
||||||
] as const) {
|
] as const) {
|
||||||
if (client[key] !== undefined) {
|
if (client[key] !== undefined) {
|
||||||
db[key] = client[key];
|
db[key] = client[key];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (const key of [
|
for (const key of ["ThemeStyle", "ThemeBackground", "ThemeSounds", "EquippedInstrument", "FocusAbility"] as const) {
|
||||||
"ThemeStyle",
|
|
||||||
"ThemeBackground",
|
|
||||||
"ThemeSounds",
|
|
||||||
"EquippedInstrument",
|
|
||||||
"FocusAbility",
|
|
||||||
"ActiveQuest",
|
|
||||||
"SupportedSyndicate",
|
|
||||||
"ActiveAvatarImageType"
|
|
||||||
] as const) {
|
|
||||||
if (client[key] !== undefined) {
|
if (client[key] !== undefined) {
|
||||||
db[key] = client[key];
|
db[key] = client[key];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (const key of [
|
for (const key of ["EquippedGear", "EquippedEmotes", "NodeIntrosCompleted"] as const) {
|
||||||
"EquippedGear",
|
|
||||||
"EquippedEmotes",
|
|
||||||
"NodeIntrosCompleted",
|
|
||||||
"DeathMarks",
|
|
||||||
"Wishlist",
|
|
||||||
"NemesisAbandonedRewards"
|
|
||||||
] as const) {
|
|
||||||
if (client[key] !== undefined) {
|
if (client[key] !== undefined) {
|
||||||
db[key] = client[key];
|
db[key] = client[key];
|
||||||
}
|
}
|
||||||
@ -308,77 +242,6 @@ export const importInventory = (db: TInventoryDatabaseDocument, client: Partial<
|
|||||||
if (client.CustomMarkers !== undefined) {
|
if (client.CustomMarkers !== undefined) {
|
||||||
db.CustomMarkers = client.CustomMarkers;
|
db.CustomMarkers = client.CustomMarkers;
|
||||||
}
|
}
|
||||||
if (client.ChallengeProgress !== undefined) {
|
|
||||||
db.ChallengeProgress = client.ChallengeProgress;
|
|
||||||
}
|
|
||||||
if (client.QuestKeys !== undefined) {
|
|
||||||
replaceArray<IQuestKeyDatabase>(db.QuestKeys, client.QuestKeys.map(convertQuestKey));
|
|
||||||
}
|
|
||||||
if (client.LastRegionPlayed !== undefined) {
|
|
||||||
db.LastRegionPlayed = client.LastRegionPlayed;
|
|
||||||
}
|
|
||||||
if (client.PendingRecipes !== undefined) {
|
|
||||||
replaceArray<IPendingRecipeDatabase>(db.PendingRecipes, client.PendingRecipes.map(convertPendingRecipe));
|
|
||||||
}
|
|
||||||
if (client.TauntHistory !== undefined) {
|
|
||||||
db.TauntHistory = client.TauntHistory;
|
|
||||||
}
|
|
||||||
if (client.LoreFragmentScans !== undefined) {
|
|
||||||
db.LoreFragmentScans = client.LoreFragmentScans;
|
|
||||||
}
|
|
||||||
for (const key of ["PendingSpectreLoadouts", "SpectreLoadouts"] as const) {
|
|
||||||
if (client[key] !== undefined) {
|
|
||||||
db[key] = client[key];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (client.FocusXP !== undefined) {
|
|
||||||
db.FocusXP = client.FocusXP;
|
|
||||||
}
|
|
||||||
for (const key of ["Alignment", "AlignmentReplay"] as const) {
|
|
||||||
if (client[key] !== undefined) {
|
|
||||||
db[key] = client[key];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (client.StepSequencers !== undefined) {
|
|
||||||
db.StepSequencers = client.StepSequencers;
|
|
||||||
}
|
|
||||||
if (client.CompletedJobChains !== undefined) {
|
|
||||||
db.CompletedJobChains = client.CompletedJobChains;
|
|
||||||
}
|
|
||||||
if (client.Nemesis !== undefined) {
|
|
||||||
db.Nemesis = convertNemesis(client.Nemesis);
|
|
||||||
}
|
|
||||||
if (client.PlayerSkills !== undefined) {
|
|
||||||
db.PlayerSkills = client.PlayerSkills;
|
|
||||||
}
|
|
||||||
if (client.LotusCustomization !== undefined) {
|
|
||||||
db.LotusCustomization = client.LotusCustomization;
|
|
||||||
}
|
|
||||||
if (client.CollectibleSeries !== undefined) {
|
|
||||||
db.CollectibleSeries = client.CollectibleSeries;
|
|
||||||
}
|
|
||||||
for (const key of ["LibraryAvailableDailyTaskInfo", "LibraryActiveDailyTaskInfo"] as const) {
|
|
||||||
if (client[key] !== undefined) {
|
|
||||||
db[key] = client[key];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (client.EndlessXP !== undefined) {
|
|
||||||
db.EndlessXP = client.EndlessXP;
|
|
||||||
}
|
|
||||||
if (client.SongChallenges !== undefined) {
|
|
||||||
db.SongChallenges = client.SongChallenges;
|
|
||||||
}
|
|
||||||
if (client.Missions !== undefined) {
|
|
||||||
db.Missions = client.Missions;
|
|
||||||
}
|
|
||||||
if (client.FlavourItems !== undefined) {
|
|
||||||
db.FlavourItems.splice(0, db.FlavourItems.length);
|
|
||||||
client.FlavourItems.forEach(x => {
|
|
||||||
db.FlavourItems.push({
|
|
||||||
ItemType: x.ItemType
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const convertLoadOutConfig = (client: ILoadoutConfigClient): ILoadoutConfigDatabase => {
|
const convertLoadOutConfig = (client: ILoadoutConfigClient): ILoadoutConfigDatabase => {
|
||||||
|
@ -25,7 +25,8 @@ import {
|
|||||||
ILibraryDailyTaskInfo,
|
ILibraryDailyTaskInfo,
|
||||||
ICalendarProgress,
|
ICalendarProgress,
|
||||||
IDroneClient,
|
IDroneClient,
|
||||||
IUpgradeClient
|
IUpgradeClient,
|
||||||
|
ICrewShipWeaponClient
|
||||||
} from "@/src/types/inventoryTypes/inventoryTypes";
|
} from "@/src/types/inventoryTypes/inventoryTypes";
|
||||||
import { IGenericUpdate, IUpdateNodeIntrosResponse } from "../types/genericUpdate";
|
import { IGenericUpdate, IUpdateNodeIntrosResponse } from "../types/genericUpdate";
|
||||||
import { IMissionInventoryUpdateRequest, IUpdateChallengeProgressRequest } from "../types/requestTypes";
|
import { IMissionInventoryUpdateRequest, IUpdateChallengeProgressRequest } from "../types/requestTypes";
|
||||||
@ -329,19 +330,11 @@ export const addItem = async (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (typeName in ExportCustoms) {
|
if (typeName in ExportCustoms) {
|
||||||
const meta = ExportCustoms[typeName];
|
if (ExportCustoms[typeName].productCategory == "CrewShipWeaponSkins") {
|
||||||
let inventoryChanges: IInventoryChanges;
|
return addCrewShipWeaponSkin(inventory, typeName);
|
||||||
if (meta.productCategory == "CrewShipWeaponSkins") {
|
|
||||||
inventoryChanges = addCrewShipWeaponSkin(inventory, typeName);
|
|
||||||
} else {
|
} else {
|
||||||
inventoryChanges = addSkin(inventory, typeName);
|
return addSkin(inventory, typeName);
|
||||||
}
|
}
|
||||||
if (meta.additionalItems) {
|
|
||||||
for (const item of meta.additionalItems) {
|
|
||||||
combineInventoryChanges(inventoryChanges, await addItem(inventory, item));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return inventoryChanges;
|
|
||||||
}
|
}
|
||||||
if (typeName in ExportFlavour) {
|
if (typeName in ExportFlavour) {
|
||||||
return addCustomization(inventory, typeName);
|
return addCustomization(inventory, typeName);
|
||||||
@ -433,7 +426,7 @@ export const addItem = async (
|
|||||||
}
|
}
|
||||||
if (typeName in ExportRailjackWeapons) {
|
if (typeName in ExportRailjackWeapons) {
|
||||||
return {
|
return {
|
||||||
...addEquipment(inventory, ExportRailjackWeapons[typeName].productCategory, typeName),
|
...addCrewShipWeapon(inventory, typeName),
|
||||||
...occupySlot(inventory, InventorySlot.RJ_COMPONENT_AND_ARMAMENTS, premiumPurchase)
|
...occupySlot(inventory, InventorySlot.RJ_COMPONENT_AND_ARMAMENTS, premiumPurchase)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -907,7 +900,8 @@ export const addEquipment = (
|
|||||||
ItemType: type,
|
ItemType: type,
|
||||||
Configs: [],
|
Configs: [],
|
||||||
XP: 0,
|
XP: 0,
|
||||||
ModularParts: modularParts
|
ModularParts: modularParts,
|
||||||
|
IsNew: true
|
||||||
},
|
},
|
||||||
defaultOverwrites
|
defaultOverwrites
|
||||||
);
|
);
|
||||||
@ -946,6 +940,20 @@ export const addSkin = (
|
|||||||
return inventoryChanges;
|
return inventoryChanges;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const addCrewShipWeapon = (
|
||||||
|
inventory: TInventoryDatabaseDocument,
|
||||||
|
typeName: string,
|
||||||
|
inventoryChanges: IInventoryChanges = {}
|
||||||
|
): IInventoryChanges => {
|
||||||
|
const index = inventory.CrewShipWeapons.push({ ItemType: typeName, _id: new Types.ObjectId() }) - 1;
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||||
|
inventoryChanges.CrewShipWeapons ??= [];
|
||||||
|
(inventoryChanges.CrewShipWeapons as ICrewShipWeaponClient[]).push(
|
||||||
|
inventory.CrewShipWeapons[index].toJSON<ICrewShipWeaponClient>()
|
||||||
|
);
|
||||||
|
return inventoryChanges;
|
||||||
|
};
|
||||||
|
|
||||||
const addCrewShipWeaponSkin = (
|
const addCrewShipWeaponSkin = (
|
||||||
inventory: TInventoryDatabaseDocument,
|
inventory: TInventoryDatabaseDocument,
|
||||||
typeName: string,
|
typeName: string,
|
||||||
|
@ -11,7 +11,6 @@ import { logger } from "@/src/utils/logger";
|
|||||||
import { IRngResult, getRandomElement, getRandomReward } from "@/src/services/rngService";
|
import { IRngResult, getRandomElement, getRandomReward } from "@/src/services/rngService";
|
||||||
import { equipmentKeys, IInventoryDatabase, TEquipmentKey } from "@/src/types/inventoryTypes/inventoryTypes";
|
import { equipmentKeys, IInventoryDatabase, TEquipmentKey } from "@/src/types/inventoryTypes/inventoryTypes";
|
||||||
import {
|
import {
|
||||||
addBooster,
|
|
||||||
addChallenges,
|
addChallenges,
|
||||||
addConsumables,
|
addConsumables,
|
||||||
addCrewShipAmmo,
|
addCrewShipAmmo,
|
||||||
@ -285,11 +284,6 @@ export const addMissionInventoryUpdates = async (
|
|||||||
upgrade.UpgradeFingerprint = clientUpgrade.UpgradeFingerprint; // primitive way to copy over the riven challenge progress
|
upgrade.UpgradeFingerprint = clientUpgrade.UpgradeFingerprint; // primitive way to copy over the riven challenge progress
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case "Boosters":
|
|
||||||
value.forEach(booster => {
|
|
||||||
addBooster(booster.ItemType, booster.ExpiryDate, inventory);
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
case "SyndicateId": {
|
case "SyndicateId": {
|
||||||
inventory.CompletedSyndicates.push(value);
|
inventory.CompletedSyndicates.push(value);
|
||||||
break;
|
break;
|
||||||
|
@ -415,24 +415,24 @@ const handleBoosterPackPurchase = async (
|
|||||||
"attempt to roll over 100 booster packs in a single go. possible but unlikely to be desirable for the user or the server."
|
"attempt to roll over 100 booster packs in a single go. possible but unlikely to be desirable for the user or the server."
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
for (let i = 0; i != quantity; ++i) {
|
if (typeName == "/Lotus/Types/BoosterPacks/1999StickersPackEchoesArchimedeaFixed") {
|
||||||
const disallowedItems = new Set();
|
for (const result of pack.components) {
|
||||||
for (let roll = 0; roll != pack.rarityWeightsPerRoll.length; ) {
|
purchaseResponse.BoosterPackItems += toStoreItem(result.Item) + ',{"lvl":0};';
|
||||||
const weights = pack.rarityWeightsPerRoll[roll];
|
combineInventoryChanges(purchaseResponse.InventoryChanges, await addItem(inventory, result.Item, 1));
|
||||||
const result = getRandomWeightedRewardUc(pack.components, weights);
|
}
|
||||||
if (result) {
|
} else {
|
||||||
logger.debug(`booster pack rolled`, result);
|
for (let i = 0; i != quantity; ++i) {
|
||||||
if (disallowedItems.has(result.Item)) {
|
for (const weights of pack.rarityWeightsPerRoll) {
|
||||||
logger.debug(`oops, can't use that one; trying again`);
|
const result = getRandomWeightedRewardUc(pack.components, weights);
|
||||||
continue;
|
if (result) {
|
||||||
|
logger.debug(`booster pack rolled`, result);
|
||||||
|
purchaseResponse.BoosterPackItems += toStoreItem(result.Item) + ',{"lvl":0};';
|
||||||
|
combineInventoryChanges(
|
||||||
|
purchaseResponse.InventoryChanges,
|
||||||
|
await addItem(inventory, result.Item, 1)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
if (!pack.canGiveDuplicates) {
|
|
||||||
disallowedItems.add(result.Item);
|
|
||||||
}
|
|
||||||
purchaseResponse.BoosterPackItems += toStoreItem(result.Item) + ',{"lvl":0};';
|
|
||||||
combineInventoryChanges(purchaseResponse.InventoryChanges, await addItem(inventory, result.Item, 1));
|
|
||||||
}
|
}
|
||||||
++roll;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return purchaseResponse;
|
return purchaseResponse;
|
||||||
|
@ -155,7 +155,12 @@ export const handleInventoryItemConfigChange = async (
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (const [configId, config] of Object.entries(itemConfigEntries)) {
|
for (const [configId, config] of Object.entries(itemConfigEntries)) {
|
||||||
inventoryItem.Configs[parseInt(configId)] = config;
|
if (typeof config !== "boolean") {
|
||||||
|
inventoryItem.Configs[parseInt(configId)] = config;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ("IsNew" in itemConfigEntries) {
|
||||||
|
inventoryItem.IsNew = itemConfigEntries.IsNew;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -140,6 +140,7 @@ export interface IEquipmentDatabase {
|
|||||||
RailjackImage?: IFlavourItem;
|
RailjackImage?: IFlavourItem;
|
||||||
CrewMembers?: ICrewShipMembersDatabase;
|
CrewMembers?: ICrewShipMembersDatabase;
|
||||||
Details?: IKubrowPetDetailsDatabase;
|
Details?: IKubrowPetDetailsDatabase;
|
||||||
|
IsNew?: boolean;
|
||||||
_id: Types.ObjectId;
|
_id: Types.ObjectId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,8 +30,9 @@ export interface IInventoryDatabase
|
|||||||
| "Ships"
|
| "Ships"
|
||||||
| "WeaponSkins"
|
| "WeaponSkins"
|
||||||
| "Upgrades"
|
| "Upgrades"
|
||||||
| "CrewShipWeaponSkins"
|
|
||||||
| "CrewShipSalvagedWeaponSkins"
|
| "CrewShipSalvagedWeaponSkins"
|
||||||
|
| "CrewShipWeapons"
|
||||||
|
| "CrewShipWeaponSkins"
|
||||||
| "AdultOperatorLoadOuts"
|
| "AdultOperatorLoadOuts"
|
||||||
| "OperatorLoadOuts"
|
| "OperatorLoadOuts"
|
||||||
| "KahlLoadOuts"
|
| "KahlLoadOuts"
|
||||||
@ -43,7 +44,6 @@ export interface IInventoryDatabase
|
|||||||
| "RecentVendorPurchases"
|
| "RecentVendorPurchases"
|
||||||
| "NextRefill"
|
| "NextRefill"
|
||||||
| "Nemesis"
|
| "Nemesis"
|
||||||
| "EntratiVaultCountResetDate"
|
|
||||||
| TEquipmentKey
|
| TEquipmentKey
|
||||||
>,
|
>,
|
||||||
InventoryDatabaseEquipment {
|
InventoryDatabaseEquipment {
|
||||||
@ -59,8 +59,9 @@ export interface IInventoryDatabase
|
|||||||
Ships: Types.ObjectId[];
|
Ships: Types.ObjectId[];
|
||||||
WeaponSkins: IWeaponSkinDatabase[];
|
WeaponSkins: IWeaponSkinDatabase[];
|
||||||
Upgrades: IUpgradeDatabase[];
|
Upgrades: IUpgradeDatabase[];
|
||||||
CrewShipWeaponSkins: IUpgradeDatabase[];
|
|
||||||
CrewShipSalvagedWeaponSkins: IUpgradeDatabase[];
|
CrewShipSalvagedWeaponSkins: IUpgradeDatabase[];
|
||||||
|
CrewShipWeapons: ICrewShipWeaponDatabase[];
|
||||||
|
CrewShipWeaponSkins: IUpgradeDatabase[];
|
||||||
AdultOperatorLoadOuts: IOperatorConfigDatabase[];
|
AdultOperatorLoadOuts: IOperatorConfigDatabase[];
|
||||||
OperatorLoadOuts: IOperatorConfigDatabase[];
|
OperatorLoadOuts: IOperatorConfigDatabase[];
|
||||||
KahlLoadOuts: IOperatorConfigDatabase[];
|
KahlLoadOuts: IOperatorConfigDatabase[];
|
||||||
@ -72,7 +73,6 @@ export interface IInventoryDatabase
|
|||||||
RecentVendorPurchases?: IRecentVendorPurchaseDatabase[];
|
RecentVendorPurchases?: IRecentVendorPurchaseDatabase[];
|
||||||
NextRefill?: Date;
|
NextRefill?: Date;
|
||||||
Nemesis?: INemesisDatabase;
|
Nemesis?: INemesisDatabase;
|
||||||
EntratiVaultCountResetDate?: Date;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IQuestKeyDatabase {
|
export interface IQuestKeyDatabase {
|
||||||
@ -112,9 +112,7 @@ export const equipmentKeys = [
|
|||||||
"DataKnives",
|
"DataKnives",
|
||||||
"MechSuits",
|
"MechSuits",
|
||||||
"CrewShipHarnesses",
|
"CrewShipHarnesses",
|
||||||
"KubrowPets",
|
"KubrowPets"
|
||||||
"CrewShipWeapons",
|
|
||||||
"CrewShipSalvagedWeapons"
|
|
||||||
] as const;
|
] as const;
|
||||||
|
|
||||||
export type TEquipmentKey = (typeof equipmentKeys)[number];
|
export type TEquipmentKey = (typeof equipmentKeys)[number];
|
||||||
@ -299,8 +297,10 @@ export interface IInventoryClient extends IDailyAffiliations, InventoryClientEqu
|
|||||||
PersonalTechProjects: IPersonalTechProject[];
|
PersonalTechProjects: IPersonalTechProject[];
|
||||||
PlayerSkills: IPlayerSkills;
|
PlayerSkills: IPlayerSkills;
|
||||||
CrewShipAmmo: ITypeCount[];
|
CrewShipAmmo: ITypeCount[];
|
||||||
CrewShipWeaponSkins: IUpgradeClient[];
|
|
||||||
CrewShipSalvagedWeaponSkins: IUpgradeClient[];
|
CrewShipSalvagedWeaponSkins: IUpgradeClient[];
|
||||||
|
CrewShipWeapons: ICrewShipWeaponClient[];
|
||||||
|
CrewShipSalvagedWeapons: IEquipmentClient[];
|
||||||
|
CrewShipWeaponSkins: IUpgradeClient[];
|
||||||
TradeBannedUntil?: IMongoDate;
|
TradeBannedUntil?: IMongoDate;
|
||||||
PlayedParkourTutorial: boolean;
|
PlayedParkourTutorial: boolean;
|
||||||
SubscribedToEmailsPersonalized: number;
|
SubscribedToEmailsPersonalized: number;
|
||||||
@ -336,7 +336,7 @@ export interface IInventoryClient extends IDailyAffiliations, InventoryClientEqu
|
|||||||
CalendarProgress: ICalendarProgress;
|
CalendarProgress: ICalendarProgress;
|
||||||
SongChallenges?: ISongChallenge[];
|
SongChallenges?: ISongChallenge[];
|
||||||
EntratiVaultCountLastPeriod?: number;
|
EntratiVaultCountLastPeriod?: number;
|
||||||
EntratiVaultCountResetDate?: IMongoDate;
|
EntratiVaultCountResetDate?: Date;
|
||||||
EntratiLabConquestUnlocked?: number;
|
EntratiLabConquestUnlocked?: number;
|
||||||
EntratiLabConquestHardModeStatus?: number;
|
EntratiLabConquestHardModeStatus?: number;
|
||||||
EntratiLabConquestCacheScoreMission?: number;
|
EntratiLabConquestCacheScoreMission?: number;
|
||||||
@ -365,7 +365,6 @@ export interface IAlignment {
|
|||||||
export interface IBooster {
|
export interface IBooster {
|
||||||
ExpiryDate: number;
|
ExpiryDate: number;
|
||||||
ItemType: string;
|
ItemType: string;
|
||||||
UsesRemaining?: number;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IChallengeInstanceState {
|
export interface IChallengeInstanceState {
|
||||||
@ -537,6 +536,17 @@ export interface ICrewShipWeapon {
|
|||||||
PORT_GUNS: ICrewShipPortGuns;
|
PORT_GUNS: ICrewShipPortGuns;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// inventory.CrewShipWeapons
|
||||||
|
export interface ICrewShipWeaponClient {
|
||||||
|
ItemType: string;
|
||||||
|
ItemId: IOid;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ICrewShipWeaponDatabase {
|
||||||
|
ItemType: string;
|
||||||
|
_id: Types.ObjectId;
|
||||||
|
}
|
||||||
|
|
||||||
export interface ICrewShipPilotWeapon {
|
export interface ICrewShipPilotWeapon {
|
||||||
PRIMARY_A: IEquipmentSelection;
|
PRIMARY_A: IEquipmentSelection;
|
||||||
SECONDARY_A: IEquipmentSelection;
|
SECONDARY_A: IEquipmentSelection;
|
||||||
|
@ -104,7 +104,6 @@ export type IMissionInventoryUpdateRequest = {
|
|||||||
}[];
|
}[];
|
||||||
DeathMarks?: string[];
|
DeathMarks?: string[];
|
||||||
Nemesis?: number;
|
Nemesis?: number;
|
||||||
Boosters?: IBooster[];
|
|
||||||
} & {
|
} & {
|
||||||
[K in TEquipmentKey]?: IEquipmentClient[];
|
[K in TEquipmentKey]?: IEquipmentClient[];
|
||||||
};
|
};
|
||||||
|
@ -48,9 +48,9 @@ export interface IItemEntry {
|
|||||||
[itemId: string]: IConfigEntry;
|
[itemId: string]: IConfigEntry;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IConfigEntry {
|
export type IConfigEntry = {
|
||||||
[configId: string]: IItemConfig;
|
[configId in "0" | "1" | "2" | "3" | "4" | "5"]: IItemConfig;
|
||||||
}
|
} & { IsNew?: boolean };
|
||||||
|
|
||||||
export interface ILoadoutClient extends Omit<ILoadoutDatabase, "_id" | "loadoutOwnerId"> {}
|
export interface ILoadoutClient extends Omit<ILoadoutDatabase, "_id" | "loadoutOwnerId"> {}
|
||||||
|
|
||||||
|
@ -1,259 +0,0 @@
|
|||||||
{
|
|
||||||
"1999-QUINCY": ["/Lotus/Types/StoreItems/AvatarImages/AvatarImagePartyCDGlyph"],
|
|
||||||
"1999-VOICEPLAY": ["/Lotus/Types/StoreItems/AvatarImages/AvatarImageBigBytesPizzaGlyph"],
|
|
||||||
"6IXGATSU": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageSixixgatsu"],
|
|
||||||
"ADMIRALBAHROO": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageAdmiralBahroo"],
|
|
||||||
"AEONKNIGHT86": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageAeonKnight"],
|
|
||||||
"AGAYGUYPLAYS": ["/Lotus/Types/StoreItems/AvatarImages/AvatarImageCreatorAGGP"],
|
|
||||||
"AKARI": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageAkariayataka"],
|
|
||||||
"ALAINLOVEGLYPH": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageAlainLove"],
|
|
||||||
"ALEXANDERDARIO": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageAlexanderDario"],
|
|
||||||
"AMPROV": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageGoku"],
|
|
||||||
"ANGRYUNICORN": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageAngryUnicorn"],
|
|
||||||
"ANJETCAT": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageAnJetCat"],
|
|
||||||
"ANNOYINGKILLAH": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageAnnoyingKillah"],
|
|
||||||
"ARGONSIX": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageArgonSix"],
|
|
||||||
"ASHISOGITENNO": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageAshisogiTenno"],
|
|
||||||
"ASURATENSHI": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageTenshi"],
|
|
||||||
"AUNTIETAN": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageFromThe70s"],
|
|
||||||
"AVELNA": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageAvelna"],
|
|
||||||
"AZNITROUS": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageAznitrous"],
|
|
||||||
"BIGJIMID": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageBigJimID"],
|
|
||||||
"BLACKONI": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageBlackOni"],
|
|
||||||
"BLAZINGCOBALT": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageBlazingCobalt"],
|
|
||||||
"BLUEBERRYCAT": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageBlueberryCat"],
|
|
||||||
"BRAZILCOMMUNITYDISCORD": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageBRCommunityDiscord"],
|
|
||||||
"BRICKY": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageBricky"],
|
|
||||||
"BROTHERDAZ": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageOldDirtyDaz"],
|
|
||||||
"BROZIME": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageBrozime"],
|
|
||||||
"BUFF00N": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageBuff00n"],
|
|
||||||
"BURNBXX": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageBurnBxx"],
|
|
||||||
"BWANA": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageBwana"],
|
|
||||||
"CALAMITYDEATH": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageCalamityDeath"],
|
|
||||||
"CALEYEMERALD": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageCaleyEmerald"],
|
|
||||||
"CANOFCRAIG": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageCanOfCraig"],
|
|
||||||
"CARCHARA": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageCarchara"],
|
|
||||||
"CASARDIS": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageCasardis"],
|
|
||||||
"CEPHALONSQUARED": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageCephalonSquared"],
|
|
||||||
"CGSKNACKIE": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageCGsKnackie"],
|
|
||||||
"CHACYTAY": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageChacytay"],
|
|
||||||
"CHAR": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageChar"],
|
|
||||||
"CHELESTRA": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageChelestra"],
|
|
||||||
"CLEONATURIN": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageCleoNaturin"],
|
|
||||||
"CODOMA": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageCodoma"],
|
|
||||||
"COHHCARNAGE": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageCohhCarnage"],
|
|
||||||
"COLDSCAR": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageColdScar"],
|
|
||||||
"COLDTIGER": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageColdTiger"],
|
|
||||||
"CONCLAVEDISCORD": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageConclaveDiscord"],
|
|
||||||
"CONFUSEDWARFRAME": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageConfusedWarframe"],
|
|
||||||
"CONQUERA2024": ["/Lotus/Types/StoreItems/AvatarImages/AvatarImageConqueraGlyphVI", "/Lotus/Types/StoreItems/AvatarImages/AvatarImageConqueraGlyphVII"],
|
|
||||||
"COPYKAVAT": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageCopyKavat"],
|
|
||||||
"CPT_KIMGLYPH": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageCptKim"],
|
|
||||||
"CROWDI": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageCrowdi"],
|
|
||||||
"DAIDAIKIRI": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageDaiDaiKiri"],
|
|
||||||
"DANIELTHEDEMON": ["/Lotus/Types/StoreItems/AvatarImages/AvatarImageCreatorDanieltheDemon"],
|
|
||||||
"DANILY": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageDanily"],
|
|
||||||
"DARIKAART": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageDarikaArt"],
|
|
||||||
"DASTERCREATIONS": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageDasterCreations"],
|
|
||||||
"DATLOON": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageDatLoon"],
|
|
||||||
"DAYJOBO": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageDayJoBo"],
|
|
||||||
"DEATHMAGGOT": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImagedeathma666ot"],
|
|
||||||
"DEBBYSHEEN": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageDebbysheen"],
|
|
||||||
"DEEJAYKNIGHT": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageDeejayKnight"],
|
|
||||||
"DEEPBLUEBEARD": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageDeepBlueBeard"],
|
|
||||||
"DESTROHIDO": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageDestrohido"],
|
|
||||||
"DEUCETHEGAMER": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageDeuceTheGamer"],
|
|
||||||
"DILLYFRAME": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageDillyFrame"],
|
|
||||||
"DIMITRIV2": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageDimitriVTwo"],
|
|
||||||
"DISFUSIONAL": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageDisfusional"],
|
|
||||||
"DJTECHLIVE": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageDJTechlive"],
|
|
||||||
"DKDIAMANTES": ["/Lotus/Types/StoreItems/AvatarImages/AvatarImageCreatorDKDiamantes"],
|
|
||||||
"DNEXUS": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageDNexus"],
|
|
||||||
"EDRICK": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageEdrick"],
|
|
||||||
"EDUIY16": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageEduiy"],
|
|
||||||
"ELDANKER": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageD4NK3R"],
|
|
||||||
"ELGRINEEREXILIADO": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageElGrineerExiliado"],
|
|
||||||
"ELICEGAMEPLAY": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageEliceGameplay"],
|
|
||||||
"ELNORAELEO": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageElNoraEleo"],
|
|
||||||
"EMOVJ": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageEmovj"],
|
|
||||||
"EMPYREANCAP": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageEmpyreanCap"],
|
|
||||||
"ENDOTTI_": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageEndotti"],
|
|
||||||
"ETERION": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageEterion"],
|
|
||||||
"EXTRACREDITS": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageExtraCredits"],
|
|
||||||
"FACELESSBEANIE": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageFacelessBeanie"],
|
|
||||||
"FASHIONFRAMEISENDGAME": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageFashionFrameIsEndgame"],
|
|
||||||
"FATED2PERISH": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageFated2Perish"],
|
|
||||||
"FEELLIKEAPLAYER": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageFeelLikeAPlayer"],
|
|
||||||
"FERREUSDEMON": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageFerreusDemon"],
|
|
||||||
"FINLAENA": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageFinlaena"],
|
|
||||||
"FLOOFYDWAGON": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageFloofyDwagon"],
|
|
||||||
"FR4G-TP": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageFR4GTP"],
|
|
||||||
"FROSTYNOVAPRIME": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageFrostyNovaPrime"],
|
|
||||||
"FROZENBAWZ": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageFrozenbawz"],
|
|
||||||
"GARA": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageGara"],
|
|
||||||
"GERMANCOMMUNITYDISCORD": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageGermanCommunityDiscord"],
|
|
||||||
"GINGY": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageGingy"],
|
|
||||||
"GLAMSHATTERSKULL": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageGlamShatterskull"],
|
|
||||||
"GRINDHARDSQUAD": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageGrindHardSquad"],
|
|
||||||
"H3DSH0T": ["/Lotus/Types/StoreItems/AvatarImages/AvatarImageCreatorH3dsh0t"],
|
|
||||||
"HAPPINESSDARK": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageHappinessDark"],
|
|
||||||
"HOKUPROPS": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageHokuProps"],
|
|
||||||
"HOMIINVOCADO": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageHomiInvocado"],
|
|
||||||
"HOTSHOMSTORIES": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageHotsHomStories"],
|
|
||||||
"HYDROXATE": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageHydroxate"],
|
|
||||||
"IFLYNN": ["/Lotus/Types/StoreItems/AvatarImages/AvatarImageCreatorIflynn"],
|
|
||||||
"IKEDO": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageIkedo"],
|
|
||||||
"IM7HECLOWN": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageIm7heClown"],
|
|
||||||
"INEXPENSIVEGAMER": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageInexpensiveGamer"],
|
|
||||||
"INFERNOTHEFIRELORD": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageInfernoTheFirelord"],
|
|
||||||
"INFODIVERSAO": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageInfodiversao"],
|
|
||||||
"ITSJUSTTOE": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageToxickToe"],
|
|
||||||
"IWOPLY": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageIwoply"],
|
|
||||||
"JAMIEVOICEOVER": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageJamieVoiceOver"],
|
|
||||||
"JESSITHROWER": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageJessiThrower"],
|
|
||||||
"JOEYZERO": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageJoeyZero"],
|
|
||||||
"JORIALE": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageJoriale"],
|
|
||||||
"JUSTHAILEY": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageJustHailey"],
|
|
||||||
"JUSTRLC": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageRLCGaming"],
|
|
||||||
"K1LLERBARBIE": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageKillerBarbie"],
|
|
||||||
"KAVATSSCHROEDINGER": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageKavatsSchroedinger"],
|
|
||||||
"KENSHINWF": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageKenshinWF"],
|
|
||||||
"KINGGOTHALION": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageKingGothalion"],
|
|
||||||
"KIRARAHIME": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageKirarahime"],
|
|
||||||
"KIRDY": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageKirdy"],
|
|
||||||
"KIWAD": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageKiwad"],
|
|
||||||
"KR1PTONPLAYER": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageKr1ptonPlayer"],
|
|
||||||
"KRETDUY": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageKretduy"],
|
|
||||||
"KYAII": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImagekyaii"],
|
|
||||||
"L1FEWATER": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageLifewater"],
|
|
||||||
"LADYNOVITA": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageLadyNovita"],
|
|
||||||
"LADYTHELADDY": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageLadyTheLaddy"],
|
|
||||||
"LEODOODLING": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageLeoDoodling"],
|
|
||||||
"LEYZARGAMINGVIEWS": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageLeyzarViewGaming"],
|
|
||||||
"LIGHTMICKE": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageLightmicke"],
|
|
||||||
"LIGHTNINGCOSPLAY": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageLightningCosplay"],
|
|
||||||
"LILLEXI": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageLilLexi"],
|
|
||||||
"LUCIANPLAYSALLDAY": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageLucianPlaysAllDay"],
|
|
||||||
"LYNXARIA": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageLynxaria"],
|
|
||||||
"MACHO": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageLokKingMacho"],
|
|
||||||
"MADFURY": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageHypercaptai"],
|
|
||||||
"MAKARIMORPH": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageMakarimorph"],
|
|
||||||
"MAOMIX": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageMaomix"],
|
|
||||||
"MCGAMERCZ": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageMCGamerCZ"],
|
|
||||||
"MCIK": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageMCIK"],
|
|
||||||
"MCMONKEYS": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageMCMonkeys"],
|
|
||||||
"MECORE": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageMeCore"],
|
|
||||||
"MEDUSACAPTURES": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageMedusaCaptures"],
|
|
||||||
"MHBLACKY": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageMHBlacky"],
|
|
||||||
"MICHELPOSTMA": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageTheNextLevel"],
|
|
||||||
"MIKETHEBARD": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageTVSBOH"],
|
|
||||||
"MISSFWUFFY": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageMissFwuffy"],
|
|
||||||
"MISTERGAMER": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageTennoForever"],
|
|
||||||
"MJIKTHIZE": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageMjikThize"],
|
|
||||||
"MOGAMU": ["/Lotus/Types/StoreItems/AvatarImages/AvatarImageCreatorMogamu"],
|
|
||||||
"MOVEMBER2024": ["/Lotus/Types/StoreItems/AvatarImages/AvatarImageMovember"],
|
|
||||||
"MRROADBLOCK": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageMrRoadBlock"],
|
|
||||||
"MRSTEELWAR": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageMrSteelWar"],
|
|
||||||
"MRWARFRAMEGUY": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageMrWarframeGuy"],
|
|
||||||
"N00BLSHOWTEK": ["/Lotus/Types/StoreItems/AvatarImages/AvatarImageCreatorN00blShowtek"],
|
|
||||||
"NELOSART": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageNelosart"],
|
|
||||||
"NOMNOM": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageNononom"],
|
|
||||||
"NOSYMPATHYY": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageNoSympathyy"],
|
|
||||||
"NP161": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImagenponesixtyone"],
|
|
||||||
"ODDIEOWL": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageOddieowl"],
|
|
||||||
"OOSIJ": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageOOSIJ"],
|
|
||||||
"ORIGINALWICKEDFUN": ["/Lotus/Types/StoreItems/AvatarImages/AvatarImageCreatorOriginalWickedfun"],
|
|
||||||
"ORPHEUSDELUXE": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageOrpheusDeluxe"],
|
|
||||||
"OTTOFYRE": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageOttofyre"],
|
|
||||||
"OZKU": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageOzku"],
|
|
||||||
"PAMMYJAMMY": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImagePammyJammy"],
|
|
||||||
"PANDAAHH": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImagePandaahhhhh"],
|
|
||||||
"PAPATLION": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImagePapaTLion"],
|
|
||||||
"PHONGFU": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImagePhongFu"],
|
|
||||||
"PLAGUEDIRECTOR": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImagePlagueDirector"],
|
|
||||||
"PLEXICOSPLAY": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImagePlexiCosplay"],
|
|
||||||
"POKKETNINJA": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImagePokketNinja"],
|
|
||||||
"POSTITV": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImagePostiTV"],
|
|
||||||
"PRIDE2024": ["/Lotus/Types/StoreItems/AvatarImages/AvatarImagePrideGlyph"],
|
|
||||||
"PRIMEDAVERAGE": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImagePrimedAverage"],
|
|
||||||
"PROFESSORBROMAN": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageProfessorBroman"],
|
|
||||||
"PURKINJE": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImagePurkinje"],
|
|
||||||
"PURPLEFLURP": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImagePurpleFlurp"],
|
|
||||||
"PYRAH": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImagePyrah"],
|
|
||||||
"PYRRHICSERENITY": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImagePyrrhicSerenity"],
|
|
||||||
"QUADLYSTOP": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageQuadlyStop"],
|
|
||||||
"R/WARFRAME": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageReddit"],
|
|
||||||
"RAGINGTERROR": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageRagingTerror"],
|
|
||||||
"RAHETALIUS": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageRahetalius"],
|
|
||||||
"RAHNY": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageRahny"],
|
|
||||||
"RAINBOWWAFFLES": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageRainbowWaffles"],
|
|
||||||
"RELENTLESSZEN": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageRelentlessZen"],
|
|
||||||
"RETROALCHEMIST": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageRetroAlchemist"],
|
|
||||||
"REYGANSO": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageReyGanso"],
|
|
||||||
"RIKENZ": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageRIKENZ"],
|
|
||||||
"RIPPZ0R": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageRippz0r"],
|
|
||||||
"RITENS": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageRitens"],
|
|
||||||
"ROYALPRAT": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageRoyalPrat"],
|
|
||||||
"RUSTYFIN": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageRustyFin"],
|
|
||||||
"SAPMATIC": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageSapmatic"],
|
|
||||||
"SARAHTSANG": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageSarahTsang"],
|
|
||||||
"SCALLION": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageScallion"],
|
|
||||||
"SCARLETMOON": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageScarletMoon"],
|
|
||||||
"SEARYN": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageSearyn"],
|
|
||||||
"SERDARSARI": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageBBSChainWarden"],
|
|
||||||
"SHARLAZARD": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageSharlazard"],
|
|
||||||
"SHENZHAO": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageShenzhao"],
|
|
||||||
"SHERPA": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageSherpaRage"],
|
|
||||||
"SHUL": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageShulGaming"],
|
|
||||||
"SIEJOUMBRA": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageSiejoUmbra"],
|
|
||||||
"SILENTMASHIKO": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageSilentMashiko"],
|
|
||||||
"SILLFIX": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageSillfix"],
|
|
||||||
"SILVERVALE": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageSilvervale"],
|
|
||||||
"SKILLUP": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageSkillUp"],
|
|
||||||
"SMOODIE": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageSmoodie"],
|
|
||||||
"SN0WRC": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageSn0wRC"],
|
|
||||||
"SPACEWAIFU": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageSpaceWaifu"],
|
|
||||||
"SPANDY": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageSpandy"],
|
|
||||||
"STR8OPTICROYAL": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageStr8opticroyal"],
|
|
||||||
"STRIPPIN": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageStrippin"],
|
|
||||||
"STUDIOCYEN": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageStudioCyen"],
|
|
||||||
"TACTICALPOTATO": ["/Lotus/Types/StoreItems/AvatarImages/AvatarImageCreatorTacticalPotato"],
|
|
||||||
"TANCHAN": ["/Lotus/Types/StoreItems/AvatarImages/AvatarImageCreatorTanchan"],
|
|
||||||
"TBGKARU": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageTBGKaru"],
|
|
||||||
"TEAWREX": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageTeawrex"],
|
|
||||||
"THEGAMIO": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageTheGamio"],
|
|
||||||
"THEKENGINEER": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageKengineer"],
|
|
||||||
"THEPANDA": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageThePandaNEight"],
|
|
||||||
"TINBEARS": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageTinBears"],
|
|
||||||
"TIOMARIO": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageTioMario"],
|
|
||||||
"TIORAMON": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageTioRamon"],
|
|
||||||
"TORTOISE": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageWDTortoise"],
|
|
||||||
"TOTALN3WB": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageDayTotalN3wb"],
|
|
||||||
"TRASHFRAME": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageTrashFrame"],
|
|
||||||
"TRIBUROS": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageTriburos"],
|
|
||||||
"TWILA": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageTwila"],
|
|
||||||
"UNREALYUKI": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageUnrealYuki"],
|
|
||||||
"UREIFEN": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageUreiFen"],
|
|
||||||
"VAMP6X6X6X": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageWarframeMadness"],
|
|
||||||
"VAMPPIRE": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageVamppire"],
|
|
||||||
"VARLINATOR": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageVarlinator"],
|
|
||||||
"VASHCOWAII": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageVashCowaii"],
|
|
||||||
"VASHKA": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageVashka"],
|
|
||||||
"VERNOC": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageVernoc"],
|
|
||||||
"VOIDFISSUREBR": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageVoidFissureBR"],
|
|
||||||
"VOLI": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageVoli"],
|
|
||||||
"VOLTTHEHERO": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageVoltTheHero"],
|
|
||||||
"VVHITEANGEL": ["/Lotus/Types/StoreItems/AvatarImages/AvatarImageCreatorVVhiteAngel"],
|
|
||||||
"WALTERDV": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageWalterDV"],
|
|
||||||
"WANDERBOTS": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageWanderbots"],
|
|
||||||
"WARFRAMEFLO": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageWarframeFlo"],
|
|
||||||
"WEALWEST": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageWealWest"],
|
|
||||||
"WIDESCREENJOHN": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageWidescreenJohn"],
|
|
||||||
"WOXLI": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageWoxli"],
|
|
||||||
"XBOCCHANVTX": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageBocchanVT"],
|
|
||||||
"XENOGELION": ["/Lotus/Types/StoreItems/AvatarImages/AvatarImageCreatorXenogelion"],
|
|
||||||
"XXVAMPIXX": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageXxVampixx"],
|
|
||||||
"YOURLUCKYCLOVER": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageYourLuckyClover"],
|
|
||||||
"ZARIONIS": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageZarionis"],
|
|
||||||
"ZXPFER": ["/Lotus/Types/StoreItems/AvatarImages/FanChannel/AvatarImageZxpfer"]
|
|
||||||
}
|
|
120
static/fixed_responses/junctionRewards.json
Normal file
120
static/fixed_responses/junctionRewards.json
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
{
|
||||||
|
"VenusToMercuryJunction": {
|
||||||
|
"items": [
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Keys/InfestedIntroQuest/InfestedIntroQuestKeyChain", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Keys/KubrowQuest/KubrowQuestKeyChain", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Weapons/Tenno/Rifle/BoltoRifle", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Upgrades/Mods/Warframe/AvatarShieldRechargeRateMod", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Upgrades/Mods/Warframe/AvatarAbilityEfficiencyMod", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Game/KubrowPet/EggHatcher", "ItemCount": 1 }
|
||||||
|
],
|
||||||
|
"credits": 10000
|
||||||
|
},
|
||||||
|
"EarthToVenusJunction": {
|
||||||
|
"items": [
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Recipes/Weapons/FurisBlueprint", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Upgrades/Mods/Melee/WeaponFreezeDamageMod", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Upgrades/Mods/Rifle/WeaponElectricityDamageMod", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Recipes/SentinelRecipes/TnSentinelCrossBlueprint", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Weapons/Tenno/Melee/MeleeTrees/StaffCmbOneMeleeTree", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Items/MiscItems/OrokinReactor", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Upgrades/Mods/Aura/PlayerEnergyHealthRegenAuraMod", "ItemCount": 1 }
|
||||||
|
],
|
||||||
|
"credits": 5000
|
||||||
|
},
|
||||||
|
"EarthToMarsJunction": {
|
||||||
|
"items": [
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Keys/ArchwingQuest/ArchwingQuestKeyChain", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Game/KubrowPet/EggHatcher", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Items/ShipFeatureItems/VoidProjectionFeatureItem", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Game/Projections/T1VoidProjectionRevenantPrimeABronze", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Weapons/Tenno/Melee/Hammer/HammerWeapon", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Weapons/Tenno/Melee/MeleeTrees/IronPhoenixMeleeTree", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Keys/InfestedMicroplanetQuest/InfestedMicroplanetQuestKeyChain", "ItemCount": 1 }
|
||||||
|
],
|
||||||
|
"credits": 15000
|
||||||
|
},
|
||||||
|
"MarsToCeresJunction": {
|
||||||
|
"items": [
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Recipes/Weapons/GrnSniperRifleBlueprint", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Upgrades/Mods/Melee/WeaponToxinDamageMod", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Weapons/Tenno/Melee/MeleeTrees/DualSwordCmbOneMeleeTree", "ItemCount": 1 }
|
||||||
|
],
|
||||||
|
"credits": 20000
|
||||||
|
},
|
||||||
|
"MarsToPhobosJunction": {
|
||||||
|
"items": [
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Keys/SpyQuestKeyChain/SpyQuestKeyChain", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Recipes/Weapons/GrnHeavyPistolBlueprint", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/StoreItems/Consumables/CipherBlueprint", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Upgrades/Mods/Rifle/WeaponReloadSpeedMod", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Upgrades/Mods/Warframe/AvatarLootRadarMod", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Items/MiscItems/OrokinCatalyst", "ItemCount": 1 }
|
||||||
|
],
|
||||||
|
"credits": 20000
|
||||||
|
},
|
||||||
|
"JupiterToEuropaJunction": {
|
||||||
|
"items": [
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Keys/LimboQuest/LimboQuestKeyChain", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Keys/DragonQuest/DragonQuestKeyChain", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Recipes/Weapons/CorpusMinigunBlueprint", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Upgrades/Mods/Aura/PlayerHealthAuraMod", "ItemCount": 1 }
|
||||||
|
],
|
||||||
|
"credits": 40000
|
||||||
|
},
|
||||||
|
"JupiterToSaturnJunction": {
|
||||||
|
"items": [
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Recipes/Weapons/GrenadeLauncherBlueprint", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Keys/ProteaQuest/ProteaQuestKeyChain", "ItemCount": 1 }
|
||||||
|
],
|
||||||
|
"credits": 40000
|
||||||
|
},
|
||||||
|
"SaturnToUranusJunction": {
|
||||||
|
"items": [
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Recipes/Weapons/CorpusWhipBlueprint", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Recipes/WarframeRecipes/ChromaHelmetBlueprint", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Keys/DuviriQuest/DuviriQuestKeyChain", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/NeutralCreatures/ErsatzHorse/ErsatzHorsePowerSuit", "ItemCount": 1 }
|
||||||
|
],
|
||||||
|
"credits": 60000
|
||||||
|
},
|
||||||
|
"UranusToNeptuneJunction": {
|
||||||
|
"items": [
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Keys/OrokinMoonQuest/OrokinMoonQuestKeyChain", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Recipes/Weapons/ReconnasorBlueprint", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Recipes/WarframeRecipes/ChromaChassisBlueprint", "ItemCount": 1 }
|
||||||
|
],
|
||||||
|
"credits": 80000
|
||||||
|
},
|
||||||
|
"NeptuneToPlutoJunction": {
|
||||||
|
"items": [
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Recipes/Weapons/GrineerFlakCannonBlueprint", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Recipes/WarframeRecipes/ChromaSystemsBlueprint", "ItemCount": 1 }
|
||||||
|
],
|
||||||
|
"credits": 80000
|
||||||
|
},
|
||||||
|
"PlutoToSednaJunction": {
|
||||||
|
"items": [
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Keys/WarWithinQuest/WarWithinQuestKeyChain", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Keys/MirageQuest/MirageQuestKeyChain", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Recipes/Weapons/DualDaggerBlueprint", "ItemCount": 1 }
|
||||||
|
],
|
||||||
|
"credits": 100000
|
||||||
|
},
|
||||||
|
"PlutoToErisJunction": {
|
||||||
|
"items": [
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Keys/InfestedAladVQuest/InfestedAladVQuestKeyChain", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Recipes/Weapons/MireSwordBlueprint", "ItemCount": 1 }
|
||||||
|
],
|
||||||
|
"credits": 100000
|
||||||
|
},
|
||||||
|
"CeresToJupiterJunction": {
|
||||||
|
"items": [
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Types/Recipes/Weapons/GrnStaffBlueprint", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Upgrades/Mods/Archwing/Suit/ArchwingSuitHealthMaxMod", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Upgrades/Mods/Archwing/Rifle/ArchwingRifleDamageAmountMod", "ItemCount": 1 },
|
||||||
|
{ "ItemType": "/Lotus/StoreItems/Upgrades/Mods/Archwing/Melee/ArchwingMeleeDamageMod", "ItemCount": 1 }
|
||||||
|
],
|
||||||
|
"credits": 30000
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user