瀏覽代碼

增加了标签技能解锁的数量阈值修改,在GameManager面板的标签界面下

HY-LSZNWIN10\Administrator 3 周之前
父節點
當前提交
76fbeee424

+ 163 - 0
ActionTowerDefense/Assets/Resources/Prefab/Meteorite.prefab

@@ -0,0 +1,163 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &3333295921388216335
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 3333295921388216334}
+  - component: {fileID: 3333295921388216331}
+  - component: {fileID: 3333295921388216328}
+  m_Layer: 0
+  m_Name: Sphere
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &3333295921388216334
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3333295921388216335}
+  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: 3333295921518144540}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &3333295921388216331
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3333295921388216335}
+  m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &3333295921388216328
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3333295921388216335}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+  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: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!1 &3333295921518144541
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 3333295921518144540}
+  - component: {fileID: 3333295921518144537}
+  - component: {fileID: 3333295921518144542}
+  - component: {fileID: 3333295921518144543}
+  m_Layer: 14
+  m_Name: Meteorite
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &3333295921518144540
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3333295921518144541}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: -3.8267114, y: 1.2953858, z: -0.028353961}
+  m_LocalScale: {x: 3, y: 3, z: 3}
+  m_ConstrainProportionsScale: 1
+  m_Children:
+  - {fileID: 3333295921388216334}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &3333295921518144537
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3333295921518144541}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 00300902a9e8f424aaa47884866d8404, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  speed: 20
+  baseDamage: 10
+--- !u!54 &3333295921518144542
+Rigidbody:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3333295921518144541}
+  serializedVersion: 2
+  m_Mass: 1
+  m_Drag: 0
+  m_AngularDrag: 0
+  m_UseGravity: 0
+  m_IsKinematic: 0
+  m_Interpolate: 0
+  m_Constraints: 112
+  m_CollisionDetection: 0
+--- !u!135 &3333295921518144543
+SphereCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3333295921518144541}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 1
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Radius: 0.5
+  m_Center: {x: 0, y: 0, z: 0}

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

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

+ 33 - 16
ActionTowerDefense/Assets/Resources/Prefab/MySoldier/Demonic_Arrow.prefab

@@ -142,7 +142,8 @@ MonoBehaviour:
         force: 0
         force: 0
         time: 0
         time: 0
         haveLandingDamage: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0
@@ -180,6 +181,7 @@ MonoBehaviour:
   isFly: 0
   isFly: 0
   decelerationRatioX: 2
   decelerationRatioX: 2
   decelerationRatioY: 15
   decelerationRatioY: 15
+  landingDamageFrom: {fileID: 0}
   rotateCenterHeight: 1
   rotateCenterHeight: 1
   startFlyAngle: 15
   startFlyAngle: 15
   flyingRotateSpeedRange: {x: 15, y: 45}
   flyingRotateSpeedRange: {x: 15, y: 45}
@@ -251,7 +253,8 @@ MonoBehaviour:
         force: 0
         force: 0
         time: 0
         time: 0
         haveLandingDamage: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0
@@ -772,10 +775,12 @@ MonoBehaviour:
   canBreakWall: 0
   canBreakWall: 0
   wallBrealNum: 10
   wallBrealNum: 10
   isShoot: 0
   isShoot: 0
-  owner: {fileID: 0}
   isSingleAttack: 0
   isSingleAttack: 0
+  isDoT: 0
+  owner: {fileID: 0}
   cantSingleAttack: 0
   cantSingleAttack: 0
   trigedObjs: []
   trigedObjs: []
+  trigedTime: []
   attackMethod:
   attackMethod:
     attackName: 
     attackName: 
     attackType: 0
     attackType: 0
@@ -811,7 +816,8 @@ MonoBehaviour:
         force: 0
         force: 0
         time: 0
         time: 0
         haveLandingDamage: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0
@@ -848,6 +854,7 @@ MonoBehaviour:
   repelValue: 0
   repelValue: 0
   offsetY: 1
   offsetY: 1
   hitRate: 1
   hitRate: 1
+  interval: 0
   isCreatedByDemonicSummon: 0
   isCreatedByDemonicSummon: 0
 --- !u!1 &3041216575519132682
 --- !u!1 &3041216575519132682
 GameObject:
 GameObject:
@@ -943,10 +950,12 @@ MonoBehaviour:
   canBreakWall: 0
   canBreakWall: 0
   wallBrealNum: 10
   wallBrealNum: 10
   isShoot: 1
   isShoot: 1
-  owner: {fileID: 0}
   isSingleAttack: 0
   isSingleAttack: 0
+  isDoT: 0
+  owner: {fileID: 0}
   cantSingleAttack: 0
   cantSingleAttack: 0
   trigedObjs: []
   trigedObjs: []
+  trigedTime: []
   attackMethod:
   attackMethod:
     attackName: 
     attackName: 
     attackType: 0
     attackType: 0
@@ -982,7 +991,8 @@ MonoBehaviour:
         force: 0
         force: 0
         time: 0
         time: 0
         haveLandingDamage: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0
@@ -1019,6 +1029,7 @@ MonoBehaviour:
   repelValue: 0
   repelValue: 0
   offsetY: 1
   offsetY: 1
   hitRate: 1
   hitRate: 1
+  interval: 0
   isCreatedByDemonicSummon: 0
   isCreatedByDemonicSummon: 0
 --- !u!1 &5307676761346103599
 --- !u!1 &5307676761346103599
 GameObject:
 GameObject:
@@ -1498,7 +1509,6 @@ MonoBehaviour:
   state: 0
   state: 0
   totalHp: 10
   totalHp: 10
   hp: 0
   hp: 0
-  regeneration: 0
   regenerationTime: 0
   regenerationTime: 0
   canFly: 1
   canFly: 1
   canControlFly: 0
   canControlFly: 0
@@ -1564,9 +1574,8 @@ MonoBehaviour:
   heavyDamage: 0
   heavyDamage: 0
   killer: {fileID: 0}
   killer: {fileID: 0}
   isFrozen: 0
   isFrozen: 0
-  electrifyAttackSpeedScale: 0.6
-  electrifyMoveSpeedScale: 0.6
   isElectrify: 0
   isElectrify: 0
+  electrifyEffect: {fileID: 0}
   isOnFire: 0
   isOnFire: 0
   fireStacks: 0
   fireStacks: 0
   searchState: 0
   searchState: 0
@@ -1584,6 +1593,7 @@ MonoBehaviour:
   isBack: 0
   isBack: 0
   baseSortingOrder: 8000
   baseSortingOrder: 8000
   runSpeed: 0
   runSpeed: 0
+  demoicTags: 5
   isReturnSoulTower: 0
   isReturnSoulTower: 0
   origSoulPos: {x: 0, y: 0, z: 0}
   origSoulPos: {x: 0, y: 0, z: 0}
   isRecorded: 0
   isRecorded: 0
@@ -1668,7 +1678,8 @@ MonoBehaviour:
         force: 0
         force: 0
         time: 0
         time: 0
         haveLandingDamage: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0
@@ -1735,7 +1746,8 @@ MonoBehaviour:
         force: 0
         force: 0
         time: 0
         time: 0
         haveLandingDamage: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0
@@ -1802,7 +1814,8 @@ MonoBehaviour:
         force: 0
         force: 0
         time: 0
         time: 0
         haveLandingDamage: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0
@@ -1869,7 +1882,8 @@ MonoBehaviour:
         force: 0
         force: 0
         time: 0
         time: 0
         haveLandingDamage: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0
@@ -1936,7 +1950,8 @@ MonoBehaviour:
         force: 0
         force: 0
         time: 0
         time: 0
         haveLandingDamage: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0
@@ -2004,7 +2019,8 @@ MonoBehaviour:
         force: 0
         force: 0
         time: 0
         time: 0
         haveLandingDamage: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0
@@ -2072,7 +2088,8 @@ MonoBehaviour:
         force: 0
         force: 0
         time: 0
         time: 0
         haveLandingDamage: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0

+ 19 - 10
ActionTowerDefense/Assets/Resources/Prefab/MySoldier/Demonic_Giant.prefab

@@ -94,10 +94,12 @@ MonoBehaviour:
   canBreakWall: 1
   canBreakWall: 1
   wallBrealNum: 10
   wallBrealNum: 10
   isShoot: 0
   isShoot: 0
-  owner: {fileID: 0}
   isSingleAttack: 0
   isSingleAttack: 0
+  isDoT: 0
+  owner: {fileID: 0}
   cantSingleAttack: 0
   cantSingleAttack: 0
   trigedObjs: []
   trigedObjs: []
+  trigedTime: []
   attackMethod:
   attackMethod:
     attackName: 
     attackName: 
     attackType: 0
     attackType: 0
@@ -133,7 +135,8 @@ MonoBehaviour:
         force: 0
         force: 0
         time: 0
         time: 0
         haveLandingDamage: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0
@@ -170,6 +173,7 @@ MonoBehaviour:
   repelValue: 0
   repelValue: 0
   offsetY: 1
   offsetY: 1
   hitRate: 1
   hitRate: 1
+  interval: 0
   isCreatedByDemonicSummon: 0
   isCreatedByDemonicSummon: 0
 --- !u!1 &2460330936527559963
 --- !u!1 &2460330936527559963
 GameObject:
 GameObject:
@@ -286,7 +290,8 @@ MonoBehaviour:
         force: 0
         force: 0
         time: 0
         time: 0
         haveLandingDamage: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0
@@ -370,7 +375,8 @@ MonoBehaviour:
         force: 0
         force: 0
         time: 0
         time: 0
         haveLandingDamage: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0
@@ -408,6 +414,7 @@ MonoBehaviour:
   isFly: 0
   isFly: 0
   decelerationRatioX: 2
   decelerationRatioX: 2
   decelerationRatioY: 15
   decelerationRatioY: 15
+  landingDamageFrom: {fileID: 0}
   rotateCenterHeight: 1
   rotateCenterHeight: 1
   startFlyAngle: 15
   startFlyAngle: 15
   flyingRotateSpeedRange: {x: 15, y: 45}
   flyingRotateSpeedRange: {x: 15, y: 45}
@@ -732,7 +739,6 @@ MonoBehaviour:
   state: 0
   state: 0
   totalHp: 200
   totalHp: 200
   hp: 0
   hp: 0
-  regeneration: 0
   regenerationTime: 0
   regenerationTime: 0
   canFly: 0
   canFly: 0
   canControlFly: 0
   canControlFly: 0
@@ -798,9 +804,8 @@ MonoBehaviour:
   heavyDamage: 0
   heavyDamage: 0
   killer: {fileID: 0}
   killer: {fileID: 0}
   isFrozen: 0
   isFrozen: 0
-  electrifyAttackSpeedScale: 0.6
-  electrifyMoveSpeedScale: 0.6
   isElectrify: 0
   isElectrify: 0
+  electrifyEffect: {fileID: 0}
   isOnFire: 0
   isOnFire: 0
   fireStacks: 0
   fireStacks: 0
   searchState: 0
   searchState: 0
@@ -818,6 +823,7 @@ MonoBehaviour:
   isBack: 0
   isBack: 0
   baseSortingOrder: 1000
   baseSortingOrder: 1000
   runSpeed: 0
   runSpeed: 0
+  demoicTags: 10
   isReturnSoulTower: 0
   isReturnSoulTower: 0
   origSoulPos: {x: 0, y: 0, z: 0}
   origSoulPos: {x: 0, y: 0, z: 0}
   isRecorded: 0
   isRecorded: 0
@@ -898,7 +904,8 @@ MonoBehaviour:
         force: 0
         force: 0
         time: 0
         time: 0
         haveLandingDamage: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0
@@ -965,7 +972,8 @@ MonoBehaviour:
         force: 0
         force: 0
         time: 0
         time: 0
         haveLandingDamage: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0
@@ -1032,7 +1040,8 @@ MonoBehaviour:
         force: 0
         force: 0
         time: 0
         time: 0
         haveLandingDamage: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0

+ 12 - 3
ActionTowerDefense/Assets/Resources/Prefab/MySoldier/Demonic_Sword.prefab

@@ -229,6 +229,7 @@ MonoBehaviour:
         time: 0
         time: 0
         haveLandingDamage: 0
         haveLandingDamage: 0
         landingDamageRate: 0
         landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0
@@ -346,7 +347,6 @@ MonoBehaviour:
   state: 0
   state: 0
   totalHp: 30
   totalHp: 30
   hp: 0
   hp: 0
-  regeneration: 0
   regenerationTime: 0
   regenerationTime: 0
   canFly: 0
   canFly: 0
   canControlFly: 0
   canControlFly: 0
@@ -431,6 +431,7 @@ MonoBehaviour:
   isBack: 0
   isBack: 0
   baseSortingOrder: 6000
   baseSortingOrder: 6000
   runSpeed: 0
   runSpeed: 0
+  demoicTags: 10
   isReturnSoulTower: 0
   isReturnSoulTower: 0
   origSoulPos: {x: 0, y: 0, z: 0}
   origSoulPos: {x: 0, y: 0, z: 0}
   isRecorded: 0
   isRecorded: 0
@@ -514,6 +515,7 @@ MonoBehaviour:
         time: 5
         time: 5
         haveLandingDamage: 1
         haveLandingDamage: 1
         landingDamageRate: 0
         landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0
@@ -580,6 +582,7 @@ MonoBehaviour:
         time: 0
         time: 0
         haveLandingDamage: 0
         haveLandingDamage: 0
         landingDamageRate: 0
         landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0
@@ -646,6 +649,7 @@ MonoBehaviour:
         time: 5
         time: 5
         haveLandingDamage: 1
         haveLandingDamage: 1
         landingDamageRate: 3
         landingDamageRate: 3
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0
@@ -713,6 +717,7 @@ MonoBehaviour:
         time: 0
         time: 0
         haveLandingDamage: 0
         haveLandingDamage: 0
         landingDamageRate: 0
         landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0
@@ -780,6 +785,7 @@ MonoBehaviour:
         time: 0
         time: 0
         haveLandingDamage: 0
         haveLandingDamage: 0
         landingDamageRate: 0
         landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0
@@ -852,10 +858,10 @@ MonoBehaviour:
     keys:
     keys:
     - attackType: 0
     - attackType: 0
       startKeyName: attack_on
       startKeyName: attack_on
-      startKeyTime: 0.51
+      startKeyTime: 0.5
       endType: 1
       endType: 1
       endKeyName: attack_off
       endKeyName: attack_off
-      endKeyTime: 0.56
+      endKeyTime: 0.5666667
     totalTime: 1
     totalTime: 1
   - aniName: attack_summon4
   - aniName: attack_summon4
     keys:
     keys:
@@ -1291,6 +1297,7 @@ MonoBehaviour:
         time: 0
         time: 0
         haveLandingDamage: 0
         haveLandingDamage: 0
         landingDamageRate: 0
         landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0
@@ -1755,6 +1762,7 @@ MonoBehaviour:
         time: 0
         time: 0
         haveLandingDamage: 0
         haveLandingDamage: 0
         landingDamageRate: 0
         landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0
@@ -1839,6 +1847,7 @@ MonoBehaviour:
         time: 0
         time: 0
         haveLandingDamage: 0
         haveLandingDamage: 0
         landingDamageRate: 0
         landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
         ControlOrder: 0
       weak:
       weak:
         time: 0
         time: 0

+ 13 - 1
ActionTowerDefense/Assets/Scenes/Game.unity

@@ -38,7 +38,7 @@ RenderSettings:
   m_ReflectionIntensity: 1
   m_ReflectionIntensity: 1
   m_CustomReflection: {fileID: 0}
   m_CustomReflection: {fileID: 0}
   m_Sun: {fileID: 0}
   m_Sun: {fileID: 0}
-  m_IndirectSpecularColor: {r: 0.08884769, g: 0.23271483, b: 0.22609791, a: 1}
+  m_IndirectSpecularColor: {r: 0.088847615, g: 0.23271477, b: 0.22609779, a: 1}
   m_UseRadianceAmbientProbe: 0
   m_UseRadianceAmbientProbe: 0
 --- !u!157 &3
 --- !u!157 &3
 LightmapSettings:
 LightmapSettings:
@@ -23756,6 +23756,10 @@ PrefabInstance:
       propertyPath: text
       propertyPath: text
       value: 
       value: 
       objectReference: {fileID: 1634269188}
       objectReference: {fileID: 1634269188}
+    - target: {fileID: 1880576200062196084, guid: bd8119632a1311b44ab791a903582d59, type: 3}
+      propertyPath: armor
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 1880576200062196084, guid: bd8119632a1311b44ab791a903582d59, type: 3}
     - target: {fileID: 1880576200062196084, guid: bd8119632a1311b44ab791a903582d59, type: 3}
       propertyPath: dodge
       propertyPath: dodge
       value: 0
       value: 0
@@ -23900,6 +23904,10 @@ PrefabInstance:
       propertyPath: windThunderLabelEffectRatio
       propertyPath: windThunderLabelEffectRatio
       value: 1
       value: 1
       objectReference: {fileID: 0}
       objectReference: {fileID: 0}
+    - target: {fileID: 1880576200062196084, guid: bd8119632a1311b44ab791a903582d59, type: 3}
+      propertyPath: dualAttributeUnlockThreshold
+      value: 10
+      objectReference: {fileID: 0}
     - target: {fileID: 1880576200062196084, guid: bd8119632a1311b44ab791a903582d59, type: 3}
     - target: {fileID: 1880576200062196084, guid: bd8119632a1311b44ab791a903582d59, type: 3}
       propertyPath: myTreasuresTag.Array.data[0]
       propertyPath: myTreasuresTag.Array.data[0]
       value: 0
       value: 0
@@ -23932,6 +23940,10 @@ PrefabInstance:
       propertyPath: myTreasuresTag.Array.data[7]
       propertyPath: myTreasuresTag.Array.data[7]
       value: 0
       value: 0
       objectReference: {fileID: 0}
       objectReference: {fileID: 0}
+    - target: {fileID: 1880576200062196084, guid: bd8119632a1311b44ab791a903582d59, type: 3}
+      propertyPath: singleAttributeUnlockThreshold
+      value: 5
+      objectReference: {fileID: 0}
     - target: {fileID: 1880576200062196085, guid: bd8119632a1311b44ab791a903582d59, type: 3}
     - target: {fileID: 1880576200062196085, guid: bd8119632a1311b44ab791a903582d59, type: 3}
       propertyPath: m_Name
       propertyPath: m_Name
       value: GameManager
       value: GameManager

+ 17 - 0
ActionTowerDefense/Assets/Scripts/Characters/Demonic.cs

@@ -29,6 +29,7 @@ public class Demonic : MoveCharacter
     public int baseSortingOrder;
     public int baseSortingOrder;
     public float runSpeed;
     public float runSpeed;
     private bool isFreeze;              //¶³½árb
     private bool isFreeze;              //¶³½árb
+    public DemoicTag demoicTags;
 
 
     [Header("Ëø»êËþ")]
     [Header("Ëø»êËþ")]
     public bool isReturnSoulTower;
     public bool isReturnSoulTower;
@@ -818,6 +819,12 @@ public class Demonic : MoveCharacter
         attackController.Attack_summon();
         attackController.Attack_summon();
         invincibleTime = attackController.attackTime;
         invincibleTime = attackController.attackTime;
         attackTarget = targetCharacter;
         attackTarget = targetCharacter;
+        //if(soldierType == SoldierType.shield)
+        //{
+        //    GameObject obj = PoolManager.Instantiate(Resources.Load<GameObject>("Prefab/Meteorite"));
+        //    int faceDir = bodyTrans.localScale.x >= 0 ? 1 : -1;
+        //    obj.GetComponent<Meteorite>().Init(transform.position + Vector3.left * faceDir * 3);
+        //}
     }
     }
 
 
     public virtual void Attack_march()
     public virtual void Attack_march()
@@ -861,3 +868,13 @@ public class Demonic : MoveCharacter
         }
         }
     }
     }
 }
 }
+
+[System.Flags]
+public enum DemoicTag
+{
+    None = 0,
+    Sky = 1 << 0,
+    Ground = 1 << 1,
+    Remote = 1 << 2,
+    Melee = 1 << 3,
+}

+ 3 - 0
ActionTowerDefense/Assets/Scripts/GameManager.cs

@@ -72,6 +72,9 @@ public class GameManager : MonoBehaviour
     [FoldoutGroup("金币结算")][LabelText("金币掉落字体")] public GameObject dropGoldText;
     [FoldoutGroup("金币结算")][LabelText("金币掉落字体")] public GameObject dropGoldText;
 
 
     [FoldoutGroup("标签")]
     [FoldoutGroup("标签")]
+    [FoldoutGroup("标签")] [LabelText("单属性解锁阈值")] public int singleAttributeUnlockThreshold = 5;
+    [FoldoutGroup("标签")] [LabelText("双属性解锁阈值")] public int dualAttributeUnlockThreshold = 10;
+
     [FoldoutGroup("标签/火")] [LabelText("是否启用")] public bool isFireEnable = false;
     [FoldoutGroup("标签/火")] [LabelText("是否启用")] public bool isFireEnable = false;
     [FoldoutGroup("标签/火")] [LabelText("触发概率")] [PropertyRange(0, 100)] public int fireProbability = 100;
     [FoldoutGroup("标签/火")] [LabelText("触发概率")] [PropertyRange(0, 100)] public int fireProbability = 100;
     [FoldoutGroup("标签/火")] [LabelText("灼烧伤害时间间隔")] public float fireInterval = 0.5f;
     [FoldoutGroup("标签/火")] [LabelText("灼烧伤害时间间隔")] public float fireInterval = 0.5f;

+ 36 - 17
ActionTowerDefense/Assets/Scripts/Meteorite.cs

@@ -4,27 +4,46 @@ using UnityEngine;
 
 
 public class Meteorite : MonoBehaviour
 public class Meteorite : MonoBehaviour
 {
 {
-
-    private void OnTriggerEnter(Collider other)
+    private Vector3 attackDir;
+    private Rigidbody rb;
+    public float speed;
+    public int baseDamage;
+    private int damage;
+    private void Awake()
     {
     {
-        
-        
+        rb = GetComponent<Rigidbody>();
     }
     }
 
 
-    //private Vector3 CalculateSpawnPosition(Vector3 targetPos)
-    //{
-    //    float randomOffsetX = Random.Range(-5, 5);
-    //    //Vector3 spawnPosition = new Vector3(targetPos.x + randomOffsetX,)
+    public void Init(Vector3 targetPos)
+    {
+        transform.position = CalculateSpawnPosition(targetPos);
+        rb.velocity = speed * attackDir;
+        damage = baseDamage + (int)((0.1f * GameManager.instance.armor + GameManager.instance.myTreasuresTag[3]) * baseDamage);
+    }
 
 
-    //    Camera mainCamera = Camera.main;
-    //    Vector3 screenPos = mainCamera.WorldToViewportPoint(spawnPosition);
+    private void OnTriggerEnter(Collider other)
+    {
+        BeHitTrigger target = other.GetComponent<BeHitTrigger>();
+        if (target != null)
+        {
+            if(target.owner is Enemy)
+            {
+                target.BeHit(damage);
+                Debug.Log("ÔÉʯÔì³ÉÉ˺¦");
+            }
+        }
+        if (other.CompareTag("Ground"))
+        {
+            gameObject.SetActive(false);
+        }
+    }
 
 
-    //    if (screenPos.y < 0.8f)
-    //    {
-    //        spawnPosition.y += 2f;
-    //    }
+    private Vector3 CalculateSpawnPosition(Vector3 targetPos)
+    {
+        float randomOffsetX = Random.Range(-8,8);
+        Vector3 spawnPos = new Vector3(targetPos.x + randomOffsetX, /*Camera.main.ScreenToWorldPoint(new Vector3(0f, Screen.height)).y*/ targetPos.y + 15f, 0);
 
 
-    //    //attackPosition = targetWorldPos;
-    //    return spawnPosition;
-    //}
+        attackDir = (targetPos - spawnPos).normalized;
+        return spawnPos;
+    }
 }
 }

+ 16 - 16
ActionTowerDefense/Assets/Scripts/UI/TreasuresSaleUI.cs

@@ -151,36 +151,36 @@ public class TreasuresSaleUI : MonoBehaviour
             switch(treasure.tagsId[i] - 1)
             switch(treasure.tagsId[i] - 1)
             {
             {
                 case 2:
                 case 2:
-                    if(gameManager.myTreasuresTag[2] >= 10) gameManager.isIceEnable = true;
-                    if (gameManager.myTreasuresTag[2] >= 20 && gameManager.myTreasuresTag[6] >= 20) gameManager.isFireIceEnable = true;
+                    if(gameManager.myTreasuresTag[2] >= GameManager.instance.singleAttributeUnlockThreshold) gameManager.isIceEnable = true;
+                    if (gameManager.myTreasuresTag[2] >= GameManager.instance.dualAttributeUnlockThreshold && gameManager.myTreasuresTag[6] >= GameManager.instance.dualAttributeUnlockThreshold) gameManager.isFireIceEnable = true;
                     break;
                     break;
                 case 6:
                 case 6:
-                    if (gameManager.myTreasuresTag[6] >= 10) gameManager.isFireEnable = true;
-                    if (gameManager.myTreasuresTag[2] >= 20 && gameManager.myTreasuresTag[6] >= 20) gameManager.isFireIceEnable = true;
+                    if (gameManager.myTreasuresTag[6] >= GameManager.instance.singleAttributeUnlockThreshold) gameManager.isFireEnable = true;
+                    if (gameManager.myTreasuresTag[2] >= GameManager.instance.dualAttributeUnlockThreshold && gameManager.myTreasuresTag[6] >= GameManager.instance.dualAttributeUnlockThreshold) gameManager.isFireIceEnable = true;
                     break;
                     break;
                 case 1:
                 case 1:
-                    if (gameManager.myTreasuresTag[1] >= 10) gameManager.isWindEnable = true;
-                    if (gameManager.myTreasuresTag[1] >= 20 && gameManager.myTreasuresTag[5] >= 20) gameManager.isWindThunderEnable = true;
+                    if (gameManager.myTreasuresTag[1] >= GameManager.instance.singleAttributeUnlockThreshold) gameManager.isWindEnable = true;
+                    if (gameManager.myTreasuresTag[1] >= GameManager.instance.dualAttributeUnlockThreshold && gameManager.myTreasuresTag[5] >= GameManager.instance.dualAttributeUnlockThreshold) gameManager.isWindThunderEnable = true;
                     break;
                     break;
                 case 5:
                 case 5:
-                    if (gameManager.myTreasuresTag[5] >= 10) gameManager.isThunderEnable = true;
-                    if (gameManager.myTreasuresTag[1] >= 20 && gameManager.myTreasuresTag[5] >= 20) gameManager.isWindThunderEnable = true;
+                    if (gameManager.myTreasuresTag[5] >= GameManager.instance.singleAttributeUnlockThreshold) gameManager.isThunderEnable = true;
+                    if (gameManager.myTreasuresTag[1] >= GameManager.instance.dualAttributeUnlockThreshold && gameManager.myTreasuresTag[5] >= GameManager.instance.dualAttributeUnlockThreshold) gameManager.isWindThunderEnable = true;
                     break;
                     break;
                 case 0:
                 case 0:
-                    if (gameManager.myTreasuresTag[0] >= 10) gameManager.isSkyEnable = true;
-                    if (gameManager.myTreasuresTag[0] >= 20 && gameManager.myTreasuresTag[4] >= 20) gameManager.isSkyGroundIceEnable = true;
+                    if (gameManager.myTreasuresTag[0] >= GameManager.instance.singleAttributeUnlockThreshold) gameManager.isSkyEnable = true;
+                    if (gameManager.myTreasuresTag[0] >= GameManager.instance.dualAttributeUnlockThreshold && gameManager.myTreasuresTag[4] >= GameManager.instance.dualAttributeUnlockThreshold) gameManager.isSkyGroundIceEnable = true;
                     break;
                     break;
                 case 4:
                 case 4:
-                    if (gameManager.myTreasuresTag[4] >= 10) gameManager.isGroundEnable = true;
-                    if (gameManager.myTreasuresTag[0] >= 20 && gameManager.myTreasuresTag[4] >= 20) gameManager.isSkyGroundIceEnable = true;
+                    if (gameManager.myTreasuresTag[4] >= GameManager.instance.singleAttributeUnlockThreshold) gameManager.isGroundEnable = true;
+                    if (gameManager.myTreasuresTag[0] >= GameManager.instance.dualAttributeUnlockThreshold && gameManager.myTreasuresTag[4] >= GameManager.instance.dualAttributeUnlockThreshold) gameManager.isSkyGroundIceEnable = true;
                     break;
                     break;
                 case 3:
                 case 3:
-                    if (gameManager.myTreasuresTag[3] >= 10) gameManager.isRockEnable = true;
-                    if (gameManager.myTreasuresTag[3] >= 20 && gameManager.myTreasuresTag[7] >= 20) gameManager.isWoodRockEnable = true;
+                    if (gameManager.myTreasuresTag[3] >= GameManager.instance.singleAttributeUnlockThreshold) gameManager.isRockEnable = true;
+                    if (gameManager.myTreasuresTag[3] >= GameManager.instance.dualAttributeUnlockThreshold && gameManager.myTreasuresTag[7] >= GameManager.instance.dualAttributeUnlockThreshold) gameManager.isWoodRockEnable = true;
                     break;
                     break;
                 case 7:
                 case 7:
-                    if (gameManager.myTreasuresTag[7] >= 10) gameManager.isWoodEnable = true;
-                    if (gameManager.myTreasuresTag[3] >= 20 && gameManager.myTreasuresTag[7] >= 20) gameManager.isWoodRockEnable = true;
+                    if (gameManager.myTreasuresTag[7] >= GameManager.instance.singleAttributeUnlockThreshold) gameManager.isWoodEnable = true;
+                    if (gameManager.myTreasuresTag[3] >= GameManager.instance.dualAttributeUnlockThreshold && gameManager.myTreasuresTag[7] >= GameManager.instance.dualAttributeUnlockThreshold) gameManager.isWoodRockEnable = true;
                     break;
                     break;
             }
             }
             shopUI.polygonText[treasure.tagsId[i] - 1].text = $"{gameManager.myTreasuresTag[treasure.tagsId[i] - 1]}";
             shopUI.polygonText[treasure.tagsId[i] - 1].text = $"{gameManager.myTreasuresTag[treasure.tagsId[i] - 1]}";