Răsfoiți Sursa

调整蝌蚪的血量和攻击力,现在boss暂时无法被攻击打出僵直,实现boss根据血量阶段掉魂,以及一个扔苦无的攻击方式

HY-LSZNWIN10\Administrator 1 săptămână în urmă
părinte
comite
d5218e6c83

+ 41 - 19
ActionTowerDefense/Assets/Resources/Prefab/Boss/WaterSprite/Boss_Braid.prefab

@@ -61,10 +61,12 @@ MonoBehaviour:
   canBreakWall: 0
   wallBrealNum: 10
   isShoot: 0
-  owner: {fileID: 0}
   isSingleAttack: 0
+  isDoT: 0
+  owner: {fileID: 0}
   cantSingleAttack: 0
   trigedObjs: []
+  trigedTime: []
   attackMethod:
     attackName: 
     attackType: 0
@@ -73,6 +75,7 @@ MonoBehaviour:
       damage: 0
       attackDir: {x: 0, y: 0, z: 0}
       criticalChance: 0
+      criticalStrikeEffect: 0
       lifesteal: 0
       effect: {fileID: 0}
       attackEffect: 
@@ -100,7 +103,8 @@ MonoBehaviour:
         force: 0
         time: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
       weak:
         time: 0
@@ -137,6 +141,7 @@ MonoBehaviour:
   repelValue: 0
   offsetY: 1
   hitRate: 1
+  interval: 0
   isCreatedByDemonicSummon: 0
 --- !u!1 &16214313371456545
 GameObject:
@@ -309,7 +314,6 @@ MonoBehaviour:
   state: 0
   totalHp: 3000
   hp: 0
-  regeneration: 0
   regenerationTime: 0
   canFly: 1
   canControlFly: 0
@@ -328,7 +332,9 @@ MonoBehaviour:
   cookEffect: {fileID: 0}
   Attack_summonShootCanTransmit: 0
   debugAttackFrom: 0
-  hitResistance: 0
+  charactertag: 0
+  hitResistance: 300
+  bc: {fileID: 0}
   foot: {fileID: 16214315070486857}
   attributeStatus: {fileID: 0}
   hitFeedbackSystem: {fileID: 0}
@@ -359,7 +365,7 @@ MonoBehaviour:
   reductionDegree: 0
   reductionEffect: {fileID: 0}
   effect: {fileID: 0}
-  soulPrefab: {fileID: 0}
+  soulPrefab: {fileID: 1723151111827507807, guid: e2b65aa482f2f1447a4074208d72b778, type: 3}
   soulStartSpeed: 1
   isInvisible: 0
   invisibleTime: 0
@@ -373,12 +379,8 @@ MonoBehaviour:
   heavyDamage: 0
   killer: {fileID: 0}
   isFrozen: 0
-  electrifyAttackSpeedScale: 0.6
-  electrifyMoveSpeedScale: 0.6
   isElectrify: 0
-  isPetrify: 0
-  petrifyTime: 0
-  petrifyHp: 0
+  electrifyEffect: {fileID: 0}
   isOnFire: 0
   fireStacks: 0
   curTarget: 0
@@ -387,10 +389,10 @@ MonoBehaviour:
   - idle
   - idle2
   weight: 0300000001000000
-  circulate: ABBAB
+  circulate: BBB
   categories: 0000000001000000
-  minInterval: 1
-  maxInterval: 3
+  minInterval: 0.5
+  maxInterval: 1
   curInterval: 0
   bossState: 0
   weakTime: 6
@@ -403,6 +405,15 @@ MonoBehaviour:
   disappearTime: 1
   createRoomTime: 1.667
   changeRoomTime: 1
+  hpRadio:
+  - 0.8
+  - 0.6
+  - 0.4
+  - 0.2
+  stage: 0
+  dropSoulMax: 6
+  dropSoulMin: 3
+  dropSoulAngle: 60
   attackConfigurations:
   - category: 0
     attacks:
@@ -414,9 +425,11 @@ MonoBehaviour:
       weight: 1
     - attack: 3
       weight: 2
+    - attack: 5
+      weight: 100
   - category: 2
     attacks: []
-  polliNum: 100
+  polliNum: 50
   pws: {fileID: 566765055176838525}
   changeStateHPPer: 500000003200000014000000
   polliTime: 5
@@ -432,6 +445,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 510b62b1c3fa05644965b46b53285aa3, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  owner: {fileID: 0}
   attackInterval: 0
   addAttackEffect: {fileID: 0}
   isAttackTriggerOn: 0
@@ -449,6 +463,7 @@ MonoBehaviour:
       damage: 0
       attackDir: {x: 0, y: 0, z: 0}
       criticalChance: 0
+      criticalStrikeEffect: 0
       lifesteal: 0
       effect: {fileID: 0}
       attackEffect: 
@@ -476,7 +491,8 @@ MonoBehaviour:
         force: 0
         time: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
       weak:
         time: 0
@@ -524,6 +540,7 @@ MonoBehaviour:
   shootEndTime: 1.433
   isUmbrellaBack: 0
   hairPrefab: {fileID: 431104053419175321, guid: 6cee5822ea2b0004dbc5f8064b71ab88, type: 3}
+  kunaiPrefab: {fileID: 3012442029607968663, guid: a9a7832981a3e794aa30d782119206b1, type: 3}
 --- !u!114 &16214313399265847
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -1037,6 +1054,7 @@ MonoBehaviour:
       damage: 0
       attackDir: {x: 0, y: 0, z: 0}
       criticalChance: 0
+      criticalStrikeEffect: 0
       lifesteal: 0
       effect: {fileID: 0}
       attackEffect: 
@@ -1064,7 +1082,8 @@ MonoBehaviour:
         force: 0
         time: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
       weak:
         time: 0
@@ -1102,6 +1121,7 @@ MonoBehaviour:
   isFly: 0
   decelerationRatioX: 2
   decelerationRatioY: 15
+  landingDamageFrom: {fileID: 0}
   rotateCenterHeight: 1
   startFlyAngle: 0
   flyingRotateSpeedRange: {x: 0, y: 0}
@@ -1116,8 +1136,8 @@ MonoBehaviour:
   resistances:
     controlOrder: 0
     Float: 0
-    BlowUp: 0
-    ShotDown: 0
+    BlowUp: 1
+    ShotDown: 1
     Weak: 0
     armor: 50
     dodge: 0
@@ -1146,6 +1166,7 @@ MonoBehaviour:
       damage: 0
       attackDir: {x: 0, y: 0, z: 0}
       criticalChance: 0
+      criticalStrikeEffect: 0
       lifesteal: 0
       effect: {fileID: 0}
       attackEffect: 
@@ -1173,7 +1194,8 @@ MonoBehaviour:
         force: 0
         time: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
       weak:
         time: 0

+ 38 - 19
ActionTowerDefense/Assets/Resources/Prefab/Enemy/Enemy_Polliwog.prefab

@@ -63,7 +63,6 @@ MonoBehaviour:
   owner: {fileID: 0}
   attackerID: 0
   curX: 0
-  mats: []
 --- !u!114 &7408804304830896187
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -85,6 +84,7 @@ MonoBehaviour:
       damage: 0
       attackDir: {x: 0, y: 0, z: 0}
       criticalChance: 0
+      criticalStrikeEffect: 0
       lifesteal: 0
       effect: {fileID: 0}
       attackEffect: 
@@ -112,7 +112,8 @@ MonoBehaviour:
         force: 0
         time: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
       weak:
         time: 0
@@ -150,6 +151,7 @@ MonoBehaviour:
   isFly: 0
   decelerationRatioX: 2
   decelerationRatioY: 15
+  landingDamageFrom: {fileID: 0}
   rotateCenterHeight: 1
   startFlyAngle: 15
   flyingRotateSpeedRange: {x: 15, y: 45}
@@ -157,9 +159,10 @@ MonoBehaviour:
   compressionSpeed: {x: 0.2, y: 0.4}
   jumpVel: 5
   haveVulnerable: 0
+  vulnerableRate: 0
   vulnerableTime: 0
   stackingWoudsTime: 0
-  stackingWordsNum: 0
+  stackingWords: 0
   resistances:
     controlOrder: 0
     Float: -0
@@ -193,6 +196,7 @@ MonoBehaviour:
       damage: 0
       attackDir: {x: 0, y: 0, z: 0}
       criticalChance: 0
+      criticalStrikeEffect: 0
       lifesteal: 0
       effect: {fileID: 0}
       attackEffect: 
@@ -220,7 +224,8 @@ MonoBehaviour:
         force: 0
         time: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
       weak:
         time: 0
@@ -854,10 +859,12 @@ MonoBehaviour:
   canBreakWall: 0
   wallBrealNum: 10
   isShoot: 0
-  owner: {fileID: 0}
   isSingleAttack: 0
+  isDoT: 0
+  owner: {fileID: 0}
   cantSingleAttack: 0
   trigedObjs: []
+  trigedTime: []
   attackMethod:
     attackName: 
     attackType: 0
@@ -866,6 +873,7 @@ MonoBehaviour:
       damage: 0
       attackDir: {x: 0, y: 0, z: 0}
       criticalChance: 0
+      criticalStrikeEffect: 0
       lifesteal: 0
       effect: {fileID: 0}
       attackEffect: 
@@ -893,7 +901,8 @@ MonoBehaviour:
         force: 0
         time: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
       weak:
         time: 0
@@ -930,6 +939,7 @@ MonoBehaviour:
   repelValue: 0
   offsetY: 1
   hitRate: 1
+  interval: 0
   isCreatedByDemonicSummon: 0
 --- !u!1 &6946548908041813966
 GameObject:
@@ -1038,9 +1048,8 @@ MonoBehaviour:
   targetCharacter: {fileID: 0}
   attackTarget: {fileID: 0}
   state: 0
-  totalHp: 10
+  totalHp: 80
   hp: 0
-  regeneration: 0
   regenerationTime: 0
   canFly: 1
   canControlFly: 0
@@ -1059,7 +1068,9 @@ MonoBehaviour:
   cookEffect: {fileID: 0}
   Attack_summonShootCanTransmit: 0
   debugAttackFrom: 0
+  charactertag: 0
   hitResistance: 0
+  bc: {fileID: 0}
   foot: {fileID: 7116616475404866513}
   attributeStatus: {fileID: 0}
   hitFeedbackSystem: {fileID: 0}
@@ -1072,6 +1083,12 @@ MonoBehaviour:
   platformRotZ: 0
   RotLerpSpeed: 0.6
   RotLerpTime: 0
+  needToAdjustFlyHeight: 0
+  flyHeight: 0
+  maxFlyHeight: 0
+  minFlyHeight: 0
+  flyUpTime: 0
+  isAdjustHeight: 0
   matState: 1
   spinee: {fileID: 0}
   mesh: {fileID: 0}
@@ -1079,12 +1096,7 @@ MonoBehaviour:
   outlineMats: []
   outline1Mats: []
   moveSpeed: 5
-  needToAdjustFlyHeight: 0
-  flyHeight: 0
-  maxFlyHeight: 0
-  minFlyHeight: 0
-  flyUpTime: 0
-  isAdjustHeight: 0
+  moveSpeedScale: 1
   isDamageReduction: 0
   reductionDegree: 0
   reductionEffect: {fileID: 0}
@@ -1103,9 +1115,11 @@ MonoBehaviour:
   heavyDamage: 0
   killer: {fileID: 0}
   isFrozen: 0
-  frozenTime: 0
+  isElectrify: 0
+  electrifyEffect: {fileID: 0}
+  isOnFire: 0
+  fireStacks: 0
   exp: 0
-  tag: 0
   dieEffect: {fileID: 417478504669294145, guid: f5cc405e554183b4fbc852e207d56d5e, type: 3}
   name: 
   baseSortingOrder: 3000
@@ -1153,6 +1167,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 565fb65a48a8ef648b3096d46e15efd9, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  owner: {fileID: 0}
   attackInterval: 0
   addAttackEffect: {fileID: 0}
   isAttackTriggerOn: 0
@@ -1166,9 +1181,10 @@ MonoBehaviour:
     attackType: 0
     attackInfo:
       attackValue: 0
-      damage: 0
+      damage: 3
       attackDir: {x: 0, y: 0, z: 0}
       criticalChance: 0
+      criticalStrikeEffect: 0
       lifesteal: 0
       effect: {fileID: 0}
       attackEffect: 
@@ -1196,7 +1212,8 @@ MonoBehaviour:
         force: 0
         time: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
       weak:
         time: 0
@@ -1236,6 +1253,7 @@ MonoBehaviour:
       damage: 0
       attackDir: {x: 0, y: 0, z: 0}
       criticalChance: 0
+      criticalStrikeEffect: 0
       lifesteal: 0
       effect: {fileID: 0}
       attackEffect: 
@@ -1263,7 +1281,8 @@ MonoBehaviour:
         force: 0
         time: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
         ControlOrder: 0
       weak:
         time: 0

+ 394 - 0
ActionTowerDefense/Assets/Resources/Prefab/Kunai.prefab

@@ -0,0 +1,394 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &281045296996441554
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 281045296996441553}
+  - component: {fileID: 281045296996441552}
+  m_Layer: 0
+  m_Name: Trail
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &281045296996441553
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 281045296996441554}
+  m_LocalRotation: {x: -0, y: 0.7071068, z: -0, w: 0.7071068}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 2, y: 18.948, z: 2}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 281045297363441383}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!96 &281045296996441552
+TrailRenderer:
+  serializedVersion: 2
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 281045296996441554}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 0
+  m_LightProbeUsage: 0
+  m_ReflectionProbeUsage: 0
+  m_RayTracingMode: 0
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 2100000, guid: c1cf7ff6fbaf16f448d4560b7ffa0184, 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_Time: 0.3
+  m_Parameters:
+    serializedVersion: 3
+    widthMultiplier: 0.5
+    widthCurve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 1
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      - serializedVersion: 3
+        time: 1
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    colorGradient:
+      serializedVersion: 2
+      key0: {r: 1, g: 0, b: 0.009994984, a: 0}
+      key1: {r: 1, g: 0.043130882, b: 0, a: 0.12156863}
+      key2: {r: 0.9755827, g: 1, b: 0.2980392, a: 0.11764706}
+      key3: {r: 0, g: 0, b: 0, a: 0}
+      key4: {r: 0, g: 0, b: 0, a: 0}
+      key5: {r: 0, g: 0, b: 0, a: 0}
+      key6: {r: 0, g: 0, b: 0, a: 0}
+      key7: {r: 0, g: 0, b: 0, a: 0}
+      ctime0: 6746
+      ctime1: 33519
+      ctime2: 65535
+      ctime3: 0
+      ctime4: 0
+      ctime5: 0
+      ctime6: 0
+      ctime7: 0
+      atime0: 0
+      atime1: 1618
+      atime2: 13639
+      atime3: 65535
+      atime4: 0
+      atime5: 0
+      atime6: 0
+      atime7: 0
+      m_Mode: 0
+      m_NumColorKeys: 2
+      m_NumAlphaKeys: 4
+    numCornerVertices: 0
+    numCapVertices: 0
+    alignment: 0
+    textureMode: 0
+    shadowBias: 0.5
+    generateLightingData: 0
+  m_MinVertexDistance: 0.1
+  m_Autodestruct: 0
+  m_Emitting: 1
+--- !u!1 &281045297363441376
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 281045297363441383}
+  - component: {fileID: 281045297363441382}
+  m_Layer: 14
+  m_Name: Sprite
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &281045297363441383
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 281045297363441376}
+  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: 281045296996441553}
+  m_Father: {fileID: 3012442029607968660}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &281045297363441382
+SpriteRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 281045297363441376}
+  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: 21300000, guid: 6414689c6ce341b459448ca91afbe822, type: 3}
+  m_Color: {r: 1, g: 1, b: 1, a: 0.5882353}
+  m_FlipX: 0
+  m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1.99, y: 0.42}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
+  m_SpriteSortPoint: 0
+--- !u!1 &3012442029607968663
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 3012442029607968660}
+  - component: {fileID: 2926118631385132289}
+  - component: {fileID: 2997434049170850754}
+  - component: {fileID: 4107203738952920787}
+  m_Layer: 14
+  m_Name: Kunai
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &3012442029607968660
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3012442029607968663}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 1.971, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 281045297363441383}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!65 &2926118631385132289
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3012442029607968663}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 1
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 1.9734082, y: 0.43229318, z: 20}
+  m_Center: {x: -0.0006122589, y: -0.003823638, z: 0}
+--- !u!114 &2997434049170850754
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3012442029607968663}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 9a4a2dbc1e482cd4b9f1532e1fddcb30, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  stopTime: 1.5
+  isBulletMove: 1
+  owner: {fileID: 0}
+  attackMethod:
+    attackName: 
+    attackType: 0
+    attackInfo:
+      attackValue: 0
+      damage: 30
+      attackDir: {x: 0, y: 0, z: 0}
+      criticalChance: 0
+      criticalStrikeEffect: 0
+      lifesteal: 0
+      effect: {fileID: 0}
+      attackEffect: 
+      attackMethod_Type: 0
+      floatState:
+        time: 0
+        upTime: {x: 0, y: 0}
+        backSpeed: {x: 0, y: 0}
+        rotateSpeed: {x: 0, y: 0}
+        height: {x: 0, y: 0}
+        ControlOrder: 0
+      blowUp:
+        directionType: 0
+        dir: {x: 0, y: 0, z: 0}
+        dirRandom: {x: 0, y: 0, z: 0}
+        force: 0
+        time: 0
+        haveLandingDamage: 0
+        landingDamageRate: 0
+        ControlOrder: 0
+      shotDown:
+        directionType: 0
+        dir: {x: 0, y: 0, z: 0}
+        dirRandom: {x: 0, y: 0, z: 0}
+        force: 0
+        time: 0
+        haveLandingDamage: 0
+        landingDamageRate: 0
+        minLandingDamage: 0
+        ControlOrder: 0
+      weak:
+        time: 0
+        ControlOrder: 0
+      armorPiercing:
+        rate: 0
+      vulnerable:
+        rate: 0
+        time: 0
+      stackingWounds:
+        damage: 0
+        time: 0
+      changeDamage:
+        rate: 0
+      sustainedInjury:
+        damage: 0
+    attackTrigger: {fileID: 0}
+    needToChange: 0
+    attackDistance: 0
+    maxAttackDis: 0
+    minAttackDis: 0
+    searchMode: 0
+    canHitFly: 0
+    bulletPrefab: {fileID: 0}
+    shootPos: []
+    maxUpAngle: 0
+    maxDownAngle: 0
+    shootTrack: 0
+    shootAlwaysTrack: 0
+    skill: {fileID: 0}
+    additionalEffects: 0
+  rb: {fileID: 0}
+  trigedObjs: []
+  bulletType: 0
+  isGetTarget: 0
+  speed: 20
+  maxFlyTime: 2
+  flyTime: 0
+  trackTarget: {fileID: 0}
+  effect: {fileID: 0}
+  disappearEffect: {fileID: 0}
+  canTransmit: 0
+  haveTransmit: 0
+  transmitTime: 0
+  canStop: 0
+  isTrack: 0
+  canAlwaysTrack: 0
+  isCreatedByDemonicSummon: 0
+  canPassGround: 0
+  originalScale: {x: 0, y: 0, z: 0}
+--- !u!54 &4107203738952920787
+Rigidbody:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3012442029607968663}
+  serializedVersion: 2
+  m_Mass: 1
+  m_Drag: 0
+  m_AngularDrag: 0.05
+  m_UseGravity: 0
+  m_IsKinematic: 0
+  m_Interpolate: 0
+  m_Constraints: 56
+  m_CollisionDetection: 0

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

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

BIN
ActionTowerDefense/Assets/Resources/Textures/苦无图标.png


+ 123 - 0
ActionTowerDefense/Assets/Resources/Textures/苦无图标.png.meta

@@ -0,0 +1,123 @@
+fileFormatVersion: 2
+guid: 6414689c6ce341b459448ca91afbe822
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 34 - 1
ActionTowerDefense/Assets/Scripts/Boss/Boss.cs

@@ -95,6 +95,14 @@ public class Boss : MoveCharacter
     [LabelText("出现后多久切换房间")]
     public float changeRoomTime;
     private float changeAniTime;
+    [LabelText("爆蓝血量比例")]
+    public float[] hpRadio;
+    public int stage = 0;
+    [Header("掉落魂")]
+    public int dropSoulMax = 3;
+    public int dropSoulMin = 1;
+    public float dropSoulAngle = 60f;
+
 
     private AttributeStatus status;
 
@@ -260,6 +268,7 @@ public class Boss : MoveCharacter
         switch (bs)
         {
             case BossState.weak:
+                Debug.Log("切换虚弱状态");
                 ClearAllSkills();
                 ani.Play("fall", 0, 0);
                 rb.constraints = RigidbodyConstraints.FreezeRotation | RigidbodyConstraints.FreezePositionZ;
@@ -307,9 +316,11 @@ public class Boss : MoveCharacter
         {
             return;
         }
+        Debug.Log("从" + state + "转换到" + newState);
         switch (state)
         {
             case CharacterState.Attack:
+                //hitResistance = 0;
                 ClearAllSkills();
                 break;
             case CharacterState.Run:
@@ -338,6 +349,7 @@ public class Boss : MoveCharacter
             case CharacterState.Attack:
                 if (!isToBossRoom)
                 {
+                    //hitResistance = 300;
                     Attack();
                 }
                 break;
@@ -398,8 +410,29 @@ public class Boss : MoveCharacter
             }
         }
         OnBossState();
+        if(stage < hpRadio.Length)
+        {
+            if ((float)hp / (float)totalHp < hpRadio[stage])
+            {
+                stage++;
+                DropSouls();
+            }
+        }
+    }
+    public void DropSouls()
+    {
+        int dropSoulNum = Random.Range(dropSoulMin, dropSoulMax + 1);
+        for (int i = 0; i < dropSoulNum; i++)
+        {
+            float angleInterval = dropSoulAngle / (float)(dropSoulNum - 1);
+            float angle = 90 + ((float)i - (float)(dropSoulNum - 1) / 2) * angleInterval;
+            angle = angle / 180 * Mathf.PI;
+            GameObject soulObj = PoolManager.Instantiate(soulPrefab, transform.position);
+            Vector3 dir = new Vector3(Mathf.Cos(angle), Mathf.Sin(angle), 0);
+            Soul soul = soulObj.GetComponent<Soul>();
+            soul.Burst(dir * soulStartSpeed);
+        }
     }
-
     public virtual void ToMove()
     {
     }

+ 6 - 1
ActionTowerDefense/Assets/Scripts/Boss/WaterGhost/WaterSprite.cs

@@ -12,6 +12,7 @@ public class WaterSprite : Boss
         Lotus,      //召唤莲花
         Hair,       //辫子攻击
         Rush,       //水面冲刺
+        Shoot,      //苦无射击
     }
 
     public enum BossStage
@@ -172,6 +173,11 @@ public class WaterSprite : Boss
                 attack.SkillHairSprint();
                 ChangeBossState(BossState.invincible);
                 break;
+            case AttackMethods.Shoot:
+                //ani.Play("roar");
+                attack.KunaiAttack((pc.transform.position - transform.position).normalized);
+                ChangeState(CharacterState.Run);
+                break;
             default:
                 break;
         }
@@ -179,7 +185,6 @@ public class WaterSprite : Boss
 
     public override void ClearAllSkills()
     {
-        Debug.Log("清空技能对象");
         GameObject umbrella = attack.umbrellaInstance;
         if (umbrella)
         {

+ 20 - 0
ActionTowerDefense/Assets/Scripts/Boss/WaterGhost/WaterSpriteAttackController.cs

@@ -26,6 +26,11 @@ public class WaterSpriteAttackController : AttackController
     private GameObject hairInstance;
     private HairSprint hairSprint;
 
+
+    [Header("¿àÎÞ¹¥»÷")]
+    public GameObject kunaiPrefab;
+
+
     private void Start()
     {
         ws = GetComponent<WaterSprite>();
@@ -101,4 +106,19 @@ public class WaterSpriteAttackController : AttackController
         }
         hairSprint.Release();
     }
+
+    //¿àÎÞÔ¶³Ì¹¥»÷
+    public void KunaiAttack(Vector3 dir)
+    {
+        for (int i = 0; i < 3; i++)
+        {
+            float angle = (i - 1) * 10f;
+
+            Vector3 bulletDir = Quaternion.Euler(0,0 , angle) * dir;
+
+            GameObject obj = PoolManager.Instantiate(kunaiPrefab, transform.position, Quaternion.identity, null);
+            Bullet bullet = obj.GetComponent<Bullet>();
+            bullet.BeShoot(ws, transform.position, bulletDir);
+        }
+    }
 }

+ 4 - 4
ActionTowerDefense/Assets/Scripts/Characters/Polliwog.cs

@@ -48,10 +48,10 @@ public class Polliwog : Enemy
         PolliwogManager.GetInstance().AddPolliwog(this);
         isDie = false;
         currentVelocity = Vector2.zero;
-        SingleEnemyConfig cfgEnemy = GameManager.instance.allCfgData.CfgEnemy.Get("òòò½");
-        moveSpeed =  Random.Range(cfgEnemy.MinMoveSpeed, cfgEnemy.MaxMoveSpeed);
-        attackController.curAttackMethod.attackTrigger.attackMethod.attackInfo.damage = cfgEnemy.AttackMarch[0];
-        totalHp = cfgEnemy.HP;
+        //SingleEnemyConfig cfgEnemy = GameManager.instance.allCfgData.CfgEnemy.Get("òòò½");
+        //moveSpeed =  Random.Range(cfgEnemy.MinMoveSpeed, cfgEnemy.MaxMoveSpeed);
+        //attackController.curAttackMethod.attackTrigger.attackMethod.attackInfo.damage = cfgEnemy.AttackMarch[0];
+        //totalHp = cfgEnemy.HP;
         rotationSpeed = baseRotationSpeed + Random.Range(-rotationSpeedDeviation, rotationSpeedDeviation);
         ChangeState(CharacterState.Run);
         if (PlayersInput.instance.Length > 0) playerTarget = PlayersInput.instance[0].transform;

+ 6 - 6
ActionTowerDefense/Assets/Scripts/PolliwogShot.cs

@@ -17,11 +17,11 @@ public class PolliwogShot : SpecialSkills
     [HideInInspector]
     public List<Polliwog> pollis;
 
-    public override void Attack()
-    {
-        se = owner.GetComponent<Enemy>().spineEvent;
-        isAttack = true;
-    }
+    //public override void Attack()
+    //{
+    //    se = owner.GetComponent<Enemy>().spineEvent;
+    //    isAttack = true;
+    //}
 
     private void shoot()
     {
@@ -41,7 +41,7 @@ public class PolliwogShot : SpecialSkills
         for (int i = 0; i < numm; i++)
         {
             if (PolliwogManager.GetInstance().IsFull()) break;
-            PoolManager.InstantiateAsync("Prefab/Enemy/Enemy_Polliwog", poss, new Quaternion(0, 0, 0, 0), null, obj =>
+            PoolManager.InstantiateAsync("Prefab/Enemy/Enemy_Polliwog", poss + new Vector3(Random.Range(-3,3), Random.Range(-3, 3), 0), new Quaternion(0, 0, 0, 0), null, obj =>
             {
                 Polliwog pol = obj.GetComponent<Polliwog>();
                 pollis.Add(pol);