Bladeren bron

修复境界升级下一级预览错误不够
修复大突破选择丹药bug

lzx 1 dag geleden
bovenliggende
commit
2750f5290c

+ 17 - 17
Assets/Scripts/GameLogic/Hero/HeroInfo.cs

@@ -31,13 +31,15 @@ namespace GameLogic.Hero
         {
             AccountFileInfo.HeroData heroDataCopy = new AccountFileInfo.HeroData();
             heroDataCopy.heroModelId = heroData.heroModelId;
-            heroDataCopy.heroPowerId = heroData.heroPowerId ;
+            heroDataCopy.heroPowerId = heroData.heroPowerId;
             heroDataCopy.exp = heroData.exp;
             heroDataCopy.upTime = heroData.upTime;
             heroDataCopy.isCombat = heroData.isCombat;
             heroDataCopy.TaoismSkillId = heroData.TaoismSkillId;
             heroDataCopy.ImmortalBond = heroData.ImmortalBond.ToList();
             HeroInfo heroInfo = new HeroInfo();
+            heroInfo.MagicWeaponID = MagicWeaponID.ToList();
+            heroInfo.unLockSkills = unLockSkills.ToList();
             heroInfo.InitHero(heroData);
             return heroInfo;
         }
@@ -55,7 +57,7 @@ namespace GameLogic.Hero
                 powerID);
 
             ComputeHeroInfo();
-            CalBasicAttribute();
+            //CalBasicAttribute();
         }
 
         public HeroInfo Upgrade()
@@ -149,21 +151,7 @@ namespace GameLogic.Hero
 
                 foreach (var VARIABLE in attributeBlValue)
                 {
-                    switch (VARIABLE.Key)
-                    {
-                        case HeroAttributeType.HP_BL:
-                            hp.Value += (long)(hp.Value * (VARIABLE.Value / 100f));
-                            break;
-                        case HeroAttributeType.ATT_BL:
-                            attack.Value += (long)(attack.Value * (VARIABLE.Value / 100f));
-                            break;
-                        case HeroAttributeType.DEF_BL:
-                            defense.Value += (long)(defense.Value * (VARIABLE.Value / 100f));
-                            break;
-                        case HeroAttributeType.ShengShi_BL:
-                            shenshi.Value += (long)(shenshi.Value * (VARIABLE.Value / 100f));
-                            break;
-                    }
+                    ComputeHeroAttributeType((int)VARIABLE.Key, VARIABLE.Value);
                 }
             }
 
@@ -195,6 +183,18 @@ namespace GameLogic.Hero
                 case HeroAttributeType.DEF:
                     defense.Value += (int)value;
                     break;
+                case HeroAttributeType.HP_BL:
+                    hp.Value += (long)(hp.Value * (value / 100f));
+                    break;
+                case HeroAttributeType.ATT_BL:
+                    attack.Value += (long)(attack.Value * (value / 100f));
+                    break;
+                case HeroAttributeType.DEF_BL:
+                    defense.Value += (long)(defense.Value * (value / 100f));
+                    break;
+                case HeroAttributeType.ShengShi_BL:
+                    shenshi.Value += (long)(shenshi.Value * (value / 100f));
+                    break;
                 case HeroAttributeType.Gold:
                     Metal += value;
                     break;

+ 15 - 4
Assets/Scripts/GameUI/UI/HeroInformationPanel/BreakthroughItemWidget.cs

@@ -30,16 +30,21 @@ namespace Fort23.Mono
         }
 
         private WidgetItem widgetItem;
+        bool isSelected = false;
 
         public override void AddButtonEvent()
         {
-            Btn_Select.onClick.AddListener(() =>
+            Btn_Select.onClick.AddListener(async () =>
             {
+                if (isSelected)
+                    return;
+                isSelected = true;
                 //打开选择丹药界面
                 if (type == 1)
                 {
-                    SelectElixirPanel.OpenPanel(this, async (e) =>
+                    SelectElixirPanel selectElixirPanel = await SelectElixirPanel.OpenPanel(this, async (e) =>
                     {
+                        isSelected = false;
                         //取消选择丹药
                         if (e == null)
                         {
@@ -65,11 +70,14 @@ namespace Fort23.Mono
                             // widgetItem.InitWidget(itemInfo);
                         }
                     });
+                    await selectElixirPanel.UIClosed();
+                    isSelected = false;
                 }
                 else
                 {
-                    SelectBreakthroughItemPanel.OpenPanel(this, async () =>
+                    SelectBreakthroughItemPanel selectBreakthroughItemPanel = await SelectBreakthroughItemPanel.OpenPanel(this, async () =>
                     {
+                        isSelected = false;
                         if (itemInfo != null)
                         {
                             itemInfo = null;
@@ -78,7 +86,7 @@ namespace Fort23.Mono
                             widgetItem = null;
                             return;
                         }
-                        
+
                         if (PlayerManager.Instance.BagController.IsEnough(itemId, 1))
                         {
                             itemInfo = new ItemInfo(itemId, 1);
@@ -93,6 +101,8 @@ namespace Fort23.Mono
                             // widgetItem.InitWidget(itemInfo);
                         }
                     });
+                    await selectBreakthroughItemPanel.UIClosed();
+                    isSelected = false;
                 }
             });
         }
@@ -130,6 +140,7 @@ namespace Fort23.Mono
             widgetItem = null;
             itemInfo = null;
             Icon_ItemIcon.gameObject.SetActive(false);
+            isSelected = false;
             base.DormancyObj();
         }
     }

+ 10 - 9
Assets/Scripts/GameUI/UI/HeroInformationPanel/HeroBreakthroughPanel.cs

@@ -161,7 +161,7 @@ namespace Fort23.Mono
 
                 // UIManager.Instance.HindCurrAllShowPanel();
 
-                CombatDrive.Instance.LoadLevelBattleCombat(heroPowerUpConfig.DujieLevelbattleID,true,
+                CombatDrive.Instance.LoadLevelBattleCombat(heroPowerUpConfig.DujieLevelbattleID, true,
                     delegate(bool isWin)
                     {
                         LogTool.Log("战斗完成" + isWin);
@@ -198,8 +198,7 @@ namespace Fort23.Mono
             //小突破
             if (type == 1)
             {
-               heroAttributData = HeroHerlp.GetHeroChageHeroAttributeData1(PlayerManager.Instance.myHero, nextHeroInfo);
-              
+                heroAttributData = HeroHerlp.GetHeroChageHeroAttributeData1(PlayerManager.Instance.myHero, nextHeroInfo);
             }
             //大突破
             else if (type == 2)
@@ -211,9 +210,9 @@ namespace Fort23.Mono
             {
                 heroAttributData = HeroHerlp.GetHeroChageHeroAttributeData(PlayerManager.Instance.myHero, nextHeroInfo);
             }
-           
+
             PlayerManager.Instance.myHero.Upgrade();
-            HeroBreakthroughSuccessPanel heroBreakthroughSuccessPanel = await HeroBreakthroughSuccessPanel.OpenPanel(type,heroAttributData);
+            HeroBreakthroughSuccessPanel heroBreakthroughSuccessPanel = await HeroBreakthroughSuccessPanel.OpenPanel(type, heroAttributData);
             await heroBreakthroughSuccessPanel.UIClosed();
         }
 
@@ -222,6 +221,7 @@ namespace Fort23.Mono
         {
             type = 1;
             heroPowerUpConfig = PlayerManager.Instance.myHero.powerUpConfig;
+            nextHeroInfo = PlayerManager.Instance.myHero.CopyHero();
             nextHeroInfo.InitHero(PlayerManager.Instance.myHero.heroData.heroModelId, PlayerManager.Instance.myHero.heroData.heroPowerId + 1);
 
             Text_CurrrentJIngjie.text = LanguageManager.Instance.Text(heroPowerUpConfig.jingjieLanIDs[0]) +
@@ -319,10 +319,10 @@ namespace Fort23.Mono
 
                 for (var i = 0; i < breakthroughItemWidgets.Count; i++)
                 {
-                    breakthroughItemWidgets[i].transform.anchoredPosition = new Vector2((breakthroughItemWidgets[i].transform.sizeDelta.x +0.22f) * i, 0);
+                    breakthroughItemWidgets[i].transform.anchoredPosition = new Vector2((breakthroughItemWidgets[i].transform.sizeDelta.x + 0.22f) * i, 0);
                 }
 
-                Content.sizeDelta = new Vector2((breakthroughItemWidgets[0].transform.sizeDelta.x +0.22f) * breakthroughItemWidgets.Count, 200);
+                Content.sizeDelta = new Vector2((breakthroughItemWidgets[0].transform.sizeDelta.x + 0.22f) * breakthroughItemWidgets.Count, 200);
             }
         }
 
@@ -444,7 +444,7 @@ namespace Fort23.Mono
 
         public async static CTask<HeroBreakthroughPanel> OpenPanel()
         {
-            HeroBreakthroughPanel heroBreakthroughPanel = await UIManager.Instance.LoadAndOpenPanel<HeroBreakthroughPanel>(null,UILayer.Top,isFocus:false);
+            HeroBreakthroughPanel heroBreakthroughPanel = await UIManager.Instance.LoadAndOpenPanel<HeroBreakthroughPanel>(null, UILayer.Top, isFocus: false);
             heroBreakthroughPanel.CustomInit();
             return heroBreakthroughPanel;
         }
@@ -453,7 +453,7 @@ namespace Fort23.Mono
         //渡劫预览
         public async static CTask<HeroBreakthroughPanel> OpenPanel1(HeroInfo heroInfo1)
         {
-            HeroBreakthroughPanel heroBreakthroughPanel = await UIManager.Instance.LoadAndOpenPanel<HeroBreakthroughPanel>(null,UILayer.Top,isFocus:false);
+            HeroBreakthroughPanel heroBreakthroughPanel = await UIManager.Instance.LoadAndOpenPanel<HeroBreakthroughPanel>(null, UILayer.Top, isFocus: false);
             heroBreakthroughPanel.CustomInit(heroInfo1);
             return heroBreakthroughPanel;
         }
@@ -462,6 +462,7 @@ namespace Fort23.Mono
         {
             type = 2;
             heroPowerUpConfig = heroInfo1.powerUpConfig;
+            nextHeroInfo = PlayerManager.Instance.myHero.CopyHero();
             nextHeroInfo.InitHero(PlayerManager.Instance.myHero.heroData.heroModelId, heroInfo1.heroData.heroPowerId + 1);
 
             Text_CurrrentJIngjie.text = LanguageManager.Instance.Text(heroPowerUpConfig.jingjieLanIDs[0]) +

+ 3 - 10
Assets/Scripts/GameUI/UI/HeroInformationPanel/HeroInformationPanel.cs

@@ -129,16 +129,9 @@ namespace Fort23.Mono
 
             await CreatHero();
 
-            AccountFileInfo.HeroData heroData = new AccountFileInfo.HeroData();
-            heroData.heroModelId = PlayerManager.Instance.myHero.heroData.heroModelId;
-            heroData.heroPowerId = PlayerManager.Instance.myHero.heroData.heroPowerId+1;
-            heroData.exp = PlayerManager.Instance.myHero.heroData.exp;
-            heroData.upTime = PlayerManager.Instance.myHero.heroData.upTime;
-            heroData.isCombat = PlayerManager.Instance.myHero.heroData.isCombat;
-            heroData.TaoismSkillId = PlayerManager.Instance.myHero.heroData.TaoismSkillId;
-            heroData.ImmortalBond = PlayerManager.Instance.myHero.heroData.ImmortalBond.ToList();
-            heroInfo = new HeroInfo();
-            heroInfo.InitHero(heroData);
+
+            heroInfo = PlayerManager.Instance.myHero.CopyHero();
+            heroInfo.InitHero( PlayerManager.Instance.myHero.heroData.heroModelId, PlayerManager.Instance.myHero.heroData.heroPowerId+1);
 
             HeroAttributeWidget heroAttributeWidget = await UIManager.Instance.CreateGComponent<HeroAttributeWidget>(null, AttributeRoot);
             heroAttributeWidget.CustomInit(new HeroAttributeData("生命", PlayerManager.Instance.myHero.hp.Value.ToString(), "+" + (heroInfo.hp.Value - PlayerManager.Instance.myHero.hp.Value).ToString()));