//--------------------------------------------------------  
 | 
//    [Author]:           第二世界  
 | 
//    [  Date ]:           Tuesday, May 14, 2019  
 | 
//--------------------------------------------------------  
 | 
  
 | 
using System;  
 | 
using System.Collections;  
 | 
using System.Collections.Generic;  
 | 
using UnityEngine;  
 | 
using UnityEngine.UI;  
 | 
  
 | 
namespace vnxbqy.UI  
 | 
{  
 | 
  
 | 
    public class TreasureSkillLevelUpWin : Window  
 | 
    {  
 | 
        [SerializeField] Text m_SkillLevel;  
 | 
        [SerializeField] Text m_SkillLevelNext;  
 | 
        [SerializeField] Text m_SkillCoolDown;  
 | 
        [SerializeField] Text m_SkillDesc;  
 | 
        [SerializeField] ItemBehaviour m_Item;  
 | 
        [SerializeField] Text m_ItemCount;  
 | 
        [SerializeField] Button m_LevelUp;  
 | 
        [SerializeField] Button m_Close;  
 | 
  
 | 
        public static int skillId = 0;  
 | 
  
 | 
        TreasureSkillModel model { get { return ModelCenter.Instance.GetModel<TreasureSkillModel>(); } }  
 | 
        #region Built-in  
 | 
        protected override void BindController()  
 | 
        {  
 | 
        }  
 | 
  
 | 
        protected override void AddListeners()  
 | 
        {  
 | 
            m_LevelUp.AddListener(LevelUp);  
 | 
            m_Close.AddListener(CloseClick);  
 | 
        }  
 | 
  
 | 
        protected override void OnPreOpen()  
 | 
        {  
 | 
            Display();  
 | 
  
 | 
            model.treasureSkillRefresh += TreasureSkillRefresh;  
 | 
        }  
 | 
  
 | 
        protected override void OnAfterOpen()  
 | 
        {  
 | 
        }  
 | 
  
 | 
        protected override void OnPreClose()  
 | 
        {  
 | 
            model.treasureSkillRefresh -= TreasureSkillRefresh;  
 | 
        }  
 | 
  
 | 
        protected override void OnAfterClose()  
 | 
        {  
 | 
        }  
 | 
        #endregion  
 | 
  
 | 
        private void Display()  
 | 
        {  
 | 
            TreasureSkill treasureSkill;  
 | 
            model.TryGetSkill(skillId, out treasureSkill);  
 | 
            var level = treasureSkill.level + 1;  
 | 
  
 | 
            m_SkillLevel.text = treasureSkill.level.ToString();  
 | 
            m_SkillLevelNext.text = level.ToString();  
 | 
  
 | 
            var skillConfig = treasureSkill.GetSkillConfig(level);  
 | 
            m_SkillCoolDown.text = skillConfig.CoolDownTime == 0 ? string.Empty  
 | 
                : Language.Get("L1065", skillConfig.CoolDownTime / 1000);  
 | 
            m_SkillDesc.text = skillConfig.Description;  
 | 
  
 | 
            m_Item.SetItem(skillConfig.ExAttr4, skillConfig.ExAttr5);  
 | 
  
 | 
            var _itemCnt = ModelCenter.Instance.GetModel<PackModel>().GetItemCountByID(PackType.Item, skillConfig.ExAttr4);  
 | 
            m_ItemCount.text = StringUtility.Contact(UIHelper.AppendColor(_itemCnt >= skillConfig.ExAttr5 ?  
 | 
                TextColType.Green : TextColType.Red, _itemCnt.ToString(), true)  
 | 
                , "/", skillConfig.ExAttr5);  
 | 
        }  
 | 
  
 | 
          
 | 
        private void LevelUp()  
 | 
        {  
 | 
            var error = 0;  
 | 
            if (model.TryLevelUpTreasureSkillEx(skillId, out error))  
 | 
            {  
 | 
                var pak = new C0304_tagCAddSkillPoint();  
 | 
                pak.SkillID = (ushort)skillId;  
 | 
                GameNetSystem.Instance.SendInfo(pak);  
 | 
            }  
 | 
            else  
 | 
            {  
 | 
                if (error == 2)  
 | 
                {  
 | 
                    TreasureSkill treasureSkill;  
 | 
                    model.TryGetSkill(skillId, out treasureSkill);  
 | 
                    var level = treasureSkill.level + 1;  
 | 
                    var skillConfig = treasureSkill.GetSkillConfig(level);  
 | 
                    ItemTipUtility.Show(skillConfig.ExAttr4);  
 | 
                    //model.DisplayLevelUpError(error);  
 | 
                }  
 | 
            }  
 | 
        }  
 | 
  
 | 
        private void TreasureSkillRefresh(int id)  
 | 
        {  
 | 
            if (skillId == id)  
 | 
            {  
 | 
                TreasureSkill skill;  
 | 
                if (model.TryGetSkill(skillId, out skill))  
 | 
                {  
 | 
                    bool isMax = skill.level >= skill.maxLevel;  
 | 
                    if (isMax)  
 | 
                    {  
 | 
                        CloseClick();  
 | 
                    }  
 | 
                    else  
 | 
                    {  
 | 
                        Display();  
 | 
                    }  
 | 
                }  
 | 
            }  
 | 
        }  
 | 
    }  
 | 
  
 | 
}  
 | 
  
 | 
  
 | 
  
 | 
  
 |