From 419096f603ee2e97c5aa0afe203cfb64088efba2 Mon Sep 17 00:00:00 2001
From: Sainan <63328889+Sainan@users.noreply.github.com>
Date: Thu, 17 Apr 2025 08:01:59 -0700
Subject: [PATCH] feat: noDeathMarks cheat (#1691)
Closes #1583
Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1691
Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com>
Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
---
config.json.example | 1 +
src/services/configService.ts | 1 +
src/services/missionInventoryUpdateService.ts | 31 ++++++++++---------
static/webui/index.html | 4 +++
static/webui/translations/de.js | 1 +
static/webui/translations/en.js | 1 +
static/webui/translations/es.js | 1 +
static/webui/translations/fr.js | 1 +
static/webui/translations/ru.js | 1 +
static/webui/translations/zh.js | 1 +
10 files changed, 29 insertions(+), 14 deletions(-)
diff --git a/config.json.example b/config.json.example
index 9d072329..32562400 100644
--- a/config.json.example
+++ b/config.json.example
@@ -33,6 +33,7 @@
"noArgonCrystalDecay": false,
"noMasteryRankUpCooldown": false,
"noVendorPurchaseLimits": true,
+ "noDeathMarks": false,
"noKimCooldowns": false,
"instantResourceExtractorDrones": false,
"noResourceExtractorDronesDamage": false,
diff --git a/src/services/configService.ts b/src/services/configService.ts
index cb1a2c38..24707bd5 100644
--- a/src/services/configService.ts
+++ b/src/services/configService.ts
@@ -39,6 +39,7 @@ interface IConfig {
noArgonCrystalDecay?: boolean;
noMasteryRankUpCooldown?: boolean;
noVendorPurchaseLimits?: boolean;
+ noDeathMarks?: boolean;
noKimCooldowns?: boolean;
instantResourceExtractorDrones?: boolean;
noResourceExtractorDronesDamage?: boolean;
diff --git a/src/services/missionInventoryUpdateService.ts b/src/services/missionInventoryUpdateService.ts
index 0b452ccc..c30af726 100644
--- a/src/services/missionInventoryUpdateService.ts
+++ b/src/services/missionInventoryUpdateService.ts
@@ -54,6 +54,7 @@ import { getInfNodes } from "@/src/helpers/nemesisHelpers";
import { Loadout } from "../models/inventoryModels/loadoutModel";
import { ILoadoutConfigDatabase } from "../types/saveLoadoutTypes";
import { getWorldState } from "./worldStateService";
+import { config } from "./configService";
const getRotations = (rewardInfo: IRewardInfo, tierOverride?: number): number[] => {
// For Spy missions, e.g. 3 vaults cracked = A, B, C
@@ -418,22 +419,24 @@ export const addMissionInventoryUpdates = async (
break;
}
case "DeathMarks": {
- for (const bossName of value) {
- if (inventory.DeathMarks.indexOf(bossName) == -1) {
- // It's a new death mark; we have to say the line.
- await createMessage(inventory.accountOwnerId, [
- {
- sub: bossName,
- sndr: "/Lotus/Language/G1Quests/DeathMarkSender",
- msg: "/Lotus/Language/G1Quests/DeathMarkMessage",
- icon: "/Lotus/Interface/Icons/Npcs/Stalker_d.png",
- highPriority: true,
- expiry: new Date(Date.now() + 86400_000) // TOVERIFY: This type of inbox message seems to automatically delete itself. We'll just delete it after 24 hours, but it's clear if this is correct.
- }
- ]);
+ if (!config.noDeathMarks) {
+ for (const bossName of value) {
+ if (inventory.DeathMarks.indexOf(bossName) == -1) {
+ // It's a new death mark; we have to say the line.
+ await createMessage(inventory.accountOwnerId, [
+ {
+ sub: bossName,
+ sndr: "/Lotus/Language/G1Quests/DeathMarkSender",
+ msg: "/Lotus/Language/G1Quests/DeathMarkMessage",
+ icon: "/Lotus/Interface/Icons/Npcs/Stalker_d.png",
+ highPriority: true,
+ expiry: new Date(Date.now() + 86400_000) // TOVERIFY: This type of inbox message seems to automatically delete itself. We'll just delete it after 24 hours, but it's clear if this is correct.
+ }
+ ]);
+ }
}
+ inventory.DeathMarks = value;
}
- inventory.DeathMarks = value;
break;
}
case "CapturedAnimals": {
diff --git a/static/webui/index.html b/static/webui/index.html
index ec786b4e..3830e378 100644
--- a/static/webui/index.html
+++ b/static/webui/index.html
@@ -611,6 +611,10 @@
+
+
+
+
diff --git a/static/webui/translations/de.js b/static/webui/translations/de.js
index 20be9fbd..2357d455 100644
--- a/static/webui/translations/de.js
+++ b/static/webui/translations/de.js
@@ -138,6 +138,7 @@ dict = {
cheats_noArgonCrystalDecay: `Argon-Kristalle verschwinden niemals`,
cheats_noMasteryRankUpCooldown: `Keine Wartezeit beim Meisterschaftsrangaufstieg`,
cheats_noVendorPurchaseLimits: `Keine Kaufbeschränkungen bei Händlern`,
+ cheats_noDeathMarks: `[UNTRANSLATED] No Death Marks`,
cheats_noKimCooldowns: `Keine Wartezeit bei KIM`,
cheats_instantResourceExtractorDrones: `Sofortige Ressourcen-Extraktor-Drohnen`,
cheats_noResourceExtractorDronesDamage: `Kein Schaden für Ressourcen-Extraktor-Drohnen`,
diff --git a/static/webui/translations/en.js b/static/webui/translations/en.js
index bbf2561a..3b6fb449 100644
--- a/static/webui/translations/en.js
+++ b/static/webui/translations/en.js
@@ -137,6 +137,7 @@ dict = {
cheats_noArgonCrystalDecay: `No Argon Crystal Decay`,
cheats_noMasteryRankUpCooldown: `No Mastery Rank Up Cooldown`,
cheats_noVendorPurchaseLimits: `No Vendor Purchase Limits`,
+ cheats_noDeathMarks: `No Death Marks`,
cheats_noKimCooldowns: `No KIM Cooldowns`,
cheats_instantResourceExtractorDrones: `Instant Resource Extractor Drones`,
cheats_noResourceExtractorDronesDamage: `No Resource Extractor Drones Damage`,
diff --git a/static/webui/translations/es.js b/static/webui/translations/es.js
index c979bddc..8b751375 100644
--- a/static/webui/translations/es.js
+++ b/static/webui/translations/es.js
@@ -138,6 +138,7 @@ dict = {
cheats_noArgonCrystalDecay: `Sin descomposición de cristal de Argón`,
cheats_noMasteryRankUpCooldown: `Sin tiempo de espera para rango de maestría`,
cheats_noVendorPurchaseLimits: `Sin límite de compras de vendedores`,
+ cheats_noDeathMarks: `[UNTRANSLATED] No Death Marks`,
cheats_noKimCooldowns: `Sin tiempo de espera para conversaciones KIM`,
cheats_instantResourceExtractorDrones: `Drones de extracción de recursos instantáneos`,
cheats_noResourceExtractorDronesDamage: `Sin daño a los drones extractores de recursos`,
diff --git a/static/webui/translations/fr.js b/static/webui/translations/fr.js
index 54f041c6..b1938b53 100644
--- a/static/webui/translations/fr.js
+++ b/static/webui/translations/fr.js
@@ -138,6 +138,7 @@ dict = {
cheats_noArgonCrystalDecay: `[UNTRANSLATED] No Argon Crystal Decay`,
cheats_noMasteryRankUpCooldown: `[UNTRANSLATED] No Mastery Rank Up Cooldown`,
cheats_noVendorPurchaseLimits: `[UNTRANSLATED] No Vendor Purchase Limits`,
+ cheats_noDeathMarks: `[UNTRANSLATED] No Death Marks`,
cheats_noKimCooldowns: `[UNTRANSLATED] No KIM Cooldowns`,
cheats_instantResourceExtractorDrones: `Ressources de drone d'extraction instantannées`,
cheats_noResourceExtractorDronesDamage: `[UNTRANSLATED] No Resource Extractor Drones Damage`,
diff --git a/static/webui/translations/ru.js b/static/webui/translations/ru.js
index 62c82f70..4a5dceeb 100644
--- a/static/webui/translations/ru.js
+++ b/static/webui/translations/ru.js
@@ -138,6 +138,7 @@ dict = {
cheats_noArgonCrystalDecay: `Без распада аргоновых кристаллов`,
cheats_noMasteryRankUpCooldown: `Повышение ранга мастерства без кулдауна`,
cheats_noVendorPurchaseLimits: `Отсутствие лимитов на покупки у вендоров`,
+ cheats_noDeathMarks: `[UNTRANSLATED] No Death Marks`,
cheats_noKimCooldowns: `[UNTRANSLATED] No KIM Cooldowns`,
cheats_instantResourceExtractorDrones: `Мгновенные Экстракторы Ресурсов`,
cheats_noResourceExtractorDronesDamage: `[UNTRANSLATED] No Resource Extractor Drones Damage`,
diff --git a/static/webui/translations/zh.js b/static/webui/translations/zh.js
index 3d7af8ec..5af41bea 100644
--- a/static/webui/translations/zh.js
+++ b/static/webui/translations/zh.js
@@ -138,6 +138,7 @@ dict = {
cheats_noArgonCrystalDecay: `[UNTRANSLATED] No Argon Crystal Decay`,
cheats_noMasteryRankUpCooldown: `[UNTRANSLATED] No Mastery Rank Up Cooldown`,
cheats_noVendorPurchaseLimits: `[UNTRANSLATED] No Vendor Purchase Limits`,
+ cheats_noDeathMarks: `[UNTRANSLATED] No Death Marks`,
cheats_noKimCooldowns: `[UNTRANSLATED] No KIM Cooldowns`,
cheats_instantResourceExtractorDrones: `即时资源采集无人机`,
cheats_noResourceExtractorDronesDamage: `[UNTRANSLATED] No Resource Extractor Drones Damage`,