GameActions.tsx

Обзор

Компонент GameActions.tsx реализует пользовательский интерфейс для выбора и выполнения различных игровых действий в приложении. Он отображает набор игровых опций с их стоимостью, описаниями, иконками и наградами, а также управляет логикой выполнения выбранного действия с учётом текущего состояния игрока (например, баланса маны и загрузки). Все действия выполняются "газлесс" — без платы за транзакции, что обеспечивается через интеграцию с провайдером GameProvider.


Подробное описание

Компонент: GameActions

Функциональный React-компонент, отвечающий за отображение кнопок с игровыми действиями и управление их выполнением.

Используемые хуки и провайдеры

Основные данные

Массив actions содержит описание доступных игровых действий:

id

title

description

icon

cost

disabled условие

reward

quick_pvp

Quick PvP

Быстрый PvP матч

Sword

50

player.manaBalance < 50

150 MANA + рейтинг

quick_craft

Quick Craft

Быстрая крафтинг мгновенно

Hammer

100

player.manaBalance < 100

Случайный предмет

marketplace_buy

Buy Item

Покупка случайного предмета

ShoppingCart

75

player.manaBalance < 75

Предмет с рынка

complete_quest

Complete Quest

Завершение ежедневного квеста

Gift

0

всегда доступно

200 MANA + опыт

Функция: handleAction(actionId: string): Promise<void>

Асинхронная функция, вызываемая при клике на кнопку действия. Логика:

Параметры
Возвращает
Пример использования
// Внутри компонента:
<button onClick={() => handleAction('quick_pvp')}>Quick PvP</button>

Визуальное отображение


Важные детали реализации


Взаимодействие с другими частями системы


Диаграмма структуры компонента

classDiagram
    class GameActions {
        - player: Player | null
        - selectedAction: string | null
        - isLoading: boolean
        + handleAction(actionId: string): Promise<void>
        + render(): JSX.Element | null
    }

    GameActions ..> useGame : uses
    GameActions ..> useState : uses
    GameActions --> Sword
    GameActions --> Hammer
    GameActions --> ShoppingCart
    GameActions --> Gift
    GameActions --> Zap
    GameActions --> Clock
    GameActions --> CheckCircle
    GameActions --> AlertCircle
    GameActions --> InstantActionTooltip
    GameActions --> ValidatorSecurityTooltip

Итог

Файл GameActions.tsx предоставляет интуитивно понятный и визуально привлекательный интерфейс для запуска различных игровых действий с мгновенным выполнением и прозрачной системой затрат/наград. Его тесная связь с GameProvider и использование современных React-паттернов позволяют легко расширять и интегрировать эту функциональность в более крупное игровое приложение.