//-------------------------------------------------------- // [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(); } } #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().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(); } } } } } }