---
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.
