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(); } } 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 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, classLv); 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 (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; } } }