Преглед изворни кода

指挥技加成根据献祭前使魔数量计算;只有一个使魔的时候忽略献祭率直接献祭该使魔

LAPTOP-OM1V99U2\永远de小亡灵 пре 10 месеци
родитељ
комит
979190bb48
1 измењених фајлова са 16 додато и 11 уклоњено
  1. 16 11
      ActionTowerDefense/Assets/Scripts/PlayerController.cs

+ 16 - 11
ActionTowerDefense/Assets/Scripts/PlayerController.cs

@@ -744,7 +744,12 @@ public class PlayerController : MoveCharacter
 
     public void Conduct()
     {
-        int dienum = Mathf.RoundToInt(demonicDic[cacheConductId].Count * conversionRate[cacheConductId]);
+        int boostNum = demonicDic[cacheConductId].Count;
+        int dienum = Mathf.RoundToInt(boostNum * conversionRate[cacheConductId]);
+        if (boostNum == 1)
+        {
+            dienum = 1;
+        }
         if (dienum > 0)
         {
             GameObject obj;
@@ -752,7 +757,7 @@ public class PlayerController : MoveCharacter
             List<Demonic> dieDemonic = new List<Demonic>();
             while(dieId.Count<dienum)
             {
-                int id = UnityEngine.Random.Range(0, demonicDic[cacheConductId].Count);
+                int id = UnityEngine.Random.Range(0, boostNum);
                 if(!dieId.Exists(t=> t == id))
                 {
                     dieId.Add(id);
@@ -769,11 +774,11 @@ public class PlayerController : MoveCharacter
                 case ConductSkills.Giant:
                     GameObject demonicObj = PoolManager.Instantiate(bigGiant[cacheConductId]);
                     Demonic demonic = demonicObj.GetComponent<Demonic>();
-                    int tempthp = dienum * temptHp;
+                    int tempthp = boostNum * temptHp;
                     demonic.playerID = playerId;
                     demonicObj.transform.parent = null;
                     demonicObj.transform.localEulerAngles = Vector3.zero;
-                    demonicObj.transform.localScale = new Vector3(1, 1, 1) * TranSize(dienum);
+                    demonicObj.transform.localScale = new Vector3(1, 1, 1) * TranSize(boostNum);
                     Vector3 offset = demonicSummonPos[0] * 2;
                     if (bodyTrans.localScale.x > 0)
                     {
@@ -792,7 +797,7 @@ public class PlayerController : MoveCharacter
                         }
                     }
                     demonic.player = this;
-                    demonic.totalHp = (int)(TranSize(dienum) * demonic.totalHp);
+                    demonic.totalHp = (int)(TranSize(boostNum) * demonic.totalHp);
                     demonic.Init();
                     int order = demonic.baseSortingOrder + demonicDic[demonic.id].Count;
                     demonic.SetSortingOrder(order);
@@ -809,7 +814,7 @@ public class PlayerController : MoveCharacter
                     Photosphere photosphere = obj.GetComponent<Photosphere>();
                     photosphere.owner = this;
                     photosphere.conductId = cacheConductId;
-                    photosphere.hp = dienum * photosphereHp;
+                    photosphere.hp = boostNum * photosphereHp;
                     break;
                 case ConductSkills.AddAttack:
                     //List<Demonic> newGiants = new List<Demonic>();
@@ -843,7 +848,7 @@ public class PlayerController : MoveCharacter
                     Mountain MT = curMountain.GetComponent<Mountain>();
                     MT.pc = this;
                     MT.id = cacheConductId;
-                    MT.demonicNum = dienum;
+                    MT.demonicNum = boostNum;
                     break;
                 case ConductSkills.WavePower:
                     canMove = false;
@@ -854,7 +859,7 @@ public class PlayerController : MoveCharacter
                     obj.transform.position = transform.position + Vector3.up;
                     WavePowerSkill wps = obj.GetComponent<WavePowerSkill>();
                     wps.longFX = (int)bodyTrans.localScale.x;
-                    wps.damage = wavePowerDamage * dienum;
+                    wps.damage = wavePowerDamage * boostNum;
                     wps.cacheID = cacheConductId;
                     wps.pc = this;
                     break;
@@ -865,7 +870,7 @@ public class PlayerController : MoveCharacter
                     SwordsControl swordsControl = obj.GetComponentInChildren<SwordsControl>();
                     swordsControl.owner = this;
                     swordsControl.conductId = cacheConductId;
-                    swordsControl.damage = swordsDamage * dienum;
+                    swordsControl.damage = swordsDamage * boostNum;
                     break;
                 //¹­¼ýÊÖ
                 case ConductSkills.AngryBullet:
@@ -874,7 +879,7 @@ public class PlayerController : MoveCharacter
                     AngryBulletControl angryBulletControl = obj.GetComponent<AngryBulletControl>();
                     angryBulletControl.playerController = this;
                     angryBulletControl.cacheConductId = cacheConductId;
-                    angryBulletControl.maxNum = dienum * angryBulletNum;
+                    angryBulletControl.maxNum = boostNum * angryBulletNum;
                     break;
                 case ConductSkills.FlyingSwords:
                     obj = Instantiate(fanFlyingSwords);
@@ -882,7 +887,7 @@ public class PlayerController : MoveCharacter
                     FFS.owner = this;
                     FFS.angleRange = flyingSwordsAngleRange;
                     FFS.arrivalAngle = flyintSwordsArrivalAngle;
-                    FFS.swordsNum = dienum * flyingSwordsNum;
+                    FFS.swordsNum = boostNum * flyingSwordsNum;
                     FFS.Biu();
                     break;
             }