| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 | using System.Collections.Generic;using System.Linq;using Core.Language;using Excel2Json;using Fort23.Core;using Fort23.UTool;using GameLogic.Bag;using GameLogic.Hero;using UnityEngine;using Utility;namespace Fort23.Mono{    [UIBinding(prefab = "FaBaoDetailsPanel")]    public partial class FaBaoDetailsPanel : UIPanel    {        List<FaBaoSkillWidget> faBaoSkillWidgets = new List<FaBaoSkillWidget>();        List<ItemWidgetType1> itemWidgetType1s = new List<ItemWidgetType1>();        List<FaBaoWidget> faBaoWidgets = new List<FaBaoWidget>();        FaBaoWidget currentFaBaoWidget = null;        FaBaoInfo currentFaBaoInfo;        private ItemInfo _itemInfo;        private bool isUpGrade = false;        private List<FaBaoInfo> shownFaBaoInfos;        private void Init()        {            IsShowAppBar = false;            isAddStack = false;            isPopUi = true;        }        protected override void AddEvent()        {        }        protected override void DelEvent()        {        }        public override CTask GetFocus()        {            // AppBarPanel.ClosePanel();            return base.GetFocus();        }        public override void AddButtonEvent()        {            Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); });        }        public async void CustomInit(ItemInfo itemInfo)        {            _itemInfo = itemInfo;            AccountFileInfo.FaBaoData faaData = new AccountFileInfo.FaBaoData();            faaData.id = itemInfo.config.associateVlaue[1];            faaData.level = 1;            faaData.useIndex = -1;            FaBaoInfo faBaoInfo = new FaBaoInfo(faaData);            currentFaBaoInfo = faBaoInfo;            UpdateFaBaoUI(faBaoInfo);        }        private async CTask UpdateFaBaoUI(FaBaoInfo faBaoInfo)        {            using (CTaskAwaitBuffer cts = new CTaskAwaitBuffer())            {                Text_Level.text = faBaoInfo.FabaoPowerupConfig.ID + "级";                Text_FaBaoName.text = LanguageManager.Instance.Text(faBaoInfo.FabaoConfig.name);                Text_Power.text = $"强度:{faBaoInfo.qiangDu}";                Text_Desc.text = UtilTools.GetString(LanguageManager.Instance.Text(faBaoInfo.SkillConfig.dec), faBaoInfo.effectValue);                Text_ItemDesc.text = LanguageManager.Instance.Text(_itemInfo.config.itemDesc);                Icon_FaBaoIcon.icon_name = faBaoInfo.SkillConfig.icon;                switch (faBaoInfo.FabaoConfig.magicAttribute)                {                    case 1:                        Icon_Attribute.icon_name = "dec_jin";                        break;                    case 2:                        Icon_Attribute.icon_name = "dec_mu";                        break;                    case 4:                        Icon_Attribute.icon_name = "dec_shui";                        break;                    case 8:                        Icon_Attribute.icon_name = "dec_huo";                        break;                    case 16:                        Icon_Attribute.icon_name = "dec_tu";                        break;                }                cts.AddTask(CreatFaBaoSkillWidget(faBaoInfo));                cts.AddTask(CreatFaBaoAttributeWidget(faBaoInfo));                await cts.WaitAll();            }        }        private async CTask CreatFaBaoSkillWidget(FaBaoInfo faBaoInfo)        {            foreach (var faBaoSkillWidget in faBaoSkillWidgets)            {                UIManager.Instance.DormancyGComponent(faBaoSkillWidget);            }            faBaoSkillWidgets.Clear();            List<FabaoPowerupConfig> fabaoPowerupConfigs = ConfigComponent.Instance.GetAll<FabaoPowerupConfig>().ToList();            var fanappower = fabaoPowerupConfigs.GroupBy(f => f.SkillLevel).Select(g => new { config = g.OrderBy(f => f.ID).FirstOrDefault() }).ToList();            foreach (var powerupConfigse in fanappower)            {                AccountFileInfo.FaBaoData faBaoData = new AccountFileInfo.FaBaoData();                faBaoData.id = currentFaBaoInfo.FaBaoData.id;                faBaoData.level = powerupConfigse.config.ID;                FaBaoInfo _faBaoInfo = new FaBaoInfo(faBaoData);                FaBaoSkillWidget faBaoSkillWidget = await UIManager.Instance.CreateGComponent<FaBaoSkillWidget>(null, SkillContent);                faBaoSkillWidget.CustomInit(currentFaBaoInfo, _faBaoInfo);                faBaoSkillWidgets.Add(faBaoSkillWidget);            }        }        private async CTask CreatFaBaoAttributeWidget(FaBaoInfo faBaoInfo)        {            string t = "";            foreach (var keyValuePair in faBaoInfo.attriButedIC)            {                t = $"{GetAttributeName(keyValuePair.Key)} : {currentFaBaoInfo.attriButedIC[keyValuePair.Key].ToString()}\n";            }            Text_ShuXingJiaCheng.text = t;        }        private string GetAttributeName(int type)        {            switch (type)            {                case 1:                    return "生命";                case 2:                    return "防御";                case 3:                    return "攻击";            }            return "";        }        public async static CTask<FaBaoDetailsPanel> OpenPanel(ItemInfo faBaoInfo)        {            FaBaoDetailsPanel selectFaBaoPanel = await UIManager.Instance.LoadAndOpenPanel<FaBaoDetailsPanel>(null, UILayer.Top);            selectFaBaoPanel.CustomInit(faBaoInfo);            return selectFaBaoPanel;        }        public async override CTask Close()        {            foreach (var faBaoAttributeWidget in faBaoWidgets)            {                UIManager.Instance.DormancyGComponent(faBaoAttributeWidget);            }            faBaoWidgets.Clear();            foreach (var faBaoSkillWidget in faBaoSkillWidgets)            {                UIManager.Instance.DormancyGComponent(faBaoSkillWidget);            }            faBaoSkillWidgets.Clear();            UIManager.Instance.DormancyGComponent(currentFaBaoWidget);            currentFaBaoWidget = null;            currentFaBaoInfo = null;            await base.Close();        }    }}
 |