Files
obsidian-life/мусор.md
Aleksandr Ebaklakov 011626b8b7 Initial commit
2026-04-22 16:58:43 +03:00

6.4 KiB
Raw Blame History

CRC карточки проекта DeliverySystem

<style> table { width: 100%; border-collapse: collapse; margin-bottom: 20px; } th, td { border: 1px solid #ddd; padding: 8px; } th[colspan="2"] { background-color: #333; color: white; } </style>
GameEngine
Обязанности Взаимодействия
1. Управление игровым процессом и бизнес-логикой.
2. Обработка команд игрока: движение по компасным направлениям.
3. Взаимодействие с объектами в комнате (открытие, отпирание контейнеров).
4. Связывание действий UI с изменениями состояния моделей.
5. Оповещение слушателей об игровых событиях и изменениях состояния.
Player
Room
Direction
Container
Key
Door
MapSerializer
Обязанности Взаимодействия
1. Сохранение графа комнат в JSON-файл.
2. Загрузка графа из JSON-файла обратно в игровые объекты.
3. Валидация связей между дверьми при загрузке.
4. Конвертация игровых объектов в DTO и обратно.
Room
Door
Container
Key
DTO-модели (MapDTO, RoomDTO, DoorDTO, ItemDTO)
Player
Обязанности Взаимодействия
1. Хранение инвентаря (рюкзака) с предметами.
2. Запоминание текущей комнаты.
3. Добавление и удаление предметов из рюкзака.
4. Поиск ключа по идентификатору в рюкзаке.
Room
IItem
Key
Room
Обязанности Взаимодействия
1. Хранение описания окружения.
2. Хранение словаря дверей по направлениям.
3. Хранение списка интерактивных объектов внутри комнаты.
4. Формирование полного текстового описания комнаты для игрока.
Door
Direction
GameObject
Door
Обязанности Взаимодействия
1. Предоставление логического перехода в другую комнату.
2. Блокировка прохода, если дверь заперта.
3. Проверка переданного ключа на соответствие RequiredKeyId.
4. Открывание и запирание замка по подходящему ключу.
Room
Key
ILockable
Container (Chest, Wardrobe)
Обязанности Взаимодействия
1. Хранение списка предметов IItem внутри себя.
2. Поддержка внутреннего состояния: открыт / закрыт.
3. Поддержка состояния замка: заперт / отперт.
4. Разрешение открытия только при отсутствии замка или наличии верного ключа.
5. Управление содержимым: добавление и извлечение предметов.
GameObject
ILockable
IItem
Key
Key
Обязанности Взаимодействия
1. Представление предмета, который можно поднять с пола.
2. Хранение уникального идентификатора для отпирания замков.
3. Предоставление идентификатора дверям и контейнерам для проверки.
GameObject
IItem