Дополнение документации

This commit is contained in:
2026-06-11 16:07:32 +05:00
parent fd8c091872
commit 4eea1dcec7
3 changed files with 266 additions and 29 deletions

View File

@@ -2,25 +2,163 @@
## Game ## Game
Основной класс игры. Управляет игровым циклом, загрузкой данных, обработкой команд игрока, перемещением, взаимодействием с сундуками, NPC и боевой системой. Основной класс игры. Управляет игровым циклом, загрузкой данных, отображением карты, обработкой команд игрока, взаимодействием с объектами и переходами между локациями.
### Поля ### Поля
| Поле | Тип | Описание | | Поле | Тип | Описание |
|---|---|---| | ------------ | --------------------- | ---------------- |
| player | Player | Игрок | | player | Player | Игрок |
| locations | vector<Location> | Список игровых локаций | | locations | std::vector<Location> | Список локаций |
| itemDatabase | vector<Item> | База предметов | | itemDatabase | std::vector<Item> | База предметов |
| isRunning | bool | Флаг работы игры | | isRunning | bool | Флаг работы игры |
### Методы ### Методы
| Метод | Описание | | Метод | Назначение |
|---|---| | ----------------- | ---------------------------- |
| run() | Запускает игру | | run() | Запуск игры |
| loadLocations() | Загружает локации из файлов | | loadItems() | Загрузка предметов |
| loadItems() | Загружает предметы | | loadLocations() | Загрузка локаций |
| processCommand() | Обрабатывает команды игрока | | render() | Отрисовка текущего состояния |
| movePlayer() | Перемещает игрока | | processCommand() | Обработка команды игрока |
| openChest() | Открывает сундук | | movePlayer() | Перемещение игрока |
| startCombat() | Запускает бой | | handleTile() | Обработка клетки карты |
| solveRiddle() | Решение загадки |
| openChest() | Открытие сундука |
| interactWithNPC() | Взаимодействие с NPC |
| startCombat() | Запуск боя |
---
## Player
Класс игрока.
### Поля
| Поле | Тип | Описание |
| ---------------- | ----------- | ------------------------ |
| name | std::string | Имя персонажа |
| hp | int | Здоровье |
| maxHp | int | Максимальное здоровье |
| atk | int | Базовый урон |
| gold | int | Количество золота |
| currentLocation | int | Текущая локация |
| position | Point | Позиция на карте |
| inventory | Inventory | Инвентарь |
| equippedWeaponId | int | ID экипированного оружия |
### Методы
| Метод | Назначение |
| ------------- | ---------------------- |
| showStats() | Вывод характеристик |
| getDamage() | Расчёт итогового урона |
| usePotion() | Использование зелья |
| equipWeapon() | Экипировка оружия |
---
## Inventory
Инвентарь игрока.
### Поля
| Поле | Тип |
| ----- | -------------------------- |
| items | std::vector<InventorySlot> |
### Методы
| Метод | Назначение |
| ------------ | ------------------------- |
| addItem() | Добавление предмета |
| removeItem() | Удаление предмета |
| hasItem() | Проверка наличия предмета |
| show() | Вывод содержимого |
---
## Location
Игровая локация.
### Поля
| Поле | Назначение |
| --------------------- | ------------------------ |
| id | Уникальный идентификатор |
| title | Название |
| width | Ширина карты |
| height | Высота карты |
| map | ASCII-карта |
| startPosition | Стартовая позиция |
| north/south/east/west | Связи между локациями |
| riddle | Загадка |
| chests | Сундуки |
| npcs | NPC |
| enemies | Противники |
### Методы
| Метод | Назначение |
| -------------- | ---------------------------- |
| loadFromFile() | Загрузка локации |
| draw() | Отрисовка карты |
| isWalkable() | Проверка проходимости клетки |
| getTile() | Получение символа карты |
---
## NPC
Неигровой персонаж.
### Поля
| Поле | Назначение |
| ---------- | ------------------------ |
| id | Уникальный идентификатор |
| name | Имя |
| state | Состояние |
| hp | Здоровье |
| damage | Урон |
| dialogText | Основной текст диалога |
| options | Варианты ответов |
| position | Координаты |
| defeated | Флаг поражения |
### Методы
| Метод | Назначение |
| ------------------- | ------------------------- |
| loadFromFile() | Загрузка NPC |
| parseState() | Разбор состояния |
| parseDialogResult() | Разбор результата диалога |
---
## SaveManager
Система сохранения и загрузки игры.
### Методы
| Метод | Назначение |
| ---------- | --------------- |
| saveGame() | Сохранение игры |
| loadGame() | Загрузка игры |
---
## Logger
Система журналирования событий.
### Методы
| Метод | Назначение |
| ----- | ------------------------- |
| log() | Запись события в лог-файл |

View File

@@ -4,26 +4,125 @@
Перемещает игрока на указанное смещение. Перемещает игрока на указанное смещение.
### Входные данные ### Параметры
| Параметр | Тип | Описание | | Имя | Тип | Описание |
|---|---|---| | --- | --- | ----------------- |
| dx | int | Смещение по X | | dx | int | Смещение по оси X |
| dy | int | Смещение по Y | | dy | int | Смещение по оси Y |
### Возвращаемое значение ### Возвращаемое значение
Метод ничего не возвращает. Отсутствует.
--- ---
## Player::usePotion(int itemId, const vector<Item>& itemDatabase) ## Game::solveRiddle(Location& location)
Использует зелье из инвентаря игрока. Отображает загадку игроку и проверяет введённый ответ.
### Входные данные ### Параметры
| Параметр | Тип | Описание | | Имя | Тип |
|---|---|---| | -------- | --------- |
| itemId | int | ID предмета | | location | Location& |
| itemDatabase | vector<Item> | База всех предметов |
### Возвращаемое значение
| Тип | Описание |
| ---- | -------------------------- |
| bool | true при правильном ответе |
---
## Player::usePotion(int itemId, const std::vector<Item>& itemDatabase)
Использует выбранное зелье из инвентаря.
### Параметры
| Имя | Тип |
| ------------ | ----------------- |
| itemId | int |
| itemDatabase | std::vector<Item> |
---
## Player::equipWeapon(int itemId, const std::vector<Item>& itemDatabase)
Экипирует выбранное оружие.
### Параметры
| Имя | Тип |
| ------------ | ----------------- |
| itemId | int |
| itemDatabase | std::vector<Item> |
---
## Inventory::addItem(int itemId, int count)
Добавляет предмет в инвентарь.
### Параметры
| Имя | Тип |
| ------ | --- |
| itemId | int |
| count | int |
---
## Inventory::removeItem(int itemId, int count)
Удаляет предмет из инвентаря.
### Параметры
| Имя | Тип |
| ------ | --- |
| itemId | int |
| count | int |
### Возвращаемое значение
| Тип | Описание |
| ---- | ------------------- |
| bool | Успешность операции |
---
## Location::loadFromFile(const std::string& path)
Загружает данные локации из файла.
### Параметры
| Имя | Тип |
| ---- | ----------- |
| path | std::string |
### Возвращаемое значение
| Тип |
| ---- |
| bool |
---
## NPC::loadFromFile(const std::string& path)
Загружает параметры NPC из текстового файла.
### Параметры
| Имя | Тип |
| ---- | ----------- |
| path | std::string |
### Возвращаемое значение
| Тип |
| ---- |
| bool |

0
git Normal file
View File