Files
ai-qpid-pvz/TODO.md
T
Antigravity 6457a8904e feat: Initial commit Plants vs Zombies Web Edition v2.4
- 5 Biomes: Day, Night, Pool, Fog, Roof (25 Campaign levels)
- Minigames: Wall-nut Bowling, I Zombie, Roguelike, Boss Rush & Dr. Zomboss
- Systems: Zen Garden, Workshop Crafting, Almanac, Tree of Wisdom, Achievements
- Backend: REST API + SQLite Accounts & Save Synchronization
- Infrastructure: Nginx HTTPS & Docker deployment
2026-09-17 09:30:52 +00:00

185 lines
17 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
- [ ] **Глобальные таблицы лидеров**