using System.Collections.Generic; using System.Linq; using Core.Language; using Excel2Json; using Fort23.UTool; using GameLogic.Hero; using UnityEngine; using Utility; namespace Fort23.Mono { [UIBinding(prefab = "GongFaUpgradePanel")] public partial class GongFaUpgradePanel : UIPanel { private SkillInfo _skillInfo; private List configs; List _gongFaUpgradeInfoWidgets = new List(); private List _skillPowerupConfigs; private SkillConstant skillConstant; bool isUpgrade = false; private void Init() { } protected override void AddEvent() { } protected override void DelEvent() { } public override void AddButtonEvent() { Btn_Back.onClick.AddListener(() => { if (isUpgrade) { isUpgrade = false; Btn_UpStar.GetComponent().sizeDelta = new Vector2(185.0133f, 76.141f); Btn_UpStar.GetComponent().anchoredPosition = new Vector2(-137.8784f,-704.8f); Btn_UpGrade.gameObject.SetActive(true); return; } UIManager.Instance.HideUIUIPanel(); }); Btn_UpGrade.onClick.AddListener(() => { if (_skillInfo.SkillData == null) { return; } if (_skillInfo.SkillData.level >= _skillPowerupConfigs.Count) { TipMessagePanel.OpenTipMessagePanel("已经满级!"); return; } if (PlayerManager.Instance.myHero.level.Value < _skillInfo.SkillPowerupConfig.PlayerLevelLimit) { HeroPowerUpConfig heroPowerUpConfig = ConfigComponent.Instance.Get(_skillInfo.SkillPowerupConfig.PlayerLevelLimit); TipMessagePanel.OpenTipMessagePanel($"需境界达到{LanguageManager.Instance.Text(heroPowerUpConfig.jingjie1) + LanguageManager.Instance.Text(heroPowerUpConfig.jingjie2) + LanguageManager.Instance.Text(heroPowerUpConfig.jingjie3)}"); return; } // if (!PlayerManager.Instance.BagController.DeductItem(_skillInfo.SkillPowerupConfig.LevelupItem[0], _skillInfo.SkillPowerupConfig.LevelupItemNum[0])) // { // TipMessagePanel.OpenTipMessagePanel("道具不足!"); // return; // } _skillInfo.SkillData.level++; _skillInfo.CustomInt(_skillInfo.SkillData); CustomInit(_skillInfo); AccountFileInfo.Instance.SavePlayerData(); }); Btn_UpStar.onClick.AddListener(() => { if (!isUpgrade) { isUpgrade = true; Btn_UpStar.GetComponent().sizeDelta = new Vector2(569.34f, 76.141f); Btn_UpStar.GetComponent().anchoredPosition = new Vector2(54.285f,-704.8f); Btn_UpGrade.gameObject.SetActive(false); return; } if (_skillInfo.SkillData == null) { return; } if (_skillInfo.SkillData.star >= _gongFaUpgradeInfoWidgets.Count) { TipMessagePanel.OpenTipMessagePanel("已经满星!"); return; } int count = skillConstant.SkillPromoteNeedPieceNum[_skillInfo.skillConfig.level]; // if (!PlayerManager.Instance.BagController.DeductItem(_skillInfo.skillConfig.PieceID, count)) // { // TipMessagePanel.OpenTipMessagePanel("道具不足!"); // return; // } _skillInfo.SkillData.star++; _skillInfo.CustomInt(_skillInfo.SkillData); CustomInit(_skillInfo); AccountFileInfo.Instance.SavePlayerData(); }); } public async void CustomInit(SkillInfo skillInfo) { foreach (var gongFaUpgradeInfoWidget in _gongFaUpgradeInfoWidgets) { UIManager.Instance.DormancyGComponent(gongFaUpgradeInfoWidget); } _gongFaUpgradeInfoWidgets.Clear(); _skillInfo = skillInfo; _skillPowerupConfigs = ConfigComponent.Instance.GetAll().ToList(); SkillConfig skillConfig = _skillInfo.skillConfig; Icon_GongFaIcon.icon_name = skillConfig.icon; Text_Level1.text = "Lv." + _skillInfo.SkillPowerupConfig.ID.ToString(); Text_Level.text = "Lv." + _skillInfo.SkillPowerupConfig.ID.ToString(); skillConstant = ConfigComponent.Instance.Get(1); if (PlayerManager.Instance.myHero.level.Value < _skillInfo.SkillPowerupConfig.PlayerLevelLimit) { Btn_UpGrade.gameObject.transform.Gray(true); HeroPowerUpConfig heroPowerUpConfig = ConfigComponent.Instance.Get(_skillInfo.SkillPowerupConfig.PlayerLevelLimit); UpGradeRoot.SetActive(false); Text_UpGrade.gameObject.SetActive(true); Text_UpGrade.text = $"需境界达到{LanguageManager.Instance.Text(heroPowerUpConfig.jingjie1) + LanguageManager.Instance.Text(heroPowerUpConfig.jingjie2) + LanguageManager.Instance.Text(heroPowerUpConfig.jingjie3)}"; } else { Btn_UpGrade.gameObject.transform.RecoverColor(); if (skillConfig.level < 10) { UpGradeRoot.SetActive(true); Text_UpGrade.gameObject.SetActive(false); ItemConfig upStarItemConfig = ConfigComponent.Instance.Get(skillConfig.PieceID); Icon_UpstarIcon.icon_name = upStarItemConfig.icon; int count = skillConstant.SkillPromoteNeedPieceNum[skillConfig.level]; Text_UpStarCount.text = $"{count}/{PlayerManager.Instance.BagController.GetItemCount(skillConfig.PieceID)}"; } else { UpGradeRoot.SetActive(false); Text_UpGrade.gameObject.SetActive(true); Text_UpGrade.text = $"已满级"; } } if (_skillInfo.SkillData.level < _skillPowerupConfigs.Count) { UpStarRoot.SetActive(true); Text_UpStar.gameObject.SetActive(false); ItemConfig upGradeItemConfig = ConfigComponent.Instance.Get(_skillInfo.SkillPowerupConfig.LevelupItem[0]); Icon_UpstarIcon.icon_name = upGradeItemConfig.icon; Text_UpGradeItemCount.text = $"{_skillInfo.SkillPowerupConfig.LevelupItemNum[0]}/{PlayerManager.Instance.BagController.GetItemCount(upGradeItemConfig.ID)}"; } else { UpStarRoot.SetActive(false); Text_UpStar.gameObject.SetActive(true); Text_UpStar.text = $"已满星"; } Text_GongFaDesc.text = UtilTools.GetString(LanguageManager.Instance.Text(skillConfig.dec), _skillInfo.effectValue); Text_GongFaName.text = LanguageManager.Instance.Text(skillConfig.name); switch (skillConfig.attribute) { case 1: Icon_Attribute.GetComponent().ChangeState(0); Text_Attribute.text = "金"; break; case 2: Icon_Attribute.GetComponent().ChangeState(1); Text_Attribute.text = "木"; break; case 4: Icon_Attribute.GetComponent().ChangeState(2); Text_Attribute.text = "水"; break; case 8: Icon_Attribute.GetComponent().ChangeState(3); Text_Attribute.text = "火"; break; case 16: Icon_Attribute.GetComponent().ChangeState(4); Text_Attribute.text = "土"; break; } List allSkillConfigs = ConfigComponent.Instance.GetAll().ToList(); configs = allSkillConfigs.Where(s => s.IDGroup == skillConfig.IDGroup).ToList(); for (var i = 0; i < configs.Count; i++) { SkillInfo skillInfo1 = new SkillInfo(configs[i].ID, _skillInfo.SkillPowerupConfig.ID); GongFaUpgradeInfoWidget gongFaUpgradeInfoWidget = await UIManager.Instance.CreateGComponent(null, Content); gongFaUpgradeInfoWidget.CustomInit(_skillInfo, skillInfo1); _gongFaUpgradeInfoWidgets.Add(gongFaUpgradeInfoWidget); } } public async static void Open(SkillInfo skillInfo) { GongFaUpgradePanel gongFaUpgradePanel = await UIManager.Instance.LoadAndOpenPanel(null); gongFaUpgradePanel.CustomInit(skillInfo); } public override void Close() { foreach (var gongFaUpgradeInfoWidget in _gongFaUpgradeInfoWidgets) { UIManager.Instance.DormancyGComponent(gongFaUpgradeInfoWidget); } _gongFaUpgradeInfoWidgets.Clear(); isUpgrade = false; base.Close(); } } }