| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 | using FairyGUI;using UI.Card;namespace GFGGame{    public class CardSkillView : BaseWindow    {        private UI_CardSkillUI _ui;        // private PassivitySkillCfg _viewData;        private int _cardId;        private int _skillId;        private int _skillLv;        private PassivitySkillCfg skillCfg;        private PassivitySkillLvlCfg skillLvCfg;        public override void Dispose()        {            base.Dispose();        }        protected override void OnInit()        {            base.OnInit();            _ui = UI_CardSkillUI.Create();            this.viewCom = _ui.target;            this.viewCom.Center();            this.modal = true;            viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;            _ui.m_btnUpLv.onClick.Add(OnClickBtnUp);            _ui.m_listConsume.itemRenderer = RenderListStarConsumeItem;            EventAgent.AddEventListener(ConstMessage.CARD_UP_SKILL, UpdateView);        }        protected override void OnShown()        {            base.OnShown();            _cardId = (int)(viewData as object[])[0];            _skillId = (int)(viewData as object[])[1];            _skillLv = SkillDataManager.Instance.GetSkillLv(_cardId, _skillId);            // SkillData skillData = SkillDataManager.Instance.GetSkillLv(_cardId, _skillId);            skillCfg = PassivitySkillCfgArray.Instance.GetCfg(_skillId);// SkillDataManager.Instance.GetPassivitySkillCfg(_cardId, _skillId);            skillLvCfg = PassivitySkillLvlCfgArray.Instance.GetCfg(_skillLv, _skillId);            _ui.m_txtName.text = skillCfg.name;            _ui.m_comSkill.m_loaSkill.url = ResPathUtil.GetCardSmallPath(skillCfg.res);            UpdateView();        }        private void UpdateView()        {            _ui.m_c1.selectedIndex = 0;            int skillLv = SkillDataManager.Instance.GetSkillLv(_cardId, _skillId);            UpdateComLv(_ui.m_comCurLV, skillLv, skillLv + "级");            if (PassivitySkillLvlCfgArray.Instance.GetCfg(skillLv + 1, _skillId) == null) //已满级            {                _ui.m_c1.selectedIndex = 1;                return;            }            _ui.m_comConsume.m_txtCount.text = skillLvCfg.costNum.ToString();            UpdateComLv(_ui.m_comNextLv, skillLv + 1, "下一级");            _ui.m_listConsume.numItems = skillLvCfg.materiarsArr.Length;        }        private void UpdateComLv(UI_ComSkillDiscribe com, int lv, string title)        {            PassivitySkillLvlCfg skillLvCfg = PassivitySkillLvlCfgArray.Instance.GetCfg(lv, _skillId);            com.m_txtLv.text = title;            com.m_txtDiscribe.text = string.Format(skillCfg.describe, skillLvCfg.probability, skillLvCfg.count);        }        private void RenderListStarConsumeItem(int index, GObject obj)        {            UI_ComStarConsume listItem = UI_ComStarConsume.Proxy(obj);            // int skillLv = SkillDataManager.Instance.GetSkillLv(_cardId, _skillId);            // skillCfg = SkillDataManager.Instance.GetPassivitySkillCfg(_cardId, _skillId, skillLv);            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(skillLvCfg.materiarsArr[index][0]);            listItem.target.data = skillLvCfg.materiarsArr[index][0];            listItem.m_loaItem.url = ResPathUtil.GetIconPath(itemCfg);            int needCount = skillLvCfg.materiarsArr[index][1];            int hasCount = ItemDataManager.GetItemNum(skillLvCfg.materiarsArr[index][0]);            listItem.m_txtNeedCount.text = StringUtil.GetColorText(needCount.ToString(), hasCount < needCount ? "#FCBCBA" : "#FFF8EA"); ;            listItem.m_txtHasCount.text = hasCount.ToString();            listItem.m_btnPlus.visible = false;            if (listItem.m_btnPlus.data == null)            {                listItem.m_btnPlus.onClick.Add(() => OnClickBtnPlusStarConsum(index));            }            listItem.m_btnPlus.data = skillLvCfg.materiarsArr[index][0];            if (hasCount < needCount)            {                //材料不足显示加号                listItem.m_btnPlus.visible = true;            }        }        private void OnClickBtnPlusStarConsum(int index)        {            int itemId = int.Parse(UI_ComStarConsume.Proxy(_ui.m_listConsume.GetChildAt(index)).target.data.ToString());            ViewManager.Show(ViewName.APPROACH_OF_ITEM_VIEW, new object[] { itemId, new object[] { ViewName.CARD_FOSTER_VIEW, this.viewData } });        }        private void OnClickBtnUp()        {            if (ItemDataManager.GetItemNum(skillLvCfg.costID) < skillLvCfg.costNum)            {                ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(skillLvCfg.costID);                PromptController.Instance.ShowFloatTextPrompt(itemCfg.name + "不足");                return;            }            bool isEnough = true;            for (int i = 0; i < skillLvCfg.materiarsArr.Length; i++)            {                int needCount = skillLvCfg.materiarsArr[i][1];                int hasCount = ItemDataManager.GetItemNum(skillLvCfg.materiarsArr[i][0]);                if (hasCount < needCount)                {                    isEnough = false;                    PromptController.Instance.ShowFloatTextPrompt("升级材料不足");                    break;                }            }            if (!isEnough) return;            // ItemDataManager.Remove(skillCfg.costID, skillCfg.costNum);            // for (int i = 0; i < skillCfg.materiarsArr.Length; i++)            // {            //     ItemDataManager.Remove(skillCfg.materiarsArr[i][0], skillCfg.materiarsArr[i][1]);            // }            // SkillDataManager.Instance.UpSkill(_cardId, _skillId);            CardSProxy.UpgradeCardSkill(_cardId, _skillId).Coroutine();        }        protected override void OnHide()        {            base.OnHide();        }    }}
 |