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 PassivitySkillCfg passivitySkillCfg; 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]; SkillData skillData = SkillDataManager.Instance.GetSkillData(_cardId, _skillId); passivitySkillCfg = SkillDataManager.Instance.GetPassivitySkillCfg(_cardId, _skillId, skillData.lv); _ui.m_txtName.text = passivitySkillCfg.name; _ui.m_comSkill.m_loaSkill.url = ResPathUtil.GetCardSmallPath(passivitySkillCfg.res); UpdateView(); } private void UpdateView() { _ui.m_c1.selectedIndex = 0; SkillData skillData = SkillDataManager.Instance.GetSkillData(_cardId, _skillId); int lv = skillData == null ? 1 : skillData.lv; UpdateComLv(_ui.m_comCurLV, lv, lv + "级"); if (skillData != null && skillData.lv == SkillDataManager.Instance.dicPassivitySkill[_cardId][_skillId].Count) //已满级 { _ui.m_c1.selectedIndex = 1; return; } _ui.m_comConsume.m_txtCount.text = passivitySkillCfg.costNum.ToString(); UpdateComLv(_ui.m_comNextLv, lv + 1, "下一级"); _ui.m_listConsume.numItems = passivitySkillCfg.materiarsArr.Length; } private void UpdateComLv(UI_ComSkillDiscribe com, int lv, string title) { com.m_txtLv.text = title; com.m_txtDiscribe.text = SkillDataManager.Instance.GetPassivitySkillCfg(_cardId, _skillId, lv).describe; } private void RenderListStarConsumeItem(int index, GObject obj) { UI_ComStarConsume listItem = UI_ComStarConsume.Proxy(obj); SkillData skillData = SkillDataManager.Instance.GetSkillData(_cardId, _skillId); passivitySkillCfg = SkillDataManager.Instance.GetPassivitySkillCfg(_cardId, _skillId, skillData.lv); ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(passivitySkillCfg.materiarsArr[index][0]); listItem.target.data = passivitySkillCfg.materiarsArr[index][0]; listItem.m_loaItem.url = ResPathUtil.GetIconPath(itemCfg); int needCount = passivitySkillCfg.materiarsArr[index][1]; int hasCount = ItemDataManager.GetItemNum(passivitySkillCfg.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 = passivitySkillCfg.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(passivitySkillCfg.costID) < passivitySkillCfg.costNum) { ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(passivitySkillCfg.costID); PromptController.Instance.ShowFloatTextPrompt(itemCfg.name + "不足"); return; } bool isEnough = true; for (int i = 0; i < passivitySkillCfg.materiarsArr.Length; i++) { int needCount = passivitySkillCfg.materiarsArr[i][1]; int hasCount = ItemDataManager.GetItemNum(passivitySkillCfg.materiarsArr[i][0]); if (hasCount < needCount) { isEnough = false; PromptController.Instance.ShowFloatTextPrompt("升级材料不足"); break; } } if (!isEnough) return; ItemDataManager.Remove(passivitySkillCfg.costID, passivitySkillCfg.costNum); for (int i = 0; i < passivitySkillCfg.materiarsArr.Length; i++) { ItemDataManager.Remove(passivitySkillCfg.materiarsArr[i][0], passivitySkillCfg.materiarsArr[i][1]); } SkillDataManager.Instance.UpSkill(_cardId, _skillId); } protected override void OnHide() { base.OnHide(); } } }