--- id: TASK-0027 title: Реализовать систему атрибутов и интеграцию с классами summary: Ввести пять канонических атрибутов персонажа, их derived combat scaling и привязать классы Воина, Мага и Лучника к своим стартовым и приоритетным статам. priority: Highest area: gameplay-core owner: unassigned created: 2026-04-09 updated: 2026-04-09 execution_time: 1d depends_on: - TASK-0007 canonical_docs: - docs/tasks/Index.md - docs/gameplay/attribute-system-gdd.md - docs/gameplay/attribute-reference.md - docs/gameplay/stat-catalog-mvp.md - docs/gameplay/combat-resolution-gdd.md related_files: - Assets/Features/ - Assets/Scripts/ --- # TASK-0027 - Реализовать систему атрибутов и интеграцию с классами ## Status Статус задачи ведется в `docs/tasks/Index.md` и является каноническим там. Допустимые значения статуса: - `BackLog` - `ToDo` - `InProgress` - `Review` - `Done` ## Why Combat core и классовая система пока не имеют канонической runtime-модели атрибутов. Без этого классы останутся набором стартовых исключений, а боевые формулы не получат устойчивую точку расширения для билдов, оружия и навыков. ## Expected Outcome В проекте существует единая система пяти атрибутов: `Мощь`, `Ловкость`, `Фокус`, `Стойкость`, `Мастерство`. Атрибуты конвертируются в понятные боевые эффекты, а классы Воин, Маг и Лучник используют их как часть стартовой конфигурации и class identity. Ресурсная модель явно разделяет `HP`, `Stamina` и `Mana`, причем у каждого ресурса есть свое автопополнение. ## Current Context Канонический GDD по атрибутам уже зафиксирован в `docs/gameplay/attribute-system-gdd.md`, но отдельной реализации и явной интеграции с class model пока нет. Эта задача закрывает разрыв между design intent и runtime-моделью. ## Source Of Truth - `docs/gameplay/attribute-system-gdd.md` - `docs/gameplay/attribute-reference.md` - `docs/gameplay/stat-catalog-mvp.md` - `docs/gameplay/combat-resolution-gdd.md` - `docs/tasks/items/TASK-0007.md` - `docs/tasks/items/TASK-0011.md` - runtime реализация combat stats и class definitions ## Read First - `docs/gameplay/attribute-system-gdd.md` - `docs/gameplay/attribute-reference.md` - `docs/gameplay/stat-catalog-mvp.md` - `docs/gameplay/combat-resolution-gdd.md` - `docs/tasks/items/TASK-0007.md` - `docs/tasks/items/TASK-0009.md` - `docs/tasks/items/TASK-0010.md` - `docs/tasks/items/TASK-0011.md` ## Scope In - базовая runtime-модель пяти атрибутов персонажа - конвертация атрибутов в derived combat stats по каноническим направлениям - явное разделение `HP`, `Stamina` и `Mana` как разных runtime resource pools - автопополнение для `HP`, `Stamina` и `Mana` - стартовые или базовые классовые приоритеты атрибутов для Воина, Мага и Лучника - интеграция атрибутов в class definition и стартовую конфигурацию персонажа - точки расширения для weapon scaling, skill scaling и будущих гибридных классов ## Scope Out - глубокая UI-визуализация всех статов и их breakdown на каждом экране - полноценная talent tree или perk-система - тонкая финальная балансировка числовых коэффициентов для late game ## Constraints - реализовывать только пять канонических атрибутов из `docs/gameplay/attribute-system-gdd.md` - не сливать offensive pressure и survivability в один стат - `Мастерство` должно усиливать class-specific специализацию, а не заменять основной стат класса - классы должны использовать общую систему атрибутов, а не отдельные class-only формулы ## If You Find Drift - если код урона, оружия или навыков начинает обходить общую attribute-конвертацию, это drift - если классы получают уникальные скрытые статы вместо работы через общую модель атрибутов, это drift ## Suggested Approach 1. Ввести каноническую runtime-структуру для пяти атрибутов персонажа. 2. Зафиксировать derived combat stats и правила конверсии без избыточного усложнения формул. 3. Добавить в class definitions стартовые значения, приоритеты или affinity по атрибутам для Воина, Мага и Лучника. 4. Проверить, что оружие и навыки могут опираться на эти атрибуты без class-specific обходов. ## Acceptance Criteria - в системе существуют `Мощь`, `Ловкость`, `Фокус`, `Стойкость`, `Мастерство` как канонические runtime-атрибуты - атрибуты влияют на боевые параметры по правилам, совместимым с GDD - `HP`, `Stamina` и `Mana` существуют как разные runtime resource pools - у `HP`, `Stamina` и `Mana` есть отдельные механики автопополнения - классы Воин, Маг и Лучник имеют явную интеграцию с системой атрибутов - downstream системы могут использовать атрибуты без дублирования class-specific формул ## Verification - вычитка runtime-модели против `docs/gameplay/attribute-system-gdd.md` - ручная проверка, что классы получают разные стартовые stat priorities - ручная проверка, что derived stats меняются от изменения атрибутов по ожидаемым направлениям ## Risks / Open Questions - нужно решить, какие именно конверсии будут обязательными уже в MVP, а какие можно оставить extension points - нужно не перегрузить class model слишком ранней детализацией формул ## Human Decisions Needed - none currently ## Decision Log - `2026-04-09` - задача добавлена после фиксации канонического GDD по атрибутам. ## Handoff Notes Если позже появятся формульные документы по MVP-коэффициентам, они должны уточнять эту задачу, но не подменять канонический смысл атрибутов из GDD.