Project_WL/Assets/Script/UI/Center/Rank/RankCard.cs

77 lines
2.9 KiB
C#

using PlayFab.ClientModels;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RankCard : CardBase
{
public UISprite sprite_rank, sprite_face, sprite_rankbg;
public UILabel[] labels; // 0 순위, 1 닉네임, 2 값
public GameObject go_bg;
static Dictionary<bool, Color> dic_Color = new Dictionary<bool, Color>
{
{ false, new Color32(21, 34, 49, 255) },
{ true, new Color32(203, 89, 219, 255) }, // 내 색
};
static Color MyrankbgColor = new Color32(114, 10, 129, 255);
public override void Set<T>(T _base)
{
base.Set(_base);
var _entry = _base as PlayerLeaderboardEntry;
int faceid = _entry.Profile == null || string.IsNullOrEmpty(_entry.Profile.AvatarUrl) ? 1 : int.Parse(_entry.Profile.AvatarUrl);
var pcdata = table_itemlist.Ins.Get_Data(faceid);
sprite_face.spriteName = pcdata != null ? pcdata.s_ItemIcon : "empty";
Set_Rank(_entry.Position + 1);
labels[1].text = _entry.DisplayName;
switch (GameUI.Ins.LobbyUI.Get_RankUI().CurTab)
{
case 0: // 타임어택
labels[2].color = new Color32(0, 255, 246, 255);
labels[2].text = _entry.StatValue > 0 ? DSUtil.Get_TimeText_MSms((int.MaxValue - _entry.StatValue) * 0.01f) : "-";
break;
case 1: // 스테이지 (10101)
labels[2].color = new Color32(0, 255, 246, 255);
labels[2].text = _entry.StatValue > 0 ? DSUtil.Format("{0}-{1} {2}웨이브", _entry.StatValue / 10000, _entry.StatValue / 100 % 100, _entry.StatValue % 100) : "-";
break;
case 2: // 레벨 (그냥 보여주면 됨)
labels[2].color = Color.white;
labels[2].text = DSUtil.Format("[ffff00]Lv.{0}", _entry.StatValue);
break;
case 3:
labels[2].color = Color.white;
var titleid = table_memorypetbattle.Ins.Get_Data(_entry.StatValue).TitleID;
var title = table_title.Ins.Get_TitleName(titleid);
labels[2].text = DSUtil.Format("{0} [ffff00]{1}", title, _entry.StatValue);
break;
}
go_bg.GetComponent<UISprite>().color = dic_Color[_entry.PlayFabId.Equals(ServerInfo.Ins.m_LoginInfo.PlayFabId)];
}
void Set_Rank(int rank)
{
if (rank <= 3)
{
labels[0].text = "";
sprite_rank.spriteName = DSUtil.Format("rank{0}", rank);
sprite_rank.gameObject.SetActive(true);
}
else
{
labels[0].text = DSUtil.Format("{0}", rank);
labels[0].color = new Color32(21, 34, 46, 255);
sprite_rank.gameObject.SetActive(false);
}
}
public void Set_MyCard()
{
go_bg.SetActive(false);
sprite_rankbg.color = MyrankbgColor;
labels[0].color = new Color32(253, 255, 100, 255);
}
}