using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace BulletHellTemplate
{
public class SkillInfoEntry : MonoBehaviour
{
///
/// The image component that will display the skill icon.
///
public Image icon;
///
/// The title of the skill, used for display purposes.
///
private string title;
///
/// The description of the skill, providing details about its effects.
///
private string description;
///
/// Tracks the currently displayed skill info in the menu.
///
private static Sprite currentIcon;
private static string currentTitle;
private static string currentDescription;
///
/// Sets the skill information for this entry.
///
/// The icon representing the skill.
/// The title of the skill.
/// The description of the skill.
public void SetSkillInfo(Sprite _icon, string _title, string _description)
{
icon.sprite = _icon;
title = _title;
description = _description;
}
///
/// Toggles the visibility of the skill information menu when the icon is clicked.
/// If the same skill is selected again, it closes the menu.
/// If a different skill is selected, it updates the menu without closing it.
///
public void OnClickShowInfoMenu()
{
if (icon != null)
{
// Check if the selected skill is the same as the currently displayed one
bool isSameSkill = (currentIcon == icon.sprite && currentTitle == title && currentDescription == description);
bool isMenuActive = UICharacterMenu.Singleton.uiSkillInfo.gameObject.activeSelf;
// If it's the same skill, toggle the menu visibility
if (isSameSkill && isMenuActive)
{
UICharacterMenu.Singleton.uiSkillInfo.gameObject.SetActive(false);
}
else
{
// If a different skill is selected or the menu is not active, update the info and show the menu
UICharacterMenu.Singleton.uiSkillInfo.SetSkillInfo(icon.sprite, title, description);
UICharacterMenu.Singleton.uiSkillInfo.gameObject.SetActive(true);
// Update the currently displayed skill info
currentIcon = icon.sprite;
currentTitle = title;
currentDescription = description;
}
}
}
}
}