Przeglądaj źródła

实现天地的20➕20的标签技能,优化现在灼烧和冰冻不会在一次攻击中触发

HY-LSZNWIN10\Administrator 1 miesiąc temu
rodzic
commit
049c541a1f

+ 30 - 9
ActionTowerDefense/Assets/Scripts/Characters/AttackController.cs

@@ -278,21 +278,42 @@ public class AttackController : MonoBehaviour
         public void AddAdditionalEffects()
         {
             additionalEffects = AttackAdditionalEffects.None;
-            if (GameManager.instance.isFireEnable)
+
+            int randomInt;
+            randomInt = UnityEngine.Random.Range(0, 100);
+            if (randomInt < 50)
             {
-                int randomInt = UnityEngine.Random.Range(0, 100);
-                if (randomInt < GameManager.instance.fireProbability) additionalEffects |= AttackAdditionalEffects.Fire;
+                if (GameManager.instance.isFireEnable)
+                {
+                    randomInt = UnityEngine.Random.Range(0, 100);
+                    if (randomInt < GameManager.instance.fireProbability) additionalEffects |= AttackAdditionalEffects.Fire;
+                    else if (GameManager.instance.isIceEnable)
+                    {
+                        randomInt = UnityEngine.Random.Range(0, 100);
+                        if (randomInt < GameManager.instance.iceProbability) additionalEffects |= AttackAdditionalEffects.Ice;
+                    }
+                }
             }
-            if (GameManager.instance.isWindEnable)
+            else
             {
-                int randomInt = UnityEngine.Random.Range(0, 100);
-                if (randomInt < GameManager.instance.windProbability) additionalEffects |= AttackAdditionalEffects.Wind;
+                if (GameManager.instance.isIceEnable)
+                {
+                    randomInt = UnityEngine.Random.Range(0, 100);
+                    if (randomInt < GameManager.instance.iceProbability) additionalEffects |= AttackAdditionalEffects.Ice;
+                    else if (GameManager.instance.isFireEnable)
+                    {
+                        randomInt = UnityEngine.Random.Range(0, 100);
+                        if (randomInt < GameManager.instance.fireProbability) additionalEffects |= AttackAdditionalEffects.Fire;
+                    }
+                }
             }
-            if (GameManager.instance.isIceEnable)
+
+            if (GameManager.instance.isWindEnable)
             {
-                int randomInt = UnityEngine.Random.Range(0, 100);
-                if (randomInt < GameManager.instance.iceProbability) additionalEffects |= AttackAdditionalEffects.Ice;
+                randomInt = UnityEngine.Random.Range(0, 100);
+                if (randomInt < GameManager.instance.windProbability) additionalEffects |= AttackAdditionalEffects.Wind;
             }
+
         }
         public void ClearAdditionalEffects()
         {

+ 8 - 8
ActionTowerDefense/Assets/Scripts/Characters/Demonic.cs

@@ -751,14 +751,14 @@ public class Demonic : MoveCharacter
                     ChangeState(CharacterState.Fall);
                     isDie = true;
                     PlayersInput.instance[playerID].OnDemonicRecycle(this);
-                    //if (GameManager.instance.isSkyEnable && canFly)
-                    //{
-                    //    int randomInt = Random.Range(0, 100);
-                    //    if(randomInt < GameManager.instance.skyProbability)
-                    //    {
-                    //        player.nextSummonNum++;
-                    //    }
-                    //}
+                    if (GameManager.instance.isSkyGroundIceEnable)
+                    {
+                        int randomInt = Random.Range(0, 100);
+                        if (randomInt < GameManager.instance.skyGroundProbability)
+                        {
+                            player.nextSummonNum++;
+                        }
+                    }
                     //if (GameManager.instance.isGroundEnable && !canFly)
                     //{
                     //    int randomInt = Random.Range(0, 100);

+ 3 - 0
ActionTowerDefense/Assets/Scripts/GameManager.cs

@@ -121,6 +121,9 @@ public class GameManager : MonoBehaviour
 
     [FoldoutGroup("标签/地")] [LabelText("是否启用")] public bool isGroundEnable = false;
     [FoldoutGroup("标签/地")] [LabelText("每个兵提供的血量buff比率")] public float hpRate = 0.01f;
+
+    [FoldoutGroup("标签/天地")] [LabelText("是否启用")] public bool isSkyGroundIceEnable = false;
+    [FoldoutGroup("标签/天地")] [LabelText("触发概率")] [PropertyRange(0, 100)] public int skyGroundProbability = 100;
     //[FoldoutGroup("标签/地")] [LabelText("触发概率")] [PropertyRange(0, 100)] public int groundProbability = 100;
     //[FoldoutGroup("标签/地")] [LabelText("复活时间")] [PropertyRange(0, 100)] public float resurrectionTime = 3;
     //[FoldoutGroup("标签/地")] [LabelText("魂骸血量")] [PropertyRange(0, 100)] public int deadHp = 20;