using System; using System.Collections; using System.Collections.Generic; using System.Text.RegularExpressions; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.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(); } } JadeDynastyBossModel jadeDynastyBossModel { 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.DATA_MAPID: case JadeDynastyBossModel.JADEDYNASTY_MAP: { int i = 0; if (model.mission.hurtInfo != null && model.mission.hurtInfo.Length > 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; } if (currentDugeonId == JadeDynastyBossModel.JADEDYNASTY_MAP) { DisplayAssistHurt(); } } private void SetMineInfo(int rank, long hurt) { switch (currentDugeonId) { case JadeDynastyBossModel.JADEDYNASTY_MAP: mineValueText.text = UIHelper.ReplaceLargeNum((ulong)hurt); break; default: 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); break; } } private void DisplayAssistHurt() { mineRankText.text = Language.Get("DemonJar16"); } 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; } } }