forked from OpenWF/SpaceNinjaServer
Compare commits
8 Commits
fb8d176fbe
...
9f0be223e6
Author | SHA1 | Date | |
---|---|---|---|
9f0be223e6 | |||
eb56442d63 | |||
a259afe912 | |||
4d7b3b543b | |||
78548a2ebe | |||
815d18623e | |||
ac6ac19199 | |||
b4e780baa3 |
@ -5,6 +5,9 @@
|
|||||||
"level": "trace"
|
"level": "trace"
|
||||||
},
|
},
|
||||||
"myAddress": "localhost",
|
"myAddress": "localhost",
|
||||||
|
"hubAddress": "https://localhost/api/",
|
||||||
|
"platformCDNs": ["https://localhost/"],
|
||||||
|
"NRS": ["localhost"],
|
||||||
"httpPort": 80,
|
"httpPort": 80,
|
||||||
"httpsPort": 443,
|
"httpsPort": 443,
|
||||||
"administratorNames": [],
|
"administratorNames": [],
|
||||||
|
@ -10,7 +10,7 @@ export const giveKeyChainTriggeredItemsController: RequestHandler = async (req,
|
|||||||
const keyChainInfo = getJSONfromString<IKeyChainRequest>((req.body as string).toString());
|
const keyChainInfo = getJSONfromString<IKeyChainRequest>((req.body as string).toString());
|
||||||
|
|
||||||
const inventory = await getInventory(accountId);
|
const inventory = await getInventory(accountId);
|
||||||
const inventoryChanges = giveKeyChainItem(inventory, keyChainInfo);
|
const inventoryChanges = await giveKeyChainItem(inventory, keyChainInfo);
|
||||||
await inventory.save();
|
await inventory.save();
|
||||||
|
|
||||||
res.send(inventoryChanges);
|
res.send(inventoryChanges);
|
||||||
|
@ -6,7 +6,6 @@ import { buildConfig } from "@/src/services/buildConfigService";
|
|||||||
import { Account } from "@/src/models/loginModel";
|
import { Account } from "@/src/models/loginModel";
|
||||||
import { createAccount, isCorrectPassword, isNameTaken } from "@/src/services/loginService";
|
import { createAccount, isCorrectPassword, isNameTaken } from "@/src/services/loginService";
|
||||||
import { IDatabaseAccountJson, ILoginRequest, ILoginResponse } from "@/src/types/loginTypes";
|
import { IDatabaseAccountJson, ILoginRequest, ILoginResponse } from "@/src/types/loginTypes";
|
||||||
import { DTLS, groups, HUB, platformCDNs } from "@/static/fixed_responses/login_static";
|
|
||||||
import { logger } from "@/src/utils/logger";
|
import { logger } from "@/src/utils/logger";
|
||||||
|
|
||||||
export const loginController: RequestHandler = async (request, response) => {
|
export const loginController: RequestHandler = async (request, response) => {
|
||||||
@ -84,12 +83,12 @@ const createLoginResponse = (account: IDatabaseAccountJson, buildLabel: string):
|
|||||||
ConsentNeeded: account.ConsentNeeded,
|
ConsentNeeded: account.ConsentNeeded,
|
||||||
TrackedSettings: account.TrackedSettings,
|
TrackedSettings: account.TrackedSettings,
|
||||||
Nonce: account.Nonce,
|
Nonce: account.Nonce,
|
||||||
Groups: groups,
|
Groups: [],
|
||||||
platformCDNs: platformCDNs,
|
|
||||||
NRS: [config.myAddress],
|
|
||||||
DTLS: DTLS,
|
|
||||||
IRC: config.myIrcAddresses ?? [config.myAddress],
|
IRC: config.myIrcAddresses ?? [config.myAddress],
|
||||||
HUB: HUB,
|
platformCDNs: config.platformCDNs,
|
||||||
|
HUB: config.hubAddress,
|
||||||
|
NRS: config.NRS,
|
||||||
|
DTLS: 99,
|
||||||
BuildLabel: buildLabel,
|
BuildLabel: buildLabel,
|
||||||
MatchmakingBuildId: buildConfig.matchmakingBuildId
|
MatchmakingBuildId: buildConfig.matchmakingBuildId
|
||||||
};
|
};
|
||||||
|
@ -13,7 +13,8 @@ export const manageQuestsController: RequestHandler = async (req, res) => {
|
|||||||
| "completeAll"
|
| "completeAll"
|
||||||
| "ResetAll"
|
| "ResetAll"
|
||||||
| "completeAllUnlocked"
|
| "completeAllUnlocked"
|
||||||
| "updateKey";
|
| "updateKey"
|
||||||
|
| "giveAll";
|
||||||
const questKeyUpdate = req.body as IUpdateQuestRequest["QuestKeys"];
|
const questKeyUpdate = req.body as IUpdateQuestRequest["QuestKeys"];
|
||||||
|
|
||||||
const allQuestKeys: string[] = [];
|
const allQuestKeys: string[] = [];
|
||||||
@ -71,6 +72,7 @@ export const manageQuestsController: RequestHandler = async (req, res) => {
|
|||||||
for (const questKey of inventory.QuestKeys) {
|
for (const questKey of inventory.QuestKeys) {
|
||||||
questKey.Completed = false;
|
questKey.Completed = false;
|
||||||
questKey.Progress = [];
|
questKey.Progress = [];
|
||||||
|
questKey.CompletionDate = undefined;
|
||||||
}
|
}
|
||||||
inventory.ActiveQuest = "";
|
inventory.ActiveQuest = "";
|
||||||
break;
|
break;
|
||||||
@ -78,7 +80,6 @@ export const manageQuestsController: RequestHandler = async (req, res) => {
|
|||||||
case "completeAllUnlocked": {
|
case "completeAllUnlocked": {
|
||||||
logger.info("completing all unlocked quests..");
|
logger.info("completing all unlocked quests..");
|
||||||
for (const questKey of inventory.QuestKeys) {
|
for (const questKey of inventory.QuestKeys) {
|
||||||
console.log("size of questkeys", inventory.QuestKeys.length);
|
|
||||||
try {
|
try {
|
||||||
await completeQuest(inventory, questKey.ItemType);
|
await completeQuest(inventory, questKey.ItemType);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@ -105,6 +106,12 @@ export const manageQuestsController: RequestHandler = async (req, res) => {
|
|||||||
inventory.ActiveQuest = "";
|
inventory.ActiveQuest = "";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case "giveAll": {
|
||||||
|
for (const questKey of allQuestKeys) {
|
||||||
|
addQuestKey(inventory, { ItemType: questKey });
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await inventory.save();
|
await inventory.save();
|
||||||
|
@ -33,6 +33,9 @@ interface IConfig {
|
|||||||
httpPort?: number;
|
httpPort?: number;
|
||||||
httpsPort?: number;
|
httpsPort?: number;
|
||||||
myIrcAddresses?: string[];
|
myIrcAddresses?: string[];
|
||||||
|
platformCDNs?: string[];
|
||||||
|
hubAddress?: string;
|
||||||
|
NRS?: string[];
|
||||||
administratorNames?: string[] | string;
|
administratorNames?: string[] | string;
|
||||||
autoCreateAccount?: boolean;
|
autoCreateAccount?: boolean;
|
||||||
skipTutorial?: boolean;
|
skipTutorial?: boolean;
|
||||||
|
@ -234,7 +234,7 @@ export const addItem = async (
|
|||||||
InventoryChanges: {
|
InventoryChanges: {
|
||||||
Ships: [
|
Ships: [
|
||||||
{
|
{
|
||||||
ItemId: { $oid: oid },
|
ItemId: { $oid: oid.toString() },
|
||||||
ItemType: typeName
|
ItemType: typeName
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -499,7 +499,7 @@ export const addItem = async (
|
|||||||
const horseIndex = inventory.Horses.push({ ItemType: typeName });
|
const horseIndex = inventory.Horses.push({ ItemType: typeName });
|
||||||
return {
|
return {
|
||||||
InventoryChanges: {
|
InventoryChanges: {
|
||||||
Horses: inventory.Horses[horseIndex - 1].toJSON()
|
Horses: [inventory.Horses[horseIndex - 1].toJSON<IEquipmentClient>()]
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -572,9 +572,7 @@ export const addSentinel = (
|
|||||||
addMods(inventory, modsToGive);
|
addMods(inventory, modsToGive);
|
||||||
const sentinelIndex = inventory.Sentinels.push({ ItemType: sentinelName, Configs: configs, XP: 0 }) - 1;
|
const sentinelIndex = inventory.Sentinels.push({ ItemType: sentinelName, Configs: configs, XP: 0 }) - 1;
|
||||||
inventoryChanges.Sentinels ??= [];
|
inventoryChanges.Sentinels ??= [];
|
||||||
(inventoryChanges.Sentinels as IEquipmentClient[]).push(
|
inventoryChanges.Sentinels.push(inventory.Sentinels[sentinelIndex].toJSON<IEquipmentClient>());
|
||||||
inventory.Sentinels[sentinelIndex].toJSON<IEquipmentClient>()
|
|
||||||
);
|
|
||||||
|
|
||||||
return inventoryChanges;
|
return inventoryChanges;
|
||||||
};
|
};
|
||||||
@ -586,9 +584,7 @@ export const addSentinelWeapon = (
|
|||||||
): void => {
|
): void => {
|
||||||
const index = inventory.SentinelWeapons.push({ ItemType: typeName, XP: 0 }) - 1;
|
const index = inventory.SentinelWeapons.push({ ItemType: typeName, XP: 0 }) - 1;
|
||||||
inventoryChanges.SentinelWeapons ??= [];
|
inventoryChanges.SentinelWeapons ??= [];
|
||||||
(inventoryChanges.SentinelWeapons as IEquipmentClient[]).push(
|
inventoryChanges.SentinelWeapons.push(inventory.SentinelWeapons[index].toJSON<IEquipmentClient>());
|
||||||
inventory.SentinelWeapons[index].toJSON<IEquipmentClient>()
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export const addPowerSuit = (
|
export const addPowerSuit = (
|
||||||
@ -604,7 +600,7 @@ export const addPowerSuit = (
|
|||||||
}
|
}
|
||||||
const suitIndex = inventory.Suits.push({ ItemType: powersuitName, Configs: [], UpgradeVer: 101, XP: 0 }) - 1;
|
const suitIndex = inventory.Suits.push({ ItemType: powersuitName, Configs: [], UpgradeVer: 101, XP: 0 }) - 1;
|
||||||
inventoryChanges.Suits ??= [];
|
inventoryChanges.Suits ??= [];
|
||||||
(inventoryChanges.Suits as IEquipmentClient[]).push(inventory.Suits[suitIndex].toJSON<IEquipmentClient>());
|
inventoryChanges.Suits.push(inventory.Suits[suitIndex].toJSON<IEquipmentClient>());
|
||||||
return inventoryChanges;
|
return inventoryChanges;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -621,7 +617,7 @@ export const addMechSuit = (
|
|||||||
}
|
}
|
||||||
const suitIndex = inventory.MechSuits.push({ ItemType: mechsuitName, Configs: [], UpgradeVer: 101, XP: 0 }) - 1;
|
const suitIndex = inventory.MechSuits.push({ ItemType: mechsuitName, Configs: [], UpgradeVer: 101, XP: 0 }) - 1;
|
||||||
inventoryChanges.MechSuits ??= [];
|
inventoryChanges.MechSuits ??= [];
|
||||||
(inventoryChanges.MechSuits as IEquipmentClient[]).push(inventory.MechSuits[suitIndex].toJSON<IEquipmentClient>());
|
inventoryChanges.MechSuits.push(inventory.MechSuits[suitIndex].toJSON<IEquipmentClient>());
|
||||||
return inventoryChanges;
|
return inventoryChanges;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -642,9 +638,7 @@ export const addSpecialItem = (
|
|||||||
XP: 0
|
XP: 0
|
||||||
}) - 1;
|
}) - 1;
|
||||||
inventoryChanges.SpecialItems ??= [];
|
inventoryChanges.SpecialItems ??= [];
|
||||||
(inventoryChanges.SpecialItems as IEquipmentClient[]).push(
|
inventoryChanges.SpecialItems.push(inventory.SpecialItems[specialItemIndex].toJSON<IEquipmentClient>());
|
||||||
inventory.SpecialItems[specialItemIndex].toJSON<IEquipmentClient>()
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export const addSpaceSuit = (
|
export const addSpaceSuit = (
|
||||||
@ -654,9 +648,7 @@ export const addSpaceSuit = (
|
|||||||
): IInventoryChanges => {
|
): IInventoryChanges => {
|
||||||
const suitIndex = inventory.SpaceSuits.push({ ItemType: spacesuitName, Configs: [], UpgradeVer: 101, XP: 0 }) - 1;
|
const suitIndex = inventory.SpaceSuits.push({ ItemType: spacesuitName, Configs: [], UpgradeVer: 101, XP: 0 }) - 1;
|
||||||
inventoryChanges.SpaceSuits ??= [];
|
inventoryChanges.SpaceSuits ??= [];
|
||||||
(inventoryChanges.SpaceSuits as IEquipmentClient[]).push(
|
inventoryChanges.SpaceSuits.push(inventory.SpaceSuits[suitIndex].toJSON<IEquipmentClient>());
|
||||||
inventory.SpaceSuits[suitIndex].toJSON<IEquipmentClient>()
|
|
||||||
);
|
|
||||||
return inventoryChanges;
|
return inventoryChanges;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -798,7 +790,7 @@ export const addEquipment = (
|
|||||||
}) - 1;
|
}) - 1;
|
||||||
|
|
||||||
inventoryChanges[category] ??= [];
|
inventoryChanges[category] ??= [];
|
||||||
(inventoryChanges[category] as IEquipmentClient[]).push(inventory[category][index].toJSON<IEquipmentClient>());
|
inventoryChanges[category].push(inventory[category][index].toJSON<IEquipmentClient>());
|
||||||
return inventoryChanges;
|
return inventoryChanges;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -838,7 +830,7 @@ const addCrewShip = (
|
|||||||
}
|
}
|
||||||
const index = inventory.CrewShips.push({ ItemType: typeName }) - 1;
|
const index = inventory.CrewShips.push({ ItemType: typeName }) - 1;
|
||||||
inventoryChanges.CrewShips ??= [];
|
inventoryChanges.CrewShips ??= [];
|
||||||
(inventoryChanges.CrewShips as IEquipmentClient[]).push(inventory.CrewShips[index].toJSON<IEquipmentClient>());
|
inventoryChanges.CrewShips.push(inventory.CrewShips[index].toJSON<IEquipmentClient>());
|
||||||
return inventoryChanges;
|
return inventoryChanges;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -852,9 +844,7 @@ const addCrewShipHarness = (
|
|||||||
}
|
}
|
||||||
const index = inventory.CrewShipHarnesses.push({ ItemType: typeName }) - 1;
|
const index = inventory.CrewShipHarnesses.push({ ItemType: typeName }) - 1;
|
||||||
inventoryChanges.CrewShipHarnesses ??= [];
|
inventoryChanges.CrewShipHarnesses ??= [];
|
||||||
(inventoryChanges.CrewShipHarnesses as IEquipmentClient[]).push(
|
inventoryChanges.CrewShipHarnesses.push(inventory.CrewShipHarnesses[index].toJSON<IEquipmentClient>());
|
||||||
inventory.CrewShipHarnesses[index].toJSON<IEquipmentClient>()
|
|
||||||
);
|
|
||||||
return inventoryChanges;
|
return inventoryChanges;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -868,7 +858,7 @@ const addMotorcycle = (
|
|||||||
}
|
}
|
||||||
const index = inventory.Motorcycles.push({ ItemType: typeName }) - 1;
|
const index = inventory.Motorcycles.push({ ItemType: typeName }) - 1;
|
||||||
inventoryChanges.Motorcycles ??= [];
|
inventoryChanges.Motorcycles ??= [];
|
||||||
(inventoryChanges.Motorcycles as IEquipmentClient[]).push(inventory.Motorcycles[index].toJSON<IEquipmentClient>());
|
inventoryChanges.Motorcycles.push(inventory.Motorcycles[index].toJSON<IEquipmentClient>());
|
||||||
return inventoryChanges;
|
return inventoryChanges;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -26,6 +26,8 @@ import { getLevelKeyRewards, getNode } from "@/src/services/itemDataService";
|
|||||||
import { InventoryDocumentProps, TInventoryDatabaseDocument } from "@/src/models/inventoryModels/inventoryModel";
|
import { InventoryDocumentProps, TInventoryDatabaseDocument } from "@/src/models/inventoryModels/inventoryModel";
|
||||||
import { getEntriesUnsafe } from "@/src/utils/ts-utils";
|
import { getEntriesUnsafe } from "@/src/utils/ts-utils";
|
||||||
import { IEquipmentClient } from "@/src/types/inventoryTypes/commonInventoryTypes";
|
import { IEquipmentClient } from "@/src/types/inventoryTypes/commonInventoryTypes";
|
||||||
|
import junctionRewards from "@/static/fixed_responses/junctionRewards.json";
|
||||||
|
import { IJunctionRewards } from "@/src/types/commonTypes";
|
||||||
|
|
||||||
const getRotations = (rotationCount: number): number[] => {
|
const getRotations = (rotationCount: number): number[] => {
|
||||||
if (rotationCount === 0) return [0];
|
if (rotationCount === 0) return [0];
|
||||||
@ -191,6 +193,11 @@ export const addMissionInventoryUpdates = (
|
|||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case "LoreFragmentScans":
|
||||||
|
value.forEach(x => {
|
||||||
|
inventory.LoreFragmentScans.push(x);
|
||||||
|
});
|
||||||
|
break;
|
||||||
case "SyndicateId": {
|
case "SyndicateId": {
|
||||||
inventory.CompletedSyndicates.push(value);
|
inventory.CompletedSyndicates.push(value);
|
||||||
break;
|
break;
|
||||||
@ -268,6 +275,20 @@ export const addMissionRewards = async (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (rewardInfo.node in junctionRewards) {
|
||||||
|
const junctionReward = (junctionRewards as IJunctionRewards)[rewardInfo.node];
|
||||||
|
for (const item of junctionReward.items) {
|
||||||
|
MissionRewards.push({
|
||||||
|
StoreItem: item.ItemType,
|
||||||
|
ItemCount: item.ItemCount
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (junctionReward.credits) {
|
||||||
|
inventory.RegularCredits += junctionReward.credits;
|
||||||
|
missionCompletionCredits += junctionReward.credits;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for (const reward of MissionRewards) {
|
for (const reward of MissionRewards) {
|
||||||
//TODO: additem should take in storeItems
|
//TODO: additem should take in storeItems
|
||||||
const inventoryChange = await addItem(inventory, reward.StoreItem.replace("StoreItems/", ""), reward.ItemCount);
|
const inventoryChange = await addItem(inventory, reward.StoreItem.replace("StoreItems/", ""), reward.ItemCount);
|
||||||
|
@ -138,6 +138,8 @@ export const giveKeyChainItem = async (inventory: TInventoryDatabaseDocument, ke
|
|||||||
// items were added: update quest stage's i (item was given)
|
// items were added: update quest stage's i (item was given)
|
||||||
updateQuestStage(inventory, keyChainInfo, { i: true });
|
updateQuestStage(inventory, keyChainInfo, { i: true });
|
||||||
|
|
||||||
|
return inventoryChanges;
|
||||||
|
|
||||||
//TODO: Check whether Wishlist is used to track items which should exist uniquely in the inventory
|
//TODO: Check whether Wishlist is used to track items which should exist uniquely in the inventory
|
||||||
/*
|
/*
|
||||||
some items are added or removed (not sure) to the wishlist, in that case a
|
some items are added or removed (not sure) to the wishlist, in that case a
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
import { ITypeCount } from "@/src/types/inventoryTypes/inventoryTypes";
|
||||||
|
|
||||||
export interface IOid {
|
export interface IOid {
|
||||||
$oid: string;
|
$oid: string;
|
||||||
}
|
}
|
||||||
@ -7,3 +9,10 @@ export interface IMongoDate {
|
|||||||
$numberLong: string;
|
$numberLong: string;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface IReward {
|
||||||
|
items: ITypeCount[];
|
||||||
|
credits: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type IJunctionRewards = Record<string, IReward>;
|
||||||
|
@ -12,30 +12,35 @@ import {
|
|||||||
IOperatorConfigDatabase
|
IOperatorConfigDatabase
|
||||||
} from "@/src/types/inventoryTypes/commonInventoryTypes";
|
} from "@/src/types/inventoryTypes/commonInventoryTypes";
|
||||||
|
|
||||||
|
export type InventoryDatabaseEquipment = {
|
||||||
|
[_ in TEquipmentKey]: IEquipmentDatabase[];
|
||||||
|
};
|
||||||
|
|
||||||
export interface IInventoryDatabase
|
export interface IInventoryDatabase
|
||||||
extends Omit<
|
extends Omit<
|
||||||
IInventoryClient,
|
IInventoryClient,
|
||||||
| "TrainingDate"
|
| "TrainingDate"
|
||||||
| "LoadOutPresets"
|
| "LoadOutPresets"
|
||||||
| "Mailbox"
|
| "Mailbox"
|
||||||
| "GuildId"
|
| "GuildId"
|
||||||
| "PendingRecipes"
|
| "PendingRecipes"
|
||||||
| "Created"
|
| "Created"
|
||||||
| "QuestKeys"
|
| "QuestKeys"
|
||||||
| "BlessingCooldown"
|
| "BlessingCooldown"
|
||||||
| "Ships"
|
| "Ships"
|
||||||
| "WeaponSkins"
|
| "WeaponSkins"
|
||||||
| "Upgrades"
|
| "Upgrades"
|
||||||
| "CrewShipSalvagedWeaponSkins"
|
| "CrewShipSalvagedWeaponSkins"
|
||||||
| "CrewShipWeaponSkins"
|
| "CrewShipWeaponSkins"
|
||||||
| "AdultOperatorLoadOuts"
|
| "AdultOperatorLoadOuts"
|
||||||
| "OperatorLoadOuts"
|
| "OperatorLoadOuts"
|
||||||
| "KahlLoadOuts"
|
| "KahlLoadOuts"
|
||||||
| "InfestedFoundry"
|
| "InfestedFoundry"
|
||||||
| "DialogueHistory"
|
| "DialogueHistory"
|
||||||
| "KubrowPetEggs"
|
| "KubrowPetEggs"
|
||||||
| TEquipmentKey
|
| TEquipmentKey
|
||||||
> {
|
>,
|
||||||
|
InventoryDatabaseEquipment {
|
||||||
accountOwnerId: Types.ObjectId;
|
accountOwnerId: Types.ObjectId;
|
||||||
Created: Date;
|
Created: Date;
|
||||||
TrainingDate: Date;
|
TrainingDate: Date;
|
||||||
@ -56,30 +61,6 @@ export interface IInventoryDatabase
|
|||||||
InfestedFoundry?: IInfestedFoundryDatabase;
|
InfestedFoundry?: IInfestedFoundryDatabase;
|
||||||
DialogueHistory?: IDialogueHistoryDatabase;
|
DialogueHistory?: IDialogueHistoryDatabase;
|
||||||
KubrowPetEggs?: IKubrowPetEggDatabase[];
|
KubrowPetEggs?: IKubrowPetEggDatabase[];
|
||||||
|
|
||||||
Suits: IEquipmentDatabase[];
|
|
||||||
LongGuns: IEquipmentDatabase[];
|
|
||||||
Pistols: IEquipmentDatabase[];
|
|
||||||
Melee: IEquipmentDatabase[];
|
|
||||||
SpecialItems: IEquipmentDatabase[];
|
|
||||||
Sentinels: IEquipmentDatabase[];
|
|
||||||
SentinelWeapons: IEquipmentDatabase[];
|
|
||||||
SpaceSuits: IEquipmentDatabase[];
|
|
||||||
SpaceGuns: IEquipmentDatabase[];
|
|
||||||
SpaceMelee: IEquipmentDatabase[];
|
|
||||||
Hoverboards: IEquipmentDatabase[];
|
|
||||||
OperatorAmps: IEquipmentDatabase[];
|
|
||||||
MoaPets: IEquipmentDatabase[];
|
|
||||||
Scoops: IEquipmentDatabase[];
|
|
||||||
Horses: IEquipmentDatabase[];
|
|
||||||
DrifterGuns: IEquipmentDatabase[];
|
|
||||||
DrifterMelee: IEquipmentDatabase[];
|
|
||||||
Motorcycles: IEquipmentDatabase[];
|
|
||||||
CrewShips: IEquipmentDatabase[];
|
|
||||||
DataKnives: IEquipmentDatabase[];
|
|
||||||
MechSuits: IEquipmentDatabase[];
|
|
||||||
CrewShipHarnesses: IEquipmentDatabase[];
|
|
||||||
KubrowPets: IEquipmentDatabase[];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IQuestKeyDatabase {
|
export interface IQuestKeyDatabase {
|
||||||
@ -179,30 +160,11 @@ export interface IDailyAffiliations {
|
|||||||
DailyAffiliationHex: number;
|
DailyAffiliationHex: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IInventoryClient extends IDailyAffiliations {
|
export type InventoryClientEquipment = {
|
||||||
Suits: IEquipmentClient[];
|
[_ in TEquipmentKey]: IEquipmentClient[];
|
||||||
LongGuns: IEquipmentClient[];
|
};
|
||||||
Pistols: IEquipmentClient[];
|
|
||||||
Melee: IEquipmentClient[];
|
export interface IInventoryClient extends IDailyAffiliations, InventoryClientEquipment {
|
||||||
SpecialItems: IEquipmentClient[];
|
|
||||||
Sentinels: IEquipmentClient[];
|
|
||||||
SentinelWeapons: IEquipmentClient[];
|
|
||||||
SpaceSuits: IEquipmentClient[];
|
|
||||||
SpaceGuns: IEquipmentClient[];
|
|
||||||
SpaceMelee: IEquipmentClient[];
|
|
||||||
Hoverboards: IEquipmentClient[];
|
|
||||||
OperatorAmps: IEquipmentClient[];
|
|
||||||
MoaPets: IEquipmentClient[];
|
|
||||||
Scoops: IEquipmentClient[];
|
|
||||||
Horses: IEquipmentClient[];
|
|
||||||
DrifterGuns: IEquipmentClient[];
|
|
||||||
DrifterMelee: IEquipmentClient[];
|
|
||||||
Motorcycles: IEquipmentClient[];
|
|
||||||
CrewShips: IEquipmentClient[];
|
|
||||||
DataKnives: IEquipmentClient[];
|
|
||||||
MechSuits: IEquipmentClient[];
|
|
||||||
CrewShipHarnesses: IEquipmentClient[];
|
|
||||||
KubrowPets: IEquipmentClient[];
|
|
||||||
AdultOperatorLoadOuts: IOperatorConfigClient[];
|
AdultOperatorLoadOuts: IOperatorConfigClient[];
|
||||||
OperatorLoadOuts: IOperatorConfigClient[];
|
OperatorLoadOuts: IOperatorConfigClient[];
|
||||||
KahlLoadOuts: IOperatorConfigClient[];
|
KahlLoadOuts: IOperatorConfigClient[];
|
||||||
|
@ -39,11 +39,11 @@ export interface ILoginResponse extends IAccountAndLoginResponseCommons {
|
|||||||
Groups: IGroup[];
|
Groups: IGroup[];
|
||||||
BuildLabel: string;
|
BuildLabel: string;
|
||||||
MatchmakingBuildId: string;
|
MatchmakingBuildId: string;
|
||||||
platformCDNs: string[];
|
platformCDNs?: string[];
|
||||||
NRS: string[];
|
NRS?: string[];
|
||||||
DTLS: number;
|
DTLS: number;
|
||||||
IRC: string[];
|
IRC: string[];
|
||||||
HUB: string;
|
HUB?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IGroup {
|
export interface IGroup {
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { IInfestedFoundryClient } from "./inventoryTypes/inventoryTypes";
|
import { IEquipmentClient } from "./inventoryTypes/commonInventoryTypes";
|
||||||
|
import { IInfestedFoundryClient, TEquipmentKey } from "./inventoryTypes/inventoryTypes";
|
||||||
|
|
||||||
export interface IPurchaseRequest {
|
export interface IPurchaseRequest {
|
||||||
PurchaseParams: IPurchaseParams;
|
PurchaseParams: IPurchaseParams;
|
||||||
@ -29,6 +30,8 @@ export interface ICurrencyChanges {
|
|||||||
|
|
||||||
export type IInventoryChanges = {
|
export type IInventoryChanges = {
|
||||||
[_ in SlotNames]?: IBinChanges;
|
[_ in SlotNames]?: IBinChanges;
|
||||||
|
} & {
|
||||||
|
[_ in TEquipmentKey]?: IEquipmentClient[];
|
||||||
} & ICurrencyChanges & { InfestedFoundry?: IInfestedFoundryClient } & Record<
|
} & ICurrencyChanges & { InfestedFoundry?: IInfestedFoundryClient } & Record<
|
||||||
string,
|
string,
|
||||||
IBinChanges | number | object[] | IInfestedFoundryClient
|
IBinChanges | number | object[] | IInfestedFoundryClient
|
||||||
|
@ -13,7 +13,8 @@ import {
|
|||||||
IFusionTreasure,
|
IFusionTreasure,
|
||||||
ICustomMarkers,
|
ICustomMarkers,
|
||||||
IPlayerSkills,
|
IPlayerSkills,
|
||||||
IQuestKeyDatabase
|
IQuestKeyDatabase,
|
||||||
|
ILoreFragmentScan
|
||||||
} from "./inventoryTypes/inventoryTypes";
|
} from "./inventoryTypes/inventoryTypes";
|
||||||
|
|
||||||
export interface IThemeUpdateRequest {
|
export interface IThemeUpdateRequest {
|
||||||
@ -85,6 +86,7 @@ export type IMissionInventoryUpdateRequest = {
|
|||||||
FocusXpIncreases?: number[];
|
FocusXpIncreases?: number[];
|
||||||
PlayerSkillGains: IPlayerSkills;
|
PlayerSkillGains: IPlayerSkills;
|
||||||
CustomMarkers?: ICustomMarkers[];
|
CustomMarkers?: ICustomMarkers[];
|
||||||
|
LoreFragmentScans?: ILoreFragmentScan[];
|
||||||
} & {
|
} & {
|
||||||
[K in TEquipmentKey]?: IEquipmentClient[];
|
[K in TEquipmentKey]?: IEquipmentClient[];
|
||||||
};
|
};
|
||||||
|
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
|
||||||
|
}
|
||||||
|
}
|
@ -1,27 +0,0 @@
|
|||||||
import { IGroup } from "@/src/types/loginTypes";
|
|
||||||
|
|
||||||
export const groups: IGroup[] = [
|
|
||||||
{
|
|
||||||
experiment: "InitiatePage",
|
|
||||||
experimentGroup: "initiate_page_no_video"
|
|
||||||
},
|
|
||||||
{ experiment: "ChatQAChannel", experimentGroup: "control" },
|
|
||||||
{
|
|
||||||
experiment: "MarketSearchRecommendations",
|
|
||||||
experimentGroup: "premium_credit_purchases_14_days"
|
|
||||||
},
|
|
||||||
{ experiment: "SurveyLocation", experimentGroup: "EXIT" },
|
|
||||||
{ experiment: "GamesightAB", experimentGroup: "a" }
|
|
||||||
];
|
|
||||||
|
|
||||||
export const platformCDNs = [
|
|
||||||
"https://content.warframe.com/",
|
|
||||||
"https://content-xb1.warframe.com/",
|
|
||||||
"https://content-ps4.warframe.com/",
|
|
||||||
"https://content-swi.warframe.com/",
|
|
||||||
"https://content-mob.warframe.com/"
|
|
||||||
];
|
|
||||||
|
|
||||||
export const DTLS = 99;
|
|
||||||
|
|
||||||
export const HUB = "https://arbiter.warframe.com/api/";
|
|
@ -539,10 +539,12 @@
|
|||||||
</form>
|
</form>
|
||||||
<h5 class="mt-3" data-loc="cheats_quests"></h6>
|
<h5 class="mt-3" data-loc="cheats_quests"></h6>
|
||||||
<div class="mb-2 d-flex flex-wrap gap-2">
|
<div class="mb-2 d-flex flex-wrap gap-2">
|
||||||
<button class="btn btn-primary" onclick="doQuestUpdate('unlockAll');" data-loc="cheats_quests_UnlockAll"></button>
|
<button class="btn btn-primary" onclick="doQuestUpdate('unlockAll');" data-loc="cheats_quests_unlockAll"></button>
|
||||||
<button class="btn btn-primary" onclick="doQuestUpdate('completeAll');" data-loc="cheats_quests_CompleteAll"></button>
|
<button class="btn btn-primary" onclick="doQuestUpdate('completeAll');" data-loc="cheats_quests_completeAll"></button>
|
||||||
<button class="btn btn-primary" onclick="doQuestUpdate('completeAllUnlocked');" data-loc="cheats_quests_CompleteAllUnlocked"></button>
|
<button class="btn btn-primary" onclick="doQuestUpdate('completeAllUnlocked');" data-loc="cheats_quests_completeAllUnlocked"></button>
|
||||||
<button class="btn btn-primary" onclick="doQuestUpdate('ResetAll');" data-loc="cheats_quests_ResetAll"></button>
|
<button class="btn btn-primary" onclick="doQuestUpdate('ResetAll');" data-loc="cheats_quests_resetAll"></button>
|
||||||
|
<button class="btn btn-primary" onclick="doQuestUpdate('giveAll');" data-loc="cheats_quests_giveAll"></button>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -118,10 +118,11 @@ dict = {
|
|||||||
cheats_changeButton: `Change`,
|
cheats_changeButton: `Change`,
|
||||||
cheats_none: `None`,
|
cheats_none: `None`,
|
||||||
cheats_quests: `Quests`,
|
cheats_quests: `Quests`,
|
||||||
cheats_quests_UnlockAll: `Unlock All Quests`,
|
cheats_quests_unlockAll: `Unlock All Quests`,
|
||||||
cheats_quests_CompleteAll: `Complete All Quests`,
|
cheats_quests_completeAll: `Complete All Quests`,
|
||||||
cheats_quests_CompleteAllUnlocked: `Complete All Unlocked Quests`,
|
cheats_quests_completeAllUnlocked: `Complete All Unlocked Quests`,
|
||||||
cheats_quests_ResetAll: `Reset All Quests`,
|
cheats_quests_resetAll: `Reset All Quests`,
|
||||||
|
cheats_quests_giveAll: `Give All Quests`,
|
||||||
import_importNote: `You can provide a full or partial inventory response (client respresentation) here. All fields that are supported by the importer <b>will be overwritten</b> in your account.`,
|
import_importNote: `You can provide a full or partial inventory response (client respresentation) here. All fields that are supported by the importer <b>will be overwritten</b> in your account.`,
|
||||||
import_submit: `Submit`
|
import_submit: `Submit`
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user