Shegotwet/Assets/Scripts/UI/LobbyUI.cs

150 lines
5.1 KiB
C#

using System.Collections;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class LobbyUI : MonoBehaviourSingletonTemplate<LobbyUI>
{
[SerializeField] TextMeshProUGUI[] texts_money; // 0 앨범 개방 재화, 1 채팅 재화, 2 뽑기 재화, 3 미니게임 체력
public GameObject[] gos_minigame; // 0 입장, 1 차징
public Slider slider_minigamecharging;
public TextMeshProUGUI t_minigamechargingtime;
float minigamechargingTime = 0f;
[Header("Popup UI")]
[SerializeField] AttandanceUI m_AttandanceUI;
[SerializeField] OptionUI m_OptionUI;
[SerializeField] ProfileUI m_ProfileUI;
public ToastUI m_ToastUI;
public PopupUI m_PopupUI;
[Header("Center UI")]
public LobbyCenterProfileUI m_LobbyCenterProfileUI;
public AlbumUI m_AlbumUI;
[SerializeField] GachaUI m_GachaUI;
public ChatUI m_ChatUI;
public ChangeGirlUI m_ChangeGirlUI;
[Header("Bot UI")]
[SerializeField] GameObject[] gos_homeBot; // 게임 버튼
[Header("Games")]
public Game_Lucky m_Game_Lucky;
public Game_Mini m_Game_Mini;
[SerializeField] GameObject go_shop;
IEnumerator Start()
{
yield return null;
if (SaveMgr.Ins.CanGet_Attandance())
m_AttandanceUI.Set();
ADInfo.Ins.Set_Banner(true);
m_LobbyCenterProfileUI.Set();
minigamechargingTime = (float)(SaveMgr.Ins.Get_MiniGameTime() - InternetTime.Ins.Time).TotalMilliseconds;
DSUtil.InActivateGameObjects(gos_minigame, minigamechargingTime > 0f ? 1 : 0);
//Act_Repeat_for1sec = () =>
//{
// if (SaveMgr.Ins.Get_Money(eMoney.MiniGameHP) <= 0)
// {
// var cal =
// }
//};
}
protected override void Update()
{
base.Update();
var cal = SaveMgr.Ins.Get_MiniGameTime() - InternetTime.Ins.Time;
if ((cal.TotalMilliseconds > 0 || minigamechargingTime > 0) && !SaveMgr.Ins.Check_Money(eMoney.MiniGameHP, 1, false))
{
minigamechargingTime -= Time.deltaTime;
t_minigamechargingtime.text = minigamechargingTime > 0f ? $"{minigamechargingTime:F2}s" : "0s";
var fRefillTimeMax = table_GlobalValue.Ins.Get_Float("MiniGame_EnterMoney_Time");
slider_minigamecharging.value = DSUtil.Get_SliderValue(minigamechargingTime / fRefillTimeMax);
if (cal.TotalSeconds <= 0 && minigamechargingTime <= 0f)
{
SaveMgr.Ins.Set_Money(eMoney.MiniGameHP, table_GlobalValue.Ins.Get_Int("MiniGame_TotalEnterMoney"));
SaveMgr.Ins.Save();
m_ToastUI.Set($"미니게임 체력이 모두 충전되었습니다.");
DSUtil.InActivateGameObjects(gos_minigame, minigamechargingTime > 0f ? 1 : 0);
Set_Money();
}
}
}
public void OnClick_Button(GameObject btn)
{
switch (btn.name)
{
case "btn_attendance": m_AttandanceUI.Set(); break;
case "btn_option": m_OptionUI.Set(); break;
case "btn_album":
Go_Home();
m_AlbumUI.Set();
DSUtil.InActivateGameObjects(gos_homeBot);
break;
case "btn_home": Go_Home(); break;
case "btn_gacha": m_GachaUI.Set(); break;
case "btn_shop":
Go_Home();
go_shop.SetActive(true);
DSUtil.InActivateGameObjects(gos_homeBot);
break;
case "btn_minigame":
if (SaveMgr.Ins.IsInfinityMiniGame())
{
m_Game_Mini.Set();
return;
}
if (SaveMgr.Ins.Check_Money(eMoney.MiniGameHP, 1, false))
m_Game_Mini.Set();
break;
}
}
public void MiniGameResult()
{
SaveMgr.Ins.Add_Money(eMoney.MiniGameHP, -1);
if (!SaveMgr.Ins.Check_Money(eMoney.MiniGameHP, 1, false))
{
SaveMgr.Ins.Set_MiniGameTime();
minigamechargingTime = table_GlobalValue.Ins.Get_Int("MiniGame_EnterMoney_Time");
DSUtil.InActivateGameObjects(gos_minigame, 1);
}
}
public void Go_Home()
{
SoundInfo.Ins.Play_BGM(eBGM.b001_BGM);
m_AlbumUI.gameObject.SetActive(false);
m_GachaUI.gameObject.SetActive(false);
go_shop.SetActive(false);
DSUtil.ActivateGameObjects(gos_homeBot);
}
public void Go_Album(int girlid)
{
Go_Home();
m_AlbumUI.Set(girlid);
DSUtil.InActivateGameObjects(gos_homeBot);
}
public void Set_Money()
{
texts_money[0].text = SaveMgr.Ins.Get_Money(eMoney.AlbumOpen).ToString();
texts_money[1].text = SaveMgr.Ins.Get_Money(eMoney.Chat).ToString();
texts_money[2].text = SaveMgr.Ins.Get_Money(eMoney.Gacha).ToString();
//if (SaveMgr.Ins.Get_Money(eMoney.MiniGameHP) > 0)
texts_money[3].text = SaveMgr.Ins.Get_Money(eMoney.MiniGameHP).ToString();
}
public void Show_Profile(int girlid)
{
m_ProfileUI.Set(girlid);
}
}