feat: obtaining Focus XP via lens #551
@ -721,6 +721,30 @@ const addMissionComplete = (inventory: IInventoryDatabaseDocument, { Tag, Comple
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const addFocusXpIncreases = (inventory: IInventoryDatabaseDocument, focusXpPlus: number[] | undefined) => {
|
||||||
|
enum FocusType {
|
||||||
|
AP_UNIVERSAL,
|
||||||
|
AP_ATTACK,
|
||||||
|
AP_DEFENSE,
|
||||||
|
AP_TACTIC,
|
||||||
|
AP_POWER,
|
||||||
|
AP_PRECEPT,
|
||||||
|
AP_FUSION,
|
||||||
|
AP_WARD,
|
||||||
|
AP_UMBRA,
|
||||||
|
AP_ANY
|
||||||
|
}
|
||||||
|
|
||||||
|
if (focusXpPlus) {
|
||||||
|
inventory.FocusXP ??= { AP_ATTACK: 0, AP_DEFENSE: 0, AP_TACTIC: 0, AP_POWER: 0, AP_WARD: 0 };
|
||||||
|
inventory.FocusXP.AP_ATTACK += focusXpPlus[FocusType.AP_ATTACK];
|
||||||
|
inventory.FocusXP.AP_DEFENSE += focusXpPlus[FocusType.AP_DEFENSE];
|
||||||
|
inventory.FocusXP.AP_TACTIC += focusXpPlus[FocusType.AP_TACTIC];
|
||||||
|
inventory.FocusXP.AP_POWER += focusXpPlus[FocusType.AP_POWER];
|
||||||
|
inventory.FocusXP.AP_WARD += focusXpPlus[FocusType.AP_WARD];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
export const missionInventoryUpdate = async (data: IMissionInventoryUpdateRequest, accountId: string) => {
|
export const missionInventoryUpdate = async (data: IMissionInventoryUpdateRequest, accountId: string) => {
|
||||||
const {
|
const {
|
||||||
RawUpgrades,
|
RawUpgrades,
|
||||||
@ -731,7 +755,8 @@ export const missionInventoryUpdate = async (data: IMissionInventoryUpdateReques
|
|||||||
Consumables,
|
Consumables,
|
||||||
Recipes,
|
Recipes,
|
||||||
Missions,
|
Missions,
|
||||||
FusionTreasures
|
FusionTreasures,
|
||||||
|
FocusXpIncreases
|
||||||
} = data;
|
} = data;
|
||||||
const inventory = await getInventory(accountId);
|
const inventory = await getInventory(accountId);
|
||||||
|
|
||||||
@ -793,6 +818,7 @@ export const missionInventoryUpdate = async (data: IMissionInventoryUpdateReques
|
|||||||
if (Missions) {
|
if (Missions) {
|
||||||
addMissionComplete(inventory, Missions);
|
addMissionComplete(inventory, Missions);
|
||||||
}
|
}
|
||||||
|
addFocusXpIncreases(inventory, FocusXpIncreases);
|
||||||
|
|
||||||
const changedInventory = await inventory.save();
|
const changedInventory = await inventory.save();
|
||||||
return changedInventory.toJSON();
|
return changedInventory.toJSON();
|
||||||
|
@ -70,6 +70,7 @@ export interface IMissionInventoryUpdateRequest {
|
|||||||
Missions?: IMission;
|
Missions?: IMission;
|
||||||
EvolutionProgress?: IEvolutionProgress[];
|
EvolutionProgress?: IEvolutionProgress[];
|
||||||
LastRegionPlayed?: TSolarMapRegion;
|
LastRegionPlayed?: TSolarMapRegion;
|
||||||
|
FocusXpIncreases?: number[];
|
||||||
|
|
||||||
FusionPoints?: number; // Not a part of the request, but we put it in this struct as an intermediate storage.
|
FusionPoints?: number; // Not a part of the request, but we put it in this struct as an intermediate storage.
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user