using System.Collections.Generic; using Core.Language; using Excel2Json; using Fort23.Core; using Fort23.UTool; using GameLogic.Combat; using GameLogic.Hero; namespace Fort23.Mono { [UIBinding(prefab = "HeroBreakthroughPanel")] public partial class HeroBreakthroughPanel : UIPanel { HeroPowerUpConfig heroPowerUpConfig; List breakthroughItemWidgets = new List(); private HeroInfo heroInfo = new HeroInfo(); private void Init() { } protected override void AddEvent() { } protected override void DelEvent() { } public override void AddButtonEvent() { Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); }); Btn_Cancel.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); }); Btn_StartCombat.onClick.AddListener(() => { if (PlayerManager.Instance.myHero.heroData.isCombat) return; UIManager.Instance.HindCurrAllShowPanel(); CombatDrive.Instance.LoadLevelBattleCombat(heroPowerUpConfig.DujieLevelbattleID, delegate(bool isWin) { LogTool.Log("战斗完成" + isWin); if (isWin) { PlayerManager.Instance.myHero.heroData.isCombat = true; AccountFileInfo.Instance.SavePlayerData(); UIManager.Instance.ShowLastHindAllShowPanel(); } }); }); } public async CTask CustomInit() { heroPowerUpConfig = PlayerManager.Instance.myHero.powerUpConfig; heroInfo.InitHero(PlayerManager.Instance.myHero.heroData.heroModelId, PlayerManager.Instance.myHero.heroData.heroPowerId + 1); Text_CurrrentJIngjie.text = LanguageManager.Instance.Text(PlayerManager.Instance.myHero.powerUpConfig.jingjieLanIDs[0]) + LanguageManager.Instance.Text(PlayerManager.Instance.myHero.powerUpConfig.jingjieLanIDs[1]) + LanguageManager.Instance.Text(PlayerManager.Instance.myHero.powerUpConfig.jingjieLanIDs[2]); Text_NextJinfjie.text = LanguageManager.Instance.Text(heroInfo.powerUpConfig.jingjieLanIDs[0]) + LanguageManager.Instance.Text(heroInfo.powerUpConfig.jingjieLanIDs[1]) + LanguageManager.Instance.Text(heroInfo.powerUpConfig.jingjieLanIDs[2]); if (heroPowerUpConfig.DujieLevelbattleID != -1) { CombatRoot.gameObject.SetActive(true); if (PlayerManager.Instance.myHero.heroData.isCombat) { Btn_StartCombat.gameObject.SetActive(false); CombatTrue.gameObject.SetActive(true); } else { Btn_StartCombat.gameObject.SetActive(true); CombatTrue.gameObject.SetActive(false); } } else { CombatRoot.gameObject.SetActive(false); } RefenceSuccessProbability(); //选择丹药 BreakthroughItemWidget breakthroughItemWidget = await UIManager.Instance.CreateGComponent(null, Content); breakthroughItemWidget.CustomInit(1, 0); breakthroughItemWidgets.Add(breakthroughItemWidget); //必选道具 for (var i = 0; i < heroPowerUpConfig.DujieMustItemIDs.Length; i++) { breakthroughItemWidget = await UIManager.Instance.CreateGComponent(null, Content); breakthroughItemWidget.CustomInit(2, heroPowerUpConfig.DujieMustItemIDs[i]); breakthroughItemWidgets.Add(breakthroughItemWidget); } //可选道具 for (var i = 0; i < heroPowerUpConfig.DujieItemIDs.Length; i++) { breakthroughItemWidget = await UIManager.Instance.CreateGComponent(null, Content); breakthroughItemWidget.CustomInit(2, heroPowerUpConfig.DujieItemIDs[i]); breakthroughItemWidgets.Add(breakthroughItemWidget); } } private void RefenceSuccessProbability() { int allBl = 0; if (heroPowerUpConfig.DujieLevelbattleID != -1 && PlayerManager.Instance.myHero.heroData.isCombat) { allBl += heroPowerUpConfig.DujieRateviaBattle; } Text_SucceedDesc.text = $"成功几率:{10 + allBl}%"; } public async static CTask OpenPanel() { HeroBreakthroughPanel heroBreakthroughPanel = await UIManager.Instance.LoadAndOpenPanel(null); heroBreakthroughPanel.CustomInit(); return heroBreakthroughPanel; } public override void Close() { foreach (var breakthroughItemWidget in breakthroughItemWidgets) { UIManager.Instance.DormancyGComponent(breakthroughItemWidget); } breakthroughItemWidgets.Clear(); base.Close(); } } }