Quellcode durchsuchen

新增献祭比例

LAPTOP-OM1V99U2\永远de小亡灵 vor 10 Monaten
Ursprung
Commit
ac91e943a1

+ 4 - 0
ActionTowerDefense/Assets/Resources/Prefab/Player.prefab

@@ -1001,6 +1001,10 @@ MonoBehaviour:
   conductReadyTip: {fileID: 946637326309089849}
   timeSlowingMultiplier: 0.15
   readyTipFxTime: 0.3
+  conversionRate:
+  - 0.5
+  - 0.5
+  - 0.5
   temptHp: 0
   temptTime: 5
   bigGiant:

+ 15 - 3
ActionTowerDefense/Assets/Scripts/PlayerController.cs

@@ -167,6 +167,7 @@ public class PlayerController : MoveCharacter
     private bool isReadyConduct;
     [Header("时间倍率")] [Tooltip("时间速度放慢到正常的几倍")] public float timeSlowingMultiplier;
     public float readyTipFxTime;
+    [Header("转换率")] public float[] conversionRate;
     //大胖子
     [Header("融合临时血量基数")] public int temptHp;
     [Header("融合血量持续时间")]public float temptTime;
@@ -743,14 +744,25 @@ public class PlayerController : MoveCharacter
 
     public void Conduct()
     {
-        if (demonicDic[cacheConductId].Count > 0)
+        int dienum = Mathf.RoundToInt(demonicDic[cacheConductId].Count * conversionRate[cacheConductId]);
+        if (dienum > 0)
         {
             GameObject obj;
-            foreach (Demonic d in demonicDic[cacheConductId])
+            List<int> dieId = new List<int>();
+            List<Demonic> dieDemonic = new List<Demonic>();
+            while(dieId.Count<dienum)
+            {
+                int id = UnityEngine.Random.Range(0, demonicDic[cacheConductId].Count);
+                if(!dieId.Exists(t=> t == id))
+                {
+                    dieId.Add(id);
+                    dieDemonic.Add(demonicDic[cacheConductId][id]);
+                }
+            }
+            foreach (Demonic d in dieDemonic)
             {
                 d.ChangeState(CharacterState.Die);
             }
-            int dienum = demonicDic[cacheConductId].Count;
             switch (conductSkills[cacheConductId])
             {
                 //胖子