/
alexware
/
InnerQuest
Обзор
Документация
Войти
/
alexware
/
InnerQuest
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
index.html
270 строк
11 KB
alexeyk222
Изменить систему хранения файлов проекта
31 дек 2025, 01:39
31 дек 2025, 01:39
49a670a
Код
Авторство
О чём код?
<!doctype html> <html lang="ru"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>InnerQuest: Город Сфер</title> <link rel="stylesheet" href="./styles/main.css" /> </head> <body> <div id="app" class="app"> <!-- START SCREEN --> <section id="screenStart" class="screen screen--active"> <div class="start"> <div class="start__hero"> <div class="brand"> <div class="brand__mark" aria-hidden="true">IQ</div> <div class="brand__text"> <h1>InnerQuest: Город Сфер</h1> <p class="muted"> Narrative RPG про «сигнал против шума». Микрошаги 1–2 минуты превращаются в прогресс. </p> </div> </div> <div class="start__cards"> <div class="pill">🌿 Оазис</div> <div class="pill">🏛️ Цитадель</div> <div class="pill">⚔️ Арсенал</div> <div class="pill">🤝 Форум</div> <div class="pill">🌱 Сад</div> </div> <div class="start__disclaimer"> <div class="disclaimer"> <strong>Важно:</strong> это игра самоподдержки, не медицинский продукт и не психотерапия. Никаких диагнозов, «лечения» и обещаний исцеления. </div> </div> <div class="start__actions"> <button id="btnStartNew" class="btn btn--primary">Start</button> <button id="btnContinue" class="btn btn--ghost" style="display:none;">Continue</button> </div> <div class="start__meta"> <div class="metaRow"> <div class="metaItem"> <div class="metaLabel">Сессия</div> <div class="metaValue">3–6 минут</div> </div> <div class="metaItem"> <div class="metaLabel">Бинарный поиск</div> <div class="metaValue">3–5 вопросов</div> </div> <div class="metaItem"> <div class="metaLabel">Награды</div> <div class="metaValue">Stability + Effort + карты</div> </div> </div> </div> </div> <div class="start__panel panel"> <h2>Как это играется</h2> <ol class="list"> <li>Выбери квартал города.</li> <li>Айра сузит проблему бинарными вопросами.</li> <li>Сделай микрошаг 1–2 минуты.</li> <li>Получай Effort, открывай карты, снимай туман.</li> <li>Пройди 5 актов и переживи Архивариуса Шума.</li> </ol> <div class="muted small"> Подсказка: если кажется, что «ничего не хочется» — это тоже сигнал. В игре за это дают карты чаще, чем в жизни. </div> </div> </div> </section> <!-- GAME SCREEN --> <section id="screenGame" class="screen"> <header class="topbar"> <div class="topbar__left"> <div class="title"> <span class="title__mark" aria-hidden="true">IQ</span> <span class="title__text">Город Сфер</span> </div> <div class="divider"></div> <div class="kv"> <span class="kv__k">Акт</span> <span id="uiAct" class="kv__v">1</span> </div> <div class="kv"> <span class="kv__k">Сессии</span> <span id="uiSessions" class="kv__v">0</span> </div> </div> <div class="topbar__right"> <div class="stat"> <div class="stat__k">Stability</div> <div id="uiStability" class="stat__v">0</div> </div> <div class="stat"> <div class="stat__k">Effort</div> <div id="uiEffort" class="stat__v">0</div> </div> <button id="btnOpenPack" class="btn btn--soft">Открыть слот (−Effort)</button> <button id="btnNewRun" class="btn btn--ghost">Новый забег</button> </div> </header> <main class="layout"> <!-- CITY --> <section class="panel city" aria-label="Карта города"> <div class="panel__head"> <h2>Город</h2> <div class="muted small">Нажми на квартал, чтобы начать сессию.</div> </div> <div class="city__map" role="group" aria-label="Кварталы"> <div class="city__center"> <div id="bossBadge" class="bossBadge" style="display:none;"></div> <div class="cityCore"> <div class="cityCore__title">Туман</div> <div id="uiFogAll" class="cityCore__value">—</div> </div> </div> <button class="district district--oasis" data-district="oasis" aria-label="Оазис"> <div class="district__icon">🌿</div> <div class="district__name">Оазис</div> <div class="district__meta"> <span class="tag" id="tagLvl_oasis">Lv 1</span> <span class="tag tag--fog" id="tagFog_oasis">Fog 100%</span> </div> <div class="district__mist" id="mist_oasis"></div> </button> <button class="district district--citadel" data-district="citadel" aria-label="Цитадель"> <div class="district__icon">🏛️</div> <div class="district__name">Цитадель</div> <div class="district__meta"> <span class="tag" id="tagLvl_citadel">Lv 1</span> <span class="tag tag--fog" id="tagFog_citadel">Fog 100%</span> </div> <div class="district__mist" id="mist_citadel"></div> </button> <button class="district district--arsenal" data-district="arsenal" aria-label="Арсенал"> <div class="district__icon">⚔️</div> <div class="district__name">Арсенал</div> <div class="district__meta"> <span class="tag" id="tagLvl_arsenal">Lv 1</span> <span class="tag tag--fog" id="tagFog_arsenal">Fog 100%</span> </div> <div class="district__mist" id="mist_arsenal"></div> </button> <button class="district district--forum" data-district="forum" aria-label="Форум"> <div class="district__icon">🤝</div> <div class="district__name">Форум</div> <div class="district__meta"> <span class="tag" id="tagLvl_forum">Lv 1</span> <span class="tag tag--fog" id="tagFog_forum">Fog 100%</span> </div> <div class="district__mist" id="mist_forum"></div> </button> <button class="district district--garden" data-district="garden" aria-label="Сад"> <div class="district__icon">🌱</div> <div class="district__name">Сад</div> <div class="district__meta"> <span class="tag" id="tagLvl_garden">Lv 1</span> <span class="tag tag--fog" id="tagFog_garden">Fog 100%</span> </div> <div class="district__mist" id="mist_garden"></div> </button> </div> </section> <!-- CHAT --> <section class="panel chat" aria-label="Диалог с Айрой"> <div class="panel__head chat__head"> <div class="chatHeadRow"> <div class="airaAvatar" aria-hidden="true"></div> <div class="chatHeadText"> <h2>Айра, Навигатор Сигнала</h2> <div class="chat__sub muted small" id="uiContextLine">Выбери квартал, чтобы начать.</div> </div> </div> </div> <div id="chatLog" class="chat__log" aria-live="polite"></div> <div id="taskPane" class="taskPane" style="display:none;"></div> <div class="chat__composer"> <div id="questionPane" class="questionPane"></div> <div class="composerRow"> <input id="freeInput" class="input" placeholder="(ГУРУ) Свободный вопрос — после финала" disabled /> <button id="btnSendFree" class="btn btn--ghost" disabled>Спросить</button> </div> </div> </section> <!-- SHELF --> <aside class="panel shelf" aria-label="Полка карт"> <div class="panel__head"> <h2>Полка</h2> <div class="muted small"> Skills можно «разыгрывать». Relics/Companions дают пассивы. Contracts — квесты. </div> </div> <div id="shelfList" class="shelf__list"></div> <div class="shelf__footer"> <div class="muted small" id="uiContractsLine">Contracts: —</div> <div class="muted small" id="uiHazardsLine">Hazards: —</div> </div> </aside> </main> <div id="toast" class="toast" role="status" aria-live="polite"></div> <div id="modalHost" class="modalHost" style="display:none;"></div> <div id="sessionFade" class="sessionFade" style="display:none;" aria-hidden="true"> <div class="sessionFade__text">Город дышит. Шум отступает. До следующего шага.</div> </div> </section> <!-- RESULT SCREEN --> <section id="screenResult" class="screen"> <div class="result"> <div class="panel result__panel"> <h1>Забег завершён</h1> <p class="muted"> Шум не исчезает. Но инфраструктура держит. (И да: это официально засчитывается как победа.) </p> <div class="scoreRow"> <div class="scoreBox"> <div class="scoreBox__k">Счёт</div> <div id="uiScore" class="scoreBox__v">0</div> </div> <div class="scoreBox"> <div class="scoreBox__k">Лучший</div> <div id="uiBest" class="scoreBox__v">0</div> </div> </div> <div class="result__actions"> <button id="btnPlayAgain" class="btn btn--primary">Сыграть снова</button> <button id="btnBackToStart" class="btn btn--ghost">На стартовый экран</button> </div> <div class="muted small"> Подсказка на будущее: самый сильный билд — тот, который ты реально делаешь, а не красиво планируешь. </div> </div> </div> </section> </div> <script src="./src/app.js"></script> </body> </html>