165 lines
6.2 KiB
Markdown
165 lines
6.2 KiB
Markdown
# Документация классов
|
||
|
||
## Game
|
||
|
||
Основной класс игры. Управляет игровым циклом, загрузкой данных, отображением карты, обработкой команд игрока, взаимодействием с объектами и переходами между локациями.
|
||
|
||
### Поля
|
||
|
||
| Поле | Тип | Описание |
|
||
| ------------ | --------------------- | ---------------- |
|
||
| player | Player | Игрок |
|
||
| locations | std::vector<Location> | Список локаций |
|
||
| itemDatabase | std::vector<Item> | База предметов |
|
||
| isRunning | bool | Флаг работы игры |
|
||
|
||
### Методы
|
||
|
||
| Метод | Назначение |
|
||
| ----------------- | ---------------------------- |
|
||
| run() | Запуск игры |
|
||
| loadItems() | Загрузка предметов |
|
||
| loadLocations() | Загрузка локаций |
|
||
| render() | Отрисовка текущего состояния |
|
||
| processCommand() | Обработка команды игрока |
|
||
| movePlayer() | Перемещение игрока |
|
||
| 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() | Запись события в лог-файл |
|