Консольная игра с русским интерфейсом. Исследуйте опасные локации, собирайте лут, сражайтесь с зомби и развивайте персонажа.
- Регистрация / вход – новый игрок придумывает никнейм (только буквы, 6–17 символов). При повторном запуске сохранённый прогресс загружается автоматически.
- База – меню с выбором действий:
1Охота (добыча предметов и опыта)2Больница (лечение, 1 HP = 2 монеты)3Мастерская (броня, оружие, верстак)4Сохранить игру5Статистика (полный статус героя)6Скупщик (продажа предметов из рюкзака)7Дом (отдых, майнинг-ферма)8Выход (с сохранением)
- Охота – три варианта:
- Вариант 1 (минимальный риск): 5 ящиков, зомби нет. Лут: Металлолом (10 монет), Батарейка (25), Тряпка (5).
- Вариант 2 (высокий риск): 5 ящиков, лут: Аптечка (50), Патроны (40), Деталь оружия (100), Золотая цепочка (150). У каждого ящика 40% шанс встретить зомби (обычного или быстрого).
- Вариант 3 (максимальный риск, стелс): 5 ящиков, лут: Кристалл (300), Редкий артефакт (800), Схема обвеса (1200). При активации «активных зомби» цена удваивается.
- Бой – пошаговый, с расходом энергии:
- Действия:
1Выстрел (5 энергии),2Отойти (15 энергии),3Аптечка (10 энергии). - Каждое действие тратит энергию. При нехватке энергии действие недоступно.
- Выстрел расходует патроны и прочность оружия. Поддерживается два типа зомби: обычный и быстрый (двойной урон).
- При промахе или отходе зомби контратакует. Успешный отход завершает бой.
- После победы даётся опыт, здоровье зомби восстанавливается.
- Действия:
- Стелс (в варианте 3): 4 действия – убежать, затаиться, отвлечь камнем, обойти за спину. Успех даёт опыт как за убийство. Неудача может нанести урон.
- Рюкзак – вся добыча складывается в инвентарь. Одинаковые предметы группируются.
- Скупщик – покупает всё содержимое рюкзака. При каждой сделке произносит случайную фразу, зависящую от самых ценных/специфичных предметов в рюкзаке.
- Повышение уровня – при накоплении опыта
level * 200 + level^2 * 5. При переходе даётся случайный набор из трёх улучшений (HP, монеты, урон, скорость лута, ваншот, поглощение). - Мастерская:
- Броня (4 типа, бесплатно) – влияет на поглощение, урон, скорость лута, макс. HP.
- Оружие (4 вида, покупка) – AK-47 (5400), AWP (8400), LR-300 (3600), MP-5 (5400).
- Верстак (крафт) – починка оружия (250 монет), создание патронов (10 монет/шт), создание аптечек (150 монет/шт). Максимум 5 аптечек.
- Дом:
- Отдых – полностью восстанавливает энергию. Если энергия была ≤5, также увеличивает максимальную энергию на 10. Нельзя использовать дважды подряд.
- Майнинг-ферма (в разработке).
- Энергия – тратится в бою и восстанавливается отдыхом. Исходное значение 100, максимальное может расти.
- Сохранение/загрузка – все параметры (включая энергию, аптечки, регистрацию) записываются в
save.txt.
- Три режима охоты с разными таблицами лута
- Боевая система: части тела, двойной выстрел (MP-5), мгновенное убийство (AWP), расход патронов и прочности
- Система энергии и отдыха
- Стелс-механика с четырьмя вариантами действий
- Система уровней с квадратичным порогом и случайными перками
- Рюкзак и скупщик с контекстными фразами (более 20 реплик)
- Верстак: ремонт, патроны, аптечки
- Дом с отдыхом и заготовкой под майнинг-ферму
- Полная поддержка кириллицы (UTF-8 в консоли Windows)
- Компилятор с поддержкой C++11 (g++, clang++, MSVC)
- ОС Windows, Linux или macOS
- Для Windows: консоль с поддержкой UTF-8 (включена по умолчанию в Windows 10+)
g++ main.cpp -o undead_harvest -std=c++11
./undead_harvest # Linux/macOS
.\undead_harvest.exe # Windows| Файл | Назначение |
|---|---|
main.cpp |
Основной код игры (логика, бой, охота, мастерская, дом) |
struct.h |
Заголовочный файл со структурами, классами и методами |
save.txt |
Файл сохранения (создаётся автоматически) |
- Попадание: базовый шанс 60% + (точность оружия / 10). Максимум 100%.
- Урон игрока:
(базовый урон) * (множитель части тела) * (множитель брони) * (множитель оружия) - Урон зомби: обычный 10–40, быстрый 5–30 (удваивается за счёт скорости)
- Ресурсы: каждый выстрел –1 патрон, –1 прочность
| Броня | Поглощение | HP | Урон | Скорость лута |
|---|---|---|---|---|
| Тяжёлая | 75% | 120 | 70% | 50% |
| Лёгкая | -25% | 100 | 110% | 500% |
| Средняя | 10% | 110 | 110% | 110% |
| Начальная | -5% | 100 | 100% | 80% |
| Оружие | Цена | Урон | Точность | Скорость лута | Особенность |
|---|---|---|---|---|---|
| AK-47 | 5400 | x1.6 | +0% | x1.1 | Слоты для обвесов (позже) |
| AWP | 8400 | x2.5 | +50% | x0.5 | 5% мгновенное убийство |
| LR-300 | 3600 | x1.4 | +5% | x1.0 | – |
| MP-5 | 5400 | x1.0 | +5% | x1.15 | 20% двойной выстрел |
- Починка оружия: 250 монет (восстанавливает прочность до 100)
- Создание патронов: 10 монет за штуку (максимум 30)
- Создание аптечек: 150 монет за штуку (максимум 5)
- Опыт за ящик: 1–10 XP
- Опыт за убийство: 20–50 XP
- Порог уровня:
level * 200 + level * level * 5 - При повышении – случайный набор из трёх улучшений (таблица
level_gifts)
- Предметы добавляются через
add_item()(группировка по имени) - Продажа всего содержимого:
sell_all_loot()(пункт 6 меню) - Скупщик выбирает фразу, анализируя состав рюкзака (приоритет у дорогих/редких предметов)
- Максимальная энергия хранится в
Armor::player_max_energe(начальное 100). - Тратится в бою. Восстанавливается в доме через «Отдых».
- При энергии ≤5 отдых дополнительно увеличивает максимум на 10.
Нашли баг или есть идеи? Создайте Issue или pull request.
Скупщик уже заждался твой лут, выживший!