JavaScript must be enabled to play.
Browser lacks capabilities required to play.
Upgrade or switch to another browser.
Loading…
<div id="main-menu-screen" class="main-menu-screen" onclick="handleMainMenuClick(event)" onmousemove="handleMainMenuPointerMove(event)" > <div id="main-menu-background" class="main-menu-background" aria-hidden="true" style="aspect-ratio:1440 / 2580;" ></div> </div>
<<set $language = "ru">> <<set $holiness = 70>> <<set $strength = 85>> <<set $glory = 45>> <<set $wisdom = 60>> /* ========================================= СЮЖЕТНЫЕ ЧАСЫ ========================================= */ <<set $clockHour = 8>> <<set $clockMinute = 0>> /* ========================================= ТАЙМЕР НАШЕСТВИЯ ========================================= */ /* ВАЖНО: - достоверность всегда от 0 до 99 - 100% в игре не используется - clockHour / clockMinute синхронизируются с invasionHours / invasionMinutes через JS */ <<set $invasionDays = 20>> <<set $invasionHours = 8>> <<set $invasionMinutes = 0>> <<set $invasionReliability = 90>> <<set $invasionSourceId = "secret-report">> <<set $invasionEventId = "nogai-camp">> <<set $invasionReturnPassage = null>> /* ========================================= ИНВЕНТАРЬ ========================================= */ /* Здесь хранятся предметы игрока. Ключ = ID предмета. Число = количество. */ <<set $inventory = {}>> /* ========================================= КРАФТ ========================================= */ /* Два выбранных предмета для сборки. Результат хранится отдельно. */ <<set $craftSlot1 = null>> <<set $craftSlot2 = null>> <<set $craftResult = null>> /* ========================================= ФИЛЬТР ИНВЕНТАРЯ ========================================= */ /* all food weapon misc */ <<set $inventoryFilter = "all">> /* ========================================= СТРАНИЦА ИНВЕНТАРЯ ========================================= */ <<set $inventoryPage = 0>> <<set $inventoryReturnPassage = null>> /* ========================================================= ПЛАТНЫЙ КОНТЕНТ — СОСТОЯНИЕ ПРОХОЖДЕНИЯ Здесь хранится только то, что относится непосредственно к ЭТОМУ прохождению. Сама подписка здесь НЕ хранится. ========================================================= */ <<set $claimedGrants = {}>> <<set $equippedCosmetics = { neck: null, outfit: null, extra: null }>> <<set $activeCompanion = null>> <<set $selectedTheme = "default">>
<div id="inventory-screen"></div>
>
<div id="invasion-records-screen"></div>
<div id="states-screen" class="states-screen"> <img id="states-background" class="states-background" src="images/systems/hud/states/ru/states.png" alt="" draggable="false" > <div id="states-list"></div> <button id="states-close" class="states-hotspot" type="button" aria-label="Закрыть" onclick="closeStatesScreen()" ></button> <button id="states-prev" class="states-hotspot" type="button" aria-label="Предыдущая страница" onclick="changeStatesPage(-1)" ></button> <button id="states-next" class="states-hotspot" type="button" aria-label="Следующая страница" onclick="changeStatesPage(1)" ></button> </div>
<div id="game-hud"> <img id="hud-image" src="images/systems/hud/qualities/shared/hud-closed.webp" onerror="this.onerror=null;this.src='images/systems/hud/qualities/shared/hud-closed.png';" alt="" > <button id="hud-holiness" class="hud-button" onclick="toggleGameHUD()" aria-label="Святость"> </button> <button id="hud-strength" class="hud-button" onclick="toggleGameHUD()" aria-label="Сила"> </button> <button id="hud-glory" class="hud-button" onclick="toggleGameHUD()" aria-label="Слава"> </button> <button id="hud-wisdom" class="hud-button" onclick="toggleGameHUD()" aria-label="Мудрость"> </button> <button id="hud-inventory" class="hud-button" onclick="openInventory()" aria-label="Инвентарь"> </button> <button id="hud-toggle" class="hud-button" onclick="toggleGameHUD()" aria-label="Закрыть качества"> </button> <span id="holiness-small-bar" class="stat-bar stat-bar-small"> </span> <span id="strength-small-bar" class="stat-bar stat-bar-small"> </span> <span id="glory-small-bar" class="stat-bar stat-bar-small"> </span> <span id="wisdom-small-bar" class="stat-bar stat-bar-small"> </span> <span id="holiness-big-bar" class="stat-bar stat-bar-big"> </span> <span id="strength-big-bar" class="stat-bar stat-bar-big"> </span> <span id="glory-big-bar" class="stat-bar stat-bar-big"> </span> <span id="wisdom-big-bar" class="stat-bar stat-bar-big"> </span> <span id="holiness-number" class="stat-number"> </span> <span id="strength-number" class="stat-number"> </span> <span id="glory-number" class="stat-number"> </span> <span id="wisdom-number" class="stat-number"> </span> </div>
<div id="relations-screen"></div> <<script>> setTimeout(function(){ if(typeof window.renderRelationsScreen==="function") window.renderRelationsScreen(); },0); <</script>>
<div id="relation-character-screen"></div> <<script>> setTimeout(function(){ if(typeof window.renderRelationCharacterScreen==="function") window.renderRelationCharacterScreen(); },0); <</script>>
<div id="hero-record-screen" class="hero-record-screen"> <img id="hero-record-background" alt="" draggable="false" > <button id="hero-record-close" class="hero-record-hotspot" type="button" aria-label="Вернуться" onclick="closeHeroRecordScreen()" ></button> <button id="hero-record-prev" class="hero-record-hotspot" type="button" aria-label="Предыдущий герой" onclick="changeHeroRecord(-1)" ></button> <button id="hero-record-next" class="hero-record-hotspot" type="button" aria-label="Следующий герой" onclick="changeHeroRecord(1)" ></button> </div> <<script>> setTimeout(function () { if (window.renderHeroRecordScreen) { renderHeroRecordScreen(); } }, 0); <</script>>
<<goto "Отношения героя">>
<!-- Compatibility route only: the legacy PNG chronicle has been replaced by the approved Chronicle. --> <<script>> setTimeout(function(){ Engine.play("Записи"); setTimeout(function(){window.TugarinRecordsScreen?.openChronicle?.();},0); },0); <</script>>
<div id="records-screen" class="records-screen"></div> <<script>> setTimeout(function () { if (typeof window.renderRecordsMainScreen === "function") { window.renderRecordsMainScreen(); } }, 0); <</script>>
<div id="heroes-records-screen"></div> <<script>> // Explicit passage-local bootstrap, as in the working «Записи» passage. // Do not depend solely on a global :passagedisplay event firing in order. setTimeout(function () { if (typeof window.renderHeroRecordsIndex === "function") { window.renderHeroRecordsIndex(); } }, 0); <</script>>
<div id="tg-approved-achievements-passage" style="min-height:100dvh;display:flex;justify-content:center;background:#161514"> </div>
<div id="artbooks-screen" class="artbooks-screen"> <img id="artbooks-background" src="images/menu/records/artbooks/ru/artbooks-bg.png" alt="" draggable="false" > <button id="artbooks-close" type="button" aria-label="Закрыть" ></button> <div id="artbooks-tabs" role="tablist" > <button id="artbooks-tab-chapters" class="artbooks-tab" type="button" role="tab" ></button> <button id="artbooks-tab-special" class="artbooks-tab" type="button" role="tab" ></button> </div> <div id="artbooks-scroll" tabindex="0" > <div id="artbooks-content"></div> </div> <div id="artbooks-scrollbar-track" aria-hidden="true" > <div id="artbooks-scrollbar-thumb"></div> </div> <!-- Прозрачный слой ловит клик вне маленького popup. Визуально затемнения здесь НЕТ. --> <div id="artbook-preview-backdrop"> <div id="artbook-preview-popup" role="button" tabindex="0" > <button id="artbook-preview-close" type="button" aria-label="Закрыть" >×</button> <div id="artbook-preview-description" ></div> </div> </div> <!-- Единый просмотрщик двух типов артбука. --> <div id="artbook-viewer-overlay"> <img id="artbook-viewer-background" src="images/menu/records/artbooks/shared/artbook-viewer-bg.png" alt="" draggable="false" > <!-- Крестик нарисован прямо на PNG. Кнопка только ловит клик поверх него. --> <button id="artbook-viewer-close" type="button" aria-label="Закрыть артбук" ></button> <!-- ОБЫЧНЫЙ АРТБУК --> <button id="artbook-viewer-prev" class="artbook-viewer-arrow" type="button" aria-label="Предыдущий арт" ></button> <div id="artbook-viewer-stage"> <img id="artbook-viewer-image" alt="" draggable="false" > <div id="artbook-viewer-fallback"></div> </div> <button id="artbook-viewer-next" class="artbook-viewer-arrow" type="button" aria-label="Следующий арт" ></button> <div id="artbook-viewer-counter"></div> <!-- «ПО СЛОЯМ»: ФОН / ГЕРОЙ / ВСЁ --> <div id="artbook-layer-mode-controls"> <button class="artbook-layer-mode" data-layer-mode="background" type="button" ></button> <button class="artbook-layer-mode" data-layer-mode="hero" type="button" ></button> <button class="artbook-layer-mode" data-layer-mode="all" type="button" ></button> </div> <!-- «ПО СЛОЯМ»: САМА КАРТИНКА --> <div id="artbook-layer-stage"> <img id="artbook-layer-background" alt="" draggable="false" > <img id="artbook-layer-hero" alt="" draggable="false" > <div id="artbook-layer-fallback"></div> </div> <!-- «ПО СЛОЯМ»: ЭТАПЫ 1–5 --> <div id="artbook-layer-step-controls"> <button class="artbook-layer-step" data-layer-step="1" type="button" >1</button> <button class="artbook-layer-step" data-layer-step="2" type="button" >2</button> <button class="artbook-layer-step" data-layer-step="3" type="button" >3</button> <button class="artbook-layer-step" data-layer-step="4" type="button" >4</button> <button class="artbook-layer-step" data-layer-step="5" type="button" >5</button> </div> </div> </div>
<div id="workshop-screen" class="workshop-screen"> <img id="workshop-background" src="images/menu/records/workshop/ru/workshop-bg.png" alt="" draggable="false" > <button id="workshop-close" type="button" aria-label="Закрыть" ></button> <div id="workshop-scroll" tabindex="0" > <div id="workshop-content"></div> </div> <div id="workshop-scrollbar-track" aria-hidden="true" > <div id="workshop-scrollbar-thumb"></div> </div> </div>
<div id="settings-screen"> <button id="settings-close" type="button" aria-label="Закрыть" ></button> <div id="settings-content"></div> </div>
<<goto "Стартовый пассаж">>