| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 | using ET;using FairyGUI;using UI.Card;using UI.CommonGame;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()        {            if (_ui != null)            {                _ui.Dispose();                _ui = null;            }            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;        }        protected override void AddEventListener()        {            base.AddEventListener();            EventAgent.AddEventListener(ConstMessage.CARD_UP_SKILL, UpdateView);            EventAgent.AddEventListener(ConstMessage.ITEM_CHANGED, 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.GetCfgByskilllvlAndskillId(_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;            _skillLv = SkillDataManager.Instance.GetSkillLv(_cardId, _skillId);            skillCfg = PassivitySkillCfgArray.Instance.GetCfg(_skillId);// SkillDataManager.Instance.GetPassivitySkillCfg(_cardId, _skillId);            skillLvCfg = PassivitySkillLvlCfgArray.Instance.GetCfgByskilllvlAndskillId(_skillLv, _skillId);            ET.Log.Debug("_skillLv000:" + _skillLv);            ET.Log.Debug("skillCfg000:" + skillCfg.skillId);            ET.Log.Debug("_skillLv000:" + skillLvCfg.skilllvl);            int skillLv = SkillDataManager.Instance.GetSkillLv(_cardId, _skillId);            UpdateComLv(_ui.m_comCurLV, skillLv, skillLv + "级");            if (PassivitySkillLvlCfgArray.Instance.GetCfgByskilllvlAndskillId(skillLv + 1, _skillId) == null) //已满级            {                _ui.m_c1.selectedIndex = 1;                return;            }            UI_ComCostCurrency costCurrency = UI_ComCostCurrency.Proxy(_ui.m_comConsume);            costCurrency.m_txtNeed.text = skillLvCfg.costNum.ToString();            UI_ComCostCurrency.ProxyEnd();            ET.Log.Debug("_skillLv111:" + _skillLv);            ET.Log.Debug("skillCfg111:" + skillCfg.skillId);            ET.Log.Debug("_skillLv111:" + skillLvCfg.skilllvl);            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.GetCfgByskilllvlAndskillId(lv, _skillId);            com.m_txtLv.text = title;            com.m_txtDiscribe.text = string.Format(skillCfg.describe, (float)skillLvCfg.probability / 10000f * 100f, (float)skillLvCfg.count / 100f);        }        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.m_loaItem.url = ResPathUtil.GetIconPath(itemCfg);            int needCount = skillLvCfg.materiarsArr[index][1];            int hasCount = ItemDataManager.GetItemNum(skillLvCfg.materiarsArr[index][0]);            listItem.m_txtNeedCount.text = needCount.ToString();            listItem.m_txtHasCount.text = StringUtil.GetColorText(hasCount.ToString(), hasCount < needCount ? "#D27869" : "#FDF3D7"); ;            listItem.m_btnPlus.visible = false;            if (listItem.target.data == null)            {                listItem.target.onClick.Add(() => OnClickBtnPlusStarConsum(index));            }            listItem.target.data = skillLvCfg.materiarsArr[index][0];            if (hasCount < needCount)            {                //材料不足显示加号                listItem.m_btnPlus.visible = true;            }            UI_ComStarConsume.ProxyEnd();        }        private void OnClickBtnPlusStarConsum(int index)        {            UI_ComStarConsume comStarConsume = UI_ComStarConsume.Proxy(_ui.m_listConsume.GetChildAt(index));            int itemId = int.Parse(comStarConsume.target.data.ToString());            UI_ComStarConsume.ProxyEnd();            CardData cardData = CardDataManager.GetCardDataById(_cardId);            ViewManager.Show(ViewName.APPROACH_OF_ITEM_VIEW, new object[] { itemId, new object[] { ViewName.CARD_FOSTER_VIEW, cardData } });        }        private async 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;            bool result = await CardSProxy.UpgradeCardSkill(_cardId, _skillId);            if (result)            {                LogServerHelper.SendNodeLog((int)PlayParticipationEnum.CI_PAI, 2);            }        }        protected override void OnHide()        {            base.OnHide();        }        protected override void RemoveEventListener()        {            base.RemoveEventListener();            EventAgent.RemoveEventListener(ConstMessage.CARD_UP_SKILL, UpdateView);            EventAgent.RemoveEventListener(ConstMessage.ITEM_CHANGED, UpdateView);        }    }}
 |