| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 | using System.Collections.Generic;using System.Linq;using Core.Language;using Excel2Json;using Fort23.Core;using Fort23.UTool;using Utility;namespace Fort23.Mono{    [UIBinding(prefab = "SentimentInfoPanel")]    public partial class SentimentInfoPanel : UIPanel    {        AccountFileInfo.SentimentProperty curretnSentimentProperty;        private AccountFileInfo.SentimentData sentimentData;        List<SentimentEffectWidget> sentimentEffectWidgets = new List<SentimentEffectWidget>();        private List<SentimentEffectConfig> _sentimentEffectConfigs;        private List<SentimentEffectConfig> currentGroupSentimentEffectConfigs;        private void Init()        {            isAddStack = false;            isPopUi = true;            IsShowAppBar = false;        }        protected override void AddEvent()        {        }        protected override void DelEvent()        {        }        public override void AddButtonEvent()        {            Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); });            Btn_LingWu.onClick.AddListener(() =>            {                if (curretnSentimentProperty == null)                {                    return;                }                if (curretnSentimentProperty.level >= currentGroupSentimentEffectConfigs.Count)                {                    TipMessagePanel.OpenTipMessagePanel("已经达到最大等级");                    return;                }                int level = curretnSentimentProperty.level <= 0 ? 1 : curretnSentimentProperty.level;                int conFigId = curretnSentimentProperty.groupId * 100 + level;                SentimentEffectConfig sentimentEffectConfig = ConfigComponent.Instance.Get<SentimentEffectConfig>(conFigId);                //扣除道具                // sentimentEffectConfig.upConstItemId.                // s                curretnSentimentProperty.level++;                AccountFileInfo.Instance.SavePlayerData();                UpdateUi();            });        }        public async override CTask<bool> AsyncInit(object[] uiData)        {            sentimentData = uiData[0] as AccountFileInfo.SentimentData;            _sentimentEffectConfigs = ConfigComponent.Instance.GetAll<SentimentEffectConfig>().ToList();            SentimentEffectWidget sentimentEffectWidget = await UIManager.Instance.CreateGComponentForObject<SentimentEffectWidget>(MainSentimentEffectWidget, null);            sentimentEffectWidget.CustomInit(sentimentData.mainSentiment);            sentimentEffectWidget.OnClick = OnClick;            foreach (var sentimentDataSentimentProperty in sentimentData.sentimentProperties)            {                SentimentEffectWidget sentimentEffectWidget1 = await UIManager.Instance.CreateGComponent<SentimentEffectWidget>(null, Content);                sentimentEffectWidget1.CustomInit(sentimentDataSentimentProperty);                sentimentEffectWidget1.OnClick = OnClick;                sentimentEffectWidgets.Add(sentimentEffectWidget1);            }            return await base.AsyncInit(uiData);        }        private void UpdateUi()        {            int level = curretnSentimentProperty.level <= 0 ? 1 : curretnSentimentProperty.level;            int conFigId = curretnSentimentProperty.groupId * 100 + level;            SentimentEffectConfig sentimentEffectConfig = ConfigComponent.Instance.Get<SentimentEffectConfig>(conFigId);            currentGroupSentimentEffectConfigs = _sentimentEffectConfigs.Where(se => se.groupId == sentimentEffectConfig.groupId).ToList();            Text_Name.text = LanguageManager.Instance.Text(sentimentEffectConfig.name);            Text_Desc.text = UtilTools.GetString(LanguageManager.Instance.Text(sentimentEffectConfig.massge), sentimentEffectConfig.effectVale);            Text_Level.text = $"当前层 ;{curretnSentimentProperty.level}/{currentGroupSentimentEffectConfigs.Count}";        }        private void OnClick(ItemWidgetBasic obj)        {            SentimentEffectWidget sentimentEffectWidget = obj as SentimentEffectWidget;            curretnSentimentProperty = sentimentEffectWidget.sentimentProperty;            UpdateUi();        }        public static async CTask OpenPanel(AccountFileInfo.SentimentData sentimentData)        {            await UIManager.Instance.LoadAndOpenPanel<SentimentInfoPanel>(null, uiData: new object[] { sentimentData });        }        public override void Close()        {            foreach (var sentimentEffectWidget in sentimentEffectWidgets)            {                UIManager.Instance.DormancyGComponent(sentimentEffectWidget);            }            sentimentEffectWidgets.Clear();            base.Close();        }    }}
 |