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() { 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_ComCostCurrency costCurrency = UI_ComCostCurrency.Proxy(_ui.m_comConsume); costCurrency.m_txtNeed.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, (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; } } private void OnClickBtnPlusStarConsum(int index) { int itemId = int.Parse(UI_ComStarConsume.Proxy(_ui.m_listConsume.GetChildAt(index)).target.data.ToString()); 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(); } } }