少年修仙传客户端代码仓库
client_linchunjie
2018-08-28 95e0544aa36854c34c433c46dc4fb34b15b3a528
System/FairyAu/FairyGrabBossWin.cs
@@ -14,6 +14,11 @@
    public class FairyGrabBossWin : Window
    {
        [SerializeField] CyclicScroll m_Bosses;
        [SerializeField] Text m_FairyName;
        [SerializeField] ItemCell[] m_DropItems;
        [SerializeField] Button m_KillRecord;
        [SerializeField] Button m_Goto;
        [SerializeField] Text m_SurplusTime;
        FairyGrabBossModel model { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } }
        #region Built-in
@@ -23,10 +28,16 @@
        protected override void AddListeners()
        {
            m_KillRecord.onClick.AddListener(KillRecord);
            m_Goto.onClick.AddListener(Goto);
        }
        protected override void OnPreOpen()
        {
            DisplaySurplusTime();
            DisplayBossInfo();
            GlobalTimeEvent.Instance.secondEvent += SecondEvent;
            model.bossSelectedEvent += BossSelectedEvent;
        }
        protected override void OnActived()
@@ -41,6 +52,8 @@
        protected override void OnPreClose()
        {
            GlobalTimeEvent.Instance.secondEvent -= SecondEvent;
            model.bossSelectedEvent -= BossSelectedEvent;
        }
        protected override void OnAfterClose()
@@ -57,10 +70,67 @@
            m_Bosses.MoveToCenter(bosses.IndexOf(model.selectBoss));
        }
        void DisplayBossInfo()
        {
            List<Item> dropItems;
            model.TryGetDropItems(model.selectBoss, out dropItems);
            for (int i = 0; i < m_DropItems.Length; i++)
            {
                m_DropItems[i].cellBtn.RemoveAllListeners();
                if (dropItems != null && i < dropItems.Count)
                {
                    m_DropItems[i].gameObject.SetActive(true);
                    var item = dropItems[i];
                    ItemCellModel itemCellModel = new ItemCellModel(item.id, true, (ulong)item.count, item.bind ? 1 : 0);
                    m_DropItems[i].Init(itemCellModel);
                    m_DropItems[i].cellBtn.AddListener(() =>
                    {
                        ItemAttrData itemAttrData = new ItemAttrData(item.id, true, (ulong)item.count, -1, item.bind ? 1 : 0);
                        ModelCenter.Instance.GetModel<ItemTipsModel>().SetItemTipsModel(itemAttrData);
                    });
                }
                else
                {
                    m_DropItems[i].gameObject.SetActive(false);
                }
            }
        }
        int DefaultSelect()
        {
            return model.bosses[0];
        }
        void DisplaySurplusTime()
        {
            var seconds = model.surplusSeconds;
            if (seconds > 0)
            {
                m_SurplusTime.text = TimeUtility.SecondsToDHMSCHS(seconds);
            }
            else
            {
                m_SurplusTime.text = Language.Get("ActivityEnd");
            }
        }
        private void Goto()
        {
        }
        private void KillRecord()
        {
        }
        private void SecondEvent()
        {
            DisplaySurplusTime();
        }
        private void BossSelectedEvent(int bossId)
        {
            DisplayBossInfo();
        }
    }
}