--- id: TASK-0011 title: Сделать базовую модель классов персонажей summary: Подготовить общую систему классов персонажей и канонические точки различия для Воина, Мага и Лучника в MVP. priority: High area: characters owner: unassigned created: 2026-03-30 updated: 2026-03-30 execution_time: 1d depends_on: - TASK-0007 - 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 --- # TASK-0011 - Сделать базовую модель классов персонажей ## Status Статус задачи ведется в `docs/tasks/Index.md` и является каноническим там. Допустимые значения статуса: - `BackLog` - `ToDo` - `InProgress` - `Review` - `Done` ## Why Нужен общий классовый каркас, чтобы Воин, Маг и Лучник были не тремя отдельными исключениями, а вариациями одной системы. ## Expected Outcome Есть базовая модель персонажа, где класс задает стартовые параметры, совместимые archetype-ограничения и стартовый набор оружия/скиллов для MVP. ## Current Context Пока нет классового слоя. Система атрибутов отдельно зафиксирована в `docs/gameplay/attribute-system-gdd.md`, а ее runtime-интеграция выделена в `docs/tasks/items/TASK-0027.md`. Конкретные умения по классам вынесены в отдельные задачи ниже. ## Source Of Truth - `docs/tasks/items/TASK-0007.md` - `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 - `docs/tasks/items/TASK-0007.md` - `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 ## Scope Out - глубокие talent trees - десятки классов и subclass-системы ## Constraints - различия классов должны строиться поверх общих систем, а не через форки кода - выбор класса должен сохраняться в player save - классовые стартовые параметры и identity должны опираться на общую систему атрибутов ## If You Find Drift - если class-specific код начинает обходить общую weapon/skill system, это drift ## Suggested Approach 1. Определить базовую class definition модель. 2. Связать класс с системой атрибутов, стартовыми характеристиками и стартовым loadout. 3. Подготовить интеграцию с character selection menu и отдельными skill tasks. ## Acceptance Criteria - в системе существуют Воин, Маг и Лучник как валидные классы персонажа - каждый класс имеет явную связь с канонической системой атрибутов - класс влияет на стартовую конфигурацию без дублирования core systems - класс можно выбрать и сохранить в player profile ## Verification - ручная проверка создания персонажей трех классов - вычитка, что классы не ломают абстракции оружия и скиллов ## Risks / Open Questions - нужно определить, насколько жестко класс ограничивает тип оружия в MVP - нужно определить, где именно хранить class affinity к атрибутам: в class definition, стартовом профиле или в обоих слоях ## Human Decisions Needed - none currently ## Decision Log - `2026-03-30` - общий классовый каркас выделен до конкретных отдельных навыков Воина, Мага и Лучника. - `2026-04-09` - классовая модель явно привязана к канонической системе атрибутов и отдельной задаче на ее runtime-внедрение. ## Handoff Notes Следующие три задачи должны реализовывать MVP-навыки классов без расширения рамок beyond MVP.