Files
RPG_FromClaude/README.md
Maxim Dolgolyov ac1f348311 Initial commit: RPG game project
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-25 01:01:02 +03:00

45 KiB
Raw Blame History

⚔️ Хроники Эйдона — Изометрическая RPG

Браузерная изометрическая RPG, написанная на чистом JavaScript + HTML5 Canvas. Без фреймворков, без зависимостей — только нативный веб. Полная игра с боевой системой, прогрессией персонажа, крафтом, зачарованиями, сюжетными квестами, лором и финальным боссом.


Содержание

  1. Технологии
  2. Архитектура
  3. Управление
  4. Классы персонажей
  5. Боевая система
  6. Заклинания
  7. Дерево перков
  8. Локации и мир
  9. Враги и боссы
  10. NPC и диалоги
  11. Квесты
  12. Инвентарь и экипировка
  13. Сеты экипировки
  14. Зачарования
  15. Крафт и алхимия
  16. Магазин
  17. Журнал лора
  18. Достижения
  19. Бестиарий
  20. Аудиосистема
  21. Система сохранений
  22. Визуальные эффекты
  23. Статистика контента

Технологии

Технология Применение
HTML5 Canvas Изометрический рендеринг мира и персонажей
Web Audio API Процедурная музыка и SFX без аудиофайлов
Vanilla JS (ES6+) Вся игровая логика
CSS3 UI панели, анимации, HUD
localStorage Сохранение прогресса (3 слота)
File System Access API Экспорт сохранений в JSON-файлы

Файловая структура:

├── index.html          — разметка UI (HUD, панели, боевой экран, меню)
├── style.css           — стили всего интерфейса
├── game.js             — основная игровая логика, ИИ боссов, квесты
├── renderer.js         — изометрический рендерер, портреты, частицы
├── rpg.js              — механики RPG: классы, заклинания, перки, формулы
├── audio.js            — Web Audio API: SFX + процедурная музыка
├── saves.js            — система сохранений (localStorage + JSON-файлы)
├── data-loader.js      — загрузчик JSON-данных игры
├── menu.js             — стартовый экран и выбор класса
└── data/
    ├── world.json      — локации, спавны, NPC, декорации, погода
    ├── enemies.json    — все типы врагов, боссов, уникальный лут
    ├── quests.json     — все квесты с условиями и наградами
    ├── lore.json       — записки лора с координатами на карте
    ├── items/
    │   ├── loot.json   — все собираемые предметы и материалы
    │   ├── shop.json   — ассортимент магазина
    │   └── recipes.json — рецепты крафта
    └── story/
        └── story_quests.json — сюжетные квесты с диалогами

Архитектура

Игра использует паттерн «объект-синглтон» для каждого модуля:

  • Game — главный объект: игровой цикл, состояние, ввод, переходы между локациями, система квестов, достижений, бой
  • Renderer — изометрический рендерер с камерой, системой глубины (depth sorting), частицами, плавающим текстом, тряской экрана
  • RPG — все формулы и механики: урон, защита, крит, заклинания, перки, лут, крафт, зачарование, прокачка
  • Audio — процедурная музыка через OscillatorNode + GainNode, 9 тем и 7 типов SFX
  • Saves — сериализация/десериализация состояния игрока, поддержка Set через Array при JSON
  • DataLoader — асинхронная загрузка всех JSON-файлов перед стартом

Управление

Клавиша Действие
WASD / ↑↓←→ Движение по карте
I Инвентарь
Q Журнал квестов
T Дерево перков
C Крафтинг
B Бестиарий
E Зачарование
L Журнал лора
H Достижения
M Карта мира / быстрое путешествие
P Сохранить
1 Атака (в бою)
2 Использовать предмет (в бою)
3 Бежать (в бою)
29 Заклинания (в бою, если изучены)
ESC Закрыть все панели

Также поддерживается клик мышью по соседней клетке для перемещения.


Классы персонажей

В игре 7 классов с уникальными стартовыми параметрами, бонусами за уровень, заклинаниями и деревьями перков.

Класс HP MP STR DEF MAG SPD Описание
⚔️ Воин 130 30 14 10 4 7 Физический боец. Высокий HP и урон, низкая магия
🔮 Маг 65 110 4 4 16 6 Маг с мощными заклинаниями, хрупкий в ближнем бою
🏹 Лучник 90 55 10 6 6 13 Быстрый дальний боец. Максимальная скорость
🛡️ Паладин 115 65 10 13 8 6 Защитник с исцелением и святым уроном
💀 Некромант 75 95 5 5 15 7 Тёмный маг, похищающий жизнь и накладывающий проклятия
🪓 Берсерк 150 20 18 6 2 10 Максимальная сила и HP, почти нет магии
🌿 Друид 85 85 7 7 11 9 Универсальный класс с природной магией

Бонусы за каждый уровень (HP / MP / STR / DEF / MAG / SPD):

  • Воин: +15 / +3 / +3 / +2 / +1 / +1
  • Маг: +5 / +15 / +1 / +1 / +3 / +1
  • Лучник: +8 / +5 / +2 / +1 / +1 / +3
  • Паладин: +12 / +8 / +2 / +3 / +2 / +1
  • Некромант: +6 / +12 / +1 / +1 / +4 / +1
  • Берсерк: +20 / +2 / +4 / +1 / +1 / +1
  • Друид: +9 / +9 / +2 / +2 / +2 / +1

Стартовое снаряжение выдаётся автоматически по классу: оружие, реагенты, базовая броня.


Боевая система

Пошаговые бои. Порядок: ход игрока → ход врага.

Ход игрока

  • Атака — базовый урон = STR + weapon.damage, снижается защитой врага. Шанс крит-удара (×1.53.0 урон) зависит от перков.
  • Заклинание — урон/лечение по формулам с учётом MAG. Тратит MP.
  • Предмет — использовать зелье из инвентаря (лечебное или боевое).
  • Бежать — 50% шанс успешного побега.

Ход врага

Враг атакует по формуле: enemy.dmg - player.DEF (минимум 1). Поведение зависит от AI-типа.

Типы урона и слабости

Тип Иконка Усиление при слабости
Физический ⚔️ ×1.5
Огонь 🔥 ×2.0
Лёд ❄️ ×2.0
Святость ×2.0
Магия 🔮 ×1.8
Яд ☠️ — (DoT)

Статус-эффекты (DoT)

  • Яд (poison) — наносит урон каждый ход, несколько ходов
  • Горение (burn) — то же, но с огненным уроном
  • Заморозка (freeze) — пропуск хода
  • Оглушение (stunned) — пропуск одного хода

Специальные механики

  • Неуязвимость (_invincible) — атаки полностью блокируются (используется некоторыми боссами)
  • Уклонение (shadow assassin, перк) — 35% шанс полностью уклониться
  • Фазирование (призрак) — следующая атака игрока проходит насквозь
  • Слепота (летучая мышь) — следующий удар игрока промахивается
  • Вампиризм (перки, Корвус, Мрак) — восстанавливает HP от нанесённого урона
  • Смертный рывок (паладин перк) — один раз за бой выжить с 1 HP

Заклинания

Всего 18 заклинаний. Некоторые доступны сразу по классу, остальные выбираются при повышении уровня или находятся в свитках.

Заклинание MP Тип Эффект
Огненный шар 15 🔥 Огонь 28 урона
Ледяная стрела 12 ❄️ Лёд 20 урона + заморозка
Молния 20 Электро 35 урона
Исцеление 10 💚 Лечение +35 HP
Священный огонь 22 Святость 30 урона
Похищение жизни 18 💜 Тьма 15 урона + 12 HP себе
Мощный удар 12 ⚔️ Физика ×2.2 урон
Облако яда 20 ☠️ Яд DoT яд на 4 хода
Огненный шторм 30 🔥 Огонь 55 урона (AoE)
Метель 35 ❄️ Лёд 50 урона + заморозка
Цепная молния 28 Электро 45 урона
Берсеркерство 8 💪 Бафф STR ×1.8 на 8 сек
Каменная кожа 20 🛡️ Бафф DEF ×2 на 12 сек
Теневой шаг 15 👁️ Бафф SPD ×2 на 5 сек
Проклятие 15 💀 Дебафф ATK врага ×0.7
Мощное исцеление 25 💚 Лечение +75 HP
Дождь стрел 22 🏹 Физика 40 урона
Землетрясение 40 🌍 Физика 60 урона
Вихрь 18 ⚔️ Физика 25 урона
Воскрешение 50 💚 Лечение Полное восстановление HP

Дерево перков

Каждый класс имеет 4 ветви по 3 перка (Tier 13). Перки открываются последовательно внутри ветви. За каждый уровень — +1 очко таланта.

Примеры перков по классам

Воин — Ветви: Мощь, Броня, Выживание, Скорость

  • Сокрушающий удар T1: +15% крит-урон
  • Несокрушимый T2: +20% физической защиты
  • Кровавая ярость T3: вампиризм 15% от урона

Маг — Ветви: Арканум, Огонь, Лёд, Внутренняя сила

  • Мастер заклинаний T1: -20% стоимость MP
  • Огненное сердце T2: +30% урон огнём
  • Ледяная кровь T3: иммунитет к заморозке

Лучник — Ветви: Меткость, Выживание, Яд, Скорость

  • Острый глаз T1: +25% крит-шанс
  • Яд на стрелах T2: удары ядовиты
  • Ураганный залп T3: шанс двойного удара

Паладин — Ветви: Святость, Щит, Благодать, Крестовый поход

  • Аура защиты T1: +10 к DEF
  • Смертный рывок T2: выжить с 1 HP (1×/бой)
  • Святой гнев T3: +50% урон нежити

Некромант — Ветви: Тьма, Нежить, Проклятие, Душа

  • Тёмный пакт T1: +20% урон заклинаниями
  • Личи T2: восстановление 5 MP при убийстве
  • Власть над тьмой T3: шанс оглушить врага

Берсерк — Ветви: Ярость, Кровь, Жестокость, Буйство

  • Боевой транс T1: +20% STR при HP < 50%
  • Кровожадность T2: +8% вампиризма
  • Неостановимый T3: иммунитет к оглушению

Друид — Ветви: Природа, Зверь, Земля, Возрождение

  • Слияние с природой T1: регенерация 5 HP/ход
  • Зов зверя T2: +15% к скорости и уклонению
  • Перерождение T3: воскреснуть с 30% HP (1×/бой)

Локации и мир

Изометрическая сетка 15×15 тайлов. Камера следует за игроком со сглаживанием.

Локация Тип Погода Особенности
🏘️ Деревня Безопасная Ясно, дождь Стартовая. Торговец, Целитель, Стражник, Старик
🌲 Лес Опасная Дождь, туман Деревья, камни. Гоблины, волки, Зубастый
🏚️ Подземелье Опасная Туман Колонны, факелы. Скелеты, зомби, Корвус
🪨 Пещера Опасная Туман Кристаллы. Летучие мыши, орки, Дракон, Колосс
⛰️ Горы Опасная Снег Скалы. Йети, Голем, Ледяной Великан Скарр
🌿 Болото Опасная Туман, дождь Топи. Пауки, Ведьма, Лич, Гидра
🏛️ Руины Опасная Туман Столбы, факелы. Призраки, Виверны, Призрак Ирис, портал в Бездну
🌑 Бездна Опасная Туман (всегда) Финальная локация. Тени, Нежить, Мрак Безликий

Система погоды

  • Дождь (rain) — анимированные капли, снижает яркость
  • Снег (snow) — кружащиеся снежинки
  • Туман (fog) — анимированный туман поверх карты
  • Ясно / Солнечно — нормальная видимость

День и ночь

Непрерывный цикл дня и ночи (настраиваемая скорость). Ночью карта темнее, источники света (факелы, кристаллы) отбрасывают динамические ореолы.

Система порталов

Порталы расположены на краях карт. Обозначены иконкой . Наступить на портал — мгновенный переход в локацию. Бездна доступна только из Руин.


Враги и боссы

Обычные враги (15 типов)

Враг HP DMG DEF EXP Слабость Сопр. ИИ
👺 Гоблин 32 8 2 20 Огонь Трус (паникует при низком HP)
🧌 Орк 55 13 4 40 Магия Физика Берсерк (+50% урон при HP<30%)
💀 Скелет 42 11 6 30 Святость Яд Нейтральный
🟢 Слизень 22 5 0 10 Огонь Физика Кислота (DoT при ударе)
🗡️ Разбойник 38 10 3 25 Святость Кража (крадёт золото)
🐺 Волк 30 9 2 18 Огонь Боевой клич (буст урона)
🕷️ Паук 28 12 1 22 Огонь Яд Яд (отравляет 40%)
🧟 Зомби 48 8 8 28 Огонь Яд Разложение (снижает DEF)
🦇 Летучая мышь 18 7 0 12 Святость Рой (слепота)
👹 Тролль 110 20 8 90 Огонь Физика Регенерация (+5% HP/ход)
🏔️ Йети 95 18 10 80 Огонь Лёд Берсерк (+50% урон при HP<30%)
🧙 Ведьма 60 22 3 70 Святость Магия Исцеление (55% при HP<45%)
🗿 Голем 130 16 20 100 Магия Физика Оглушение (28% шанс)
👻 Призрак 55 20 0 80 Святость Физика Фазирование (эфирный план)
🐉 Виверна 95 26 7 140 Лёд Огонь Пике (+55% урон при HP<60%)

Боссы (2)

Босс HP DMG DEF EXP Слабость ИИ
🐲 Дракон 220 32 16 220 Лёд Ярость (двойной удар при HP<40%)
☠️ Лич 140 38 10 200 Святость Призыв скелета + саморегенерация

Мини-боссы (6) — с боссбаром и уникальным лутом

Мини-босс Локация HP EXP Механика Уникальный лут
👑 Зубастый Лес 145 280 Боевой клич +30% урон, призыв гоблина Корона Зубастого
💜 Корвус Некромант Подземелье 180 420 Призыв зомби, филактерий (2 хода неуязв.), вампиризм 25% Посох Корвуса
🐍 Болотная Гидра Болото 210 360 Регенерация 7%/ход, 23 головы (доп. атаки) Клык Гидры
🧊 Ледяной Великан Скарр Горы 200 390 Метель (оглушение + бонус урон), заморозка Топор Великана
🗿 Каменный Колосс Пещера 260 440 Непробиваемая броня каждые 3 хода, сокрушение ×2.5 Щит Колосса
🗡️ Призрак Ирис Руины 160 410 Уклонение 35%, удар из тени ×3, яд клинка Клинок Ирис

Финальный мега-босс

🌑 Мрак Безликий (Бездна)

Параметр Значение
HP 700
DMG 55
DEF 22
EXP 3 000
Gold 800
Слабость Святость
Сопротивление Магия

Три фазы боя:

  • Фаза 1 (HP < 70%) — призывает Призрака + Виверну
  • Фаза 2 (HP < 50%) — принимает истинную форму (+35% DMG), становится неуязвим на 1 ход
  • Фаза 3 (HP < 30%) — вампиризм 40% от урона + логируется «Мрак поглощает всё»

Дополнительно: 25% шанс случайного дебаффа каждый ход (яд / горение / оглушение)

Уникальный лут: 🌑 Корона Бездны — DEF+25, HP+80, MAG+15, STR+10 (Легендарная)

Поведение ИИ (17 типов)

ИИ Поведение
coward Паника при HP<20%, пропускает ход
berserk +50% урон при HP<30%
regen +5% HP регенерация каждый ход
hex Самоисцеление при HP<45% (55% шанс)
summon Призыв скелета при HP<50%
warcry +30% урон + призыв гоблина при HP<60%
necroboss Призыв зомби + филактерий (2 хода неуязвимости) + вампиризм
hydra Регенерация + доп. атаки из голов (2 и 3 при HP<50%/30%)
frost Метель (оглушение) + заморозка
colossus Каменная броня каждые 3 хода + сокрушение
shadow Уклонение 35% + удар из тени ×3 + яд
fury Двойной удар при HP<40%
acid Кислота (горение) 35%
stun Оглушение 28%
venom Яд 40%
howl Усиление следующей атаки при HP<50%
steal Кража золота 20%
phase Фазирование (следующая атака промажет)
dive Пике +55% урон при HP<60%
decay Снижение DEF игрока
swarm Слепота (следующая атака промажет)
chaos 3-фазная система + случайные дебаффы

NPC и диалоги

Разветвлённая диалоговая система с историей выборов, наградами и платными опциями.

NPC Локация Функция
🔵 Торговец Деревня Магазин с 18 предметами
🔴 Стражник Деревня Квесты + советы о локациях (платный совет за 15 💰)
🟢 Целитель Деревня Полное исцеление HP+MP за 20 💰
Старик Деревня Лор мира + благословение за 50 💰
🟩 Эльф Лес Квесты + информация об угрозах леса
🟣 Шаман Болото Квесты + исцеление от яда
🩵 Призрак Подземелье Квесты + тайна победы над Личем
💙 Страж Руины Квесты + история замка

Диалоговые ветки поддерживают:

  • Платные опции (вычитают золото)
  • Награды (опыт, предметы, баффы)
  • Многоуровневые ветки (next: переходы)
  • Отображение квест-маркеров над головами NPC ( новый квест / сдать / ✓ выполнен)

Квесты

26 квестов с цепочкой прогресса

Квесты открываются последовательно по мере выполнения предыдущих (система цепочки). Одновременно активно до 3 ближайших незавершённых квестов.

Квесты на убийство

Квест Цель EXP Золото
Первая кровь 3 гоблина 50 20
Охота на волков 3 волка 60 30
Зачистка леса 5 врагов 100 40
Проблема слизней 3 слизня 45 25
Убрать разбойников 4 разбойника 80 60
Армия скелетов 4 скелета 120 60
Пауки болота 5 пауков 90 55
Орочья угроза 5 орков 150 80
Зачистка болота 3 паука + 2 зомби 130 70
Бой с троллем 1 тролль 200 100
Убийца дракона 1 дракон 500 300
Конец некромантии 1 Лич 450 250
Снежный зверь 1 йети 160 100
Охота на виверн 2 виверны 280 160
Упокоить призраков 3 призрака 200 100
Король Гоблинов Зубастый 450 250
Конец Корвуса Корвус 550 300
Гидра болот Гидра 480 280
Ледяной Великан Скарр 510 290
Каменный Колосс Колосс 560 310
Призрак Ирис Ирис 530 295
Конец Тьмы Мрак Безликий 3000 500

Квесты на посещение

Квест Цель EXP Золото
Вход в подземелье Найти подземелье 30 15
Вход в пещеру Найти пещеру 50 20
Исследователь Посетить Руины 80 40

Сюжетные квесты

Многоэтапные квесты от именных NPC. Каждый этап имеет диалог до и после выполнения, отдельные награды за каждый этап.


Инвентарь и экипировка

Слоты экипировки (7)

weapon (оружие) · shield (щит) · head (шлем) · chest (броня) · legs (поножи) · feet (сапоги) · acc (украшение)

Предметы в инвентаре

Каждый предмет имеет:

  • rarity — Common / Uncommon / Rare / Epic / Legendary (цветная рамка)
  • slot — слот экипировки (если снаряжение)
  • stackable + qty — стекируемые предметы (зелья, материалы)
  • enchant — зачарование (иконка поверх предмета)
  • combatEffect — яд/огонь при ударе (для некоторых оружий)

Drag & Drop

Предметы в инвентаре можно перетаскивать:

  • Между ячейками инвентаря — меняет порядок
  • На слот экипировки — автоматически надевает (если подходящий тип)

Материалы лута (22 типа)

Трава, ухо гоблина, клык орка, мясо, слизь, кость, волчья шкура, паучий яд, гнилая плоть, крыло летучей мыши, сердце тролля, шкура йети, зелье ведьмы, ядро голема, чешуя дракона, сердце дракона, эссенция призрака, чешуя виверны, яд виверны, чешуя гидры, сердце мороза, сердцевина колосса.


Сеты экипировки

При ношении нескольких предметов одного сета активируются бонусы.

⚔️ Стальной доспех (Steel)

Предметы: стальной меч, кольчуга, стальной щит, шлем воина

  • 2 предмета: +4 DEF
  • 4 предмета: +6 STR, +4 DEF, +20 HP

Посох чародея (Arcane)

Предметы: посох силы, кольцо мага, посох бури

  • 1+ предмет: +5 MAG, +20 MP

💀 Тёмные чары (Shadow)

Предметы: посох черепа, костяной кинжал, ночной клинок

  • 2 предмета: +6 MAG, +4 STR

Доспех паладина (Holy)

Предметы: нагрудник паладина (из магазина или крафта)

  • 1 предмет: +5 DEF, +15 HP
  • 2 предмета: +8 DEF, +30 HP, +4 MAG

Зачарования

Система улучшения снаряжения с расходными материалами. Открывается клавишей E.

Зачарование Эффект Материал Золото Тип предмета
🔥 Огненный +5 огненного урона Чешуя дракона 150 Оружие
❄️ Ледяной +4 защиты Шкура йети 130 Броня
Святой +4 урона Сердце тролля 180 Оружие
💚 Жизненный +25 HP 3× Трава 80 Любое
🔮 Магический +4 MAG, +15 MP 2× Слизь 120 Оружие
Быстрый +4 STR 2× Крыло мыши 100 Любое
🛡️ Стражника +6 DEF 3× Кость 110 Броня
☠️ Ядовитый +4 ядовитого урона 2× Паучий яд 70 Оружие

Крафт и алхимия

32 рецепта в 5 категориях. Открывается клавишей C.

Зелья

Рецепт Ингредиенты Результат
Малое зелье HP Трава + Слизь +40 HP
Среднее зелье HP 2× Трава + Слизь +60 HP
Большое зелье HP 3× Трава + Сердце тролля +100 HP
Зелье маны 2× Крыло мыши + Паучий яд +50 MP
Антидот Трава + Волчья шкура Снятие яда

Алхимия (боевые зелья)

Рецепт Ингредиенты Результат
Зелье силы 2× Трава + Клык орка STR ×1.5 на 45 сек
Зелье камня 2× Шкура + 2× Кость DEF ×2 на 30 сек
Зелье регенерации 3× Трава + Сердце тролля +40 HP + рег.
Яд-склянка 2× Паучий яд + Крыло Яд на врага (3 хода)
Огненная колба Чешуя дракона + Трава 35 огненного урона
Оберег призраков 2× Эссенция + 2× Трава +30 HP, защита от нежити
Зелье тени Паучий яд + Крыло мыши Эликсир уклонения
Эликсир могущества Сердце дракона + Зелье ведьмы Легендарный усилитель всех стат

Снаряжение из крафта

Рецепт Ингредиенты Результат
Чешуйчатая броня 2× Чешуя + 2× Шкура DEF+14, редкое
Посох Смерти Посох черепа + Ядро + 3× Ухо DMG+22, MAG+12, эпик
Амулет жизни Сердце дракона + Сердце тролля +60 HP, +30 MP, акс.
Нагрудник паладина Ядро + Сердце тролля + 3× Кость DEF+16, HP+40
Посох бури Чешуя + Шкура йети + Ядро DMG+12, MAG+18, эпик
Ледяной клинок Сердце мороза + Чешуя DMG+25, замораживание
Броня Колосса Сердцевина + Ядро DEF+22, HP+60, легенд.
Кольчуга Гидры 2× Чешуя Гидры + Чешуя виверны DEF+18, Яд при ударе

Руны

Рецепт Ингредиенты Результат
Руна Силы Ядро голема + 2× Клык +5 STR навсегда
Руна Магии Чешуя + Некрономикон +5 MAG навсегда
Руна Защиты Шкура йети + 3× Кость +4 DEF навсегда

Магазин

18 предметов у Торговца в Деревне. Цены указаны в золоте.

Предмет Тип Характеристики Цена
⚔️ Стальной меч Оружие DMG+12 120
🪓 Боевой топор Оружие DMG+14 160
🪄 Посох силы Оружие DMG+5, MAG+8 140
🛡️ Кольчуга Броня DEF+8 110
🛡️ Стальной щит Щит DEF+6 90
⛑️ Шлем воина Шлем DEF+4, HP+15 95
👟 Сапоги ловкости Сапоги DEF+2, STR+3 75
💍 Кольцо мага Акс. MAG+5, MP+20 200
💍 Кольцо защиты Акс. DEF+4, armor+3 180
🧪 Среднее зелье HP Зелье +60 HP 35
🧪 Большое зелье HP Зелье +100 HP 70
🧪 Среднее зелье MP Зелье +40 MP 45
📜 Свиток огня Свиток Заклинание: Огненный шар 80
📜 Свиток исцеления Свиток Заклинание: Исцеление 60
🗡️ Ночной клинок Оружие DMG+18, STR+4 (Легенд.) 600
🌩️ Посох бури Оружие DMG+8, MAG+14, MP+30 550
🛡️ Нагрудник паладина Броня DEF+14, HP+30 500
🧪 Зелье регенерации Зелье +40 HP + рег. 90

Журнал лора

16 записок разбросаны по всем локациям. При наступлении на клетку с запиской она автоматически собирается и попадает в журнал (L). В журнале записки сгруппированы по локациям.

Запись Локация Содержание
Старая записка Деревня Предупреждение о драконе
Объявление на столбе Деревня Розыск Зубастого
Эльфийский дневник Лес Изменения леса с появлением Шамана
Измятый пергамент Лес Предупреждение о Ведьме
Поваленное дерево Лес Указатель на логово Зубастого
Надпись на стене Подземелье Рисунок Лича, написано кровью
Дневник солдата Подземелье Записки заточённого бойца
Сожжённая страница Подземелье О захвате Корвусом подземелья
Записка исследователя Пещера Кристаллы поглощают магию
Рунный камень Пещера Загадка об огне и льде
Предостережение Пещера О Каменном Колоссе
Высеченный текст Горы История Первого Голема
Табличка на перевале Горы Предупреждение о Скарре
Страница гримуара Болото Рецепт зелья тени
Записка беглеца Болото Слабость Ведьмы
Болотный знак Болото Легенда о Гидре
Выцветший пергамент Руины Легенда об Ирис
Чёрный портал Руины Предчувствие чего-то тёмного
Записка Первого Героя Бездна Послание Эйдора I о Мраке

Достижения

20 достижений. Открываются автоматически при выполнении условий. Тост-уведомление с анимацией. Панель достижений открывается клавишей H.

Иконка Название Условие
🩸 Первая кровь Убить первого врага
⚔️ Убийца Убить 50 врагов
👹 Охотник за боссами Убить любого мини-босса
🏆 Чемпион Убить всех 6 мини-боссов
💀 Легенда Убить Мрака Безликого
Опытный Достигнуть 5 уровня
🌟 Ветеран Достигнуть 10 уровня
💰 Богач Накопить 500 золота
👑 Золотой король Накопить 1000 золота
🗺️ Исследователь Посетить все 8 локаций
🌑 Путь в бездну Достигнуть локации Бездна
⚗️ Алхимик Скрафтить 5 предметов
📖 Зоолог Открыть 10 записей бестиария
🛡️ Непробиваемый Выиграть бой без потери HP
💥 Снайпер Нанести 10 критических ударов
Чародей Использовать заклинания 10 раз
📜 Летописец Прочесть все записки на карте
📋 Герой Выполнить 10 квестов
🔮 Зачарователь Зачаровать предмет
🎒 Барахольщик Собрать 20 предметов в инвентаре

Бестиарий

Открывается клавишей B. Содержит карточки всех типов врагов. Неизвестные враги скрыты (???). После первого убийства открывается:

  • Нарисованный портрет (canvas)
  • Лорное описание
  • Счётчик убийств
  • Слабость и сопротивление

Аудиосистема

Полностью процедурная генерация звука через Web Audio API — никаких аудиофайлов.

Звуковые эффекты (SFX)

Событие Описание
Атака / крит Sawtooth burst с экспоненциальным затуханием. Крит — выше частота
Заклинание Огонь: нарастающий свип. Лёд: нисходящий. Исцеление: аккорд. Магия: арпеджио
Шаг Тихий низкочастотный клик
Повышение уровня Восходящее арпеджио C-E-G-C'
Победа Фанфара 3 ноты
Смерть Нисходящий минорный аккорд
Открытие сундука / записка Короткий джингл

Фоновые темы (9 локаций)

Тема BPM Характер
Деревня 80 C-мажорная пентатоника, спокойно
Лес 95 Арпеджированный минор, быстрее
Подземелье 50 Низкий мрачный дрон
Болото 55 Эерная хроматика, неравномерный ритм
Горы 60 Медленный эпический минор
Пещера 55 Тёмная пещерная атмосфера
Бой 140 Быстрый стаккато минор
Руины Тихий атмосферный
Бездна 40 Зловещий хроматический дрейф, контрабас

Кнопка 🔊 в HUD переключает звук. Темы плавно меняются при переходе между локациями.


Система сохранений

3 слота сохранений

Каждый слот показывает: класс персонажа, уровень, количество часов игры, дату сохранения.

Автосохранение

Происходит автоматически: после каждого боя, после путешествия, при выполнении квеста.

Ручное сохранение

Клавиша P — мгновенное сохранение с анимацией индикатора.

Экспорт

Кнопка «📁 Папка сохранений» + «💾 Экспорт» — сохраняет все слоты в выбранную папку как JSON-файлы через File System Access API.

Формат данных

Сохраняется: персонаж (стат, инвентарь, квесты, перки, бестиарий, найденный лор, достижения), текущая локация, время суток, день.

Важно: Set-объекты (achievements, _visited) автоматически конвертируются в Array при JSON-сериализации и восстанавливаются при загрузке.


Визуальные эффекты

Изометрический рендерер

  • Depth sorting — все объекты отрисовываются в правильном изометрическом порядке по значению x + y
  • Плавное движение персонажа между тайлами (линейная интерполяция)
  • Боб-анимация врагов (покачивание sin(time))
  • Эффект атаки врага (смещение вперёд при ударе)

Частицы

Тип Описание
hit Красные искры при ударе
heal Зелёные частицы при исцелении
magic Фиолетовые звёздочки заклинаний
death Рассеивающийся силуэт
gold Золотые монеты
holy Белые лучи святости
fire Оранжевые искры
ice Голубые кристаллы

Плавающий текст

Урон, лечение, критический удар, статус-эффекты — всплывают над персонажами с анимацией подъёма и затухания.

Тряска экрана

Шейкер активируется при критических ударах и мощных ударах боссов (интенсивность 38 пикселей).

Динамическое освещение

Факелы и кристаллы создают анимированные световые ореолы с пульсацией. Ночью интенсивность возрастает.

Анимация портретов в бою

  • Дыхание: CSS-анимация translateY(-2px) — игрок 3.2s, враг 2.4s
  • Моргание: JS-интервал каждые 46 сек, перекрытие глаз на 120ms

Босс-бар

При встрече с мини-боссом или финальным боссом снизу экрана появляется расширенная полоска HP с именем и анимацией входа.

Меню

Анимированный canvas с изометрической сценой на фоне стартового экрана. Заголовок с пульсирующим золотым свечением.


Статистика контента

Категория Количество
Локации 8
Классы персонажей 7
Обычных врагов 15
Боссов и мини-боссов 8
Всего типов врагов 23
Типов ИИ поведения 21
Заклинаний 19
Перков в деревьях 84 (7 классов × 4 ветви × 3 перка)
Квестов 26
Сюжетных квестов +N этапных квестов
NPC с диалогами 8
Записок лора 18
Достижений 20
Зачарований 8
Рецептов крафта 32
Предметов в магазине 18
Уникальных материалов лута 22
Легендарных предметов 8
Сетов экипировки 4
Музыкальных тем 9
Слотов сохранения 3

Запуск

Просто откройте index.html в браузере. Никаких сборщиков, серверов или зависимостей не требуется. Данные игры загружаются из data/*.json через fetch, поэтому при открытии с локального диска может потребоваться простой локальный сервер (например, Live Server в VS Code или npx serve .).


Разработано с помощью Claude Sonnet 4.6