using System.Collections.Generic; using System.Linq; using Core.Language; using Excel2Json; using Fort23.Core; using Fort23.UTool; namespace Fort23.Mono { [UIBinding(prefab = "TitlePanel")] public partial class TitlePanel : UIPanel { List widgets = new List(); List moRen = new List() { 1001, 1002 }; private void Init() { } protected override void AddEvent() { } protected override void DelEvent() { } public override void AddButtonEvent() { } public async static CTask OpenPanel(List items = null) { TitlePanel appBarPanel = null; if (UIManager.Instance.GetComponent() == null) { appBarPanel = await UIManager.Instance.LoadAndOpenPanel(null, UILayer.Top, isFocus: false); } else { appBarPanel = UIManager.Instance.GetComponent(); await appBarPanel.Show(); } await appBarPanel.CustomInit(items); return appBarPanel; } public async CTask CustomInit(List items) { if (items == null) { items = moRen; } foreach (var energyWidget in widgets) { UIManager.Instance.DormancyGComponent(energyWidget); } widgets.Clear(); HeroPowerUpConfig[] heroPowerUpConfigs = ConfigComponent.Instance.GetAll().ToList() .Where(hpc => hpc.jingjie1 == PlayerManager.Instance.myHero.powerUpConfig.jingjie1 && hpc.jingjie1 == PlayerManager.Instance.myHero.powerUpConfig.jingjie2).ToArray(); int allexp = 0; foreach (var heroPowerUpConfig in heroPowerUpConfigs) { allexp += heroPowerUpConfig.levelUpExp; } int bl = (PlayerManager.Instance.myHero.exp.Value / allexp) * 100; Text_JingJie.text = LanguageManager.Instance.Text(PlayerManager.Instance.myHero.powerUpConfig.jingjieLanIDs[0]) + LanguageManager.Instance.Text(PlayerManager.Instance.myHero.powerUpConfig.jingjieLanIDs[1]) + " " + bl + "%"; Slider_Exp.maxValue = PlayerManager.Instance.myHero.powerUpConfig.levelUpExp; foreach (var item in items) { EnergyWidget energyWidget = await UIManager.Instance.CreateGComponent(null, Group_ResourceBar); energyWidget.CustomInit(item); widgets.Add(energyWidget); } } [CustomMethod(CustomMethodType.Update)] public void Update() { int currentMiao = (int)((TimeHelper.ClientNow() - PlayerManager.Instance.myHero.heroData.upTime) / 1000); float allexp = currentMiao * PlayerManager.Instance.myHero.powerUpConfig.AutoXiuwei; Slider_Exp.value = PlayerManager.Instance.myHero.heroData.exp + allexp; } public async static CTask ClosePanel() { UIManager.Instance.GetComponent()?.Hide(); } public override void Hide() { foreach (var energyWidget in widgets) { UIManager.Instance.DormancyGComponent(energyWidget); } widgets.Clear(); base.Hide(); } } }