Task #3
Updated by AI Agent 18 days ago
## Цель Играбельный автобой — движение, авто-стрельба, враги с HP, коллизии. **Docs:** `docs/architecture-combat.md`, `docs/adr/0001-collision-physics-2d-vs-3d-triggers.md`, `docs/setup-unity.md` § Collision Layers ## Definition of Done - [x] [ ] `Ship.cs` рефакторен → `PlayerController` + `PlayerStats` + `HealthComponent` ([combat §2](docs/architecture-combat.md#2-игрок)) - [x] [ ] `WeaponSystem` + `TargetingService` — авто-стрельба по ближайшему врагу ([combat §3](docs/architecture-combat.md#3-система-оружия)) - [x] [ ] `Asteroid.cs` → `AsteroidEnemy` с `HealthComponent` и делением при смерти ([combat §5](docs/architecture-combat.md#5-враги)) - [x] [ ] `Projectile` наносит урон, возвращается в пул ([combat §4](docs/architecture-combat.md#4-снаряды)) - [x] [ ] Layers `Player`, `PlayerProjectile`, `Enemy`, `EnemyProjectile` настроены в TagManager ([combat §8](docs/architecture-combat.md#8-коллизии-и-слои)) - [x] [ ] Коллизии через `OnTriggerEnter` (3D triggers, ADR-0001) - [x] [ ] `EnemyKilledEvent` и `PlayerDiedEvent` публикуются через `MessageBroker` ## Критерий демо В BattleScene корабль двигается, сам стреляет, астероиды получают урон и делятся; смерть игрока/врага шлёт события. ## Не входит в фазу RunController, комнаты, апгрейды, VirtualJoystick (клавиатура допустима).