diff --git a/src/controllers/api/nemesisController.ts b/src/controllers/api/nemesisController.ts index 1c4fc8c0..10c28c03 100644 --- a/src/controllers/api/nemesisController.ts +++ b/src/controllers/api/nemesisController.ts @@ -96,7 +96,9 @@ export const nemesisController: RequestHandler = async (req, res) => { Weakened: body.target.Weakened, PrevOwners: 0, HenchmenKilled: 0, - SecondInCommand: body.target.SecondInCommand + SecondInCommand: body.target.SecondInCommand, + MissionCount: 0, + LastEnc: 0 }; inventory.NemesisAbandonedRewards = []; // unclear if we need to do this since the client also submits this with missionInventoryUpdate await inventory.save(); diff --git a/src/helpers/nemesisHelpers.ts b/src/helpers/nemesisHelpers.ts index fada2299..9fea8880 100644 --- a/src/helpers/nemesisHelpers.ts +++ b/src/helpers/nemesisHelpers.ts @@ -25,8 +25,8 @@ export const getInfNodes = (faction: string, rank: number): IInfNode[] => { return infNodes; }; -const systemIndexes: Record> = { - FC_GRINEER: { 0: 2, 1: 3, 2: 9, 3: 11, 4: 18 }, - FC_CORPUS: { 0: 1, 1: 15, 2: 4, 3: 7, 4: 8 }, - FC_INFESTATION: { 0: 23 } +const systemIndexes: Record = { + FC_GRINEER: [2, 3, 9, 11, 18], + FC_CORPUS: [1, 15, 4, 7, 8], + FC_INFESTATION: [23] }; diff --git a/src/models/inventoryModels/inventoryModel.ts b/src/models/inventoryModels/inventoryModel.ts index cdfc4dca..8e24b4c6 100644 --- a/src/models/inventoryModels/inventoryModel.ts +++ b/src/models/inventoryModels/inventoryModel.ts @@ -1090,7 +1090,9 @@ const nemesisSchema = new Schema( HenchmenKilled: Number, HintProgress: Number, Hints: [Number], - GuessHistory: [Number] + GuessHistory: [Number], + MissionCount: Number, + LastEnc: Number }, { _id: false } ); diff --git a/src/services/missionInventoryUpdateService.ts b/src/services/missionInventoryUpdateService.ts index 6a91eb19..81bdf6f5 100644 --- a/src/services/missionInventoryUpdateService.ts +++ b/src/services/missionInventoryUpdateService.ts @@ -479,8 +479,24 @@ export const addMissionRewards = async ( if (inventory.Nemesis.Faction == "FC_INFESTATION") { inventoryChanges.Nemesis.HenchmenKilled ??= 0; + inventoryChanges.Nemesis.MissionCount ??= 0; + inventory.Nemesis.HenchmenKilled += 5; + inventory.Nemesis.MissionCount += 1; + inventoryChanges.Nemesis.HenchmenKilled += 5; + inventoryChanges.Nemesis.MissionCount += 1; + + if (inventory.Nemesis.HenchmenKilled >= 100) { + inventory.Nemesis.InfNodes = [ + { + Node: "CrewBattleNode559", + Influence: 1 + } + ]; + inventory.Nemesis.Weakened = true; + inventoryChanges.Nemesis.Weakened = true; + } } inventoryChanges.Nemesis.InfNodes = inventory.Nemesis.InfNodes; diff --git a/src/types/inventoryTypes/inventoryTypes.ts b/src/types/inventoryTypes/inventoryTypes.ts index fb0d3071..59c1697a 100644 --- a/src/types/inventoryTypes/inventoryTypes.ts +++ b/src/types/inventoryTypes/inventoryTypes.ts @@ -814,6 +814,8 @@ export interface INemesisClient extends INemesisBaseClient { HintProgress: number; Hints: number[]; GuessHistory: number[]; + MissionCount: number; + LastEnc: number; } export interface INemesisDatabase extends Omit {