Прокачка и улучшения

Назначение

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

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

Ключевые методы и взаимодействия

const handleConfirmLevelUp = () => {
  if (selectedElemental && selectedDisplayData) {
    onLevelUpElemental(selectedElemental.id);
    setShowConfirmModal(false);
    // Запуск вибрации карты
    ...
  }
};
export const canLevelUpElemental = (
  elemental: CollectedElemental,
  playerMana: number
): boolean => {
  if (elemental.rarity === 'immortal') return false;
  const maxLevel = getMaxLevelForRarity(elemental.rarity);
  const canUpgradeRarity = elemental.level >= maxLevel;
  if (canUpgradeRarity) {
    return playerMana >= getRarityUpgradeCost(elemental.rarity);
  }
  return elemental.level < maxLevel && playerMana >= getLevelUpCost(elemental);
};

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

Таким образом, подсистема прокачки и улучшений является связующим звеном между коллекцией, ресурсами и интерфейсом, расширяя возможности развития персонажей и углубляя игровой процесс.

Диаграмма процесса прокачки элементаля

flowchart TD
    User[Пользователь выбирает элементаля]
    CheckCanLevelUp{Можно ли прокачать?}
    NotEnoughMana[Недостаточно маны]
    ShowConfirmModal[Показать окно подтверждения]
    UserConfirms{Подтверждение действия?}
    UpgradeLevel[Повысить уровень]
    UpgradeRarity[Повысить редкость]
    UpdateCollection[Обновить коллекцию]
    PlayVibration[Запустить вибрацию карты]
    CloseModal[Закрыть окно]
    UpdateUI[Обновить интерфейс]

    User --> CheckCanLevelUp
    CheckCanLevelUp -- Нет --> NotEnoughMana
    CheckCanLevelUp -- Да --> ShowConfirmModal
    ShowConfirmModal --> UserConfirms
    UserConfirms -- Нет --> CloseModal
    UserConfirms -- Да --> UpgradeLevel
    UpgradeLevel --> UpdateCollection
    CheckCanLevelUp -- Редкость? --> UpgradeRarity
    UpgradeRarity --> UpdateCollection
    UpdateCollection --> PlayVibration
    PlayVibration --> CloseModal
    CloseModal --> UpdateUI

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