using EnhancedUI.EnhancedScroller; using System.Collections; using System.Collections.Generic; using TableConfig; 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()); } } [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 = Config.Instance.Get((int)data.cmpValue); if (_runeTowerFloorCfg == null) { rankWhat.text = "-"; break; } var _runeTowerCfg = Config.Instance.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; default: rankWhat.text = data.cmpValue.ToString(); realmLv = (int)data.value1; break; } if (realmLv > 0) { RealmConfig presentCfg = Config.Instance.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); m_CompareImg.SetSprite(presentCfg.Img); } } 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 = Config.Instance.Get(_floorId); if (Config.Instance.Get(_floorId + 1) != null) { return false; } var _runeTowerCfg = Config.Instance.Get(_runeTowerFloorCfg.TowerId); if (Config.Instance.Get(_runeTowerCfg.ID + 1) != null) { return false; } return true; } } }