using EnhancedUI.EnhancedScroller;
|
using System.Collections;
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
namespace Snxxz.UI
|
{
|
public class RankHeadCell : ScrollerUI
|
{
|
private RankModel m_Model;
|
private RankModel model
|
{
|
get
|
{
|
return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<RankModel>());
|
}
|
}
|
[SerializeField] Button rankBtn;
|
[SerializeField] Image rankBg;
|
[SerializeField] Image rankImgBg;
|
[SerializeField] Text rankNumText;
|
[SerializeField] Text textName;
|
[SerializeField] Image realmImg;
|
[SerializeField] Image m_CompareImg;
|
[SerializeField] Text jobText;
|
[SerializeField] Text rankWhat;
|
[SerializeField] RectTransform m_ContainerNameMiddle;
|
[SerializeField] RectTransform m_ContainerNameRight;
|
|
public override void Refresh(CellView cell)
|
{
|
int index = cell.index;
|
if (index < 3)
|
{
|
rankImgBg.gameObject.SetActive(true);
|
if (index == 0)
|
{
|
rankImgBg.SetSprite("Rank_First");
|
}
|
else if (index == 1)
|
{
|
rankImgBg.SetSprite("Rank_Second");
|
}
|
else if (index == 2)
|
{
|
rankImgBg.SetSprite("Rank_Third");
|
}
|
rankNumText.gameObject.SetActive(false);
|
}
|
else
|
{
|
rankImgBg.gameObject.SetActive(false);
|
rankNumText.text = (index + 1).ToString();
|
rankNumText.gameObject.SetActive(true);
|
}
|
|
PlayerRankData.RankData data = null;
|
if (model.rankList != null && index < model.rankList.Count)
|
{
|
data = model.rankList[index];
|
}
|
realmImg.gameObject.SetActive(false);
|
m_CompareImg.gameObject.SetActive(false);
|
textName.rectTransform.SetParent(model.rankType != (int)PlayerRankData.RankType.Realm ? m_ContainerNameRight : m_ContainerNameMiddle);
|
textName.rectTransform.localPosition = Vector3.zero;
|
rankWhat.gameObject.SetActive(true);
|
if (data != null)
|
{
|
textName.text = data.Name1;
|
string jobStr = data.subType.ToString();
|
int occupa = 1;
|
int.TryParse(jobStr[jobStr.Length - 1].ToString(), out occupa);
|
int classLv = 0;
|
int.TryParse(jobStr.Substring(0, jobStr.Length - 1), out classLv);
|
jobText.text = OccupationNameConfig.GetOccupationName(occupa, classLv);
|
int realmLv = 0;
|
switch ((PlayerRankData.RankType)data.type)
|
{
|
case PlayerRankData.RankType.RuneTower:
|
var _runeTowerFloorCfg = RuneTowerFloorConfig.Get((int)data.cmpValue);
|
if (_runeTowerFloorCfg == null)
|
{
|
rankWhat.text = "-";
|
break;
|
}
|
var _runeTowerCfg = RuneTowerConfig.Get(_runeTowerFloorCfg.TowerId);
|
if (_runeTowerCfg == null)
|
{
|
rankWhat.text = "-";
|
break;
|
}
|
if (IsHightestRuneTower((int)data.cmpValue))
|
{
|
rankWhat.text = Language.Get("PassedCustoms_Z");
|
}
|
else
|
{
|
rankWhat.text = StringUtility.Contact(_runeTowerCfg.TowerName, _runeTowerFloorCfg.FloorName);
|
}
|
realmLv = (int)data.value1;
|
break;
|
case PlayerRankData.RankType.OfflineExp:
|
ulong _expRate = (ulong)data.cmpValue * 100000000 + data.cmpValue2;
|
rankWhat.text = UIHelper.ReplaceLargeNum(_expRate);
|
realmLv = (int)data.value1;
|
break;
|
case PlayerRankData.RankType.Realm:
|
rankWhat.gameObject.SetActive(false);
|
//rankWhat.text = data.cmpValue2.ToString();
|
realmLv = (int)data.cmpValue;
|
break;
|
case PlayerRankData.RankType.JadeDynastyTower:
|
realmLv = (int)data.value1;
|
jobText.text = data.cmpValue +Language.Get("JadeDynastyBossDungeon_Floor") ;
|
rankWhat.text =(10000-data.cmpValue2) +Language.Get("RealmWin_Bewrite_35") ;
|
break;
|
default:
|
rankWhat.text = data.cmpValue.ToString();
|
realmLv = (int)data.value1;
|
break;
|
}
|
RealmConfig presentCfg = RealmConfig.Get(realmLv);
|
if (presentCfg != null)
|
{
|
realmImg.gameObject.SetActive(data.type != (int)PlayerRankData.RankType.Realm);
|
m_CompareImg.gameObject.SetActive(data.type == (int)PlayerRankData.RankType.Realm);
|
realmImg.SetSprite(presentCfg.Img);
|
realmImg.SetNativeSize();
|
m_CompareImg.SetSprite(presentCfg.Img);
|
m_CompareImg.SetNativeSize();
|
}
|
|
bool isSelf = data.ID == PlayerDatas.Instance.PlayerId;
|
textName.color = UIHelper.GetUIColor(isSelf ? TextColType.DarkGreen : TextColType.NavyBrown);
|
jobText.color = UIHelper.GetUIColor(isSelf ? TextColType.DarkGreen : TextColType.NavyBrown);
|
rankWhat.color = UIHelper.GetUIColor(isSelf ? TextColType.DarkGreen : TextColType.NavyBrown);
|
}
|
else
|
{
|
textName.text = Language.Get("L1046");
|
jobText.text = "-";
|
rankWhat.text = "-";
|
|
textName.color = UIHelper.GetUIColor(TextColType.NavyBrown);
|
jobText.color = UIHelper.GetUIColor(TextColType.NavyBrown);
|
rankWhat.color = UIHelper.GetUIColor(TextColType.NavyBrown);
|
}
|
}
|
|
private static bool IsHightestRuneTower(int _floorId)
|
{
|
var _runeTowerFloorCfg = RuneTowerFloorConfig.Get(_floorId);
|
if (RuneTowerFloorConfig.Get(_floorId + 1) != null)
|
{
|
return false;
|
}
|
var _runeTowerCfg = RuneTowerConfig.Get(_runeTowerFloorCfg.TowerId);
|
if (RuneTowerConfig.Get(_runeTowerCfg.ID + 1) != null)
|
{
|
return false;
|
}
|
return true;
|
}
|
}
|
}
|
|
|