From 785c6aa7ac69177041d4b5062532fe86a111df75 Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Tue, 22 Apr 2025 21:58:22 +0200 Subject: [PATCH] chore: improve archwing mission detection SettlementNode10 was not being excluded --- src/helpers/nemesisHelpers.ts | 3 ++- src/services/worldStateService.ts | 19 +++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/helpers/nemesisHelpers.ts b/src/helpers/nemesisHelpers.ts index fff5e94e..ce4190fa 100644 --- a/src/helpers/nemesisHelpers.ts +++ b/src/helpers/nemesisHelpers.ts @@ -6,6 +6,7 @@ import { logger } from "../utils/logger"; import { IOid } from "../types/commonTypes"; import { Types } from "mongoose"; import { addMods } from "../services/inventoryService"; +import { isArchwingMission } from "../services/worldStateService"; export const getInfNodes = (faction: string, rank: number): IInfNode[] => { const infNodes = []; @@ -22,7 +23,7 @@ export const getInfNodes = (faction: string, rank: number): IInfNode[] => { value.missionIndex != 42 && // not face off value.name.indexOf("1999NodeI") == -1 && // not stage defence value.name.indexOf("1999NodeJ") == -1 && // not lich bounty - value.name.indexOf("Archwing") == -1 + !isArchwingMission(value) ) { //console.log(dict_en[value.name]); infNodes.push({ Node: key, Influence: 1 }); diff --git a/src/services/worldStateService.ts b/src/services/worldStateService.ts index f9d727a9..18cc9d5c 100644 --- a/src/services/worldStateService.ts +++ b/src/services/worldStateService.ts @@ -4,7 +4,7 @@ import { buildConfig } from "@/src/services/buildConfigService"; import { unixTimesInMs } from "@/src/constants/timeConstants"; import { config } from "@/src/services/configService"; import { CRng } from "@/src/services/rngService"; -import { eMissionType, ExportNightwave, ExportRegions } from "warframe-public-export-plus"; +import { eMissionType, ExportNightwave, ExportRegions, IRegion } from "warframe-public-export-plus"; import { ICalendarDay, ICalendarSeason, @@ -185,7 +185,7 @@ const pushSyndicateMissions = ( const nodeOptions: string[] = []; for (const [key, value] of Object.entries(ExportRegions)) { if ( - value.name.indexOf("Archwing") == -1 && // no archwing + !isArchwingMission(value) && value.systemIndex != 23 && // no 1999 stuff value.missionIndex != 10 && // Exclude MT_PVP (for relays) value.missionIndex != 23 && // no junctions @@ -269,7 +269,7 @@ const pushSortieIfRelevant = (worldState: IWorldState, day: number): void => { if ( sortieFactionToSystemIndexes[sortieBossToFaction[boss]].includes(value.systemIndex) && sortieFactionToFactionIndexes[sortieBossToFaction[boss]].includes(value.factionIndex!) && - value.name.indexOf("Archwing") == -1 && + !isArchwingMission(value) && value.missionIndex != 0 && // Exclude MT_ASSASSINATION value.missionIndex != 10 && // Exclude MT_PVP (for relays) value.missionIndex != 21 && // Exclude MT_PURIFY @@ -1112,7 +1112,7 @@ export const getLiteSortie = (week: number): ILiteSortie => { value.systemIndex === systemIndex && value.factionIndex !== undefined && value.factionIndex < 2 && - value.name.indexOf("Archwing") == -1 && + !isArchwingMission(value) && value.missionIndex != 0 // Exclude MT_ASSASSINATION ) { nodes.push(key); @@ -1163,3 +1163,14 @@ export const getLiteSortie = (week: number): ILiteSortie => { ] }; }; + +export const isArchwingMission = (node: IRegion): boolean => { + if (node.name.indexOf("Archwing") != -1) { + return true; + } + // SettlementNode10 + if (node.missionIndex == 25) { + return true; + } + return false; +}; -- 2.47.2