02 · Вылазки и бой
Прокачка — только через вылазки
Прямых боёв с мобами в локациях нет. Вся прокачка идёт через вылазки во вкладке «Мир».
Энергия ⚡
- Максимум 100 энергии.
- Вылазка стоит 25⚡ (до 4 подряд).
- Восстановление: +1 в минуту, но только после окончания вылазки (во время вылазки энергия не копится).
Вылазка 🏹
- Длится 7 минут.
- В пуле 6 мобов. Убил одного — на его месте появляется новый (случайного уровня).
- Уровень моба — случайный в полосе −6…+9 от твоего (см. цвета ниже), но зажатый границами зоны охоты.
- Зона охоты выбирается на карте (кнопка «📍 Охотиться здесь»). У каждой зоны свой диапазон уровней, и мобы всегда попадают в него: в «Долине Пяти Костров» (1–10) герой 60 уровня встретит только мобов 1–10 уровня, а не 60-х. Внешний вид мобов (имена, иконки, добыча) берётся из списка мобов зоны.
- Зон одиннадцать: общая стартовая долина 1–10, по одной зоне на каждые десять уровней (10–20, 20–30, 30–40, 40–50, 50–60) и пять ярусов Раскола 60+. Ярусы открыты все с 60 уровня, но чем глубже ярус, тем крепче и выгоднее мобы: множитель ×1 (Кромка Раскола) → ×1,12 → ×1,25 → ×1,4 → ×1,6 (Ядро Раскола). Множитель виден в подписи зоны на карте и в шапке охоты.
- До выбора стороны открыта только стартовая долина; зоны с 10 уровня ждут выбранной стороны.
- Зона ниже героя на 7+ уровней — карта предупреждает «мобы не по уровню»: они станут синими, а добыча сильно урезана. Это честный размен: фармить в стартовой зоне безопасно, но невыгодно.
- Выход досрочно — кнопка «Завершить» (энергия не возвращается).
Цвета мобов 🎨
Рамка моба показывает его уровень относительно тебя и влияет на награды (опыт, золото, ресурс умений, дроп):
| Цвет | Разница уровней | Награды | Появляется |
|---|---|---|---|
| 🟢 Зелёный | −6…−3 | −30% | 20% |
| ⚪ Белый | −2…+2 | 100% (оптимально) | 40% |
| 🟠 Оранжевый | +3…+6 | +10% | 28% |
| 🟥 Бледно-красный | +7…+9 | +30% | 12% |
Синие, голубые и красные мобы не появляются. У синих и красных множитель награды 0.05 — слот охоты с таким мобом был пустым (ни боя, ни добычи), поэтому их убрали из генерации. Определения цветов остались в коде для совместимости.
Роли мобов 🎭
У каждого моба есть боевая роль — она видна глифом на плитке в вылазке и в бою. Роль определяет приём врага, о котором игрок предупреждён за ход («⏳ готовит: …»):
| Роль | Глиф | Приём | Как отвечать |
|---|---|---|---|
| Громила | 🪓 | Тяжёлый удар (×2.6 урона) | щит, оглушение или лечение заранее |
| Колдун | 🔮 | Порча (урон каждый ход, 3 хода) | добить быстро, лечиться |
| Жрец | ✨ | Исцеление (+28% HP) — только когда просел ниже 70% | бурст, оглушение прерывает |
| Хитрец | 🗡️ | Серия из двух ударов (по 0.7×) | щит успевает съесть оба |
Оглушение срывает замах: если враг уже готовил приём, оглушение его отменяет.
Героик и мифик 👑
| Тип | Шанс | Множитель |
|---|---|---|
| Героик | ~5% | HP и награды ×5, урон и броня ×1,5 |
| Мифик | ~1% | HP и награды ×10, урон и броня ×2,5 |
Раньше один множитель шёл на все статы сразу, и мифик бил вдесятеро — такой моб убивал героя за пару ходов, то есть редкость была наказанием, а не наградой. Теперь редкость даёт живучесть и добычу: HP ×5/×10 (бой длится дольше) и награды ×5/×10, а урон с бронёй растут умеренно — ×1,5 и ×2,5.
Бой ⚔️
Пошаговый: твой ход → ход врага → …
Ярость 🔥
- Максимум 100, в начале боя 30.
- Обычная атака даёт +20 ярости.
- Каждый приём стоит ярость (20–40) и ману.
- Раньше каждый приём можно было применить лишь раз за бой, а после любого приёма шёл общий кулдаун 3 хода — бой сводился к жёсткому сценарию «приём → 3 удара → приём». Теперь ограничение — ярость, мана и личные кулдауны, поэтому каждый ход нужно решать: копить или тратить.
Связки 🔗
У приёмов есть роль в связке, она помечена значком на кнопке:
- О — открывающий: щит, баф, яд, оглушение, провокация. Вешает на цель метку на 3 хода.
- З — завершающий: прямой урон и АОЕ. По помеченной цели бьёт ×2.2 и тратит метку. Кнопка подсвечивается золотом, когда связка готова.
- Лечение — вне связок.
Правильный порядок («сначала подготовь — потом бей») даёт втрое больший урон, чем спам ударов.
Провокация
Сбивает врага с толку: его следующий удар слабее на 40%, плюс вешает метку.
Автобой ⚡
Автобой ведёт бой сам: лечится при просадке, добивает помеченную цель, копит ярость. Играет хорошо, но не читает замахи врага — руками можно сыграть точнее.
Автобой — по подписке (покупается в «Меню → Автобой и автофарм»):
| Срок | Цена |
|---|---|
| 1 день | 25 💎 |
| 7 дней | 150 💎 |
| 30 дней | 500 💎 |
Без активной подписки кнопка «Авто» заблокирована, и бой ведётся вручную. Подписка отвечает только за эту кнопку: автофарм вылазок (ниже) покупается отдельно, Эйронами.
Автофарм 🏹⚡
Сервер сам выбирает моба в вылазке, дерётся и берёт следующего. Один бой каждые 9 секунд — за 7 минут вылазки выходит около 46 боёв. Запуск — на экране «Охота»; там же лента боёв и счётчики. Если герой падает, фарм останавливается сам.
Цена — 2 💎 за каждые 25⚡ (за каждую вылазку цепочки), списывается сразу при запуске. Видов два:
| Вид | Цена | Сколько играет | Живёт |
|---|---|---|---|
| ▶ Разовый | 2 💎 | текущую вылазку | пока открыта вкладка |
| ⏩ До нуля энергии | 2 💎 × вылазки, на полной шкале 8 💎 | цепочку до конца энергии (до 4 вылазок, ≈28 минут) | на сервере: вкладку можно закрыть |
Идущая вылазка входит в счёт первой, поэтому у полной шкалы цена ровно 8 💎 за четыре вылазки. Вид «до нуля» переживает закрытую вкладку, заблокированный телефон и даже перезапуск сервера: цепочку ведёт тикер, а не браузер.
Остановка. Кнопка «⏸ Остановить» и выход из вылазки останавливают фарм; за каждую не начатую вылазку возвращаются 2 💎 (погиб или остановил сам — вернутся 2, 4 или 6). По возвращении игрок видит окно итога сессии: сколько вылазок сыграно, побед, золота, опыта, что выпало и сколько зелий выпито.
При HP ниже 35% фарм сам пьёт зелье (не больше 10 за вылазку, как и вручную).
Три режима
Выбираются в «Меню → Автобой и автофарм» и решают, мобов какой редкости фарм вообще трогает:
| Режим | Кого бьёт | Зачем |
|---|---|---|
| 1. Только обычные | игнорирует героических ×5 и мифических ×10 | минимум риска смерти |
| 2. + героические ×5 | обычные и ×5 ниже героя на 5 уровней | середина |
| 3. + мифические ×10 | всех ниже героя на 5 уровней | максимум добычи и риска |
Правило пяти уровней. Героик ×5 и мифик ×10 автофарм берёт, только если моб ниже героя минимум на 5 уровней (уровень моба ≤ уровень героя − 5). Редкий моб бьёт больно, и лезть на ровесника автофарм не должен. Обычные мобы (×1) ограничения не знают — бьются как раньше, даже если они выше героя.
Если в вылазке не осталось мобов, разрешённых режимом, фарм останавливается и объясняет причину: «Ждёт цель: все ×5/×10 выше героя более чем на 5 уровней». Молча стоять он не должен — иначе непонятно, почему счётчики замерли.
Приоритет цветов
Порядок цветов задаёт сам игрок (стрелки ↑/↓ в настройках), по умолчанию белый → оранжевый → зелёный → бледно-красный. Сначала фарм выбивает всех мобов первого цвета в списке, потом второго и так далее. Внутри одного цвета первым идёт моб ниже уровнем — так меньше шансов умереть.
Герои противоположной стороны ⚔️
В оспориваемой зоне (после выбора фракции) во время фарма вместо моба может прийти герой противоположной стороны — шанс 12% на бой. Никаких боёв с призраками из базы: соперник берётся только из онлайна и только подходящий по мощи (±25%), причём он должен быть в той же зоне. Если подходящего нет — бой не случается, моб как обычно.
Бой идёт автоматически, тем же движком, что арена, но без ходов игрока: результат решают характеристики. Итог показывается карточкой на экране охоты — кто победил, за сколько ходов и последние строки лога.
- Победитель продолжает фарм без доплаты.
- Проигравший: фарм останавливается (чтобы начать новый, нужно снова заплатить 25 ⚡), герой остаётся жив с 1 HP — воскрешение за Эйроны из-за случайной встречи было бы наказанием не по делу.
- Сторона победителя получает +1 очко в статистику этой зоны.
- Защита от накрутки: победа над одним и тем же соперником чаще, чем раз в 10 минут, очков не даёт.
Подробнее о том, что даёт контроль, — в 06 — Мир, фракции и кланы.
Прочие механики
Урон (физ/маг), лечение, щит, бафы, периодический урон (в том числе на игроке — от колдунов), оглушение, крит, уворот, вампиризм.
Динамика боя и итог
- Всплывающие числа над бойцом: урон, крит, лечение, щит, периодический урон. При промахе — «УВОРОТ», при связке — «СВЯЗКА!», при оглушении — «ОГЛУШЁН».
- Вспышка иконки применённого приёма над тем, кто его применил.
- Элементы идут по очереди и не накладываются: иконка приёма → подписи → числа урона лесенкой вниз, каждое со своей задержкой. Вся сцена занимает около 1.5 с.
- Эти данные приходят структурными событиями вместе с состоянием боя, а не разбираются из текста лога.
- Бой завершается сам, без кнопки «Назад»: показывается последний удар, затем открывается окно итога с наградой, добычей и кнопкой «Закрыть».
Боевой интерфейс 🎨
Ассеты лежат в game/client/public/characters/, обрабатываются на сервере при заливке (хромакей #00ff00 и белый, обрезка, resize), вшиты в CSS как background/border-image — React-компоненты только расставляют классы.
| Класс / место | Ассет | Как масштабируется |
|---|---|---|
.bar--art (полосы HP, ярости, маны) |
uiframe_bar + uibar_hp / uibar_rage |
рамка по 3-slice (0 95 0 95 fill), заливка 100% 100% |
.act--hit (кнопка «Атака») |
uibtn_attack |
contain, в квадрате по clamp |
.vs (между бойцами) |
uiorn_vs |
contain |
.modal__card--victory |
uiframe_panel_victory + uibg_victory |
пропорции картинки, содержимое в проёме в % |
| награды и добыча | uiic_gold, uiic_xp, uiic_sp, uiic_loot |
.ico (contain) |
.hunt-panel (экран охоты) |
uiframe_panel_hunt + uibg_hunt |
пропорции картинки |
.hunt-head__timer |
uiorn_timer |
contain, круглая плита |
.hunt-head__risk, .risk-title |
uiorn_risk |
.ico |
Почему панели не режутся по 9-slice. У uiframe_panel_victory и uiframe_panel_hunt самоцвет с орнаментом стоит по центру верхней и нижней кромки — при растяжении он бы расплылся. Поэтому панели держат aspect-ratio самой картинки (508/768 и 768/573), а содержимое садится в проём рамки процентами. У uiframe_bar торцы-ромбы занимают всю высоту, поэтому она режется только по горизонтали — вертикальная нарезка разрезала бы ромбы пополам.
Правила для новых ассетов: фон — хромакей #00ff00 или прозрачность; у рамок не должно быть пустых полей (иначе координаты 9-slice не сходятся — ассеты обрезаются по контенту, оригиналы складываются в C:\Игра\art-source\); ничего не выносить за край и не смещать в угол.
Предварительный анализ боя ⚠️
Перед атакой на моба сервер невидимо для игрока прогоняет бой 7 раз на копиях героя. Если он погибает в 70% случаев и чаще, бой не начинается: показывается окно со шансом поражения, текущим HP и выбором Атаковать или Уйти. Атака идёт только после подтверждения.
На мобов, которых герой проходит уверенно, предупреждения нет — бой стартует сразу.
Прокачка умений
| Ранг | Открывается на уровне | Стоимость |
|---|---|---|
| 1 → 2 | 5 | 100 SP |
| 2 → 3 | 10 | 500 SP |
| 3 → 4 | 15 | 2 500 SP |
| 4 → 5 | 20 | 12 500 SP |
Каждый следующий ранг в 5 раз дороже. Все четыре умения до максимума — 62 400 SP.
Ориентиры фарма (30 уровень, белые мобы, 46 убийств за вылазку, не больше 2.4 вылазок в час из-за энергии):
| Режим | Одно умение | Все четыре |
|---|---|---|
| Спокойно | ~1 700 убийств · 38 вылазок · 16 ч | ~6 900 убийств · 151 вылазка · 63 ч |
| На риске (множитель добычи ×3) | ~580 убийств · 13 вылазок · 5 ч | ~2 300 убийств · 51 вылазка · 21 ч |
SP за убийство: уровень × 0.3 × цвет × редкость × риск. Белый моб 30 уровня — 9 SP, он же на риске — 27, героик ×5 — 45, мифик ×10 — 90.
Повышение уровня
- HP/MP при повышении уровня НЕ восстанавливаются — ни в бою, ни где-либо ещё. Иначе уровень был бы бесплатным лечением.
- По окончании боя всплывает окно: какой уровень достигнут и что он дал (очки атрибутов, очки талантов, доступный ранг умений, открытие новых талантов).
Арена ⚔️
Бой на арене — ручной и пошаговый. Автобоя на арене нет: каждый ход игрок выбирает действие сам, теми же механиками, что и в PvE — ярость, связки, щиты, лечение, оглушение.
Соперник — офлайн-снапшот другого игрока. Он может быть не в сети: его боец играет авто-ротацией по своей сохранённой очереди приёмов (лечится при просадке, готовит связку, добивает помеченную цель). Предупреждения о его приёме нет — его ход виден, только когда он его делает.
- Оба бойца начинают с полными HP/MP и яростью 30, без эффектов. Запас HP на арене ×2.6 — иначе бой кончался за 6–8 ударов.
- Темп боя: один ход — 1.6 секунды. Сервер отдаёт результат хода не сразу, а выдержав паузу, поэтому бой длится около 30 секунд независимо от того, как быстро игрок жмёт кнопки. Повторное нажатие во время хода отклоняется, кнопки на это время гаснут.
- Урон растёт по ходам (+7% за ход, потолок ×2.6), а лечение на арене слабее (×0.65). Без этого разброс был огромным: берсерк убивал за 6 ходов, а некромант со жрецом лечили друг друга 40+ ходов, и бой не заканчивался.
- Итог замера: равные по силе бойцы — в среднем 18–20 ходов ≈ 30 секунд.
- Старые снапшоты (до появления ярости и связок) достраиваются на лету, поэтому арена работает и с ними.
- Список соперников — игроки в радиусе 3 уровней от твоего.
- Вход в бой: попытка (1 за 15 минут, копится до 10, с VIP — 12) и 10 золота.
- «Сдаться» до конца боя попытку и золото не возвращает, но рейтинг не меняет — чтобы обрыв связи не стоил рейтинга.
Награды: победа — рейтинг по Elo-формуле, опыт, золото (200 + 20×уровень соперника, +10% с VIP), SP. Поражение — падение рейтинга без наград.
Бой переживает обрыв связи. Незавершённый бой сохраняется и возвращается при переподключении вместе с номером хода, HP/MP/яростью обоих бойцов и логом. Пока бой идёт, посторонние действия запрещены: вылазка, выбор стороны, воскрешение, автофарм и второй бой на арене отвечают «Сначала заверши бой на арене».
Тир определяется мощью, а не рейтингом: от 🌱 Новичка (0) до 👑 Сильнейшего (6500+); порог следующего тира виден на полосе прогресса.
Ники уникальны. При создании героя имя проверяется без учёта регистра — иначе в логе боя было бы не понять, кто кого ударил.