Обучение и поддержка игрока

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


Основные компоненты модуля

1. Пошаговые туториалы (StepByStepTutorial.tsx и TutorialTooltip.tsx)

Концепция и назначение

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

Как работает StepByStepTutorial

Компонент StepByStepTutorial реализует интерактивный туториал с подсветкой элементов и позиционированными подсказками (tooltip). Он:

// Пример описания шага туториала
{
  id: 'element-select',
  targetSelector: '.element-grid .element-btn.focused',
  title: 'Step 2: Choose Element',
  description: 'Click on Fire to select it!',
  phase: 'elementSelection',
  position: 'bottom',
  actionRequired: true,
  triggerNext: 'click',
}

Особенности StepByStepTutorial

Компонент TutorialTooltip

В дополнение к StepByStepTutorial существует более простой компонент TutorialTooltip, который отображает последовательность подсказок без подсветки элементов. Он служит для общих обучающих сообщений и может использоваться для других разделов, например, коллекции.


2. Уведомления о достижениях (AchievementNotification.tsx)

Назначение

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

Принцип работы

// Структура уведомления
<div className={`achievement-notification ${isVisible ? 'show' : ''}`}>
  <div className='achievement-popup'>
    <div className='achievement-popup-icon'>{achievement.icon}</div>
    <div className='achievement-popup-text'>
      <div className='achievement-popup-title'>Achievement Unlocked!</div>
      <div className='achievement-popup-name'>{achievement.name}</div>
      <div className='achievement-popup-desc'>{achievement.desc}</div>
    </div>
  </div>
</div>

3. Настройки и справка (SettingsTab.tsx и RulesPage.tsx)

Назначение

Раздел настроек предоставляет игроку возможность управлять параметрами игры (например, громкостью музыки), просматривать правила и запускать обучающие туториалы по требованию.

Основные функции SettingsTab

Компонент RulesPage

Отображает подробные правила игры с возможностью возврата в настройки.


Взаимодействие компонентов и логика работы модуля


Визуализация работы пошагового туториала

sequenceDiagram
    participant User as Игрок
    participant UI as Интерфейс
    participant Tutorial as StepByStepTutorial
    participant DOM as DOM-элементы страницы

    User->>UI: Запускает туториал через настройки
    UI->>Tutorial: Активирует с набором шагов
    Tutorial->>DOM: Ищет целевой элемент (targetSelector)
    DOM-->>Tutorial: Возвращает элемент
    Tutorial->>DOM: Подсвечивает элемент, отображает подсказку
    User->>DOM: Кликает на выделенный элемент (если требуется)
    DOM->>Tutorial: Передаёт событие клика
    Tutorial->>Tutorial: Переходит к следующему шагу
    Tutorial->>DOM: Обновляет подсветку и подсказку
    loop Повторяется для всех шагов
    Tutorial->>UI: Сообщает о завершении
    UI->>User: Убирает туториал, разблокирует интерфейс

Ключевые особенности модуля "Обучение и поддержка игрока"


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