feat: implement focus.php #254

Merged
Sainan merged 3 commits from focus into main 2024-06-01 09:22:02 -07:00
Showing only changes of commit 309e9836c0 - Show all commits

View File

@ -5,43 +5,6 @@ import { IMiscItem, TFocusPolarity } from "@/src/types/inventoryTypes/inventoryT
import { logger } from "@/src/utils/logger"; import { logger } from "@/src/utils/logger";
import baseFocusPointCosts from "@/static/json/baseFocusPointCosts.json"; import baseFocusPointCosts from "@/static/json/baseFocusPointCosts.json";
enum FocusOperation {
UnlockWay = "2",
UnlockUpgrade = "3",
LevelUpUpgrade = "4",
ActivateWay = "5",
ConvertShard = "9"
}
// For UnlockWay & ActivateWay
interface IWayRequest {
FocusType: string;
}
interface IUnlockUpgradeRequest {
FocusTypes: string[];
}
interface ILevelUpUpgradeRequest {
FocusInfos: {
ItemType: string;
FocusXpCost: number;
IsUniversal: boolean;
Level: number;
IsActiveAbility: boolean;
}[];
}
interface IConvertShardRequest {
Shards: IMiscItem[];
Polarity: TFocusPolarity;
}
// Works for ways & upgrades
const focusTypeToPolarity = (type: string): TFocusPolarity => {
return ("AP_" + type.substr(1).split("/")[3].toUpperCase()) as TFocusPolarity;
};
export const focusController: RequestHandler = async (req, res) => { export const focusController: RequestHandler = async (req, res) => {
const accountId = await getAccountIdForRequest(req); const accountId = await getAccountIdForRequest(req);
switch (req.query.op) { switch (req.query.op) {
@ -141,6 +104,43 @@ export const focusController: RequestHandler = async (req, res) => {
} }
}; };
enum FocusOperation {
UnlockWay = "2",
UnlockUpgrade = "3",
LevelUpUpgrade = "4",
ActivateWay = "5",
ConvertShard = "9"
}
// For UnlockWay & ActivateWay
interface IWayRequest {
FocusType: string;
}
interface IUnlockUpgradeRequest {
FocusTypes: string[];
}
interface ILevelUpUpgradeRequest {
FocusInfos: {
ItemType: string;
FocusXpCost: number;
IsUniversal: boolean;
Level: number;
IsActiveAbility: boolean;
}[];
}
interface IConvertShardRequest {
Shards: IMiscItem[];
Polarity: TFocusPolarity;
}
// Works for ways & upgrades
const focusTypeToPolarity = (type: string): TFocusPolarity => {
return ("AP_" + type.substr(1).split("/")[3].toUpperCase()) as TFocusPolarity;
};
const shardValues = { const shardValues = {
"/Lotus/Types/Gameplay/Eidolon/Resources/SentientShards/SentientShardCommonItem": 2_500, "/Lotus/Types/Gameplay/Eidolon/Resources/SentientShards/SentientShardCommonItem": 2_500,
"/Lotus/Types/Gameplay/Eidolon/Resources/SentientShards/SentientShardSynthesizedItem": 5_000, "/Lotus/Types/Gameplay/Eidolon/Resources/SentientShards/SentientShardSynthesizedItem": 5_000,