diff --git a/docs/classes.md b/docs/classes.md index 5ebc503..b884c3f 100644 --- a/docs/classes.md +++ b/docs/classes.md @@ -2,25 +2,163 @@ ## Game -Основной класс игры. Управляет игровым циклом, загрузкой данных, обработкой команд игрока, перемещением, взаимодействием с сундуками, NPC и боевой системой. +Основной класс игры. Управляет игровым циклом, загрузкой данных, отображением карты, обработкой команд игрока, взаимодействием с объектами и переходами между локациями. ### Поля -| Поле | Тип | Описание | -|---|---|---| -| player | Player | Игрок | -| locations | vector | Список игровых локаций | -| itemDatabase | vector | База предметов | -| isRunning | bool | Флаг работы игры | +| Поле | Тип | Описание | +| ------------ | --------------------- | ---------------- | +| player | Player | Игрок | +| locations | std::vector | Список локаций | +| itemDatabase | std::vector | База предметов | +| isRunning | bool | Флаг работы игры | ### Методы -| Метод | Описание | -|---|---| -| run() | Запускает игру | -| loadLocations() | Загружает локации из файлов | -| loadItems() | Загружает предметы | -| processCommand() | Обрабатывает команды игрока | -| movePlayer() | Перемещает игрока | -| openChest() | Открывает сундук | -| startCombat() | Запускает бой | \ No newline at end of file +| Метод | Назначение | +| ----------------- | ---------------------------- | +| 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 | + +### Методы + +| Метод | Назначение | +| ------------ | ------------------------- | +| 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() | Запись события в лог-файл | diff --git a/docs/methods.md b/docs/methods.md index 60ef5f9..dbc8f09 100644 --- a/docs/methods.md +++ b/docs/methods.md @@ -4,26 +4,125 @@ Перемещает игрока на указанное смещение. -### Входные данные +### Параметры -| Параметр | Тип | Описание | -|---|---|---| -| dx | int | Смещение по X | -| dy | int | Смещение по Y | +| Имя | Тип | Описание | +| --- | --- | ----------------- | +| dx | int | Смещение по оси X | +| dy | int | Смещение по оси Y | ### Возвращаемое значение -Метод ничего не возвращает. +Отсутствует. --- -## Player::usePotion(int itemId, const vector& itemDatabase) +## Game::solveRiddle(Location& location) -Использует зелье из инвентаря игрока. +Отображает загадку игроку и проверяет введённый ответ. -### Входные данные +### Параметры -| Параметр | Тип | Описание | -|---|---|---| -| itemId | int | ID предмета | -| itemDatabase | vector | База всех предметов | \ No newline at end of file +| Имя | Тип | +| -------- | --------- | +| location | Location& | + +### Возвращаемое значение + +| Тип | Описание | +| ---- | -------------------------- | +| bool | true при правильном ответе | + +--- + +## Player::usePotion(int itemId, const std::vector& itemDatabase) + +Использует выбранное зелье из инвентаря. + +### Параметры + +| Имя | Тип | +| ------------ | ----------------- | +| itemId | int | +| itemDatabase | std::vector | + +--- + +## Player::equipWeapon(int itemId, const std::vector& itemDatabase) + +Экипирует выбранное оружие. + +### Параметры + +| Имя | Тип | +| ------------ | ----------------- | +| itemId | int | +| itemDatabase | std::vector | + +--- + +## 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 | diff --git a/git b/git new file mode 100644 index 0000000..e69de29