//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, August 29, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class DungeonFairyFeastHintWin : Window { [SerializeField] Button m_FairyFeast; [SerializeField] Text m_FairyFeastBtnTxt; [SerializeField] Button m_QuestionRank; [SerializeField] Text m_QuestionRankBtnTxt; [SerializeField] DungeonTargetBehaviour m_TargetBehaviour; [SerializeField] RectTransform m_ContainerRank; [SerializeField] FairyFeastRankBehaviour[] m_RankBehaviours; [SerializeField] FairyFeastRankBehaviour m_TopRank; [SerializeField] DungeonMultipleTaskWin.SelectEffect m_SelectEffect; DungeonModel model { get { return ModelCenter.Instance.GetModel(); } } int currentSelect = 0; #region Built-in protected override void BindController() { m_FairyFeast.onClick.AddListener(() => { Select(0); }); m_QuestionRank.onClick.AddListener(() => { Select(1); }); } protected override void AddListeners() { } protected override void OnPreOpen() { Select(0); model.updateMissionEvent += UpdateMissionEvent; } protected override void OnAfterOpen() { } protected override void OnPreClose() { model.updateMissionEvent -= UpdateMissionEvent; } protected override void OnAfterClose() { } #endregion private void Select(int _index) { var _color = m_FairyFeast.targetGraphic.color; _color.a = _index == 1 ? m_SelectEffect.unselectAlpha : m_SelectEffect.selectAlpha; m_FairyFeast.targetGraphic.color = _color; m_FairyFeastBtnTxt.color = _index == 1 ? m_SelectEffect.unSelectTextColor : m_SelectEffect.selectTextColor; _color = m_QuestionRank.targetGraphic.color; _color.a = _index == 0 ? m_SelectEffect.unselectAlpha : m_SelectEffect.selectAlpha; m_QuestionRank.targetGraphic.color = _color; m_QuestionRankBtnTxt.color = _index == 0 ? m_SelectEffect.unSelectTextColor : m_SelectEffect.selectTextColor; m_TargetBehaviour.gameObject.SetActive(_index == 0); m_ContainerRank.gameObject.SetActive(_index == 1); currentSelect = _index; if (_index == 0) { m_TargetBehaviour.Init(31230); } else { DisplayRank(); } } private void UpdateMissionEvent() { if (currentSelect == 1) { DisplayRank(); } } void DisplayRank() { var index = 0; if (model.mission.familyPartyRank != null && model.mission.familyPartyRank.Length > 0) { List list = new List(model.mission.familyPartyRank); list.Sort(Compare); for (int i = 0; i < m_RankBehaviours.Length; i++) { if (i < list.Count) { var data = list[i]; m_RankBehaviours[i].Display(UIHelper.ServerStringTrim(data.name), data.cnt); index++; } } } for (int i = index; i < m_RankBehaviours.Length; i++) { m_RankBehaviours[i].Display(Language.Get("CeremoneyOutOfPrint"), 0); } var topName = model.mission.familyPartyTop.name; m_TopRank.Display(string.IsNullOrEmpty(topName) ? Language.Get("CeremoneyOutOfPrint") : topName, string.IsNullOrEmpty(topName) ? 0 : model.mission.familyPartyTop.cnt); } int Compare(FairyFeastRank x, FairyFeastRank y) { return x.rank.CompareTo(y.rank); } } }