Shegotwet/Assets/Scripts/UI/ProfileCard.cs

109 lines
3.0 KiB
C#

using TMPro;
using UnityEngine;
using UnityEngine.ResourceManagement.AsyncOperations;
using UnityEngine.UI;
public class ProfileCard : MonoBehaviour
{
public Image i_girl, i_openbtn;
public TextMeshProUGUI[] texts; // 0 이름, 1 카운트
public GameObject go_lock, go_openbtn, go_viewbtn;
public RectTransform rect;
girltabledata m_Data;
AsyncOperationHandle m_Handle;
private void Awake()
{
rect = GetComponent<RectTransform>();
}
public void Set(int girlid)
{
m_Data = table_girl.Ins.Get_Data(girlid);
i_girl.enabled = false;
AddrResourceMgr.Ins.Relese(m_Handle);
AddrResourceMgr.Ins.LoadObject<Sprite>(m_Data.s_ProfileImage, handle =>
{
m_Handle = handle;
i_girl.enabled = true;
i_girl.sprite = handle.Result;
});
Set_UI();
}
void Set_UI()
{
var count = SaveMgr.Ins.Get_ImageCount(m_Data.n_GirlID);
var maxcount = table_album.Ins.Get_DataList(m_Data.n_GirlID).Count;
texts[0].text = m_Data.s_Name;
texts[1].text = $"{count}/{maxcount}";
go_lock.SetActive(count == 0);
go_openbtn.SetActive(count == 0);
i_openbtn.sprite = UIAtlasMgr.Ins.Get_Sprite(CanOpen() ? "red btn long" : "black btn");
go_viewbtn.SetActive(count > 0 && count < maxcount);
}
bool CanOpen()
{
var pregirl = m_Data.n_GirlID - 1;
if (pregirl > 0)
{
var lst = table_album.Ins.Get_DataList(pregirl);
return (lst.Count == SaveMgr.Ins.Get_ImageCount(pregirl) && SaveMgr.Ins.Get_ImageCount(m_Data.n_GirlID) == 0);
}
return false;
}
public bool IsObtain()
{
var pregirl = m_Data.n_GirlID - 1;
if (pregirl > 0)
{
var lst = table_album.Ins.Get_DataList(pregirl);
return lst.Count == SaveMgr.Ins.Get_ImageCount(pregirl) && SaveMgr.Ins.Get_ImageCount(m_Data.n_GirlID) > 0;
}
return false;
}
public void OnClick_Profile()
{
LobbyUI.Ins.Show_Profile(m_Data.n_GirlID);
}
public void OnClick_Chat()
{
}
public void OnClick_Preview()
{ // 훔쳐보기
ADInfo.Ins.Show_AD(false, () =>
{
var lst = table_album.Ins.Get_DataList(m_Data.n_GirlID);
var rdnData = lst[Random.Range(0, lst.Count)];
ShowAlbum.Ins.Show(rdnData, true);
});
}
public void OnClick_Open()
{
var pregirl = m_Data.n_GirlID - 1;
if (pregirl > 0)
{
if (CanOpen())
{ // 열 수 있음
SaveMgr.Ins.Open_Image(); // 최초 한 장 공짜 지급
SaveMgr.Ins.Save();
Set_UI();
}
else
{
var pregirldata = table_girl.Ins.Get_Data(pregirl);
LobbyUI.Ins.m_ToastUI.Set($"{pregirldata.s_Name}의 앨범을 모두 오픈해 주세요.");
}
}
}
}