浏览代码

修改bug

DESKTOP-FB72PO8\Administrator 16 小时之前
父节点
当前提交
d8a17bb80e

+ 11 - 0
Assets/Scripts/GameLogic/Combat/CombatState/CombatFinishState.cs

@@ -0,0 +1,11 @@
+using GameLogic.Combat.CombatTool;
+
+namespace GameLogic.Combat.CombatState
+{
+    public class CombatFinishState : CombatStateBasic
+    {
+        public CombatFinishState(CombatController combatController) : base(combatController)
+        {
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/CombatState/CombatFinishState.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 5effae2a769143939a8ba09002951fae
+timeCreated: 1747811125

+ 9 - 3
Assets/Scripts/GameLogic/Combat/CombatTool/CombatController.cs

@@ -57,17 +57,19 @@ namespace GameLogic.Combat.CombatTool
         public float combatTime;
 
         public CombatHeroEntity playerHeroEntity;
-        
+        public bool isWin;
+
         public CombatStateBasic CurrState
         {
             get { return stateControl.CurrIState as CombatStateBasic; }
         }
 
-     
 
         public async CTask InitCombat(StartCombatInfo startCombatInfo)
         {
             combatTime = 0;
+            isWin = false;
+            IsGameOver = false;
             CombatReportManager.Instance.Clear();
             // CombatGuideManager.Instance.Init();
             TimeLineSingletonEventManager.Instance.AddTimeLineBasic(this);
@@ -81,6 +83,8 @@ namespace GameLogic.Combat.CombatTool
                 stateControl.AddState("idle", new CombatIdleState(this));
                 stateControl.AddState("update", new CombatUpdateState(this));
                 stateControl.AddState("fight", new CombatFightState(this));
+                stateControl.AddState("combatfinish", new CombatFinishState(this));
+                
                 MagicWeaponCombatSence = new MagicWeaponCombatSence();
                 MagicWeaponCombatSence.Init();
                 if (CombatSenceController == null)
@@ -136,7 +140,7 @@ namespace GameLogic.Combat.CombatTool
         public void Update(float t)
         {
             CombatGestureController.Instance.Update();
-            if (!isUpdate || _isFullUIShow||IsGameOver)
+            if (!isUpdate || _isFullUIShow)
             {
                 return;
             }
@@ -170,7 +174,9 @@ namespace GameLogic.Combat.CombatTool
 
         public void GameOver(bool isWin)
         {
+            this.isWin = isWin;
             IsGameOver = true;
+            ChangeState("combatfinish");
             combatFinish?.Invoke(isWin);
         }
 

+ 5 - 5
Assets/Scripts/GameLogic/Combat/Hero/CombatHeroInfo.cs

@@ -248,11 +248,11 @@ public class CombatHeroInfo
             defense = (EncryptionLong)(modelConfig.def * MonsterPowerUpConfig.DEFFactor);
             attack = (EncryptionLong)(modelConfig.attack * MonsterPowerUpConfig.ATKFactor);
             k = MonsterPowerUpConfig.defK;
-            Metal= modelConfig.Linggen[0]*MonsterPowerUpConfig.LinggenUp;
-            Water= modelConfig.Linggen[1]*MonsterPowerUpConfig.LinggenUp;
-            Wood= modelConfig.Linggen[2]*MonsterPowerUpConfig.LinggenUp;
-            Fire= modelConfig.Linggen[3]*MonsterPowerUpConfig.LinggenUp;
-            Earth= modelConfig.Linggen[4]*MonsterPowerUpConfig.LinggenUp;
+            Metal= modelConfig.Linggen[0]*MonsterPowerUpConfig.LinggenUp/100;
+            Water= modelConfig.Linggen[1]*MonsterPowerUpConfig.LinggenUp/100;
+            Wood= modelConfig.Linggen[2]*MonsterPowerUpConfig.LinggenUp/100;
+            Fire= modelConfig.Linggen[3]*MonsterPowerUpConfig.LinggenUp/100;
+            Earth= modelConfig.Linggen[4]*MonsterPowerUpConfig.LinggenUp/100;
             if (modelConfig.skillID != null)
             {
                 for (int i = 0; i < modelConfig.skillID.Length; i++)

+ 0 - 2
Assets/Scripts/GameUI/Combat/CombatDrive.cs

@@ -115,8 +115,6 @@ namespace GameLogic.Combat
         public void CombatToStage(bool isWin)
         {
             caombatFinish?.Invoke(isWin);
-
-
             UIManager.Instance.ShowLastHindAllShowPanel();
         }
 

+ 4 - 1
Assets/Scripts/GameUI/Combat/LevelBattleCombatMono.cs

@@ -1,10 +1,13 @@
 using Fort23.Core;
 using Fort23.Mono;
+using GameLogic.Combat;
+using GameLogic.Combat.CombatTool;
 
 namespace GameUI.Combat
 {
     public class LevelBattleCombatMono : CombatMonoBaisc
     {
+       
         protected override async CTask ProGameOver(bool isWin)
         {
             await BattleSettlementPanel.OpenPanel(isWin,UICallBack);
@@ -12,7 +15,7 @@ namespace GameUI.Combat
 
         private void UICallBack()
         {
-            
+            CombatDrive.Instance.CombatToStage(CombatController.currActiveCombat.isWin);
         }
     }
 }

+ 15 - 7
Assets/Scripts/GameUI/UI/CombatPanel/HeroHpWidget.cs

@@ -49,6 +49,7 @@ namespace Fort23.Mono
             {
                 UIManager.Instance.DormancyGComponent(buBetterList[i]);
             }
+
             buBetterList.Clear();
             base.DormancyObj();
         }
@@ -104,11 +105,17 @@ namespace Fort23.Mono
 
             hp.rectTransform.sizeDelta = new Vector2(v * size, hp.rectTransform.sizeDelta.y);
 
-
-            float v2 = (combatHeroEntity.CurrCombatHeroInfo.Shield.Value * 1f) /
-                       combatHeroEntity.MaxCombatHeroInfo.Shield.Value;
-            v2 = Mathf.Clamp(v2, 0, 1);
-            shield.rectTransform.sizeDelta = new Vector2(v2 * shieldSize, shield.rectTransform.sizeDelta.y);
+            if (combatHeroEntity.MaxCombatHeroInfo.Shield.Value > 0)
+            {
+                float v2 = (combatHeroEntity.CurrCombatHeroInfo.Shield.Value * 1f) /
+                           combatHeroEntity.MaxCombatHeroInfo.Shield.Value;
+                v2 = Mathf.Clamp(v2, 0, 1);
+                shield.rectTransform.sizeDelta = new Vector2(v2 * shieldSize, shield.rectTransform.sizeDelta.y);
+            }
+            else
+            {
+                shield.rectTransform.sizeDelta = new Vector2(0, shield.rectTransform.sizeDelta.y);
+            }
         }
 
         private void ClearHeroHp(IEventData iEventData)
@@ -134,6 +141,7 @@ namespace Fort23.Mono
                 {
                     UIManager.Instance.DormancyGComponent(buBetterList[i]);
                 }
+
                 buBetterList.Clear();
                 if (string.IsNullOrEmpty(poolObjName))
                 {
@@ -181,16 +189,16 @@ namespace Fort23.Mono
 
         private void Update()
         {
-         
-
             for (int i = 0; i < buBetterList.Count; i++)
             {
                 buBetterList[i].Update();
             }
+
             if (!isFollowTarget)
             {
                 return;
             }
+
             Vector3 worldPos = hpTransform.position;
             Vector3 p = UIManager.Instance.CurrCustomCameraStack.camera.WorldToScreenPoint(worldPos);
             Vector3 p2 = UIManager.Instance.UICamera.ScreenToWorldPoint(p);