浏览代码

Merge remote-tracking branch 'origin/master'

HY-LSZNWIN10\Administrator 1 周之前
父节点
当前提交
8ebc260d0b

+ 9 - 13
ActionTowerDefense/Assets/Resources/Prefab/ESpirits/ESpirits_KiteNinja.prefab

@@ -731,7 +731,7 @@ Transform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 2245722223333163065}
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalPosition: {x: -0.33, y: 1.05, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
@@ -752,13 +752,11 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   owner: {fileID: 4381111746059301371}
   arrow: {fileID: 7473170563405908938, guid: 49e695ae2f4155043a4964f0a3e4a0b5, type: 3}
+  attackInterval: 0.2
+  attackNum: 10
   num: 3
-  angle: 10
-  arrivalAngle: 20
-  damage: 10
-  tryy: 0
-  gravity: 20
-  speed: 25
+  time: 0
+  startAttack: 0
 --- !u!1 &2475269063027159835
 GameObject:
   m_ObjectHideFlags: 0
@@ -1409,7 +1407,7 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   owner: {fileID: 0}
-  attackInterval: 0
+  attackInterval: 2.5
   addAttackEffect: {fileID: 0}
   isAttackTriggerOn: 0
   targetTypes: 010000000200000003000000
@@ -1466,7 +1464,7 @@ MonoBehaviour:
         time: 0
       stackingWounds:
         damage: 1
-        time: 1
+        time: 0.5
       changeDamage:
         rate: 0
       sustainedInjury:
@@ -1487,7 +1485,7 @@ MonoBehaviour:
     maxDownAngle: 180
     shootTrack: 1
     shootAlwaysTrack: 0
-    skill: {fileID: 0}
+    skill: {fileID: 5998292447067617811}
     additionalEffects: 0
   curAttackMethod:
     attackName: 
@@ -1567,7 +1565,7 @@ MonoBehaviour:
       endType: 1
       endKeyName: attack_off
       endKeyTime: 0.6666667
-    totalTime: 2
+    totalTime: 2.5
   - aniName: attack_summon
     keys:
     - attackType: 0
@@ -1718,8 +1716,6 @@ MonoBehaviour:
   dropProbability: 100
   dropSoulAngle: 60
   lockingLogic: {x: 1, y: 2}
-  attackInterval: 0
-  attackNum: 0
   targetIsPlayer: 0
   lockingNum: 0
   lockCharacter: {fileID: 0}

+ 36 - 31
ActionTowerDefense/Assets/Scripts/Skills/ChainShoot.cs

@@ -1,52 +1,57 @@
+using Sirenix.OdinInspector;
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class ChainShoot : SpecialSkills
 {
-    [Header("弓箭预制体")]
-    public GameObject arrow;
+    [LabelText("弓箭预制体")] public GameObject arrow;
+    [LabelText("连击间隔")] public float attackInterval;
+    [LabelText("连击次数")] public float attackNum;
 
-    [Header("齐发参数")]
     public int num;
-    public float angle;
-    public float arrivalAngle;
-    public int damage;
-    public bool tryy;
-    public float gravity = 9.8f;         // 重力加速度
-    public float speed;
+    public float time;
+    public bool startAttack;
+
+    private Vector3 attackDir;
 
     public override void Attack()
     {
         base.Attack();
-        Shoot();
+        time = 0;
+        num = 0;
+        startAttack = true;
     }
 
-    public void Shoot()
+    public void Update()
     {
-        float angleInterval = num > 1 ? angle / (float)(num - 1) : 0f;
-        for (int i = 0; i < num; i++)
+        if (startAttack)
         {
-            float ang;
-            GameObject obj = PoolManager.Instantiate(arrow);
-            MultiArrowController arrowController = obj.GetComponent<MultiArrowController>();
-            if (arrowController == null)
-            {
-                arrowController = obj.AddComponent<MultiArrowController>();
-            }
-            if (owner.bodyTrans.localScale.x > 0)
-            {
-                ang = 180 - arrivalAngle - angle / 2 + i * angleInterval;
-            }
-            else
+            time += Time.deltaTime;
+            if(time > attackInterval)
             {
-                ang = arrivalAngle - angle / 2 + i * angleInterval;
+                time = 0;
+                if(owner.targetCharacter == null)
+                {
+                    startAttack = false;
+                    owner.ChangeState(CharacterState.Idle);
+                    return;
+                }
+                attackDir = (owner.targetCharacter.beSearchTrigger.transform.position - transform.position).normalized;
+                Shoot();
+                num ++;
+                if(num >= attackNum)
+                {
+                    startAttack = false;
+                }
             }
-            ang = ang / 180 * Mathf.PI;
-            Vector3 dir = new Vector3(Mathf.Cos(ang), Mathf.Sin(ang), 0);
-            arrowController.Initialize(gravity, speed);
-            obj.GetComponent<Bullet>().BeShoot(owner, transform.position, dir, false);
-
         }
     }
+
+    public void Shoot()
+    {
+        Bullet bullet = PoolManager.Instantiate(arrow).GetComponent<Bullet>();
+        AttackController.AttackMethod attackMethod = owner.attackController.attackMethod_march[0];
+        bullet.BeShoot(owner, transform.position, attackDir,true,target:owner.targetCharacter);
+    }
 }

+ 18 - 6
ActionTowerDefense/Assets/Scripts/Spirits/ESpirits_KiteNinja.cs

@@ -9,8 +9,6 @@ public class ESpirits_KiteNinja : Enemy
     [Title("ESpirits_Assassin属性")]
     [Tooltip("X为锁定玩家次数Y为锁定肉盾次数")]
     [LabelText("锁敌逻辑")] public Vector2 lockingLogic;
-    [LabelText("连击间隔")] public float attackInterval;
-    [LabelText("连击次数")] public float attackNum;
     public bool targetIsPlayer;
     public int lockingNum;
     private PlayerController player;
@@ -24,6 +22,17 @@ public class ESpirits_KiteNinja : Enemy
         ChooseLockingTarget();
     }
 
+    public override void ChangeState(CharacterState newState)
+    {
+        switch (state)
+        {
+            case CharacterState.Attack:
+                ChooseLockingTarget();
+                break;
+        }
+        base.ChangeState(newState);
+    }
+
     public override bool SearchTarget()
     {
         targetCharacter = lockCharacter;
@@ -39,6 +48,7 @@ public class ESpirits_KiteNinja : Enemy
             {
                 targetIsPlayer = false;
                 lockingNum = 0;
+                ChooseLockingTarget();
             }
             else
             {
@@ -51,22 +61,23 @@ public class ESpirits_KiteNinja : Enemy
             {
                 targetIsPlayer = true;
                 lockingNum = 0;
+                lockCharacter = player;
             }
             else
             {
-                if (player.demonicDic[0].Count == 0)
+                if (player.demonicDic[1].Count == 0)
                 {
                     lockCharacter = player;
                     lockingNum--;
                 }
                 else
                 {
-                    lockCharacter = player.demonicDic[0][0];
+                    lockCharacter = player.demonicDic[1][0];
                     Vector3 myPos = transform.position;
                     float minDistance = Vector3.Distance(myPos, lockCharacter.transform.position);
-                    for (int i = 0; i < player.demonicDic[0].Count; i++)
+                    for (int i = 0; i < player.demonicDic[1].Count; i++)
                     {
-                        Demonic demonic = player.demonicDic[0][i];
+                        Demonic demonic = player.demonicDic[1][i];
                         float distance = Vector3.Distance(myPos, demonic.transform.position);
                         if (minDistance > distance)
                         {
@@ -77,5 +88,6 @@ public class ESpirits_KiteNinja : Enemy
                 }
             }
         }
+        targetCharacter = lockCharacter;
     }
 }

+ 4 - 4
ActionTowerDefense/GenerateDatas/json/cfgcreateenemy1.json

@@ -679,10 +679,10 @@
     "WaveTime": 0,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "刺客",
+    "EnemyName": "风筝忍者",
     "Position": [
       56,
-      1
+      8
     ],
     "StartTime": 0,
     "EndTime": 10,
@@ -779,10 +779,10 @@
     "WaveTime": 0,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "刺客",
+    "EnemyName": "风筝忍者",
     "Position": [
       56,
-      1
+      8
     ],
     "StartTime": 0,
     "EndTime": 10,

+ 4 - 4
ActionTowerDefense/GenerateDatas/json/cfgcreateenemy5.json

@@ -579,10 +579,10 @@
     "WaveTime": 0,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "刺客",
+    "EnemyName": "风筝忍者",
     "Position": [
       56,
-      1
+      8
     ],
     "StartTime": 0,
     "EndTime": 10,
@@ -679,10 +679,10 @@
     "WaveTime": 0,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "刺客",
+    "EnemyName": "风筝忍者",
     "Position": [
       56,
-      1
+      8
     ],
     "StartTime": 0,
     "EndTime": 10,

+ 4 - 4
ActionTowerDefense/GenerateDatas/json/cfgcreateenemy6.json

@@ -579,10 +579,10 @@
     "WaveTime": 0,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "刺客",
+    "EnemyName": "风筝忍者",
     "Position": [
       56,
-      1
+      8
     ],
     "StartTime": 0,
     "EndTime": 10,
@@ -679,10 +679,10 @@
     "WaveTime": 0,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "刺客",
+    "EnemyName": "风筝忍者",
     "Position": [
       56,
-      1
+      8
     ],
     "StartTime": 0,
     "EndTime": 10,

二进制
ActionTowerDefense/Luban/Config/Datas/EnemyCreater/出怪表1.xlsx


二进制
ActionTowerDefense/Luban/Config/Datas/EnemyCreater/出怪表5.xlsx


二进制
ActionTowerDefense/Luban/Config/Datas/EnemyCreater/出怪表6.xlsx