Browse Source

御剑术

LAPTOP-OM1V99U2\永远de小亡灵 10 months ago
parent
commit
8539148609

+ 218 - 0
ActionTowerDefense/Assets/Resources/Prefab/Conduct/SwordsControl.prefab

@@ -0,0 +1,218 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &256012001268456902
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1639900831015566504}
+  m_Layer: 0
+  m_Name: SwordsControl
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1639900831015566504
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 256012001268456902}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 8283194513254342148}
+  - {fileID: 7905728122997361441}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1373031044951819773
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8283194513254342148}
+  - component: {fileID: 8894579418163447399}
+  m_Layer: 0
+  m_Name: Sprite
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &8283194513254342148
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373031044951819773}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 3, y: 3, z: 3}
+  m_ConstrainProportionsScale: 1
+  m_Children: []
+  m_Father: {fileID: 1639900831015566504}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &8894579418163447399
+SpriteRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373031044951819773}
+  m_Enabled: 1
+  m_CastShadows: 0
+  m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 0
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 0
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_FlipX: 0
+  m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
+  m_SpriteSortPoint: 0
+--- !u!1 &5080240558872983884
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6527116474255812546}
+  - component: {fileID: 6336452897766439345}
+  - component: {fileID: 7067166650331371016}
+  m_Layer: 0
+  m_Name: Trigger
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &6527116474255812546
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5080240558872983884}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 7905728122997361441}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!136 &6336452897766439345
+CapsuleCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5080240558872983884}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 1
+  m_Enabled: 1
+  m_Radius: 1.5
+  m_Height: 20
+  m_Direction: 2
+  m_Center: {x: 0, y: 0, z: 0}
+--- !u!114 &7067166650331371016
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5080240558872983884}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: c604126e73eee05488c8678f80cc7ea3, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  intervalTime: 0.3
+  damage: 0
+  moveCharacrters: []
+  totalTime: 3
+  time: 0
+  parent: {fileID: 256012001268456902}
+  owner: {fileID: 0}
+  conductId: 0
+--- !u!1 &8828199222583713393
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7905728122997361441}
+  m_Layer: 0
+  m_Name: Colliders
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &7905728122997361441
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8828199222583713393}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 6527116474255812546}
+  m_Father: {fileID: 1639900831015566504}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

+ 7 - 0
ActionTowerDefense/Assets/Resources/Prefab/Conduct/SwordsControl.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 28fffa39583087344b7b2620e7284dd5
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 2 - 2
ActionTowerDefense/Assets/Resources/Prefab/Player.prefab

@@ -1003,10 +1003,9 @@ MonoBehaviour:
   - 0
   - 0
   - 0
-  conductSkills: 000000000200000003000000
+  conductSkills: 000000000400000004000000
   conductCanRelease: 010101
   conductReadyTip: {fileID: 946637326309089849}
-  demonicNum: 
   bigGiant: {fileID: 5440846222648032759, guid: d64528a2dcc945b4a9ea5d5a859679f3, type: 3}
   photosphereObj: {fileID: 256012001268456902, guid: ba2e5bcb5c7ac604ea72b2fcb544a3cb, type: 3}
   addAttack: 0.2
@@ -1014,6 +1013,7 @@ MonoBehaviour:
   mountain: {fileID: 8587706472837483213, guid: d966b0d5004eaad49b37c963f1aaa584, type: 3}
   offset: {x: 0, y: 7, z: 0}
   mountainTime: 5
+  flyingSwordsObj: {fileID: 256012001268456902, guid: 28fffa39583087344b7b2620e7284dd5, type: 3}
   isClickBtnJump: 0
   isClickBtnRush: 0
   isKeepBtnRush: 0

+ 67 - 0
ActionTowerDefense/Assets/Scripts/Conduct/SwordsControl.cs

@@ -0,0 +1,67 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class SwordsControl : MonoBehaviour
+{
+    public float intervalTime;                                              //造成伤害的间隔时间
+    public int damage;                                                      //造成的伤害
+    public List<MoveCharacter> moveCharacrters = new List<MoveCharacter>(); //被造成伤害的角色
+    public float totalTime;                                                 //多少时间后消失
+    [HideInInspector] public float time;                                    //经过的时间
+    public GameObject parent;
+    public PlayerController owner;
+    public int conductId;
+
+    private void Update()
+    {
+        time += Time.deltaTime;
+        if (time >= totalTime)
+        {
+            owner.conductCanRelease[conductId] = true;
+            parent.SetActive(false);
+        }
+    }
+
+    private void OnTriggerEnter(Collider other)
+    {
+        BeHitTrigger beHitTrigger = other.GetComponent<BeHitTrigger>();
+        if (beHitTrigger != null)
+        {
+            if (other.gameObject.layer == 8 || other.gameObject.layer == 16 || other.gameObject.layer == 10)
+            {
+                MoveCharacter character = other.GetComponentInParent<MoveCharacter>();
+                moveCharacrters.Add(character);
+                character.sustainedInjuryTime = intervalTime;
+                character.sustainedInjury_IntervalTime = intervalTime;
+                character.sustainedInjury_damage = damage;
+                character.isSustainedInjury = true;
+            }
+        }
+    }
+
+    private void OnTriggerExit(Collider other)
+    {
+        BeHitTrigger beHitTrigger = other.GetComponent<BeHitTrigger>();
+        if (beHitTrigger != null)
+        {
+            if (other.gameObject.layer == 8 || other.gameObject.layer == 16)
+            {
+                MoveCharacter character = other.GetComponentInParent<MoveCharacter>();
+                if (moveCharacrters.Exists(i => i == character))
+                {
+                    character.isSustainedInjury = false;
+                    moveCharacrters.Remove(character);
+                }
+            }
+        }
+    }
+
+    private void OnDisable()
+    {
+        for (int i = 0; i < moveCharacrters.Count; i++)
+        {
+            moveCharacrters[i].isSustainedInjury = false;
+        }
+    }
+}

+ 11 - 0
ActionTowerDefense/Assets/Scripts/Conduct/SwordsControl.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c604126e73eee05488c8678f80cc7ea3
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 19 - 1
ActionTowerDefense/Assets/Scripts/PlayerController.cs

@@ -169,7 +169,6 @@ public class PlayerController : MoveCharacter
     public bool[] conductCanRelease;        //能否进入指挥技蓄力状态
     public ConductReadyTip conductReadyTip; //指挥技就绪
     private bool isReadyConduct;
-    public int[] demonicNum;                //JKL召唤的使魔的数量
     //大胖子
     public GameObject bigGiant;
     //光球
@@ -182,6 +181,8 @@ public class PlayerController : MoveCharacter
     public Vector3 offset;
     private GameObject curMountain;
     public float mountainTime;
+    //御剑术
+    public GameObject flyingSwordsObj;
 
     public enum ConductSkills
     {
@@ -190,6 +191,7 @@ public class PlayerController : MoveCharacter
         AddAttack,          //胖子:增加攻击力
 
         Mountain,           //气功师:泰山压顶
+        SwordsControl,      //气功师:御剑术
     }
 
 
@@ -804,6 +806,22 @@ public class PlayerController : MoveCharacter
                         costMp = false;
                     }
                     break;
+                case ConductSkills.SwordsControl:
+                    if (demonicDic[1].Count > 0)
+                    {
+                        conductCanRelease[cacheConductId] = false;
+                        GameObject obj = Instantiate(flyingSwordsObj, transform);
+                        obj.transform.position = transform.position + Vector3.up;
+                        SwordsControl swordsControl = obj.GetComponentInChildren<SwordsControl>();
+                        swordsControl.owner = this;
+                        swordsControl.conductId = cacheConductId;
+                        swordsControl.damage = 100 * demonicDic[1].Count;
+                    }
+                    else
+                    {
+                        costMp = false;
+                    }
+                    break;
             }
             if (costMp)
             {