# План разработки проекта: Plants vs. Zombies (ai.qpid.pro) ## 1. Цели и архитектурные принципы - **Цель**: создать быстрый, легкий, полностью автономный браузерный клон Plants vs. Zombies, доступный на постоянном домене `https://ai.qpid.pro`, с максимальной глубиной удержания игроков (Retention), реиграбельностью, системой крафта, прокачки и пассивного прогресса. - **Архитектурные принципы**: 1. *Zero External Runtime Dependencies*: отсутствие внешних CDN или тяжелых фреймворков. 2. *Single Static Origin*: чистый Nginx в Docker раздает сжатую статику, 100% исполнение на стороне клиента. 3. *Zero Asset Loading Delay*: процедурная графика Canvas и синтез звука через Web Audio API. 4. *Mobile & Desktop Hybrid*: идеальный отклик как для мыши, так и для сенсорных экранов. 5. *Autonomous Testability*: встроенный API `window.PvZTestAPI` и CLI-раннер `test_game.py` для непрерывного контроля качества. 6. *Глубокая система прогресса и крафта (RPG & Idle Core)*: - **Сбор ресурсов в бою**: зомби дропают монеты и ремесленные материалы (Гумус, Металлолом, Солнечную эссенцию). - **Садовая Мастерская**: отдельная уютная локация крафта и селекции растений. - **3 Уровня прокачки каждого растения**: от базового саженца до плазменных и шипованных ультимейтов. - **Глобальные перки садовника**: пассивные бонусы на всю игру (стартовое солнце, ускорение перезарядки, магнетизм). --- ## 2. Реализованные фазы разработки (v1.0 — v1.6) ### ✅ Фаза I (v1.1): «Мобильность, HiDPI и Музыка» (Выполнено) - Тач-события (`touchstart`, `touchmove`, `touchend`) и свайп-сбор солнц. - Поддержка `window.devicePixelRatio` для четкости на Retina/HiDPI. - Полифоническая музыкальная тема *«Grasswalk»* на Web Audio API. - Локальное сохранение очков и рекордов в `localStorage`. ### ✅ Фаза II (v1.2): «Тактический арсенал и новые зомби» (Выполнено) - 4 новых растения: Картофельная мина, Повторитель, Зубастик, Халапеньо. - 3 новых зомби: Зомби с шестом, Зомби с газетой, Зомби-футболист. - Анимированная шкала прогресса волны в правом верхнем углу. ### ✅ Фаза III (v1.3): «Смена биомов (Ночь и Бассейн)» (Выполнено) - Ночной газон: отсутствие падающего солнца, грибная экономика (Солнцегриб, Дымогриб), надгробия и Могилоед. - Бассейн: 6 дорожек, 2 водных линии с кувшинками, зомби-уточки, очистители бассейна. ### ✅ Фаза IV (v1.4): «Кампания и Магазин Безумного Дэйва» (Выполнено) - Кампания из уровней 1-1...1-10 с последовательной прогрессией. - Выпадение серебряных, золотых и алмазных монет из зомби. - Магазин Дэйва с покупкой +1 слота под семена и садовых грабель. ### ✅ Фаза V (v1.5): «Дополнительные режимы и мини-игры» (Выполнено) - Режим «Выживание» (Endless Survival) с флагами. - Мини-игра «Боулинг орехами» (Wall-nut Bowling) с рикошетом и конвейерной лентой. - Режим «Я, Зомби» (I, Zombie). ### ✅ Фаза VI (v1.6): «Полировка UI, Меню, Авторизация/Гость и Test API» (Выполнено) - **Исправление режима «Я, Зомби»**: синхронный старт без таймеров, 5 подсолнухов, +150 солнца за поедание, поражение при солнце < 50 и отсутствии зомби. - **Устранение наложений UI**: верхний независимый Flexbox тулбар `.top-nav-bar` вне игрового холста. - **Главное меню и перезапуск**: кнопка «🏠 Меню» на панели + кнопки «В МЕНЮ» на экранах победы и поражения. - **Система авторизации и профилей**: окно входа/регистрации по логину и паролю + режим «Гость» (сессионная игра). - **Автономное тестирование игры**: модуль `window.PvZTestAPI` и CLI-тест `scripts/test_game.py` (46 автотестов). ### ✅ Фаза VII (v1.7): «Сад-Мастерская: Крафт, 3 Уровня прокачки растений и Перки» (Выполнено) - **Интерактивная локация «Сад-Мастерская»**: модальный экран с панелью материалов (🧪 биогумус, ⚙️ детали, ☀️ эссенция, 💎 кристаллы, 💰 монеты) и вкладками прокачки растений и перков. - **3 Уровня прокачки растений (Tiers 1-3)**: Горохострел (криты + плазменный пирсинг), Подсолнух (ускорение + аура лечения), Стеноорех (поглощение урона + шипы отдачи), Картофельная мина (быстрый взвод 6с + ядерный Spudow 3x3), Повторитель, Ледяной горох, Зубастик. - **5 Пассивных Перков Садовника**: Магнитный газон (автосбор), Стартовый капитал (+50/100/150 ☀️), Ускоренный полив (-10/20/30% CD), Упорные корни (+20/35/50% HP), Золотая рука (+30/60/100% дроп). - **Анимированный лут**: подпрыгивание, свечение и притягивание магнитом. - **Полное сохранение**: синхронизация материалов, уровней и перков с профилями в `PvZAuth`. - **68/68 автоматических тестов** успешно проходят в `scripts/test_game.py`. --- ## 3. Детализация следующего Спринта v1.8: «Дзен-Сад (Пассивный доход и улитка Стинки) и Альманах» ### 3.1. Локация «Сад-Мастерская» (Garden Lab & Workshop) * Переход на отдельный экран/модальное окно Сада из главного меню или верхней панели управления. * Визуальное оформление: уютная теплица с деревянным верстаком, грядками и полками с колбами. * 3 вкладки в интерфейсе: 1. **«Селекция растений»**: список всех растений игрока, текущий уровень (★, ★★, ★★★), стоимость улучшения в ресурсах. 2. **«Пассивные перки»**: ветки перков с индикатором прокачки. 3. **«Хранилище материалов»**: баланс собранных ресурсов. ### 3.2. Ремесленные материалы (Ресурсы боя) | Ресурс | Иконка | Источник получения | Назначение | |---|---|---|---| | **Монеты** | 💰 | Зомби, газонокосилки, Дзен-сад | Базовые улучшения, магазин | | **Био-гумус** | 🧪 | Обычные зомби, зомби с шестом, газетчики (шанс 25%) | Прокачка травяных растений | | **Зомби-металл** | ⚙️ | Зомби с ведром, конусом, футболисты (шанс 40%) | Прокачка прочности, орехов, шипов | | **Солнечная эссенция** | ☀️ | Сбор солнц на газоне (каждое 10-е солнце дает +1 эссенцию) | Прокачка подсолнухов и энергетиков | | **Кристаллы льда/огня** | 💎 | Боссы, прохождение флагов в Выживании, редкие зомби | Ультимативные улучшения 3-го уровня | ### 3.3. Таблица 3 уровней прокачки растений (Plant Tiers) Каждое растение получает 3 ступени мастерства: 1. **Горохострел (Peashooter)**: - ★ **Ур. 1 (Базовый)**: Урон 20, интервал стрельбы 1.4 сек. - ★★ **Ур. 2 («Скорострел»)**: Урон 25, интервал 1.15 сек, шанс критического удара 15% (x2 урон со вспышкой). - ★★★ **Ур. 3 («Плазменный стрелок»)**: Плазменный энергетический заряд пробивает первого зомби насквозь и ранит следующего на 50% урона. 2. **Подсолнух (Sunflower)**: - ★ **Ур. 1 (Базовый)**: 25 ☀️ каждые 12 сек. - ★★ **Ур. 2 («Крупный подсолнух»)**: 35 ☀️ каждые 10 сек. - ★★★ **Ур. 3 («Благодатный свет»)**: Каждая вспышка солнца излучает ауру, восстанавливающую +30 HP всем соседним растениям в радиусе 1 клетки. 3. **Стеноорех (Wall-nut)**: - ★ **Ур. 1 (Базовый)**: 400 HP. - ★★ **Ур. 2 («Каменный монолит»)**: 700 HP + поглощение 15% входящего урона. - ★★★ **Ур. 3 («Шипованный бастион»)**: 1000 HP + возврат 30% полученного урона атакующим зомби при каждом укусе. 4. **Картофельная мина (Potato Mine)**: - ★ **Ур. 1 (Базовый)**: Время взведения 15 сек, взрыв в клетке на 1800 урона. - ★★ **Ур. 2 («Быстрый фитиль»)**: Время взведения сокращено до 6 сек! - ★★★ **Ур. 3 («Атомный Spudow»)**: Взрыв 3x3 клетки + оставляет горящую яму лавы, замедляющую и сжигающую врагов. 5. **Повторитель (Repeater)**: - ★: 2 горошины за выстрел. - ★★: 2 горошины + шанс 20% выпустить третью горошину. - ★★★: Огненный Повторитель — горошины зажигаются и наносят сплэш-урон. 6. **Ледяной горох (Snow Pea)**: - ★: Замедление на 4 сек, урон 20. - ★★: Увеличенный холод (замедление 6 сек, зона заморозки задевает зомби позади). - ★★★: Шанс 15% полностью превратить зомби в ледяную глыбу на 2 сек. 7. **Зубастик (Chomper)**: - ★: Заглатывание и 30 сек жевания. - ★★: Жевание ускорено до 14 сек. - ★★★: Способен проглотить сразу 2 зомби подряд перед началом жевания! ### 3.4. Глобальные Пассивные Перки Садовника Постоянные пассивные улучшения, действующие во всех режимах игры: * 🧲 **Магнитный газон (Ур. 1-3)**: Радиус автосбора монет и солнц увеличен на +30% / +60% / Полный автосбор по экрану. * 💰 **Стартовый капитал (Ур. 1-3)**: Старт боя с +50 ☀️ / +100 ☀️ / +150 ☀️. * ⏳ **Ускоренный полив (Ур. 1-3)**: Время перезарядки (cooldown) всех карточек семян снижено на -10% / -20% / -30%. * 🛡️ **Упорные корни (Ур. 1-3)**: Запас здоровья всех растений на газоне увеличен на +15% / +30% / +50%. * 🍀 **Золотая рука (Ур. 1-3)**: Шанс дропа монет и редких материалов из зомби повышен на +25% / +50% / +75%. --- ## 4. Завершённые фазы (v1.8 — v2.1) ### ✅ Фаза VIII (v1.8): «Дзен-Сад (Пассивный доход и улитка Стинки) и Альманах» (Выполнено) - **Дзен-Сад с 8 горшками**: покупка саженцев (100 монет), 4 стадии роста, уход (лейка, удобрение, граммофон). - **Улитка Стинки (Stinky the Snail)**: автосбор монет, кормление шоколадом для 3x ускорения. - **Пассивный оффлайн-доход**: начисление монет при возвращении в игру. - **Пригородный Альманах**: полное иллюстрированное досье на 13 растений и 8 зомби, включая секретного Зомби-Йети с дропом 4 алмазов. ### ✅ Фаза IX (v1.9): «Садовый Рогалик (Roguelike Drafting) и Система Достижений» (Выполнено) - **Режим Рогалика**: этажи, драфт семян и 6 уникальных реликвий (Цепная молния, Токсичная почва, Солнечный резонанс, Железная кора, Вампирский сок, Древесный стимулятор). - **HUD активных реликвий**: индикация на экране во время боя. - **Система достижений**: 14+ трофеев с прогресс-барами, всплывающими тост-уведомлениями, наградами в монетах/кристаллах и сохранением в профиль. ### ✅ Фаза X (v2.0): «Туман, Крыша, Древо Мудрости, Доктор Зомбосс и Лидерборды» (Выполнено) - **Биомы Туман и Крыша**: - Крыша: скошенная черепица, кирпичная труба, необходимость Цветочных Горшков (`flowerpot`). - Туман: плотная атмосферная пелена над правой частью газона с динамическим дрейфом. - Навесная артиллерия: Капустопульта (`cabbagepult`) и Арбузопульта (`melonpult`) с параболической физикой и сплэш-уроном. - **Древо Мудрости и Чит-коды**: - Рост за древесное удобрение (150 монет) с мудрыми советами садовника. - Секретные клавиатурные чит-коды: `mustache` (усы), `future` (неоновые киберочки), `daisies` (цветы при смерти), `dance` (танцы нежити), `pinata`. - **Финальный босс Доктор Зомбосс & Зомбот**: - 6000 HP, 3 фазы боя. - Раздавливание растений лапой робота, десант зомби на резинках (Bungee), ледяные и огненные шары (растопление Халапеньо / заморозка Ледяным горохом), бросок фургона на 3-й фазе. - Эпический салют взрывов и богатый дроп при победе. - **Доска Почёта и Рекорды**: - Топ-10 результатов по режимам: Выживание, Рогалик, Приключение, Я Зомби, Боулинг, Зомбосс. ### ✅ Фаза XI (v2.1 Финал): «Саундтрек, Boss Rush, Кастомные темы и PWA» (Выполнено) - **Мульти-биомовый процедурный саундтрек**: - Web Audio синтезатор генерирует уникальные музыкальные темы для каждого биома: - `day` (солнечный весёлый Grasswalk), - `night` (таинственный эфирный минор Moonglow), - `pool` (карибский баунс / маримба Watery Lounge), - `fog` (напряжённый эмбиент с детьюнированными пэдами), - `roof` (героический марш с восходящими аккордами), - `boss` (драйвовый тяжёлый рок/метал Brainiac Maniac). - Методы `PvZAudio.startMusic(theme)`, `setTheme(theme)`, `getTheme()`. - **Режим «Boss Rush» (Череда Боссов)**: - 3 эскалирующие волны: 1. Орда тяжелоатлетов-футболистов и зомби с ведрами; 2. Элитный спецназ с шестами и газетами; 3. Доктор Зомбосс на боевом Зомботе. - Награда за победу: +500 монет и +2 алмаза, собственный раздел в Доске Почёта. - **Визуальные темы и кастомные скины**: - Переключение в шапке игры в один клик: - 🎨 **Классика** (традиционный газон и интерфейс), - 🎨 **Киберпанк** (неоновый циан и маджента, матричные сетки), - 🎨 **Ретро 8-бит** (пиксельный аркадный стиль CRT), - 🎨 **Зима** (морозный лазурный газон, снежные акценты). - Сохранение выбранной темы в аккаунт игрока. - **PWA (Progressive Web App) и Офлайн-игра**: - `manifest.json` со всеми размерами иконок и standalone-режимом. - `sw.js` Service Worker с кэшированием всех файлов игры для мгновенного запуска без интернета. - Сгенерированные иконки 192x192, 512x512 и favicon.ico. - **Тестовый охват**: - **172/172 автотестов** проходят со 100% успехом в `scripts/test_game.py` и `window.PvZTestAPI`. - **Домен**: `https://ai.qpid.pro/` — полностью развернуто, работает без внешних зависимостей.