using System; using System.Collections; using System.Collections.Generic; using System.Text.RegularExpressions; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class DungeonRankBehaviour : MonoBehaviour { [SerializeField] List playerNameTexts; [SerializeField] List valueTexts; [SerializeField] Text mineRankText; [SerializeField] Text mineNameText; [SerializeField] Text mineValueText; int currentDugeonId = 0; private object RegexPlayerDatas; DungeonModel model { get { return ModelCenter.Instance.GetModel(); } } public void Init(int mapID) { currentDugeonId = mapID; SetMineInfo(0, 0); SetDefault(); UpdateMissionEvent(); } private void OnEnable() { model.updateMissionEvent += UpdateMissionEvent; } private void UpdateMissionEvent() { if (currentDugeonId == 0) return; switch (currentDugeonId) { case 31170: case DemonJarModel.DEMONJAR_MAPID: { if (model.mission.hurtInfo != null && model.mission.hurtInfo.Length > 0) { int i = 0; for (i = 0; i < model.mission.hurtInfo.Length; i++) { var rank = model.mission.hurtInfo[i].rank; if (rank - 1 < playerNameTexts.Count) { playerNameTexts[rank - 1].text = model.mission.hurtInfo[i].playerName; valueTexts[rank - 1].text = UIHelper.ReplaceLargeNum(model.mission.hurtInfo[i].totalHurt); if (Regex.IsMatch(UIHelper.ServerStringTrim(model.mission.hurtInfo[i].playerName), UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName))) { SetMineInfo(rank, model.mission.hurtInfo[i].totalHurt); } } else { SetMineInfo(rank, model.mission.hurtInfo[i].totalHurt); } } while (i < playerNameTexts.Count) { playerNameTexts[i].text = string.Empty; valueTexts[i].text = string.Empty; i++; } } } break; } } private void SetMineInfo(int rank, long hurt) { if (mineRankText != null) { mineRankText.text = rank == 0 ?Language.Get("FamilyMatchUnBeOnList") : StringUtility.Contact(rank, ":"); } if (mineNameText != null) { mineNameText.text = PlayerDatas.Instance.baseData.PlayerName; } mineValueText.text = UIHelper.ReplaceLargeNum((ulong)hurt); } private void SetDefault() { for (int i = 0; i < playerNameTexts.Count; i++) { playerNameTexts[i].text = string.Empty; } for (int i = 0; i < valueTexts.Count; i++) { valueTexts[i].text = string.Empty; } } private void OnDisable() { model.updateMissionEvent -= UpdateMissionEvent; } } }