Shegotwet/Assets/Scripts/UI/ProfileCard.cs

112 lines
3.2 KiB
C#
Raw Normal View History

2025-09-19 05:56:38 +00:00
using TMPro;
2025-09-11 06:23:15 +00:00
using UnityEngine;
2025-09-19 05:56:38 +00:00
using UnityEngine.ResourceManagement.AsyncOperations;
using UnityEngine.UI;
2025-09-11 06:23:15 +00:00
2025-09-19 05:56:38 +00:00
public class ProfileCard : MonoBehaviour
2025-09-11 06:23:15 +00:00
{
public Image i_girl, i_openbtn;
2025-09-19 05:56:38 +00:00
public TextMeshProUGUI[] texts; // 0 이름, 1 카운트
2025-09-25 06:05:11 +00:00
public GameObject go_lock, go_openbtn, go_viewbtn, go_albumbtn, go_chatbtn;
public RectTransform rect;
2025-09-19 05:56:38 +00:00
girltabledata m_Data;
AsyncOperationHandle m_Handle;
private void Awake()
{
rect = GetComponent<RectTransform>();
}
2025-09-19 05:56:38 +00:00
public void Set(int girlid)
2025-09-11 06:23:15 +00:00
{
2025-09-20 22:40:43 +00:00
if (girlid < 1) girlid = 8;
else if (girlid > 8) girlid = 1;
2025-09-19 05:56:38 +00:00
m_Data = table_girl.Ins.Get_Data(girlid);
2025-09-19 06:18:22 +00:00
2025-09-19 05:56:38 +00:00
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;
});
2025-09-19 06:18:22 +00:00
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;
2025-09-19 06:18:22 +00:00
texts[0].text = m_Data.s_Name;
texts[1].text = $"{count}/{maxcount}";
2025-09-19 06:18:22 +00:00
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);
go_albumbtn.SetActive(count > 0);
2025-09-26 00:11:53 +00:00
go_chatbtn.SetActive(count > 0);
//go_chatbtn.SetActive(false); // 게등위 테스트
}
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;
2025-09-11 06:23:15 +00:00
}
public void OnClick_Profile()
{
2025-09-19 05:56:38 +00:00
LobbyUI.Ins.Show_Profile(m_Data.n_GirlID);
}
public void OnClick_Chat()
{
2025-09-26 00:11:53 +00:00
LobbyUI.Ins.m_ChatUI.Set(m_Data);
2025-09-19 05:56:38 +00:00
}
public void OnClick_Preview()
{ // 훔쳐보기
if (SaveMgr.Ins.CanShowPreviewAD())
ADInfo.Ins.Show_AD(false, () =>
{
var lst = table_album.Ins.Get_DataList(m_Data.n_GirlID).FindAll(f=>!f.s_Image.Contains("Heart"));
var rdnData = lst[Random.Range(0, lst.Count)];
ShowAlbum.Ins.Show(rdnData, true);
SaveMgr.Ins.Add_PreviewADTime(table_GlobalValue.Ins.Get_Int("PreviewADTime"));
});
2025-09-11 06:23:15 +00:00
}
2025-09-19 06:18:22 +00:00
public void OnClick_Open()
{
var pregirl = m_Data.n_GirlID - 1;
if (pregirl > 0)
{
if (CanOpen())
2025-09-19 06:18:22 +00:00
{ // 열 수 있음
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}의 앨범을 모두 오픈해 주세요.");
}
}
}
public void OnClick_Album()
{
LobbyUI.Ins.Go_Album(m_Data.n_GirlID);
}
2025-09-11 06:23:15 +00:00
}