瀏覽代碼

法师特性:使变身期间召唤的弓箭手攻击时拥有5%概率使敌方单位漂浮

SZAND\msx_2 1 年之前
父節點
當前提交
d89f1d8163

+ 3 - 0
ActionTowerDefense/Assets/Resources/Prefab/Demonic_Arrow.prefab

@@ -981,6 +981,7 @@ MonoBehaviour:
   rb: {fileID: 8639832132491289349}
   bodyTrans: {fileID: 5769591908339262981}
   beSearchTrigger: {fileID: 316813748882225178}
+  attackTrigger: {fileID: 0}
   uiHp: {fileID: 3586716274361854270}
   state: 0
   attackTime: 0
@@ -1036,6 +1037,8 @@ MonoBehaviour:
   rope: {fileID: 0}
   hasHpUp: 0
   beLarger: 0
+  canHitFloat: 0
+  floatProbability: 0
   attackToFloat: 0
   isSoulUnstable: 0
   soulUnstableTime: 0

+ 4 - 0
ActionTowerDefense/Assets/Resources/Prefab/Transfiguration/Trans_Float.prefab

@@ -1033,6 +1033,7 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   controller: {fileID: 0}
   UIoffset: {x: 0, y: 0, z: 0}
+  floatProbability: 5
   mpJ: 10
   mpK: 10
   mpL: 150
@@ -1092,6 +1093,7 @@ MonoBehaviour:
   rb: {fileID: 0}
   bodyTrans: {fileID: 5769591908339262981}
   beSearchTrigger: {fileID: 316813748882225178}
+  attackTrigger: {fileID: 0}
   uiHp: {fileID: 3586716274361854270}
   state: 0
   attackTime: 0
@@ -1147,6 +1149,8 @@ MonoBehaviour:
   rope: {fileID: 0}
   hasHpUp: 0
   beLarger: 0
+  canHitFloat: 0
+  floatProbability: 0
   attackToFloat: 0
   isSoulUnstable: 0
   soulUnstableTime: 0

+ 4 - 1
ActionTowerDefense/Assets/Scripts/Bullet.cs

@@ -157,7 +157,10 @@ public class Bullet : MonoBehaviour
                     {
                         owner.attackToFloat = false;
                         toFloat = false;
-                        hitTrigger.owner.GetComponent<MoveCharacter>().FloatStateOn();
+                        if (hitTrigger.tag != "EnemyTower")
+                        {
+                            hitTrigger.owner.GetComponent<MoveCharacter>().FloatStateOn();
+                        }
                     }
                 }
             }

+ 10 - 0
ActionTowerDefense/Assets/Scripts/Character.cs

@@ -108,6 +108,8 @@ public class Character : MonoBehaviour
     private Vector3 speed = new Vector3(1, 1, 0);
     public bool beLarger = false;
 
+    public bool canHitFloat;                //是否概率使敌方漂浮
+    public float floatProbability;          //漂浮概率
     public bool attackToFloat = false;      //攻击使敌方漂浮
     public bool isSoulUnstable;             //灵魂不稳定状态
     public float soulUnstableTime;          //灵魂不稳定状态时间
@@ -261,6 +263,14 @@ public class Character : MonoBehaviour
 
     public virtual void Attack2()
     {
+        if (canHitFloat)
+        {
+            int k = Random.Range(0, 101);
+            if (k <= floatProbability)
+            {
+                attackToFloat = true;
+            }
+        }
         Vector3 leftDir = GetMoveDir();
         if (leftDir.x > 0.3f)
         {

+ 8 - 0
ActionTowerDefense/Assets/Scripts/PlayerController.cs

@@ -1565,6 +1565,9 @@ public class PlayerController : MoveCharacter
         endChange = 0;
     }
 
+    public bool canArrowHitFloat;   //可以让弓箭手攻击概率漂浮
+    public float probability;       //攻击的漂浮概率
+
     public void Summon(int id)
     {
         if (id >= demonicPrefabs.Count)
@@ -1594,6 +1597,11 @@ public class PlayerController : MoveCharacter
         uiMp.Show(mp, totalMp);
         GameObject demonicObj = PoolManager.Instantiate(prefab);
         Demonic demonic = demonicObj.GetComponent<Demonic>();
+        if (canArrowHitFloat)
+        {
+            demonic.attackToFloat = true;
+            demonic.floatProbability = probability;
+        }
         demonic.id = id;
         demonic.playerID = playerId;
         if (!demonicDic.ContainsKey(id))

+ 5 - 4
ActionTowerDefense/Assets/Scripts/Spirits/Trans_Float.cs

@@ -8,6 +8,8 @@ public class Trans_Float : MonoBehaviour
     //public float changeTime;
     public Vector3 UIoffset;                //UIµ÷ÕûÖµ
 
+    public float floatProbability;          //Ư¸¡¸ÅÂÊ
+
     public int mpJ;
     public int mpK;
     public int mpL;
@@ -59,9 +61,8 @@ public class Trans_Float : MonoBehaviour
     private void Start()
     {
         controller = GetComponentInParent<PlayerController>();
-        controller.isMpRepel = false;
-        controller.mp = controller.totalMp;
-        controller.uiMp.Show(controller.mp, controller.totalMp);
+        controller.canArrowHitFloat = true;
+        controller.probability = floatProbability;
         //controller.changeTime = changeTime;
         dem = GetComponent<Demonic>();
         controller.canMove = true;
@@ -73,7 +74,7 @@ public class Trans_Float : MonoBehaviour
 
     private void OnDisable()
     {
-        controller.isMpRepel = true;
+        controller.canArrowHitFloat = false;
     }
 
     private void DeMp(int deMP)