110 lines
3.8 KiB
Markdown
110 lines
3.8 KiB
Markdown
---
|
||
id: TASK-0009
|
||
title: Ввести абстрактную систему оружия
|
||
summary: Реализовать общую модель оружия с базовыми параметрами, уровнем, типом атаки и точками расширения для разных классов и вставляемых скиллов.
|
||
priority: Highest
|
||
area: equipment
|
||
owner: unassigned
|
||
created: 2026-03-30
|
||
updated: 2026-03-30
|
||
execution_time: 1d
|
||
depends_on:
|
||
- TASK-0007
|
||
- TASK-0008
|
||
canonical_docs:
|
||
- docs/tasks/Index.md
|
||
related_files:
|
||
- Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity
|
||
---
|
||
|
||
# TASK-0009 - Ввести абстрактную систему оружия
|
||
|
||
## Status
|
||
|
||
Статус задачи ведется в `docs/tasks/Index.md` и является каноническим там.
|
||
|
||
Допустимые значения статуса:
|
||
|
||
- `BackLog`
|
||
- `ToDo`
|
||
- `InProgress`
|
||
- `Review`
|
||
- `Done`
|
||
|
||
## Why
|
||
|
||
Пользователь требует абстрактное оружие. Оно должно быть совместимо с инвентарем, уровнями, классами и книгами скиллов.
|
||
|
||
## Expected Outcome
|
||
|
||
Есть канонический weapon contract: общие параметры, level scaling, attack execution hooks и слот(ы) для встроенных skill books.
|
||
|
||
## Current Context
|
||
|
||
Оружия пока нет. Его нельзя проектировать отдельно от боевой модели и инвентаря.
|
||
|
||
## Source Of Truth
|
||
|
||
- `docs/tasks/items/TASK-0007.md`
|
||
- `docs/tasks/items/TASK-0008.md`
|
||
- runtime weapon implementation
|
||
|
||
## Read First
|
||
|
||
- `docs/tasks/items/TASK-0007.md`
|
||
- `docs/tasks/items/TASK-0008.md`
|
||
|
||
## Scope In
|
||
|
||
- абстрактная база оружия
|
||
- общие боевые параметры и level scaling
|
||
- execution hooks для удара, выстрела, каста и модификаторов
|
||
- связь оружия с inventory/equip и skill sockets
|
||
|
||
## Scope Out
|
||
|
||
- реализация конкретных class skills
|
||
- контентное разнообразие десятков weapon archetypes
|
||
|
||
## Constraints
|
||
|
||
- оружие должно использовать общую combat formula
|
||
- weapon runtime не должен дублировать систему навыков или инвентаря
|
||
|
||
## If You Find Drift
|
||
|
||
- если разные типы оружия начнут обходить общую базу и считать урон отдельно, это drift
|
||
|
||
## Suggested Approach
|
||
|
||
1. Выделить `WeaponDefinition` и `WeaponRuntime` уровни.
|
||
2. Зафиксировать common attack contract и level scaling.
|
||
3. Подготовить слоты под книги/скиллы без избыточной специализации.
|
||
|
||
## Acceptance Criteria
|
||
|
||
- есть единый базовый контракт оружия
|
||
- уровень оружия влияет на боевые расчеты по правилам из combat core
|
||
- оружие может быть экипировано персонажем через inventory/equipment layer
|
||
|
||
## Verification
|
||
|
||
- ручная проверка базового выполнения weapon action
|
||
- вычитка интеграции с inventory и progression
|
||
|
||
## Risks / Open Questions
|
||
|
||
- потребуется быстро решить, хранится ли skill socket внутри самого weapon item или в отдельном equipment state
|
||
|
||
## Human Decisions Needed
|
||
|
||
- none currently
|
||
|
||
## Decision Log
|
||
|
||
- `2026-03-30` - уровень оружия включен в базовый weapon task, а не вынесен отдельно.
|
||
|
||
## Handoff Notes
|
||
|
||
Class skill задачи ниже должны использовать этот weapon contract как обязательную базу.
|