Browse Source

修复融合胖子伤害没有获得正确生命值加成的bug,修复打塔不能暴击的bug

HY-LSZNWIN10\Administrator 2 weeks ago
parent
commit
2edb0d052d

+ 1 - 0
ActionTowerDefense/Assets/Resources/Prefab/MySoldier/Demonic_Giant.prefab

@@ -836,6 +836,7 @@ MonoBehaviour:
   dropSoulMax: 5
   dropSoulMin: 5
   dropSoulAngle: 60
+  scale: 0.5
 --- !u!54 &5440846222648032765
 Rigidbody:
   m_ObjectHideFlags: 0

+ 9 - 0
ActionTowerDefense/Assets/Scripts/Characters/Character.cs

@@ -299,7 +299,16 @@ public class Character : MonoBehaviour
         {
             damageData = CalculateFinalDamage(damageData,attackFrom);
         }
+        if (Random.Range(0, 100) < attackInfo.criticalChance)
+        {
+            damageData = (int)((2 + attackInfo.criticalStrikeEffect / 100f) * damageData);
+        }
+
         hp -= damageData;
+        if (Random.Range(0, 100) < attackInfo.lifesteal)
+        {
+            attackFrom.hp = Mathf.Clamp(attackFrom.hp + attackFrom.attackController.lifesteal, 0, attackFrom.totalHp);
+        }
 
         //É˺¦Ìø×Ö
         if (showInjuryNum)

+ 1 - 1
ActionTowerDefense/Assets/Scripts/Characters/DemonicGiant.cs

@@ -22,7 +22,7 @@ public class DemonicGiant : Demonic
     public override void AfterInit()
     {
         base.AfterInit();
-        ownDamageScale += (int)(GameManager.instance.totalHp * scale);
+        ownDamageScale += (int)(/*GameManager.instance.*/totalHp * scale);
         //if (GameManager.instance.demonicAttributes[id].trigger0)
         //{
         //    ownDamageScale += attributeStatus.resistances.armor * 5;

+ 3 - 0
ActionTowerDefense/Assets/Scripts/Conduct/ConductController.cs

@@ -173,7 +173,10 @@ public class ConductController : MonoBehaviour
                 bs.Settings();
                 tagAdd += spiritBloodAggregator.effectBonus[demonicRarity] * myTreasureTag[(int)spiritBloodAggregator.attributeTag - 1] / 100;
                 int totalHp = Mathf.RoundToInt(demonic.totalHp * spiritBloodAggregator.power[demonicRarity] * dienum);
+                int originalHp = demonic.totalHp;
                 demonic.totalHp = (int)(totalHp * tagAdd);
+                DemonicGiant dg = demonic.GetComponent<DemonicGiant>();
+                demonic.ownDamageScale += (int)(dg.scale * (demonic.totalHp - originalHp));
                 demonic.hp = demonic.totalHp;
                 demonic.attackController.attackSummonId = 0;
                 demonic.Attack_summon();