//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Friday, March 01, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class AllianceBossHintWin : Window { [SerializeField] Text m_Progress; [SerializeField] RankBehaviour[] m_Ranks; [SerializeField] Text m_AllianceRank; [SerializeField] Text m_AllianceHurt; [SerializeField] Text m_AllianceParticipate; DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel(); } } protected override void BindController() { } protected override void AddListeners() { } protected override void OnPreOpen() { dungeonModel.updateMissionEvent += UpdateMissionEvent; Display(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { dungeonModel.updateMissionEvent -= UpdateMissionEvent; } protected override void OnAfterClose() { } void Display() { DisplayProgress(); DisplayHurtRank(); DisplayAlliance(); } void DisplayProgress() { var mission = dungeonModel.mission; var progress = 1 - (float)mission.remainHPPer / 100; m_Progress.text = StringUtility.Contact((int)(progress * 100), "%"); } void DisplayHurtRank() { var mission = dungeonModel.mission; var hurtInfos = mission.hurtInfo; var index = 0; if (hurtInfos != null) { for (int i = 0; i < hurtInfos.Length; i++) { if (i < m_Ranks.Length) { m_Ranks[i].Display(hurtInfos[i].playerName, hurtInfos[i].totalHurt); } index++; } } for (int i = index; i < m_Ranks.Length; i++) { m_Ranks[i].Reset(); } } void DisplayAlliance() { var mission = dungeonModel.mission; m_AllianceRank.text = mission.myRank == 0 ? string.Empty : mission.myRank.ToString(); m_AllianceHurt.text = UIHelper.ReplaceLargeNum(mission.myHurtTotal); m_AllianceParticipate.text = mission.myMenberCnt.ToString(); } private void UpdateMissionEvent() { DisplayProgress(); DisplayHurtRank(); DisplayAlliance(); } [Serializable] public class RankBehaviour { [SerializeField] Text m_FairyName; [SerializeField] Text m_Hurt; public void Display(string fairyName, long hurt) { m_FairyName.text = fairyName; m_Hurt.text = UIHelper.ReplaceLargeNum(hurt); } public void Reset() { m_FairyName.text = string.Empty; m_Hurt.text = string.Empty; } } } }