forked from OpenWF/SpaceNinjaServer
		
	Compare commits
	
		
			7 Commits
		
	
	
		
			578fccd2b3
			...
			48112cae50
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 48112cae50 | |||
| 7174848588 | |||
| a5b667c331 | |||
| 9b6abff2be | |||
| 7c7f37e46b | |||
| 52a560bef2 | |||
| 369794dcdb | 
@ -1980,9 +1980,59 @@ const challengeRewardsInboxMessages: Record<string, IMessageCreationTemplate> =
 | 
				
			|||||||
        msg: "/Lotus/Language/Inbox/EvolvingSekharaUnlockBDesc",
 | 
					        msg: "/Lotus/Language/Inbox/EvolvingSekharaUnlockBDesc",
 | 
				
			||||||
        icon: "/Lotus/Interface/Icons/Npcs/Ordis.png",
 | 
					        icon: "/Lotus/Interface/Icons/Npcs/Ordis.png",
 | 
				
			||||||
        att: ["/Lotus/Upgrades/Skins/Clan/ZarimanEvolvingSekharaBadgeItemC"]
 | 
					        att: ["/Lotus/Upgrades/Skins/Clan/ZarimanEvolvingSekharaBadgeItemC"]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    // In theory, the following should only give what is owned, but based on the limited information I can find, DE may have simply taken the easy way: https://www.reddit.com/r/Warframe/comments/rzlnku/receiving_all_protovyre_armor_evolution_but_only/
 | 
				
			||||||
 | 
					    SentEvoArmorRankOne: {
 | 
				
			||||||
 | 
					        sub: "/Lotus/Language/Inbox/EvolvingArmorUnlockAName",
 | 
				
			||||||
 | 
					        sndr: "/Lotus/Language/Bosses/Ordis",
 | 
				
			||||||
 | 
					        msg: "/Lotus/Language/Inbox/EvolvingArmorUnlockADesc",
 | 
				
			||||||
 | 
					        icon: "/Lotus/Interface/Icons/Npcs/Ordis.png",
 | 
				
			||||||
 | 
					        att: [
 | 
				
			||||||
 | 
					            "/Lotus/Upgrades/Skins/Armor/SentEvoArmor/SentEvoArmor2A",
 | 
				
			||||||
 | 
					            "/Lotus/Upgrades/Skins/Armor/SentEvoArmor/SentEvoArmor2C",
 | 
				
			||||||
 | 
					            "/Lotus/Upgrades/Skins/Armor/SentEvoArmor/SentEvoArmor2L"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    SentEvoArmorRankTwo: {
 | 
				
			||||||
 | 
					        sub: "/Lotus/Language/Inbox/EvolvingArmorUnlockBName",
 | 
				
			||||||
 | 
					        sndr: "/Lotus/Language/Bosses/Ordis",
 | 
				
			||||||
 | 
					        msg: "/Lotus/Language/Inbox/EvolvingArmorUnlockBDesc",
 | 
				
			||||||
 | 
					        icon: "/Lotus/Interface/Icons/Npcs/Ordis.png",
 | 
				
			||||||
 | 
					        att: [
 | 
				
			||||||
 | 
					            "/Lotus/Upgrades/Skins/Armor/SentEvoArmor/SentEvoArmor3A",
 | 
				
			||||||
 | 
					            "/Lotus/Upgrades/Skins/Armor/SentEvoArmor/SentEvoArmor3C",
 | 
				
			||||||
 | 
					            "/Lotus/Upgrades/Skins/Armor/SentEvoArmor/SentEvoArmor3L"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*const evolvingWeaponSkins: Record<string, { challenge: keyof typeof challengeRewardsInboxMessages; reward: string }> = {
 | 
				
			||||||
 | 
					    "/Lotus/Upgrades/Skins/Armor/SentEvoArmor/SentEvoArmor1A": {
 | 
				
			||||||
 | 
					        challenge: "SentEvoArmorRankOne",
 | 
				
			||||||
 | 
					        reward: "/Lotus/Upgrades/Skins/Armor/SentEvoArmor/SentEvoArmor2A"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "/Lotus/Upgrades/Skins/Armor/SentEvoArmor/SentEvoArmor1C": {
 | 
				
			||||||
 | 
					        challenge: "SentEvoArmorRankOne",
 | 
				
			||||||
 | 
					        reward: "/Lotus/Upgrades/Skins/Armor/SentEvoArmor/SentEvoArmor2C"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "/Lotus/Upgrades/Skins/Armor/SentEvoArmor/SentEvoArmor1L": {
 | 
				
			||||||
 | 
					        challenge: "SentEvoArmorRankOne",
 | 
				
			||||||
 | 
					        reward: "/Lotus/Upgrades/Skins/Armor/SentEvoArmor/SentEvoArmor2L"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "/Lotus/Upgrades/Skins/Armor/SentEvoArmor/SentEvoArmor2A": {
 | 
				
			||||||
 | 
					        challenge: "SentEvoArmorRankTwo",
 | 
				
			||||||
 | 
					        reward: "/Lotus/Upgrades/Skins/Armor/SentEvoArmor/SentEvoArmor3A"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "/Lotus/Upgrades/Skins/Armor/SentEvoArmor/SentEvoArmor2C": {
 | 
				
			||||||
 | 
					        challenge: "SentEvoArmorRankTwo",
 | 
				
			||||||
 | 
					        reward: "/Lotus/Upgrades/Skins/Armor/SentEvoArmor/SentEvoArmor3C"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "/Lotus/Upgrades/Skins/Armor/SentEvoArmor/SentEvoArmor2L": {
 | 
				
			||||||
 | 
					        challenge: "SentEvoArmorRankTwo",
 | 
				
			||||||
 | 
					        reward: "/Lotus/Upgrades/Skins/Armor/SentEvoArmor/SentEvoArmor3L"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					};*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const addChallenges = async (
 | 
					export const addChallenges = async (
 | 
				
			||||||
    account: TAccountDocument,
 | 
					    account: TAccountDocument,
 | 
				
			||||||
    inventory: TInventoryDatabaseDocument,
 | 
					    inventory: TInventoryDatabaseDocument,
 | 
				
			||||||
@ -2014,6 +2064,7 @@ export const addChallenges = async (
 | 
				
			|||||||
                            continue;
 | 
					                            continue;
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        logger.warn(`ignoring unknown challenge completion`, { challenge: Name, completion });
 | 
					                        logger.warn(`ignoring unknown challenge completion`, { challenge: Name, completion });
 | 
				
			||||||
 | 
					                        dbChallenge.Progress = 0;
 | 
				
			||||||
                        dbChallenge.Completed = [];
 | 
					                        dbChallenge.Completed = [];
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
				
			|||||||
@ -29,11 +29,13 @@ import {
 | 
				
			|||||||
    ExportWeapons,
 | 
					    ExportWeapons,
 | 
				
			||||||
    IDefaultUpgrade,
 | 
					    IDefaultUpgrade,
 | 
				
			||||||
    IInboxMessage,
 | 
					    IInboxMessage,
 | 
				
			||||||
 | 
					    IKey,
 | 
				
			||||||
    IMissionReward,
 | 
					    IMissionReward,
 | 
				
			||||||
    IRecipe,
 | 
					    IRecipe,
 | 
				
			||||||
    TReward
 | 
					    TReward
 | 
				
			||||||
} from "warframe-public-export-plus";
 | 
					} from "warframe-public-export-plus";
 | 
				
			||||||
import { IMessage } from "@/src/models/inboxModel";
 | 
					import { IMessage } from "@/src/models/inboxModel";
 | 
				
			||||||
 | 
					import { logger } from "@/src/utils/logger";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export type WeaponTypeInternal =
 | 
					export type WeaponTypeInternal =
 | 
				
			||||||
    | "LongGuns"
 | 
					    | "LongGuns"
 | 
				
			||||||
@ -210,15 +212,15 @@ export const getKeyChainItems = ({ KeyChain, ChainStage }: IKeyChainRequest): st
 | 
				
			|||||||
export const getLevelKeyRewards = (
 | 
					export const getLevelKeyRewards = (
 | 
				
			||||||
    levelKey: string
 | 
					    levelKey: string
 | 
				
			||||||
): { levelKeyRewards?: IMissionReward; levelKeyRewards2?: TReward[] } => {
 | 
					): { levelKeyRewards?: IMissionReward; levelKeyRewards2?: TReward[] } => {
 | 
				
			||||||
    if (!(levelKey in ExportKeys)) {
 | 
					    const key = ExportKeys[levelKey] as IKey | undefined;
 | 
				
			||||||
        throw new Error(`LevelKey ${levelKey} not found`);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const levelKeyRewards = ExportKeys[levelKey].missionReward;
 | 
					    const levelKeyRewards = key?.missionReward;
 | 
				
			||||||
    const levelKeyRewards2 = ExportKeys[levelKey].rewards;
 | 
					    const levelKeyRewards2 = key?.rewards;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!levelKeyRewards && !levelKeyRewards2) {
 | 
					    if (!levelKeyRewards && !levelKeyRewards2) {
 | 
				
			||||||
        throw new Error(`LevelKey ${levelKey} does not contain either rewards1 or rewards2`);
 | 
					        logger.warn(
 | 
				
			||||||
 | 
					            `Could not find any reward information for ${levelKey}, gonna have to potentially short-change you`
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return {
 | 
					    return {
 | 
				
			||||||
 | 
				
			|||||||
@ -1785,20 +1785,20 @@ function getRandomMissionDrops(
 | 
				
			|||||||
            if (mission?.Tier == 1) {
 | 
					            if (mission?.Tier == 1) {
 | 
				
			||||||
                logger.warn(`non-steel path duviri murmur tier used on steel path?!`);
 | 
					                logger.warn(`non-steel path duviri murmur tier used on steel path?!`);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            /*if (operation eight claw is active) {
 | 
					            if (config.worldState?.eightClaw) {
 | 
				
			||||||
                drops.push({
 | 
					                drops.push({
 | 
				
			||||||
                    StoreItem: "/Lotus/StoreItems/Types/Gameplay/DuviriMITW/Resources/DuviriMurmurItemEvent",
 | 
					                    StoreItem: "/Lotus/StoreItems/Types/Gameplay/DuviriMITW/Resources/DuviriMurmurItemEvent",
 | 
				
			||||||
                    ItemCount: 10
 | 
					                    ItemCount: 10
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
            }*/
 | 
					            }
 | 
				
			||||||
            rewardManifests = ["/Lotus/Types/Game/MissionDecks/DuviriEncounterRewards/DuviriMurmurFinalChestRewards"];
 | 
					            rewardManifests = ["/Lotus/Types/Game/MissionDecks/DuviriEncounterRewards/DuviriMurmurFinalChestRewards"];
 | 
				
			||||||
        } else if (RewardInfo.T == 19) {
 | 
					        } else if (RewardInfo.T == 19) {
 | 
				
			||||||
            /*if (operation eight claw is active) {
 | 
					            if (config.worldState?.eightClaw) {
 | 
				
			||||||
                drops.push({
 | 
					                drops.push({
 | 
				
			||||||
                    StoreItem: "/Lotus/StoreItems/Types/Gameplay/DuviriMITW/Resources/DuviriMurmurItemEvent",
 | 
					                    StoreItem: "/Lotus/StoreItems/Types/Gameplay/DuviriMITW/Resources/DuviriMurmurItemEvent",
 | 
				
			||||||
                    ItemCount: 15
 | 
					                    ItemCount: 15
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
            }*/
 | 
					            }
 | 
				
			||||||
            rewardManifests = [
 | 
					            rewardManifests = [
 | 
				
			||||||
                "/Lotus/Types/Game/MissionDecks/DuviriEncounterRewards/DuviriMurmurFinalSteelChestRewards"
 | 
					                "/Lotus/Types/Game/MissionDecks/DuviriEncounterRewards/DuviriMurmurFinalSteelChestRewards"
 | 
				
			||||||
            ];
 | 
					            ];
 | 
				
			||||||
 | 
				
			|||||||
@ -262,9 +262,9 @@ dict = {
 | 
				
			|||||||
    worldState_proxyRebellion: `Rebelión Proxy`,
 | 
					    worldState_proxyRebellion: `Rebelión Proxy`,
 | 
				
			||||||
    worldState_proxyRebellionRewards: `Recompensas de Rebelión Proxy`,
 | 
					    worldState_proxyRebellionRewards: `Recompensas de Rebelión Proxy`,
 | 
				
			||||||
    worldState_bellyOfTheBeast: `Vientre de la Bestia`,
 | 
					    worldState_bellyOfTheBeast: `Vientre de la Bestia`,
 | 
				
			||||||
    worldState_bellyOfTheBeastProgressOverride: `[UNTRANSLATED] Belly of the Beast Progress`,
 | 
					    worldState_bellyOfTheBeastProgressOverride: `Progreso del Vientre de la Bestia`,
 | 
				
			||||||
    worldState_eightClaw: `Octava Garra`,
 | 
					    worldState_eightClaw: `Octava Garra`,
 | 
				
			||||||
    worldState_eightClawProgressOverride: `[UNTRANSLATED] Eight Claw Progress`,
 | 
					    worldState_eightClawProgressOverride: `Progreso de Octava Garra`,
 | 
				
			||||||
    worldState_from_year: `de |VAL|`,
 | 
					    worldState_from_year: `de |VAL|`,
 | 
				
			||||||
    worldState_pre_year: `antes de |VAL|`,
 | 
					    worldState_pre_year: `antes de |VAL|`,
 | 
				
			||||||
    worldState_week: `[UNTRANSLATED] Week |VAL|`,
 | 
					    worldState_week: `[UNTRANSLATED] Week |VAL|`,
 | 
				
			||||||
@ -312,7 +312,7 @@ dict = {
 | 
				
			|||||||
    worldState_varziaFullyStocked: `Varzia con stock completo`,
 | 
					    worldState_varziaFullyStocked: `Varzia con stock completo`,
 | 
				
			||||||
    worldState_varziaOverride: `Cambio en rotación de Varzia`,
 | 
					    worldState_varziaOverride: `Cambio en rotación de Varzia`,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    import_importNote: `[UNTRANSLATED] You can provide a full or partial <code>inventory.php</code> or <code>getShip.php</code> response (client representation) here.`,
 | 
					    import_importNote: `Puedes proporcionar una respuesta de <code>inventory.php</code> o <code>getShip.php</code> completa o parcial (representación del cliente) aquí.`,
 | 
				
			||||||
    import_importNote2: `Todos los campos compatibles con el importador <b>serán sobrescritos</b> en tu cuenta.`,
 | 
					    import_importNote2: `Todos los campos compatibles con el importador <b>serán sobrescritos</b> en tu cuenta.`,
 | 
				
			||||||
    import_submit: `Enviar`,
 | 
					    import_submit: `Enviar`,
 | 
				
			||||||
    import_samples: `Muestras:`,
 | 
					    import_samples: `Muestras:`,
 | 
				
			||||||
 | 
				
			|||||||
@ -10,7 +10,7 @@ dict = {
 | 
				
			|||||||
    code_loginFail: `Не удалось войти. Проверьте адрес электронной почты и пароль.`,
 | 
					    code_loginFail: `Не удалось войти. Проверьте адрес электронной почты и пароль.`,
 | 
				
			||||||
    code_regFail: `Не удалось зарегистрироваться. Учетная запись уже существует?`,
 | 
					    code_regFail: `Не удалось зарегистрироваться. Учетная запись уже существует?`,
 | 
				
			||||||
    code_changeNameConfirm: `Какое имя вы хотите установить для своей учетной записи?`,
 | 
					    code_changeNameConfirm: `Какое имя вы хотите установить для своей учетной записи?`,
 | 
				
			||||||
    code_changeNameRetry: `[UNTRANSLATED] |NAME| is already taken.`,
 | 
					    code_changeNameRetry: `|NAME| уже занято.`,
 | 
				
			||||||
    code_deleteAccountConfirm: `Вы уверены, что хотите удалить аккаунт |DISPLAYNAME| (|EMAIL|)? Это действие нельзя отменить.`,
 | 
					    code_deleteAccountConfirm: `Вы уверены, что хотите удалить аккаунт |DISPLAYNAME| (|EMAIL|)? Это действие нельзя отменить.`,
 | 
				
			||||||
    code_archgun: `Арч-Пушка`,
 | 
					    code_archgun: `Арч-Пушка`,
 | 
				
			||||||
    code_melee: `Ближний бой`,
 | 
					    code_melee: `Ближний бой`,
 | 
				
			||||||
 | 
				
			|||||||
@ -10,7 +10,7 @@ dict = {
 | 
				
			|||||||
    code_loginFail: `Не вдалося увійти. Перевірте адресу електронної пошти та пароль.`,
 | 
					    code_loginFail: `Не вдалося увійти. Перевірте адресу електронної пошти та пароль.`,
 | 
				
			||||||
    code_regFail: `Не вдалося зареєструватися. Обліковий запис вже існує?`,
 | 
					    code_regFail: `Не вдалося зареєструватися. Обліковий запис вже існує?`,
 | 
				
			||||||
    code_changeNameConfirm: `Яке ім'я ви хочете встановити для свого облікового запису?`,
 | 
					    code_changeNameConfirm: `Яке ім'я ви хочете встановити для свого облікового запису?`,
 | 
				
			||||||
    code_changeNameRetry: `[UNTRANSLATED] |NAME| is already taken.`,
 | 
					    code_changeNameRetry: `|NAME| вже зайнято.`,
 | 
				
			||||||
    code_deleteAccountConfirm: `Ви впевнені, що хочете видалити обліковий запис |DISPLAYNAME| (|EMAIL|)? Цю дію не можна скасувати.`,
 | 
					    code_deleteAccountConfirm: `Ви впевнені, що хочете видалити обліковий запис |DISPLAYNAME| (|EMAIL|)? Цю дію не можна скасувати.`,
 | 
				
			||||||
    code_archgun: `Арк-гармата`,
 | 
					    code_archgun: `Арк-гармата`,
 | 
				
			||||||
    code_melee: `Холодна зброя`,
 | 
					    code_melee: `Холодна зброя`,
 | 
				
			||||||
@ -247,8 +247,8 @@ dict = {
 | 
				
			|||||||
    worldState_baroTennoConRelay: `Реле Баро TennoCon`,
 | 
					    worldState_baroTennoConRelay: `Реле Баро TennoCon`,
 | 
				
			||||||
    worldState_starDays: `Зоряні дні`,
 | 
					    worldState_starDays: `Зоряні дні`,
 | 
				
			||||||
    worldState_galleonOfGhouls: `Гульський галеон`,
 | 
					    worldState_galleonOfGhouls: `Гульський галеон`,
 | 
				
			||||||
    worldState_anniversary: `[UNTRANSLATED] Warframe Anniversary`,
 | 
					    worldState_anniversary: `Річниця Warframe`,
 | 
				
			||||||
    worldState_useAnniversaryTagForOldGoals: `[UNTRANSLATED] Use <code>Tag</code> from Warframe Anniversary for old Events`,
 | 
					    worldState_useAnniversaryTagForOldGoals: `Використати <code>Tag</code> з річниці Warframe для старих подій`,
 | 
				
			||||||
    worldState_ghoulEmergence: `Зачищення від гулів`,
 | 
					    worldState_ghoulEmergence: `Зачищення від гулів`,
 | 
				
			||||||
    worldState_plagueStar: `Морова зірка`,
 | 
					    worldState_plagueStar: `Морова зірка`,
 | 
				
			||||||
    worldState_dogDays: `Спекотні дні`,
 | 
					    worldState_dogDays: `Спекотні дні`,
 | 
				
			||||||
@ -267,7 +267,7 @@ dict = {
 | 
				
			|||||||
    worldState_eightClawProgressOverride: `Прогрес Восьми кігтів`,
 | 
					    worldState_eightClawProgressOverride: `Прогрес Восьми кігтів`,
 | 
				
			||||||
    worldState_from_year: `з |VAL|`,
 | 
					    worldState_from_year: `з |VAL|`,
 | 
				
			||||||
    worldState_pre_year: `до |VAL|`,
 | 
					    worldState_pre_year: `до |VAL|`,
 | 
				
			||||||
    worldState_week: `[UNTRANSLATED] Week |VAL|`,
 | 
					    worldState_week: `Тиждень |VAL|`,
 | 
				
			||||||
    worldState_incompatibleWith: `Несумісне з:`,
 | 
					    worldState_incompatibleWith: `Несумісне з:`,
 | 
				
			||||||
    enabled: `Увімкнено`,
 | 
					    enabled: `Увімкнено`,
 | 
				
			||||||
    disabled: `Вимкнено`,
 | 
					    disabled: `Вимкнено`,
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user