127 lines
3.8 KiB
C#
127 lines
3.8 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_openbtn, go_viewbtn, go_albumbtn, go_chatbtn, go_changegirl, go_openeffect;
|
|
public RectTransform rect;
|
|
public Material mat_Gray;
|
|
|
|
girltabledata m_Data;
|
|
AsyncOperationHandle m_Handle;
|
|
|
|
private void Awake()
|
|
{
|
|
rect = GetComponent<RectTransform>();
|
|
}
|
|
|
|
public void Set(int girlid)
|
|
{
|
|
if (girlid < 1) girlid = 8;
|
|
else if (girlid > 8) girlid = 1;
|
|
|
|
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}";
|
|
i_girl.material = count == 0 ? mat_Gray : null;
|
|
go_openbtn.SetActive(count == 0);
|
|
i_openbtn.sprite = UIAtlasMgr.Ins.Get_Sprite(CanOpen() ? "Yellow btn" : "gray btn");
|
|
go_openeffect.SetActive(CanOpen());
|
|
go_viewbtn.SetActive(count == 0);
|
|
go_albumbtn.SetActive(count > 0);
|
|
go_chatbtn.SetActive(count > 0);
|
|
go_changegirl.SetActive(false);
|
|
if (SaveMgr.Ins.IsObtainGirl(2))
|
|
{ // 획득한 캐릭터 2종 이상
|
|
if (SaveMgr.Ins.Get_SelectGirlID() != m_Data.n_GirlID)
|
|
go_changegirl.SetActive(count > 0); // 선택된 캐릭터가 아니며 획득한 캐릭인 경우
|
|
}
|
|
}
|
|
|
|
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 void OnClick_Profile()
|
|
{
|
|
if (m_Data != null)
|
|
LobbyUI.Ins.Show_Profile(m_Data.n_GirlID);
|
|
}
|
|
|
|
public void OnClick_Chat()
|
|
{
|
|
if (m_Data != null)
|
|
LobbyUI.Ins.m_ChatUI.Set(m_Data);
|
|
}
|
|
|
|
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"));
|
|
});
|
|
}
|
|
|
|
public void OnClick_Open()
|
|
{
|
|
var pregirl = m_Data.n_GirlID - 1;
|
|
if (pregirl > 0)
|
|
{
|
|
if (CanOpen())
|
|
{ // 열 수 있음
|
|
SaveMgr.Ins.Open_Album(table_album.Ins.Get_DataList()[0]); // 최초 한 장 공짜 지급
|
|
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_ChangeGirl()
|
|
{
|
|
LobbyUI.Ins.m_ChangeGirlUI.Set();
|
|
}
|
|
|
|
public void OnClick_Album()
|
|
{
|
|
if (m_Data != null)
|
|
LobbyUI.Ins.Go_Album(m_Data.n_GirlID);
|
|
}
|
|
} |