Răsfoiți Sursa

融魂技消耗数量改为定额制

WGL 1 lună în urmă
părinte
comite
7d8bb58995

+ 6 - 0
ActionTowerDefense/Assets/Resources/Prefab/GameManager.prefab

@@ -160,11 +160,13 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   netherfireRebirth:
     attributeTag: 7
+    bUseFixedSacrifice: 1
     sacrificeRatio:
     - 100
     - 60
     - 50
     - 50
+    sacrificeValue: 0a0000000a0000000a0000000a000000
     power: 01000000020000000300000004000000
     effectBonus:
     - 1
@@ -180,11 +182,13 @@ MonoBehaviour:
     canDie: 0
   flyingSwords:
     attributeTag: 6
+    bUseFixedSacrifice: 1
     sacrificeRatio:
     - 100
     - 80
     - 60
     - 50
+    sacrificeValue: 0a0000000a0000000a0000000a000000
     power: 01000000010000000100000001000000
     effectBonus:
     - 1
@@ -199,11 +203,13 @@ MonoBehaviour:
     obj: {fileID: 256012001268456902, guid: 26ed0fb31296bdd4bb45e22ce2b925bc, type: 3}
   iceRain:
     attributeTag: 3
+    bUseFixedSacrifice: 1
     sacrificeRatio:
     - 100
     - 60
     - 50
     - 50
+    sacrificeValue: 0a0000000a0000000a0000000a000000
     power: 0a0000000f000000140000001e000000
     effectBonus:
     - 1

+ 18 - 3
ActionTowerDefense/Assets/Scripts/Characters/PlayerController.cs

@@ -583,11 +583,26 @@ public class PlayerController : MoveCharacter
         if (!isReadyConduct && nowConductButton != -1)
         {
             int boostNum = demonicDic[nowConductButton].Count;
-            int dienum = (int)(boostNum * conductController.conversionRate[nowConductButton]/100 + 0.5f);
-            if (boostNum == 1)
+            int dienum;
+            if (conductController.bUseFixedSacrifice[nowConductButton])
             {
-                dienum = 1;
+                dienum = conductController.sacrificeValue[nowConductButton];
+                if (boostNum < dienum)
+                {
+                    dienum = 0;
+                }
+                
+            }
+            else
+            {
+                dienum = (int)(boostNum * conductController.conversionRate[nowConductButton] / 100 + 0.5f);
+                if (boostNum == 1)
+                {
+                    dienum = 1;
+                }
             }
+            
+
             if (conductTime >= canConductTime[nowConductButton] * timeSlowingMultiplier)
             {
                 isReadyConduct = true;

+ 30 - 4
ActionTowerDefense/Assets/Scripts/Conduct/ConductController.cs

@@ -14,7 +14,10 @@ public class ConductController : MonoBehaviour
     private SoldierLevelRecord soldierLevelRecord;
 
     [LabelText("品质")] public int[] rarity;
+    [Tooltip("勾选定额;不勾选百分比")] public bool[] bUseFixedSacrifice;
     public float[] conversionRate;
+    public int[] sacrificeValue;
+    
     public float[] totalCD;
     public float[] cd;
     [LabelText("融魂技")] public ConductSkills[] conductSkills;
@@ -57,17 +60,23 @@ public class ConductController : MonoBehaviour
             {
                 case ConductSkills.NetherfireRebirth:
                     ConductManager.NetherfireRebirth netherfireRebirth = conductManager.netherfireRebirth;
+                    bUseFixedSacrifice[i] = netherfireRebirth.bUseFixedSacrifice;
                     conversionRate[i] = netherfireRebirth.sacrificeRatio[demonicRarity];
+                    sacrificeValue[i] = netherfireRebirth.sacrificeValue[demonicRarity];
                     totalCD[i] = netherfireRebirth.cd[demonicRarity];
                     break;
                 case ConductSkills.FlyingSwords:
                     ConductManager.FlyingSwords flyingSwords = conductManager.flyingSwords;
+                    bUseFixedSacrifice[i] = flyingSwords.bUseFixedSacrifice;
                     conversionRate[i] = flyingSwords.sacrificeRatio[demonicRarity];
+                    sacrificeValue[i] = flyingSwords.sacrificeValue[demonicRarity];
                     totalCD[i] = flyingSwords.cd[demonicRarity];
                     break;
                 case ConductSkills.IceRain:
                     ConductManager.IceRain iceRain = conductManager.iceRain;
+                    bUseFixedSacrifice[i] = iceRain.bUseFixedSacrifice;
                     conversionRate[i] = iceRain.sacrificeRatio[demonicRarity];
+                    sacrificeValue[i] = iceRain.sacrificeValue[demonicRarity];
                     totalCD[i] = iceRain.cd[demonicRarity];
                     break;
             }
@@ -99,14 +108,31 @@ public class ConductController : MonoBehaviour
     public void Conduct(int demonicId)
     {
         int boostNum = playerController.demonicDic[demonicId].Count;
-        int dienum = (int)(boostNum * conversionRate[demonicId]/100f + 0.5f);
-        if (dienum == 0 && boostNum >= 1)
+        int dienum;
+        if (bUseFixedSacrifice[demonicId])
         {
-            dienum = 1;
+            dienum = sacrificeValue[demonicId];
+            if (boostNum < dienum)
+            {
+                dienum = 0;
+            }
         }
+        else
+        {
+            dienum = (int)(boostNum * conversionRate[demonicId] / 100 + 0.5f);
+            if (dienum == 0 && boostNum >= 1)
+            {
+                dienum = 1;
+            }
+        }
+
+
         if (dienum > 0)
         {
-            cd[demonicId] = totalCD[demonicId];
+            if (!bUseFixedSacrifice[demonicId])
+            {
+                cd[demonicId] = totalCD[demonicId];
+            }
             GameObject obj;
             List<int> dieId = new List<int>();
             List<Demonic> dieDemonic = new List<Demonic>();

+ 9 - 3
ActionTowerDefense/Assets/Scripts/Conduct/ConductManager.cs

@@ -23,7 +23,9 @@ public class ConductManager : MonoBehaviour
     [Serializable] public struct NetherfireRebirth
     {
         [LabelText("标签")] public AttributeTag attributeTag;
-        [LabelText("献祭比例(%)")] public float[] sacrificeRatio;
+        [LabelText("献祭方式")] [Tooltip("勾选定额;不勾选百分比")] public bool bUseFixedSacrifice;
+        [ShowIf("@!bUseFixedSacrifice")][LabelText("献祭比例(%)")] public float[] sacrificeRatio;
+        [ShowIf("bUseFixedSacrifice")][LabelText("献祭数量")] public int[] sacrificeValue;
         [LabelText("效果规模")] public int[] power;
         [LabelText("效果加成(%)")] public float[] effectBonus;
         [LabelText("CD")] public float[] cd;
@@ -36,7 +38,9 @@ public class ConductManager : MonoBehaviour
     [Serializable] public struct FlyingSwords
     {
         [LabelText("标签")] public AttributeTag attributeTag;
-        [LabelText("献祭比例(%)")] public float[] sacrificeRatio;
+        [LabelText("献祭方式")] [Tooltip("勾选定额;不勾选百分比")] public bool bUseFixedSacrifice;
+        [ShowIf("@!bUseFixedSacrifice")] [LabelText("献祭比例(%)")] public float[] sacrificeRatio;
+        [ShowIf("bUseFixedSacrifice")] [LabelText("献祭数量")] public int[] sacrificeValue;
         [LabelText("效果规模")] public int[] power;
         [LabelText("效果加成(%)")] public float[] effectBonus;
         [LabelText("CD")] public float[] cd;
@@ -48,7 +52,9 @@ public class ConductManager : MonoBehaviour
     [Serializable] public struct IceRain
     {
         [LabelText("标签")] public AttributeTag attributeTag;
-        [LabelText("献祭比例(%)")] public float[] sacrificeRatio;
+        [LabelText("献祭方式")] [Tooltip("勾选定额;不勾选百分比")] public bool bUseFixedSacrifice;
+        [ShowIf("@!bUseFixedSacrifice")] [LabelText("献祭比例(%)")] public float[] sacrificeRatio;
+        [ShowIf("bUseFixedSacrifice")] [LabelText("献祭数量")] public int[] sacrificeValue;
         [LabelText("效果规模")] public int[] power;
         [LabelText("效果加成(%)")] public float[] effectBonus;
         [LabelText("CD")] public float[] cd;