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, _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) { 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(); } } }