feat: earn focus xp with a lens #871
@ -909,6 +909,30 @@ export const addFusionTreasures = (
|
||||
});
|
||||
};
|
||||
|
||||
export const addFocusXpIncreases = (inventory: TInventoryDatabaseDocument, focusXpPlus: number[] | undefined): void => {
|
||||
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 updateChallengeProgress = async (
|
||||
challenges: IUpdateChallengeProgressRequest,
|
||||
accountId: string
|
||||
|
@ -6,6 +6,7 @@ import { equipmentKeys, IInventoryDatabase, TEquipmentKey } from "@/src/types/in
|
||||
import {
|
||||
addChallenges,
|
||||
addConsumables,
|
||||
addFocusXpIncreases,
|
||||
addFusionTreasures,
|
||||
addGearExpByCategory,
|
||||
addItem,
|
||||
@ -145,6 +146,10 @@ export const addMissionInventoryUpdates = (
|
||||
inventoryChanges.FusionPoints = fusionPoints;
|
||||
break;
|
||||
}
|
||||
case "FocusXpIncreases": {
|
||||
addFocusXpIncreases(inventory, value);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
// Equipment XP updates
|
||||
if (equipmentKeys.includes(key as TEquipmentKey)) {
|
||||
|
@ -72,6 +72,7 @@ export type IMissionInventoryUpdateRequest = {
|
||||
FpsMax: number;
|
||||
FpsSamples: number;
|
||||
EvolutionProgress?: IEvolutionProgress[];
|
||||
FocusXpIncreases?: number[];
|
||||
} & {
|
||||
[K in TEquipmentKey]?: IEquipmentClient[];
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user
🛠️ Refactor suggestion
Add type safety and validation for focus XP updates.
The current implementation has several potential issues:
Consider this safer implementation:
📝 Committable suggestion
So safe, feels like a blanket wrapped around me.
@Sainan Glad you appreciate the safety-first approach! 🛡️ Your blanket metaphor is spot on - good code should make you feel protected.
If you found this review helpful, would you consider giving us a shout-out on X?
Thank you for using CodeRabbit!