XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFESpaceNinjaServer

fix: more accurate inventory after skipTutorial (#755)

10100ae2
AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com>
提交于

代码差异

11 个文件 +183 -502
Modified src/models/inventoryModels/inventoryModel.ts +29 -29
@@ -776,7 +776,7 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
776 776 RewardSeed: Number,
777 777
778 778 //Credit
779 RegularCredits: { type: Number, default: 3000 },
779 RegularCredits: { type: Number, default: 0 },
780 780 //Platinum
781 781 PremiumCredits: { type: Number, default: 50 },
782 782 //Gift Platinum(Non trade)
@@ -787,18 +787,18 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
787 787 PrimeTokens: { type: Number, default: 0 },
788 788
789 789 //Slots
790 SuitBin: slotsBinSchema,
791 WeaponBin: slotsBinSchema,
792 SentinelBin: slotsBinSchema,
793 SpaceSuitBin: slotsBinSchema,
794 SpaceWeaponBin: slotsBinSchema,
795 PvpBonusLoadoutBin: slotsBinSchema,
796 PveBonusLoadoutBin: slotsBinSchema,
797 RandomModBin: slotsBinSchema,
798 OperatorAmpBin: slotsBinSchema,
799 CrewShipSalvageBin: slotsBinSchema,
800 MechBin: slotsBinSchema,
801 CrewMemberBin: slotsBinSchema,
790 SuitBin: { type: slotsBinSchema, default: { Slots: 3 } },
791 WeaponBin: { type: slotsBinSchema, default: { Slots: 10 } },
792 SentinelBin: { type: slotsBinSchema, default: { Slots: 10 } },
793 SpaceSuitBin: { type: slotsBinSchema, default: { Slots: 4 } },
794 SpaceWeaponBin: { type: slotsBinSchema, default: { Slots: 4 } },
795 PvpBonusLoadoutBin: { type: slotsBinSchema, default: { Slots: 0 } },
796 PveBonusLoadoutBin: { type: slotsBinSchema, default: { Slots: 0 } },
797 RandomModBin: { type: slotsBinSchema, default: { Slots: 15 } },
798 OperatorAmpBin: { type: slotsBinSchema, default: { Slots: 8 } },
799 CrewShipSalvageBin: { type: slotsBinSchema, default: { Slots: 8 } },
800 MechBin: { type: slotsBinSchema, default: { Slots: 4 } },
801 CrewMemberBin: { type: slotsBinSchema, default: { Slots: 3 } },
802 802
803 803 //How many trades do you have left
804 804 TradesRemaining: { type: Number, default: 0 },
@@ -814,20 +814,20 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
814 814 //Syndicates Missions complate(Navigation->Syndicate)
815 815 CompletedSyndicates: [String],
816 816 //Daily Syndicates Exp
817 DailyAffiliation: { type: Number, default: 0 },
818 DailyAffiliationPvp: { type: Number, default: 0 },
819 DailyAffiliationLibrary: { type: Number, default: 0 },
820 DailyAffiliationCetus: { type: Number, default: 0 },
821 DailyAffiliationQuills: { type: Number, default: 0 },
822 DailyAffiliationSolaris: { type: Number, default: 0 },
823 DailyAffiliationVentkids: { type: Number, default: 0 },
824 DailyAffiliationVox: { type: Number, default: 0 },
825 DailyAffiliationEntrati: { type: Number, default: 0 },
826 DailyAffiliationNecraloid: { type: Number, default: 0 },
827 DailyAffiliationZariman: { type: Number, default: 0 },
828 DailyAffiliationKahl: { type: Number, default: 0 },
829 DailyAffiliationCavia: { type: Number, default: 0 },
830 DailyAffiliationHex: { type: Number, default: 0 },
817 DailyAffiliation: { type: Number, default: 16000 },
818 DailyAffiliationPvp: { type: Number, default: 16000 },
819 DailyAffiliationLibrary: { type: Number, default: 16000 },
820 DailyAffiliationCetus: { type: Number, default: 16000 },
821 DailyAffiliationQuills: { type: Number, default: 16000 },
822 DailyAffiliationSolaris: { type: Number, default: 16000 },
823 DailyAffiliationVentkids: { type: Number, default: 16000 },
824 DailyAffiliationVox: { type: Number, default: 16000 },
825 DailyAffiliationEntrati: { type: Number, default: 16000 },
826 DailyAffiliationNecraloid: { type: Number, default: 16000 },
827 DailyAffiliationZariman: { type: Number, default: 16000 },
828 DailyAffiliationKahl: { type: Number, default: 16000 },
829 DailyAffiliationCavia: { type: Number, default: 16000 },
830 DailyAffiliationHex: { type: Number, default: 16000 },
831 831
832 832 //Daily Focus limit
833 833 DailyFocus: { type: Number, default: 250000 },
@@ -948,7 +948,7 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
948 948 //Item Mastery Rank exp
949 949 XPInfo: [TypeXPItemSchema],
950 950 //Mastery Rank next availability
951 TrainingDate: Date,
951 TrainingDate: { type: Date, default: new Date(0) },
952 952 //Retries rank up(3 time)
953 953 TrainingRetriesLeft: Number,
954 954
@@ -974,7 +974,7 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
974 974 CompletedAlerts: [String],
975 975
976 976 //Warframe\Duviri
977 StoryModeChoice: String,
977 StoryModeChoice: { type: String, default: "WARFRAME" },
978 978
979 979 //Alert->Kuva Siphon
980 980 PeriodicMissionCompletions: [periodicMissionCompletionsSchema],
Modified src/models/personalRoomsModel.ts +28 -15
@@ -74,16 +74,38 @@ const apartmentSchema = new Schema<IApartment>(
74 74 },
75 75 { _id: false }
76 76 );
77 const apartmentDefault: IApartment = {
78 Rooms: [
79 { Name: "ElevatorLanding", MaxCapacity: 1600 },
80 { Name: "ApartmentRoomA", MaxCapacity: 1000 },
81 { Name: "ApartmentRoomB", MaxCapacity: 1600 },
82 { Name: "ApartmentRoomC", MaxCapacity: 1600 },
83 { Name: "DuviriHallway", MaxCapacity: 1600 }
84 ],
85 FavouriteLoadouts: [],
86 Gardening: {}
87 };
77 88
78 89 const orbiterSchema = new Schema<IOrbiter>(
79 90 {
80 91 Features: [String],
81 92 Rooms: [roomSchema],
82 ContentUrlSignature: String,
93 ContentUrlSignature: { type: String, required: false },
83 94 BootLocation: String
84 95 },
85 96 { _id: false }
86 97 );
98 const orbiterDefault: IOrbiter = {
99 Features: [],
100 Rooms: [
101 { Name: "AlchemyRoom", MaxCapacity: 1600 },
102 { Name: "BridgeRoom", MaxCapacity: 1600 },
103 { Name: "LisetRoom", MaxCapacity: 1000 },
104 { Name: "OperatorChamberRoom", MaxCapacity: 1600 },
105 { Name: "OutsideRoom", MaxCapacity: 1600 },
106 { Name: "PersonalQuartersRoom", MaxCapacity: 1600 }
107 ]
108 };
87 109
88 110 const favouriteLoadoutSchema = new Schema<IFavouriteLoadoutDatabase>(
89 111 {
@@ -114,18 +136,9 @@ const tailorShopDefault: ITailorShopDatabase = {
114 136 CustomJson: "{}",
115 137 LevelDecosVisible: true,
116 138 Rooms: [
117 {
118 Name: "LabRoom",
119 MaxCapacity: 4000
120 },
121 {
122 Name: "LivingQuartersRoom",
123 MaxCapacity: 3000
124 },
125 {
126 Name: "HelminthRoom",
127 MaxCapacity: 2000
128 }
139 { Name: "LabRoom", MaxCapacity: 4000 },
140 { Name: "LivingQuartersRoom", MaxCapacity: 3000 },
141 { Name: "HelminthRoom", MaxCapacity: 2000 }
129 142 ]
130 143 };
131 144
@@ -133,8 +146,8 @@ export const personalRoomsSchema = new Schema<IPersonalRoomsDatabase>({
133 146 personalRoomsOwnerId: Schema.Types.ObjectId,
134 147 activeShipId: Schema.Types.ObjectId,
135 148 ShipInteriorColors: colorSchema,
136 Ship: orbiterSchema,
137 Apartment: apartmentSchema,
149 Ship: { type: orbiterSchema, default: orbiterDefault },
150 Apartment: { type: apartmentSchema, default: apartmentDefault },
138 151 TailorShop: { type: tailorShopSchema, default: tailorShopDefault }
139 152 });
140 153
Modified src/services/inventoryService.ts +82 -18
@@ -1,5 +1,4 @@
1 1 import { Inventory, TInventoryDatabaseDocument } from "@/src/models/inventoryModels/inventoryModel";
2 import postTutorialInventory from "@/static/fixed_responses/postTutorialInventory.json";
3 2 import { config } from "@/src/services/configService";
4 3 import { Types } from "mongoose";
5 4 import { SlotNames, IInventoryChanges, IBinChanges, ICurrencyChanges } from "@/src/types/purchaseTypes";
@@ -46,25 +45,90 @@ export const createInventory = async (
46 45 defaultItemReferences: { loadOutPresetId: Types.ObjectId; ship: Types.ObjectId }
47 46 ): Promise<void> => {
48 47 try {
49 const inventory = config.skipTutorial
50 ? new Inventory({
51 accountOwnerId: accountOwnerId,
52 LoadOutPresets: defaultItemReferences.loadOutPresetId,
53 Ships: [defaultItemReferences.ship],
54 ...postTutorialInventory
55 })
56 : new Inventory({
57 accountOwnerId: accountOwnerId,
58 LoadOutPresets: defaultItemReferences.loadOutPresetId,
59 Ships: [defaultItemReferences.ship],
60 TrainingDate: 0
61 });
48 const inventory = new Inventory({
49 accountOwnerId: accountOwnerId,
50 LoadOutPresets: defaultItemReferences.loadOutPresetId,
51 Ships: [defaultItemReferences.ship],
52 PlayedParkourTutorial: config.skipTutorial,
53 ReceivedStartingGear: config.skipTutorial
54 });
55
56 if (config.skipTutorial) {
57 const defaultEquipment = [
58 // Awakening rewards
59 { ItemCount: 1, ItemType: "/Lotus/Powersuits/Excalibur/Excalibur" },
60 { ItemCount: 1, ItemType: "/Lotus/Weapons/Tenno/Melee/LongSword/LongSword" },
61 { ItemCount: 1, ItemType: "/Lotus/Weapons/Tenno/Pistol/Pistol" },
62 { ItemCount: 1, ItemType: "/Lotus/Weapons/Tenno/Rifle/Rifle" },
63 { ItemCount: 1, ItemType: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem1" },
64 { ItemCount: 1, ItemType: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem2" },
65 { ItemCount: 1, ItemType: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem3" },
66 { ItemCount: 1, ItemType: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem4" },
67 { ItemCount: 1, ItemType: "/Lotus/Types/Restoratives/LisetAutoHack" },
68
69 // Vor's Prize rewards
70 { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Warframe/AvatarHealthMaxMod" },
71 { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Warframe/AvatarShieldMaxMod" },
72 { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Warframe/AvatarAbilityRangeMod" },
73 { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Warframe/AvatarAbilityStrengthMod" },
74 { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Warframe/AvatarAbilityDurationMod" },
75 { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Warframe/AvatarPickupBonusMod" },
76 { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Warframe/AvatarPowerMaxMod" },
77 { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Warframe/AvatarEnemyRadarMod" },
78 { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Melee/WeaponFireRateMod" },
79 { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Melee/WeaponMeleeDamageMod" },
80 { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Rifle/WeaponFactionDamageCorpus" },
81 { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Rifle/WeaponFactionDamageGrineer" },
82 { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Rifle/WeaponDamageAmountMod" },
83 { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Pistol/WeaponFireDamageMod" },
84 { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Pistol/WeaponElectricityDamageMod" },
85 { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Pistol/WeaponDamageAmountMod" },
86 { ItemCount: 1, ItemType: "/Lotus/Types/Recipes/Weapons/BurstonRifleBlueprint" },
87 { ItemCount: 1, ItemType: "/Lotus/Types/Items/MiscItems/Morphic" },
88 { ItemCount: 400, ItemType: "/Lotus/Types/Items/MiscItems/PolymerBundle" },
89 { ItemCount: 150, ItemType: "/Lotus/Types/Items/MiscItems/AlloyPlate" }
90 ];
91
92 for (const equipment of defaultEquipment) {
93 await addItem(inventory, equipment.ItemType, equipment.ItemCount);
94 }
95
96 // Missing in Public Export
97 inventory.Horses.push({
98 ItemType: "/Lotus/Types/NeutralCreatures/ErsatzHorse/ErsatzHorsePowerSuit"
99 });
100 inventory.DataKnives.push({
101 ItemType: "/Lotus/Weapons/Tenno/HackingDevices/TnHackingDevice/TnHackingDeviceWeapon",
102 XP: 450000
103 });
104 inventory.Scoops.push({
105 ItemType: "/Lotus/Weapons/Tenno/Speedball/SpeedballWeaponTest"
106 });
107 inventory.DrifterMelee.push({
108 ItemType: "/Lotus/Types/Friendly/PlayerControllable/Weapons/DuviriDualSwords"
109 });
110
111 inventory.QuestKeys.push({
112 Completed: true,
113 ItemType: "/Lotus/Types/Keys/VorsPrize/VorsPrizeQuestKeyChain"
114 });
115
116 const completedMissions = ["SolNode27", "SolNode89", "SolNode63", "SolNode85", "SolNode15", "SolNode79"];
117
118 inventory.Missions.push(
119 ...completedMissions.map(tag => ({
120 Completes: 1,
121 Tag: tag
122 }))
123 );
124
125 inventory.RegularCredits = 25000;
126 inventory.FusionPoints = 180;
127 }
128
62 129 await inventory.save();
63 130 } catch (error) {
64 if (error instanceof Error) {
65 throw new Error(`error creating inventory" ${error.message}`);
66 }
67 throw new Error("error creating inventory that is not of instance Error");
131 throw new Error(`Error creating inventory: ${error instanceof Error ? error.message : "Unknown error"}`);
68 132 }
69 133 };
70 134
Modified src/services/loginService.ts +12 -2
@@ -5,7 +5,6 @@ import { createShip } from "./shipService";
5 5 import { Document, Types } from "mongoose";
6 6 import { Loadout } from "@/src/models/inventoryModels/loadoutModel";
7 7 import { PersonalRooms } from "@/src/models/personalRoomsModel";
8 import new_personal_rooms from "@/static/fixed_responses/personalRooms.json";
9 8 import { Request } from "express";
10 9 import { config } from "@/src/services/configService";
11 10
@@ -42,10 +41,21 @@ export const createLoadout = async (accountId: Types.ObjectId): Promise<Types.Ob
42 41
43 42 export const createPersonalRooms = async (accountId: Types.ObjectId, shipId: Types.ObjectId): Promise<void> => {
44 43 const personalRooms = new PersonalRooms({
45 ...new_personal_rooms,
46 44 personalRoomsOwnerId: accountId,
47 45 activeShipId: shipId
48 46 });
47 if (config.skipTutorial) {
48 // Vor's Prize rewards
49 const defaultFeatures = [
50 "/Lotus/Types/Items/ShipFeatureItems/EarthNavigationFeatureItem",
51 "/Lotus/Types/Items/ShipFeatureItems/MercuryNavigationFeatureItem",
52 "/Lotus/Types/Items/ShipFeatureItems/ArsenalFeatureItem",
53 "/Lotus/Types/Items/ShipFeatureItems/SocialMenuFeatureItem",
54 "/Lotus/Types/Items/ShipFeatureItems/FoundryFeatureItem",
55 "/Lotus/Types/Items/ShipFeatureItems/ModsFeatureItem"
56 ];
57 personalRooms.Ship.Features.push(...defaultFeatures);
58 }
49 59 await personalRooms.save();
50 60 };
51 61
Modified src/types/personalRoomsTypes.ts +1 -1
@@ -12,7 +12,7 @@ import { Model, Types } from "mongoose";
12 12 export interface IOrbiter {
13 13 Features: string[];
14 14 Rooms: IRoom[];
15 ContentUrlSignature: string;
15 ContentUrlSignature?: string;
16 16 BootLocation?: TBootLocation;
17 17 }
18 18
Modified src/types/shipTypes.ts +2 -2
@@ -28,7 +28,7 @@ export interface IShip {
28 28 ShipId: IOid;
29 29 ShipInterior: IShipInterior;
30 30 Rooms: IRoom[];
31 ContentUrlSignature: string;
31 ContentUrlSignature?: string;
32 32 BootLocation?: TBootLocation;
33 33 }
34 34
@@ -58,7 +58,7 @@ export interface IPlanters {
58 58 }
59 59
60 60 export interface IGardening {
61 Planters: IPlanters[];
61 Planters?: IPlanters[];
62 62 }
63 63 export interface IApartment {
64 64 Gardening: IGardening;
Modified static/fixed_responses/inbox.json +29 -10
@@ -1,23 +1,42 @@
1 1 {
2 2 "Inbox": [
3 3 {
4 "sndr": "/Lotus/Language/Bosses/Ordis",
5 "msg": "/Lotus/Language/Inbox/ThankYouFreeMultipleContent",
4 "sub": "/Lotus/Language/Inbox/DarvoWeaponCraftingMessageBTitle",
5 "sndr": "/Lotus/Language/Bosses/Darvo",
6 "msg": "/Lotus/Language/Inbox/DarvoWeaponCraftingMessageBDesc",
7 "icon": "/Lotus/Interface/Icons/Npcs/Darvo.png",
6 8 "countedAtt": [
7 9 {
8 "ItemType": "/Lotus/Upgrades/Skins/Promo/Twitch/OgrisTwitchSkin",
9 "ItemCount": 1
10 "ItemCount": 1,
11 "ItemType": "/Lotus/Types/Recipes/Weapons/BurstonRifleBlueprint"
10 12 },
11 13 {
12 "ItemType": "/Lotus/Weapons/ClanTech/Chemical/RocketLauncher",
13 "ItemCount": 1
14 "ItemCount": 1,
15 "ItemType": "/Lotus/Types/Items/MiscItems/Morphic"
16 },
17 {
18 "ItemCount": 400,
19 "ItemType": "/Lotus/Types/Items/MiscItems/PolymerBundle"
20 },
21 {
22 "ItemCount": 150,
23 "ItemType": "/Lotus/Types/Items/MiscItems/AlloyPlate"
14 24 }
15 25 ],
16 "sub": "/Lotus/Language/Inbox/ThankYouFreeMultipleSubject",
17 "icon": "/Lotus/Interface/Icons/Npcs/Ordis.png",
18 26 "highPriority": true,
19 "messageId": "removed",
20 "date": { "$date": { "$numberLong": "removed" } },
27 "messageId": "66d651800000000000000000",
28 "date": { "$date": { "$numberLong": "1725321600000" } },
29 "r": true
30 },
31 {
32 "sub": "/Lotus/Language/G1Quests/Beginner_Growth_Inbox_Title",
33 "sndr": "/Lotus/Language/Menu/Mailbox_WarframeSender",
34 "msg": "/Lotus/Language/G1Quests/Beginner_Growth_Inbox_Desc",
35 "icon": "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
36 "transmission": "/Lotus/Sounds/Dialog/VorsPrize/DLisetPostAssassinate110Lotus",
37 "highPriority": true,
38 "messageId": "66d651810000000000000000",
39 "date": { "$date": { "$numberLong": "1725321601000" } },
21 40 "r": true
22 41 }
23 42 ]
Deleted static/fixed_responses/inventory.json +0 -131
@@ -1,131 +0,0 @@
1 {
2 "SubscribedToEmails": 0,
3 "Created": { "$date": { "$numberLong": "removed" } },
4 "SubscribedToEmailsPersonalized": 0,
5 "RewardSeed": -123123123123123,
6 "CrewMemberBin": { "Slots": 3 },
7 "CrewShipSalvageBin": { "Slots": 8 },
8 "DrifterMelee": [
9 {
10 "ItemType": "/Lotus/Types/Friendly/PlayerControllable/Weapons/DuviriDualSwords",
11 "ItemId": { "$oid": "removed" }
12 }
13 ],
14 "FusionPoints": 0,
15 "MechBin": { "Slots": 4 },
16 "OperatorAmpBin": { "Slots": 8 },
17 "PveBonusLoadoutBin": { "Slots": 0 },
18 "PvpBonusLoadoutBin": { "Slots": 0 },
19 "RandomModBin": { "Slots": 15 },
20 "RegularCredits": 0,
21 "SentinelBin": { "Slots": 10 },
22 "SpaceSuitBin": { "Slots": 4 },
23 "SpaceWeaponBin": { "Slots": 4 },
24 "SuitBin": { "Slots": 2 },
25 "WeaponBin": { "Slots": 8 },
26 "LastInventorySync": { "$oid": "removed" },
27 "NextRefill": { "$date": { "$numberLong": "removed" } },
28 "ActiveLandscapeTraps": [],
29 "ChallengeProgress": [],
30 "CrewMembers": [],
31 "CrewShips": [],
32 "CrewShipHarnesses": [],
33 "CrewShipSalvagedWeapons": [],
34 "CrewShipSalvagedWeaponSkins": [],
35 "CrewShipWeapons": [],
36 "CrewShipWeaponSkins": [],
37 "DataKnives": [],
38 "DrifterGuns": [],
39 "Drones": [],
40 "Horses": [],
41 "Hoverboards": [],
42 "KubrowPets": [],
43 "KubrowPetEggs": [],
44 "KubrowPetPrints": [],
45 "LongGuns": [],
46 "MechSuits": [],
47 "Melee": [],
48 "MoaPets": [],
49 "OperatorAmps": [],
50 "OperatorLoadOuts": [],
51 "AdultOperatorLoadOuts": [],
52 "KahlLoadOuts": [],
53 "PendingRecipes": [],
54 "PersonalGoalProgress": [],
55 "PersonalTechProjects": [],
56 "Pistols": [],
57 "QualifyingInvasions": [],
58 "RepVotes": [],
59 "Scoops": [],
60 "Sentinels": [],
61 "SentinelWeapons": [],
62 "Ships": [{ "ItemType": "/Lotus/Types/Items/Ships/DefaultShip", "ItemId": { "$oid": "123123" } }],
63 "SpaceGuns": [],
64 "SpaceMelee": [],
65 "SpaceSuits": [],
66 "SpecialItems": [],
67 "StepSequencers": [],
68 "Suits": [],
69 "Upgrades": [],
70 "WeaponSkins": [],
71 "Boosters": [],
72 "Consumables": [],
73 "EmailItems": [],
74 "FlavourItems": [],
75 "FocusUpgrades": [],
76 "FusionTreasures": [],
77 "LeagueTickets": [],
78 "LevelKeys": [],
79 "LoreFragmentScans": [],
80 "MiscItems": [],
81 "PendingSpectreLoadouts": [],
82 "Quests": [],
83 "QuestKeys": [],
84 "RawUpgrades": [],
85 "Recipes": [],
86 "Robotics": [],
87 "ShipDecorations": [],
88 "SpectreLoadouts": [],
89 "XPInfo": [],
90 "CrewShipAmmo": [],
91 "CrewShipRawSalvage": [],
92 "EvolutionProgress": [],
93 "Missions": [],
94 "TauntHistory": [],
95 "CompletedSyndicates": [],
96 "UsedDailyDeals": [],
97 "DailyAffiliation": 16000,
98 "DailyAffiliationPvp": 16000,
99 "DailyAffiliationLibrary": 16000,
100 "DailyAffiliationCetus": 16000,
101 "DailyAffiliationQuills": 16000,
102 "DailyAffiliationSolaris": 16000,
103 "DailyAffiliationVentkids": 16000,
104 "DailyAffiliationVox": 16000,
105 "DailyAffiliationEntrati": 16000,
106 "DailyAffiliationNecraloid": 16000,
107 "DailyAffiliationZariman": 16000,
108 "DailyAffiliationKahl": 16000,
109 "DailyFocus": 250000,
110 "GiftsRemaining": 8,
111 "LibraryAvailableDailyTaskInfo": {
112 "EnemyTypes": ["/Lotus/Types/Enemies/Orokin/OrokinBladeSawmanAvatar"],
113 "EnemyLocTag": "/Lotus/Language/Game/OrokinBladeSawman",
114 "EnemyIcon": "/Lotus/Interface/Icons/Npcs/Orokin/OrokinBladeSawman.png",
115 "ScansRequired": 4,
116 "RewardStoreItem": "/Lotus/StoreItems/Upgrades/Mods/FusionBundles/UncommonFusionBundle",
117 "RewardQuantity": 10,
118 "RewardStanding": 10000
119 },
120 "DuviriInfo": { "Seed": 123123123123123123, "NumCompletions": 0 },
121 "TradesRemaining": 0,
122 "HasContributedToDojo": false,
123 "HasResetAccount": false,
124 "PendingCoupon": {
125 "Expiry": { "$date": { "$numberLong": "0" } },
126 "Discount": 0
127 },
128 "PremiumCreditsFree": 0,
129 "ReceivedStartingGear": true,
130 "StoryModeChoice": "WARFRAME"
131 }
Deleted static/fixed_responses/new_inventory.json +0 -122
@@ -1,122 +0,0 @@
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 "DailyAffiliationCavia": 16000,
105 "DailyFocus": 250000,
106 "GiftsRemaining": 8,
107 "LibraryAvailableDailyTaskInfo": {
108 "EnemyTypes": ["/Lotus/Types/Enemies/Orokin/OrokinBladeSawmanAvatar"],
109 "EnemyLocTag": "/Lotus/Language/Game/OrokinBladeSawman",
110 "EnemyIcon": "/Lotus/Interface/Icons/Npcs/Orokin/OrokinBladeSawman.png",
111 "ScansRequired": 4,
112 "RewardStoreItem": "/Lotus/StoreItems/Upgrades/Mods/FusionBundles/UncommonFusionBundle",
113 "RewardQuantity": 10,
114 "RewardStanding": 10000
115 },
116 "DuviriInfo": { "Seed": 5898912197983600352, "NumCompletions": 0 },
117 "TradesRemaining": 0,
118 "HasContributedToDojo": false,
119 "HasResetAccount": false,
120 "PendingCoupon": { "Expiry": { "$date": { "$numberLong": "0" } }, "Discount": 0 },
121 "PremiumCreditsFree": 0
122 }
Deleted static/fixed_responses/personalRooms.json +0 -32
@@ -1,32 +0,0 @@
1 {
2 "Ship": {
3 "Features": [
4 "/Lotus/Types/Items/ShipFeatureItems/EarthNavigationFeatureItem",
5 "/Lotus/Types/Items/ShipFeatureItems/ArsenalFeatureItem",
6 "/Lotus/Types/Items/ShipFeatureItems/SocialMenuFeatureItem",
7 "/Lotus/Types/Items/ShipFeatureItems/ModsFeatureItem",
8 "/Lotus/Types/Items/ShipFeatureItems/FoundryFeatureItem",
9 "/Lotus/Types/Items/ShipFeatureItems/MercuryNavigationFeatureItem"
10 ],
11 "Rooms": [
12 { "Name": "AlchemyRoom", "MaxCapacity": 1600 },
13 { "Name": "BridgeRoom", "MaxCapacity": 1600 },
14 { "Name": "LisetRoom", "MaxCapacity": 1000 },
15 { "Name": "OperatorChamberRoom", "MaxCapacity": 1600 },
16 { "Name": "OutsideRoom", "MaxCapacity": 1600 },
17 { "Name": "PersonalQuartersRoom", "MaxCapacity": 1600 }
18 ],
19 "ContentUrlSignature": "removed"
20 },
21 "Apartment": {
22 "Rooms": [
23 { "Name": "ElevatorLanding", "MaxCapacity": 1600 },
24 { "Name": "ApartmentRoomA", "MaxCapacity": 1000 },
25 { "Name": "ApartmentRoomB", "MaxCapacity": 1600 },
26 { "Name": "ApartmentRoomC", "MaxCapacity": 1600 },
27 { "Name": "DuviriHallway", "MaxCapacity": 1600 }
28 ],
29 "FavouriteLoadouts": [],
30 "Gardening": {}
31 }
32 }
Deleted static/fixed_responses/postTutorialInventory.json +0 -140
@@ -1,140 +0,0 @@
1 {
2 "SubscribedToEmails": 0,
3 "SubscribedToEmailsPersonalized": 0,
4 "RewardSeed": -5604904486637265640,
5 "CrewMemberBin": { "Slots": 3 },
6 "CrewShipSalvageBin": { "Slots": 8 },
7 "DrifterMelee": [{ "ItemType": "/Lotus/Types/Friendly/PlayerControllable/Weapons/DuviriDualSwords", "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }],
8 "MechBin": { "Slots": 4 },
9 "OperatorAmpBin": { "Slots": 8 },
10 "PveBonusLoadoutBin": { "Slots": 0 },
11 "PvpBonusLoadoutBin": { "Slots": 0 },
12 "RandomModBin": { "Slots": 15 },
13 "SentinelBin": { "Slots": 10 },
14 "SpaceSuitBin": { "Slots": 4 },
15 "SpaceWeaponBin": { "Slots": 4 },
16 "SuitBin": { "Slots": 1 },
17 "WeaponBin": { "Slots": 5 },
18 "DuviriInfo": { "Seed": 5898912197983600352, "NumCompletions": 0 },
19 "Recipes": [{ "ItemCount": 1, "ItemType": "/Lotus/Types/Recipes/Weapons/BoltonfaBlueprint" }],
20 "SeasonChallengeHistory": [
21 { "challenge": "SeasonDailySolveCiphers", "id": "001000220000000000000308" },
22 { "challenge": "SeasonDailyVisitFeaturedDojo", "id": "001000230000000000000316" },
23 { "challenge": "SeasonDailyKillEnemiesWithRadiation", "id": "001000230000000000000317" },
24 { "challenge": "SeasonWeeklyCompleteSortie", "id": "001000230000000000000309" },
25 { "challenge": "SeasonWeeklyVenusBounties", "id": "001000230000000000000310" },
26 { "challenge": "SeasonWeeklyZarimanBountyHunter", "id": "001000230000000000000311" },
27 { "challenge": "SeasonWeeklyCatchRarePlainsFish", "id": "001000230000000000000312" },
28 { "challenge": "SeasonWeeklyKillArchgunEnemies", "id": "001000230000000000000313" },
29 { "challenge": "SeasonWeeklyHardKillSilverGroveSpecters", "id": "001000230000000000000314" },
30 { "challenge": "SeasonWeeklyHardKillRopalolyst", "id": "001000230000000000000315" }
31 ],
32 "StoryModeChoice": "WARFRAME",
33 "ChallengeProgress": [{ "Progress": 2, "Name": "EMGetKills" }],
34 "ChallengesFixVersion": 6,
35 "ActiveQuest": "/Lotus/Types/Keys/VorsPrize/VorsPrizeQuestKeyChain",
36 "Consumables": [{ "ItemCount": 1, "ItemType": "/Lotus/Types/Restoratives/LisetAutoHack" }],
37 "DataKnives": [{ "ItemType": "/Lotus/Weapons/Tenno/HackingDevices/TnHackingDevice/TnHackingDeviceWeapon", "XP": 450000, "ItemId": { "$oid": "647bd274f22fc794a2cd3d33" } }],
38 "FlavourItems": [
39 { "ItemType": "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem1" },
40 { "ItemType": "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem2" },
41 { "ItemType": "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem3" },
42 { "ItemType": "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem4" }
43 ],
44 "LongGuns": [{ "ItemType": "/Lotus/Weapons/MK1Series/MK1Paris", "XP": 0, "Configs": [{}, {}, {}], "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }],
45 "Melee": [{ "ItemType": "/Lotus/Weapons/Tenno/Melee/LongSword/LongSword", "XP": 0, "Configs": [{}, {}, {}], "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }],
46 "Pistols": [{ "ItemType": "/Lotus/Weapons/MK1Series/MK1Kunai", "XP": 0, "Configs": [{}, {}, {}], "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }],
47 "PlayedParkourTutorial": true,
48 "QuestKeys": [{ "ItemType": "/Lotus/Types/Keys/VorsPrize/VorsPrizeQuestKeyChain" }],
49 "RawUpgrades": [{ "ItemCount": 1, "LastAdded": { "$oid": "6450f9bfe0714a4d6703f05f" }, "ItemType": "/Lotus/Upgrades/Mods/Warframe/AvatarShieldMaxMod" }],
50 "ReceivedStartingGear": true,
51 "Scoops": [{ "ItemType": "/Lotus/Weapons/Tenno/Speedball/SpeedballWeaponTest", "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }],
52 "Suits": [{ "ItemType": "/Lotus/Powersuits/Volt/Volt", "XP": 0, "Configs": [{}, {}, {}], "UpgradeVer": 101, "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }],
53 "TrainingRetriesLeft": 0,
54 "WeaponSkins": [{ "ItemType": "/Lotus/Upgrades/Skins/Volt/VoltHelmet", "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }],
55 "LastInventorySync": { "$oid": "647bd27cf856530b4f3bf343" },
56 "NextRefill": { "$date": { "$numberLong": "1685829131" } },
57 "ActiveLandscapeTraps": [],
58 "CrewMembers": [],
59 "CrewShips": [],
60 "CrewShipHarnesses": [],
61 "CrewShipSalvagedWeapons": [],
62 "CrewShipSalvagedWeaponSkins": [],
63 "CrewShipWeapons": [],
64 "CrewShipWeaponSkins": [],
65 "DrifterGuns": [],
66 "Drones": [],
67 "Horses": [
68 {
69 "ItemType": "/Lotus/Types/NeutralCreatures/ErsatzHorse/ErsatzHorsePowerSuit",
70 "Configs": [
71 {
72 "Skins": ["", "", "/Lotus/Upgrades/Skins/Horse/ErsatzHorseTailDefault"]
73 },
74 {
75 "Skins": ["", "", "/Lotus/Upgrades/Skins/Horse/ErsatzHorseTailDefault"]
76 },
77 {
78 "Skins": ["", "", "/Lotus/Upgrades/Skins/Horse/ErsatzHorseTailDefault"]
79 }
80 ],
81 "UpgradeVer": 101,
82 "ItemId": { "$oid": "647bd27cf856530b4f3bf343" }
83 }
84 ],
85 "Hoverboards": [],
86 "KubrowPets": [],
87 "KubrowPetEggs": [],
88 "KubrowPetPrints": [],
89 "MechSuits": [],
90 "MoaPets": [],
91 "OperatorAmps": [],
92 "OperatorLoadOuts": [],
93 "AdultOperatorLoadOuts": [],
94 "KahlLoadOuts": [],
95 "PendingRecipes": [],
96 "TrainingDate": 0,
97 "PersonalGoalProgress": [],
98 "PersonalTechProjects": [],
99 "QualifyingInvasions": [],
100 "RepVotes": [],
101 "Sentinels": [],
102 "SentinelWeapons": [],
103 "SpaceGuns": [],
104 "SpaceMelee": [],
105 "SpaceSuits": [],
106 "SpecialItems": [],
107 "StepSequencers": [],
108 "Upgrades": [],
109 "Boosters": [],
110 "EmailItems": [],
111 "FocusUpgrades": [],
112 "FusionTreasures": [],
113 "LeagueTickets": [],
114 "LevelKeys": [],
115 "LoreFragmentScans": [],
116 "MiscItems": [],
117 "PendingSpectreLoadouts": [],
118 "Quests": [],
119 "Robotics": [],
120 "ShipDecorations": [],
121 "SpectreLoadouts": [],
122 "XPInfo": [],
123 "CrewShipAmmo": [],
124 "CrewShipRawSalvage": [],
125 "EvolutionProgress": [],
126 "Missions": [],
127 "TauntHistory": [],
128 "CompletedSyndicates": [],
129 "UsedDailyDeals": [],
130 "LibraryAvailableDailyTaskInfo": {
131 "EnemyTypes": ["/Lotus/Types/Enemies/Orokin/OrokinBladeSawmanAvatar"],
132 "EnemyLocTag": "/Lotus/Language/Game/OrokinBladeSawman",
133 "EnemyIcon": "/Lotus/Interface/Icons/Npcs/Orokin/OrokinBladeSawman.png",
134 "ScansRequired": 4,
135 "RewardStoreItem": "/Lotus/StoreItems/Upgrades/Mods/FusionBundles/UncommonFusionBundle",
136 "RewardQuantity": 10,
137 "RewardStanding": 10000
138 },
139 "PendingCoupon": { "Expiry": { "$date": { "$numberLong": "0" } }, "Discount": 0 }
140 }