110 lines
3.9 KiB
Markdown
110 lines
3.9 KiB
Markdown
---
|
||
id: TASK-0008
|
||
title: Реализовать сетевой инвентарь и экипировку
|
||
summary: Сделать инвентарь персонажа с сетевой синхронизацией, слотами, стаками, переносом предметов и экипировкой.
|
||
priority: Highest
|
||
area: inventory
|
||
owner: unassigned
|
||
created: 2026-03-30
|
||
updated: 2026-03-30
|
||
execution_time: 1d
|
||
depends_on:
|
||
- TASK-0004
|
||
- TASK-0007
|
||
canonical_docs:
|
||
- docs/tasks/Index.md
|
||
related_files:
|
||
- Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity
|
||
---
|
||
|
||
# TASK-0008 - Реализовать сетевой инвентарь и экипировку
|
||
|
||
## Status
|
||
|
||
Статус задачи ведется в `docs/tasks/Index.md` и является каноническим там.
|
||
|
||
Допустимые значения статуса:
|
||
|
||
- `BackLog`
|
||
- `ToDo`
|
||
- `InProgress`
|
||
- `Review`
|
||
- `Done`
|
||
|
||
## Why
|
||
|
||
Инвентарь является обязательным требованием MVP и базой для оружия, книг скиллов, лута и сохранения прогресса персонажа.
|
||
|
||
## Expected Outcome
|
||
|
||
Персонаж имеет сетевой инвентарь и слоты экипировки, которые корректно сохраняются в player save и синхронизируются через сервер.
|
||
|
||
## Current Context
|
||
|
||
Система предметов и инвентаря пока отсутствует. Требования по разделению player/world saves уже вынесены в `TASK-0004`.
|
||
|
||
## Source Of Truth
|
||
|
||
- `docs/tasks/items/TASK-0004.md`
|
||
- `docs/tasks/items/TASK-0007.md`
|
||
- runtime inventory implementation
|
||
|
||
## Read First
|
||
|
||
- `docs/tasks/items/TASK-0004.md`
|
||
- `docs/tasks/items/TASK-0007.md`
|
||
|
||
## Scope In
|
||
|
||
- inventory slots и item stacks
|
||
- equip slots для оружия и связанных предметов
|
||
- сетевые операции перемещения и использования предметов
|
||
- сохранение inventory state в player save
|
||
|
||
## Scope Out
|
||
|
||
- полный UI polish для inventory
|
||
- торговля между игроками
|
||
|
||
## Constraints
|
||
|
||
- сервер валидирует изменения инвентаря
|
||
- инвентарь живет в player save, а не в world save
|
||
|
||
## If You Find Drift
|
||
|
||
- если предметы начинают храниться только в runtime world session без связи с player save, это drift
|
||
|
||
## Suggested Approach
|
||
|
||
1. Определить item model и inventory slot model.
|
||
2. Добавить equip slots и сетевые команды изменения состояния.
|
||
3. Связать систему с persistence layer и будущими книгами/оружием.
|
||
|
||
## Acceptance Criteria
|
||
|
||
- предметы можно положить в инвентарь, переместить и экипировать
|
||
- состояние инвентаря сохраняется вместе с персонажем
|
||
- сетевые операции не позволяют клиенту самовольно подменять server state
|
||
|
||
## Verification
|
||
|
||
- ручная проверка equip/unequip и перетаскивания предметов
|
||
- проверка сохранения и повторной загрузки player inventory
|
||
|
||
## Risks / Open Questions
|
||
|
||
- потребуется рано выбрать, поддерживаются ли частичные стаки книг и расходников в MVP
|
||
|
||
## Human Decisions Needed
|
||
|
||
- none currently
|
||
|
||
## Decision Log
|
||
|
||
- `2026-03-30` - инвентарь зафиксирован как отдельная сетево-персистентная подсистема, а не только UI.
|
||
|
||
## Handoff Notes
|
||
|
||
Оружие и книги должны входить в общий item model, а не жить отдельными ad-hoc сущностями.
|