WIP: add world Event add RecurringGhoul misson #2555
@ -81,8 +81,14 @@
 | 
				
			|||||||
    "darvoStockMultiplier": 1,
 | 
					    "darvoStockMultiplier": 1,
 | 
				
			||||||
    "varziaOverride": "",
 | 
					    "varziaOverride": "",
 | 
				
			||||||
    "varziaFullyStocked": false
 | 
					    "varziaFullyStocked": false
 | 
				
			||||||
 | 
					    "TennoCon": false,
 | 
				
			||||||
 | 
					    "RecurringGhoul": false,
 | 
				
			||||||
 | 
					    "Fomorian": false,
 | 
				
			||||||
 | 
					    "BaroTennoCon": false,
 | 
				
			||||||
 | 
					    "BellyoftheBeast": false,
 | 
				
			||||||
 | 
					    "HeatFissures": false
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "dev": {
 | 
					  "dev": {
 | 
				
			||||||
    "keepVendorsExpired": false
 | 
					    "keepVendorsExpired": false
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -92,6 +92,12 @@ export interface IConfig {
 | 
				
			|||||||
        darvoStockMultiplier?: number;
 | 
					        darvoStockMultiplier?: number;
 | 
				
			||||||
        varziaOverride?: string;
 | 
					        varziaOverride?: string;
 | 
				
			||||||
        varziaFullyStocked?: boolean;
 | 
					        varziaFullyStocked?: boolean;
 | 
				
			||||||
 | 
					        TennoCon?: boolean;
 | 
				
			||||||
 | 
					        BaroTennoCon?: boolean;
 | 
				
			||||||
 | 
					        Fomorian?: boolean;
 | 
				
			||||||
 | 
					        BellyoftheBeast?: boolean;
 | 
				
			||||||
 | 
					        RecurringGhoul?: boolean;
 | 
				
			||||||
 | 
					        HeatFissures?: boolean;
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    dev?: {
 | 
					    dev?: {
 | 
				
			||||||
        keepVendorsExpired?: boolean;
 | 
					        keepVendorsExpired?: boolean;
 | 
				
			||||||
 | 
				
			|||||||
@ -498,6 +498,93 @@ export const pushClassicBounties = (syndicateMissions: ISyndicateMissionInfo[],
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
        const rng = new SRng(seed);
 | 
					        const rng = new SRng(seed);
 | 
				
			||||||
        const pool = [...eidolonJobs];
 | 
					        const pool = [...eidolonJobs];
 | 
				
			||||||
 | 
					        const JobsArray = [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                jobType: rng.randomElementPop(pool),
 | 
				
			||||||
 | 
					                rewards: `/Lotus/Types/Game/MissionDecks/EidolonJobMissionRewards/TierATable${table}Rewards`,
 | 
				
			||||||
 | 
					                masteryReq: 0,
 | 
				
			||||||
 | 
					                minEnemyLevel: 5,
 | 
				
			||||||
 | 
					                maxEnemyLevel: 15,
 | 
				
			||||||
 | 
					                xpAmounts: generateXpAmounts(rng, 3, 1000, 1500)
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                jobType: rng.randomElementPop(pool),
 | 
				
			||||||
 | 
					                rewards: `/Lotus/Types/Game/MissionDecks/EidolonJobMissionRewards/TierBTable${table}Rewards`,
 | 
				
			||||||
 | 
					                masteryReq: 1,
 | 
				
			||||||
 | 
					                minEnemyLevel: 10,
 | 
				
			||||||
 | 
					                maxEnemyLevel: 30,
 | 
				
			||||||
 | 
					                xpAmounts: generateXpAmounts(rng, 3, 1750, 2250)
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                jobType: rng.randomElementPop(pool),
 | 
				
			||||||
 | 
					                rewards: `/Lotus/Types/Game/MissionDecks/EidolonJobMissionRewards/TierCTable${table}Rewards`,
 | 
				
			||||||
 | 
					                masteryReq: 2,
 | 
				
			||||||
 | 
					                minEnemyLevel: 20,
 | 
				
			||||||
 | 
					                maxEnemyLevel: 40,
 | 
				
			||||||
 | 
					                xpAmounts: generateXpAmounts(rng, 4, 2500, 3000)
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                jobType: rng.randomElementPop(pool),
 | 
				
			||||||
 | 
					                rewards: `/Lotus/Types/Game/MissionDecks/EidolonJobMissionRewards/TierDTable${table}Rewards`,
 | 
				
			||||||
 | 
					                masteryReq: 3,
 | 
				
			||||||
 | 
					                minEnemyLevel: 30,
 | 
				
			||||||
 | 
					                maxEnemyLevel: 50,
 | 
				
			||||||
 | 
					                xpAmounts: generateXpAmounts(rng, 5, 3250, 3750)
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                jobType: rng.randomElementPop(pool),
 | 
				
			||||||
 | 
					                rewards: `/Lotus/Types/Game/MissionDecks/EidolonJobMissionRewards/TierETable${table}Rewards`,
 | 
				
			||||||
 | 
					                masteryReq: 5,
 | 
				
			||||||
 | 
					                minEnemyLevel: 40,
 | 
				
			||||||
 | 
					                maxEnemyLevel: 60,
 | 
				
			||||||
 | 
					                xpAmounts: generateXpAmounts(rng, 5, 4000, 4500)
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                jobType: rng.randomElementPop(pool),
 | 
				
			||||||
 | 
					                rewards: `/Lotus/Types/Game/MissionDecks/EidolonJobMissionRewards/TierETable${table}Rewards`,
 | 
				
			||||||
 | 
					                masteryReq: 10,
 | 
				
			||||||
 | 
					                minEnemyLevel: 100,
 | 
				
			||||||
 | 
					                maxEnemyLevel: 100,
 | 
				
			||||||
 | 
					                xpAmounts: [840, 840, 840, 840, 1660]
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                jobType: rng.randomElement(eidolonNarmerJobs),
 | 
				
			||||||
 | 
					                rewards: `/Lotus/Types/Game/MissionDecks/EidolonJobMissionRewards/NarmerTable${table}Rewards`,
 | 
				
			||||||
 | 
					                masteryReq: 0,
 | 
				
			||||||
 | 
					                minEnemyLevel: 50,
 | 
				
			||||||
 | 
					                maxEnemyLevel: 70,
 | 
				
			||||||
 | 
					                xpAmounts: generateXpAmounts(rng, 5, 4500, 5000)
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ];
 | 
				
			||||||
 | 
					        if (config.worldState?.RecurringGhoul) {
 | 
				
			||||||
 | 
					            JobsArray.shift();
 | 
				
			||||||
 | 
					            JobsArray.shift();
 | 
				
			||||||
 | 
					            JobsArray.shift();
 | 
				
			||||||
 | 
					            JobsArray.unshift({
 | 
				
			||||||
 | 
					                jobType: "/Lotus/Types/Gameplay/Eidolon/Jobs/Events/GhoulAlertBountyAss",
 | 
				
			||||||
 | 
					                rewards: "/Lotus/Types/Game/MissionDecks/EidolonJobMissionRewards/GhoulBountyTableARewards",
 | 
				
			||||||
 | 
					                masteryReq: 1,
 | 
				
			||||||
 | 
					                minEnemyLevel: 20,
 | 
				
			||||||
 | 
					                maxEnemyLevel: 30,
 | 
				
			||||||
 | 
					                xpAmounts: [260, 260, 260, 380]
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					            JobsArray.unshift({
 | 
				
			||||||
 | 
					                jobType: "/Lotus/Types/Gameplay/Eidolon/Jobs/Events/GhoulAlertBountyHunt",
 | 
				
			||||||
 | 
					                rewards: "/Lotus/Types/Game/MissionDecks/EidolonJobMissionRewards/GhoulBountyTableBRewards",
 | 
				
			||||||
 | 
					                masteryReq: 3,
 | 
				
			||||||
 | 
					                minEnemyLevel: 40,
 | 
				
			||||||
 | 
					                maxEnemyLevel: 50,
 | 
				
			||||||
 | 
					                xpAmounts: [450, 450, 450, 670]
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					            JobsArray.unshift({
 | 
				
			||||||
 | 
					                jobType: "/Lotus/Types/Gameplay/Eidolon/Jobs/Events/GhoulAlertBountyExt",
 | 
				
			||||||
 | 
					                rewards: "/Lotus/Types/Game/MissionDecks/EidolonJobMissionRewards/GhoulBountyTableBRewards",
 | 
				
			||||||
 | 
					                masteryReq: 3,
 | 
				
			||||||
 | 
					                minEnemyLevel: 60,
 | 
				
			||||||
 | 
					                maxEnemyLevel: 70,
 | 
				
			||||||
 | 
					                xpAmounts: [450, 450, 450, 670]
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        syndicateMissions.push({
 | 
					        syndicateMissions.push({
 | 
				
			||||||
            _id: {
 | 
					            _id: {
 | 
				
			||||||
                $oid: ((bountyCycleStart / 1000) & 0xffffffff).toString(16).padStart(8, "0") + "0000000000000008"
 | 
					                $oid: ((bountyCycleStart / 1000) & 0xffffffff).toString(16).padStart(8, "0") + "0000000000000008"
 | 
				
			||||||
@ -507,67 +594,9 @@ export const pushClassicBounties = (syndicateMissions: ISyndicateMissionInfo[],
 | 
				
			|||||||
            Tag: "CetusSyndicate",
 | 
					            Tag: "CetusSyndicate",
 | 
				
			||||||
            Seed: seed,
 | 
					            Seed: seed,
 | 
				
			||||||
            Nodes: [],
 | 
					            Nodes: [],
 | 
				
			||||||
            Jobs: [
 | 
					            Jobs: JobsArray
 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    jobType: rng.randomElementPop(pool),
 | 
					 | 
				
			||||||
                    rewards: `/Lotus/Types/Game/MissionDecks/EidolonJobMissionRewards/TierATable${table}Rewards`,
 | 
					 | 
				
			||||||
                    masteryReq: 0,
 | 
					 | 
				
			||||||
                    minEnemyLevel: 5,
 | 
					 | 
				
			||||||
                    maxEnemyLevel: 15,
 | 
					 | 
				
			||||||
                    xpAmounts: generateXpAmounts(rng, 3, 1000, 1500)
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    jobType: rng.randomElementPop(pool),
 | 
					 | 
				
			||||||
                    rewards: `/Lotus/Types/Game/MissionDecks/EidolonJobMissionRewards/TierBTable${table}Rewards`,
 | 
					 | 
				
			||||||
                    masteryReq: 1,
 | 
					 | 
				
			||||||
                    minEnemyLevel: 10,
 | 
					 | 
				
			||||||
                    maxEnemyLevel: 30,
 | 
					 | 
				
			||||||
                    xpAmounts: generateXpAmounts(rng, 3, 1750, 2250)
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    jobType: rng.randomElementPop(pool),
 | 
					 | 
				
			||||||
                    rewards: `/Lotus/Types/Game/MissionDecks/EidolonJobMissionRewards/TierCTable${table}Rewards`,
 | 
					 | 
				
			||||||
                    masteryReq: 2,
 | 
					 | 
				
			||||||
                    minEnemyLevel: 20,
 | 
					 | 
				
			||||||
                    maxEnemyLevel: 40,
 | 
					 | 
				
			||||||
                    xpAmounts: generateXpAmounts(rng, 4, 2500, 3000)
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    jobType: rng.randomElementPop(pool),
 | 
					 | 
				
			||||||
                    rewards: `/Lotus/Types/Game/MissionDecks/EidolonJobMissionRewards/TierDTable${table}Rewards`,
 | 
					 | 
				
			||||||
                    masteryReq: 3,
 | 
					 | 
				
			||||||
                    minEnemyLevel: 30,
 | 
					 | 
				
			||||||
                    maxEnemyLevel: 50,
 | 
					 | 
				
			||||||
                    xpAmounts: generateXpAmounts(rng, 5, 3250, 3750)
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    jobType: rng.randomElementPop(pool),
 | 
					 | 
				
			||||||
                    rewards: `/Lotus/Types/Game/MissionDecks/EidolonJobMissionRewards/TierETable${table}Rewards`,
 | 
					 | 
				
			||||||
                    masteryReq: 5,
 | 
					 | 
				
			||||||
                    minEnemyLevel: 40,
 | 
					 | 
				
			||||||
                    maxEnemyLevel: 60,
 | 
					 | 
				
			||||||
                    xpAmounts: generateXpAmounts(rng, 5, 4000, 4500)
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    jobType: rng.randomElementPop(pool),
 | 
					 | 
				
			||||||
                    rewards: `/Lotus/Types/Game/MissionDecks/EidolonJobMissionRewards/TierETable${table}Rewards`,
 | 
					 | 
				
			||||||
                    masteryReq: 10,
 | 
					 | 
				
			||||||
                    minEnemyLevel: 100,
 | 
					 | 
				
			||||||
                    maxEnemyLevel: 100,
 | 
					 | 
				
			||||||
                    xpAmounts: [840, 840, 840, 840, 1660]
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    jobType: rng.randomElement(eidolonNarmerJobs),
 | 
					 | 
				
			||||||
                    rewards: `/Lotus/Types/Game/MissionDecks/EidolonJobMissionRewards/NarmerTable${table}Rewards`,
 | 
					 | 
				
			||||||
                    masteryReq: 0,
 | 
					 | 
				
			||||||
                    minEnemyLevel: 50,
 | 
					 | 
				
			||||||
                    maxEnemyLevel: 70,
 | 
					 | 
				
			||||||
                    xpAmounts: generateXpAmounts(rng, 5, 4500, 5000)
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            ]
 | 
					 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        const rng = new SRng(seed);
 | 
					        const rng = new SRng(seed);
 | 
				
			||||||
        const pool = [...venusJobs];
 | 
					        const pool = [...venusJobs];
 | 
				
			||||||
@ -1383,6 +1412,241 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
 | 
				
			|||||||
            Node: "SolarisUnitedHub1"
 | 
					            Node: "SolarisUnitedHub1"
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    if (config.worldState?.TennoCon) {
 | 
				
			||||||
 | 
					        worldState.Goals.push({
 | 
				
			||||||
 | 
					            _id: { $oid: "687bf9400000000000000000" },
 | 
				
			||||||
 | 
					            Activation: { $date: { $numberLong: "1752955200000" } },
 | 
				
			||||||
 | 
					            Expiry: { $date: { $numberLong: "2000000000000" } },
 | 
				
			||||||
 | 
					            Count: 0,
 | 
				
			||||||
 | 
					            Goal: 0,
 | 
				
			||||||
 | 
					            Success: 0,
 | 
				
			||||||
 | 
					            Personal: true,
 | 
				
			||||||
 | 
					            Desc: "/Lotus/Language/Locations/RelayStationTennoConB",
 | 
				
			||||||
 | 
					            ToolTip: "/Lotus/Language/Locations/RelayStationTennoConDescB",
 | 
				
			||||||
 | 
					            Icon: "/Lotus/Interface/Icons/Categories/IconTennoLive.png",
 | 
				
			||||||
 | 
					            Tag: "TennoConRelayB",
 | 
				
			||||||
 | 
					            Node: "TennoConBHUB6"
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (config.worldState?.Fomorian) {
 | 
				
			||||||
 | 
					        worldState.Goals.push({
 | 
				
			||||||
 | 
					            _id: { $oid: "67c8924faf8bb9628dc1c18d" },
 | 
				
			||||||
 | 
					            Fomorian: true,
 | 
				
			||||||
 | 
					            Activation: { $date: { $numberLong: "1741284514166" } },
 | 
				
			||||||
 | 
					            Expiry: { $date: { $numberLong: "2000000000000" } },
 | 
				
			||||||
 | 
					            Count: 0,
 | 
				
			||||||
 | 
					            Goal: 1000000,
 | 
				
			||||||
 | 
					            HealthPct: 0.980806,
 | 
				
			||||||
 | 
					            VictimNode: "PlutoHUB",
 | 
				
			||||||
 | 
					            Personal: true,
 | 
				
			||||||
 | 
					            Best: true,
 | 
				
			||||||
 | 
					            ScoreVar: "FomorianEventScore",
 | 
				
			||||||
 | 
					            ScoreMaxTag: "FomorianEventScore",
 | 
				
			||||||
 | 
					            ScoreTagBlocksGuildTierChanges: false,
 | 
				
			||||||
 | 
					            Success: 0,
 | 
				
			||||||
 | 
					            Node: "EventNode8",
 | 
				
			||||||
 | 
					            Faction: "FC_GRINEER",
 | 
				
			||||||
 | 
					            Desc: "/Lotus/Language/G1Quests/FomorianRevengeBattleName",
 | 
				
			||||||
 | 
					            Icon: "/Lotus/Materials/Emblems/SlingStone2_e.png",
 | 
				
			||||||
 | 
					            RegionDrops: ["/Lotus/Types/Items/MiscItems/OmegaIsotopePickup"],
 | 
				
			||||||
 | 
					            ArchwingDrops: [],
 | 
				
			||||||
 | 
					            ScoreLocTag: "/Lotus/Language/Menu/FomorianScoreHint",
 | 
				
			||||||
 | 
					            Tag: "",
 | 
				
			||||||
 | 
					            MissionInfo: {
 | 
				
			||||||
 | 
					                missionType: "MT_SABOTAGE",
 | 
				
			||||||
 | 
					                faction: "FC_GRINEER",
 | 
				
			||||||
 | 
					                location: "EventNode8",
 | 
				
			||||||
 | 
					                levelOverride: "/Lotus/Levels/Proc/Space/SpaceGrineerFomorianAssaultProcLevel",
 | 
				
			||||||
 | 
					                enemySpec: "/Lotus/Types/Game/EnemySpecs/FomorianAttackSpec",
 | 
				
			||||||
 | 
					                minEnemyLevel: 20,
 | 
				
			||||||
 | 
					                maxEnemyLevel: 30,
 | 
				
			||||||
 | 
					                difficulty: 1,
 | 
				
			||||||
 | 
					                archwingRequired: true,
 | 
				
			||||||
 | 
					                requiredItems: ["/Lotus/StoreItems/Types/Restoratives/Consumable/FomorianNegator"],
 | 
				
			||||||
 | 
					                consumeRequiredItems: false,
 | 
				
			||||||
 | 
					                missionReward: [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        credits: 0,
 | 
				
			||||||
 | 
					                        xp: 0,
 | 
				
			||||||
 | 
					                        items: [],
 | 
				
			||||||
 | 
					                        countedItems: [],
 | 
				
			||||||
 | 
					                        randomizedItems: "fomorianRewardManifest"
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                vipAgent: "",
 | 
				
			||||||
 | 
					                leadersAlwaysAllowed: true,
 | 
				
			||||||
 | 
					                goalTag: "",
 | 
				
			||||||
 | 
					                levelAuras: [],
 | 
				
			||||||
 | 
					                icon: "/Lotus/Interface/Icons/Events/Fomorian.png"
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            ContinuousHubEvent: {
 | 
				
			||||||
 | 
					                Transmissions: ["/Lotus/Sounds/Dialog/HubAnnouncements/HekPropoganda"],
 | 
				
			||||||
 | 
					                Activation: { $date: { $numberLong: "1741284514166" } },
 | 
				
			||||||
 | 
					                Expiry: { $date: { $numberLong: "2000000000000" } },
 | 
				
			||||||
 | 
					                RepeatInterval: 1800
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            Reward: {
 | 
				
			||||||
 | 
					                credits: 200000,
 | 
				
			||||||
 | 
					                items: ["/Lotus/StoreItems/Types/Items/MiscItems/OrokinCatalyst"]
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (config.worldState?.BellyoftheBeast) {
 | 
				
			||||||
 | 
					        worldState.Goals.push({
 | 
				
			||||||
 | 
					            _id: { $oid: "67a5035c2a198564d62e165e" },
 | 
				
			||||||
 | 
					            Activation: { $date: { $numberLong: "1738868400000" } },
 | 
				
			||||||
 | 
					            Community: true,
 | 
				
			||||||
 | 
					            ClanGoal: [72, 216, 648, 1944, 5832],
 | 
				
			||||||
 | 
					            Count: 0,
 | 
				
			||||||
 | 
					            Desc: "/Lotus/Language/JadeShadows/JadeShadowsEventName",
 | 
				
			||||||
 | 
					            Expiry: { $date: { $numberLong: "2000000000000" } },
 | 
				
			||||||
 | 
					            Faction: "FC_MITW",
 | 
				
			||||||
 | 
					            Goal: 100,
 | 
				
			||||||
 | 
					            HealthPct: 1,
 | 
				
			||||||
 | 
					            Icon: "/Lotus/Interface/Icons/WorldStatePanel/JadeShadowsEventBadge.png",
 | 
				
			||||||
 | 
					            ScoreLocTag: "/Lotus/Language/JadeShadows/JadeShadowsEventScore",
 | 
				
			||||||
 | 
					            Tag: "JadeShadowsEvent",
 | 
				
			||||||
 | 
					            ToolTip: "/Lotus/Language/JadeShadows/JadeShadowsShortEventDesc",
 | 
				
			||||||
 | 
					            MissionKeyName: "/Lotus/Types/Keys/JadeShadowsEventMission",
 | 
				
			||||||
 | 
					            Node: "SolNode723",
 | 
				
			||||||
 | 
					            Personal: true,
 | 
				
			||||||
 | 
					            ItemType: "/Lotus/Types/Gameplay/JadeShadows/Resources/AscensionEventResourceItem"
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (config.worldState?.RecurringGhoul) {
 | 
				
			||||||
 | 
					        worldState.Goals.push({
 | 
				
			||||||
 | 
					            _id: { $oid: "687ebbe6d1d17841c9c59f38" },
 | 
				
			||||||
 | 
					            Activation: { $date: { $numberLong: "1753204900185" } },
 | 
				
			||||||
 | 
					            Expiry: { $date: { $numberLong: "2000000000000" } },
 | 
				
			||||||
 | 
					            HealthPct: 0.001108,
 | 
				
			||||||
 | 
					            VictimNode: "SolNode228",
 | 
				
			||||||
 | 
					            Regions: [2],
 | 
				
			||||||
 | 
					            Success: 0,
 | 
				
			||||||
 | 
					            Desc: "/Lotus/Language/GameModes/RecurringGhoulAlert",
 | 
				
			||||||
 | 
					            ToolTip: "/Lotus/Language/GameModes/RecurringGhoulAlertDesc",
 | 
				
			||||||
 | 
					            Icon: "/Lotus/Interface/Icons/Categories/IconGhouls256.png",
 | 
				
			||||||
 | 
					            Tag: "GhoulEmergence",
 | 
				
			||||||
 | 
					            JobAffiliationTag: "CetusSyndicate",
 | 
				
			||||||
 | 
					            JobCurrentVersion: { $oid: "688341880000000000000009" },
 | 
				
			||||||
 | 
					            Jobs: [
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    jobType: "/Lotus/Types/Gameplay/Eidolon/Jobs/Events/GhoulAlertBountyAss",
 | 
				
			||||||
 | 
					                    rewards: "/Lotus/Types/Game/MissionDecks/EidolonJobMissionRewards/GhoulBountyTableARewards",
 | 
				
			||||||
 | 
					                    masteryReq: 1,
 | 
				
			||||||
 | 
					                    minEnemyLevel: 20,
 | 
				
			||||||
 | 
					                    maxEnemyLevel: 30,
 | 
				
			||||||
 | 
					                    xpAmounts: [260, 260, 260, 380]
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    jobType: "/Lotus/Types/Gameplay/Eidolon/Jobs/Events/GhoulAlertBountyHunt",
 | 
				
			||||||
 | 
					                    rewards: "/Lotus/Types/Game/MissionDecks/EidolonJobMissionRewards/GhoulBountyTableBRewards",
 | 
				
			||||||
 | 
					                    masteryReq: 3,
 | 
				
			||||||
 | 
					                    minEnemyLevel: 40,
 | 
				
			||||||
 | 
					                    maxEnemyLevel: 50,
 | 
				
			||||||
 | 
					                    xpAmounts: [450, 450, 450, 670]
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    jobType: "/Lotus/Types/Gameplay/Eidolon/Jobs/Events/GhoulAlertBountyExt",
 | 
				
			||||||
 | 
					                    rewards: "/Lotus/Types/Game/MissionDecks/EidolonJobMissionRewards/GhoulBountyTableBRewards",
 | 
				
			||||||
 | 
					                    masteryReq: 3,
 | 
				
			||||||
 | 
					                    minEnemyLevel: 60,
 | 
				
			||||||
 | 
					                    maxEnemyLevel: 70,
 | 
				
			||||||
 | 
					                    xpAmounts: [450, 450, 450, 670]
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            JobPreviousVersion: { $oid: "68831e610000000000000009" },
 | 
				
			||||||
 | 
					            PreviousJobs: [
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    jobType: "/Lotus/Types/Gameplay/Eidolon/Jobs/Events/GhoulAlertBountyAss",
 | 
				
			||||||
 | 
					                    rewards: "/Lotus/Types/Game/MissionDecks/EidolonJobMissionRewards/GhoulBountyTableARewards",
 | 
				
			||||||
 | 
					                    masteryReq: 1,
 | 
				
			||||||
 | 
					                    minEnemyLevel: 20,
 | 
				
			||||||
 | 
					                    maxEnemyLevel: 30,
 | 
				
			||||||
 | 
					                    xpAmounts: [260, 260, 260, 380]
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    jobType: "/Lotus/Types/Gameplay/Eidolon/Jobs/Events/GhoulAlertBountyHunt",
 | 
				
			||||||
 | 
					                    rewards: "/Lotus/Types/Game/MissionDecks/EidolonJobMissionRewards/GhoulBountyTableBRewards",
 | 
				
			||||||
 | 
					                    masteryReq: 3,
 | 
				
			||||||
 | 
					                    minEnemyLevel: 40,
 | 
				
			||||||
 | 
					                    maxEnemyLevel: 50,
 | 
				
			||||||
 | 
					                    xpAmounts: [450, 450, 450, 670]
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    jobType: "/Lotus/Types/Gameplay/Eidolon/Jobs/Events/GhoulAlertBountyExt",
 | 
				
			||||||
 | 
					                    rewards: "/Lotus/Types/Game/MissionDecks/EidolonJobMissionRewards/GhoulBountyTableBRewards",
 | 
				
			||||||
 | 
					                    masteryReq: 3,
 | 
				
			||||||
 | 
					                    minEnemyLevel: 60,
 | 
				
			||||||
 | 
					                    maxEnemyLevel: 70,
 | 
				
			||||||
 | 
					                    xpAmounts: [450, 450, 450, 670]
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            Count: 0,
 | 
				
			||||||
 | 
					            Goal: 0,
 | 
				
			||||||
 | 
					            Personal: true
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (config.worldState?.HeatFissures) {
 | 
				
			||||||
 | 
					        worldState.Goals.push({
 | 
				
			||||||
 | 
					            _id: { $oid: "5c7cb0d00000000000000000" },
 | 
				
			||||||
 | 
					            Activation: { $date: { $numberLong: "1737392400000" } },
 | 
				
			||||||
 | 
					            Expiry: { $date: { $numberLong: "2000000000000" } },
 | 
				
			||||||
 | 
					            Node: "SolNode129",
 | 
				
			||||||
 | 
					            ScoreVar: "FissuresClosed",
 | 
				
			||||||
 | 
					            ScoreLocTag: "/Lotus/Language/G1Quests/HeatFissuresEventScore",
 | 
				
			||||||
 | 
					            Count: 2,
 | 
				
			||||||
 | 
					            HealthPct: 0.02,
 | 
				
			||||||
 | 
					            Regions: [1],
 | 
				
			||||||
 | 
					            Desc: "/Lotus/Language/G1Quests/HeatFissuresEventName",
 | 
				
			||||||
 | 
					            ToolTip: "/Lotus/Language/G1Quests/HeatFissuresEventDesc",
 | 
				
			||||||
 | 
					            OptionalInMission: true,
 | 
				
			||||||
 | 
					            Tag: "HeatFissure",
 | 
				
			||||||
 | 
					            UpgradeIds: [{ $oid: "678be06a422c69eb0ac1c18c" }, { $oid: "678be06a422c69eb0ac1c18d" }],
 | 
				
			||||||
 | 
					            Personal: true,
 | 
				
			||||||
 | 
					            Community: true,
 | 
				
			||||||
 | 
					            Goal: 100,
 | 
				
			||||||
 | 
					            Reward: {
 | 
				
			||||||
 | 
					                credits: 0,
 | 
				
			||||||
 | 
					                items: ["/Lotus/StoreItems/Weapons/Corpus/LongGuns/CrpBFG/Vandal/VandalCrpBFG"],
 | 
				
			||||||
 | 
					                countedItems: []
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            InterimGoals: [5, 25, 50, 75],
 | 
				
			||||||
 | 
					            InterimRewards: [
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    credits: 0,
 | 
				
			||||||
 | 
					                    xp: 0,
 | 
				
			||||||
 | 
					                    items: ["/Lotus/StoreItems/Upgrades/Skins/Clan/OrbBadgeItem"],
 | 
				
			||||||
 | 
					                    countedItems: []
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    credits: 0,
 | 
				
			||||||
 | 
					                    xp: 0,
 | 
				
			||||||
 | 
					                    items: [
 | 
				
			||||||
 | 
					                        "/Lotus/StoreItems/Upgrades/Mods/DualSource/Shotgun/ShotgunMedicMod",
 | 
				
			||||||
 | 
					                        "/Lotus/StoreItems/Upgrades/Mods/DualSource/Rifle/SerratedRushMod"
 | 
				
			||||||
 | 
					                    ],
 | 
				
			||||||
 | 
					                    countedItems: []
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    credits: 0,
 | 
				
			||||||
 | 
					                    xp: 0,
 | 
				
			||||||
 | 
					                    items: [
 | 
				
			||||||
 | 
					                        "/Lotus/StoreItems/Upgrades/Mods/DualSource/Pistol/MultishotDodgeMod",
 | 
				
			||||||
 | 
					                        "/Lotus/StoreItems/Upgrades/Mods/DualSource/Melee/CritDamageChargeSpeedMod"
 | 
				
			||||||
 | 
					                    ],
 | 
				
			||||||
 | 
					                    countedItems: []
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    credits: 0,
 | 
				
			||||||
 | 
					                    xp: 0,
 | 
				
			||||||
 | 
					                    items: ["/Lotus/StoreItems/Upgrades/Skins/Sigils/OrbSigil"],
 | 
				
			||||||
 | 
					                    countedItems: []
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            Success: 0,
 | 
				
			||||||
 | 
					            Icon: ""
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    // The client gets kinda confused when multiple goals have the same tag, so considering these mutually exclusive.
 | 
					    // The client gets kinda confused when multiple goals have the same tag, so considering these mutually exclusive.
 | 
				
			||||||
    if (config.worldState?.galleonOfGhouls == 1) {
 | 
					    if (config.worldState?.galleonOfGhouls == 1) {
 | 
				
			||||||
        worldState.Goals.push({
 | 
					        worldState.Goals.push({
 | 
				
			||||||
@ -1584,6 +1848,68 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
 | 
				
			|||||||
            Manifest: []
 | 
					            Manifest: []
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        worldState.VoidTraders.push(vt);
 | 
					        worldState.VoidTraders.push(vt);
 | 
				
			||||||
 | 
					        // add Baro TennoCon Relay
 | 
				
			||||||
 | 
					        if (config.worldState?.BaroTennoCon) {
 | 
				
			||||||
 | 
					            worldState.Goals.push({
 | 
				
			||||||
 | 
					                _id: {
 | 
				
			||||||
 | 
					                    $oid: "687bb2f00000000000000000"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Activation: {
 | 
				
			||||||
 | 
					                    $date: {
 | 
				
			||||||
 | 
					                        $numberLong: baroActualStart.toString()
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Expiry: {
 | 
				
			||||||
 | 
					                    $date: {
 | 
				
			||||||
 | 
					                        $numberLong: baroEnd.toString()
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Count: 0,
 | 
				
			||||||
 | 
					                Goal: 0,
 | 
				
			||||||
 | 
					                Success: 0,
 | 
				
			||||||
 | 
					                Personal: true,
 | 
				
			||||||
 | 
					                Desc: "/Lotus/Language/Locations/RelayStationTennoCon",
 | 
				
			||||||
 | 
					                ToolTip: "/Lotus/Language/Locations/RelayStationTennoConDesc",
 | 
				
			||||||
 | 
					                Icon: "/Lotus/Interface/Icons/Categories/IconTennoConSigil.png",
 | 
				
			||||||
 | 
					                Tag: "TennoConRelay",
 | 
				
			||||||
 | 
					                Node: "TennoConHUB2"
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					            const _Manifest = [];
 | 
				
			||||||
 | 
					            for (const armorSet of baro.armorSets) {
 | 
				
			||||||
 | 
					                if (Array.isArray(armorSet[0])) {
 | 
				
			||||||
 | 
					                    for (const set of armorSet as IVoidTraderOffer[][]) {
 | 
				
			||||||
 | 
					                        for (const item of set) {
 | 
				
			||||||
 | 
					                            _Manifest.push(item);
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                } else {
 | 
				
			||||||
 | 
					                    for (const item of armorSet as IVoidTraderOffer[]) {
 | 
				
			||||||
 | 
					                        _Manifest.push(item);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            for (const item of baro.rest) {
 | 
				
			||||||
 | 
					                _Manifest.push(item);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            worldState.VoidTraders.push({
 | 
				
			||||||
 | 
					                _id: {
 | 
				
			||||||
 | 
					                    $oid: "687809030379266d790495c6"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Activation: {
 | 
				
			||||||
 | 
					                    $date: {
 | 
				
			||||||
 | 
					                        $numberLong: baroActualStart.toString()
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Expiry: {
 | 
				
			||||||
 | 
					                    $date: {
 | 
				
			||||||
 | 
					                        $numberLong: baroEnd.toString()
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Character: "Baro'Ki Teel",
 | 
				
			||||||
 | 
					                Node: "TennoConHUB2",
 | 
				
			||||||
 | 
					                Manifest: _Manifest
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        if (isBeforeNextExpectedWorldStateRefresh(timeMs, baroActualStart)) {
 | 
					        if (isBeforeNextExpectedWorldStateRefresh(timeMs, baroActualStart)) {
 | 
				
			||||||
            vt.Manifest = [];
 | 
					            vt.Manifest = [];
 | 
				
			||||||
            if (config.baroFullyStocked) {
 | 
					            if (config.baroFullyStocked) {
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
import { IMissionReward } from "warframe-public-export-plus";
 | 
					import { IMissionReward } from "warframe-public-export-plus";
 | 
				
			||||||
import { IMongoDate, IOid } from "@/src/types/commonTypes";
 | 
					import { IMongoDate, IOid, ITypeCount } from "@/src/types/commonTypes";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface IWorldState {
 | 
					export interface IWorldState {
 | 
				
			||||||
    Version: number; // for goals
 | 
					    Version: number; // for goals
 | 
				
			||||||
@ -39,7 +39,7 @@ export interface IGoal {
 | 
				
			|||||||
    Expiry: IMongoDate;
 | 
					    Expiry: IMongoDate;
 | 
				
			||||||
    Count: number;
 | 
					    Count: number;
 | 
				
			||||||
    Goal: number;
 | 
					    Goal: number;
 | 
				
			||||||
    Success: number;
 | 
					    Success?: number;
 | 
				
			||||||
    Personal: boolean;
 | 
					    Personal: boolean;
 | 
				
			||||||
    Bounty?: boolean;
 | 
					    Bounty?: boolean;
 | 
				
			||||||
    ClampNodeScores?: boolean;
 | 
					    ClampNodeScores?: boolean;
 | 
				
			||||||
@ -47,9 +47,72 @@ export interface IGoal {
 | 
				
			|||||||
    ToolTip?: string;
 | 
					    ToolTip?: string;
 | 
				
			||||||
    Icon: string;
 | 
					    Icon: string;
 | 
				
			||||||
    Tag: string;
 | 
					    Tag: string;
 | 
				
			||||||
    Node: string;
 | 
					    Node?: string;
 | 
				
			||||||
    MissionKeyName?: string;
 | 
					    MissionKeyName?: string;
 | 
				
			||||||
    Reward?: IMissionReward;
 | 
					    Reward?: IMissionReward;
 | 
				
			||||||
 | 
					    ScoreVar?: string;
 | 
				
			||||||
 | 
					    ScoreLocTag?: string;
 | 
				
			||||||
 | 
					    HealthPct?: number;
 | 
				
			||||||
 | 
					    Regions?: number[];
 | 
				
			||||||
 | 
					    OptionalInMission?: boolean;
 | 
				
			||||||
 | 
					    UpgradeIds?: IOid[];
 | 
				
			||||||
 | 
					    Community?: boolean;
 | 
				
			||||||
 | 
					    InterimGoals?: number[];
 | 
				
			||||||
 | 
					    InterimRewards?: {
 | 
				
			||||||
 | 
					        credits: number;
 | 
				
			||||||
 | 
					        xp: number;
 | 
				
			||||||
 | 
					        items: string[];
 | 
				
			||||||
 | 
					        countedItems: ITypeCount[];
 | 
				
			||||||
 | 
					        randomizedItems?: string;
 | 
				
			||||||
 | 
					    }[];
 | 
				
			||||||
 | 
					    Fomorian?: boolean;
 | 
				
			||||||
 | 
					    VictimNode?: string;
 | 
				
			||||||
 | 
					    Best?: boolean;
 | 
				
			||||||
 | 
					    ScoreMaxTag?: string;
 | 
				
			||||||
 | 
					    ScoreTagBlocksGuildTierChanges?: boolean;
 | 
				
			||||||
 | 
					    Faction?: string;
 | 
				
			||||||
 | 
					    RegionDrops?: string[];
 | 
				
			||||||
 | 
					    ArchwingDrops?: never[];
 | 
				
			||||||
 | 
					    MissionInfo?: {
 | 
				
			||||||
 | 
					        missionType: string;
 | 
				
			||||||
 | 
					        faction: string;
 | 
				
			||||||
 | 
					        location: string;
 | 
				
			||||||
 | 
					        levelOverride: string;
 | 
				
			||||||
 | 
					        enemySpec: string;
 | 
				
			||||||
 | 
					        minEnemyLevel: number;
 | 
				
			||||||
 | 
					        maxEnemyLevel: number;
 | 
				
			||||||
 | 
					        difficulty: number;
 | 
				
			||||||
 | 
					        archwingRequired: boolean;
 | 
				
			||||||
 | 
					        icon: string;
 | 
				
			||||||
 | 
					        requiredItems: string[];
 | 
				
			||||||
 | 
					        consumeRequiredItems: boolean;
 | 
				
			||||||
 | 
					        missionReward: IGoal["InterimRewards"];
 | 
				
			||||||
 | 
					        vipAgent: string;
 | 
				
			||||||
 | 
					        leadersAlwaysAllowed: boolean;
 | 
				
			||||||
 | 
					        goalTag: string;
 | 
				
			||||||
 | 
					        levelAuras: string[];
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    ContinuousHubEvent?: {
 | 
				
			||||||
 | 
					        Transmissions: string[];
 | 
				
			||||||
 | 
					        Activation: {
 | 
				
			||||||
 | 
					            $date: {
 | 
				
			||||||
 | 
					                $numberLong: string;
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					        Expiry: {
 | 
				
			||||||
 | 
					            $date: {
 | 
				
			||||||
 | 
					                $numberLong: string;
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					        RepeatInterval: number;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    ClanGoal?: number[];
 | 
				
			||||||
 | 
					    ItemType?: string;
 | 
				
			||||||
 | 
					    JobAffiliationTag?: string;
 | 
				
			||||||
 | 
					    JobCurrentVersion?: { $oid: string };
 | 
				
			||||||
 | 
					    Jobs?: ISyndicateMissionInfo["Jobs"];
 | 
				
			||||||
 | 
					    JobPreviousVersion?: { $oid: string };
 | 
				
			||||||
 | 
					    PreviousJobs?: ISyndicateMissionInfo["Jobs"];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface ISyndicateMissionInfo {
 | 
					export interface ISyndicateMissionInfo {
 | 
				
			||||||
@ -57,7 +120,7 @@ export interface ISyndicateMissionInfo {
 | 
				
			|||||||
    Activation: IMongoDate;
 | 
					    Activation: IMongoDate;
 | 
				
			||||||
    Expiry: IMongoDate;
 | 
					    Expiry: IMongoDate;
 | 
				
			||||||
    Tag: string;
 | 
					    Tag: string;
 | 
				
			||||||
    Seed: number;
 | 
					    Seed?: number;
 | 
				
			||||||
    Nodes: string[];
 | 
					    Nodes: string[];
 | 
				
			||||||
    Jobs?: {
 | 
					    Jobs?: {
 | 
				
			||||||
        jobType?: string;
 | 
					        jobType?: string;
 | 
				
			||||||
 | 
				
			|||||||
@ -401,7 +401,38 @@
 | 
				
			|||||||
    { "ItemType": "/Lotus/StoreItems/Types/Items/ShipDecos/BaroKiTeerDecorationC", "PrimePrice": 100, "RegularPrice": 100000 },
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/Items/ShipDecos/BaroKiTeerDecorationC", "PrimePrice": 100, "RegularPrice": 100000 },
 | 
				
			||||||
    { "ItemType": "/Lotus/StoreItems/Types/Items/ShipDecos/PedistalPrime", "PrimePrice": 0, "RegularPrice": 1000000 },
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/Items/ShipDecos/PedistalPrime", "PrimePrice": 0, "RegularPrice": 1000000 },
 | 
				
			||||||
    { "ItemType": "/Lotus/StoreItems/Types/Items/Emotes/BaroEmote", "PrimePrice": 0, "RegularPrice": 1000000 },
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/Items/Emotes/BaroEmote", "PrimePrice": 0, "RegularPrice": 1000000 },
 | 
				
			||||||
    { "ItemType": "/Lotus/StoreItems/Upgrades/Mods/Rifle/EventSniperReloadDamageMod", "PrimePrice": 2995, "RegularPrice": 1000000 }
 | 
					    { "ItemType": "/Lotus/StoreItems/Upgrades/Mods/Rifle/EventSniperReloadDamageMod", "PrimePrice": 2995, "RegularPrice": 1000000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/StoreItems/AvatarImages/AvatarImageAvaClemCommunityGlyph", "PrimePrice": 20, "RegularPrice": 33333 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/Items/ShipDecos/TennoconConcert2025Display", "PrimePrice": 90, "RegularPrice": 125000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/Items/ShipDecos/SummerGameFestPoster", "PrimePrice": 90, "RegularPrice": 125000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/Items/ShipDecos/RathuumEventPoster", "PrimePrice": 90, "RegularPrice": 125000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/StoreItems/AvatarImages/Factions/GlyphFactionCorpus", "PrimePrice": 70, "RegularPrice": 55000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/StoreItems/AvatarImages/Factions/GlyphFactionEntrati", "PrimePrice": 99, "RegularPrice": 1900 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/StoreItems/AvatarImages/Factions/GlyphFactionScaldra", "PrimePrice": 93, "RegularPrice": 1906 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/StoreItems/AvatarImages/Factions/GlyphFactionTechrot", "PrimePrice": 98, "RegularPrice": 1901 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/StoreItems/AvatarImages/Warframes/VorunaActionGlyph", "PrimePrice": 75, "RegularPrice": 60000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/StoreItems/AvatarImages/AvatarImageVoidAngelBaro", "PrimePrice": 80, "RegularPrice": 50000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Upgrades/Skins/Sigils/1999DrippySigil", "PrimePrice": 50, "RegularPrice": 45000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Upgrades/Skins/Weapons/Rapier/CrpRapierSkin", "PrimePrice": 375, "RegularPrice": 400000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Upgrades/Skins/Events/OgrisOldSchool", "PrimePrice": 350, "RegularPrice": 325000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Upgrades/Skins/Sigils/PrismaLotusFlamesSigil", "PrimePrice": 55, "RegularPrice": 60000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Upgrades/Mods/Melee/Expert/WeaponMeleeFactionDamageMurmursExpert", "PrimePrice": 375, "RegularPrice": 130000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Upgrades/Mods/Pistol/Expert/WeaponRecoilReductionModExpert", "PrimePrice": 300, "RegularPrice": 220000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Upgrades/Mods/Rifle/Expert/WeaponRecoilReductionModExpert", "PrimePrice": 300, "RegularPrice": 220000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Upgrades/Mods/Shotgun/Expert/WeaponRecoilReductionModExpert", "PrimePrice": 300, "RegularPrice": 220000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/Items/SongItems/TenthAnniversaryLoginSongItem", "PrimePrice": 145, "RegularPrice": 165000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/Items/SongItems/AbyssofDagathSongItem", "PrimePrice": 150, "RegularPrice": 155000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/Items/SongItems/ZarimanLoginSongItem", "PrimePrice": 160, "RegularPrice": 180000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/Items/SongItems/DanteUnboundLoginSongItem", "PrimePrice": 150, "RegularPrice": 150000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/Items/SongItems/EmpyreanSongItem", "PrimePrice": 160, "RegularPrice": 155000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/Items/SongItems/DeimosLoginSongItem", "PrimePrice": 155, "RegularPrice": 160000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/Items/SongItems/JadeShadowsLoginSongItem", "PrimePrice": 150, "RegularPrice": 170000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/Items/SongItems/WhispersInTheWallLoginSongItem", "PrimePrice": 165, "RegularPrice": 170000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/Items/SongItems/CorpusRailjackLoginSongItem", "PrimePrice": 150, "RegularPrice": 165000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/Items/SongItems/LotusEatersSongItem", "PrimePrice": 165, "RegularPrice": 150000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/Items/SongItems/KuvaLichLoginSongItem", "PrimePrice": 140, "RegularPrice": 170000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/Items/ShipDecos/Plushies/PlushyBaro", "PrimePrice": 100, "RegularPrice": 125000 },
 | 
				
			||||||
 | 
					    { "ItemType": "/Lotus/StoreItems/Types/Items/ShipDecos/Plushies/PlushyInaros", "PrimePrice": 120, "RegularPrice": 90000 }
 | 
				
			||||||
  ],
 | 
					  ],
 | 
				
			||||||
  "allIfAny": [
 | 
					  "allIfAny": [
 | 
				
			||||||
    [
 | 
					    [
 | 
				
			||||||
 | 
				
			|||||||
@ -922,6 +922,30 @@
 | 
				
			|||||||
                                    <input class="form-check-input" type="checkbox" id="worldState.starDays" />
 | 
					                                    <input class="form-check-input" type="checkbox" id="worldState.starDays" />
 | 
				
			||||||
                                    <label class="form-check-label" for="worldState.starDays" data-loc="worldState_starDays"></label>
 | 
					                                    <label class="form-check-label" for="worldState.starDays" data-loc="worldState_starDays"></label>
 | 
				
			||||||
                                </div>
 | 
					                                </div>
 | 
				
			||||||
 | 
					                                <div class="form-check">
 | 
				
			||||||
 | 
					                                    <input class="form-check-input" type="checkbox" id="worldState.TennoCon" />
 | 
				
			||||||
 | 
					                                    <label class="form-check-label" for="worldState.TennoCon" data-loc="worldState_TennoCon"></label>
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                                <div class="form-check">
 | 
				
			||||||
 | 
					                                    <input class="form-check-input" type="checkbox" id="worldState.BaroTennoCon" />
 | 
				
			||||||
 | 
					                                    <label class="form-check-label" for="worldState.BaroTennoCon" data-loc="worldState_BaroTennoCon"></label>
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                                <div class="form-check">
 | 
				
			||||||
 | 
					                                    <input class="form-check-input" type="checkbox" id="worldState.BellyoftheBeast" />
 | 
				
			||||||
 | 
					                                    <label class="form-check-label" for="worldState.BellyoftheBeast" data-loc="worldState_BellyoftheBeast"></label>
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                                <div class="form-check">
 | 
				
			||||||
 | 
					                                    <input class="form-check-input" type="checkbox" id="worldState.RecurringGhoul" />
 | 
				
			||||||
 | 
					                                    <label class="form-check-label" for="worldState.RecurringGhoul" data-loc="worldState_RecurringGhoul"></label>
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                                <div class="form-check">
 | 
				
			||||||
 | 
					                                    <input class="form-check-input" type="checkbox" id="worldState.HeatFissures" />
 | 
				
			||||||
 | 
					                                    <label class="form-check-label" for="worldState.HeatFissures" data-loc="worldState_HeatFissures"></label>
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                                <div class="form-check">
 | 
				
			||||||
 | 
					                                    <input class="form-check-input" type="checkbox" id="worldState.Fomorian" />
 | 
				
			||||||
 | 
					                                    <label class="form-check-label" for="worldState.Fomorian" data-loc="worldState_Fomorian"></label>
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
                                <div class="form-check">
 | 
					                                <div class="form-check">
 | 
				
			||||||
                                    <input class="form-check-input" type="checkbox" id="worldState.varziaFullyStocked" />
 | 
					                                    <input class="form-check-input" type="checkbox" id="worldState.varziaFullyStocked" />
 | 
				
			||||||
                                    <label class="form-check-label" for="worldState.varziaFullyStocked" data-loc="worldState_varziaFullyStocked"></label>
 | 
					                                    <label class="form-check-label" for="worldState.varziaFullyStocked" data-loc="worldState_varziaFullyStocked"></label>
 | 
				
			||||||
 | 
				
			|||||||
@ -239,6 +239,12 @@ dict = {
 | 
				
			|||||||
    worldState_affinityBoost: `Event Booster: Erfahrung`,
 | 
					    worldState_affinityBoost: `Event Booster: Erfahrung`,
 | 
				
			||||||
    worldState_resourceBoost: `Event Booster: Ressourcen`,
 | 
					    worldState_resourceBoost: `Event Booster: Ressourcen`,
 | 
				
			||||||
    worldState_starDays: `Sternen-Tage`,
 | 
					    worldState_starDays: `Sternen-Tage`,
 | 
				
			||||||
 | 
					    worldState_TennoCon: `[UNTRANSLATED] TennoCon Relay`,
 | 
				
			||||||
 | 
					    worldState_BaroTennoCon: `[UNTRANSLATED] Baro TennoCon Relay`,
 | 
				
			||||||
 | 
					    worldState_Fomorian: `[UNTRANSLATED] Fomorian`,
 | 
				
			||||||
 | 
					    worldState_BellyoftheBeast: `[UNTRANSLATED] BellyoftheBeast`,
 | 
				
			||||||
 | 
					    worldState_RecurringGhoul: `[UNTRANSLATED] RecurringGhoul`,
 | 
				
			||||||
 | 
					    worldState_HeatFissures: `[UNTRANSLATED] HeatFissures`,
 | 
				
			||||||
    worldState_galleonOfGhouls: `Galeone der Ghule`,
 | 
					    worldState_galleonOfGhouls: `Galeone der Ghule`,
 | 
				
			||||||
    disabled: `Deaktiviert`,
 | 
					    disabled: `Deaktiviert`,
 | 
				
			||||||
    worldState_we1: `Wochenende 1`,
 | 
					    worldState_we1: `Wochenende 1`,
 | 
				
			||||||
 | 
				
			|||||||
@ -238,6 +238,12 @@ dict = {
 | 
				
			|||||||
    worldState_affinityBoost: `Affinity Boost`,
 | 
					    worldState_affinityBoost: `Affinity Boost`,
 | 
				
			||||||
    worldState_resourceBoost: `Resource Boost`,
 | 
					    worldState_resourceBoost: `Resource Boost`,
 | 
				
			||||||
    worldState_starDays: `Star Days`,
 | 
					    worldState_starDays: `Star Days`,
 | 
				
			||||||
 | 
					    worldState_TennoCon: `TennoCon Relay`,
 | 
				
			||||||
 | 
					    worldState_BaroTennoCon: `Baro TennoCon Relay`,
 | 
				
			||||||
 | 
					    worldState_Fomorian: `Fomorian`,
 | 
				
			||||||
 | 
					    worldState_BellyoftheBeast: `BellyoftheBeast`,
 | 
				
			||||||
 | 
					    worldState_RecurringGhoul: `RecurringGhoul`,
 | 
				
			||||||
 | 
					    worldState_HeatFissures: `HeatFissures`,
 | 
				
			||||||
    worldState_galleonOfGhouls: `Galleon of Ghouls`,
 | 
					    worldState_galleonOfGhouls: `Galleon of Ghouls`,
 | 
				
			||||||
    disabled: `Disabled`,
 | 
					    disabled: `Disabled`,
 | 
				
			||||||
    worldState_we1: `Weekend 1`,
 | 
					    worldState_we1: `Weekend 1`,
 | 
				
			||||||
 | 
				
			|||||||
@ -239,6 +239,12 @@ dict = {
 | 
				
			|||||||
    worldState_affinityBoost: `Potenciador de Afinidad`,
 | 
					    worldState_affinityBoost: `Potenciador de Afinidad`,
 | 
				
			||||||
    worldState_resourceBoost: `Potenciador de Recursos`,
 | 
					    worldState_resourceBoost: `Potenciador de Recursos`,
 | 
				
			||||||
    worldState_starDays: `Días estelares`,
 | 
					    worldState_starDays: `Días estelares`,
 | 
				
			||||||
 | 
					    worldState_TennoCon: `[UNTRANSLATED] TennoCon Relay`,
 | 
				
			||||||
 | 
					    worldState_BaroTennoCon: `[UNTRANSLATED] Baro TennoCon Relay`,
 | 
				
			||||||
 | 
					    worldState_Fomorian: `[UNTRANSLATED] Fomorian`,
 | 
				
			||||||
 | 
					    worldState_BellyoftheBeast: `[UNTRANSLATED] BellyoftheBeast`,
 | 
				
			||||||
 | 
					    worldState_RecurringGhoul: `[UNTRANSLATED] RecurringGhoul`,
 | 
				
			||||||
 | 
					    worldState_HeatFissures: `[UNTRANSLATED] HeatFissures`,
 | 
				
			||||||
    worldState_galleonOfGhouls: `Galeón de Gules`,
 | 
					    worldState_galleonOfGhouls: `Galeón de Gules`,
 | 
				
			||||||
    disabled: `Desactivado`,
 | 
					    disabled: `Desactivado`,
 | 
				
			||||||
    worldState_we1: `Semana 1`,
 | 
					    worldState_we1: `Semana 1`,
 | 
				
			||||||
 | 
				
			|||||||
@ -239,6 +239,12 @@ dict = {
 | 
				
			|||||||
    worldState_affinityBoost: `Booster d'Affinité`,
 | 
					    worldState_affinityBoost: `Booster d'Affinité`,
 | 
				
			||||||
    worldState_resourceBoost: `Booster de Ressource`,
 | 
					    worldState_resourceBoost: `Booster de Ressource`,
 | 
				
			||||||
    worldState_starDays: `Jours Stellaires`,
 | 
					    worldState_starDays: `Jours Stellaires`,
 | 
				
			||||||
 | 
					    worldState_TennoCon: `[UNTRANSLATED] TennoCon Relay`,
 | 
				
			||||||
 | 
					    worldState_BaroTennoCon: `[UNTRANSLATED] Baro TennoCon Relay`,
 | 
				
			||||||
 | 
					    worldState_Fomorian: `[UNTRANSLATED] Fomorian`,
 | 
				
			||||||
 | 
					    worldState_BellyoftheBeast: `[UNTRANSLATED] BellyoftheBeast`,
 | 
				
			||||||
 | 
					    worldState_RecurringGhoul: `[UNTRANSLATED] RecurringGhoul`,
 | 
				
			||||||
 | 
					    worldState_HeatFissures: `[UNTRANSLATED] HeatFissures`,
 | 
				
			||||||
    worldState_galleonOfGhouls: `Galion des Goules`,
 | 
					    worldState_galleonOfGhouls: `Galion des Goules`,
 | 
				
			||||||
    disabled: `Désactivé`,
 | 
					    disabled: `Désactivé`,
 | 
				
			||||||
    worldState_we1: `Weekend 1`,
 | 
					    worldState_we1: `Weekend 1`,
 | 
				
			||||||
 | 
				
			|||||||
@ -239,6 +239,12 @@ dict = {
 | 
				
			|||||||
    worldState_affinityBoost: `[UNTRANSLATED] Affinity Boost`,
 | 
					    worldState_affinityBoost: `[UNTRANSLATED] Affinity Boost`,
 | 
				
			||||||
    worldState_resourceBoost: `[UNTRANSLATED] Resource Boost`,
 | 
					    worldState_resourceBoost: `[UNTRANSLATED] Resource Boost`,
 | 
				
			||||||
    worldState_starDays: `[UNTRANSLATED] Star Days`,
 | 
					    worldState_starDays: `[UNTRANSLATED] Star Days`,
 | 
				
			||||||
 | 
					    worldState_TennoCon: `[UNTRANSLATED] TennoCon Relay`,
 | 
				
			||||||
 | 
					    worldState_BaroTennoCon: `[UNTRANSLATED] Baro TennoCon Relay`,
 | 
				
			||||||
 | 
					    worldState_Fomorian: `[UNTRANSLATED] Fomorian`,
 | 
				
			||||||
 | 
					    worldState_BellyoftheBeast: `[UNTRANSLATED] BellyoftheBeast`,
 | 
				
			||||||
 | 
					    worldState_RecurringGhoul: `[UNTRANSLATED] RecurringGhoul`,
 | 
				
			||||||
 | 
					    worldState_HeatFissures: `[UNTRANSLATED] HeatFissures`,
 | 
				
			||||||
    worldState_galleonOfGhouls: `[UNTRANSLATED] Galleon of Ghouls`,
 | 
					    worldState_galleonOfGhouls: `[UNTRANSLATED] Galleon of Ghouls`,
 | 
				
			||||||
    disabled: `[UNTRANSLATED] Disabled`,
 | 
					    disabled: `[UNTRANSLATED] Disabled`,
 | 
				
			||||||
    worldState_we1: `[UNTRANSLATED] Weekend 1`,
 | 
					    worldState_we1: `[UNTRANSLATED] Weekend 1`,
 | 
				
			||||||
 | 
				
			|||||||
@ -239,6 +239,12 @@ dict = {
 | 
				
			|||||||
    worldState_affinityBoost: `经验加成`,
 | 
					    worldState_affinityBoost: `经验加成`,
 | 
				
			||||||
    worldState_resourceBoost: `资源加成`,
 | 
					    worldState_resourceBoost: `资源加成`,
 | 
				
			||||||
    worldState_starDays: `活动:星日`,
 | 
					    worldState_starDays: `活动:星日`,
 | 
				
			||||||
 | 
					    worldState_TennoCon: `TennoCon中继站`,
 | 
				
			||||||
 | 
					    worldState_BaroTennoCon: `BaroTennoCon中继站`,
 | 
				
			||||||
 | 
					    worldState_Fomorian: `破坏巨人战舰`,
 | 
				
			||||||
 | 
					    worldState_BellyoftheBeast: `行动代号: 兽之腹`,
 | 
				
			||||||
 | 
					    worldState_RecurringGhoul: `尸鬼净化`,
 | 
				
			||||||
 | 
					    worldState_HeatFissures: `热美亚裂缝`,
 | 
				
			||||||
    worldState_galleonOfGhouls: `战术警报:尸鬼的帆船战舰`,
 | 
					    worldState_galleonOfGhouls: `战术警报:尸鬼的帆船战舰`,
 | 
				
			||||||
    disabled: `关闭/取消配置`,
 | 
					    disabled: `关闭/取消配置`,
 | 
				
			||||||
    worldState_we1: `活动阶段:第一周`,
 | 
					    worldState_we1: `活动阶段:第一周`,
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user