# Plants vs. Zombies (ai.qpid.pro) — Backlog & To-Do List ## Текущий статус: v1.7 Released (Production) - [x] Разведка окружения и настройка DNS (`ai.qpid.pro` -> `31.77.203.213`) - [x] Docker + Nginx + Certbot контейнеризация - [x] SSL Let's Encrypt автоматизация и скрипт обновления - [x] Базовый игровой движок на HTML5 Canvas (5x9 сетка, дорожки) - [x] Газонокосилки (по одной на каждую линию) - [x] Экономика солнца (падающее солнце + подсолнухи) - [x] Базовые растения: Подсолнух, Горохострел, Ледяной горохострел, Стеноорех, Вишневая бомба, Лопата - [x] Базовые зомби: Обычный, Зомби с конусом, Зомби с ведром, Зомби с флагом - [x] Боевая система: регистрация урона, эффекты замедления, частицы взрывов - [x] 4 волны с предупреждающими баннерами и экранами победы/поражения - [x] Web Audio API синтезатор звуковых эффектов --- ## 🎯 Спринт v1.1: Мобильная адаптация, UX и Музыка (Released) - [x] **Исправление багов**: - [x] Зомби корректно продолжают движение после съедения растения (сброс флага `isEating` при гибели или отсутствии цели) - [x] Peashooter стреляет только по живым целям (`!z.toRemove`) - [x] **Сенсорное управление (Touch Controls)** - [x] Тач-события `touchstart`, `touchmove`, `touchend` для смартфонов - [x] Автоматический сбор солнц свайпом (проведение пальцем по экрану) - [x] Увеличенные хитбоксы интерактивных элементов для мобильных пальцев - [x] **Графика и рендеринг (HiDPI / Retina)** - [x] Поддержка `window.devicePixelRatio` для четкости Canvas на смартфонах и 4K дисплеях - [x] Адаптивное масштабирование `#game-container` через CSS `aspect-ratio` и `max-width: 98vw` - [x] **Фоновое музыкальное сопровождение** - [x] Синтез 8-битной полифонической темы *«Grasswalk»* на Web Audio API - [x] Кнопка включения/выключения музыки `btn-music` на панели HUD - [x] **Локальные сохранения рекордов** - [x] Сохранение очков и лучшего рекорда в `localStorage` - [x] Отображение рекорда на стартовом, победном и финальном экранах --- ## 🌻 Спринт v1.2: Тактический арсенал и Новые зомби (Released) - [x] **Новые растения** - [x] Картофельная мина (Potato Mine) — 25 ☀️, время взведения 14 сек, взрыв Spudow! - [x] Повторитель (Repeater) — 200 ☀️, двойной залп горохом - [x] Зубастик (Chomper) — 150 ☀️, моментальное заглатывание зомби и жевание - [x] Халапеньо (Jalapeno) — 125 ☀️, выжигание всей горизонтальной полосы огнем - [x] **Новые зомби** - [x] Зомби с шестом (Pole Vaulter) — быстрый бег, перепрыгивание через 1-е растение с шестом - [x] Зомби с газетой (Newspaper Zombie) — газета поглощает урон, ярость при уничтожении газеты - [x] Зомби-футболист (Football Zombie) — тяжелый шлем, высокая скорость - [x] **Индикатор волны (HUD)** - [x] Шкала волны с визуальным индикатором прогресса --- ## 🌙 Спринт v1.3: Новые биомы (Ночь и Бассейн) (Released) - [x] **Ночной газон (Night Stage)** - [x] Отключение падения солнца с неба - [x] Грибная экономика: Солнцегриб (Sun-shroom) и Дымогриб (Fume-shroom с пробивающими спорами) - [x] Надгробия на поле и растение Могилоед (Grave Buster) - [x] Ночной темный визуальный фон газона и подъем зомби из могил - [x] **Бассейн (Pool Stage)** - [x] 6 дорожек (две центральные дорожки с анимированной водой) - [x] Растение Кувшинка (Lily Pad) для посадки наземных юнитов на воду - [x] Водные зомби на кругах (Ducky Tube Zombies) - [x] Плавающие очистители бассейна (Pool Cleaners) --- ## 🛒 Спринт v1.4: Кампания, Прогрессия и Магазин Дэйва (Released) - [x] **Карта уровней (1-1 ... 1-10)** - [x] Поэтапная кампания с автоматическим переходом на новый уровень - [x] Автоматическая смена биома: День (1-5) -> Ночь (6-8) -> Бассейн (9-10) - [x] **Экономика монет и Магазин Безумного Дэйва** - [x] Выпадение серебряных (10), золотых (50) и алмазных (200) монет из поверженных зомби - [x] Интерфейс магазина: покупка 6-го слота под семена (500 💰), садовых грабель (150 💰) - [x] Механика грабель: автоматическое уничтожение первого зомби на газоне - [x] **Профили игроков** - [x] Сохранение монет, апгрейдов магазина, разблокированных уровней и рекорда в `localStorage` --- ## 🏆 Спринт v1.5: Режимы игры и Мини-игры (Released) - [x] **Бесконечный режим (Endless Survival)** - [x] Бесконечные волны с постоянно возрастающей интенсивностью и флагами - [x] Отслеживание числа отбитых флагов и рекорда - [x] **Мини-игра: Боулинг орехами (Wall-nut Bowling)** - [x] Конвейерная подача орехов и вишен бесплатно - [x] Механика рикошета катящихся орехов по диагоналям при ударе о зомби - [x] Переключатель режимов прямо на стартовом экране («Приключение», «Выживание», «Боулинг», «Я, Зомби») --- ## 🚀 Спринт v1.6: Исправление «Я, Зомби», Навбар без наложений, Меню, Профили/Гость и Автономное Test API (Released) - [x] **Исправление бага режима «Я, Зомби»**: - [x] Устранение мгновенной ложной победы: синхронная расстановка обороны газона без асинхронных задержек `setTimeout` - [x] Размещение 5 целевых подсолнухов в колонке 0 и защитной линии растений (Горохострелы, Повторители, Стеноорехи, Мины) - [x] Начисление +150 солнца за каждый съеденный подсолнух со звуковым эффектом - [x] Корректное условие поражения: солнце < 50 и отсутствие живых зомби на газоне при уцелевших подсолнухах - [x] Отключение автоматических волн и газонокосилок в режиме зомби - [x] Проход зомби до левого края газона считается захватом мозгов и не вызывает проигрыш - [x] **Полная переработка интерфейса (Устранение наложений элементов)**: - [x] Создание независимой верхней панели `.top-nav-bar` на Flexbox над игровым холстом - [x] Исключение абсолютного позиционирования кнопок поверх игрового Canvas, шкалы волн и слотов семян - [x] Равномерное размещение элементов: слева «🏠 Меню» и плашка профиля; справа кнопки скорости «⚡ 1x/2x», музыки «🎵 Вкл/Выкл» и звука «🔊 Вкл/Выкл» - [x] **Главное меню и перезапуск**: - [x] Кнопка «🏠 Меню» доступна в любой момент игры: ставит игру на паузу и открывает окно выбора режима, уровня и магазина - [x] Кнопки «В МЕНЮ» на экранах поражения и победы для мгновенного перезапуска или смены сценария - [x] **Система авторизации и профилей (Логин/Пароль + Гость)**: - [x] Реализована система `PvZAuth` в `js/systems/auth.js` - [x] Модальное окно авторизации игрока: вход / быстрая регистрация по логину и паролю - [x] Режим «Гость»: полноценная сессионная игра без сохранения прогресса на диск - [x] Изоляция данных пользователя: сохраненные монеты, открытые уровни и покупки магазина привязаны к аккаунту - [x] Индикатор текущего статуса игрока в верхнем тулбаре - [x] **Автономное тестирование игры (Test API & CLI Runner)**: - [x] Встроенный движковый API `window.PvZTestAPI` в `js/utils/test_api.js` (симуляция тиков, спавн сущностей, проверка боя, мины, косилок, победы в «Я, Зомби» и авторизации) - [x] Автономный CLI скрипт `scripts/test_game.py` с 46 автоматическими проверками HTTP/2, статики, синтаксиса и бизнес-логики --- ## 🛠️ Спринт v1.7: Локация «Садовая Мастерская» — Крафт, 3 Уровня прокачки растений и Пассивные перки (Released) - [x] **Новая игровая локация «Сад-Мастерская» (Garden Workshop & Lab)**: - [x] Отдельный интерактивный экран/модальное окно Сада с верстаком прокачки и деревом перков - [x] Переход в Сад одной кнопкой из верхнего меню и стартового окна («🧪 Сад-Мастерская») - [x] **Система ремесленных материалов (Drop & Craft)**: - [x] Сбор ресурсов в процессе боя во всех режимах игры: - 🧪 **Био-гумус (Bio-Humus)** — выпадает из поверженных базовых зомби - ⚙️ **Зомби-детали (Scrap Metal)** — выпадает из бронированных врагов (ведра, конусы, футболисты) - ☀️ **Солнечная эссенция (Sun Essence)** — накапливается за активный сбор солнечных капель - 💎 **Алмазные кристаллы (Crystals)** — редкий дроп из волн флагов и элиты - [x] Визуальные летающие дропы материалов с физикой падения, анимацией и подсветкой - [x] Сбор материалов кликом мыши или автосбором через перк магнетизма - [x] **Система 3 уровней прокачки каждого растения (Tier 1 ➔ Tier 2 ➔ Tier 3)**: - [x] Индивидуальный прогресс каждого растения за монеты + материалы: - **Горохострел**: - *Ур. 1*: Базовый горох (урон 20) - *Ур. 2 («Скорострел»)*: Урон 25, скорость атаки +20%, шанс крита 15% (x2 урон) - *Ур. 3 («Плазменный стрелок»)*: Плазменный шар пробивает первого зомби насквозь и ранит идущего сзади - **Подсолнух**: - *Ур. 1*: Базовое солнце (25 ☀️) - *Ур. 2 («Крупный подсолнух»)*: Дает 35 ☀️, ускоренное появление - *Ур. 3 («Благодатный свет»)*: Каждая генерация солнца лечит +30 HP соседним растениям - **Стеноорех**: - *Ур. 1*: 400 HP - *Ур. 2 («Каменный монолит»)*: 700 HP + поглощение 15% урона - *Ур. 3 («Шипованный бастион»)*: 1000 HP + возврат 30% урона атакующим зомби при каждом укусе - **Картофельная мина**: - *Ур. 1*: Взведение 15 сек, взрыв в 1 клетке - *Ур. 2*: Быстрое взведение всего за 6 сек - *Ур. 3 («Атомный Spudow»)*: Взрыв по площади 3x3 клетки + лавовая зона - **Повторитель, Ледяной горох, Зубастик** — расширенные деревья прокачки до 3 уровней - [x] Визуальное отображение уровней: звездочки (★★ / ★★★) над карточками в колоде и световые ауры на газоне - [x] **Пассивные Перки Садовника (Глобальное дерево технологий)**: - [x] 5 пассивных улучшений профиля: - 🧲 *«Магнитный газон»* — увеличенный радиус автосбора монет, солнц и лута (до полного экрана на ур. 3) - ☀️ *«Стартовый капитал»* — старт каждого боя с +50/+100/+150 ☀️ - ⏳ *«Ускоренный полив»* — сокращение кулдауна семян на -10%/-20%/-30% - 🛡️ *«Упорные корни»* — запас здоровья всех посадок +20%/+35%/+50% - 🍀 *«Золотая рука»* — шанс дропа золотых монет и редких материалов повышен на +30%/+60%/+100% - [x] Сохранение уровней растений, ресурсов и купленных перков в профиле игрока (`PvZAuth`) --- ## 🪴 Спринт v1.8: Дзен-Сад (Пассивный доход и улитка Стинки) и Альманах (Запланировано) - [ ] **Дзен-Сад (Zen Garden)**: - [ ] Выращивание растений в горшках (лейка, удобрения, граммофон) - [ ] Пассивный доход монет каждые несколько часов (начисление монет за время отсутствия) - [ ] Улитка Стинки (Stinky the Snail) пылесосит монеты при подкармливании шоколадом - [ ] **Альманах пригородных растений и зомби (Suburban Almanac)**: - [ ] Энциклопедия с описанием, статистикой и лором всех персонажей - [ ] Секретный Зомби-Йети (дроп 4 алмазов) --- ## 🎲 Спринт v1.9: «Садовый Рогалик» и Достижения (Запланировано) - [ ] **Режим «Садовый Рогалик» (Garden Roguelike)**: - [ ] Драфт семян и выбор 1 из 3 мощных реликвий после каждой волны (молнии, яд, взрывы) - [ ] **Система Достижений (30+ ачивок с наградами)**: - [ ] Зал трофеев в профиле игрока --- ## 👑 Спринт v2.0: Туман, Крыша, Босс Зомбосс и Лидерборды (Запланировано) - [ ] **Биомы Туман и Крыша** с катапультами - [ ] **Дерево Мудрости** и клавиатурные чит-коды (`mustache`, `future`, `dance`, `pinata`) - [ ] **Финальный босс Доктор Зомбосс** на гигантском Zombot - [ ] **Глобальные таблицы лидеров**