feat: noDeathMarks cheat #1691
@ -33,6 +33,7 @@
 | 
			
		||||
  "noArgonCrystalDecay": false,
 | 
			
		||||
  "noMasteryRankUpCooldown": false,
 | 
			
		||||
  "noVendorPurchaseLimits": true,
 | 
			
		||||
  "noDeathMarks": false,
 | 
			
		||||
  "noKimCooldowns": false,
 | 
			
		||||
  "instantResourceExtractorDrones": false,
 | 
			
		||||
  "noResourceExtractorDronesDamage": false,
 | 
			
		||||
 | 
			
		||||
@ -39,6 +39,7 @@ interface IConfig {
 | 
			
		||||
    noArgonCrystalDecay?: boolean;
 | 
			
		||||
    noMasteryRankUpCooldown?: boolean;
 | 
			
		||||
    noVendorPurchaseLimits?: boolean;
 | 
			
		||||
    noDeathMarks?: boolean;
 | 
			
		||||
    noKimCooldowns?: boolean;
 | 
			
		||||
    instantResourceExtractorDrones?: boolean;
 | 
			
		||||
    noResourceExtractorDronesDamage?: boolean;
 | 
			
		||||
 | 
			
		||||
@ -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": {
 | 
			
		||||
 | 
			
		||||
@ -611,6 +611,10 @@
 | 
			
		||||
                                        <input class="form-check-input" type="checkbox" id="noVendorPurchaseLimits" />
 | 
			
		||||
                                        <label class="form-check-label" for="noVendorPurchaseLimits" data-loc="cheats_noVendorPurchaseLimits"></label>
 | 
			
		||||
                                    </div>
 | 
			
		||||
                                    <div class="form-check">
 | 
			
		||||
                                        <input class="form-check-input" type="checkbox" id="noDeathMarks" />
 | 
			
		||||
                                        <label class="form-check-label" for="noDeathMarks" data-loc="cheats_noDeathMarks"></label>
 | 
			
		||||
                                    </div>
 | 
			
		||||
                                    <div class="form-check">
 | 
			
		||||
                                        <input class="form-check-input" type="checkbox" id="noKimCooldowns" />
 | 
			
		||||
                                        <label class="form-check-label" for="noKimCooldowns" data-loc="cheats_noKimCooldowns"></label>
 | 
			
		||||
 | 
			
		||||
@ -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`,
 | 
			
		||||
 | 
			
		||||
@ -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`,
 | 
			
		||||
 | 
			
		||||
@ -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`,
 | 
			
		||||
 | 
			
		||||
@ -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`,
 | 
			
		||||
 | 
			
		||||
@ -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`,
 | 
			
		||||
 | 
			
		||||
@ -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`,
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user