forked from OpenWF/SpaceNinjaServer
		
	Compare commits
	
		
			8 Commits
		
	
	
		
			acde743410
			...
			3d340460b1
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 3d340460b1 | |||
| 66d3057d40 | |||
| b14a5925df | |||
| 9da47c406a | |||
| 09065bdb4e | |||
| 8f04fc5fdf | |||
| 230ee5f638 | |||
| 21db6ce265 | 
@ -35,5 +35,5 @@ SpaceNinjaServer requires a `config.json`. To set it up, you can copy the [confi
 | 
			
		||||
  - `RadioLegion2Syndicate` for The Emissary
 | 
			
		||||
  - `RadioLegionIntermissionSyndicate` for Intermission I
 | 
			
		||||
  - `RadioLegionSyndicate` for The Wolf of Saturn Six
 | 
			
		||||
- `allTheFissures` can be set to `normal` or `hard` to enable all fissures either in normal or steel path, respectively.
 | 
			
		||||
- `worldState.allTheFissures` can be set to `normal` or `hard` to enable all fissures either in normal or steel path, respectively.
 | 
			
		||||
- `worldState.circuitGameModes` can be set to an array of game modes which will override the otherwise-random pattern in The Circuit. Valid element values are `Survival`, `VoidFlood`, `Excavation`, `Defense`, `Exterminate`, `Assassination`, and `Alchemy`.
 | 
			
		||||
 | 
			
		||||
@ -19,7 +19,7 @@ export const getGuildDojoController: RequestHandler = async (req, res) => {
 | 
			
		||||
            _id: new Types.ObjectId(),
 | 
			
		||||
            pf: "/Lotus/Levels/ClanDojo/DojoHall.level",
 | 
			
		||||
            ppf: "",
 | 
			
		||||
            CompletionTime: new Date(Date.now()),
 | 
			
		||||
            CompletionTime: new Date(Date.now() - 1000),
 | 
			
		||||
            DecoCapacity: 600
 | 
			
		||||
        });
 | 
			
		||||
        await guild.save();
 | 
			
		||||
 | 
			
		||||
@ -57,7 +57,7 @@ export const setGuildMotdController: RequestHandler = async (req, res) => {
 | 
			
		||||
        await guild.save();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (!account.BuildLabel || version_compare(account.BuildLabel, "2020.03.24.20.24") > 0) {
 | 
			
		||||
    if (!account.BuildLabel || version_compare(account.BuildLabel, "2020.11.04.18.58") > 0) {
 | 
			
		||||
        res.json({ IsLongMOTD, MOTD });
 | 
			
		||||
    } else {
 | 
			
		||||
        res.send(MOTD).end();
 | 
			
		||||
 | 
			
		||||
@ -5,6 +5,7 @@ import type { IUpdateQuestRequest } from "../../services/questService.ts";
 | 
			
		||||
import { updateQuestKey } from "../../services/questService.ts";
 | 
			
		||||
import { getInventory } from "../../services/inventoryService.ts";
 | 
			
		||||
import type { IInventoryChanges } from "../../types/purchaseTypes.ts";
 | 
			
		||||
import { sendWsBroadcastTo } from "../../services/wsService.ts";
 | 
			
		||||
 | 
			
		||||
export const updateQuestController: RequestHandler = async (req, res) => {
 | 
			
		||||
    const accountId = parseString(req.query.accountId);
 | 
			
		||||
@ -29,4 +30,5 @@ export const updateQuestController: RequestHandler = async (req, res) => {
 | 
			
		||||
 | 
			
		||||
    await inventory.save();
 | 
			
		||||
    res.send(updateQuestResponse);
 | 
			
		||||
    sendWsBroadcastTo(accountId, { update_inventory: true });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -2483,95 +2483,95 @@ const goalMessagesByKey: Record<string, { sndr: string; msg: string; sub: string
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Seasonal/NoraNight.png"
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/LanternEndlessEventKeyA": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/G1Quests/GenericEventRewardMsgDesc",
 | 
			
		||||
        sub: "/Lotus/Language/G1Quests/GenericTacAlertRewardMsgTitle",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/LotusVamp_d.png"
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/LanternEndlessEventKeyB": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/G1Quests/GenericEventRewardMsgDesc",
 | 
			
		||||
        sub: "/Lotus/Language/G1Quests/GenericTacAlertRewardMsgTitle",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/LotusVamp_d.png"
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/LanternEndlessEventKeyD": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/G1Quests/GenericEventRewardMsgDesc",
 | 
			
		||||
        sub: "/Lotus/Language/G1Quests/GenericTacAlertRewardMsgTitle",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/LotusVamp_d.png"
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/LanternEndlessEventKeyC": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/G1Quests/GenericEventRewardMsgDesc",
 | 
			
		||||
        sub: "/Lotus/Language/G1Quests/GenericTacAlertRewardMsgTitle",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/LotusVamp_d.png"
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyHalloween": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/G1Quests/TacAlertHalloweenRewardsBonusBody",
 | 
			
		||||
        sub: "/Lotus/Language/G1Quests/TacAlertHalloweenRewardsBonusTitle",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/LotusVamp_d.png"
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyHalloweenBonus": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/G1Quests/TacAlertHalloweenRewardsBody",
 | 
			
		||||
        sub: "/Lotus/Language/G1Quests/TacAlertHalloweenRewardsTitle",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/LotusVamp_d.png"
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyHalloweenTimeAttack": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/G1Quests/TacAlertHalloweenRewardsBody",
 | 
			
		||||
        sub: "/Lotus/Language/G1Quests/TacAlertHalloweenRewardsTitle",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/LotusVamp_d.png"
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyProxyRebellionOne": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/G1Quests/RazorbackArmadaRewardBody",
 | 
			
		||||
        sub: "/Lotus/Language/G1Quests/GenericTacAlertSmallRewardMsgTitle",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
 | 
			
		||||
        arg: ["CREDIT_REWARD"]
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyProxyRebellionTwo": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/G1Quests/RazorbackArmadaRewardBody",
 | 
			
		||||
        sub: "/Lotus/Language/G1Quests/GenericTacAlertSmallRewardMsgTitle",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
 | 
			
		||||
        arg: ["CREDIT_REWARD"]
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyProxyRebellionThree": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/G1Quests/RazorbackArmadaRewardBody",
 | 
			
		||||
        sub: "/Lotus/Language/G1Quests/GenericTacAlertSmallRewardMsgTitle",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
 | 
			
		||||
        arg: ["CREDIT_REWARD"]
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyProxyRebellionFour": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/G1Quests/GenericTacAlertBadgeRewardMsgDesc",
 | 
			
		||||
        sub: "/Lotus/Language/G1Quests/GenericTacAlertBadgeRewardMsgTitle",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png"
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyProjectNightwatchEasy": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/G1Quests/ProjectNightwatchRewardMsgA",
 | 
			
		||||
        sub: "/Lotus/Language/G1Quests/ProjectNightwatchTacAlertMissionOneTitle",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
 | 
			
		||||
        arg: ["CREDIT_REWARD"]
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyProjectNightwatch": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/G1Quests/ProjectNightwatchTacAlertMissionRewardBody",
 | 
			
		||||
        sub: "/Lotus/Language/G1Quests/ProjectNightwatchTacAlertMissionTwoTitle",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png"
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyProjectNightwatchHard": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/G1Quests/ProjectNightwatchTacAlertMissionRewardBody",
 | 
			
		||||
        sub: "/Lotus/Language/G1Quests/ProjectNightwatchTacAlertMissionThreeTitle",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png"
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyProjectNightwatchBonus": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/G1Quests/ProjectNightwatchTacAlertMissionRewardBody",
 | 
			
		||||
        sub: "/Lotus/Language/G1Quests/ProjectNightwatchTacAlertMissionFourTitle",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png"
 | 
			
		||||
@ -2607,140 +2607,140 @@ const goalMessagesByKey: Record<string, { sndr: string; msg: string; sub: string
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Entrati/Father.png"
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyAnniversary2019E": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/Messages/Anniversary2024RewardMsgB",
 | 
			
		||||
        sub: "/Lotus/Language/Messages/Anniversary2024MissionTitleB",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
 | 
			
		||||
        arg: ["PLAYER_NAME"]
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyAnniversary2020F": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/Messages/Anniversary2024RewardMsgC",
 | 
			
		||||
        sub: "/Lotus/Language/Messages/Anniversary2024MissionTitleB",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
 | 
			
		||||
        arg: ["PLAYER_NAME"]
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyAnniversary2024ChallengeModeA": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/Messages/Anniversary2024RewardMsgD",
 | 
			
		||||
        sub: "/Lotus/Language/Messages/Anniversary2024MissionTitleD",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
 | 
			
		||||
        arg: ["PLAYER_NAME"]
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyAnniversary2017C": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/Messages/Anniversary2019RewardMsgC",
 | 
			
		||||
        sub: "/Lotus/Language/Messages/Anniversary2019MissionTitleC",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
 | 
			
		||||
        arg: ["PLAYER_NAME"]
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyAnniversary2020H": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/Messages/Anniversary2020RewardMsgH",
 | 
			
		||||
        sub: "/Lotus/Language/Messages/Anniversary2020MissionTitleH",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
 | 
			
		||||
        arg: ["PLAYER_NAME"]
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyAnniversary2022J": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/Messages/Anniversary2022RewardMsgJ",
 | 
			
		||||
        sub: "/Lotus/Language/Messages/Anniversary2022MissionTitleJ",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
 | 
			
		||||
        arg: ["PLAYER_NAME"]
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyAnniversary2025D": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/Messages/Anniversary2025RewardMsgB",
 | 
			
		||||
        sub: "/Lotus/Language/Messages/Anniversary2025MissionTitleB",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
 | 
			
		||||
        arg: ["PLAYER_NAME"]
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyAnniversary2025ChallengeModeA": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/Messages/Anniversary2025RewardMsgC",
 | 
			
		||||
        sub: "/Lotus/Language/Messages/Anniversary2025MissionTitleC",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
 | 
			
		||||
        arg: ["PLAYER_NAME"]
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyAnniversary2020G": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/Messages/Anniversary2020RewardMsgG",
 | 
			
		||||
        sub: "/Lotus/Language/Messages/Anniversary2020MissionTitleG",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
 | 
			
		||||
        arg: ["PLAYER_NAME"]
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyAnniversary2017B": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/Messages/Anniversary2019RewardMsgB",
 | 
			
		||||
        sub: "/Lotus/Language/Messages/Anniversary2019MissionTitleB",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
 | 
			
		||||
        arg: ["PLAYER_NAME"]
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyAnniversary2017A": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/Messages/Anniversary2019RewardMsgA",
 | 
			
		||||
        sub: "/Lotus/Language/Messages/Anniversary2019MissionTitleA",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
 | 
			
		||||
        arg: ["PLAYER_NAME"]
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyAnniversary2023K": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/Messages/Anniversary2025RewardMsgG",
 | 
			
		||||
        sub: "/Lotus/Language/Messages/Anniversary2025MissionTitleG",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
 | 
			
		||||
        arg: ["PLAYER_NAME"]
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyAnniversary2025ChallengeModeB": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/Messages/Anniversary2025RewardMsgD",
 | 
			
		||||
        sub: "/Lotus/Language/Messages/Anniversary2025MissionTitleD",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
 | 
			
		||||
        arg: ["PLAYER_NAME"]
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyAnniversary2025A": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/Messages/Anniversary2025RewardMsgA",
 | 
			
		||||
        sub: "/Lotus/Language/Messages/Anniversary2025MissionTitleA",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
 | 
			
		||||
        arg: ["PLAYER_NAME"]
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyAnniversary2018D": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/Messages/Anniversary2024RewardMsgG",
 | 
			
		||||
        sub: "/Lotus/Language/Messages/Anniversary2024MissionTitleG",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
 | 
			
		||||
        arg: ["PLAYER_NAME"]
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyAnniversary2025C": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/Messages/Anniversary2024RewardMsgF",
 | 
			
		||||
        sub: "/Lotus/Language/Messages/Anniversary2024MissionTitleF",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
 | 
			
		||||
        arg: ["PLAYER_NAME"]
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyAnniversary2024L": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/Messages/Anniversary2024RewardMsgA",
 | 
			
		||||
        sub: "/Lotus/Language/Messages/Anniversary2024MissionTitleA",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
 | 
			
		||||
        arg: ["PLAYER_NAME"]
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyAnniversary2024ChallengeModeB": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/Messages/Anniversary2024RewardMsgE",
 | 
			
		||||
        sub: "/Lotus/Language/Messages/Anniversary2024MissionTitleE",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
 | 
			
		||||
        arg: ["PLAYER_NAME"]
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyAnniversary2021I": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/Messages/Anniversary2024RewardMsgH",
 | 
			
		||||
        sub: "/Lotus/Language/Messages/Anniversary2024MissionTitleH",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
 | 
			
		||||
        arg: ["PLAYER_NAME"]
 | 
			
		||||
    },
 | 
			
		||||
    "/Lotus/Types/Keys/TacAlertKeyAnniversary2025B": {
 | 
			
		||||
        sndr: "/Lotus/Language/Bosses/Lotus",
 | 
			
		||||
        sndr: "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
			
		||||
        msg: "/Lotus/Language/Messages/Anniversary2025RewardMsgE",
 | 
			
		||||
        sub: "/Lotus/Language/Messages/Anniversary2025MissionTitleE",
 | 
			
		||||
        icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
 | 
			
		||||
 | 
			
		||||
@ -74,7 +74,7 @@ export const updateQuestStage = (
 | 
			
		||||
    if (!questStage) {
 | 
			
		||||
        const questStageIndex =
 | 
			
		||||
            quest.Progress.push({
 | 
			
		||||
                c: questStageUpdate.c ?? 0,
 | 
			
		||||
                c: questStageUpdate.c ?? -1,
 | 
			
		||||
                i: questStageUpdate.i ?? false,
 | 
			
		||||
                m: questStageUpdate.m ?? false,
 | 
			
		||||
                b: questStageUpdate.b ?? []
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
// Russian translation by AMelonInsideLemon, LoseFace
 | 
			
		||||
dict = {
 | 
			
		||||
    general_inventoryUpdateNote: `Примечание: Чтобы увидеть изменения в игре, вам нужно повторно синхронизировать свой инвентарь, например, используя команду /sync в программе bootstrapper, посетив Додзё/Реле или перезагрузив игру.`,
 | 
			
		||||
    general_inventoryUpdateNote: `Примечание: Чтобы увидеть изменения в игре, вам нужно повторно синхронизировать свой инвентарь, например, используя команду загрузчика /sync в чате игры, посетив Додзё/Реле или перезагрузив игру.`,
 | 
			
		||||
    general_inventoryUpdateNoteGameWs: `Примечание: для того, чтобы изменения вступили в силу, может потребоваться повторно открыть меню, в котором вы находитесь.`,
 | 
			
		||||
    general_addButton: `Добавить`,
 | 
			
		||||
    general_setButton: `Установить`,
 | 
			
		||||
@ -45,7 +45,7 @@ dict = {
 | 
			
		||||
    code_rank: `Ранг`,
 | 
			
		||||
    code_rankUp: `Повысить ранг`,
 | 
			
		||||
    code_rankDown: `Понизить ранг`,
 | 
			
		||||
    code_unlockLevelCap: `[UNTRANSLATED] Unlock level cap`,
 | 
			
		||||
    code_unlockLevelCap: `Разблокировать ограничение уровня`,
 | 
			
		||||
    code_count: `Количество`,
 | 
			
		||||
    code_focusAllUnlocked: `Все школы Фокуса уже разблокированы.`,
 | 
			
		||||
    code_focusUnlocked: `Разблокировано |COUNT| новых школ Фокуса! Для отображения изменений в игре потребуется обновление инвентаря. Посещение навигации — самый простой способ этого добиться.`,
 | 
			
		||||
@ -227,7 +227,7 @@ dict = {
 | 
			
		||||
    cheats_baroFullyStocked: `Баро полностью укомплектован`,
 | 
			
		||||
    cheats_syndicateMissionsRepeatable: `Повторять миссии синдиката`,
 | 
			
		||||
    cheats_unlockAllProfitTakerStages: `Разблокировать все этапы Сферы извлечения прибыли`,
 | 
			
		||||
    cheats_unlockSuccInventory: `Успех. Обратите внимание, что вам необходимо будет повторно синхронизировать свой инвентарь, например, с помощью команды /sync в программе bootstrapper, посетив Додзё/Реле или повторно войдя в игру.`,
 | 
			
		||||
    cheats_unlockSuccInventory: `Успех. Обратите внимание, что вам необходимо будет повторно синхронизировать свой инвентарь, например, с помощью команды загрузчика /sync в чате игры, посетив Додзё/Реле или повторно войдя в игру.`,
 | 
			
		||||
    cheats_instantFinishRivenChallenge: `Мгновенное завершение испытания мода Разлома`,
 | 
			
		||||
    cheats_instantResourceExtractorDrones: `Мгновенно добывающие Дроны-сборщики`,
 | 
			
		||||
    cheats_noResourceExtractorDronesDamage: `Без урона по Дронам-сборщикам`,
 | 
			
		||||
@ -257,12 +257,12 @@ dict = {
 | 
			
		||||
    cheats_changeButton: `Изменить`,
 | 
			
		||||
    cheats_markAllAsRead: `Пометить все входящие как прочитанные`,
 | 
			
		||||
    cheats_finishInvasionsInOneMission: `Завершать вторжение за одну миссию`,
 | 
			
		||||
    cheats_nemesisHenchmenKillsMultiplierGrineer: `[UNTRANSLATED] Rage Progess Multiplier (Grineer)`,
 | 
			
		||||
    cheats_nemesisHenchmenKillsMultiplierCorpus: `[UNTRANSLATED] Rage Progess Multiplier (Corpus)`,
 | 
			
		||||
    cheats_nemesisAntivirusGainMultiplier: `[UNTRANSLATED] Antivirus Progress Multiplier`,
 | 
			
		||||
    cheats_nemesisHintProgressMultiplierGrineer: `[UNTRANSLATED] Hint Progress Multiplier (Grineer)`,
 | 
			
		||||
    cheats_nemesisHintProgressMultiplierCorpus: `[UNTRANSLATED] Hint Progress Multiplier (Corpus)`,
 | 
			
		||||
    cheats_nemesisExtraWeapon: `[UNTRANSLATED] Extra Nemesis Weapon / Token On Vanquish (0 to disable)`,
 | 
			
		||||
    cheats_nemesisHenchmenKillsMultiplierGrineer: `Мультипликатор прогресса ярости (Гринир)`,
 | 
			
		||||
    cheats_nemesisHenchmenKillsMultiplierCorpus: `Мультипликатор прогресса ярости (Корпус)`,
 | 
			
		||||
    cheats_nemesisAntivirusGainMultiplier: `Мультипликатор прогресса антивируса`,
 | 
			
		||||
    cheats_nemesisHintProgressMultiplierGrineer: `Мультипликатор прогресса подсказки (Гринир)`,
 | 
			
		||||
    cheats_nemesisHintProgressMultiplierCorpus: `Мультипликатор прогресса подсказки (Корпус)`,
 | 
			
		||||
    cheats_nemesisExtraWeapon: `Дополнительное оружие/активный Кардиомиоцит за победу над Противником (0 для отключения)`,
 | 
			
		||||
 | 
			
		||||
    worldState: `Состояние мира`,
 | 
			
		||||
    worldState_creditBoost: `Глобальный бустер Кредитов`,
 | 
			
		||||
@ -284,7 +284,7 @@ dict = {
 | 
			
		||||
    worldState_hallowedFlame: `Священное пламя`,
 | 
			
		||||
    worldState_hallowedNightmares: `Священные кошмары`,
 | 
			
		||||
    worldState_hallowedNightmaresRewards: `Награды Священных кошмаров`,
 | 
			
		||||
    worldState_naberusNights: `[UNTRANSLATED] Nights of Naberus`,
 | 
			
		||||
    worldState_naberusNights: `Ночи Наберуса`,
 | 
			
		||||
    worldState_proxyRebellion: `Восстание роботов`,
 | 
			
		||||
    worldState_proxyRebellionRewards: `Награды Восстания роботов`,
 | 
			
		||||
    worldState_bellyOfTheBeast: `Чрево зверя`,
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
// Ukrainian translation by LoseFace
 | 
			
		||||
dict = {
 | 
			
		||||
    general_inventoryUpdateNote: `Пам'ятка: Щоб побачити зміни в грі, вам потрібно повторно синхронізувати своє спорядження, наприклад, використовуючи команду /sync в програмі bootstrapper, відвідавши Доджьо/Реле або перезавантаживши гру.`,
 | 
			
		||||
    general_inventoryUpdateNote: `Пам'ятка: Щоб побачити зміни в грі, вам потрібно повторно синхронізувати своє спорядження, наприклад, використовуючи команду завантажувача /sync у чаті гри, відвідавши Доджьо/Реле або перезавантаживши гру.`,
 | 
			
		||||
    general_inventoryUpdateNoteGameWs: `Примітка: для відображення змін може знадобитися повторно відкрити меню, в якому ви перебуваєте.`,
 | 
			
		||||
    general_addButton: `Добавити`,
 | 
			
		||||
    general_setButton: `Встановити`,
 | 
			
		||||
@ -45,7 +45,7 @@ dict = {
 | 
			
		||||
    code_rank: `Рівень`,
 | 
			
		||||
    code_rankUp: `Підвищити рівень`,
 | 
			
		||||
    code_rankDown: `Понизити рівень`,
 | 
			
		||||
    code_unlockLevelCap: `[UNTRANSLATED] Unlock level cap`,
 | 
			
		||||
    code_unlockLevelCap: `Розблокувати обмеження рівня`,
 | 
			
		||||
    code_count: `Кількість`,
 | 
			
		||||
    code_focusAllUnlocked: `Всі школи Фокусу вже розблоковані.`,
 | 
			
		||||
    code_focusUnlocked: `Розблоковано |COUNT| нових шкіл Фокусу! Для відображення змін в грі знадобиться оновлення спорядження. Відвідування навігації — найпростіший спосіб цього досягти.`,
 | 
			
		||||
@ -227,7 +227,7 @@ dict = {
 | 
			
		||||
    cheats_baroFullyStocked: `Баро повністю укомплектований`,
 | 
			
		||||
    cheats_syndicateMissionsRepeatable: `Повторювати місії синдиката`,
 | 
			
		||||
    cheats_unlockAllProfitTakerStages: `Розблокувати всі етапи Привласнювачки`,
 | 
			
		||||
    cheats_unlockSuccInventory: `Успішно. Зверніть увагу, що вам потрібно буде повторно синхронізувати своє спорядження, наприклад, за допомогою команди /sync в програмі bootstrapper, відвідавши Доджьо/Реле або повторно увійшовши в гру.`,
 | 
			
		||||
    cheats_unlockSuccInventory: `Успішно. Зверніть увагу, що вам потрібно буде повторно синхронізувати своє спорядження, наприклад, за допомогою команди завантажувача /sync у чаті гри, відвідавши Доджьо/Реле або повторно увійшовши в гру.`,
 | 
			
		||||
    cheats_instantFinishRivenChallenge: `Миттєве завершення випробування модифікатора Розколу`,
 | 
			
		||||
    cheats_instantResourceExtractorDrones: `Миттєво добуваючі Дрони-видобувачі`,
 | 
			
		||||
    cheats_noResourceExtractorDronesDamage: `Без шкоди по Дронам-видобувачам`,
 | 
			
		||||
@ -257,12 +257,12 @@ dict = {
 | 
			
		||||
    cheats_changeButton: `Змінити`,
 | 
			
		||||
    cheats_markAllAsRead: `Помітити всі вхідні як прочитані`,
 | 
			
		||||
    cheats_finishInvasionsInOneMission: `Завершувати вторгнення за одну місію`,
 | 
			
		||||
    cheats_nemesisHenchmenKillsMultiplierGrineer: `[UNTRANSLATED] Rage Progess Multiplier (Grineer)`,
 | 
			
		||||
    cheats_nemesisHenchmenKillsMultiplierCorpus: `[UNTRANSLATED] Rage Progess Multiplier (Corpus)`,
 | 
			
		||||
    cheats_nemesisAntivirusGainMultiplier: `[UNTRANSLATED] Antivirus Progress Multiplier`,
 | 
			
		||||
    cheats_nemesisHintProgressMultiplierGrineer: `[UNTRANSLATED] Hint Progress Multiplier (Grineer)`,
 | 
			
		||||
    cheats_nemesisHintProgressMultiplierCorpus: `[UNTRANSLATED] Hint Progress Multiplier (Corpus)`,
 | 
			
		||||
    cheats_nemesisExtraWeapon: `[UNTRANSLATED] Extra Nemesis Weapon / Token On Vanquish (0 to disable)`,
 | 
			
		||||
    cheats_nemesisHenchmenKillsMultiplierGrineer: `Множник прогресу люті (Ґрінери)`,
 | 
			
		||||
    cheats_nemesisHenchmenKillsMultiplierCorpus: `Множник прогресу люті (Корпус)`,
 | 
			
		||||
    cheats_nemesisAntivirusGainMultiplier: `Мультиплікатор прогресу антивіруса`,
 | 
			
		||||
    cheats_nemesisHintProgressMultiplierGrineer: `Множник прогресу підсказки (Ґрінери)`,
 | 
			
		||||
    cheats_nemesisHintProgressMultiplierCorpus: `Множник прогресу підсказки (Корпус)`,
 | 
			
		||||
    cheats_nemesisExtraWeapon: `Додаткова зброя/Жива сердцевина за перемогу над Недругом (0 для вимкнення)`,
 | 
			
		||||
 | 
			
		||||
    worldState: `Стан світу`,
 | 
			
		||||
    worldState_creditBoost: `Глобальне посилення Кредитів`,
 | 
			
		||||
@ -284,7 +284,7 @@ dict = {
 | 
			
		||||
    worldState_hallowedFlame: `Священне полум'я`,
 | 
			
		||||
    worldState_hallowedNightmares: `Священні жахіття`,
 | 
			
		||||
    worldState_hallowedNightmaresRewards: `Нагороди Священних жахіть`,
 | 
			
		||||
    worldState_naberusNights: `[UNTRANSLATED] Nights of Naberus`,
 | 
			
		||||
    worldState_naberusNights: `Наберові ночі`,
 | 
			
		||||
    worldState_proxyRebellion: `Повстання роботів`,
 | 
			
		||||
    worldState_proxyRebellionRewards: `Нагороди Повстання роботів`,
 | 
			
		||||
    worldState_bellyOfTheBeast: `У лігві звіра`,
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user