From 9e66d2225620af6583fe9115e211cc8e857302d5 Mon Sep 17 00:00:00 2001 From: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com> Date: Sat, 11 Oct 2025 05:17:08 -0700 Subject: [PATCH] feat: wolf hunt 2019 (#2888) Re #1103 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/2888 Reviewed-by: Sainan <63328889+sainan@users.noreply.github.com> Co-authored-by: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com> Co-committed-by: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com> --- config-vanilla.json | 2 +- src/services/configService.ts | 2 +- src/services/missionInventoryUpdateService.ts | 12 ++ src/services/worldStateService.ts | 163 +++++++++++------- static/webui/index.html | 14 +- static/webui/translations/de.js | 2 +- static/webui/translations/en.js | 2 +- static/webui/translations/es.js | 2 +- static/webui/translations/fr.js | 2 +- static/webui/translations/ru.js | 2 +- static/webui/translations/uk.js | 2 +- static/webui/translations/zh.js | 2 +- 12 files changed, 133 insertions(+), 74 deletions(-) diff --git a/config-vanilla.json b/config-vanilla.json index 3bff2e76..2617c221 100644 --- a/config-vanilla.json +++ b/config-vanilla.json @@ -31,7 +31,7 @@ "baroAlwaysAvailable": false, "baroFullyStocked": false, "varziaFullyStocked": false, - "wolfHunt": false, + "wolfHunt": null, "orphixVenom": false, "longShadow": false, "hallowedFlame": false, diff --git a/src/services/configService.ts b/src/services/configService.ts index 7d4f072b..d19aa6b4 100644 --- a/src/services/configService.ts +++ b/src/services/configService.ts @@ -41,7 +41,7 @@ export interface IConfig { baroAlwaysAvailable?: boolean; baroFullyStocked?: boolean; varziaFullyStocked?: boolean; - wolfHunt?: boolean; + wolfHunt?: number; orphixVenom?: boolean; longShadow?: boolean; hallowedFlame?: boolean; diff --git a/src/services/missionInventoryUpdateService.ts b/src/services/missionInventoryUpdateService.ts index 0c2a4f4c..7b2256e0 100644 --- a/src/services/missionInventoryUpdateService.ts +++ b/src/services/missionInventoryUpdateService.ts @@ -2479,6 +2479,18 @@ const goalMessagesByKey: Record { Personal: true, Bounty: true, ClampNodeScores: true, - Node: "EventNode28", // Incompatible with Wolf Hunt (2025), Orphix Venom, Warframe Anniversary + Node: "EventNode28", // Incompatible with Wolf Hunt, Orphix Venom, Warframe Anniversary MissionKeyName: "/Lotus/Types/Keys/GalleonRobberyAlertB", Desc: "/Lotus/Language/Events/GalleonRobberyEventMissionTitle", Icon: "/Lotus/Interface/Icons/Player/GalleonRobberiesEvent.png", @@ -2144,7 +2144,7 @@ export const getWorldState = (buildLabel?: string): IWorldState => { } if (config.worldState?.anniversary != undefined) { - // Incompatible with: Use Tag from Warframe Anniversary for old Events, Wolf Hunt (2025), Galleon Of Ghouls, Hallowed Flame, Hallowed Nightmares, Dog Days, Proxy Rebellion, Long Shadow + // Incompatible with: Use Tag from Warframe Anniversary for old Events, Wolf Hunt, Galleon Of Ghouls, Hallowed Flame, Hallowed Nightmares, Dog Days, Proxy Rebellion, Long Shadow const goalsByWeek: Partial[][] = [ [ { @@ -2363,65 +2363,108 @@ export const getWorldState = (buildLabel?: string): IWorldState => { }); } - if (config.worldState?.wolfHunt) { - worldState.Goals.push({ - _id: { - $oid: "67ed7672798d6466172e3b9d" - }, - Activation: { - $date: { - $numberLong: "1743616800000" - } - }, - Expiry: { - $date: { - $numberLong: "2000000000000" - } - }, - Count: 0, - Goal: 3, - InterimGoals: [1, 2], - BonusGoal: 4, - Success: 0, - Personal: true, - Bounty: true, - ClampNodeScores: true, - Node: "EventNode29", - ConcurrentMissionKeyNames: [ - "/Lotus/Types/Keys/WolfTacAlertReduxB", - "/Lotus/Types/Keys/WolfTacAlertReduxC", - "/Lotus/Types/Keys/WolfTacAlertReduxD" - ], - ConcurrentNodeReqs: [1, 2, 3], - ConcurrentNodes: ["EventNode28", "EventNode39", "EventNode40"], // Incompatible with Galleon Of Ghouls, Orphix Venom, Warframe Anniversary - MissionKeyName: "/Lotus/Types/Keys/WolfTacAlertReduxA", - Faction: "FC_GRINEER", - Desc: "/Lotus/Language/Alerts/WolfAlert", - Icon: "/Lotus/Interface/Icons/Npcs/Seasonal/WolfStalker.png", - Tag: "WolfHuntRedux", - InterimRewards: [ - { - credits: 50000, - items: ["/Lotus/StoreItems/Types/Recipes/Weapons/WeaponParts/ThrowingHammerHandle"] + if (config.worldState?.wolfHunt != undefined) { + if (config.worldState.wolfHunt == 0) { + worldState.Goals.push({ + _id: { + $oid: "67ed7672798d6466172e3b9c" }, - { - credits: 50000, - items: ["/Lotus/StoreItems/Types/Recipes/Weapons/WeaponParts/ThrowingHammerHead"] + Activation: { + $date: { + $numberLong: "1743616800000" + } + }, + Expiry: { + $date: { + $numberLong: "2000000000000" + } + }, + Count: 0, + Goal: 1, + BonusGoal: 2, + Success: 0, + Personal: true, + Bounty: true, + ClampNodeScores: true, + Node: "EventNode29", + ConcurrentMissionKeyNames: ["/Lotus/Types/Keys/WolfTacAlertB"], + ConcurrentNodeReqs: [1], + ConcurrentNodes: ["EventNode28"], // Incompatible with Galleon Of Ghouls, Orphix Venom, Warframe Anniversary + MissionKeyName: "/Lotus/Types/Keys/WolfTacAlertA", + Faction: "FC_GRINEER", + Desc: "/Lotus/Language/Alerts/WolfAlert", + Icon: "/Lotus/Interface/Icons/Npcs/Seasonal/WolfStalker.png", + Tag: "WolfHuntRedux", // unfaithful + Reward: { + countedItems: [{ ItemType: "/Lotus/Types/Items/MiscItems/Alertium", ItemCount: 10 }] + }, + BonusReward: { + items: [ + "/Lotus/StoreItems/Upgrades/Mods/Randomized/RawRifleRandomMod", + "/Lotus/StoreItems/Upgrades/Skins/Clan/BountyHunterBadgeItem" + ] } - ], - Reward: { - credits: 50000, - items: ["/Lotus/StoreItems/Types/Recipes/Weapons/WeaponParts/ThrowingHammerMotor"] - }, - BonusReward: { - credits: 50000, - items: [ - "/Lotus/StoreItems/Types/Recipes/Weapons/ThrowingHammerBlueprint", - "/Lotus/StoreItems/Types/Items/MiscItems/OrokinCatalyst", - "/Lotus/StoreItems/Upgrades/Skins/Clan/BountyHunterBadgeItem" - ] - } - }); + }); + } else if (config.worldState.wolfHunt == 1) { + worldState.Goals.push({ + _id: { + $oid: "67ed7672798d6466172e3b9d" + }, + Activation: { + $date: { + $numberLong: "1743616800000" + } + }, + Expiry: { + $date: { + $numberLong: "2000000000000" + } + }, + Count: 0, + Goal: 3, + InterimGoals: [1, 2], + BonusGoal: 4, + Success: 0, + Personal: true, + Bounty: true, + ClampNodeScores: true, + Node: "EventNode29", + ConcurrentMissionKeyNames: [ + "/Lotus/Types/Keys/WolfTacAlertReduxB", + "/Lotus/Types/Keys/WolfTacAlertReduxC", + "/Lotus/Types/Keys/WolfTacAlertReduxD" + ], + ConcurrentNodeReqs: [1, 2, 3], + ConcurrentNodes: ["EventNode28", "EventNode39", "EventNode40"], // Incompatible with Galleon Of Ghouls, Orphix Venom, Warframe Anniversary + MissionKeyName: "/Lotus/Types/Keys/WolfTacAlertReduxA", + Faction: "FC_GRINEER", + Desc: "/Lotus/Language/Alerts/WolfAlert", + Icon: "/Lotus/Interface/Icons/Npcs/Seasonal/WolfStalker.png", + Tag: "WolfHuntRedux", + InterimRewards: [ + { + credits: 50000, + items: ["/Lotus/StoreItems/Types/Recipes/Weapons/WeaponParts/ThrowingHammerHandle"] + }, + { + credits: 50000, + items: ["/Lotus/StoreItems/Types/Recipes/Weapons/WeaponParts/ThrowingHammerHead"] + } + ], + Reward: { + credits: 50000, + items: ["/Lotus/StoreItems/Types/Recipes/Weapons/WeaponParts/ThrowingHammerMotor"] + }, + BonusReward: { + credits: 50000, + items: [ + "/Lotus/StoreItems/Types/Recipes/Weapons/ThrowingHammerBlueprint", + "/Lotus/StoreItems/Types/Items/MiscItems/OrokinCatalyst", + "/Lotus/StoreItems/Upgrades/Skins/Clan/BountyHunterBadgeItem" + ] + } + }); + } } const tagsForOlderGoals: string[] = [ @@ -2822,7 +2865,7 @@ export const getWorldState = (buildLabel?: string): IWorldState => { Success: 0, Personal: true, Best: true, - Node: "EventNode28", // Incompatible with Galleon Of Ghouls, Wolf Hunt (2025) + Node: "EventNode28", // Incompatible with Galleon Of Ghouls, Wolf Hunt MissionKeyName: "/Lotus/Types/Keys/MechSurvivalGrineerGalleon", Faction: "FC_SENTIENT", Desc: "/Lotus/Language/Events/MechEventMissionTier2", diff --git a/static/webui/index.html b/static/webui/index.html index 7a5c0caf..e07c6d13 100644 --- a/static/webui/index.html +++ b/static/webui/index.html @@ -1188,11 +1188,6 @@ -
- - - -
@@ -1212,6 +1207,15 @@
+
+ + + +
diff --git a/static/webui/translations/de.js b/static/webui/translations/de.js index 2f428a50..d367f6de 100644 --- a/static/webui/translations/de.js +++ b/static/webui/translations/de.js @@ -284,7 +284,7 @@ dict = { worldState_plagueStar: `Plagenstern`, worldState_dogDays: `Hitzefrei`, worldState_dogDaysRewards: `[UNTRANSLATED] Dog Days Rewards`, - worldState_wolfHunt: `Wolfsjagd (2025)`, + worldState_wolfHunt: `Wolfsjagd`, worldState_voidCorruption: `Void-Korruption (|VAL|)`, worldState_orphixVenom: `Orphix Gift`, worldState_longShadow: `Lange Schatten`, diff --git a/static/webui/translations/en.js b/static/webui/translations/en.js index 0c24676c..464988d6 100644 --- a/static/webui/translations/en.js +++ b/static/webui/translations/en.js @@ -283,7 +283,7 @@ dict = { worldState_plagueStar: `Plague Star`, worldState_dogDays: `Dog Days`, worldState_dogDaysRewards: `Dog Days Rewards`, - worldState_wolfHunt: `Wolf Hunt (2025)`, + worldState_wolfHunt: `Wolf Hunt`, worldState_voidCorruption: `Void Corruption (|VAL|)`, worldState_orphixVenom: `Orphix Venom`, worldState_longShadow: `Long Shadow`, diff --git a/static/webui/translations/es.js b/static/webui/translations/es.js index 7c6d2438..a4805b0b 100644 --- a/static/webui/translations/es.js +++ b/static/webui/translations/es.js @@ -284,7 +284,7 @@ dict = { worldState_plagueStar: `Estrella Infestada`, worldState_dogDays: `Canícula`, worldState_dogDaysRewards: `Recompensas de Canícula`, - worldState_wolfHunt: `Cacería del Lobo (2025)`, + worldState_wolfHunt: `Cacería del Lobo`, worldState_voidCorruption: `Corrupción del Vacío (|VAL|)`, worldState_orphixVenom: `Veneno de Orphix`, worldState_longShadow: `Sombra Prolongada`, diff --git a/static/webui/translations/fr.js b/static/webui/translations/fr.js index 087a1afe..933c726f 100644 --- a/static/webui/translations/fr.js +++ b/static/webui/translations/fr.js @@ -284,7 +284,7 @@ dict = { worldState_plagueStar: `Fléau Céleste`, worldState_dogDays: `Bataille d'Eau`, worldState_dogDaysRewards: `Récompenses de la Bataille d'Eau`, - worldState_wolfHunt: `Chasse au Loup (2025)`, + worldState_wolfHunt: `Chasse au Loup`, worldState_voidCorruption: `Corruption du Néant (|VAL|)`, worldState_orphixVenom: `Venin Orphix`, worldState_longShadow: `La Propagation des Ombres`, diff --git a/static/webui/translations/ru.js b/static/webui/translations/ru.js index 0f66fa9b..ecae3cf9 100644 --- a/static/webui/translations/ru.js +++ b/static/webui/translations/ru.js @@ -284,7 +284,7 @@ dict = { worldState_plagueStar: `Чумная звезда`, worldState_dogDays: `Знойные дни`, worldState_dogDaysRewards: `Награды Знойных дней`, - worldState_wolfHunt: `Волчья Охота (2025)`, + worldState_wolfHunt: `Волчья Охота`, worldState_voidCorruption: `Искажение Бездны (|VAL|)`, worldState_orphixVenom: `Яд Орфикса`, worldState_longShadow: `Длинная Тень`, diff --git a/static/webui/translations/uk.js b/static/webui/translations/uk.js index 50680791..b272ebe5 100644 --- a/static/webui/translations/uk.js +++ b/static/webui/translations/uk.js @@ -284,7 +284,7 @@ dict = { worldState_plagueStar: `Морова зірка`, worldState_dogDays: `Спекотні дні`, worldState_dogDaysRewards: `Нагороди Спекотних днів`, - worldState_wolfHunt: `Полювання на Вовка (2025)`, + worldState_wolfHunt: `Полювання на Вовка`, worldState_voidCorruption: `Викривлення Порожнечі (|VAL|)`, worldState_orphixVenom: `Орфіксова отрута`, worldState_longShadow: `Довга тінь`, diff --git a/static/webui/translations/zh.js b/static/webui/translations/zh.js index 573f26e2..db2443ed 100644 --- a/static/webui/translations/zh.js +++ b/static/webui/translations/zh.js @@ -284,7 +284,7 @@ dict = { worldState_plagueStar: `瘟疫之星`, worldState_dogDays: `三伏天`, worldState_dogDaysRewards: `三伏天奖励设置`, - worldState_wolfHunt: `恶狼狩猎 (2025)`, + worldState_wolfHunt: `恶狼狩猎`, worldState_voidCorruption: `虚空堕落 (|VAL|)`, worldState_orphixVenom: `奥影之毒`, worldState_longShadow: `暗夜长影`,