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
This commit is contained in:
commit
6457a8904e
50 files changed
+14486
No files matched your search
@@ -0,0 +1,184 @@
|
||||
# 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
|
||||
- [ ] **Глобальные таблицы лидеров**
|
||||
Reference in new issue
Block a user