Files
ASCII-G/docs/classes.md

165 lines
6.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Документация классов
## 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() | Запись события в лог-файл |