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",
|
||||
"morgan": "^1.10.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",
|
||||
"winston": "^3.17.0",
|
||||
"winston-daily-rotate-file": "^5.0.0"
|
||||
@ -4013,9 +4013,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/warframe-public-export-plus": {
|
||||
"version": "0.5.48",
|
||||
"resolved": "https://registry.npmjs.org/warframe-public-export-plus/-/warframe-public-export-plus-0.5.48.tgz",
|
||||
"integrity": "sha512-vJitVYnaViQo43xAkL/h3MJ/6wS7YknKEYhYs+N/GrsspYLMPGf9KSuR19tprB2g9KVGS5o67t0v5K8p0RTQCQ=="
|
||||
"version": "0.5.47",
|
||||
"resolved": "https://registry.npmjs.org/warframe-public-export-plus/-/warframe-public-export-plus-0.5.47.tgz",
|
||||
"integrity": "sha512-ZJK3VT1PdSPwZlhIzUVBlydwK4DM0sOmeCiixVMgOM8XuOPJ8OHfQUoLKydtw5rxCsowzFPbx5b3KBke5C4akQ=="
|
||||
},
|
||||
"node_modules/warframe-riven-info": {
|
||||
"version": "0.1.2",
|
||||
|
@ -23,7 +23,7 @@
|
||||
"mongoose": "^8.11.0",
|
||||
"morgan": "^1.10.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",
|
||||
"winston": "^3.17.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,
|
||||
ISongChallenge,
|
||||
ILibraryPersonalProgress,
|
||||
ICrewShipWeaponDatabase,
|
||||
IRecentVendorPurchaseDatabase,
|
||||
IVendorPurchaseHistoryEntryDatabase,
|
||||
IVendorPurchaseHistoryEntryClient,
|
||||
@ -839,7 +840,8 @@ const EquipmentSchema = new Schema<IEquipmentDatabase>(
|
||||
Customization: crewShipCustomizationSchema,
|
||||
RailjackImage: FlavourItemSchema,
|
||||
CrewMembers: crewShipMembersSchema,
|
||||
Details: detailsSchema
|
||||
Details: detailsSchema,
|
||||
IsNew: Boolean
|
||||
},
|
||||
{ id: false }
|
||||
);
|
||||
@ -1117,6 +1119,25 @@ const alignmentSchema = new Schema<IAlignment>(
|
||||
{ _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>(
|
||||
{
|
||||
accountOwnerId: Schema.Types.ObjectId,
|
||||
@ -1239,20 +1260,20 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
|
||||
|
||||
//Default RailJack
|
||||
CrewShipAmmo: [typeCountSchema],
|
||||
CrewShipWeapons: [EquipmentSchema],
|
||||
CrewShipWeapons: [crewShipWeaponSchema2],
|
||||
CrewShipWeaponSkins: [upgradeSchema],
|
||||
CrewShipSalvagedWeapons: [EquipmentSchema],
|
||||
CrewShipSalvagedWeaponSkins: [upgradeSchema],
|
||||
|
||||
//RailJack Crew
|
||||
//NPC Crew and weapon
|
||||
CrewMembers: [Schema.Types.Mixed],
|
||||
CrewShipSalvagedWeaponSkins: [Schema.Types.Mixed],
|
||||
CrewShipSalvagedWeapons: [Schema.Types.Mixed],
|
||||
|
||||
//Complete Mission\Quests
|
||||
Missions: [missionSchema],
|
||||
QuestKeys: [questKeysSchema],
|
||||
ActiveQuest: { type: String, default: "" },
|
||||
//item like DojoKey or Boss missions key
|
||||
LevelKeys: [typeCountSchema],
|
||||
LevelKeys: [Schema.Types.Mixed],
|
||||
//Active quests
|
||||
Quests: [Schema.Types.Mixed],
|
||||
|
||||
@ -1313,7 +1334,7 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
|
||||
SpectreLoadouts: { type: [spectreLoadoutsSchema], default: undefined },
|
||||
|
||||
//New Quest Email
|
||||
EmailItems: [typeCountSchema],
|
||||
EmailItems: [TypeXPItemSchema],
|
||||
|
||||
//Profile->Wishlist
|
||||
Wishlist: [String],
|
||||
@ -1485,9 +1506,6 @@ inventorySchema.set("toJSON", {
|
||||
if (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>;
|
||||
QuestKeys: Types.DocumentArray<IQuestKeyDatabase>;
|
||||
Drones: Types.DocumentArray<IDroneDatabase>;
|
||||
CrewShipWeapons: Types.DocumentArray<ICrewShipWeaponDatabase>;
|
||||
CrewShipWeaponSkins: Types.DocumentArray<IUpgradeDatabase>;
|
||||
CrewShipSalvagedWeaponsSkins: Types.DocumentArray<IUpgradeDatabase>;
|
||||
} & { [K in TEquipmentKey]: Types.DocumentArray<IEquipmentDatabase> };
|
||||
|
||||
// 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 { purchaseController } from "@/src/controllers/api/purchaseController";
|
||||
import { queueDojoComponentDestructionController } from "@/src/controllers/api/queueDojoComponentDestructionController";
|
||||
import { redeemPromoCodeController } from "@/src/controllers/api/redeemPromoCodeController";
|
||||
import { removeFromGuildController } from "@/src/controllers/api/removeFromGuildController";
|
||||
import { rerollRandomModController } from "@/src/controllers/api/rerollRandomModController";
|
||||
import { saveDialogueController } from "@/src/controllers/api/saveDialogueController";
|
||||
@ -217,7 +216,6 @@ apiRouter.post("/placeDecoInComponent.php", placeDecoInComponentController);
|
||||
apiRouter.post("/playerSkills.php", playerSkillsController);
|
||||
apiRouter.post("/projectionManager.php", projectionManagerController);
|
||||
apiRouter.post("/purchase.php", purchaseController);
|
||||
apiRouter.post("/redeemPromoCode.php", redeemPromoCodeController);
|
||||
apiRouter.post("/removeFromGuild.php", removeFromGuildController);
|
||||
apiRouter.post("/rerollRandomMod.php", rerollRandomModController);
|
||||
apiRouter.post("/saveDialogue.php", saveDialogueController);
|
||||
|
@ -6,7 +6,6 @@ import { pushArchonCrystalUpgradeController } from "@/src/controllers/custom/pus
|
||||
import { popArchonCrystalUpgradeController } from "@/src/controllers/custom/popArchonCrystalUpgradeController";
|
||||
import { deleteAccountController } from "@/src/controllers/custom/deleteAccountController";
|
||||
import { getNameController } from "@/src/controllers/custom/getNameController";
|
||||
import { getAccountInfoController } from "@/src/controllers/custom/getAccountInfoController";
|
||||
import { renameAccountController } from "@/src/controllers/custom/renameAccountController";
|
||||
import { ircDroppedController } from "@/src/controllers/custom/ircDroppedController";
|
||||
import { unlockAllIntrinsicsController } from "@/src/controllers/custom/unlockAllIntrinsicsController";
|
||||
@ -30,7 +29,6 @@ customRouter.get("/pushArchonCrystalUpgrade", pushArchonCrystalUpgradeController
|
||||
customRouter.get("/popArchonCrystalUpgrade", popArchonCrystalUpgradeController);
|
||||
customRouter.get("/deleteAccount", deleteAccountController);
|
||||
customRouter.get("/getName", getNameController);
|
||||
customRouter.get("/getAccountInfo", getAccountInfoController);
|
||||
customRouter.get("/renameAccount", renameAccountController);
|
||||
customRouter.get("/ircDropped", ircDroppedController);
|
||||
customRouter.get("/unlockAllIntrinsics", unlockAllIntrinsicsController);
|
||||
|
@ -23,12 +23,6 @@ import {
|
||||
IKubrowPetDetailsDatabase,
|
||||
ILoadoutConfigClient,
|
||||
ILoadOutPresets,
|
||||
INemesisClient,
|
||||
INemesisDatabase,
|
||||
IPendingRecipeClient,
|
||||
IPendingRecipeDatabase,
|
||||
IQuestKeyClient,
|
||||
IQuestKeyDatabase,
|
||||
ISlots,
|
||||
IUpgradeClient,
|
||||
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 => {
|
||||
for (const key of equipmentKeys) {
|
||||
if (client[key] !== undefined) {
|
||||
@ -180,22 +153,10 @@ export const importInventory = (db: TInventoryDatabaseDocument, client: Partial<
|
||||
if (client.WeaponSkins !== undefined) {
|
||||
replaceArray<IWeaponSkinDatabase>(db.WeaponSkins, client.WeaponSkins.map(convertWeaponSkin));
|
||||
}
|
||||
for (const key of ["Upgrades", "CrewShipSalvagedWeaponSkins", "CrewShipWeaponSkins"] as const) {
|
||||
if (client[key] !== undefined) {
|
||||
replaceArray<IUpgradeDatabase>(db[key], client[key].map(convertUpgrade));
|
||||
}
|
||||
if (client.Upgrades !== undefined) {
|
||||
replaceArray<IUpgradeDatabase>(db.Upgrades, client.Upgrades.map(convertUpgrade));
|
||||
}
|
||||
for (const key of [
|
||||
"RawUpgrades",
|
||||
"MiscItems",
|
||||
"Consumables",
|
||||
"Recipes",
|
||||
"LevelKeys",
|
||||
"EmailItems",
|
||||
"ShipDecorations",
|
||||
"CrewShipAmmo",
|
||||
"CrewShipRawSalvage"
|
||||
] as const) {
|
||||
for (const key of ["RawUpgrades", "MiscItems", "Consumables"] as const) {
|
||||
if (client[key] !== undefined) {
|
||||
db[key].splice(0, db[key].length);
|
||||
client[key].forEach(x => {
|
||||
@ -229,16 +190,8 @@ export const importInventory = (db: TInventoryDatabaseDocument, client: Partial<
|
||||
replaceSlots(db[key], client[key]);
|
||||
}
|
||||
}
|
||||
for (const key of [
|
||||
"UseAdultOperatorLoadout",
|
||||
"HasOwnedVoidProjectionsPreviously",
|
||||
"ReceivedStartingGear",
|
||||
"ArchwingEnabled",
|
||||
"PlayedParkourTutorial"
|
||||
] as const) {
|
||||
if (client[key] !== undefined) {
|
||||
db[key] = client[key];
|
||||
}
|
||||
if (client.UseAdultOperatorLoadout !== undefined) {
|
||||
db.UseAdultOperatorLoadout = client.UseAdultOperatorLoadout;
|
||||
}
|
||||
for (const key of [
|
||||
"PlayerLevel",
|
||||
@ -246,37 +199,18 @@ export const importInventory = (db: TInventoryDatabaseDocument, client: Partial<
|
||||
"PremiumCredits",
|
||||
"PremiumCreditsFree",
|
||||
"FusionPoints",
|
||||
"PrimeTokens",
|
||||
"TradesRemaining",
|
||||
"GiftsRemaining",
|
||||
"ChallengesFixVersion"
|
||||
"PrimeTokens"
|
||||
] as const) {
|
||||
if (client[key] !== undefined) {
|
||||
db[key] = client[key];
|
||||
}
|
||||
}
|
||||
for (const key of [
|
||||
"ThemeStyle",
|
||||
"ThemeBackground",
|
||||
"ThemeSounds",
|
||||
"EquippedInstrument",
|
||||
"FocusAbility",
|
||||
"ActiveQuest",
|
||||
"SupportedSyndicate",
|
||||
"ActiveAvatarImageType"
|
||||
] as const) {
|
||||
for (const key of ["ThemeStyle", "ThemeBackground", "ThemeSounds", "EquippedInstrument", "FocusAbility"] as const) {
|
||||
if (client[key] !== undefined) {
|
||||
db[key] = client[key];
|
||||
}
|
||||
}
|
||||
for (const key of [
|
||||
"EquippedGear",
|
||||
"EquippedEmotes",
|
||||
"NodeIntrosCompleted",
|
||||
"DeathMarks",
|
||||
"Wishlist",
|
||||
"NemesisAbandonedRewards"
|
||||
] as const) {
|
||||
for (const key of ["EquippedGear", "EquippedEmotes", "NodeIntrosCompleted"] as const) {
|
||||
if (client[key] !== undefined) {
|
||||
db[key] = client[key];
|
||||
}
|
||||
@ -308,77 +242,6 @@ export const importInventory = (db: TInventoryDatabaseDocument, client: Partial<
|
||||
if (client.CustomMarkers !== undefined) {
|
||||
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 => {
|
||||
|
@ -25,7 +25,8 @@ import {
|
||||
ILibraryDailyTaskInfo,
|
||||
ICalendarProgress,
|
||||
IDroneClient,
|
||||
IUpgradeClient
|
||||
IUpgradeClient,
|
||||
ICrewShipWeaponClient
|
||||
} from "@/src/types/inventoryTypes/inventoryTypes";
|
||||
import { IGenericUpdate, IUpdateNodeIntrosResponse } from "../types/genericUpdate";
|
||||
import { IMissionInventoryUpdateRequest, IUpdateChallengeProgressRequest } from "../types/requestTypes";
|
||||
@ -329,19 +330,11 @@ export const addItem = async (
|
||||
}
|
||||
}
|
||||
if (typeName in ExportCustoms) {
|
||||
const meta = ExportCustoms[typeName];
|
||||
let inventoryChanges: IInventoryChanges;
|
||||
if (meta.productCategory == "CrewShipWeaponSkins") {
|
||||
inventoryChanges = addCrewShipWeaponSkin(inventory, typeName);
|
||||
if (ExportCustoms[typeName].productCategory == "CrewShipWeaponSkins") {
|
||||
return addCrewShipWeaponSkin(inventory, typeName);
|
||||
} 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) {
|
||||
return addCustomization(inventory, typeName);
|
||||
@ -433,7 +426,7 @@ export const addItem = async (
|
||||
}
|
||||
if (typeName in ExportRailjackWeapons) {
|
||||
return {
|
||||
...addEquipment(inventory, ExportRailjackWeapons[typeName].productCategory, typeName),
|
||||
...addCrewShipWeapon(inventory, typeName),
|
||||
...occupySlot(inventory, InventorySlot.RJ_COMPONENT_AND_ARMAMENTS, premiumPurchase)
|
||||
};
|
||||
}
|
||||
@ -907,7 +900,8 @@ export const addEquipment = (
|
||||
ItemType: type,
|
||||
Configs: [],
|
||||
XP: 0,
|
||||
ModularParts: modularParts
|
||||
ModularParts: modularParts,
|
||||
IsNew: true
|
||||
},
|
||||
defaultOverwrites
|
||||
);
|
||||
@ -946,6 +940,20 @@ export const addSkin = (
|
||||
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 = (
|
||||
inventory: TInventoryDatabaseDocument,
|
||||
typeName: string,
|
||||
|
@ -11,7 +11,6 @@ import { logger } from "@/src/utils/logger";
|
||||
import { IRngResult, getRandomElement, getRandomReward } from "@/src/services/rngService";
|
||||
import { equipmentKeys, IInventoryDatabase, TEquipmentKey } from "@/src/types/inventoryTypes/inventoryTypes";
|
||||
import {
|
||||
addBooster,
|
||||
addChallenges,
|
||||
addConsumables,
|
||||
addCrewShipAmmo,
|
||||
@ -285,11 +284,6 @@ export const addMissionInventoryUpdates = async (
|
||||
upgrade.UpgradeFingerprint = clientUpgrade.UpgradeFingerprint; // primitive way to copy over the riven challenge progress
|
||||
});
|
||||
break;
|
||||
case "Boosters":
|
||||
value.forEach(booster => {
|
||||
addBooster(booster.ItemType, booster.ExpiryDate, inventory);
|
||||
});
|
||||
break;
|
||||
case "SyndicateId": {
|
||||
inventory.CompletedSyndicates.push(value);
|
||||
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."
|
||||
);
|
||||
}
|
||||
for (let i = 0; i != quantity; ++i) {
|
||||
const disallowedItems = new Set();
|
||||
for (let roll = 0; roll != pack.rarityWeightsPerRoll.length; ) {
|
||||
const weights = pack.rarityWeightsPerRoll[roll];
|
||||
const result = getRandomWeightedRewardUc(pack.components, weights);
|
||||
if (result) {
|
||||
logger.debug(`booster pack rolled`, result);
|
||||
if (disallowedItems.has(result.Item)) {
|
||||
logger.debug(`oops, can't use that one; trying again`);
|
||||
continue;
|
||||
if (typeName == "/Lotus/Types/BoosterPacks/1999StickersPackEchoesArchimedeaFixed") {
|
||||
for (const result of pack.components) {
|
||||
purchaseResponse.BoosterPackItems += toStoreItem(result.Item) + ',{"lvl":0};';
|
||||
combineInventoryChanges(purchaseResponse.InventoryChanges, await addItem(inventory, result.Item, 1));
|
||||
}
|
||||
} else {
|
||||
for (let i = 0; i != quantity; ++i) {
|
||||
for (const weights of pack.rarityWeightsPerRoll) {
|
||||
const result = getRandomWeightedRewardUc(pack.components, weights);
|
||||
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;
|
||||
|
@ -155,7 +155,12 @@ export const handleInventoryItemConfigChange = async (
|
||||
}
|
||||
|
||||
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;
|
||||
|
@ -140,6 +140,7 @@ export interface IEquipmentDatabase {
|
||||
RailjackImage?: IFlavourItem;
|
||||
CrewMembers?: ICrewShipMembersDatabase;
|
||||
Details?: IKubrowPetDetailsDatabase;
|
||||
IsNew?: boolean;
|
||||
_id: Types.ObjectId;
|
||||
}
|
||||
|
||||
|
@ -30,8 +30,9 @@ export interface IInventoryDatabase
|
||||
| "Ships"
|
||||
| "WeaponSkins"
|
||||
| "Upgrades"
|
||||
| "CrewShipWeaponSkins"
|
||||
| "CrewShipSalvagedWeaponSkins"
|
||||
| "CrewShipWeapons"
|
||||
| "CrewShipWeaponSkins"
|
||||
| "AdultOperatorLoadOuts"
|
||||
| "OperatorLoadOuts"
|
||||
| "KahlLoadOuts"
|
||||
@ -43,7 +44,6 @@ export interface IInventoryDatabase
|
||||
| "RecentVendorPurchases"
|
||||
| "NextRefill"
|
||||
| "Nemesis"
|
||||
| "EntratiVaultCountResetDate"
|
||||
| TEquipmentKey
|
||||
>,
|
||||
InventoryDatabaseEquipment {
|
||||
@ -59,8 +59,9 @@ export interface IInventoryDatabase
|
||||
Ships: Types.ObjectId[];
|
||||
WeaponSkins: IWeaponSkinDatabase[];
|
||||
Upgrades: IUpgradeDatabase[];
|
||||
CrewShipWeaponSkins: IUpgradeDatabase[];
|
||||
CrewShipSalvagedWeaponSkins: IUpgradeDatabase[];
|
||||
CrewShipWeapons: ICrewShipWeaponDatabase[];
|
||||
CrewShipWeaponSkins: IUpgradeDatabase[];
|
||||
AdultOperatorLoadOuts: IOperatorConfigDatabase[];
|
||||
OperatorLoadOuts: IOperatorConfigDatabase[];
|
||||
KahlLoadOuts: IOperatorConfigDatabase[];
|
||||
@ -72,7 +73,6 @@ export interface IInventoryDatabase
|
||||
RecentVendorPurchases?: IRecentVendorPurchaseDatabase[];
|
||||
NextRefill?: Date;
|
||||
Nemesis?: INemesisDatabase;
|
||||
EntratiVaultCountResetDate?: Date;
|
||||
}
|
||||
|
||||
export interface IQuestKeyDatabase {
|
||||
@ -112,9 +112,7 @@ export const equipmentKeys = [
|
||||
"DataKnives",
|
||||
"MechSuits",
|
||||
"CrewShipHarnesses",
|
||||
"KubrowPets",
|
||||
"CrewShipWeapons",
|
||||
"CrewShipSalvagedWeapons"
|
||||
"KubrowPets"
|
||||
] as const;
|
||||
|
||||
export type TEquipmentKey = (typeof equipmentKeys)[number];
|
||||
@ -299,8 +297,10 @@ export interface IInventoryClient extends IDailyAffiliations, InventoryClientEqu
|
||||
PersonalTechProjects: IPersonalTechProject[];
|
||||
PlayerSkills: IPlayerSkills;
|
||||
CrewShipAmmo: ITypeCount[];
|
||||
CrewShipWeaponSkins: IUpgradeClient[];
|
||||
CrewShipSalvagedWeaponSkins: IUpgradeClient[];
|
||||
CrewShipWeapons: ICrewShipWeaponClient[];
|
||||
CrewShipSalvagedWeapons: IEquipmentClient[];
|
||||
CrewShipWeaponSkins: IUpgradeClient[];
|
||||
TradeBannedUntil?: IMongoDate;
|
||||
PlayedParkourTutorial: boolean;
|
||||
SubscribedToEmailsPersonalized: number;
|
||||
@ -336,7 +336,7 @@ export interface IInventoryClient extends IDailyAffiliations, InventoryClientEqu
|
||||
CalendarProgress: ICalendarProgress;
|
||||
SongChallenges?: ISongChallenge[];
|
||||
EntratiVaultCountLastPeriod?: number;
|
||||
EntratiVaultCountResetDate?: IMongoDate;
|
||||
EntratiVaultCountResetDate?: Date;
|
||||
EntratiLabConquestUnlocked?: number;
|
||||
EntratiLabConquestHardModeStatus?: number;
|
||||
EntratiLabConquestCacheScoreMission?: number;
|
||||
@ -365,7 +365,6 @@ export interface IAlignment {
|
||||
export interface IBooster {
|
||||
ExpiryDate: number;
|
||||
ItemType: string;
|
||||
UsesRemaining?: number;
|
||||
}
|
||||
|
||||
export interface IChallengeInstanceState {
|
||||
@ -537,6 +536,17 @@ export interface ICrewShipWeapon {
|
||||
PORT_GUNS: ICrewShipPortGuns;
|
||||
}
|
||||
|
||||
// inventory.CrewShipWeapons
|
||||
export interface ICrewShipWeaponClient {
|
||||
ItemType: string;
|
||||
ItemId: IOid;
|
||||
}
|
||||
|
||||
export interface ICrewShipWeaponDatabase {
|
||||
ItemType: string;
|
||||
_id: Types.ObjectId;
|
||||
}
|
||||
|
||||
export interface ICrewShipPilotWeapon {
|
||||
PRIMARY_A: IEquipmentSelection;
|
||||
SECONDARY_A: IEquipmentSelection;
|
||||
|
@ -104,7 +104,6 @@ export type IMissionInventoryUpdateRequest = {
|
||||
}[];
|
||||
DeathMarks?: string[];
|
||||
Nemesis?: number;
|
||||
Boosters?: IBooster[];
|
||||
} & {
|
||||
[K in TEquipmentKey]?: IEquipmentClient[];
|
||||
};
|
||||
|
@ -48,9 +48,9 @@ export interface IItemEntry {
|
||||
[itemId: string]: IConfigEntry;
|
||||
}
|
||||
|
||||
export interface IConfigEntry {
|
||||
[configId: string]: IItemConfig;
|
||||
}
|
||||
export type IConfigEntry = {
|
||||
[configId in "0" | "1" | "2" | "3" | "4" | "5"]: IItemConfig;
|
||||
} & { IsNew?: boolean };
|
||||
|
||||
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