using EnhancedUI.EnhancedScroller;
|
using System.Collections;
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
namespace Snxxz.UI
|
{
|
public class RankHeadCell : ScrollerUI
|
{
|
[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;
|
|
RankModel model { get { return ModelCenter.Instance.GetModel<RankModel>(); } }
|
|
public override void Refresh(CellView cell)
|
{
|
int index = cell.index;
|
rankImgBg.gameObject.SetActive(index < 3);
|
rankNumText.gameObject.SetActive(index >= 3);
|
rankNumText.text = (index + 1).ToString();
|
if (index < 3)
|
{
|
rankImgBg.SetSprite(index == 0 ? "Rank_First" : index == 1 ? "Rank_Second" : "Rank_Third");
|
}
|
|
RankData data = null;
|
List<RankData> rankDatas = null;
|
model.TryGetRanks(model.selectRankType, out rankDatas);
|
|
if (rankDatas != null && index < rankDatas.Count)
|
{
|
data = rankDatas[index];
|
}
|
|
realmImg.gameObject.SetActive(false);
|
m_CompareImg.gameObject.SetActive(false);
|
textName.rectTransform.SetParent(model.selectRankType != (int)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);
|
int realmLv = 0;
|
switch ((RankType)data.type)
|
{
|
case 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 RankType.OfflineExp:
|
ulong _expRate = (ulong)data.cmpValue * 100000000 + data.cmpValue2;
|
rankWhat.text = UIHelper.ReplaceLargeNum(_expRate);
|
realmLv = (int)data.value1;
|
break;
|
case RankType.Realm:
|
rankWhat.gameObject.SetActive(false);
|
//rankWhat.text = data.cmpValue2.ToString();
|
realmLv = (int)data.cmpValue;
|
break;
|
case 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 (realmLv > 0 && presentCfg != null)
|
{
|
realmImg.gameObject.SetActive(data.type != (int)RankType.Realm);
|
m_CompareImg.gameObject.SetActive(data.type == (int)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;
|
}
|
}
|
}
|
|
|