返回提交历史
Modified
.eslintrc
+0
-1
Modified
config.json
+7
-5
Modified
src/controllers/api/deleteSessionController.ts
+1
-1
Modified
src/controllers/api/inventoryController.ts
+22
-4
Modified
src/controllers/api/loginController.ts
+2
-6
Added
src/helpers/inventoryHelpers.ts
+9
-0
Added
src/models/inventoryModel.ts
+258
-0
Added
src/services/inventoryService.ts
+25
-0
Modified
src/services/loginService.ts
+2
-1
Added
src/types/inventoryTypes.ts
+1232
-0
Modified
static/fixed_responses/getShip.json
+10
-2
Added
static/fixed_responses/new_inventory.json
+121
-0
Added
static/fixed_responses/postTutorialInventory.json
+145
-0
XFEstudio/XFESpaceNinjaServer
Inventory Infrastructure and Example for Suits (#10)
b3a5479e
代码差异
13 个文件
+1834
-20
@@ -11,7 +11,6 @@
11
11
"node": true
12
12
},
13
13
"rules": {
14
"@typescript-eslint/no-misused-promises": "off",
15
14
"prettier/prettier": "error",
16
15
"@typescript-eslint/semi": ["error"],
17
16
"@typescript-eslint/explicit-function-return-type": "off",
@@ -1,7 +1,9 @@
1
1
{
2
"autoCreateAccount": true,
3
"buildLabel": "2023.05.25.13.39/oZkc-RIme5c1CCltUfg2gQ",
4
"matchmakingBuildId": "4920386201513015989",
5
"version": "33.0.14",
6
"worldSeed": "GWvLyHiw7/Qr/60056xmAmDrn0Y9et2S3BYlLSkLDNBMtumSr3KxWV8He5Jz72yYq3tsY+cd53QeTf+bb54+llGTbYiQF+64BtiLWMVhWP1IUaP4SxWHXojlpQC13op/udHI1whc+8zrxEzzZmv/QlpvigAAbjBDtwu97Df0vgn+YrOKi4G3OhgIkTRocAAzD1P/BGbT8gaKE01H8rXl3+Gq6jCA1O1v800SL6DwKOgMsXVvWp7g2n/tPxJe/j9bmu4XFG0bSa5y5hikLKxvntA/5ut+iogv4MyMBe+TydVxjPqNbkKnby5l4KAL+3inpuPraeg4jcNMt0AwKG8NIQ=="
2
"autoCreateAccount": true,
3
"buildLabel": "2023.05.25.13.39/oZkc-RIme5c1CCltUfg2gQ",
4
"matchmakingBuildId": "4920386201513015989",
5
"version": "33.0.14",
6
"worldSeed": "GWvLyHiw7/Qr/60056xmAmDrn0Y9et2S3BYlLSkLDNBMtumSr3KxWV8He5Jz72yYq3tsY+cd53QeTf+bb54+llGTbYiQF+64BtiLWMVhWP1IUaP4SxWHXojlpQC13op/udHI1whc+8zrxEzzZmv/QlpvigAAbjBDtwu97Df0vgn+YrOKi4G3OhgIkTRocAAzD1P/BGbT8gaKE01H8rXl3+Gq6jCA1O1v800SL6DwKOgMsXVvWp7g2n/tPxJe/j9bmu4XFG0bSa5y5hikLKxvntA/5ut+iogv4MyMBe+TydVxjPqNbkKnby5l4KAL+3inpuPraeg4jcNMt0AwKG8NIQ==",
7
"skipStoryModeChoice": true,
8
"skipTutorial": true
7
9
}
@@ -1,7 +1,7 @@
1
1
import { RequestHandler } from "express";
2
2
3
3
const deleteSessionController: RequestHandler = (_req, res) => {
4
res.json({ sessionId: { $oid: "64768f104722f795300c9fc0" }, rewardSeed: 5867309943877621023 });
4
res.sendStatus(200);
5
5
};
6
6
7
7
export { deleteSessionController };
@@ -1,11 +1,29 @@
1
import inventory from "@/static/fixed_responses/inventory.json";
1
/* eslint-disable @typescript-eslint/no-misused-promises */
2
import { toInventoryResponse } from "@/src/helpers/inventoryHelpers";
3
import { Inventory } from "@/src/models/inventoryModel";
2
4
import { Request, RequestHandler, Response } from "express";
3
5
4
const inventoryController: RequestHandler = (request: Request, response: Response) => {
5
console.log(request.query);
6
const inventoryController: RequestHandler = async (request: Request, response: Response) => {
6
7
const accountId = request.query.accountId;
8
9
if (!accountId) {
10
response.status(400).json({ error: "accountId was not provided" });
11
return;
12
}
7
13
console.log(accountId);
8
response.json(inventory);
14
15
const inventory = await Inventory.findOne({ accountOwnerId: accountId });
16
17
if (!inventory) {
18
response.status(400).json({ error: "inventory was undefined" });
19
return;
20
}
21
22
const inventoryJSON = inventory.toJSON();
23
24
const inventoreResponse = toInventoryResponse(inventoryJSON);
25
26
response.json(inventoreResponse);
9
27
};
10
28
11
29
export { inventoryController };
@@ -13,11 +13,8 @@ const loginController: RequestHandler = async (request, response) => {
13
13
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-argument
14
14
const body = JSON.parse(request.body); // parse octet stream of json data to json object
15
15
const loginRequest = toLoginRequest(body);
16
// console.log(body);
17
//console.log(String.fromCharCode.apiRouterly(null, req.body));
18
16
19
17
const account = await Account.findOne({ email: loginRequest.email }); //{ _id: 0, __v: 0 }
20
console.log("findone", account);
21
18
22
19
if (!account && config.autoCreateAccount) {
23
20
try {
@@ -32,7 +29,8 @@ const loginController: RequestHandler = async (request, response) => {
32
29
ConsentNeeded: false,
33
30
TrackedSettings: []
34
31
});
35
console.log("CREATED ACCOUNT", newAccount);
32
console.log("creating new account");
33
// eslint-disable-next-line @typescript-eslint/no-unused-vars
36
34
const { email, password, ...databaseAccount } = newAccount;
37
35
const newLoginResponse: ILoginResponse = {
38
36
...databaseAccount,
@@ -47,7 +45,6 @@ const loginController: RequestHandler = async (request, response) => {
47
45
MatchmakingBuildId: config.matchmakingBuildId
48
46
};
49
47
50
console.log(newLoginResponse);
51
48
response.json(newLoginResponse);
52
49
return;
53
50
} catch (error: unknown) {
@@ -77,7 +74,6 @@ const loginController: RequestHandler = async (request, response) => {
77
74
MatchmakingBuildId: config.matchmakingBuildId
78
75
};
79
76
80
console.log("login response", newLoginResponse);
81
77
response.json(newLoginResponse);
82
78
};
83
79
@@ -0,0 +1,9 @@
1
import { IInventoryDatabase, IInventoryResponse } from "@/src/types/inventoryTypes";
2
3
const toInventoryResponse = (inventoryDatabase: IInventoryDatabase): IInventoryResponse => {
4
// eslint-disable-next-line @typescript-eslint/no-unused-vars
5
const { accountOwnerId, ...inventoreResponse } = inventoryDatabase;
6
return inventoreResponse;
7
};
8
9
export { toInventoryResponse };
@@ -0,0 +1,258 @@
1
import { Document, Schema, model } from "mongoose";
2
import { IInventoryDatabase, IInventoryResponse, ISuitDatabase, ISuitDocument, Oid } from "../types/inventoryTypes";
3
4
const polaritySchema = new Schema({
5
Slot: Number,
6
Value: String
7
});
8
9
const abilityOverrideSchema = new Schema({
10
Ability: String,
11
Index: Number
12
});
13
14
const colorSchema = new Schema({
15
t0: Number,
16
t1: Number,
17
t2: Number,
18
t3: Number,
19
en: Number,
20
e1: Number,
21
m0: Number,
22
m1: Number
23
});
24
25
const suitConfigSchema = new Schema({
26
Skins: [String],
27
pricol: colorSchema,
28
attcol: colorSchema,
29
eyecol: colorSchema,
30
sigcol: colorSchema,
31
Upgrades: [String],
32
Songs: [
33
{
34
m: String,
35
b: String,
36
p: String,
37
s: String
38
}
39
],
40
Name: String,
41
AbilityOverride: abilityOverrideSchema,
42
PvpUpgrades: [String],
43
ugly: Boolean
44
});
45
46
suitConfigSchema.set("toJSON", {
47
transform(_document, returnedObject) {
48
delete returnedObject._id;
49
delete returnedObject.__v;
50
}
51
});
52
53
const suitSchema = new Schema({
54
ItemType: String,
55
Configs: [suitConfigSchema],
56
UpgradeVer: Number,
57
XP: Number,
58
InfestationDate: Date,
59
Features: Number,
60
Polarity: [polaritySchema],
61
Polarized: Number,
62
ModSlotPurchases: Number,
63
FocusLens: String,
64
UnlockLevel: Number
65
});
66
67
suitSchema.set("toJSON", {
68
transform(_document, returnedObject: ISuitDocument) {
69
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
70
returnedObject.ItemId = { $oid: returnedObject._id.toString() } satisfies Oid;
71
delete returnedObject._id;
72
delete returnedObject.__v;
73
}
74
});
75
76
const inventorySchema = new Schema({
77
accountOwnerId: Schema.Types.ObjectId,
78
SubscribedToEmails: Number,
79
Created: Schema.Types.Mixed,
80
RewardSeed: Number,
81
RegularCredits: Number,
82
PremiumCredits: Number,
83
PremiumCreditsFree: Number,
84
FusionPoints: Number,
85
SuitBin: Schema.Types.Mixed,
86
WeaponBin: Schema.Types.Mixed,
87
SentinelBin: Schema.Types.Mixed,
88
SpaceSuitBin: Schema.Types.Mixed,
89
SpaceWeaponBin: Schema.Types.Mixed,
90
PvpBonusLoadoutBin: Schema.Types.Mixed,
91
PveBonusLoadoutBin: Schema.Types.Mixed,
92
RandomModBin: Schema.Types.Mixed,
93
TradesRemaining: Number,
94
DailyAffiliation: Number,
95
DailyAffiliationPvp: Number,
96
DailyAffiliationLibrary: Number,
97
DailyFocus: Number,
98
GiftsRemaining: Number,
99
HandlerPoints: Number,
100
MiscItems: [Schema.Types.Mixed],
101
ChallengesFixVersion: Number,
102
ChallengeProgress: [Schema.Types.Mixed],
103
RawUpgrades: [Schema.Types.Mixed],
104
ReceivedStartingGear: Boolean,
105
Suits: [suitSchema],
106
LongGuns: [Schema.Types.Mixed],
107
Pistols: [Schema.Types.Mixed],
108
Melee: [Schema.Types.Mixed],
109
Ships: [Schema.Types.Mixed],
110
QuestKeys: [Schema.Types.Mixed],
111
FlavourItems: [Schema.Types.Mixed],
112
Scoops: [Schema.Types.Mixed],
113
TrainingRetriesLeft: Number,
114
LoadOutPresets: Schema.Types.Mixed,
115
CurrentLoadOutIds: [Schema.Types.Mixed],
116
Missions: [Schema.Types.Mixed],
117
RandomUpgradesIdentified: Number,
118
LastRegionPlayed: String,
119
XPInfo: [Schema.Types.Mixed],
120
Recipes: [Schema.Types.Mixed],
121
WeaponSkins: [Schema.Types.Mixed],
122
PendingRecipes: [Schema.Types.Mixed],
123
TrainingDate: Schema.Types.Mixed,
124
PlayerLevel: Number,
125
Upgrades: [Schema.Types.Mixed],
126
EquippedGear: [String],
127
DeathMarks: [String],
128
FusionTreasures: [Schema.Types.Mixed],
129
WebFlags: Schema.Types.Mixed,
130
CompletedAlerts: [String],
131
Consumables: [Schema.Types.Mixed],
132
LevelKeys: [Schema.Types.Mixed],
133
TauntHistory: [Schema.Types.Mixed],
134
StoryModeChoice: String,
135
PeriodicMissionCompletions: [Schema.Types.Mixed],
136
KubrowPetEggs: [Schema.Types.Mixed],
137
LoreFragmentScans: [Schema.Types.Mixed],
138
EquippedEmotes: [String],
139
PendingTrades: [Schema.Types.Mixed],
140
Boosters: [Schema.Types.Mixed],
141
ActiveDojoColorResearch: String,
142
SentientSpawnChanceBoosters: Schema.Types.Mixed,
143
Affiliations: [Schema.Types.Mixed],
144
QualifyingInvasions: [Schema.Types.Mixed],
145
FactionScores: [Number],
146
SpaceSuits: [Schema.Types.Mixed],
147
SpaceMelee: [Schema.Types.Mixed],
148
SpaceGuns: [Schema.Types.Mixed],
149
ArchwingEnabled: Boolean,
150
PendingSpectreLoadouts: [Schema.Types.Mixed],
151
SpectreLoadouts: [Schema.Types.Mixed],
152
SentinelWeapons: [Schema.Types.Mixed],
153
Sentinels: [Schema.Types.Mixed],
154
EmailItems: [Schema.Types.Mixed],
155
CompletedSyndicates: [String],
156
FocusXP: Schema.Types.Mixed,
157
Wishlist: [String],
158
Alignment: Schema.Types.Mixed,
159
CompletedSorties: [String],
160
LastSortieReward: [Schema.Types.Mixed],
161
Drones: [Schema.Types.Mixed],
162
StepSequencers: [Schema.Types.Mixed],
163
ActiveAvatarImageType: String,
164
KubrowPets: [Schema.Types.Mixed],
165
ShipDecorations: [Schema.Types.Mixed],
166
OperatorAmpBin: Schema.Types.Mixed,
167
DailyAffiliationCetus: Number,
168
DailyAffiliationQuills: Number,
169
DiscoveredMarkers: [Schema.Types.Mixed],
170
CompletedJobs: [Schema.Types.Mixed],
171
FocusAbility: String,
172
FocusUpgrades: [Schema.Types.Mixed],
173
OperatorAmps: [Schema.Types.Mixed],
174
HasContributedToDojo: Boolean,
175
HWIDProtectEnabled: Boolean,
176
KubrowPetPrints: [Schema.Types.Mixed],
177
AlignmentReplay: Schema.Types.Mixed,
178
PersonalGoalProgress: [Schema.Types.Mixed],
179
DailyAffiliationSolaris: Number,
180
SpecialItems: [Schema.Types.Mixed],
181
ThemeStyle: String,
182
ThemeBackground: String,
183
ThemeSounds: String,
184
BountyScore: Number,
185
ChallengeInstanceStates: [Schema.Types.Mixed],
186
LoginMilestoneRewards: [String],
187
OperatorLoadOuts: [Schema.Types.Mixed],
188
DailyAffiliationVentkids: Number,
189
DailyAffiliationVox: Number,
190
RecentVendorPurchases: [Schema.Types.Mixed],
191
Hoverboards: [Schema.Types.Mixed],
192
NodeIntrosCompleted: [String],
193
CompletedJobChains: [Schema.Types.Mixed],
194
SeasonChallengeHistory: [Schema.Types.Mixed],
195
MoaPets: [Schema.Types.Mixed],
196
EquippedInstrument: String,
197
InvasionChainProgress: [Schema.Types.Mixed],
198
DataKnives: [Schema.Types.Mixed],
199
NemesisHistory: [Schema.Types.Mixed],
200
LastNemesisAllySpawnTime: Schema.Types.Mixed,
201
Settings: Schema.Types.Mixed,
202
PersonalTechProjects: [Schema.Types.Mixed],
203
CrewShips: [Schema.Types.Mixed],
204
CrewShipSalvageBin: Schema.Types.Mixed,
205
PlayerSkills: Schema.Types.Mixed,
206
CrewShipAmmo: [Schema.Types.Mixed],
207
CrewShipSalvagedWeaponSkins: [Schema.Types.Mixed],
208
CrewShipWeapons: [Schema.Types.Mixed],
209
CrewShipSalvagedWeapons: [Schema.Types.Mixed],
210
CrewShipWeaponSkins: [Schema.Types.Mixed],
211
TradeBannedUntil: Schema.Types.Mixed,
212
PlayedParkourTutorial: Boolean,
213
SubscribedToEmailsPersonalized: Number,
214
MechBin: Schema.Types.Mixed,
215
DailyAffiliationEntrati: Number,
216
DailyAffiliationNecraloid: Number,
217
MechSuits: [Schema.Types.Mixed],
218
InfestedFoundry: Schema.Types.Mixed,
219
BlessingCooldown: Schema.Types.Mixed,
220
CrewMemberBin: Schema.Types.Mixed,
221
CrewShipHarnesses: [Schema.Types.Mixed],
222
CrewShipRawSalvage: [Schema.Types.Mixed],
223
CrewMembers: [Schema.Types.Mixed],
224
AdultOperatorLoadOuts: [Schema.Types.Mixed],
225
LotusCustomization: Schema.Types.Mixed,
226
UseAdultOperatorLoadout: Boolean,
227
DailyAffiliationZariman: Number,
228
NemesisAbandonedRewards: [String],
229
DailyAffiliationKahl: Number,
230
LastInventorySync: Schema.Types.Mixed,
231
NextRefill: Schema.Types.Mixed,
232
ActiveLandscapeTraps: [Schema.Types.Mixed],
233
EvolutionProgress: [Schema.Types.Mixed],
234
RepVotes: [Schema.Types.Mixed],
235
LeagueTickets: [Schema.Types.Mixed],
236
Quests: [Schema.Types.Mixed],
237
Robotics: [Schema.Types.Mixed],
238
UsedDailyDeals: [Schema.Types.Mixed],
239
LibraryPersonalProgress: [Schema.Types.Mixed],
240
CollectibleSeries: [Schema.Types.Mixed],
241
LibraryAvailableDailyTaskInfo: Schema.Types.Mixed,
242
HasResetAccount: Boolean,
243
PendingCoupon: Schema.Types.Mixed,
244
Harvestable: Boolean,
245
DeathSquadable: Boolean
246
});
247
248
inventorySchema.set("toJSON", {
249
transform(_document, returnedObject: ISuitDocument) {
250
delete returnedObject._id;
251
delete returnedObject.__v;
252
}
253
});
254
255
const Suit = model<ISuitDatabase>("Suit", suitSchema);
256
const Inventory = model<IInventoryDatabase>("Inventory", inventorySchema);
257
258
export { Inventory, Suit };
@@ -0,0 +1,25 @@
1
import { Inventory } from "@/src/models/inventoryModel";
2
import new_inventory from "@/static/fixed_responses/postTutorialInventory.json";
3
import config from "@/config.json";
4
import { Types } from "mongoose";
5
6
const createInventory = async (accountOwnerId: Types.ObjectId) => {
7
try {
8
const inventory = new Inventory({ ...new_inventory, accountOwnerId: accountOwnerId });
9
if (config.skipStoryModeChoice) {
10
inventory.StoryModeChoice = "WARFRAME";
11
}
12
if (config.skipTutorial) {
13
inventory.PlayedParkourTutorial = true;
14
inventory.ReceivedStartingGear = true;
15
}
16
await inventory.save();
17
} catch (error) {
18
if (error instanceof Error) {
19
throw new Error(`error creating inventory" ${error.message}`);
20
}
21
throw new Error("error creating inventory that is not of instance Error");
22
}
23
};
24
25
export { createInventory };
@@ -1,4 +1,5 @@
1
1
import { Account } from "@/src/models/loginModel";
2
import { createInventory } from "@/src/services/inventoryService";
2
3
import { IDatabaseAccount } from "@/src/types/loginTypes";
3
4
4
5
const isCorrectPassword = (requestPassword: string, databasePassword: string): boolean => {
@@ -6,10 +7,10 @@ const isCorrectPassword = (requestPassword: string, databasePassword: string): b
6
7
};
7
8
8
9
const createAccount = async (accountData: IDatabaseAccount) => {
9
console.log("test", accountData);
10
10
const account = new Account(accountData);
11
11
try {
12
12
await account.save();
13
await createInventory(account._id);
13
14
return account.toJSON();
14
15
} catch (error) {
15
16
if (error instanceof Error) {
@@ -1,5 +1,5 @@
1
1
{
2
"ShipOwnerId": "removed",
2
"ShipOwnerId": "647bce8a1caba352f90b6a09",
3
3
"Ship": {
4
4
"Rooms": [
5
5
{ "Name": "AlchemyRoom", "MaxCapacity": 1600 },
@@ -9,7 +9,15 @@
9
9
{ "Name": "OutsideRoom", "MaxCapacity": 1600 },
10
10
{ "Name": "PersonalQuartersRoom", "MaxCapacity": 1600 }
11
11
],
12
"ContentUrlSignature": "removed"
12
"ContentUrlSignature": "removed",
13
"Features": [
14
"/Lotus/Types/Items/ShipFeatureItems/EarthNavigationFeatureItem",
15
"/Lotus/Types/Items/ShipFeatureItems/ArsenalFeatureItem",
16
"/Lotus/Types/Items/ShipFeatureItems/SocialMenuFeatureItem",
17
"/Lotus/Types/Items/ShipFeatureItems/ModsFeatureItem",
18
"/Lotus/Types/Items/ShipFeatureItems/FoundryFeatureItem",
19
"/Lotus/Types/Items/ShipFeatureItems/MercuryNavigationFeatureItem"
20
]
13
21
},
14
22
"Apartment": {
15
23
"Rooms": [
@@ -0,0 +1,121 @@
1
{
2
"SubscribedToEmails": 0,
3
"Created": { "$date": { "$numberLong": "1685829131" } },
4
"SubscribedToEmailsPersonalized": 0,
5
"RewardSeed": -5604904486637265640,
6
"CrewMemberBin": { "Slots": 3 },
7
"CrewShipSalvageBin": { "Slots": 8 },
8
"DrifterMelee": [{ "ItemType": "/Lotus/Types/Friendly/PlayerControllable/Weapons/DuviriDualSwords", "ItemId": { "$oid": "647bb619e15fa43f0ee4b1b1" } }],
9
"FusionPoints": 0,
10
"MechBin": { "Slots": 4 },
11
"OperatorAmpBin": { "Slots": 8 },
12
"PveBonusLoadoutBin": { "Slots": 0 },
13
"PvpBonusLoadoutBin": { "Slots": 0 },
14
"RandomModBin": { "Slots": 15 },
15
"RegularCredits": 0,
16
"SentinelBin": { "Slots": 10 },
17
"SpaceSuitBin": { "Slots": 4 },
18
"SpaceWeaponBin": { "Slots": 4 },
19
"SuitBin": { "Slots": 2 },
20
"WeaponBin": { "Slots": 8 },
21
"LastInventorySync": { "$oid": "647bb5d79f963c9d24668257" },
22
"NextRefill": { "$date": { "$numberLong": "1685829131" } },
23
"ActiveLandscapeTraps": [],
24
"ChallengeProgress": [],
25
"CrewMembers": [],
26
"CrewShips": [],
27
"CrewShipHarnesses": [],
28
"CrewShipSalvagedWeapons": [],
29
"CrewShipSalvagedWeaponSkins": [],
30
"CrewShipWeapons": [],
31
"CrewShipWeaponSkins": [],
32
"DataKnives": [],
33
"DrifterGuns": [],
34
"Drones": [],
35
"Horses": [],
36
"Hoverboards": [],
37
"KubrowPets": [],
38
"KubrowPetEggs": [],
39
"KubrowPetPrints": [],
40
"LongGuns": [],
41
"MechSuits": [],
42
"Melee": [],
43
"MoaPets": [],
44
"OperatorAmps": [],
45
"OperatorLoadOuts": [],
46
"AdultOperatorLoadOuts": [],
47
"KahlLoadOuts": [],
48
"PendingRecipes": [],
49
"PersonalGoalProgress": [],
50
"PersonalTechProjects": [],
51
"Pistols": [],
52
"QualifyingInvasions": [],
53
"RepVotes": [],
54
"Scoops": [],
55
"Sentinels": [],
56
"SentinelWeapons": [],
57
"Ships": [],
58
"SpaceGuns": [],
59
"SpaceMelee": [],
60
"SpaceSuits": [],
61
"SpecialItems": [],
62
"StepSequencers": [],
63
"Suits": [],
64
"Upgrades": [],
65
"WeaponSkins": [],
66
"Boosters": [],
67
"Consumables": [],
68
"EmailItems": [],
69
"FlavourItems": [],
70
"FocusUpgrades": [],
71
"FusionTreasures": [],
72
"LeagueTickets": [],
73
"LevelKeys": [],
74
"LoreFragmentScans": [],
75
"MiscItems": [],
76
"PendingSpectreLoadouts": [],
77
"Quests": [],
78
"QuestKeys": [],
79
"RawUpgrades": [],
80
"Recipes": [],
81
"Robotics": [],
82
"ShipDecorations": [],
83
"SpectreLoadouts": [],
84
"XPInfo": [],
85
"CrewShipAmmo": [],
86
"CrewShipRawSalvage": [],
87
"EvolutionProgress": [],
88
"Missions": [],
89
"TauntHistory": [],
90
"CompletedSyndicates": [],
91
"UsedDailyDeals": [],
92
"DailyAffiliation": 16000,
93
"DailyAffiliationPvp": 16000,
94
"DailyAffiliationLibrary": 16000,
95
"DailyAffiliationCetus": 16000,
96
"DailyAffiliationQuills": 16000,
97
"DailyAffiliationSolaris": 16000,
98
"DailyAffiliationVentkids": 16000,
99
"DailyAffiliationVox": 16000,
100
"DailyAffiliationEntrati": 16000,
101
"DailyAffiliationNecraloid": 16000,
102
"DailyAffiliationZariman": 16000,
103
"DailyAffiliationKahl": 16000,
104
"DailyFocus": 250000,
105
"GiftsRemaining": 8,
106
"LibraryAvailableDailyTaskInfo": {
107
"EnemyTypes": ["/Lotus/Types/Enemies/Orokin/OrokinBladeSawmanAvatar"],
108
"EnemyLocTag": "/Lotus/Language/Game/OrokinBladeSawman",
109
"EnemyIcon": "/Lotus/Interface/Icons/Npcs/Orokin/OrokinBladeSawman.png",
110
"ScansRequired": 4,
111
"RewardStoreItem": "/Lotus/StoreItems/Upgrades/Mods/FusionBundles/UncommonFusionBundle",
112
"RewardQuantity": 10,
113
"RewardStanding": 10000
114
},
115
"DuviriInfo": { "Seed": 5898912197983600352, "NumCompletions": 0 },
116
"TradesRemaining": 0,
117
"HasContributedToDojo": false,
118
"HasResetAccount": false,
119
"PendingCoupon": { "Expiry": { "$date": { "$numberLong": "0" } }, "Discount": 0 },
120
"PremiumCreditsFree": 0
121
}
@@ -0,0 +1,145 @@
1
{
2
"SubscribedToEmails": 0,
3
"Created": { "$date": { "$numberLong": "1685829131" } },
4
"SubscribedToEmailsPersonalized": 0,
5
"RewardSeed": -5604904486637265640,
6
"CrewMemberBin": { "Slots": 3 },
7
"CrewShipSalvageBin": { "Slots": 8 },
8
"DrifterMelee": [{ "ItemType": "/Lotus/Types/Friendly/PlayerControllable/Weapons/DuviriDualSwords", "ItemId": { "$oid": "647bd268c547fe5b2909e715" } }],
9
"FusionPoints": 0,
10
"MechBin": { "Slots": 4 },
11
"OperatorAmpBin": { "Slots": 8 },
12
"PveBonusLoadoutBin": { "Slots": 0 },
13
"PvpBonusLoadoutBin": { "Slots": 0 },
14
"RandomModBin": { "Slots": 15 },
15
"RegularCredits": 3000,
16
"SentinelBin": { "Slots": 10 },
17
"SpaceSuitBin": { "Slots": 4 },
18
"SpaceWeaponBin": { "Slots": 4 },
19
"SuitBin": { "Slots": 1 },
20
"WeaponBin": { "Slots": 5 },
21
"DailyAffiliation": 16000,
22
"DailyAffiliationCetus": 16000,
23
"DailyAffiliationEntrati": 16000,
24
"DailyAffiliationKahl": 16000,
25
"DailyAffiliationLibrary": 16000,
26
"DailyAffiliationNecraloid": 16000,
27
"DailyAffiliationPvp": 16000,
28
"DailyAffiliationQuills": 16000,
29
"DailyAffiliationSolaris": 16000,
30
"DailyAffiliationVentkids": 16000,
31
"DailyAffiliationVox": 16000,
32
"DailyAffiliationZariman": 16000,
33
"DailyFocus": 250000,
34
"DuviriInfo": { "Seed": 5898912197983600352, "NumCompletions": 0 },
35
"GiftsRemaining": 8,
36
"TradesRemaining": 0,
37
"Recipes": [{ "ItemCount": 1, "ItemType": "/Lotus/Types/Recipes/Weapons/BoltonfaBlueprint" }],
38
"SeasonChallengeHistory": [
39
{ "challenge": "SeasonDailySolveCiphers", "id": "001000220000000000000308" },
40
{ "challenge": "SeasonDailyVisitFeaturedDojo", "id": "001000230000000000000316" },
41
{ "challenge": "SeasonDailyKillEnemiesWithRadiation", "id": "001000230000000000000317" },
42
{ "challenge": "SeasonWeeklyCompleteSortie", "id": "001000230000000000000309" },
43
{ "challenge": "SeasonWeeklyVenusBounties", "id": "001000230000000000000310" },
44
{ "challenge": "SeasonWeeklyZarimanBountyHunter", "id": "001000230000000000000311" },
45
{ "challenge": "SeasonWeeklyCatchRarePlainsFish", "id": "001000230000000000000312" },
46
{ "challenge": "SeasonWeeklyKillArchgunEnemies", "id": "001000230000000000000313" },
47
{ "challenge": "SeasonWeeklyHardKillSilverGroveSpecters", "id": "001000230000000000000314" },
48
{ "challenge": "SeasonWeeklyHardKillRopalolyst", "id": "001000230000000000000315" }
49
],
50
"StoryModeChoice": "WARFRAME",
51
"ChallengeProgress": [{ "Progress": 2, "Name": "EMGetKills" }],
52
"ChallengesFixVersion": 6,
53
"ActiveQuest": "/Lotus/Types/Keys/VorsPrize/VorsPrizeQuestKeyChain",
54
"Consumables": [{ "ItemCount": 1, "ItemType": "/Lotus/Types/Restoratives/LisetAutoHack" }],
55
"DataKnives": [{ "ItemType": "/Lotus/Weapons/Tenno/HackingDevices/TnHackingDevice/TnHackingDeviceWeapon", "XP": 450000, "ItemId": { "$oid": "647bd274f22fc794a2cd3d33" } }],
56
"FlavourItems": [
57
{ "ItemType": "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem1" },
58
{ "ItemType": "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem2" },
59
{ "ItemType": "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem3" },
60
{ "ItemType": "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem4" }
61
],
62
"LongGuns": [{ "ItemType": "/Lotus/Weapons/MK1Series/MK1Paris", "XP": 0, "Configs": [{}, {}, {}], "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }],
63
"Melee": [{ "ItemType": "/Lotus/Weapons/Tenno/Melee/LongSword/LongSword", "XP": 0, "Configs": [{}, {}, {}], "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }],
64
"Pistols": [{ "ItemType": "/Lotus/Weapons/MK1Series/MK1Kunai", "XP": 0, "Configs": [{}, {}, {}], "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }],
65
"PlayedParkourTutorial": true,
66
"PremiumCreditsFree": 50,
67
"QuestKeys": [{ "ItemType": "/Lotus/Types/Keys/VorsPrize/VorsPrizeQuestKeyChain" }],
68
"RawUpgrades": [{ "ItemCount": 1, "LastAdded": { "$oid": "6450f9bfe0714a4d6703f05f" }, "ItemType": "/Lotus/Upgrades/Mods/Warframe/AvatarShieldMaxMod" }],
69
"ReceivedStartingGear": true,
70
"Scoops": [{ "ItemType": "/Lotus/Weapons/Tenno/Speedball/SpeedballWeaponTest", "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }],
71
"Ships": [{ "ItemType": "/Lotus/Types/Items/Ships/DefaultShip", "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }],
72
"Suits": [{ "ItemType": "/Lotus/Powersuits/Volt/Volt", "XP": 0, "Configs": [{}, {}, {}], "UpgradeVer": 101, "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }],
73
"TrainingRetriesLeft": 0,
74
"WeaponSkins": [{ "ItemType": "/Lotus/Upgrades/Skins/Volt/VoltHelmet", "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }],
75
"LastInventorySync": { "$oid": "647bd27cf856530b4f3bf343" },
76
"NextRefill": { "$date": { "$numberLong": "1685829131" } },
77
"ActiveLandscapeTraps": [],
78
"CrewMembers": [],
79
"CrewShips": [],
80
"CrewShipHarnesses": [],
81
"CrewShipSalvagedWeapons": [],
82
"CrewShipSalvagedWeaponSkins": [],
83
"CrewShipWeapons": [],
84
"CrewShipWeaponSkins": [],
85
"DrifterGuns": [],
86
"Drones": [],
87
"Horses": [],
88
"Hoverboards": [],
89
"KubrowPets": [],
90
"KubrowPetEggs": [],
91
"KubrowPetPrints": [],
92
"MechSuits": [],
93
"MoaPets": [],
94
"OperatorAmps": [],
95
"OperatorLoadOuts": [],
96
"AdultOperatorLoadOuts": [],
97
"KahlLoadOuts": [],
98
"PendingRecipes": [],
99
"PersonalGoalProgress": [],
100
"PersonalTechProjects": [],
101
"QualifyingInvasions": [],
102
"RepVotes": [],
103
"Sentinels": [],
104
"SentinelWeapons": [],
105
"SpaceGuns": [],
106
"SpaceMelee": [],
107
"SpaceSuits": [],
108
"SpecialItems": [],
109
"StepSequencers": [],
110
"Upgrades": [],
111
"Boosters": [],
112
"EmailItems": [],
113
"FocusUpgrades": [],
114
"FusionTreasures": [],
115
"LeagueTickets": [],
116
"LevelKeys": [],
117
"LoreFragmentScans": [],
118
"MiscItems": [],
119
"PendingSpectreLoadouts": [],
120
"Quests": [],
121
"Robotics": [],
122
"ShipDecorations": [],
123
"SpectreLoadouts": [],
124
"XPInfo": [],
125
"CrewShipAmmo": [],
126
"CrewShipRawSalvage": [],
127
"EvolutionProgress": [],
128
"Missions": [],
129
"TauntHistory": [],
130
"CompletedSyndicates": [],
131
"UsedDailyDeals": [],
132
"LibraryAvailableDailyTaskInfo": {
133
"EnemyTypes": ["/Lotus/Types/Enemies/Orokin/OrokinBladeSawmanAvatar"],
134
"EnemyLocTag": "/Lotus/Language/Game/OrokinBladeSawman",
135
"EnemyIcon": "/Lotus/Interface/Icons/Npcs/Orokin/OrokinBladeSawman.png",
136
"ScansRequired": 4,
137
"RewardStoreItem": "/Lotus/StoreItems/Upgrades/Mods/FusionBundles/UncommonFusionBundle",
138
"RewardQuantity": 10,
139
"RewardStanding": 10000
140
},
141
"HasContributedToDojo": false,
142
"HasResetAccount": false,
143
"PendingCoupon": { "Expiry": { "$date": { "$numberLong": "0" } }, "Discount": 0 },
144
"PremiumCredits": 50
145
}