${T.mainMenu.puzzleDlcText}
import { cachebust } from "../core/cachebust"; import { globalConfig, openStandaloneLink, THIRDPARTY_URLS } from "../core/config"; import { GameState } from "../core/game_state"; import { DialogWithForm } from "../core/modal_dialog_elements"; import { FormElementInput } from "../core/modal_dialog_forms"; import { ReadWriteProxy } from "../core/read_write_proxy"; import { WEB_STEAM_SSO_AUTHENTICATED } from "../core/steam_sso"; import { formatSecondsToTimeAgo, generateFileDownload, getLogoSprite, makeButton, makeDiv, makeDivElement, removeAllChildren, startFileChoose, waitNextFrame, } from "../core/utils"; import { HUDModalDialogs } from "../game/hud/parts/modal_dialogs"; import { MODS } from "../mods/modloader"; import { PlatformWrapperImplBrowser } from "../platform/browser/wrapper"; import { PlatformWrapperImplElectron } from "../platform/electron/wrapper"; import { Savegame } from "../savegame/savegame"; import { T } from "../translations"; const trim = require("trim"); /** * @typedef {import("../savegame/savegame_typedefs").SavegameMetadata} SavegameMetadata * @typedef {import("../profile/setting_types").EnumSetting} EnumSetting */ export class MainMenuState extends GameState { constructor() { super("MainMenuState"); this.refreshInterval = null; } getInnerHTML() { const showLanguageIcon = !G_CHINA_VERSION && !G_WEGAME_VERSION; const showExitAppButton = G_IS_STANDALONE; const showPuzzleDLC = !G_WEGAME_VERSION && (G_IS_STANDALONE || WEB_STEAM_SSO_AUTHENTICATED) && !G_IS_STEAM_DEMO; const showWegameFooter = G_WEGAME_VERSION; const hasMods = MODS.anyModsActive(); let showExternalLinks = true; if (G_IS_STANDALONE) { if (G_WEGAME_VERSION || G_CHINA_VERSION) { showExternalLinks = false; } } else { const wrapper = /** @type {PlatformWrapperImplBrowser} */ (this.app.platformWrapper); if (!wrapper.embedProvider.externalLinks) { showExternalLinks = false; } } let showDiscordLink = showExternalLinks; if (G_CHINA_VERSION) { showDiscordLink = true; } const showDemoAdvertisement = showExternalLinks && this.app.restrictionMgr.getIsStandaloneMarketingActive(); const ownsPuzzleDLC = G_IS_DEV || WEB_STEAM_SSO_AUTHENTICATED || (G_IS_STANDALONE && !G_IS_STEAM_DEMO && /** @type { PlatformWrapperImplElectron}*/ (this.app.platformWrapper).dlcs.puzzle); const bannerHtml = `
${trans.desc}
${T.mainMenu.puzzleDlcText}