Files
ichni_Official/Assets/Scripts/UI/SongSelection/SongInfoUI.cs

82 lines
2.8 KiB
C#
Raw Normal View History

2025-07-21 05:42:20 -04:00
using System.Collections;
using System.Collections.Generic;
2025-08-11 14:04:06 -04:00
using DG.Tweening;
2025-07-26 04:20:25 -04:00
using Ichni.RhythmGame;
2025-07-21 05:42:20 -04:00
using TMPro;
using UnityEngine;
using UnityEngine.UI;
2025-08-11 14:04:06 -04:00
namespace Ichni.Menu
2025-07-21 05:42:20 -04:00
{
public class SongInfoUI : MonoBehaviour
{
public Image illustration;
public TMP_Text charterNameText;
public TMP_Text illustratorText;
public TMP_Text accuracyText;
2025-07-26 04:20:25 -04:00
public Image fullComboMark;
public Image allPerfectMark;
2025-07-21 05:42:20 -04:00
2025-08-11 14:04:06 -04:00
public bool isOpeningFullIllustration;
public Button openFullIllustrationButton;
public GameObject fullIllustration;
public Button closeFullIllustrationButton;
public bool isDuringFullIllustrationFade;
public void SetUp()
{
openFullIllustrationButton.onClick.AddListener(() =>
{
if (!isOpeningFullIllustration && !isDuringFullIllustrationFade)
{
isOpeningFullIllustration = true;
isDuringFullIllustrationFade = true;
fullIllustration.SetActive(true);
fullIllustration.GetComponentInChildren<Image>().sprite = illustration.sprite;
fullIllustration.GetComponent<CanvasGroup>().DOFade(1f, 0.5f)
.OnComplete(() => isDuringFullIllustrationFade = false)
.Play();
}
});
closeFullIllustrationButton.onClick.AddListener(() =>
{
if (isOpeningFullIllustration && !isDuringFullIllustrationFade)
{
isOpeningFullIllustration = false;
isDuringFullIllustrationFade = true;
fullIllustration.GetComponent<CanvasGroup>().DOFade(0f, 0.5f)
.OnComplete(() =>
{
fullIllustration.SetActive(false);
isDuringFullIllustrationFade = false;
})
.Play();
}
});
}
2025-07-21 05:42:20 -04:00
public void SetIllustration(Sprite cover, string illustratorName)
{
illustration.sprite = cover;
illustratorText.text = illustratorName;
}
public void SetCharter(string charterName)
{
charterNameText.text = charterName == string.Empty ? "Unknown Charter" : charterName;
}
2025-07-26 04:20:25 -04:00
public void SetBeatmapInfo(BeatmapSave beatmapSave)
{
accuracyText.text = $"{beatmapSave.accuracy * 100:F2}%";
if (!beatmapSave.isAllPerfect)
{
fullComboMark.gameObject.SetActive(beatmapSave.isFullCombo);
}
allPerfectMark.gameObject.SetActive(beatmapSave.isAllPerfect);
}
2025-07-21 05:42:20 -04:00
}
}