feat: thermia fractures #2670
@ -86,6 +86,8 @@
 | 
			
		||||
    "bellyOfTheBeastProgressOverride": 0,
 | 
			
		||||
    "eightClaw": false,
 | 
			
		||||
    "eightClawProgressOverride": 0,
 | 
			
		||||
    "thermiaFracturesOverride": null,
 | 
			
		||||
    "thermiaFracturesProgressOverride": 0,
 | 
			
		||||
    "eidolonOverride": "",
 | 
			
		||||
    "vallisOverride": "",
 | 
			
		||||
    "duviriOverride": "",
 | 
			
		||||
 | 
			
		||||
@ -98,6 +98,8 @@ export interface IConfig {
 | 
			
		||||
        bellyOfTheBeastProgressOverride?: number;
 | 
			
		||||
        eightClaw?: boolean;
 | 
			
		||||
        eightClawProgressOverride?: number;
 | 
			
		||||
        thermiaFracturesOverride?: boolean;
 | 
			
		||||
        thermiaFracturesProgressOverride?: number;
 | 
			
		||||
        eidolonOverride?: string;
 | 
			
		||||
        vallisOverride?: string;
 | 
			
		||||
        duviriOverride?: string;
 | 
			
		||||
 | 
			
		||||
@ -640,7 +640,7 @@ export const addMissionInventoryUpdates = async (
 | 
			
		||||
                        }
 | 
			
		||||
 | 
			
		||||
                        const currentNode = inventoryUpdates.RewardInfo!.node;
 | 
			
		||||
                        let currentMissionKey;
 | 
			
		||||
                        let currentMissionKey: string | undefined;
 | 
			
		||||
                        if (currentNode == goal.Node) {
 | 
			
		||||
                            currentMissionKey = goal.MissionKeyName;
 | 
			
		||||
                        } else if (goal.ConcurrentNodes && goal.ConcurrentMissionKeyNames) {
 | 
			
		||||
@ -651,15 +651,15 @@ export const addMissionInventoryUpdates = async (
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                        if (currentMissionKey && currentMissionKey in goalMessagesByKey) {
 | 
			
		||||
                        const rewards = [];
 | 
			
		||||
                        let countBeforeUpload = goalProgress?.Count ?? 0;
 | 
			
		||||
                        let totalCount = countBeforeUpload + uploadProgress.Count;
 | 
			
		||||
                        if (goal.Best) {
 | 
			
		||||
                            countBeforeUpload = goalProgress?.Best ?? 0;
 | 
			
		||||
                            totalCount = uploadProgress.Best;
 | 
			
		||||
                        }
 | 
			
		||||
                            let reward;
 | 
			
		||||
 | 
			
		||||
                        {
 | 
			
		||||
                            if (goal.InterimGoals && goal.InterimRewards) {
 | 
			
		||||
                                for (let i = 0; i < goal.InterimGoals.length; i++) {
 | 
			
		||||
                                    if (
 | 
			
		||||
@ -668,33 +668,55 @@ export const addMissionInventoryUpdates = async (
 | 
			
		||||
                                        (!goalProgress || countBeforeUpload < goal.InterimGoals[i]) &&
 | 
			
		||||
                                        goal.InterimRewards[i]
 | 
			
		||||
                                    ) {
 | 
			
		||||
                                        reward = goal.InterimRewards[i];
 | 
			
		||||
                                        rewards.push(goal.InterimRewards[i]);
 | 
			
		||||
                                        break;
 | 
			
		||||
                                    }
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
                            if (
 | 
			
		||||
                                !reward &&
 | 
			
		||||
                                goal.Goal &&
 | 
			
		||||
                                goal.Goal <= totalCount &&
 | 
			
		||||
                                (!goalProgress || countBeforeUpload < goal.Goal) &&
 | 
			
		||||
                                goal.Reward
 | 
			
		||||
                            ) {
 | 
			
		||||
                                reward = goal.Reward;
 | 
			
		||||
                                rewards.push(goal.Reward);
 | 
			
		||||
                            }
 | 
			
		||||
                            if (
 | 
			
		||||
                                !reward &&
 | 
			
		||||
                                goal.BonusGoal &&
 | 
			
		||||
                                goal.BonusGoal <= totalCount &&
 | 
			
		||||
                                (!goalProgress || countBeforeUpload < goal.BonusGoal) &&
 | 
			
		||||
                                goal.BonusReward
 | 
			
		||||
                            ) {
 | 
			
		||||
                                reward = goal.BonusReward;
 | 
			
		||||
                                rewards.push(goal.BonusReward);
 | 
			
		||||
                            }
 | 
			
		||||
                            if (reward) {
 | 
			
		||||
                                if (currentMissionKey in goalMessagesByKey) {
 | 
			
		||||
                                    // Send reward via inbox
 | 
			
		||||
                                    const info = goalMessagesByKey[currentMissionKey];
 | 
			
		||||
                        }
 | 
			
		||||
 | 
			
		||||
                        const messages: IMessageCreationTemplate[] = [];
 | 
			
		||||
                        const infos: {
 | 
			
		||||
                            sndr: string;
 | 
			
		||||
                            msg: string;
 | 
			
		||||
                            sub: string;
 | 
			
		||||
                            icon: string;
 | 
			
		||||
                            arg?: string[];
 | 
			
		||||
                        }[] = [];
 | 
			
		||||
 | 
			
		||||
                        {
 | 
			
		||||
                            if (currentMissionKey && currentMissionKey in goalMessagesByKey) {
 | 
			
		||||
                                infos.push(goalMessagesByKey[currentMissionKey]);
 | 
			
		||||
                            } else if (goal.Tag in goalMessagesByTag) {
 | 
			
		||||
                                const combinedGoals = [...(goal.InterimGoals || []), goal.Goal, goal.BonusGoal];
 | 
			
		||||
                                combinedGoals.forEach((n, i) => {
 | 
			
		||||
                                    if (n !== undefined && n > countBeforeUpload && n <= totalCount) {
 | 
			
		||||
                                        infos.push(goalMessagesByTag[goal.Tag][i]);
 | 
			
		||||
                                    }
 | 
			
		||||
                                });
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
 | 
			
		||||
                        for (let i = 0; i < rewards.length; i++) {
 | 
			
		||||
                            if (infos[i]) {
 | 
			
		||||
                                const info = infos[i];
 | 
			
		||||
                                const reward = rewards[i];
 | 
			
		||||
                                const message: IMessageCreationTemplate = {
 | 
			
		||||
                                    sndr: info.sndr,
 | 
			
		||||
                                    msg: info.msg,
 | 
			
		||||
@ -702,7 +724,6 @@ export const addMissionInventoryUpdates = async (
 | 
			
		||||
                                    icon: info.icon,
 | 
			
		||||
                                    highPriority: true
 | 
			
		||||
                                };
 | 
			
		||||
 | 
			
		||||
                                if (reward.items) {
 | 
			
		||||
                                    message.att = reward.items.map(x => (isStoreItem(x) ? fromStoreItem(x) : x));
 | 
			
		||||
                                }
 | 
			
		||||
@ -718,19 +739,23 @@ export const addMissionInventoryUpdates = async (
 | 
			
		||||
                                        CREDIT_REWARD: reward.credits ?? 0
 | 
			
		||||
                                    };
 | 
			
		||||
 | 
			
		||||
                                        info.arg.forEach(key => {
 | 
			
		||||
                                    for (let j = 0; j < info.arg.length; j++) {
 | 
			
		||||
                                        const key = info.arg[j];
 | 
			
		||||
                                        const value = args[key];
 | 
			
		||||
                                        if (value) {
 | 
			
		||||
                                            message.arg ??= [];
 | 
			
		||||
                                                message.arg.push({ Key: key, Tag: value });
 | 
			
		||||
                                            }
 | 
			
		||||
                                            message.arg.push({
 | 
			
		||||
                                                Key: key,
 | 
			
		||||
                                                Tag: value
 | 
			
		||||
                                            });
 | 
			
		||||
                                        }
 | 
			
		||||
                                    }
 | 
			
		||||
                                }
 | 
			
		||||
                                messages.push(message);
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
 | 
			
		||||
                                    await createMessage(inventory.accountOwnerId, [message]);
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                        if (messages.length > 0) await createMessage(inventory.accountOwnerId, messages);
 | 
			
		||||
 | 
			
		||||
                        if (goalProgress) {
 | 
			
		||||
                            goalProgress.Best = Math.max(goalProgress.Best!, uploadProgress.Best);
 | 
			
		||||
@ -2617,3 +2642,38 @@ const goalMessagesByKey: Record<string, { sndr: string; msg: string; sub: string
 | 
			
		||||
        arg: ["PLAYER_NAME"]
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const goalMessagesByTag: Record<string, { sndr: string; msg: string; sub: string; icon: string; arg?: string[] }[]> = {
 | 
			
		||||
    HeatFissure: [
 | 
			
		||||
        {
 | 
			
		||||
            sndr: "/Lotus/Language/Npcs/Eudico",
 | 
			
		||||
            msg: "/Lotus/Language/Messages/OrbHeistEventRewardAInboxMessageBody",
 | 
			
		||||
            sub: "/Lotus/Language/Messages/OrbHeistEventRewardAInboxMessageTitle",
 | 
			
		||||
            icon: "/Lotus/Interface/Icons/Npcs/Eudico.png"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            sndr: "/Lotus/Language/Npcs/Eudico",
 | 
			
		||||
            msg: "/Lotus/Language/Messages/OrbHeistEventRewardBInboxMessageBody",
 | 
			
		||||
            sub: "/Lotus/Language/Messages/OrbHeistEventRewardBInboxMessageTitle",
 | 
			
		||||
            icon: "/Lotus/Interface/Icons/Npcs/Eudico.png"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            sndr: "/Lotus/Language/Npcs/Eudico",
 | 
			
		||||
            msg: "/Lotus/Language/Messages/OrbHeistEventRewardCInboxMessageBody",
 | 
			
		||||
            sub: "/Lotus/Language/Messages/OrbHeistEventRewardCInboxMessageTitle",
 | 
			
		||||
            icon: "/Lotus/Interface/Icons/Npcs/Eudico.png"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            sndr: "/Lotus/Language/Npcs/Eudico",
 | 
			
		||||
            msg: "/Lotus/Language/Messages/OrbHeistEventRewardDInboxMessageBody",
 | 
			
		||||
            sub: "/Lotus/Language/Messages/OrbHeistEventRewardDInboxMessageTitle",
 | 
			
		||||
            icon: "/Lotus/Interface/Icons/Npcs/Eudico.png"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            sndr: "/Lotus/Language/Npcs/Eudico",
 | 
			
		||||
            msg: "/Lotus/Language/Messages/OrbHeistEventRewardEInboxMessageBody",
 | 
			
		||||
            sub: "/Lotus/Language/Messages/OrbHeistEventRewardEInboxMessageTitle",
 | 
			
		||||
            icon: "/Lotus/Interface/Icons/Npcs/Eudico.png"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -2629,6 +2629,87 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const thermiaFracturesCycleDay = day % 32;
 | 
			
		||||
    const isThermiaFracturesActive = thermiaFracturesCycleDay < 14;
 | 
			
		||||
    if (config.worldState?.thermiaFracturesOverride ?? isThermiaFracturesActive) {
 | 
			
		||||
        const activeStartDay = day - thermiaFracturesCycleDay;
 | 
			
		||||
 | 
			
		||||
        const count = config.worldState?.thermiaFracturesProgressOverride ?? 0;
 | 
			
		||||
        const activation = config.worldState?.thermiaFracturesOverride ? 1740416400000 : getSortieTime(activeStartDay);
 | 
			
		||||
        const expiry = config.worldState?.thermiaFracturesOverride ? 2000000000000 : getSortieTime(activeStartDay + 14);
 | 
			
		||||
 | 
			
		||||
        worldState.Goals.push({
 | 
			
		||||
            _id: { $oid: "5c7cb0d00000000000000000" },
 | 
			
		||||
            Activation: { $date: { $numberLong: activation.toString() } },
 | 
			
		||||
            Expiry: { $date: { $numberLong: expiry.toString() } },
 | 
			
		||||
            Node: "SolNode129",
 | 
			
		||||
            ScoreVar: "FissuresClosed",
 | 
			
		||||
            ScoreLocTag: "/Lotus/Language/G1Quests/HeatFissuresEventScore",
 | 
			
		||||
            Count: count,
 | 
			
		||||
            HealthPct: count / 100,
 | 
			
		||||
            Regions: [1],
 | 
			
		||||
            Desc: "/Lotus/Language/G1Quests/HeatFissuresEventName",
 | 
			
		||||
            ToolTip: "/Lotus/Language/G1Quests/HeatFissuresEventDesc",
 | 
			
		||||
            OptionalInMission: true,
 | 
			
		||||
            Tag: "HeatFissure",
 | 
			
		||||
            UpgradeIds: [{ $oid: "5c81cefa4c4566791728eaa7" }, { $oid: "5c81cefa4c4566791728eaa6" }],
 | 
			
		||||
            Personal: true,
 | 
			
		||||
            Community: true,
 | 
			
		||||
            Goal: 100,
 | 
			
		||||
            Reward: {
 | 
			
		||||
                items: ["/Lotus/StoreItems/Weapons/Corpus/LongGuns/CrpBFG/Vandal/VandalCrpBFG"]
 | 
			
		||||
            },
 | 
			
		||||
            InterimGoals: [5, 25, 50, 75],
 | 
			
		||||
            InterimRewards: [
 | 
			
		||||
                { items: ["/Lotus/StoreItems/Upgrades/Skins/Clan/OrbBadgeItem"] },
 | 
			
		||||
                {
 | 
			
		||||
                    items: [
 | 
			
		||||
                        "/Lotus/StoreItems/Upgrades/Mods/DualSource/Shotgun/ShotgunMedicMod",
 | 
			
		||||
                        "/Lotus/StoreItems/Upgrades/Mods/DualSource/Rifle/SerratedRushMod"
 | 
			
		||||
                    ]
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    items: [
 | 
			
		||||
                        "/Lotus/StoreItems/Upgrades/Mods/DualSource/Pistol/MultishotDodgeMod",
 | 
			
		||||
                        "/Lotus/StoreItems/Upgrades/Mods/DualSource/Melee/CritDamageChargeSpeedMod"
 | 
			
		||||
                    ]
 | 
			
		||||
                },
 | 
			
		||||
                { items: ["/Lotus/StoreItems/Upgrades/Skins/Sigils/OrbSigil"] }
 | 
			
		||||
            ]
 | 
			
		||||
        });
 | 
			
		||||
        worldState.NodeOverrides.push({
 | 
			
		||||
            _id: { $oid: "5c7cb0d00000000000000000" },
 | 
			
		||||
            Activation: { $date: { $numberLong: activation.toString() } },
 | 
			
		||||
            Expiry: { $date: { $numberLong: expiry.toString() } },
 | 
			
		||||
            Node: "SolNode129",
 | 
			
		||||
            Faction: "FC_CORPUS",
 | 
			
		||||
            CustomNpcEncounters: ["/Lotus/Types/Gameplay/Venus/Encounters/Heists/ExploiterHeistFissure"]
 | 
			
		||||
        });
 | 
			
		||||
        if (count >= 35) {
 | 
			
		||||
            worldState.GlobalUpgrades.push({
 | 
			
		||||
                _id: { $oid: "5c81cefa4c4566791728eaa6" },
 | 
			
		||||
                Activation: { $date: { $numberLong: activation.toString() } },
 | 
			
		||||
                ExpiryDate: { $date: { $numberLong: expiry.toString() } },
 | 
			
		||||
                UpgradeType: "GAMEPLAY_MONEY_REWARD_AMOUNT",
 | 
			
		||||
                OperationType: "MULTIPLY",
 | 
			
		||||
                Value: 2,
 | 
			
		||||
                Nodes: ["SolNode129"]
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
        // Not sure about that
 | 
			
		||||
        if (count == 100) {
 | 
			
		||||
            worldState.GlobalUpgrades.push({
 | 
			
		||||
                _id: { $oid: "5c81cefa4c4566791728eaa7" },
 | 
			
		||||
                Activation: { $date: { $numberLong: activation.toString() } },
 | 
			
		||||
                ExpiryDate: { $date: { $numberLong: expiry.toString() } },
 | 
			
		||||
                UpgradeType: "GAMEPLAY_PICKUP_AMOUNT",
 | 
			
		||||
                OperationType: "MULTIPLY",
 | 
			
		||||
                Value: 2,
 | 
			
		||||
                Nodes: ["SolNode129"]
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Nightwave Challenges
 | 
			
		||||
    const nightwaveSyndicateTag = getNightwaveSyndicateTag(buildLabel);
 | 
			
		||||
    if (nightwaveSyndicateTag) {
 | 
			
		||||
@ -2727,7 +2808,7 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
 | 
			
		||||
                        : Date.UTC(
 | 
			
		||||
                              date.getUTCFullYear(),
 | 
			
		||||
                              date.getUTCMonth(),
 | 
			
		||||
                              date.getUTCDate() + (day - ghoulsCycleDay + 17)
 | 
			
		||||
                              date.getUTCDate() + activeStartDay
 | 
			
		||||
                          ).toString()
 | 
			
		||||
                }
 | 
			
		||||
            },
 | 
			
		||||
@ -2738,7 +2819,7 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
 | 
			
		||||
                        : Date.UTC(
 | 
			
		||||
                              date.getUTCFullYear(),
 | 
			
		||||
                              date.getUTCMonth(),
 | 
			
		||||
                              date.getUTCDate() + (day - ghoulsCycleDay + 21)
 | 
			
		||||
                              date.getUTCDate() + activeEndDay
 | 
			
		||||
                          ).toString()
 | 
			
		||||
                }
 | 
			
		||||
            },
 | 
			
		||||
 | 
			
		||||
@ -43,7 +43,7 @@ export interface IGoal {
 | 
			
		||||
    Count?: number;
 | 
			
		||||
    HealthPct?: number;
 | 
			
		||||
 | 
			
		||||
    Icon: string;
 | 
			
		||||
    Icon?: string;
 | 
			
		||||
    Desc: string;
 | 
			
		||||
    ToolTip?: string;
 | 
			
		||||
    Faction?: string;
 | 
			
		||||
@ -94,6 +94,9 @@ export interface IGoal {
 | 
			
		||||
    MissionKeyRotation?: string[];
 | 
			
		||||
    MissionKeyRotationInterval?: number;
 | 
			
		||||
 | 
			
		||||
    OptionalInMission?: boolean;
 | 
			
		||||
    UpgradeIds?: IOid[];
 | 
			
		||||
 | 
			
		||||
    NightLevel?: string;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -128,8 +131,9 @@ export interface IGlobalUpgrade {
 | 
			
		||||
    UpgradeType: string;
 | 
			
		||||
    OperationType: string;
 | 
			
		||||
    Value: number;
 | 
			
		||||
    LocalizeTag: string;
 | 
			
		||||
    LocalizeDescTag: string;
 | 
			
		||||
    LocalizeTag?: string;
 | 
			
		||||
    LocalizeDescTag?: string;
 | 
			
		||||
    Nodes?: string[];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface IInvasion {
 | 
			
		||||
@ -183,7 +187,7 @@ export interface INodeOverride {
 | 
			
		||||
    Seed?: number;
 | 
			
		||||
    LevelOverride?: string;
 | 
			
		||||
    Faction?: string;
 | 
			
		||||
    CustomNpcEncounters?: string;
 | 
			
		||||
    CustomNpcEncounters?: string[];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ISortie {
 | 
			
		||||
 | 
			
		||||
@ -1103,6 +1103,25 @@
 | 
			
		||||
                                        </form>
 | 
			
		||||
                                    </div>
 | 
			
		||||
                                </div>
 | 
			
		||||
                                <div class="form-group mt-2 d-flex gap-2">
 | 
			
		||||
                                    <div class="flex-fill">
 | 
			
		||||
                                        <label class="form-label" for="worldState.thermiaFracturesOverride" data-loc="worldState_thermiaFractures"></label>
 | 
			
		||||
                                        <select class="form-control" id="worldState.thermiaFracturesOverride" data-default="null">
 | 
			
		||||
                                            <option value="null" data-loc="normal"></option>
 | 
			
		||||
                                            <option value="true" data-loc="enabled"></option>
 | 
			
		||||
                                            <option value="false" data-loc="disabled"></option>
 | 
			
		||||
                                        </select>
 | 
			
		||||
                                    </div>
 | 
			
		||||
                                    <div class="flex-fill">
 | 
			
		||||
                                        <form class="form-group" onsubmit="doSaveConfigInt('worldState.thermiaFracturesProgressOverride'); return false;">
 | 
			
		||||
                                            <label class="form-label" for="worldState.thermiaFracturesProgressOverride" data-loc="worldState_thermiaFracturesProgressOverride"></label>
 | 
			
		||||
                                            <div class="input-group">
 | 
			
		||||
                                                <input id="worldState.thermiaFracturesProgressOverride" class="form-control" type="number" min="0" max="100" data-default="0" />
 | 
			
		||||
                                                <button class="btn btn-secondary" type="submit" data-loc="cheats_save"></button>
 | 
			
		||||
                                            </div>
 | 
			
		||||
                                        </form>
 | 
			
		||||
                                    </div>
 | 
			
		||||
                                </div>
 | 
			
		||||
                                <div class="form-group mt-2">
 | 
			
		||||
                                    <label class="form-label" for="worldState.eidolonOverride" data-loc="worldState_eidolonOverride"></label>
 | 
			
		||||
                                    <select class="form-control" id="worldState.eidolonOverride" data-default="">
 | 
			
		||||
 | 
			
		||||
@ -265,6 +265,8 @@ dict = {
 | 
			
		||||
    worldState_bellyOfTheBeastProgressOverride: `[UNTRANSLATED] Belly of the Beast Progress`,
 | 
			
		||||
    worldState_eightClaw: `Acht Klauen`,
 | 
			
		||||
    worldState_eightClawProgressOverride: `[UNTRANSLATED] Eight Claw Progress`,
 | 
			
		||||
    worldState_thermiaFractures: `Thermische Risse`,
 | 
			
		||||
    worldState_thermiaFracturesProgressOverride: `[UNTRANSLATED] Thermia Fractures Progress`,
 | 
			
		||||
    worldState_from_year: `[UNTRANSLATED] from |VAL|`,
 | 
			
		||||
    worldState_pre_year: `[UNTRANSLATED] pre |VAL|`,
 | 
			
		||||
    worldState_week: `[UNTRANSLATED] Week |VAL|`,
 | 
			
		||||
 | 
			
		||||
@ -264,6 +264,8 @@ dict = {
 | 
			
		||||
    worldState_bellyOfTheBeastProgressOverride: `Belly of the Beast Progress`,
 | 
			
		||||
    worldState_eightClaw: `Eight Claw`,
 | 
			
		||||
    worldState_eightClawProgressOverride: `Eight Claw Progress`,
 | 
			
		||||
    worldState_thermiaFractures: `Thermia Fractures`,
 | 
			
		||||
    worldState_thermiaFracturesProgressOverride: `Thermia Fractures Progress`,
 | 
			
		||||
    worldState_from_year: `from |VAL|`,
 | 
			
		||||
    worldState_pre_year: `pre |VAL|`,
 | 
			
		||||
    worldState_week: `Week |VAL|`,
 | 
			
		||||
 | 
			
		||||
@ -265,6 +265,8 @@ dict = {
 | 
			
		||||
    worldState_bellyOfTheBeastProgressOverride: `Progreso del Vientre de la Bestia`,
 | 
			
		||||
    worldState_eightClaw: `Octava Garra`,
 | 
			
		||||
    worldState_eightClawProgressOverride: `Progreso de Octava Garra`,
 | 
			
		||||
    worldState_thermiaFractures: `Fracturas Thermia`,
 | 
			
		||||
    worldState_thermiaFracturesProgressOverride: `[UNTRANSLATED] Thermia Fractures Progress`,
 | 
			
		||||
    worldState_from_year: `de |VAL|`,
 | 
			
		||||
    worldState_pre_year: `antes de |VAL|`,
 | 
			
		||||
    worldState_week: `Semana |VAL|`,
 | 
			
		||||
 | 
			
		||||
@ -265,6 +265,8 @@ dict = {
 | 
			
		||||
    worldState_bellyOfTheBeastProgressOverride: `[UNTRANSLATED] Belly of the Beast Progress`,
 | 
			
		||||
    worldState_eightClaw: `Huitième Griffe`,
 | 
			
		||||
    worldState_eightClawProgressOverride: `[UNTRANSLATED] Eight Claw Progress`,
 | 
			
		||||
    worldState_thermiaFractures: `Crevasses Thermia`,
 | 
			
		||||
    worldState_thermiaFracturesProgressOverride: `[UNTRANSLATED] Thermia Fractures Progress`,
 | 
			
		||||
    worldState_from_year: `[UNTRANSLATED] from |VAL|`,
 | 
			
		||||
    worldState_pre_year: `[UNTRANSLATED] pre |VAL|`,
 | 
			
		||||
    worldState_week: `[UNTRANSLATED] Week |VAL|`,
 | 
			
		||||
 | 
			
		||||
@ -265,6 +265,8 @@ dict = {
 | 
			
		||||
    worldState_bellyOfTheBeastProgressOverride: `Прогресс Чрева зверя`,
 | 
			
		||||
    worldState_eightClaw: `Восемь когтей`,
 | 
			
		||||
    worldState_eightClawProgressOverride: `Прогресс Восьми когтей`,
 | 
			
		||||
    worldState_thermiaFractures: `Разломы Термии`,
 | 
			
		||||
    worldState_thermiaFracturesProgressOverride: `Прогресс Разломов Термии`,
 | 
			
		||||
    worldState_from_year: `из |VAL|`,
 | 
			
		||||
    worldState_pre_year: `до |VAL|`,
 | 
			
		||||
    worldState_week: `Неделя |VAL|`,
 | 
			
		||||
 | 
			
		||||
@ -265,6 +265,8 @@ dict = {
 | 
			
		||||
    worldState_bellyOfTheBeastProgressOverride: `Прогрес У лігві звіра`,
 | 
			
		||||
    worldState_eightClaw: `Вісім кігтів`,
 | 
			
		||||
    worldState_eightClawProgressOverride: `Прогрес Восьми кігтів`,
 | 
			
		||||
    worldState_thermiaFractures: `Розломи термії`,
 | 
			
		||||
    worldState_thermiaFracturesProgressOverride: `[UNTRANSLATED] Thermia Fractures Progress`,
 | 
			
		||||
    worldState_from_year: `з |VAL|`,
 | 
			
		||||
    worldState_pre_year: `до |VAL|`,
 | 
			
		||||
    worldState_week: `Тиждень |VAL|`,
 | 
			
		||||
 | 
			
		||||
@ -265,6 +265,8 @@ dict = {
 | 
			
		||||
    worldState_bellyOfTheBeastProgressOverride: `不稳定微粒收集进度(%)`,
 | 
			
		||||
    worldState_eightClaw: `八爪`,
 | 
			
		||||
    worldState_eightClawProgressOverride: `大帝金币收集进度(%)`,
 | 
			
		||||
    worldState_thermiaFractures: `热美亚裂缝`,
 | 
			
		||||
    worldState_thermiaFracturesProgressOverride: `[UNTRANSLATED] Thermia Fractures Progress`,
 | 
			
		||||
    worldState_from_year: `|VAL|`,
 | 
			
		||||
    worldState_pre_year: `|VAL|之前`,
 | 
			
		||||
    worldState_week: `第|VAL|周`,
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user