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(); UIController.ShowPage(); AudioController.PlaySound(AudioController.GetClip("button_sound")); } #endregion } }