99 lines
3.7 KiB
C#
99 lines
3.7 KiB
C#
|
|
using TMPro;
|
||
|
|
using UnityEngine;
|
||
|
|
using UnityEngine.UI;
|
||
|
|
|
||
|
|
namespace Watermelon.SquadShooter
|
||
|
|
{
|
||
|
|
public class UICharacterSuggestion : UIPage
|
||
|
|
{
|
||
|
|
[SerializeField] RectTransform panelRectTransform;
|
||
|
|
[SerializeField] GameObject nextCharacterText;
|
||
|
|
[SerializeField] GameObject characterUnlockedText;
|
||
|
|
[SerializeField] Image characterImage;
|
||
|
|
[SerializeField] GameObject fillbarObject;
|
||
|
|
[SerializeField] Image characterFillImage;
|
||
|
|
[SerializeField] GameObject lightBeamImage;
|
||
|
|
[SerializeField] SlicedFilledImage fillbarImage;
|
||
|
|
[SerializeField] GameObject unlockedTextObject;
|
||
|
|
[SerializeField] GameObject continueText;
|
||
|
|
[SerializeField] TextMeshProUGUI persentageText;
|
||
|
|
|
||
|
|
private static float lastProgression;
|
||
|
|
private static float currentProgression;
|
||
|
|
private static CharacterData characterData;
|
||
|
|
|
||
|
|
public override void Init()
|
||
|
|
{
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
public static void SetData(float lastProgression, float currentProgression, CharacterData characterData)
|
||
|
|
{
|
||
|
|
UICharacterSuggestion.lastProgression = lastProgression;
|
||
|
|
UICharacterSuggestion.currentProgression = currentProgression;
|
||
|
|
UICharacterSuggestion.characterData = characterData;
|
||
|
|
}
|
||
|
|
|
||
|
|
protected override void OnShow()
|
||
|
|
{
|
||
|
|
nextCharacterText.SetActive(true);
|
||
|
|
characterUnlockedText.SetActive(false);
|
||
|
|
lightBeamImage.SetActive(false);
|
||
|
|
unlockedTextObject.SetActive(false);
|
||
|
|
continueText.SetActive(false);
|
||
|
|
fillbarObject.SetActive(true);
|
||
|
|
|
||
|
|
panelRectTransform.sizeDelta = new Vector2(0, 335f);
|
||
|
|
|
||
|
|
characterImage.sprite = characterData.Stages[characterData.Stages.Length - 1].PreviewSprite;
|
||
|
|
characterFillImage.sprite = characterData.Stages[characterData.Stages.Length - 1].LockedSprite;
|
||
|
|
|
||
|
|
characterFillImage.fillAmount = 1f - lastProgression;
|
||
|
|
fillbarImage.fillAmount = lastProgression;
|
||
|
|
|
||
|
|
persentageText.text = ((int)(currentProgression * 100)).ToString() + "%";
|
||
|
|
|
||
|
|
panelRectTransform.DOSize(new Vector2(0, 915), 0.4f).SetEasing(Ease.Type.BackOut).OnComplete(() =>
|
||
|
|
{
|
||
|
|
fillbarImage.DOFillAmount(currentProgression, 0.6f).SetEasing(Ease.Type.CubicOut);
|
||
|
|
characterFillImage.DOFillAmount(1f - currentProgression, 0.6f).SetEasing(Ease.Type.CubicOut).OnComplete(() =>
|
||
|
|
{
|
||
|
|
continueText.SetActive(true);
|
||
|
|
|
||
|
|
if (currentProgression >= 1f)
|
||
|
|
{
|
||
|
|
nextCharacterText.SetActive(false);
|
||
|
|
characterUnlockedText.SetActive(true);
|
||
|
|
lightBeamImage.SetActive(true);
|
||
|
|
unlockedTextObject.SetActive(true);
|
||
|
|
continueText.SetActive(true);
|
||
|
|
fillbarObject.SetActive(false);
|
||
|
|
|
||
|
|
lightBeamImage.transform.localScale = Vector3.zero;
|
||
|
|
lightBeamImage.transform.DOScale(1f, 0.3f).SetEasing(Ease.Type.BackOut);
|
||
|
|
}
|
||
|
|
|
||
|
|
UIGamepadButton.EnableTag(UIGamepadButtonTag.CharacterSuggestion);
|
||
|
|
NotifyOpened();
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
UIGamepadButton.DisableTag(UIGamepadButtonTag.Game);
|
||
|
|
}
|
||
|
|
|
||
|
|
protected override void OnHide()
|
||
|
|
{
|
||
|
|
NotifyClosed();
|
||
|
|
}
|
||
|
|
|
||
|
|
#region Buttons
|
||
|
|
public void ContinueButton()
|
||
|
|
{
|
||
|
|
UIController.HidePage<UICharacterSuggestion>();
|
||
|
|
UIController.ShowPage<UIMainMenu>();
|
||
|
|
|
||
|
|
AudioController.PlaySound(AudioController.GetClip("button_sound"));
|
||
|
|
}
|
||
|
|
#endregion
|
||
|
|
}
|
||
|
|
}
|