diff --git a/docs/tasks/Index.md b/docs/tasks/Index.md index b9f73ee6..1321f068 100644 --- a/docs/tasks/Index.md +++ b/docs/tasks/Index.md @@ -66,3 +66,4 @@ | TASK-0024 | ToDo | Highest | art | unassigned | 2d | docs/tasks/items/TASK-0024.md | Заменить Minecraft-placeholder арт на легальные ассеты для продакшена и зафиксировать источник/лицензии. | | TASK-0025 | ToDo | Highest | build | unassigned | 1d | docs/tasks/items/TASK-0025.md | Описать и зафиксировать flow локального теста билда: сборка, запуск, host/client сценарий и обязательный smoke checklist. | | TASK-0026 | BackLog | High | ui | unassigned | 2d | docs/tasks/items/TASK-0026.md | Реализовать миникарту и механизм сохранения открытой карты у хоста так, чтобы состояние миникарты было общим для всех игроков мира. | +| TASK-0027 | ToDo | Highest | gameplay-core | unassigned | 1d | docs/tasks/items/TASK-0027.md | Реализовать пять канонических атрибутов, их derived combat scaling и интеграцию с классами Воина, Мага и Лучника. | diff --git a/docs/tasks/items/TASK-0011.md b/docs/tasks/items/TASK-0011.md index 4416f71d..6f8b4fc6 100644 --- a/docs/tasks/items/TASK-0011.md +++ b/docs/tasks/items/TASK-0011.md @@ -13,8 +13,10 @@ depends_on: - TASK-0008 - TASK-0009 - TASK-0010 + - TASK-0027 canonical_docs: - docs/tasks/Index.md + - docs/gameplay/attribute-system-gdd.md related_files: - Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity --- @@ -43,7 +45,7 @@ related_files: ## Current Context -Пока нет классового слоя. Конкретные умения по классам вынесены в отдельные задачи ниже. +Пока нет классового слоя. Система атрибутов отдельно зафиксирована в `docs/gameplay/attribute-system-gdd.md`, а ее runtime-интеграция выделена в `docs/tasks/items/TASK-0027.md`. Конкретные умения по классам вынесены в отдельные задачи ниже. ## Source Of Truth @@ -51,6 +53,8 @@ related_files: - `docs/tasks/items/TASK-0008.md` - `docs/tasks/items/TASK-0009.md` - `docs/tasks/items/TASK-0010.md` +- `docs/gameplay/attribute-system-gdd.md` +- `docs/tasks/items/TASK-0027.md` ## Read First @@ -58,10 +62,13 @@ related_files: - `docs/tasks/items/TASK-0008.md` - `docs/tasks/items/TASK-0009.md` - `docs/tasks/items/TASK-0010.md` +- `docs/gameplay/attribute-system-gdd.md` +- `docs/tasks/items/TASK-0027.md` ## Scope In - базовая class definition для персонажа +- интеграция class definition с каноническими атрибутами и их приоритетами - стартовые параметры и ограничения экипировки - выбор класса в рамках player profile - точки расширения для классовых навыков MVP @@ -75,6 +82,7 @@ related_files: - различия классов должны строиться поверх общих систем, а не через форки кода - выбор класса должен сохраняться в player save +- классовые стартовые параметры и identity должны опираться на общую систему атрибутов ## If You Find Drift @@ -83,12 +91,13 @@ related_files: ## Suggested Approach 1. Определить базовую class definition модель. -2. Связать класс со стартовыми характеристиками и стартовым loadout. +2. Связать класс с системой атрибутов, стартовыми характеристиками и стартовым loadout. 3. Подготовить интеграцию с character selection menu и отдельными skill tasks. ## Acceptance Criteria - в системе существуют Воин, Маг и Лучник как валидные классы персонажа +- каждый класс имеет явную связь с канонической системой атрибутов - класс влияет на стартовую конфигурацию без дублирования core systems - класс можно выбрать и сохранить в player profile @@ -100,6 +109,7 @@ related_files: ## Risks / Open Questions - нужно определить, насколько жестко класс ограничивает тип оружия в MVP +- нужно определить, где именно хранить class affinity к атрибутам: в class definition, стартовом профиле или в обоих слоях ## Human Decisions Needed @@ -108,6 +118,7 @@ related_files: ## Decision Log - `2026-03-30` - общий классовый каркас выделен до конкретных отдельных навыков Воина, Мага и Лучника. +- `2026-04-09` - классовая модель явно привязана к канонической системе атрибутов и отдельной задаче на ее runtime-внедрение. ## Handoff Notes diff --git a/docs/tasks/items/TASK-0027.md b/docs/tasks/items/TASK-0027.md new file mode 100644 index 00000000..ebac5a29 --- /dev/null +++ b/docs/tasks/items/TASK-0027.md @@ -0,0 +1,123 @@ +--- +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 +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. + +## Current Context + +Канонический GDD по атрибутам уже зафиксирован в `docs/gameplay/attribute-system-gdd.md`, но отдельной реализации и явной интеграции с class model пока нет. Эта задача закрывает разрыв между design intent и runtime-моделью. + +## Source Of Truth + +- `docs/gameplay/attribute-system-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/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 по каноническим направлениям +- стартовые или базовые классовые приоритеты атрибутов для Воина, Мага и Лучника +- интеграция атрибутов в 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 +- классы Воин, Маг и Лучник имеют явную интеграцию с системой атрибутов +- 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.