Project

General

Profile

Actions

Task #1

open
AA ЮН

Feature #2: MVP Asteroids — полная реализация

Фаза 1 — Foundation (Core, DI, SaveService, Zenject)

Task #1: Фаза 1 — Foundation (Core, DI, SaveService, Zenject)

Added by AI Agent 18 days ago. Updated about 5 hours ago.

Status:
Ready for test
Priority:
Нормальный
Target version:
Start date:
06/30/2026
Due date:
% Done:

100%

Estimated time:

Description

Цель

Реализовать технический фундамент MVP согласно Фазе 1 из docs/implementation-phases.md, следуя AGENTS.md, docs/architecture-foundation.md и ADR-0002.

Контекст

Unity 2D top-down roguelike auto-shooter (Android). Фаза 1 — обязательный prerequisite для Combat slice. Не перескакивать на бой, RunController и UI.

Обязательные ADR и конвенции

  • ADR-0002: события — readonly struct, публикация через MessageBroker.Default (UniRx). Подписки — CompositeDisposable + IDisposable. Не использовать Zenject Signals.
  • Namespace: Asteroids.Core для Core-модуля
  • DI: сервисы AsSingle(); MonoBehaviour через installer (architecture-foundation.md §1)
  • Scope: минимальный diff; не трогать unrelated файлы; не трогать .codebase-memory/, .cursor-plugin/

Definition of Done (чеклист)

  • Asteroids.Core.asmdef создан; события в Assets/Scripts/Core/Events/ как readonly struct
  • ISaveService / SaveService сохраняет и загружает JSON в Application.persistentDataPath (architecture-foundation.md §6)
  • ProjectInstaller регистрирует SaveService, GameBalanceConfig (architecture-foundation.md §1)
  • Скелет BattleSceneInstaller без compile errors
  • Zenject resolves в Play Mode (нет ZenjectException в Console при старте сцены)

Детали реализации

Core / Events

  • Создать Asteroids.Core.asmdef с references: UniRx (architecture-foundation.md §7)
  • События в Assets/Scripts/Core/Events/ — immutable struct'ы по паттерну из architecture-foundation.md §2
  • Core содержит: события, интерфейсы (ISaveService, …), модели, enum'ы

Save System

  • MetaSaveData + ISaveService / SaveService — JSON в Application.persistentDataPath/meta_save.json
  • Заменяет заглушку SettingsController (полная миграция — в следующих фазах; на Foundation достаточно рабочего сервиса)

Zenject Installers

  • ProjectInstaller (ProjectContext): SaveService, GameBalanceConfig через FromInstance
  • BattleSceneInstaller (SceneContext на BattleScene): скелет без compile errors (полные биндинги RunController и др. — Фаза 3)

Assembly Definitions

  • Обновить Scripts.asmdef: добавить ссылки Asteroids.Core, Zenject, UniRx (architecture-foundation.md §7)

Документация для чтения перед стартом

  1. AGENTS.md
  2. docs/implementation-phases.md — Фаза 1
  3. docs/architecture-foundation.md — §1 DI, §2 Event Bus, §6 Save, §7 asmdef
  4. docs/adr/0002-messagebroker-vs-zenject-signals.md
  5. docs/setup-unity.md — при настройке сцен и контекстов в Editor

Не входит в фазу

  • RunController, бой, UI, WeaponSystem, враги, пулы (кроме заготовок в installer если нужны для compile)
  • Zenject Signals
  • Post-MVP из GDD

Критерий приёмки

Все пункты чеклиста DoD отмечены; Play Mode в BattleScene стартует без ZenjectException; проект компилируется.

AA Updated by AI Agent 18 days ago Actions #1

  • % Done changed from 0 to 90

Реализована Фаза 1 — Foundation:

  • Asteroids.Core.asmdef + события (GameEvents.cs), ISaveService/SaveService, MetaSaveData, конфиги SO
  • ProjectInstaller (SaveService + GameBalanceConfig) на ProjectContext.prefab
  • BattleSceneInstaller (скелет) + SceneContext на BattleScene
  • GameBalanceConfig.asset в Assets/Settings/Configs/Balance/
  • Scripts.asmdef: ссылка на Asteroids.Core

Осталось: проверить Play Mode в Unity Editor (нет ZenjectException).

AA Updated by AI Agent 18 days ago Actions #2

  • % Done changed from 90 to 100

Play Mode проверен — ZenjectException нет. Фаза 1 Foundation завершена.

AA Updated by AI Agent 18 days ago Actions #3

  • Assignee set to AI Agent
  • Parent task set to #2

Привязана к родительской задаче MVP #2 как Фаза 1 (Foundation).

AA Updated by AI Agent about 11 hours ago Actions #4

  • Status changed from Новая to Ready for test
  • Assignee changed from AI Agent to Юлия Нечаева

Код фазы 1 в репозитории (Core, SaveService, Zenject). DoD по docs/implementation-phases.md отмечен выполненным. Переведено в Ready for test для приёмки MVP.

AA Updated by AI Agent about 5 hours ago Actions #5

  • Target version set to MVP
Actions

Also available in: PDF Atom