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

Назначение

Отображение результатов служит для информирования игрока о итогах завершившегося боя. Эта часть интерфейса решает задачу наглядного представления подробной статистики по сражению, изменений в игровых ресурсах (например, мана), а также полученных достижений. Благодаря этому игрок получает обратную связь о своих успехах или неудачах, что способствует мотивации и лучшему пониманию игрового процесса.

Функциональность

Основная функциональность заключается в визуализации итогов боя с акцентом на ключевые данные:

Для реализации используется React-компонент BattleResultPage, который принимает текущее состояние игры, извлекает из него данные боя и формирует удобный для восприятия интерфейс.

Пример ключевого фрагмента, определяющего статус результата:

const isVictory = battleLog.winner === 'player';
const isDefeat = battleLog.winner === 'opponent';

Далее, на основе этих булевых переменных, формируется отображение заголовка и стилей для различных блоков.

Визуализация логики стихийного противостояния происходит через цвета и эмодзи, взятые из константы ELEMENTS:

<div
  className='element-battle-emoji'
  style={{ color: ELEMENTS[battleLog.playerElement].color }}
>
  {ELEMENTS[battleLog.playerElement].emoji}
</div>

Это позволяет быстро и интуитивно показать выбор стихий обеих сторон и исход их взаимодействия.

Взаимосвязь с основной механикой и другими подмодулями

Отображение результатов является завершающим этапом процесса пошаговой битвы элементалей. Оно тесно интегрируется с:

Новизна данного подмодуля заключается в глубокой детализации боевого лога с разбивкой по элементам, защите и итоговым подсчетам ресурсов, что не покрывается в общей механике или анимациях. Это повышает прозрачность результатов и способствует лучшему пониманию игроком последствий своих действий.

Диаграмма процесса отображения результатов

flowchart TD
    BattleEnd[Завершение боя]
    FetchData[Получение данных боя из gameState]
    CheckData{Данные боя доступны?}
    RenderResult[Отрисовка результата боя]
    ShowStats[Отображение статистики и ресурсов]
    ShowBattleLog[Отображение детального лога боя]
    UserAction[Действия пользователя]
    ReturnToMenu[Возврат в меню/выбор боя]

    BattleEnd --> FetchData --> CheckData
    CheckData -->|Да| RenderResult
    CheckData -->|Нет| UserAction
    RenderResult --> ShowStats --> ShowBattleLog --> UserAction
    UserAction --> ReturnToMenu

Эта диаграмма отражает основной поток работы компонента отображения результатов: после окончания боя происходит получение и проверка данных, затем формируется интерфейс с итогами и подробным боевым журналом, после чего пользователю предоставляется выбор дальнейших действий (например, начать новый бой).