SZAND\msx_2 4 maanden geleden
bovenliggende
commit
33c420f7e1
24 gewijzigde bestanden met toevoegingen van 4847 en 2484 verwijderingen
  1. 0 33
      ActionTowerDefense/Assets/E ADADditor/SkeletonDataReader.cs
  2. 1180 0
      ActionTowerDefense/Assets/Resources/Prefab/Boss/WaterSprite/Boss_Braid.prefab
  3. 7 0
      ActionTowerDefense/Assets/Resources/Prefab/Boss/WaterSprite/Boss_Braid.prefab.meta
  4. 1 1
      ActionTowerDefense/Assets/Resources/Spine/Boss_braid/Boss_braid_SkeletonData.asset
  5. 2171 0
      ActionTowerDefense/Assets/Resources/Spine/Boss_braid/Boss_braid_SkeletonData_Controller.controller
  6. 8 0
      ActionTowerDefense/Assets/Resources/Spine/Boss_braid/Boss_braid_SkeletonData_Controller.controller.meta
  7. 1 1
      ActionTowerDefense/Assets/Resources/Spine/Enemy_Ghost/Enemy_Ghost_SkeletonData.asset
  8. 35 89
      ActionTowerDefense/Assets/Resources/Spine/Enemy_Ghost/Enermy_Ghost_Controller.controller
  9. 442 68
      ActionTowerDefense/Assets/Resources/Spine/Player01/player01_Controller.controller
  10. 1 1
      ActionTowerDefense/Assets/Resources/Spine/Player01/player_01_SkeletonData.asset
  11. 5 0
      ActionTowerDefense/Assets/Scripts/Boss/Boss.cs
  12. 1 1
      ActionTowerDefense/Assets/Scripts/Boss/WaterGhost/HairSprint.cs
  13. 26 5
      ActionTowerDefense/Assets/Scripts/Boss/WaterGhost/WaterSprite.cs
  14. 0 2
      ActionTowerDefense/Assets/Scripts/Bullet.cs
  15. 18 0
      ActionTowerDefense/Assets/Scripts/Characters/AttackEvent.cs
  16. 11 0
      ActionTowerDefense/Assets/Scripts/Characters/AttackEvent.cs.meta
  17. 29 23
      ActionTowerDefense/Assets/Scripts/Characters/Character.cs
  18. 11 7
      ActionTowerDefense/Assets/Scripts/Characters/MoveCharacter.cs
  19. 0 13
      ActionTowerDefense/Assets/Scripts/Portal/PortalsController.cs
  20. 0 18
      ActionTowerDefense/Assets/Scripts/Soul.cs
  21. 267 2128
      ActionTowerDefense/GenerateDatas/json/cfgcreateenemy.json
  22. 122 32
      ActionTowerDefense/GenerateDatas/json/cfgdynamicenemy.json
  23. 499 48
      ActionTowerDefense/GenerateDatas/json/cfgsoldierlevel.json
  24. 12 14
      ActionTowerDefense/Luban/.cache.meta

+ 0 - 33
ActionTowerDefense/Assets/E ADADditor/SkeletonDataReader.cs

@@ -232,39 +232,6 @@ public class SkeletonDataMonitor
             AttackController.SpineAniKey sak;
             sak.aniName = animationName;
             sak.keys = new List<AttackController.AttackKeyType>();
-            AttackController.AttackKeyType akt = new AttackController.AttackKeyType();
-            bool isStartKey = true;
-            int canWrite = 0;
-            // 遍历动画中的事件
-            foreach (var timeline in animation.Timelines)
-            {
-                if (timeline is EventTimeline eventTimeline)
-                {
-                    foreach (var eventFrame in eventTimeline.Events)
-                    {
-                        string eventName = eventFrame.ToString();
-                        float eventTime = eventFrame.Time;
-                        Debug.Log($"事件名称: {eventName}, 事件时间: {eventTime}, 所在动画: {animationName}");
-                        if (isStartKey)
-                        {
-                            akt.startKeyName = eventName;
-                            akt.startKeyTime = eventTime;
-                            akt.attackType = AttackController.KeyType.AttackStart;
-                            canWrite = 1;
-                        }
-                        else if (canWrite == 1)
-                        {
-                            akt.endKeyName = eventName;
-                            akt.endKeyTime = eventTime;
-                            akt.endType = AttackController.KeyType.AttackEnd;
-                            sak.keys.Add(akt);
-                            canWrite = 2;
-                        }
-                        isStartKey = !isStartKey;
-                    }
-                }
-            }
-            if (canWrite == 2) attack.attackKeys.Add(sak);
         }
     }
 

+ 1180 - 0
ActionTowerDefense/Assets/Resources/Prefab/Boss/WaterSprite/Boss_Braid.prefab

@@ -0,0 +1,1180 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &168028989677728240
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8356219825595640106}
+  - component: {fileID: 3567561199658199469}
+  m_Layer: 8
+  m_Name: BodyCollider
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &8356219825595640106
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 168028989677728240}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 2, y: 2, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 3591960149624629235}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!65 &3567561199658199469
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 168028989677728240}
+  m_Material: {fileID: 13400000, guid: ae11ca82bc783194e8fdded3f8828a76, type: 2}
+  m_IsTrigger: 0
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 2.54, y: 2.21, z: 2}
+  m_Center: {x: 0.08, y: 1.11, z: 0}
+--- !u!1 &248855488515440066
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7745721919311346494}
+  - component: {fileID: 3855865995669356066}
+  - component: {fileID: 452140227867234689}
+  m_Layer: 18
+  m_Name: BeSearchTrigger
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &7745721919311346494
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 248855488515440066}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 2.16, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 3591960149624629235}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!65 &3855865995669356066
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 248855488515440066}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 1
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 5.3818192, y: 4.545454, z: 20}
+  m_Center: {x: 0.32727313, y: 0, z: 0}
+--- !u!114 &452140227867234689
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 248855488515440066}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 8ff1eeae99d9b8142acd628550a50e26, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  owner: {fileID: 0}
+--- !u!1 &2269252388667783100
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7594020878327238774}
+  - component: {fileID: 8445323618740299415}
+  - component: {fileID: 1406597547195284754}
+  - component: {fileID: 7051282949236221900}
+  - component: {fileID: 8187035230190219546}
+  m_Layer: 19
+  m_Name: BeHitTrigger
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &7594020878327238774
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2269252388667783100}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 2, y: 2, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 3591960149624629235}
+  m_RootOrder: 4
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!65 &8445323618740299415
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2269252388667783100}
+  m_Material: {fileID: 13400000, guid: ae11ca82bc783194e8fdded3f8828a76, type: 2}
+  m_IsTrigger: 1
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 2.6, y: 2.2, z: 2}
+  m_Center: {x: 0.04, y: 1.08, z: 0}
+--- !u!114 &1406597547195284754
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2269252388667783100}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 8b2c8973c65adf4448805aa906f6ad29, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  owner: {fileID: 0}
+  attackerID: 0
+  curX: 0
+--- !u!114 &7051282949236221900
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2269252388667783100}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 1d04dd6e35d71724689001e450625c39, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  curSpecialStates: -1
+  attributeTime: 0
+  floatingState: 0
+  hitState: 0
+  isFly: 0
+  decelerationRatioX: 2
+  decelerationRatioY: 15
+  haveVulnerable: 0
+  vulnerableTime: 0
+  resistances:
+    controlOrder: 0
+    Float: 0
+    BlowUp: 0
+    ShotDown: 0
+    Weak: 0
+    armor: 50
+--- !u!114 &8187035230190219546
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2269252388667783100}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 38dc6c579f75e924697fbe3639d11c9f, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  freezeFrame: 0
+  isFreeze: 0
+  canFreeze: 0
+  curCharacterState: 0
+  attackInfoData:
+    attackValue: 0
+    damage: 0
+    attackDir: {x: 0, y: 0, z: 0}
+    attackEffect: 
+    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}
+      force: 0
+      time: 0
+      haveLandingDamage: 0
+      landingDamage: 0
+      ControlOrder: 0
+    shotDown:
+      directionType: 0
+      dir: {x: 0, y: 0, z: 0}
+      force: 0
+      time: 0
+      haveLandingDamage: 0
+      landingDamage: 0
+      ControlOrder: 0
+    weak:
+      time: 0
+      ControlOrder: 0
+    armorPiercing:
+      rate: 0
+    vulnerable:
+      rate: 0
+      time: 0
+    changeDamage:
+      rate: 0
+    sustainedInjury:
+      damage: 0
+    isDemSummon: 0
+  attackFromData: {fileID: 0}
+  hitStunTime: 0
+  canHitStun: 0
+--- !u!1 &3387651798757669562
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5097552894938769234}
+  - component: {fileID: 4343811465804590102}
+  - component: {fileID: 6205006559997620733}
+  m_Layer: 20
+  m_Name: AttackTrigger
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!4 &5097552894938769234
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3387651798757669562}
+  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: 3591960149624629235}
+  m_RootOrder: 3
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!65 &4343811465804590102
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3387651798757669562}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 1
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 2.0996065, y: 4.0983477, z: 2}
+  m_Center: {x: -2.3598015, y: 1.954174, z: 0}
+--- !u!114 &6205006559997620733
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3387651798757669562}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5eaed0a6b9d6fc6409bef80cf41a0a8e, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  isShoot: 0
+  type: 0
+  owner: {fileID: 0}
+  isSingleAttack: 0
+  cantSingleAttack: 0
+  trigedObjs: []
+  attackInfo:
+    attackValue: 0
+    damage: 0
+    attackDir: {x: 0, y: 0, z: 0}
+    attackEffect: 
+    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}
+      force: 0
+      time: 0
+      haveLandingDamage: 0
+      landingDamage: 0
+      ControlOrder: 0
+    shotDown:
+      directionType: 0
+      dir: {x: 0, y: 0, z: 0}
+      force: 0
+      time: 0
+      haveLandingDamage: 0
+      landingDamage: 0
+      ControlOrder: 0
+    weak:
+      time: 0
+      ControlOrder: 0
+    armorPiercing:
+      rate: 0
+    vulnerable:
+      rate: 0
+      time: 0
+    changeDamage:
+      rate: 0
+    sustainedInjury:
+      damage: 0
+    isDemSummon: 0
+  force: {x: 0, y: 0, z: 0}
+  changeHurt: 0
+  repelValue: 0
+  offsetY: 1
+  hitRate: 1
+  onlyFlyCanWeak: 0
+--- !u!1 &3773790087831145568
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7275603932784815494}
+  m_Layer: 8
+  m_Name: Body
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &7275603932784815494
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3773790087831145568}
+  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: 1160959626623769042}
+  - {fileID: 3591960149624629235}
+  m_Father: {fileID: 8564470064901314389}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &5446900007924331363
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1606209758446650806}
+  - component: {fileID: 584108857310253294}
+  - component: {fileID: 7792599486084156537}
+  - component: {fileID: 6545963956143135953}
+  m_Layer: 8
+  m_Name: UI
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!224 &1606209758446650806
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5446900007924331363}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 0.01, y: 0.01, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 5730253799153522753}
+  m_Father: {fileID: 8564470064901314389}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0.9}
+  m_SizeDelta: {x: 300, y: 500}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!223 &584108857310253294
+Canvas:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5446900007924331363}
+  m_Enabled: 1
+  serializedVersion: 3
+  m_RenderMode: 2
+  m_Camera: {fileID: 0}
+  m_PlaneDistance: 100
+  m_PixelPerfect: 0
+  m_ReceivesEvents: 1
+  m_OverrideSorting: 0
+  m_OverridePixelPerfect: 0
+  m_SortingBucketNormalizedSize: 0
+  m_AdditionalShaderChannelsFlag: 0
+  m_SortingLayerID: 1516060329
+  m_SortingOrder: 0
+  m_TargetDisplay: 0
+--- !u!114 &7792599486084156537
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5446900007924331363}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_UiScaleMode: 0
+  m_ReferencePixelsPerUnit: 100
+  m_ScaleFactor: 1
+  m_ReferenceResolution: {x: 800, y: 600}
+  m_ScreenMatchMode: 0
+  m_MatchWidthOrHeight: 0
+  m_PhysicalUnit: 3
+  m_FallbackScreenDPI: 96
+  m_DefaultSpriteDPI: 96
+  m_DynamicPixelsPerUnit: 1
+  m_PresetInfoIsWorld: 1
+--- !u!114 &6545963956143135953
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5446900007924331363}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreReversedGraphics: 1
+  m_BlockingObjects: 0
+  m_BlockingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+--- !u!1 &6436248981037801214
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1160959626623769042}
+  - component: {fileID: 5215338136341990583}
+  - component: {fileID: 4871030515808188694}
+  - component: {fileID: 1375962032907550593}
+  - component: {fileID: 6070935428725307776}
+  m_Layer: 8
+  m_Name: Spine
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1160959626623769042
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6436248981037801214}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0.46, y: 0, z: 0}
+  m_LocalScale: {x: 0.72, y: 0.72, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 7275603932784815494}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &5215338136341990583
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6436248981037801214}
+  m_Mesh: {fileID: 0}
+--- !u!23 &4871030515808188694
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6436248981037801214}
+  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: 66ea17fca16058743b2c6293b2c6a9ca, type: 2}
+  - {fileID: 2100000, guid: f7e011ad6b722f8448a4014d41d85007, type: 2}
+  - {fileID: 2100000, guid: 66ea17fca16058743b2c6293b2c6a9ca, 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: 341237651
+  m_SortingLayer: 3
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!95 &1375962032907550593
+Animator:
+  serializedVersion: 4
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6436248981037801214}
+  m_Enabled: 1
+  m_Avatar: {fileID: 0}
+  m_Controller: {fileID: 9100000, guid: 85fc2e3455c42ee41982e4ab4b63891d, type: 2}
+  m_CullingMode: 0
+  m_UpdateMode: 0
+  m_ApplyRootMotion: 0
+  m_LinearVelocityBlending: 0
+  m_StabilizeFeet: 0
+  m_WarningMessage: 
+  m_HasTransformHierarchy: 1
+  m_AllowConstantClipSamplingOptimization: 1
+  m_KeepAnimatorControllerStateOnDisable: 0
+--- !u!114 &6070935428725307776
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6436248981037801214}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: f9db98c60740638449864eb028fbe7ad, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  skeletonDataAsset: {fileID: 11400000, guid: a2b2951cf1245ac48a954e8ac3ec9ecb, type: 2}
+  initialSkinName: 
+  fixPrefabOverrideViaMeshFilter: 2
+  initialFlipX: 0
+  initialFlipY: 0
+  updateWhenInvisible: 3
+  separatorSlotNames: []
+  zSpacing: 0
+  useClipping: 1
+  immutableTriangles: 0
+  pmaVertexColors: 1
+  clearStateOnDisable: 0
+  tintBlack: 0
+  singleSubmesh: 0
+  fixDrawOrder: 0
+  addNormals: 0
+  calculateTangents: 0
+  maskInteraction: 0
+  maskMaterials:
+    materialsMaskDisabled: []
+    materialsInsideMask: []
+    materialsOutsideMask: []
+  disableRenderingOnOverride: 1
+  physicsPositionInheritanceFactor: {x: 1, y: 1}
+  physicsRotationInheritanceFactor: 1
+  physicsMovementRelativeTo: {fileID: 0}
+  translator:
+    autoReset: 1
+    useCustomMixMode: 1
+    layerMixModes: 01000000
+    layerBlendModes: 01000000
+  updateTiming: 1
+--- !u!1 &6622806289642696526
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6283957657916199002}
+  - component: {fileID: 3210984366516984136}
+  - component: {fileID: 3547265468845814743}
+  m_Layer: 8
+  m_Name: Progress
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &6283957657916199002
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6622806289642696526}
+  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: 5730253799153522753}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 150, y: 30}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &3210984366516984136
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6622806289642696526}
+  m_CullTransparentMesh: 1
+--- !u!114 &3547265468845814743
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6622806289642696526}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 0, b: 0, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 97bdb0b0817469147954ce720ea6f795, type: 3}
+  m_Type: 3
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 0
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!1 &7525056146659756724
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4029420860763413836}
+  - component: {fileID: 1578965629267970992}
+  - component: {fileID: 3901165224574733923}
+  m_Layer: 17
+  m_Name: SearchTrigger
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &4029420860763413836
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7525056146659756724}
+  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: 8564470064901314389}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1578965629267970992
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7525056146659756724}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 21f006d2c845e2e43bce70ea7a2d8dcc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  owner: {fileID: 0}
+  trigDemonicList: []
+  trigTowerList: []
+  trigPlayerList: []
+  trigEnemyList: []
+  trigEnemyTowerList: []
+  trigBossList: []
+  needToChange: 0
+  maxLen: 0
+  minLen: 0
+--- !u!65 &3901165224574733923
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7525056146659756724}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 1
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 20, y: 4.0305195, z: 20}
+  m_Center: {x: 0, y: 1.9752598, z: 0}
+--- !u!1 &7768508445991972621
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5730253799153522753}
+  - component: {fileID: 6180893540483727763}
+  - component: {fileID: 2037569168731581384}
+  - component: {fileID: 8543816852639650173}
+  - component: {fileID: 4321393200042453736}
+  m_Layer: 8
+  m_Name: HP
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &5730253799153522753
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7768508445991972621}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 0.5, y: 0.5, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 6283957657916199002}
+  m_Father: {fileID: 1606209758446650806}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 450}
+  m_SizeDelta: {x: 150, y: 30}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6180893540483727763
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7768508445991972621}
+  m_CullTransparentMesh: 1
+--- !u!114 &2037569168731581384
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7768508445991972621}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.3301887, g: 0, b: 0, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 97bdb0b0817469147954ce720ea6f795, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &8543816852639650173
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7768508445991972621}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: e19747de3f5aca642ab2be37e372fb86, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_EffectColor: {r: 0, g: 0, b: 0, a: 1}
+  m_EffectDistance: {x: 3, y: -3}
+  m_UseGraphicAlpha: 1
+--- !u!114 &4321393200042453736
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7768508445991972621}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: c5cfe48b68a3fd64f95e7a1c19316726, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  imgHp: {fileID: 3547265468845814743}
+  pc: {fileID: 0}
+  points: []
+--- !u!1 &8564470064901314384
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8564470064901314389}
+  - component: {fileID: 8564470064901314394}
+  - component: {fileID: 5817923729846502366}
+  m_Layer: 8
+  m_Name: Boss_Braid
+  m_TagString: Enemy
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &8564470064901314389
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8564470064901314384}
+  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: 7275603932784815494}
+  - {fileID: 4029420860763413836}
+  - {fileID: 1606209758446650806}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!54 &8564470064901314394
+Rigidbody:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8564470064901314384}
+  serializedVersion: 2
+  m_Mass: 40
+  m_Drag: 0
+  m_AngularDrag: 0.05
+  m_UseGravity: 1
+  m_IsKinematic: 0
+  m_Interpolate: 0
+  m_Constraints: 120
+  m_CollisionDetection: 0
+--- !u!114 &5817923729846502366
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8564470064901314384}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: c2beef45b72ca384880966b46f01e9c5, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  rb: {fileID: 8564470064901314394}
+  bodyTrans: {fileID: 7275603932784815494}
+  beSearchTrigger: {fileID: 452140227867234689}
+  searchTrigger: {fileID: 1578965629267970992}
+  bodyCollider: {fileID: 168028989677728240}
+  beHitTrigger: {fileID: 1406597547195284754}
+  attackController: {fileID: 0}
+  uiHp: {fileID: 4321393200042453736}
+  mecanim: {fileID: 6070935428725307776}
+  meshRenderer: {fileID: 0}
+  ani: {fileID: 1375962032907550593}
+  totalDieKeepTime: 2
+  totalAttack_summonTime: 0.5
+  totalAttack_marchTime: 0.5
+  dieKeepTime: 0
+  beHitDistance: 0
+  attackDis: 0
+  targetCharacter: {fileID: 0}
+  attackTarget: {fileID: 0}
+  state: 0
+  totalHp: 100
+  hp: 0
+  isDie: 0
+  isRevive: 0
+  canNotAddForce: 0
+  canNotChangeHurt: 0
+  invincibleTime: 0
+  injuryNumText: {fileID: 0}
+  injuryNumTextSummon: {fileID: 0}
+  isBeHitBySummonAttack: 0
+  showInjuryNum: 0
+  canFly: 0
+  nowCanFly: 0
+  statePre: {fileID: 0}
+  ls: {fileID: 0}
+  isInSoulTower: 0
+  beLarger: 0
+  toLargeSize: 0
+  cookEffect: {fileID: 0}
+  Attack_summonShootCanTransmit: 0
+  debugAttackFrom: 0
+  injuryNumPos_summon: {x: 0, y: 1}
+  injuryNumRandom_summon: {x: 1, y: 1}
+  injuryNumPos_march: {x: 0, y: 1}
+  injuryNumRandom_march: {x: 2, y: 2}
+  foot: {fileID: 8564470065078906133}
+  attributeStatus: {fileID: 0}
+  hitFeedbackSystem: {fileID: 0}
+  hitResistance: 0
+  matState: 1
+  spinee: {fileID: 0}
+  mesh: {fileID: 0}
+  mats: []
+  outlineMats: []
+  outline1Mats: []
+  extraRiseGravity: 0
+  extraFallGravity: -10
+  moveSpeed: 5
+  needToAdjustFlyHeight: 0
+  flyHeight: 0
+  maxFlyHeight: 0
+  minFlyHeight: 0
+  flyUpTime: 0
+  isAdjustHeight: 0
+  isDamageReduction: 0
+  reductionDegree: 0
+  reductionEffect: {fileID: 0}
+  effect: {fileID: 0}
+  soulPrefab: {fileID: 0}
+  soulStartSpeed: 1
+  isInvisible: 0
+  invisibleTime: 0
+  velocityAddition: 0
+  isSustainedInjury: 0
+  sustainedInjuryTime: 0
+  sustainedInjury_IntervalTime: 0
+  sustainedInjury_damage: 0
+  heavyDamage: 0
+  killer: {fileID: 0}
+  curTarget: 0
+  pc: {fileID: 0}
+  circulate: 
+  categories: 
+  curCategoryID: 0
+  minInterval: 0
+  maxInterval: 0
+  bossState: 0
+  aimPos: {x: 0, y: 0, z: 0}
+  umbrellaPrefab: {fileID: 0}
+  umbrellaOrigPos: {fileID: 0}
+  umbrellaBackPos: {fileID: 0}
+  hairPrefab: {fileID: 0}
+--- !u!1 &8564470065078906132
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8564470065078906139}
+  - component: {fileID: 8564470065078906138}
+  - component: {fileID: 8564470065078906133}
+  m_Layer: 22
+  m_Name: Foot
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &8564470065078906139
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8564470065078906132}
+  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: 3591960149624629235}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!65 &8564470065078906138
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8564470065078906132}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 1
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 1.83, y: 0.09, z: 2}
+  m_Center: {x: 0.04, y: 0, z: 0}
+--- !u!114 &8564470065078906133
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8564470065078906132}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: c42213c575288a148b692aad7ab56bab, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  rb: {fileID: 0}
+  haveGravity: 1
+  trigGroundList: []
+--- !u!1 &8692690476944696129
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 3591960149624629235}
+  - component: {fileID: 2008008764742721346}
+  m_Layer: 8
+  m_Name: Colliders
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &3591960149624629235
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8692690476944696129}
+  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: 8356219825595640106}
+  - {fileID: 8564470065078906139}
+  - {fileID: 7745721919311346494}
+  - {fileID: 5097552894938769234}
+  - {fileID: 7594020878327238774}
+  m_Father: {fileID: 7275603932784815494}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!95 &2008008764742721346
+Animator:
+  serializedVersion: 4
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8692690476944696129}
+  m_Enabled: 0
+  m_Avatar: {fileID: 0}
+  m_Controller: {fileID: 9100000, guid: 6c78d08ce26324f46805da13fb45a72d, type: 2}
+  m_CullingMode: 0
+  m_UpdateMode: 1
+  m_ApplyRootMotion: 0
+  m_LinearVelocityBlending: 0
+  m_StabilizeFeet: 0
+  m_WarningMessage: 
+  m_HasTransformHierarchy: 1
+  m_AllowConstantClipSamplingOptimization: 1
+  m_KeepAnimatorControllerStateOnDisable: 0

+ 7 - 0
ActionTowerDefense/Assets/Resources/Prefab/Boss/WaterSprite/Boss_Braid.prefab.meta

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

+ 1 - 1
ActionTowerDefense/Assets/Resources/Spine/Boss_braid/Boss_braid_SkeletonData.asset

@@ -30,4 +30,4 @@ MonoBehaviour:
   toAnimation: []
   duration: []
   defaultMix: 0.2
-  controller: {fileID: 0}
+  controller: {fileID: 9100000, guid: a08c060bbff09314d96723d9f3bab260, type: 2}

+ 2171 - 0
ActionTowerDefense/Assets/Resources/Spine/Boss_braid/Boss_braid_SkeletonData_Controller.controller

@@ -0,0 +1,2171 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1102 &-8146034706639659219
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: shoot_end
+  m_Speed: 1
+  m_CycleOffset: 0
+  m_Transitions: []
+  m_StateMachineBehaviours: []
+  m_Position: {x: 50, y: 50, z: 0}
+  m_IKOnFeet: 0
+  m_WriteDefaultValues: 1
+  m_Mirror: 0
+  m_SpeedParameterActive: 0
+  m_MirrorParameterActive: 0
+  m_CycleOffsetParameterActive: 0
+  m_TimeParameterActive: 0
+  m_Motion: {fileID: 1280708875697387390}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!74 &-8037304471013490507
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: idle2
+  serializedVersion: 7
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      - serializedVersion: 3
+        time: 2.6666667
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 2.6666667
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: dummy
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  m_PPtrCurves: []
+  m_SampleRate: 30
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 0
+      attribute: 2086281974
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    - serializedVersion: 2
+      path: 0
+      attribute: 1341452863
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 2.6666667
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves: []
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events: []
+--- !u!74 &-7679072737646576113
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: diving
+  serializedVersion: 7
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      - serializedVersion: 3
+        time: 0.6666667
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 0.6666667
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: dummy
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  m_PPtrCurves: []
+  m_SampleRate: 30
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 0
+      attribute: 2086281974
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    - serializedVersion: 2
+      path: 0
+      attribute: 1341452863
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 0.6666667
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves: []
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events: []
+--- !u!1102 &-6798333593589032740
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: shoot
+  m_Speed: 1
+  m_CycleOffset: 0
+  m_Transitions: []
+  m_StateMachineBehaviours: []
+  m_Position: {x: 50, y: 50, z: 0}
+  m_IKOnFeet: 0
+  m_WriteDefaultValues: 1
+  m_Mirror: 0
+  m_SpeedParameterActive: 0
+  m_MirrorParameterActive: 0
+  m_CycleOffsetParameterActive: 0
+  m_TimeParameterActive: 0
+  m_Motion: {fileID: -1746999912806244684}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!1102 &-6749395117764749487
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: die
+  m_Speed: 1
+  m_CycleOffset: 0
+  m_Transitions: []
+  m_StateMachineBehaviours: []
+  m_Position: {x: 50, y: 50, z: 0}
+  m_IKOnFeet: 0
+  m_WriteDefaultValues: 1
+  m_Mirror: 0
+  m_SpeedParameterActive: 0
+  m_MirrorParameterActive: 0
+  m_CycleOffsetParameterActive: 0
+  m_TimeParameterActive: 0
+  m_Motion: {fileID: -6219090615096685990}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!74 &-6580674812099934180
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: dive
+  serializedVersion: 7
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      - serializedVersion: 3
+        time: 3.3333335
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 3.3333335
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: dummy
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  m_PPtrCurves: []
+  m_SampleRate: 30
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 0
+      attribute: 2086281974
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    - serializedVersion: 2
+      path: 0
+      attribute: 1341452863
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 3.3333335
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves: []
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events:
+  - time: 1.3333334
+    functionName: hitwater
+    data: SpineEvent
+    objectReferenceParameter: {fileID: 0}
+    floatParameter: 0
+    intParameter: 0
+    messageOptions: 1
+--- !u!1102 &-6558889682372957727
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: diving
+  m_Speed: 1
+  m_CycleOffset: 0
+  m_Transitions: []
+  m_StateMachineBehaviours: []
+  m_Position: {x: 50, y: 50, z: 0}
+  m_IKOnFeet: 0
+  m_WriteDefaultValues: 1
+  m_Mirror: 0
+  m_SpeedParameterActive: 0
+  m_MirrorParameterActive: 0
+  m_CycleOffsetParameterActive: 0
+  m_TimeParameterActive: 0
+  m_Motion: {fileID: -7679072737646576113}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!1102 &-6376657796990192709
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: fall
+  m_Speed: 1
+  m_CycleOffset: 0
+  m_Transitions: []
+  m_StateMachineBehaviours: []
+  m_Position: {x: 50, y: 50, z: 0}
+  m_IKOnFeet: 0
+  m_WriteDefaultValues: 1
+  m_Mirror: 0
+  m_SpeedParameterActive: 0
+  m_MirrorParameterActive: 0
+  m_CycleOffsetParameterActive: 0
+  m_TimeParameterActive: 0
+  m_Motion: {fileID: 7520339860282343017}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!74 &-6219090615096685990
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: die
+  serializedVersion: 7
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      - serializedVersion: 3
+        time: 13.066668
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 13.066668
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: dummy
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  m_PPtrCurves: []
+  m_SampleRate: 30
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 0
+      attribute: 2086281974
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    - serializedVersion: 2
+      path: 0
+      attribute: 1341452863
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 13.066668
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves: []
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events: []
+--- !u!1102 &-6201932109690526308
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: dive_end
+  m_Speed: 1
+  m_CycleOffset: 0
+  m_Transitions: []
+  m_StateMachineBehaviours: []
+  m_Position: {x: 50, y: 50, z: 0}
+  m_IKOnFeet: 0
+  m_WriteDefaultValues: 1
+  m_Mirror: 0
+  m_SpeedParameterActive: 0
+  m_MirrorParameterActive: 0
+  m_CycleOffsetParameterActive: 0
+  m_TimeParameterActive: 0
+  m_Motion: {fileID: -5852453385765581476}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!74 &-5852453385765581476
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: dive_end
+  serializedVersion: 7
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      - serializedVersion: 3
+        time: 1.6666667
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 1.6666667
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: dummy
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  m_PPtrCurves: []
+  m_SampleRate: 30
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 0
+      attribute: 2086281974
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    - serializedVersion: 2
+      path: 0
+      attribute: 1341452863
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 1.6666667
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves: []
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events: []
+--- !u!1102 &-3067777464722279042
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: idle_no3
+  m_Speed: 1
+  m_CycleOffset: 0
+  m_Transitions: []
+  m_StateMachineBehaviours: []
+  m_Position: {x: 50, y: 50, z: 0}
+  m_IKOnFeet: 0
+  m_WriteDefaultValues: 1
+  m_Mirror: 0
+  m_SpeedParameterActive: 0
+  m_MirrorParameterActive: 0
+  m_CycleOffsetParameterActive: 0
+  m_TimeParameterActive: 0
+  m_Motion: {fileID: 9211576881899191406}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!1102 &-3022758259381926777
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: summon
+  m_Speed: 1
+  m_CycleOffset: 0
+  m_Transitions: []
+  m_StateMachineBehaviours: []
+  m_Position: {x: 50, y: 50, z: 0}
+  m_IKOnFeet: 0
+  m_WriteDefaultValues: 1
+  m_Mirror: 0
+  m_SpeedParameterActive: 0
+  m_MirrorParameterActive: 0
+  m_CycleOffsetParameterActive: 0
+  m_TimeParameterActive: 0
+  m_Motion: {fileID: 1549456089312466795}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!1102 &-2378318940295759834
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: move
+  m_Speed: 1
+  m_CycleOffset: 0
+  m_Transitions: []
+  m_StateMachineBehaviours: []
+  m_Position: {x: 50, y: 50, z: 0}
+  m_IKOnFeet: 0
+  m_WriteDefaultValues: 1
+  m_Mirror: 0
+  m_SpeedParameterActive: 0
+  m_MirrorParameterActive: 0
+  m_CycleOffsetParameterActive: 0
+  m_TimeParameterActive: 0
+  m_Motion: {fileID: 6835063330423730665}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!1102 &-1953351472425474637
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: move2
+  m_Speed: 1
+  m_CycleOffset: 0
+  m_Transitions: []
+  m_StateMachineBehaviours: []
+  m_Position: {x: 50, y: 50, z: 0}
+  m_IKOnFeet: 0
+  m_WriteDefaultValues: 1
+  m_Mirror: 0
+  m_SpeedParameterActive: 0
+  m_MirrorParameterActive: 0
+  m_CycleOffsetParameterActive: 0
+  m_TimeParameterActive: 0
+  m_Motion: {fileID: -1760909097919521358}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!74 &-1760909097919521358
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: move2
+  serializedVersion: 7
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      - serializedVersion: 3
+        time: 2.3333335
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 2.3333335
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: dummy
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  m_PPtrCurves: []
+  m_SampleRate: 30
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 0
+      attribute: 2086281974
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    - serializedVersion: 2
+      path: 0
+      attribute: 1341452863
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 2.3333335
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves: []
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events:
+  - time: 1.1666667
+    functionName: hitwater
+    data: SpineEvent
+    objectReferenceParameter: {fileID: 0}
+    floatParameter: 0
+    intParameter: 0
+    messageOptions: 1
+--- !u!74 &-1746999912806244684
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: shoot
+  serializedVersion: 7
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      - serializedVersion: 3
+        time: 1.6666667
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 1.6666667
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: dummy
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  m_PPtrCurves: []
+  m_SampleRate: 30
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 0
+      attribute: 2086281974
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    - serializedVersion: 2
+      path: 0
+      attribute: 1341452863
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 1.6666667
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves: []
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events:
+  - time: 0.6666667
+    functionName: shoot
+    data: SpineEvent
+    objectReferenceParameter: {fileID: 0}
+    floatParameter: 0
+    intParameter: 0
+    messageOptions: 1
+--- !u!1102 &-1702708306969596229
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: idle2
+  m_Speed: 1
+  m_CycleOffset: 0
+  m_Transitions: []
+  m_StateMachineBehaviours: []
+  m_Position: {x: 50, y: 50, z: 0}
+  m_IKOnFeet: 0
+  m_WriteDefaultValues: 1
+  m_Mirror: 0
+  m_SpeedParameterActive: 0
+  m_MirrorParameterActive: 0
+  m_CycleOffsetParameterActive: 0
+  m_TimeParameterActive: 0
+  m_Motion: {fileID: -8037304471013490507}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!1102 &-1523801469919492497
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: fall_end
+  m_Speed: 1
+  m_CycleOffset: 0
+  m_Transitions: []
+  m_StateMachineBehaviours: []
+  m_Position: {x: 50, y: 50, z: 0}
+  m_IKOnFeet: 0
+  m_WriteDefaultValues: 1
+  m_Mirror: 0
+  m_SpeedParameterActive: 0
+  m_MirrorParameterActive: 0
+  m_CycleOffsetParameterActive: 0
+  m_TimeParameterActive: 0
+  m_Motion: {fileID: 5765245302169578046}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!1102 &-109920604856556462
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: dive
+  m_Speed: 1
+  m_CycleOffset: 0
+  m_Transitions: []
+  m_StateMachineBehaviours: []
+  m_Position: {x: 50, y: 50, z: 0}
+  m_IKOnFeet: 0
+  m_WriteDefaultValues: 1
+  m_Mirror: 0
+  m_SpeedParameterActive: 0
+  m_MirrorParameterActive: 0
+  m_CycleOffsetParameterActive: 0
+  m_TimeParameterActive: 0
+  m_Motion: {fileID: -6580674812099934180}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!91 &9100000
+AnimatorController:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: Boss_braid_SkeletonData_Controller
+  serializedVersion: 5
+  m_AnimatorParameters: []
+  m_AnimatorLayers:
+  - serializedVersion: 5
+    m_Name: Base Layer
+    m_StateMachine: {fileID: 4678021159757533627}
+    m_Mask: {fileID: 0}
+    m_Motions: []
+    m_Behaviours: []
+    m_BlendingMode: 0
+    m_SyncedLayerIndex: -1
+    m_DefaultWeight: 0
+    m_IKPass: 0
+    m_SyncedLayerAffectsTiming: 0
+    m_Controller: {fileID: 9100000}
+--- !u!74 &1147657042308742055
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: idle
+  serializedVersion: 7
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      - serializedVersion: 3
+        time: 2
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 2
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: dummy
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  m_PPtrCurves: []
+  m_SampleRate: 30
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 0
+      attribute: 2086281974
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    - serializedVersion: 2
+      path: 0
+      attribute: 1341452863
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 2
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves: []
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events: []
+--- !u!74 &1280708875697387390
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: shoot_end
+  serializedVersion: 7
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      - serializedVersion: 3
+        time: 1.4333334
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 1.4333334
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: dummy
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  m_PPtrCurves: []
+  m_SampleRate: 30
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 0
+      attribute: 2086281974
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    - serializedVersion: 2
+      path: 0
+      attribute: 1341452863
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 1.4333334
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves: []
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events: []
+--- !u!74 &1549456089312466795
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: summon
+  serializedVersion: 7
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      - serializedVersion: 3
+        time: 1.6666667
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 1.6666667
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: dummy
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  m_PPtrCurves: []
+  m_SampleRate: 30
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 0
+      attribute: 2086281974
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    - serializedVersion: 2
+      path: 0
+      attribute: 1341452863
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 1.6666667
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves: []
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events: []
+--- !u!1102 &3671151615531027066
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: idle
+  m_Speed: 1
+  m_CycleOffset: 0
+  m_Transitions: []
+  m_StateMachineBehaviours: []
+  m_Position: {x: 50, y: 50, z: 0}
+  m_IKOnFeet: 0
+  m_WriteDefaultValues: 1
+  m_Mirror: 0
+  m_SpeedParameterActive: 0
+  m_MirrorParameterActive: 0
+  m_CycleOffsetParameterActive: 0
+  m_TimeParameterActive: 0
+  m_Motion: {fileID: 1147657042308742055}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!1107 &4678021159757533627
+AnimatorStateMachine:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: Base Layer
+  m_ChildStates:
+  - serializedVersion: 1
+    m_State: {fileID: -6749395117764749487}
+    m_Position: {x: 200, y: 0, z: 0}
+  - serializedVersion: 1
+    m_State: {fileID: -109920604856556462}
+    m_Position: {x: 235, y: 65, z: 0}
+  - serializedVersion: 1
+    m_State: {fileID: -6201932109690526308}
+    m_Position: {x: 270, y: 130, z: 0}
+  - serializedVersion: 1
+    m_State: {fileID: -6558889682372957727}
+    m_Position: {x: 305, y: 195, z: 0}
+  - serializedVersion: 1
+    m_State: {fileID: -6376657796990192709}
+    m_Position: {x: 340, y: 260, z: 0}
+  - serializedVersion: 1
+    m_State: {fileID: -1523801469919492497}
+    m_Position: {x: 375, y: 325, z: 0}
+  - serializedVersion: 1
+    m_State: {fileID: 3671151615531027066}
+    m_Position: {x: 410, y: 390, z: 0}
+  - serializedVersion: 1
+    m_State: {fileID: -1702708306969596229}
+    m_Position: {x: 445, y: 455, z: 0}
+  - serializedVersion: 1
+    m_State: {fileID: -3067777464722279042}
+    m_Position: {x: 480, y: 520, z: 0}
+  - serializedVersion: 1
+    m_State: {fileID: -2378318940295759834}
+    m_Position: {x: 515, y: 585, z: 0}
+  - serializedVersion: 1
+    m_State: {fileID: -1953351472425474637}
+    m_Position: {x: 550, y: 650, z: 0}
+  - serializedVersion: 1
+    m_State: {fileID: -6798333593589032740}
+    m_Position: {x: 585, y: 715, z: 0}
+  - serializedVersion: 1
+    m_State: {fileID: -8146034706639659219}
+    m_Position: {x: 620, y: 780, z: 0}
+  - serializedVersion: 1
+    m_State: {fileID: -3022758259381926777}
+    m_Position: {x: 655, y: 845, z: 0}
+  m_ChildStateMachines: []
+  m_AnyStateTransitions: []
+  m_EntryTransitions: []
+  m_StateMachineTransitions: {}
+  m_StateMachineBehaviours: []
+  m_AnyStatePosition: {x: 50, y: 20, z: 0}
+  m_EntryPosition: {x: 50, y: 120, z: 0}
+  m_ExitPosition: {x: 800, y: 120, z: 0}
+  m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
+  m_DefaultState: {fileID: -6749395117764749487}
+--- !u!74 &5765245302169578046
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: fall_end
+  serializedVersion: 7
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      - serializedVersion: 3
+        time: 2
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 2
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: dummy
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  m_PPtrCurves: []
+  m_SampleRate: 30
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 0
+      attribute: 2086281974
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    - serializedVersion: 2
+      path: 0
+      attribute: 1341452863
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 2
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves: []
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events: []
+--- !u!74 &6835063330423730665
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: move
+  serializedVersion: 7
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      - serializedVersion: 3
+        time: 2.3333335
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 2.3333335
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: dummy
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  m_PPtrCurves: []
+  m_SampleRate: 30
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 0
+      attribute: 2086281974
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    - serializedVersion: 2
+      path: 0
+      attribute: 1341452863
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 2.3333335
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves: []
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events:
+  - time: 1.3333334
+    functionName: hitwater
+    data: SpineEvent
+    objectReferenceParameter: {fileID: 0}
+    floatParameter: 0
+    intParameter: 0
+    messageOptions: 1
+--- !u!74 &7520339860282343017
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: fall
+  serializedVersion: 7
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      - serializedVersion: 3
+        time: 3.3333335
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 3.3333335
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: dummy
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  m_PPtrCurves: []
+  m_SampleRate: 30
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 0
+      attribute: 2086281974
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    - serializedVersion: 2
+      path: 0
+      attribute: 1341452863
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 3.3333335
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves: []
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events: []
+--- !u!74 &9211576881899191406
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: idle_no3
+  serializedVersion: 7
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      - serializedVersion: 3
+        time: 2.6666667
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 2.6666667
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: dummy
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  m_PPtrCurves: []
+  m_SampleRate: 30
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 0
+      attribute: 2086281974
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    - serializedVersion: 2
+      path: 0
+      attribute: 1341452863
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 2.6666667
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves: []
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events: []

+ 8 - 0
ActionTowerDefense/Assets/Resources/Spine/Boss_braid/Boss_braid_SkeletonData_Controller.controller.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a08c060bbff09314d96723d9f3bab260
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 9100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 1 - 1
ActionTowerDefense/Assets/Resources/Spine/Enemy_Ghost/Enemy_Ghost_SkeletonData.asset

@@ -28,4 +28,4 @@ MonoBehaviour:
   toAnimation: []
   duration: []
   defaultMix: 0.2
-  controller: {fileID: 0}
+  controller: {fileID: 9100000, guid: f4e4a337d03dc7549b035b7fbaece4d0, type: 2}

+ 35 - 89
ActionTowerDefense/Assets/Resources/Spine/Enemy_Ghost/Enermy_Ghost_Controller.controller

@@ -30,7 +30,7 @@ AnimationClip:
         inWeight: 0
         outWeight: 0
       - serializedVersion: 3
-        time: 1.3333
+        time: 0.3
         value: 0
         inSlope: 0
         outSlope: 0
@@ -46,7 +46,7 @@ AnimationClip:
     classID: 1
     script: {fileID: 0}
   m_PPtrCurves: []
-  m_SampleRate: 60
+  m_SampleRate: 30
   m_WrapMode: 0
   m_Bounds:
     m_Center: {x: 0, y: 0, z: 0}
@@ -66,7 +66,7 @@ AnimationClip:
     m_AdditiveReferencePoseClip: {fileID: 0}
     m_AdditiveReferencePoseTime: 0
     m_StartTime: 0
-    m_StopTime: 1.3333
+    m_StopTime: 0.3
     m_OrientationOffsetY: 0
     m_Level: 0
     m_CycleOffset: 0
@@ -116,7 +116,7 @@ AnimationClip:
         inWeight: 0
         outWeight: 0
       - serializedVersion: 3
-        time: 1.8667
+        time: 1
         value: 0
         inSlope: 0
         outSlope: 0
@@ -132,7 +132,7 @@ AnimationClip:
     classID: 1
     script: {fileID: 0}
   m_PPtrCurves: []
-  m_SampleRate: 60
+  m_SampleRate: 30
   m_WrapMode: 0
   m_Bounds:
     m_Center: {x: 0, y: 0, z: 0}
@@ -152,7 +152,7 @@ AnimationClip:
     m_AdditiveReferencePoseClip: {fileID: 0}
     m_AdditiveReferencePoseTime: 0
     m_StartTime: 0
-    m_StopTime: 1.8667
+    m_StopTime: 1
     m_OrientationOffsetY: 0
     m_Level: 0
     m_CycleOffset: 0
@@ -167,69 +167,20 @@ AnimationClip:
     m_KeepOriginalPositionXZ: 0
     m_HeightFromFeet: 0
     m_Mirror: 0
-  m_EditorCurves:
-  - curve:
-      serializedVersion: 2
-      m_Curve:
-      - serializedVersion: 3
-        time: 0
-        value: 0
-        inSlope: 0
-        outSlope: 0
-        tangentMode: 0
-        weightedMode: 0
-        inWeight: 0
-        outWeight: 0
-      - serializedVersion: 3
-        time: 1.8667
-        value: 0
-        inSlope: 0
-        outSlope: 0
-        tangentMode: 0
-        weightedMode: 0
-        inWeight: 0
-        outWeight: 0
-      m_PreInfinity: 2
-      m_PostInfinity: 2
-      m_RotationOrder: 4
-    attribute: dummy
-    path: 
-    classID: 1
-    script: {fileID: 0}
+  m_EditorCurves: []
   m_EulerEditorCurves: []
   m_HasGenericRootTransform: 0
   m_HasMotionFloatCurves: 0
   m_Events:
-  - time: 0.0333
-    functionName: attack
-    data: SpineEvent
-    objectReferenceParameter: {fileID: 0}
-    floatParameter: 0
-    intParameter: 0
-    messageOptions: 1
-  - time: 0.2
-    functionName: attack
+  - time: 0.43333337
+    functionName: attack_on
     data: SpineEvent
     objectReferenceParameter: {fileID: 0}
     floatParameter: 0
     intParameter: 0
     messageOptions: 1
-  - time: 0.3333
-    functionName: attack
-    data: SpineEvent
-    objectReferenceParameter: {fileID: 0}
-    floatParameter: 0
-    intParameter: 0
-    messageOptions: 1
-  - time: 0.5
-    functionName: attack
-    data: SpineEvent
-    objectReferenceParameter: {fileID: 0}
-    floatParameter: 0
-    intParameter: 0
-    messageOptions: 1
-  - time: 0.9333
-    functionName: attack
+  - time: 0.6666667
+    functionName: attack_off
     data: SpineEvent
     objectReferenceParameter: {fileID: 0}
     floatParameter: 0
@@ -281,7 +232,7 @@ AnimationClip:
     classID: 1
     script: {fileID: 0}
   m_PPtrCurves: []
-  m_SampleRate: 60
+  m_SampleRate: 30
   m_WrapMode: 0
   m_Bounds:
     m_Center: {x: 0, y: 0, z: 0}
@@ -351,7 +302,7 @@ AnimationClip:
         inWeight: 0
         outWeight: 0
       - serializedVersion: 3
-        time: 1.3333
+        time: 2
         value: 0
         inSlope: 0
         outSlope: 0
@@ -367,7 +318,7 @@ AnimationClip:
     classID: 1
     script: {fileID: 0}
   m_PPtrCurves: []
-  m_SampleRate: 60
+  m_SampleRate: 30
   m_WrapMode: 0
   m_Bounds:
     m_Center: {x: 0, y: 0, z: 0}
@@ -387,7 +338,7 @@ AnimationClip:
     m_AdditiveReferencePoseClip: {fileID: 0}
     m_AdditiveReferencePoseTime: 0
     m_StartTime: 0
-    m_StopTime: 1.3333
+    m_StopTime: 2
     m_OrientationOffsetY: 0
     m_Level: 0
     m_CycleOffset: 0
@@ -407,29 +358,15 @@ AnimationClip:
   m_HasGenericRootTransform: 0
   m_HasMotionFloatCurves: 0
   m_Events:
-  - time: 0.1
-    functionName: attack
-    data: SpineEvent
-    objectReferenceParameter: {fileID: 0}
-    floatParameter: 0
-    intParameter: 0
-    messageOptions: 1
-  - time: 0.4667
-    functionName: attack
+  - time: 0.43333337
+    functionName: attack_on
     data: SpineEvent
     objectReferenceParameter: {fileID: 0}
     floatParameter: 0
     intParameter: 0
     messageOptions: 1
-  - time: 0.8667
-    functionName: attack
-    data: SpineEvent
-    objectReferenceParameter: {fileID: 0}
-    floatParameter: 0
-    intParameter: 0
-    messageOptions: 1
-  - time: 1.1667
-    functionName: attack
+  - time: 0.6666667
+    functionName: attack_off
     data: SpineEvent
     objectReferenceParameter: {fileID: 0}
     floatParameter: 0
@@ -498,7 +435,7 @@ AnimationClip:
     classID: 1
     script: {fileID: 0}
   m_PPtrCurves: []
-  m_SampleRate: 60
+  m_SampleRate: 30
   m_WrapMode: 0
   m_Bounds:
     m_Center: {x: 0, y: 0, z: 0}
@@ -568,7 +505,7 @@ AnimationClip:
         inWeight: 0
         outWeight: 0
       - serializedVersion: 3
-        time: 2.6667
+        time: 2.6666667
         value: 0
         inSlope: 0
         outSlope: 0
@@ -584,7 +521,7 @@ AnimationClip:
     classID: 1
     script: {fileID: 0}
   m_PPtrCurves: []
-  m_SampleRate: 60
+  m_SampleRate: 30
   m_WrapMode: 0
   m_Bounds:
     m_Center: {x: 0, y: 0, z: 0}
@@ -604,7 +541,7 @@ AnimationClip:
     m_AdditiveReferencePoseClip: {fileID: 0}
     m_AdditiveReferencePoseTime: 0
     m_StartTime: 0
-    m_StopTime: 2.6667
+    m_StopTime: 2.6666667
     m_OrientationOffsetY: 0
     m_Level: 0
     m_CycleOffset: 0
@@ -779,6 +716,15 @@ AnimationClip:
         weightedMode: 0
         inWeight: 0
         outWeight: 0
+      - 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
@@ -787,7 +733,7 @@ AnimationClip:
     classID: 1
     script: {fileID: 0}
   m_PPtrCurves: []
-  m_SampleRate: 60
+  m_SampleRate: 30
   m_WrapMode: 0
   m_Bounds:
     m_Center: {x: 0, y: 0, z: 0}
@@ -807,7 +753,7 @@ AnimationClip:
     m_AdditiveReferencePoseClip: {fileID: 0}
     m_AdditiveReferencePoseTime: 0
     m_StartTime: 0
-    m_StopTime: 0
+    m_StopTime: 1
     m_OrientationOffsetY: 0
     m_Level: 0
     m_CycleOffset: 0
@@ -899,7 +845,7 @@ AnimationClip:
     classID: 1
     script: {fileID: 0}
   m_PPtrCurves: []
-  m_SampleRate: 60
+  m_SampleRate: 30
   m_WrapMode: 0
   m_Bounds:
     m_Center: {x: 0, y: 0, z: 0}

+ 442 - 68
ActionTowerDefense/Assets/Resources/Spine/Player01/player01_Controller.controller

@@ -30,7 +30,7 @@ AnimationClip:
         inWeight: 0
         outWeight: 0
       - serializedVersion: 3
-        time: 1.1333
+        time: 1.1333334
         value: 0
         inSlope: 0
         outSlope: 0
@@ -66,7 +66,7 @@ AnimationClip:
     m_AdditiveReferencePoseClip: {fileID: 0}
     m_AdditiveReferencePoseTime: 0
     m_StartTime: 0
-    m_StopTime: 1.1333
+    m_StopTime: 1.1333334
     m_OrientationOffsetY: 0
     m_Level: 0
     m_CycleOffset: 0
@@ -415,7 +415,7 @@ AnimationClip:
         inWeight: 0
         outWeight: 0
       - serializedVersion: 3
-        time: 1.8333
+        time: 1.6333334
         value: 0
         inSlope: 0
         outSlope: 0
@@ -451,7 +451,7 @@ AnimationClip:
     m_AdditiveReferencePoseClip: {fileID: 0}
     m_AdditiveReferencePoseTime: 0
     m_StartTime: 0
-    m_StopTime: 1.8333
+    m_StopTime: 1.6333334
     m_OrientationOffsetY: 0
     m_Level: 0
     m_CycleOffset: 0
@@ -603,7 +603,7 @@ AnimationClip:
         inWeight: 0
         outWeight: 0
       - serializedVersion: 3
-        time: 1.3333
+        time: 1.3333334
         value: 0
         inSlope: 0
         outSlope: 0
@@ -639,7 +639,7 @@ AnimationClip:
     m_AdditiveReferencePoseClip: {fileID: 0}
     m_AdditiveReferencePoseTime: 0
     m_StartTime: 0
-    m_StopTime: 1.3333
+    m_StopTime: 1.3333334
     m_OrientationOffsetY: 0
     m_Level: 0
     m_CycleOffset: 0
@@ -654,35 +654,7 @@ AnimationClip:
     m_KeepOriginalPositionXZ: 0
     m_HeightFromFeet: 0
     m_Mirror: 0
-  m_EditorCurves:
-  - curve:
-      serializedVersion: 2
-      m_Curve:
-      - serializedVersion: 3
-        time: 0
-        value: 0
-        inSlope: 0
-        outSlope: 0
-        tangentMode: 0
-        weightedMode: 0
-        inWeight: 0
-        outWeight: 0
-      - serializedVersion: 3
-        time: 1.3333
-        value: 0
-        inSlope: 0
-        outSlope: 0
-        tangentMode: 0
-        weightedMode: 0
-        inWeight: 0
-        outWeight: 0
-      m_PreInfinity: 2
-      m_PostInfinity: 2
-      m_RotationOrder: 4
-    attribute: dummy
-    path: 
-    classID: 1
-    script: {fileID: 0}
+  m_EditorCurves: []
   m_EulerEditorCurves: []
   m_HasGenericRootTransform: 0
   m_HasMotionFloatCurves: 0
@@ -1044,7 +1016,7 @@ AnimationClip:
         inWeight: 0
         outWeight: 0
       - serializedVersion: 3
-        time: 1.5
+        time: 1
         value: 0
         inSlope: 0
         outSlope: 0
@@ -1080,7 +1052,7 @@ AnimationClip:
     m_AdditiveReferencePoseClip: {fileID: 0}
     m_AdditiveReferencePoseTime: 0
     m_StartTime: 0
-    m_StopTime: 1.5
+    m_StopTime: 1
     m_OrientationOffsetY: 0
     m_Level: 0
     m_CycleOffset: 0
@@ -1095,35 +1067,7 @@ AnimationClip:
     m_KeepOriginalPositionXZ: 0
     m_HeightFromFeet: 0
     m_Mirror: 0
-  m_EditorCurves:
-  - curve:
-      serializedVersion: 2
-      m_Curve:
-      - serializedVersion: 3
-        time: 0
-        value: 0
-        inSlope: 0
-        outSlope: 0
-        tangentMode: 0
-        weightedMode: 0
-        inWeight: 0
-        outWeight: 0
-      - serializedVersion: 3
-        time: 1.5
-        value: 0
-        inSlope: 0
-        outSlope: 0
-        tangentMode: 0
-        weightedMode: 0
-        inWeight: 0
-        outWeight: 0
-      m_PreInfinity: 2
-      m_PostInfinity: 2
-      m_RotationOrder: 4
-    attribute: dummy
-    path: 
-    classID: 1
-    script: {fileID: 0}
+  m_EditorCurves: []
   m_EulerEditorCurves: []
   m_HasGenericRootTransform: 0
   m_HasMotionFloatCurves: 0
@@ -1287,7 +1231,7 @@ AnimationClip:
         inWeight: 0
         outWeight: 0
       - serializedVersion: 3
-        time: 2.0333
+        time: 2
         value: 0
         inSlope: 0
         outSlope: 0
@@ -1323,7 +1267,7 @@ AnimationClip:
     m_AdditiveReferencePoseClip: {fileID: 0}
     m_AdditiveReferencePoseTime: 0
     m_StartTime: 0
-    m_StopTime: 2.0333
+    m_StopTime: 2
     m_OrientationOffsetY: 0
     m_Level: 0
     m_CycleOffset: 0
@@ -1448,6 +1392,92 @@ AnimatorController:
     m_IKPass: 0
     m_SyncedLayerAffectsTiming: 0
     m_Controller: {fileID: 9100000}
+--- !u!74 &292472577860030286
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: jump_air
+  serializedVersion: 7
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 0.6666667
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: dummy
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  m_PPtrCurves: []
+  m_SampleRate: 30
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 0
+      attribute: 1341452863
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 0.6666667
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves: []
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events: []
 --- !u!1101 &555033982496237884
 AnimatorStateTransition:
   m_ObjectHideFlags: 1
@@ -1868,6 +1898,92 @@ AnimatorState:
   m_MirrorParameter: 
   m_CycleOffsetParameter: 
   m_TimeParameter: 
+--- !u!74 &5216931519214902948
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: summon_air
+  serializedVersion: 7
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 0.6666667
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: dummy
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  m_PPtrCurves: []
+  m_SampleRate: 30
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 0
+      attribute: 1341452863
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 0.6666667
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves: []
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events: []
 --- !u!74 &6030887915149651766
 AnimationClip:
   m_ObjectHideFlags: 0
@@ -1980,6 +2096,92 @@ AnimatorState:
   m_MirrorParameter: 
   m_CycleOffsetParameter: 
   m_TimeParameter: 
+--- !u!74 &7056263511098428086
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: scale1
+  serializedVersion: 7
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 0.6666667
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: dummy
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  m_PPtrCurves: []
+  m_SampleRate: 30
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 0
+      attribute: 1341452863
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 0.6666667
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves: []
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events: []
 --- !u!206 &7131689805988816564
 BlendTree:
   m_ObjectHideFlags: 1
@@ -1995,6 +2197,178 @@ BlendTree:
   m_UseAutomaticThresholds: 1
   m_NormalizedBlendValues: 0
   m_BlendType: 0
+--- !u!74 &7273969781676709639
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: idle2
+  serializedVersion: 7
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 2
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: dummy
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  m_PPtrCurves: []
+  m_SampleRate: 30
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 0
+      attribute: 1341452863
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 2
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves: []
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events: []
+--- !u!74 &7645010257236380295
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: scale10
+  serializedVersion: 7
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 0.6666667
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: dummy
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  m_PPtrCurves: []
+  m_SampleRate: 30
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 0
+      attribute: 1341452863
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 0.6666667
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves: []
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events: []
 --- !u!74 &7933751664992966251
 AnimationClip:
   m_ObjectHideFlags: 1

+ 1 - 1
ActionTowerDefense/Assets/Resources/Spine/Player01/player_01_SkeletonData.asset

@@ -30,4 +30,4 @@ MonoBehaviour:
   toAnimation: []
   duration: []
   defaultMix: 0.2
-  controller: {fileID: 0}
+  controller: {fileID: 9100000, guid: 8c867fbd7c2b8d94c9b8cbc8904e77a6, type: 2}

+ 5 - 0
ActionTowerDefense/Assets/Scripts/Boss/Boss.cs

@@ -21,9 +21,11 @@ public enum AttackCategories
 
 public class Boss : MoveCharacter
 {
+    [Space(30)]
     [Header("Boss属性")]
     [Header("当前索敌是对塔还是对玩家")]
     public TargetType curTarget;
+    public PlayerController pc;
 
     [Header("Boss攻击规律")]
     public string circulate;                //循环配置
@@ -47,6 +49,9 @@ public class Boss : MoveCharacter
         uiHp.Show(hp, totalHp);
         ChangeState(CharacterState.Idle);
         curInterval = Random.Range(minInterval, maxInterval);
+
+        //玩家
+        pc = PlayersInput.instance[0];
     }
 
     public virtual void Start()

+ 1 - 1
ActionTowerDefense/Assets/Scripts/Boss/WaterGhost/HairSprint.cs

@@ -103,7 +103,7 @@ public class HairSprint : MonoBehaviour
     {
         aims = new Vector3[7];
         List<Character> aimCharacters = new List<Character>(7);
-        aimCharacters = ws.searchTrigger.GetAllTargets(ws.targetTypes, true);
+        aimCharacters = ws.searchTrigger.GetAllTargets(ws.attackController.targetTypes, true);
         bool hasAimedPlayer = false;
         var sortedObjects = aimCharacters.OrderBy(obj => Vector3.Distance(transform.position, obj.transform.position)).ToArray();
         if (sortedObjects.Length > attackTime)

+ 26 - 5
ActionTowerDefense/Assets/Scripts/Boss/WaterGhost/WaterSprite.cs

@@ -3,9 +3,24 @@ using System.Collections.Generic;
 using UnityEngine;
 using Sirenix.OdinInspector;
 
-public class WaterSprite : MonoBehaviour
+public class WaterSprite : Boss
 {
+    public enum BossState
+    {
+        Move,       //移动,浮空+点水,动画控制高度,代码控制位移x;点水处生化
+        Umbrella,   //黑伞回旋镖
+        Lotus,      //召唤莲花
+        Hair,       //辫子攻击
+        Rush,       //水面冲刺
+    }
+
+    public BossState bossState;             //boss当前的状态
+
     [Header("水诡白家娘娘")]
+
+    [Header("移动")]
+    public Vector3 aimPos;
+
     [Header("黑伞")]
     public GameObject umbrellaPrefab;       //预制体
     private GameObject umbrellaInstance;    //实例化
@@ -20,9 +35,15 @@ public class WaterSprite : MonoBehaviour
     private GameObject hairInstance;
     private HairSprint hairSprint;
 
-    [Header("临时")]
-    public SearchTrigger searchTrigger;
-    public List<TargetType> targetTypes;
+
+    //步步生花
+    private Vector3 GetAimPos()
+    {
+        Vector3 aim;
+        aim = pc.bodyTrans.position;
+        aim.y = transform.position.y;
+        return aim;
+    }
 
     //黑伞回旋镖
     private void SkillBlackUmbrella()
@@ -52,7 +73,7 @@ public class WaterSprite : MonoBehaviour
         hairSprint.Release();
     }
 
-    private void Update()
+    public override void Update()
     {
         if (Input.GetKeyDown(KeyCode.Q))
         {

+ 0 - 2
ActionTowerDefense/Assets/Scripts/Bullet.cs

@@ -47,7 +47,6 @@ public class Bullet : MonoBehaviour
     public bool haveTransmit;           //刚传送过
     [HideInInspector]
     public float transmitTime;          //传送CD
-    public PortalsController portalsController;
     
     private bool isInVain;   //击中光球,攻击无效
 
@@ -64,7 +63,6 @@ public class Bullet : MonoBehaviour
             if (transmitTime <= 0)
             {
                 haveTransmit = false;
-                portalsController.rbs.Remove(rb);
             }
         }
     }

+ 18 - 0
ActionTowerDefense/Assets/Scripts/Characters/AttackEvent.cs

@@ -0,0 +1,18 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using Spine;
+using Spine.Unity;
+
+public class AttackEvent : MonoBehaviour
+{
+    void attack_on()
+    {
+        Debug.Log(1);
+    }
+
+    void attack_off()
+    {
+        Debug.Log(2);
+    }
+}

+ 11 - 0
ActionTowerDefense/Assets/Scripts/Characters/AttackEvent.cs.meta

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

+ 29 - 23
ActionTowerDefense/Assets/Scripts/Characters/Character.cs

@@ -45,7 +45,6 @@ public class Character : MonoBehaviour
     [FoldoutGroup("组件")] public AttackController attackController;
     [FoldoutGroup("组件")] public Platform platform;
     
-
     [Header("骨骼")]
     public SkeletonMecanim mecanim;
     public Skeleton skeleton;
@@ -53,12 +52,25 @@ public class Character : MonoBehaviour
     public MeshRenderer meshRenderer;
 
     [Header("动画控制器")]
-    public Animator ani;
+    [FoldoutGroup("动画",order:-1)] public Animator ani;
     
     [Header("重要动画时间")]
-    public float totalDieKeepTime = 2f;
-    public float totalAttack_summonTime = 0.5f;
-    public float totalAttack_marchTime = 0.5f;
+    [FoldoutGroup("动画")] public float totalDieKeepTime = 2f;
+    [FoldoutGroup("动画")] public float totalAttack_summonTime = 0.5f;
+    [FoldoutGroup("动画")] public float totalAttack_marchTime = 0.5f;
+
+    [Header("跳字开关")]
+    [FoldoutGroup("伤害跳字")] public bool showInjuryNum;
+
+    [Header("跳字样式")]
+    [FoldoutGroup("伤害跳字", order: -1)] public GameObject injuryNumText;  //伤害跳字
+    [FoldoutGroup("伤害跳字")] public GameObject injuryNumTextSummon;       //伤害跳字(起手式)
+
+    [Header("跳字位置")]
+    [FoldoutGroup("伤害跳字")] [LabelText("起手式位置")] public Vector2 injuryNumPos_summon = new Vector2(0, 1);
+    [FoldoutGroup("伤害跳字")] [LabelText("起手式随机范围")] public Vector2 injuryNumRandom_summon = Vector2.one;
+    [FoldoutGroup("伤害跳字")] [LabelText("行军式位置")] public Vector2 injuryNumPos_march = new Vector2(0, 1);
+    [FoldoutGroup("伤害跳字")] [LabelText("行军式随机范围")] public Vector2 injuryNumRandom_march = Vector2.one * 2;
 
     [Header("死亡后多久尸体消失")]
     [HideInInspector]
@@ -69,33 +81,32 @@ public class Character : MonoBehaviour
     [HideInInspector]
     public float attackDis;
 
+    //当前目标
     [DisplayOnly]
     public Character targetCharacter;
     [HideInInspector]
     public Character attackTarget;
 
-    [Header("角色状态")]
     [DisplayOnly]
-    public CharacterState state;
-    public int totalHp = 100;
-    public int hp;
+    [FoldoutGroup("角色信息", order: -1)] public CharacterState state;
+    [FoldoutGroup("角色信息")] public int totalHp = 100;
+    [FoldoutGroup("角色信息")] public int hp;
+
+    [Header("角色状态")]
+    public bool canFly = false;
+    [HideInInspector] public bool nowCanFly; //当前是否能飞行
+    [LabelText("不会被击飞")] public bool canNotAddForce;
+    [LabelText("不会被虚弱")] public bool canNotChangeHurt;
     [DisplayOnly]
     public bool isDie = false;      //已死亡
     [DisplayOnly]
     public bool isRevive;           //从虚弱状态恢复中
-    public bool canNotAddForce;     //不会被打飞
-    public bool canNotChangeHurt;   //不会被打虚弱
     [DisplayOnly]
     public float invincibleTime;    //无敌时间
-    public GameObject injuryNumText;//伤害跳字
-    public GameObject injuryNumTextSummon;//伤害跳字(起手式)
     [HideInInspector]
-    public bool isBeHitBySummonAttack;
-    public bool showInjuryNum;      //伤害跳字开关
-    public bool canFly = false;
-    [HideInInspector]public bool nowCanFly; //当前是否能飞行
+    public bool isBeHitBySummonAttack;      //受到来自起手式的攻击
 
-    [Header("状态显示")]
+    [Header("状态显示(临时)")]
     public GameObject statePre;
     private GameObject curStateObj;
     private TextMeshProUGUI stateText;
@@ -121,11 +132,6 @@ public class Character : MonoBehaviour
     [Space]
     [LabelText("debug攻击者")] public bool debugAttackFrom;
 
-    [FoldoutGroup("伤害跳字")] [LabelText("起手式位置")] public Vector2 injuryNumPos_summon = new Vector2(0, 1);
-    [FoldoutGroup("伤害跳字")] [LabelText("起手式随机范围")] public Vector2 injuryNumRandom_summon = Vector2.one;
-    [FoldoutGroup("伤害跳字")] [LabelText("行军式位置")] public Vector2 injuryNumPos_march = new Vector2(0, 1);
-    [FoldoutGroup("伤害跳字")] [LabelText("行军式随机范围")] public Vector2 injuryNumRandom_march = Vector2.one * 2;
-
 
     public virtual void Init()
     {

+ 11 - 7
ActionTowerDefense/Assets/Scripts/Characters/MoveCharacter.cs

@@ -8,6 +8,11 @@ using Sirenix.OdinInspector;
 
 public class MoveCharacter : Character
 {
+    [Space(30)]
+    [Header("MoveCharacter属性")]
+    [Header("角色抗击打值")]
+    public int hitResistance;
+
     [FoldoutGroup("组件")] public Foot foot;
     [HideInInspector] public AttributeStatus attributeStatus;
     private ScreenReflectPresets screenReflectPresets;
@@ -20,9 +25,6 @@ public class MoveCharacter : Character
     [FoldoutGroup("平台", order: -1)] [LabelText("移速增量")]public float velocityAddition;
     [FoldoutGroup("平台")] [DisplayOnly] public float platformY;
 
-    [Header("角色抗击打值")]
-    public int hitResistance;
-
     [Header("材质")]
     public float matState = 1;
     public GameObject spinee;
@@ -33,12 +35,13 @@ public class MoveCharacter : Character
 
     [Header("属性")]
     public float moveSpeed = 5;
+    [FoldoutGroup("飞行兵落地后回升")][LabelText("是否需要判定回升")]
     public bool needToAdjustFlyHeight;
-    [FoldoutGroup("回升", order:-1)][DisplayOnly] public float flyHeight;
-    [FoldoutGroup("回升")][LabelText("最大高度")] public float maxFlyHeight;
-    [FoldoutGroup("回升")][LabelText("最低高度")] public float minFlyHeight;
+    [FoldoutGroup("飞行兵落地后回升", order:-1)][DisplayOnly] public float flyHeight;
+    [FoldoutGroup("飞行兵落地后回升")][LabelText("最大高度")] public float maxFlyHeight;
+    [FoldoutGroup("飞行兵落地后回升")][LabelText("最低高度")] public float minFlyHeight;
     float refspeed = 1;
-    [FoldoutGroup("回升")][LabelText("速度")][Range(0, 1)] public float flyUpTime;
+    [FoldoutGroup("飞行兵落地后回升")][LabelText("速度")][Range(0, 1)] public float flyUpTime;
     [HideInInspector]
     public int isAdjustHeight;
 
@@ -47,6 +50,7 @@ public class MoveCharacter : Character
     public float reductionDegree;
     public GameObject reductionEffect;
 
+    //技能类,后面移到其他脚本
     [Header("临时血量")]
     public GameObject effect;
     private int temptHP;

+ 0 - 13
ActionTowerDefense/Assets/Scripts/Portal/PortalsController.cs

@@ -32,12 +32,6 @@ public class PortalsController : MonoBehaviour
             if (Transmit(rb))
             {
                 MoveCharacter moveCharacter = rb.GetComponent<MoveCharacter>();
-                if (moveCharacter != null)
-                {
-                    moveCharacter.portalsController = this;
-                    moveCharacter.transmitTime = TransmitCD;
-                    moveCharacter.haveTransmit = true;
-                }
             }
             return;
         }
@@ -48,7 +42,6 @@ public class PortalsController : MonoBehaviour
             Rigidbody rb = bullet.GetComponentInParent<Rigidbody>();
             if (Transmit(rb))
             {
-                bullet.portalsController = this;
                 bullet.transmitTime = TransmitCD;
                 bullet.haveTransmit = true;
             }
@@ -59,12 +52,6 @@ public class PortalsController : MonoBehaviour
         if(soul != null)
         {
             Rigidbody rb = soul.GetComponent<Rigidbody>();
-            if (Transmit(rb))
-            {
-                soul.portalsController = this;
-                soul.transmitTime = TransmitCD;
-                soul.haveTransmit = true;
-            }
             return;
         }
     }

+ 0 - 18
ActionTowerDefense/Assets/Scripts/Soul.cs

@@ -26,12 +26,6 @@ public class Soul : MonoBehaviour
 
     public bool Spirits_Invisible_NotFind;
 
-    [Header("传送门")]
-    public bool haveTransmit;           //刚传送过
-    [HideInInspector]
-    public float transmitTime;          //传送CD
-    public PortalsController portalsController;
-
     [Header("紫魂")]
     public bool isSourPurple;           //是否是紫魂
     public Spirits.SpiritType type;
@@ -98,18 +92,6 @@ public class Soul : MonoBehaviour
         
     }
 
-    private void Update()
-    {
-        if (haveTransmit)
-        {
-            transmitTime -= Time.deltaTime;
-            if (transmitTime <= 0)
-            {
-                haveTransmit = false;
-                portalsController.rbs.Remove(rb);
-            }
-        }
-    }
     private void FixedUpdate()
     {
         if (isShoot)

+ 267 - 2128
ActionTowerDefense/GenerateDatas/json/cfgcreateenemy.json

@@ -654,22 +654,15 @@
   {
     "WaveID": 3,
     "WaveName": "3波地",
-    "Dynamic": 0,
+    "Dynamic": 1,
     "WaveTime": 15,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      7,
-      1,
-      31,
-      9,
-      62,
-      10
-    ],
+    "EnemyName": "",
+    "Position": [],
     "StartTime": 0,
-    "EndTime": 10,
-    "Count": 60,
+    "EndTime": 0,
+    "Count": 0,
     "AttackRatio": 1,
     "SpeedRatio": 1,
     "HPRatio": 1,
@@ -805,25 +798,18 @@
   {
     "WaveID": 6,
     "WaveName": "3波地1",
-    "Dynamic": 0,
+    "Dynamic": 1,
     "WaveTime": 15,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      7,
-      1,
-      31,
-      9,
-      62,
-      10
-    ],
+    "EnemyName": "",
+    "Position": [],
     "StartTime": 0,
-    "EndTime": 10,
-    "Count": 60,
+    "EndTime": 0,
+    "Count": 0,
     "AttackRatio": 1,
     "SpeedRatio": 1,
-    "HPRatio": 1.5,
+    "HPRatio": 1,
     "ArmorRatio": 1,
     "ArmorPiercingRatio": 1
   },
@@ -956,25 +942,18 @@
   {
     "WaveID": 9,
     "WaveName": "3波地2",
-    "Dynamic": 0,
+    "Dynamic": 2,
     "WaveTime": 15,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      7,
-      1,
-      31,
-      9,
-      62,
-      10
-    ],
+    "EnemyName": "",
+    "Position": [],
     "StartTime": 0,
-    "EndTime": 10,
-    "Count": 60,
+    "EndTime": 0,
+    "Count": 0,
     "AttackRatio": 1,
     "SpeedRatio": 1,
-    "HPRatio": 2,
+    "HPRatio": 1,
     "ArmorRatio": 1,
     "ArmorPiercingRatio": 1
   },
@@ -1107,25 +1086,18 @@
   {
     "WaveID": 12,
     "WaveName": "3波地3",
-    "Dynamic": 0,
+    "Dynamic": 2,
     "WaveTime": 15,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      7,
-      1,
-      31,
-      9,
-      62,
-      10
-    ],
+    "EnemyName": "",
+    "Position": [],
     "StartTime": 0,
-    "EndTime": 10,
-    "Count": 60,
+    "EndTime": 0,
+    "Count": 0,
     "AttackRatio": 1,
     "SpeedRatio": 1,
-    "HPRatio": 2.5,
+    "HPRatio": 1,
     "ArmorRatio": 1,
     "ArmorPiercingRatio": 1
   },
@@ -1258,25 +1230,18 @@
   {
     "WaveID": 15,
     "WaveName": "3波地4",
-    "Dynamic": 0,
+    "Dynamic": 3,
     "WaveTime": 15,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      7,
-      1,
-      31,
-      9,
-      62,
-      10
-    ],
+    "EnemyName": "",
+    "Position": [],
     "StartTime": 0,
-    "EndTime": 10,
-    "Count": 60,
+    "EndTime": 0,
+    "Count": 0,
     "AttackRatio": 1,
     "SpeedRatio": 1,
-    "HPRatio": 3,
+    "HPRatio": 1,
     "ArmorRatio": 1,
     "ArmorPiercingRatio": 1
   },
@@ -1388,7 +1353,7 @@
   },
   {
     "WaveID": 0.01,
-    "WaveName": "1出",
+    "WaveName": "1出",
     "Dynamic": 0,
     "WaveTime": 0,
     "BuildingID": "塔3",
@@ -1421,7 +1386,7 @@
     ],
     "StartTime": 0,
     "EndTime": 10,
-    "Count": 15,
+    "Count": 30,
     "AttackRatio": 1,
     "SpeedRatio": 1,
     "HPRatio": 1,
@@ -1442,7 +1407,7 @@
     ],
     "StartTime": 0,
     "EndTime": 10,
-    "Count": 10,
+    "Count": 20,
     "AttackRatio": 1,
     "SpeedRatio": 1,
     "HPRatio": 1,
@@ -1451,7 +1416,7 @@
   },
   {
     "WaveID": 0.02,
-    "WaveName": "1出1",
+    "WaveName": "1出1",
     "Dynamic": 0,
     "WaveTime": 0,
     "BuildingID": "塔3",
@@ -1484,7 +1449,7 @@
     ],
     "StartTime": 0,
     "EndTime": 5,
-    "Count": 10,
+    "Count": 20,
     "AttackRatio": 1,
     "SpeedRatio": 1,
     "HPRatio": 1,
@@ -1505,7 +1470,7 @@
     ],
     "StartTime": 0,
     "EndTime": 5,
-    "Count": 5,
+    "Count": 10,
     "AttackRatio": 1,
     "SpeedRatio": 1,
     "HPRatio": 1,
@@ -1535,7 +1500,7 @@
   },
   {
     "WaveID": 0.03,
-    "WaveName": "2出",
+    "WaveName": "2出",
     "Dynamic": 0,
     "WaveTime": 0,
     "BuildingID": "塔2",
@@ -1547,7 +1512,7 @@
     ],
     "StartTime": 0,
     "EndTime": 10,
-    "Count": 5,
+    "Count": 10,
     "AttackRatio": 2,
     "SpeedRatio": 2,
     "HPRatio": 2,
@@ -1568,7 +1533,7 @@
     ],
     "StartTime": 0,
     "EndTime": 10,
-    "Count": 10,
+    "Count": 20,
     "AttackRatio": 2,
     "SpeedRatio": 2,
     "HPRatio": 2,
@@ -1589,7 +1554,7 @@
     ],
     "StartTime": 0,
     "EndTime": 10,
-    "Count": 10,
+    "Count": 20,
     "AttackRatio": 2,
     "SpeedRatio": 2,
     "HPRatio": 2,
@@ -1598,7 +1563,7 @@
   },
   {
     "WaveID": 0.04,
-    "WaveName": "2出1",
+    "WaveName": "2出1",
     "Dynamic": 0,
     "WaveTime": 0,
     "BuildingID": "塔2",
@@ -1652,7 +1617,7 @@
     ],
     "StartTime": 0,
     "EndTime": 10,
-    "Count": 15,
+    "Count": 30,
     "AttackRatio": 2,
     "SpeedRatio": 2,
     "HPRatio": 2,
@@ -1661,7 +1626,7 @@
   },
   {
     "WaveID": 0.05,
-    "WaveName": "3出1",
+    "WaveName": "3出1",
     "Dynamic": 0,
     "WaveTime": 0,
     "BuildingID": "塔1",
@@ -1673,7 +1638,7 @@
     ],
     "StartTime": 0,
     "EndTime": 10,
-    "Count": 10,
+    "Count": 20,
     "AttackRatio": 3,
     "SpeedRatio": 3,
     "HPRatio": 3,
@@ -1703,7 +1668,7 @@
   },
   {
     "WaveID": 0.06,
-    "WaveName": "3出2",
+    "WaveName": "3出2",
     "Dynamic": 0,
     "WaveTime": 0,
     "BuildingID": "塔1",
@@ -1715,7 +1680,7 @@
     ],
     "StartTime": 0,
     "EndTime": 10,
-    "Count": 5,
+    "Count": 10,
     "AttackRatio": 3,
     "SpeedRatio": 3,
     "HPRatio": 3,
@@ -1745,7 +1710,7 @@
   },
   {
     "WaveID": 0.07,
-    "WaveName": "3出3",
+    "WaveName": "3出3",
     "Dynamic": 0,
     "WaveTime": 0,
     "BuildingID": "塔1",
@@ -1757,7 +1722,7 @@
     ],
     "StartTime": 0,
     "EndTime": 3,
-    "Count": 15,
+    "Count": 30,
     "AttackRatio": 3,
     "SpeedRatio": 3,
     "HPRatio": 3,
@@ -1799,7 +1764,7 @@
     ],
     "StartTime": 0,
     "EndTime": 10,
-    "Count": 7,
+    "Count": 15,
     "AttackRatio": 3,
     "SpeedRatio": 3,
     "HPRatio": 3,
@@ -1807,19 +1772,37 @@
     "ArmorPiercingRatio": 1
   },
   {
-    "WaveID": 1,
-    "WaveName": "1波空",
+    "WaveID": -1,
+    "WaveName": "占位行",
     "Dynamic": 0,
-    "WaveTime": 15,
+    "WaveTime": 0,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "大猪",
+    "EnemyName": "",
+    "Position": [],
+    "StartTime": 0,
+    "EndTime": 0,
+    "Count": 0,
+    "AttackRatio": 1,
+    "SpeedRatio": 1,
+    "HPRatio": 1,
+    "ArmorRatio": 1,
+    "ArmorPiercingRatio": 1
+  },
+  {
+    "WaveID": 0,
+    "WaveName": "塔1",
+    "Dynamic": 0,
+    "WaveTime": 5,
+    "BuildingID": "",
+    "BuildingHP": 0,
+    "EnemyName": "敌方防御塔",
     "Position": [
-      4,
+      3,
       1
     ],
     "StartTime": 0,
-    "EndTime": 10,
+    "EndTime": 0,
     "Count": 1,
     "AttackRatio": 1,
     "SpeedRatio": 1,
@@ -1828,20 +1811,20 @@
     "ArmorPiercingRatio": 1
   },
   {
-    "WaveID": 1,
-    "WaveName": "",
+    "WaveID": 0,
+    "WaveName": "塔2",
     "Dynamic": 0,
     "WaveTime": 0,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "小猪",
+    "EnemyName": "敌方防御塔",
     "Position": [
-      6,
+      32,
       1
     ],
     "StartTime": 0,
-    "EndTime": 10,
-    "Count": 10,
+    "EndTime": 0,
+    "Count": 1,
     "AttackRatio": 1,
     "SpeedRatio": 1,
     "HPRatio": 1,
@@ -1849,20 +1832,20 @@
     "ArmorPiercingRatio": 1
   },
   {
-    "WaveID": 1,
-    "WaveName": "",
+    "WaveID": 0,
+    "WaveName": "塔3",
     "Dynamic": 0,
     "WaveTime": 0,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "幽灵头",
+    "EnemyName": "敌方防御塔",
     "Position": [
-      5,
-      9
+      60,
+      1
     ],
     "StartTime": 0,
-    "EndTime": 10,
-    "Count": 10,
+    "EndTime": 0,
+    "Count": 1,
     "AttackRatio": 1,
     "SpeedRatio": 1,
     "HPRatio": 1,
@@ -1870,20 +1853,24 @@
     "ArmorPiercingRatio": 1
   },
   {
-    "WaveID": 2,
-    "WaveName": "2波地",
+    "WaveID": 0,
+    "WaveName": "我塔",
     "Dynamic": 0,
-    "WaveTime": 15,
+    "WaveTime": 0,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "大猪",
+    "EnemyName": "防御塔",
     "Position": [
-      5,
+      118,
+      1,
+      120,
+      1,
+      122,
       1
     ],
     "StartTime": 0,
-    "EndTime": 10,
-    "Count": 1,
+    "EndTime": 0,
+    "Count": 3,
     "AttackRatio": 1,
     "SpeedRatio": 1,
     "HPRatio": 1,
@@ -1891,20 +1878,20 @@
     "ArmorPiercingRatio": 1
   },
   {
-    "WaveID": 2,
-    "WaveName": "",
+    "WaveID": 0.01,
+    "WaveName": "1塔出",
     "Dynamic": 0,
     "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "猪",
+    "BuildingID": "塔3",
+    "BuildingHP": 99,
+    "EnemyName": "猪",
     "Position": [
-      7,
+      59,
       1
     ],
     "StartTime": 0,
     "EndTime": 10,
-    "Count": 20,
+    "Count": 3,
     "AttackRatio": 1,
     "SpeedRatio": 1,
     "HPRatio": 1,
@@ -1912,20 +1899,20 @@
     "ArmorPiercingRatio": 1
   },
   {
-    "WaveID": 2,
+    "WaveID": 0.01,
     "WaveName": "",
     "Dynamic": 0,
     "WaveTime": 0,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "道士",
+    "EnemyName": "小猪",
     "Position": [
-      6,
+      57,
       1
     ],
     "StartTime": 0,
     "EndTime": 10,
-    "Count": 5,
+    "Count": 30,
     "AttackRatio": 1,
     "SpeedRatio": 1,
     "HPRatio": 1,
@@ -1933,24 +1920,20 @@
     "ArmorPiercingRatio": 1
   },
   {
-    "WaveID": 3,
-    "WaveName": "3波地",
+    "WaveID": 0.01,
+    "WaveName": "",
     "Dynamic": 0,
-    "WaveTime": 15,
+    "WaveTime": 0,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "小猪",
+    "EnemyName": "老鬼头",
     "Position": [
-      7,
-      1,
-      31,
-      9,
-      62,
+      56,
       10
     ],
     "StartTime": 0,
     "EndTime": 10,
-    "Count": 30,
+    "Count": 20,
     "AttackRatio": 1,
     "SpeedRatio": 1,
     "HPRatio": 1,
@@ -1958,28 +1941,28 @@
     "ArmorPiercingRatio": 1
   },
   {
-    "WaveID": 4,
-    "WaveName": "1波空1",
+    "WaveID": 0.02,
+    "WaveName": "1塔出1",
     "Dynamic": 0,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "幽灵头",
+    "WaveTime": 0,
+    "BuildingID": "塔3",
+    "BuildingHP": 40,
+    "EnemyName": "大猪",
     "Position": [
-      5,
-      9
+      58,
+      1
     ],
     "StartTime": 0,
-    "EndTime": 10,
-    "Count": 10,
+    "EndTime": 2,
+    "Count": 2,
     "AttackRatio": 1,
     "SpeedRatio": 1,
-    "HPRatio": 1.5,
+    "HPRatio": 1,
     "ArmorRatio": 1,
     "ArmorPiercingRatio": 1
   },
   {
-    "WaveID": 4,
+    "WaveID": 0.02,
     "WaveName": "",
     "Dynamic": 0,
     "WaveTime": 0,
@@ -1987,2175 +1970,331 @@
     "BuildingHP": 0,
     "EnemyName": "小猪",
     "Position": [
-      6,
+      60,
       1
     ],
     "StartTime": 0,
-    "EndTime": 10,
-    "Count": 10,
+    "EndTime": 5,
+    "Count": 20,
     "AttackRatio": 1,
     "SpeedRatio": 1,
-    "HPRatio": 1.5,
+    "HPRatio": 1,
     "ArmorRatio": 1,
     "ArmorPiercingRatio": 1
   },
   {
-    "WaveID": 4,
+    "WaveID": 0.02,
     "WaveName": "",
     "Dynamic": 0,
     "WaveTime": 0,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "大猪",
+    "EnemyName": "幽灵头",
     "Position": [
-      4,
-      1
+      56,
+      9
     ],
     "StartTime": 0,
-    "EndTime": 10,
-    "Count": 1,
+    "EndTime": 5,
+    "Count": 10,
     "AttackRatio": 1,
     "SpeedRatio": 1,
-    "HPRatio": 1.5,
+    "HPRatio": 1,
     "ArmorRatio": 1,
     "ArmorPiercingRatio": 1
   },
   {
-    "WaveID": 5,
-    "WaveName": "2波地1",
+    "WaveID": 0.02,
+    "WaveName": "",
     "Dynamic": 0,
-    "WaveTime": 15,
+    "WaveTime": 0,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "大猪",
+    "EnemyName": "老鬼头",
     "Position": [
-      5,
-      1
+      55,
+      9
     ],
     "StartTime": 0,
-    "EndTime": 10,
-    "Count": 1,
+    "EndTime": 5,
+    "Count": 5,
     "AttackRatio": 1,
     "SpeedRatio": 1,
-    "HPRatio": 1.5,
+    "HPRatio": 1,
     "ArmorRatio": 1,
     "ArmorPiercingRatio": 1
   },
   {
-    "WaveID": 5,
-    "WaveName": "",
+    "WaveID": 0.03,
+    "WaveName": "2塔出",
     "Dynamic": 0,
     "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "小猪",
+    "BuildingID": "塔2",
+    "BuildingHP": 99,
+    "EnemyName": "老鬼头",
     "Position": [
-      7,
-      1
+      28,
+      9
     ],
     "StartTime": 0,
     "EndTime": 10,
-    "Count": 20,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1.5,
+    "Count": 10,
+    "AttackRatio": 2,
+    "SpeedRatio": 2,
+    "HPRatio": 2,
     "ArmorRatio": 1,
     "ArmorPiercingRatio": 1
   },
   {
-    "WaveID": 5,
+    "WaveID": 0.03,
     "WaveName": "",
     "Dynamic": 0,
     "WaveTime": 0,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "道士",
+    "EnemyName": "虾兵",
     "Position": [
-      6,
+      30,
       1
     ],
     "StartTime": 0,
     "EndTime": 10,
-    "Count": 5,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1.5,
+    "Count": 20,
+    "AttackRatio": 2,
+    "SpeedRatio": 2,
+    "HPRatio": 2,
     "ArmorRatio": 1,
     "ArmorPiercingRatio": 1
   },
   {
-    "WaveID": 6,
-    "WaveName": "3波地1",
+    "WaveID": 0.03,
+    "WaveName": "",
     "Dynamic": 0,
-    "WaveTime": 15,
+    "WaveTime": 0,
     "BuildingID": "",
     "BuildingHP": 0,
     "EnemyName": "小猪",
     "Position": [
-      7,
-      1,
-      31,
-      9,
-      62,
-      10
+      28,
+      1
     ],
     "StartTime": 0,
     "EndTime": 10,
-    "Count": 30,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1.5,
+    "Count": 20,
+    "AttackRatio": 2,
+    "SpeedRatio": 2,
+    "HPRatio": 2,
     "ArmorRatio": 1,
     "ArmorPiercingRatio": 1
   },
   {
-    "WaveID": 7,
-    "WaveName": "1波空2",
+    "WaveID": 0.04,
+    "WaveName": "2塔出1",
     "Dynamic": 0,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "幽灵头",
+    "WaveTime": 0,
+    "BuildingID": "塔2",
+    "BuildingHP": 50,
+    "EnemyName": "道士",
     "Position": [
-      5,
-      9
+      26,
+      1
     ],
     "StartTime": 0,
-    "EndTime": 10,
-    "Count": 10,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
+    "EndTime": 5,
+    "Count": 5,
+    "AttackRatio": 2,
+    "SpeedRatio": 2,
     "HPRatio": 2,
     "ArmorRatio": 1,
     "ArmorPiercingRatio": 1
   },
   {
-    "WaveID": 7,
+    "WaveID": 0.04,
     "WaveName": "",
     "Dynamic": 0,
     "WaveTime": 0,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "猪",
+    "EnemyName": "猪",
     "Position": [
-      6,
+      30,
       1
     ],
     "StartTime": 0,
-    "EndTime": 10,
-    "Count": 10,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
+    "EndTime": 3,
+    "Count": 3,
+    "AttackRatio": 2,
+    "SpeedRatio": 2,
     "HPRatio": 2,
     "ArmorRatio": 1,
     "ArmorPiercingRatio": 1
   },
   {
-    "WaveID": 7,
+    "WaveID": 0.04,
     "WaveName": "",
     "Dynamic": 0,
     "WaveTime": 0,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "大猪",
+    "EnemyName": "幽灵头",
     "Position": [
-      4,
-      1
+      27,
+      9
     ],
     "StartTime": 0,
     "EndTime": 10,
-    "Count": 1,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
+    "Count": 30,
+    "AttackRatio": 2,
+    "SpeedRatio": 2,
     "HPRatio": 2,
     "ArmorRatio": 1,
     "ArmorPiercingRatio": 1
   },
   {
-    "WaveID": 8,
-    "WaveName": "2波地2",
+    "WaveID": 0.05,
+    "WaveName": "3塔出1",
     "Dynamic": 0,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "大猪",
+    "WaveTime": 0,
+    "BuildingID": "塔1",
+    "BuildingHP": 99,
+    "EnemyName": "幽灵头",
     "Position": [
-      5,
-      1
+      1,
+      9
     ],
     "StartTime": 0,
     "EndTime": 10,
-    "Count": 1,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 2,
+    "Count": 20,
+    "AttackRatio": 3,
+    "SpeedRatio": 3,
+    "HPRatio": 3,
     "ArmorRatio": 1,
     "ArmorPiercingRatio": 1
   },
   {
-    "WaveID": 8,
+    "WaveID": 0.05,
     "WaveName": "",
     "Dynamic": 0,
     "WaveTime": 0,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "小猪",
+    "EnemyName": "飞胖",
     "Position": [
-      7,
-      1
+      4,
+      9
     ],
     "StartTime": 0,
-    "EndTime": 10,
-    "Count": 10,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 2,
+    "EndTime": 3,
+    "Count": 3,
+    "AttackRatio": 3,
+    "SpeedRatio": 3,
+    "HPRatio": 3,
     "ArmorRatio": 1,
     "ArmorPiercingRatio": 1
   },
   {
-    "WaveID": 8,
-    "WaveName": "",
+    "WaveID": 0.06,
+    "WaveName": "3塔出2",
     "Dynamic": 0,
     "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
+    "BuildingID": "塔1",
+    "BuildingHP": 70,
     "EnemyName": "道士",
     "Position": [
-      6,
+      1,
       1
     ],
     "StartTime": 0,
     "EndTime": 10,
-    "Count": 5,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 2,
+    "Count": 10,
+    "AttackRatio": 3,
+    "SpeedRatio": 3,
+    "HPRatio": 3,
     "ArmorRatio": 1,
     "ArmorPiercingRatio": 1
   },
   {
-    "WaveID": 9,
-    "WaveName": "3波地2",
+    "WaveID": 0.06,
+    "WaveName": "",
     "Dynamic": 0,
-    "WaveTime": 15,
+    "WaveTime": 0,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "猪",
+    "EnemyName": "猪",
     "Position": [
-      7,
+      3,
       1
     ],
     "StartTime": 0,
-    "EndTime": 10,
-    "Count": 20,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 2,
+    "EndTime": 3,
+    "Count": 3,
+    "AttackRatio": 3,
+    "SpeedRatio": 3,
+    "HPRatio": 3,
     "ArmorRatio": 1,
     "ArmorPiercingRatio": 1
   },
   {
-    "WaveID": 10,
-    "WaveName": "1波空3",
+    "WaveID": 0.07,
+    "WaveName": "3塔出3",
     "Dynamic": 0,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "幽灵头",
+    "WaveTime": 0,
+    "BuildingID": "塔1",
+    "BuildingHP": 40,
+    "EnemyName": "小猪",
     "Position": [
-      5,
-      9
+      4,
+      8
     ],
     "StartTime": 0,
-    "EndTime": 10,
-    "Count": 10,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 2.5,
+    "EndTime": 3,
+    "Count": 30,
+    "AttackRatio": 3,
+    "SpeedRatio": 3,
+    "HPRatio": 3,
     "ArmorRatio": 1,
     "ArmorPiercingRatio": 1
   },
   {
-    "WaveID": 10,
+    "WaveID": 0.07,
     "WaveName": "",
     "Dynamic": 0,
     "WaveTime": 0,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "小猪",
+    "EnemyName": "飞胖",
     "Position": [
-      6,
-      1
+      1,
+      9
     ],
     "StartTime": 0,
-    "EndTime": 10,
-    "Count": 10,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 2.5,
+    "EndTime": 3,
+    "Count": 3,
+    "AttackRatio": 3,
+    "SpeedRatio": 3,
+    "HPRatio": 3,
     "ArmorRatio": 1,
     "ArmorPiercingRatio": 1
   },
   {
-    "WaveID": 10,
+    "WaveID": 0.07,
     "WaveName": "",
     "Dynamic": 0,
     "WaveTime": 0,
     "BuildingID": "",
     "BuildingHP": 0,
-    "EnemyName": "大猪",
+    "EnemyName": "老鬼头",
     "Position": [
-      4,
-      1
+      2,
+      9
     ],
     "StartTime": 0,
     "EndTime": 10,
-    "Count": 1,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 2.5,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 11,
-    "WaveName": "2波地3",
-    "Dynamic": 0,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "大猪",
-    "Position": [
-      5,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 1,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 2.5,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 11,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      7,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 10,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 2.5,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 11,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "道士",
-    "Position": [
-      6,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 5,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 2.5,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 12,
-    "WaveName": "3波地3",
-    "Dynamic": 0,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      7,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 20,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 2.5,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 13,
-    "WaveName": "1波空4",
-    "Dynamic": 0,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "幽灵头",
-    "Position": [
-      5,
-      9
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 10,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 3,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 13,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      6,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 10,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 3,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 13,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "大猪",
-    "Position": [
-      4,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 1,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 3,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 14,
-    "WaveName": "2波地4",
-    "Dynamic": 0,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "大猪",
-    "Position": [
-      5,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 1,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 3,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 14,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      7,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 10,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 3,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 14,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "道士",
-    "Position": [
-      6,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 5,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 3,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 15,
-    "WaveName": "3波地4",
-    "Dynamic": 0,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      7,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 20,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
+    "Count": 15,
+    "AttackRatio": 3,
+    "SpeedRatio": 3,
     "HPRatio": 3,
     "ArmorRatio": 1,
     "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": -1,
-    "WaveName": "占位行",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "",
-    "Position": [],
-    "StartTime": 0,
-    "EndTime": 0,
-    "Count": 0,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 0,
-    "WaveName": "塔1",
-    "Dynamic": 0,
-    "WaveTime": 5,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "敌方防御塔",
-    "Position": [
-      1,
-      1,
-      3,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 0,
-    "Count": 2,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 0,
-    "WaveName": "塔1",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "大猪",
-    "Position": [
-      16,
-      7
-    ],
-    "StartTime": 0,
-    "EndTime": 1,
-    "Count": 1,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 0,
-    "WaveName": "塔2",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "敌方防御塔",
-    "Position": [
-      29,
-      1,
-      32,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 0,
-    "Count": 2,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 0,
-    "WaveName": "塔3",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "敌方防御塔",
-    "Position": [
-      60,
-      1,
-      62,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 0,
-    "Count": 2,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 0,
-    "WaveName": "我塔",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "防御塔",
-    "Position": [
-      118,
-      1,
-      120,
-      1,
-      122,
-      1,
-      132,
-      1,
-      133,
-      1,
-      134,
-      1,
-      136,
-      1,
-      140,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 0,
-    "Count": 6,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 0.01,
-    "WaveName": "1出",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "塔3",
-    "BuildingHP": 99,
-    "EnemyName": "大猪",
-    "Position": [
-      59,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 3,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 0.01,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      57,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 30,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 0.01,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "幽灵头",
-    "Position": [
-      56,
-      10
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 20,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 0.02,
-    "WaveName": "1出1",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "塔3",
-    "BuildingHP": 40,
-    "EnemyName": "大猪",
-    "Position": [
-      58,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 2,
-    "Count": 2,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 0.02,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      60,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 5,
-    "Count": 20,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 0.02,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "幽灵头",
-    "Position": [
-      56,
-      9
-    ],
-    "StartTime": 0,
-    "EndTime": 5,
-    "Count": 10,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 0.02,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "老鬼头",
-    "Position": [
-      55,
-      9
-    ],
-    "StartTime": 0,
-    "EndTime": 5,
-    "Count": 5,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 0.03,
-    "WaveName": "2出",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "塔2",
-    "BuildingHP": 99,
-    "EnemyName": "老鬼头",
-    "Position": [
-      28,
-      9
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 10,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 0.03,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "虾兵",
-    "Position": [
-      30,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 20,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 0.03,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      28,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 20,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 0.04,
-    "WaveName": "2出1",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "塔2",
-    "BuildingHP": 50,
-    "EnemyName": "道士",
-    "Position": [
-      26,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 5,
-    "Count": 5,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 0.04,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "大猪",
-    "Position": [
-      30,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 3,
-    "Count": 3,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 0.04,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "幽灵头",
-    "Position": [
-      27,
-      9
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 30,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 1,
-    "WaveName": "1波空",
-    "Dynamic": 0,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "幽灵头",
-    "Position": [
-      5,
-      9
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 30,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 1,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      6,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 20,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 1,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "大猪",
-    "Position": [
-      4,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 3,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 2,
-    "WaveName": "2波地",
-    "Dynamic": 0,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "大猪",
-    "Position": [
-      5,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 2,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 2,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      7,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 40,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 2,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "道士",
-    "Position": [
-      6,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 10,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 3,
-    "WaveName": "动态",
-    "Dynamic": 2,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "",
-    "Position": [],
-    "StartTime": 0,
-    "EndTime": 0,
-    "Count": 0,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 4,
-    "WaveName": "1波空1",
-    "Dynamic": 0,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "幽灵头",
-    "Position": [
-      5,
-      9
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 30,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1.5,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 4,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      6,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 20,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1.5,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 4,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "大猪",
-    "Position": [
-      4,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 3,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1.5,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 5,
-    "WaveName": "2波地1",
-    "Dynamic": 0,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "大猪",
-    "Position": [
-      5,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 2,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1.5,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 5,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      7,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 40,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1.5,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 5,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "道士",
-    "Position": [
-      6,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 10,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1.5,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 6,
-    "WaveName": "3波地1",
-    "Dynamic": 2,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "",
-    "Position": [],
-    "StartTime": 0,
-    "EndTime": 0,
-    "Count": 0,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 7,
-    "WaveName": "1波空2",
-    "Dynamic": 0,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "幽灵头",
-    "Position": [
-      5,
-      9
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 30,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 2,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 7,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      6,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 20,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 2,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 7,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "大猪",
-    "Position": [
-      4,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 3,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 2,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 8,
-    "WaveName": "2波地2",
-    "Dynamic": 0,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "大猪",
-    "Position": [
-      5,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 2,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 2,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 8,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      7,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 40,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 2,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 8,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "道士",
-    "Position": [
-      6,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 10,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 2,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 9,
-    "WaveName": "3波地2",
-    "Dynamic": 2,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "",
-    "Position": [],
-    "StartTime": 0,
-    "EndTime": 0,
-    "Count": 0,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 10,
-    "WaveName": "1波空3",
-    "Dynamic": 0,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "幽灵头",
-    "Position": [
-      5,
-      9
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 30,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 2.5,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 10,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      6,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 20,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 2.5,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 10,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "大猪",
-    "Position": [
-      4,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 3,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 2.5,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 11,
-    "WaveName": "2波地3",
-    "Dynamic": 0,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "大猪",
-    "Position": [
-      5,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 2,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 2.5,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 11,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      7,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 40,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 2.5,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 11,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "道士",
-    "Position": [
-      6,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 10,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 2.5,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 12,
-    "WaveName": "3波地3",
-    "Dynamic": 3,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "",
-    "Position": [],
-    "StartTime": 0,
-    "EndTime": 0,
-    "Count": 0,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 13,
-    "WaveName": "1波空4",
-    "Dynamic": 0,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "幽灵头",
-    "Position": [
-      5,
-      9
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 30,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 3,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 13,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      6,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 20,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 3,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 13,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "大猪",
-    "Position": [
-      4,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 3,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 3,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 14,
-    "WaveName": "2波地4",
-    "Dynamic": 0,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "大猪",
-    "Position": [
-      5,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 2,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 3,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 14,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      7,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 40,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 3,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 14,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "道士",
-    "Position": [
-      6,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 10,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 3,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 15,
-    "WaveName": "3波地4",
-    "Dynamic": 3,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "",
-    "Position": [],
-    "StartTime": 0,
-    "EndTime": 0,
-    "Count": 0,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": -1,
-    "WaveName": "占位行",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "",
-    "Position": [],
-    "StartTime": 0,
-    "EndTime": 0,
-    "Count": 0,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 0,
-    "WaveName": "塔1",
-    "Dynamic": 0,
-    "WaveTime": 5,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "敌方防御塔",
-    "Position": [
-      60,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 0,
-    "Count": 1,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 0,
-    "WaveName": "我塔",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "防御塔",
-    "Position": [
-      119,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 0,
-    "Count": 1,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 0.01,
-    "WaveName": "1出",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "塔1",
-    "BuildingHP": 80,
-    "EnemyName": "幽灵头",
-    "Position": [
-      62,
-      7,
-      62,
-      9
-    ],
-    "StartTime": 0,
-    "EndTime": 5,
-    "Count": 10,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 0.02,
-    "WaveName": "1出",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "塔1",
-    "BuildingHP": 40,
-    "EnemyName": "大猪",
-    "Position": [
-      61,
-      4
-    ],
-    "StartTime": 0,
-    "EndTime": 1,
-    "Count": 1,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 0.02,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      61,
-      5
-    ],
-    "StartTime": 0,
-    "EndTime": 5,
-    "Count": 10,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 1,
-    "WaveName": "1",
-    "Dynamic": 0,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "大猪",
-    "Position": [
-      61,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 2,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 1,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      60,
-      5
-    ],
-    "StartTime": 0,
-    "EndTime": 0,
-    "Count": 0,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 2,
-    "WaveName": "2",
-    "Dynamic": 0,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "道士",
-    "Position": [
-      57,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 5,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 2,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "幽灵头",
-    "Position": [
-      62,
-      9
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 10,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 3,
-    "WaveName": "3动态波",
-    "Dynamic": 1,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "",
-    "Position": [],
-    "StartTime": 0,
-    "EndTime": 0,
-    "Count": 0,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 4,
-    "WaveName": "4",
-    "Dynamic": 0,
-    "WaveTime": 15,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      59,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 10,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 4,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "虾兵",
-    "Position": [
-      62,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 5,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 4,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "幽灵头",
-    "Position": [
-      60,
-      9
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 10,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 5,
-    "WaveName": "5",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "道士",
-    "Position": [
-      58,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 15,
-    "Count": 7,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 5,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "大猪",
-    "Position": [
-      63,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 5,
-    "Count": 2,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 5,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "幽灵头",
-    "Position": [
-      62,
-      8
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 20,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 5,
-    "WaveName": "",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "老鬼头",
-    "Position": [
-      58,
-      10
-    ],
-    "StartTime": 0,
-    "EndTime": 10,
-    "Count": 10,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": -1,
-    "WaveName": "占位行",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "",
-    "Position": [],
-    "StartTime": 0,
-    "EndTime": 0,
-    "Count": 0,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 0,
-    "WaveName": "塔1",
-    "Dynamic": 0,
-    "WaveTime": 10,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "敌方防御塔",
-    "Position": [
-      60,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 0,
-    "Count": 1,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 0,
-    "WaveName": "我塔",
-    "Dynamic": 0,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "防御塔",
-    "Position": [
-      119,
-      1
-    ],
-    "StartTime": 0,
-    "EndTime": 0,
-    "Count": 1,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 1,
-    "WaveName": "1.1",
-    "Dynamic": 0,
-    "WaveTime": 20,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "小猪",
-    "Position": [
-      61,
-      5
-    ],
-    "StartTime": 0,
-    "EndTime": 5,
-    "Count": 10,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
-  },
-  {
-    "WaveID": 2,
-    "WaveName": "1",
-    "Dynamic": 2,
-    "WaveTime": 0,
-    "BuildingID": "",
-    "BuildingHP": 0,
-    "EnemyName": "",
-    "Position": [],
-    "StartTime": 0,
-    "EndTime": 0,
-    "Count": 0,
-    "AttackRatio": 1,
-    "SpeedRatio": 1,
-    "HPRatio": 1,
-    "ArmorRatio": 1,
-    "ArmorPiercingRatio": 1
   }
 ]

+ 122 - 32
ActionTowerDefense/GenerateDatas/json/cfgdynamicenemy.json

@@ -15,17 +15,15 @@
   },
   {
     "WaveID": 1,
-    "WaveName": "弓兵",
-    "EnemyName": "小猪",
+    "WaveName": "对空",
+    "EnemyName": "飞胖",
     "Position": [
-      1,
-      1,
-      3,
-      1
+      4,
+      8
     ],
     "StartTime": 0,
-    "EndTime": 0,
-    "Count": 2,
+    "EndTime": 10,
+    "Count": 5,
     "AttackRatio": 1,
     "SpeedRatio": 1,
     "HPRatio": 1,
@@ -33,18 +31,47 @@
     "ArmorPiercingRatio": 1
   },
   {
-    "WaveID": 1,
-    "WaveName": "",
-    "EnemyName": "小猪",
+    "WaveID": 2,
+    "WaveName": "对肉",
+    "EnemyName": "老鬼头",
     "Position": [
-      29,
-      1,
-      32,
+      4,
+      8
+    ],
+    "StartTime": 0,
+    "EndTime": 10,
+    "Count": 20,
+    "AttackRatio": 1,
+    "SpeedRatio": 1,
+    "HPRatio": 1,
+    "ArmorRatio": 1,
+    "ArmorPiercingRatio": 1
+  },
+  {
+    "WaveID": 3,
+    "WaveName": "对地",
+    "EnemyName": "道士",
+    "Position": [
+      6,
       1
     ],
     "StartTime": 0,
+    "EndTime": 10,
+    "Count": 15,
+    "AttackRatio": 1,
+    "SpeedRatio": 1,
+    "HPRatio": 1,
+    "ArmorRatio": 1,
+    "ArmorPiercingRatio": 1
+  },
+  {
+    "WaveID": -1,
+    "WaveName": "占位行",
+    "EnemyName": "",
+    "Position": [],
+    "StartTime": 0,
     "EndTime": 0,
-    "Count": 2,
+    "Count": 0,
     "AttackRatio": 1,
     "SpeedRatio": 1,
     "HPRatio": 1,
@@ -53,17 +80,15 @@
   },
   {
     "WaveID": 1,
-    "WaveName": "",
-    "EnemyName": "大猪",
+    "WaveName": "对空",
+    "EnemyName": "飞胖",
     "Position": [
-      60,
-      1,
-      62,
-      1
+      4,
+      8
     ],
     "StartTime": 0,
-    "EndTime": 0,
-    "Count": 2,
+    "EndTime": 10,
+    "Count": 10,
     "AttackRatio": 1,
     "SpeedRatio": 1,
     "HPRatio": 1,
@@ -72,15 +97,15 @@
   },
   {
     "WaveID": 2,
-    "WaveName": "胖子",
-    "EnemyName": "大猪",
+    "WaveName": "对肉",
+    "EnemyName": "老鬼头",
     "Position": [
       4,
-      3
+      8
     ],
     "StartTime": 0,
-    "EndTime": 2,
-    "Count": 23,
+    "EndTime": 10,
+    "Count": 40,
     "AttackRatio": 1,
     "SpeedRatio": 1,
     "HPRatio": 1,
@@ -89,19 +114,84 @@
   },
   {
     "WaveID": 3,
-    "WaveName": "棒子",
-    "EnemyName": "大猪",
+    "WaveName": "对地",
+    "EnemyName": "道士",
     "Position": [
-      59,
+      6,
       1
     ],
     "StartTime": 0,
     "EndTime": 10,
-    "Count": 3,
+    "Count": 30,
+    "AttackRatio": 1,
+    "SpeedRatio": 1,
+    "HPRatio": 1,
+    "ArmorRatio": 1,
+    "ArmorPiercingRatio": 1
+  },
+  {
+    "WaveID": -1,
+    "WaveName": "占位行",
+    "EnemyName": "",
+    "Position": [],
+    "StartTime": 0,
+    "EndTime": 0,
+    "Count": 0,
     "AttackRatio": 1,
     "SpeedRatio": 1,
     "HPRatio": 1,
     "ArmorRatio": 1,
     "ArmorPiercingRatio": 1
+  },
+  {
+    "WaveID": 1,
+    "WaveName": "对空",
+    "EnemyName": "飞胖",
+    "Position": [
+      4,
+      8
+    ],
+    "StartTime": 0,
+    "EndTime": 10,
+    "Count": 10,
+    "AttackRatio": 2,
+    "SpeedRatio": 2,
+    "HPRatio": 2,
+    "ArmorRatio": 1,
+    "ArmorPiercingRatio": 1
+  },
+  {
+    "WaveID": 2,
+    "WaveName": "对肉",
+    "EnemyName": "老鬼头",
+    "Position": [
+      4,
+      8
+    ],
+    "StartTime": 0,
+    "EndTime": 10,
+    "Count": 40,
+    "AttackRatio": 2,
+    "SpeedRatio": 2,
+    "HPRatio": 2,
+    "ArmorRatio": 1,
+    "ArmorPiercingRatio": 1
+  },
+  {
+    "WaveID": 3,
+    "WaveName": "对地",
+    "EnemyName": "道士",
+    "Position": [
+      6,
+      1
+    ],
+    "StartTime": 0,
+    "EndTime": 10,
+    "Count": 30,
+    "AttackRatio": 2,
+    "SpeedRatio": 2,
+    "HPRatio": 2,
+    "ArmorRatio": 1,
+    "ArmorPiercingRatio": 1
   }
 ]

+ 499 - 48
ActionTowerDefense/GenerateDatas/json/cfgsoldierlevel.json

@@ -4,11 +4,11 @@
     "Soldier": "sword",
     "EXP": 100,
     "SummonAttack": 0,
-    "MarchAttack": 0,
-    "HP": 10,
+    "MarchAttack": 10,
+    "HP": 0,
     "armor": 0,
-    "MP": 1,
-    "ArmorPierce": 1
+    "MP": 0,
+    "ArmorPierce": 0
   },
   {
     "Level": 3,
@@ -18,8 +18,8 @@
     "MarchAttack": 0,
     "HP": 0,
     "armor": 0,
-    "MP": 1,
-    "ArmorPierce": 1
+    "MP": 0,
+    "ArmorPierce": 0
   },
   {
     "Level": 4,
@@ -29,39 +29,182 @@
     "MarchAttack": 10,
     "HP": 0,
     "armor": 0,
-    "MP": 1,
-    "ArmorPierce": 1
+    "MP": 0,
+    "ArmorPierce": 0
   },
   {
     "Level": 5,
     "Soldier": "sword",
     "EXP": 400,
-    "SummonAttack": 0,
+    "SummonAttack": 50,
     "MarchAttack": 0,
     "HP": 0,
-    "armor": 10,
-    "MP": 1,
-    "ArmorPierce": 1
+    "armor": 0,
+    "MP": 5,
+    "ArmorPierce": 10
   },
   {
     "Level": 6,
     "Soldier": "sword",
     "EXP": 500,
+    "SummonAttack": 50,
+    "MarchAttack": 15,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 7,
+    "Soldier": "sword",
+    "EXP": 600,
+    "SummonAttack": 50,
+    "MarchAttack": 0,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 8,
+    "Soldier": "sword",
+    "EXP": 700,
+    "SummonAttack": 50,
+    "MarchAttack": 15,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 9,
+    "Soldier": "sword",
+    "EXP": 800,
+    "SummonAttack": 50,
+    "MarchAttack": 0,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 10,
+    "Soldier": "sword",
+    "EXP": 900,
     "SummonAttack": 0,
     "MarchAttack": 0,
-    "HP": 20,
+    "HP": 0,
     "armor": 0,
-    "MP": 1,
-    "ArmorPierce": 1
+    "MP": 5,
+    "ArmorPierce": 20
   },
   {
-    "Level": 7,
+    "Level": 11,
     "Soldier": "sword",
-    "EXP": 500,
-    "SummonAttack": 100,
+    "EXP": 1000,
+    "SummonAttack": 10,
+    "MarchAttack": 30,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 12,
+    "Soldier": "sword",
+    "EXP": 1100,
+    "SummonAttack": 10,
+    "MarchAttack": 30,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 13,
+    "Soldier": "sword",
+    "EXP": 1200,
+    "SummonAttack": 10,
+    "MarchAttack": 30,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 14,
+    "Soldier": "sword",
+    "EXP": 1300,
+    "SummonAttack": 10,
+    "MarchAttack": 30,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 15,
+    "Soldier": "sword",
+    "EXP": 1400,
+    "SummonAttack": 0,
     "MarchAttack": 0,
     "HP": 0,
     "armor": 0,
+    "MP": 10,
+    "ArmorPierce": 50
+  },
+  {
+    "Level": 16,
+    "Soldier": "sword",
+    "EXP": 1500,
+    "SummonAttack": 50,
+    "MarchAttack": 50,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 17,
+    "Soldier": "sword",
+    "EXP": 1600,
+    "SummonAttack": 50,
+    "MarchAttack": 50,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 18,
+    "Soldier": "sword",
+    "EXP": 1700,
+    "SummonAttack": 50,
+    "MarchAttack": 50,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 19,
+    "Soldier": "sword",
+    "EXP": 1800,
+    "SummonAttack": 50,
+    "MarchAttack": 50,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 20,
+    "Soldier": "sword",
+    "EXP": 1900,
+    "SummonAttack": 50,
+    "MarchAttack": 50,
+    "HP": 0,
+    "armor": 0,
     "MP": 0,
     "ArmorPierce": 0
   },
@@ -71,32 +214,32 @@
     "EXP": 100,
     "SummonAttack": 0,
     "MarchAttack": 0,
-    "HP": 10,
+    "HP": 50,
     "armor": 0,
-    "MP": 1,
-    "ArmorPierce": 1
+    "MP": 0,
+    "ArmorPierce": 0
   },
   {
     "Level": 3,
     "Soldier": "shield",
     "EXP": 200,
-    "SummonAttack": 10,
+    "SummonAttack": 50,
     "MarchAttack": 0,
     "HP": 0,
     "armor": 0,
-    "MP": 1,
-    "ArmorPierce": 1
+    "MP": 0,
+    "ArmorPierce": 0
   },
   {
     "Level": 4,
     "Soldier": "shield",
     "EXP": 300,
     "SummonAttack": 0,
-    "MarchAttack": 10,
+    "MarchAttack": 50,
     "HP": 0,
     "armor": 0,
-    "MP": 1,
-    "ArmorPierce": 1
+    "MP": 0,
+    "ArmorPierce": 0
   },
   {
     "Level": 5,
@@ -105,9 +248,9 @@
     "SummonAttack": 0,
     "MarchAttack": 0,
     "HP": 0,
-    "armor": 10,
-    "MP": 1,
-    "ArmorPierce": 1
+    "armor": 20,
+    "MP": 5,
+    "ArmorPierce": 0
   },
   {
     "Level": 6,
@@ -115,10 +258,164 @@
     "EXP": 500,
     "SummonAttack": 0,
     "MarchAttack": 0,
-    "HP": 20,
+    "HP": 50,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 7,
+    "Soldier": "shield",
+    "EXP": 600,
+    "SummonAttack": 50,
+    "MarchAttack": 0,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 8,
+    "Soldier": "shield",
+    "EXP": 700,
+    "SummonAttack": 0,
+    "MarchAttack": 50,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 9,
+    "Soldier": "shield",
+    "EXP": 800,
+    "SummonAttack": 0,
+    "MarchAttack": 0,
+    "HP": 50,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 10,
+    "Soldier": "shield",
+    "EXP": 900,
+    "SummonAttack": 0,
+    "MarchAttack": 0,
+    "HP": 0,
+    "armor": 20,
+    "MP": 5,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 11,
+    "Soldier": "shield",
+    "EXP": 1000,
+    "SummonAttack": 0,
+    "MarchAttack": 0,
+    "HP": 50,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 12,
+    "Soldier": "shield",
+    "EXP": 1100,
+    "SummonAttack": 50,
+    "MarchAttack": 0,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 13,
+    "Soldier": "shield",
+    "EXP": 1200,
+    "SummonAttack": 0,
+    "MarchAttack": 50,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 14,
+    "Soldier": "shield",
+    "EXP": 1300,
+    "SummonAttack": 0,
+    "MarchAttack": 0,
+    "HP": 50,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 15,
+    "Soldier": "shield",
+    "EXP": 1400,
+    "SummonAttack": 0,
+    "MarchAttack": 0,
+    "HP": 0,
+    "armor": 20,
+    "MP": 5,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 16,
+    "Soldier": "shield",
+    "EXP": 1500,
+    "SummonAttack": 0,
+    "MarchAttack": 0,
+    "HP": 50,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 17,
+    "Soldier": "shield",
+    "EXP": 1600,
+    "SummonAttack": 50,
+    "MarchAttack": 0,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 18,
+    "Soldier": "shield",
+    "EXP": 1700,
+    "SummonAttack": 0,
+    "MarchAttack": 50,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 19,
+    "Soldier": "shield",
+    "EXP": 1800,
+    "SummonAttack": 0,
+    "MarchAttack": 0,
+    "HP": 50,
     "armor": 0,
-    "MP": 1,
-    "ArmorPierce": 1
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 20,
+    "Soldier": "shield",
+    "EXP": 1900,
+    "SummonAttack": 0,
+    "MarchAttack": 0,
+    "HP": 0,
+    "armor": 20,
+    "MP": 5,
+    "ArmorPierce": 0
   },
   {
     "Level": 2,
@@ -126,32 +423,32 @@
     "EXP": 100,
     "SummonAttack": 0,
     "MarchAttack": 0,
-    "HP": 10,
+    "HP": 50,
     "armor": 0,
-    "MP": 1,
-    "ArmorPierce": 1
+    "MP": 0,
+    "ArmorPierce": 0
   },
   {
     "Level": 3,
     "Soldier": "spear",
     "EXP": 200,
-    "SummonAttack": 10,
+    "SummonAttack": 30,
     "MarchAttack": 0,
     "HP": 0,
     "armor": 0,
-    "MP": 1,
-    "ArmorPierce": 1
+    "MP": 0,
+    "ArmorPierce": 0
   },
   {
     "Level": 4,
     "Soldier": "spear",
     "EXP": 300,
     "SummonAttack": 0,
-    "MarchAttack": 10,
+    "MarchAttack": 40,
     "HP": 0,
     "armor": 0,
-    "MP": 1,
-    "ArmorPierce": 1
+    "MP": 0,
+    "ArmorPierce": 0
   },
   {
     "Level": 5,
@@ -160,9 +457,9 @@
     "SummonAttack": 0,
     "MarchAttack": 0,
     "HP": 0,
-    "armor": 10,
-    "MP": 1,
-    "ArmorPierce": 1
+    "armor": 30,
+    "MP": 5,
+    "ArmorPierce": 0
   },
   {
     "Level": 6,
@@ -170,9 +467,163 @@
     "EXP": 500,
     "SummonAttack": 0,
     "MarchAttack": 0,
-    "HP": 20,
+    "HP": 50,
     "armor": 0,
-    "MP": 1,
-    "ArmorPierce": 1
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 7,
+    "Soldier": "spear",
+    "EXP": 600,
+    "SummonAttack": 30,
+    "MarchAttack": 0,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 8,
+    "Soldier": "spear",
+    "EXP": 700,
+    "SummonAttack": 0,
+    "MarchAttack": 40,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 9,
+    "Soldier": "spear",
+    "EXP": 800,
+    "SummonAttack": 30,
+    "MarchAttack": 0,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 10,
+    "Soldier": "spear",
+    "EXP": 900,
+    "SummonAttack": 0,
+    "MarchAttack": 0,
+    "HP": 0,
+    "armor": 30,
+    "MP": 5,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 11,
+    "Soldier": "spear",
+    "EXP": 1000,
+    "SummonAttack": 0,
+    "MarchAttack": 0,
+    "HP": 50,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 12,
+    "Soldier": "spear",
+    "EXP": 1100,
+    "SummonAttack": 30,
+    "MarchAttack": 0,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 13,
+    "Soldier": "spear",
+    "EXP": 1200,
+    "SummonAttack": 0,
+    "MarchAttack": 40,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 14,
+    "Soldier": "spear",
+    "EXP": 1300,
+    "SummonAttack": 30,
+    "MarchAttack": 0,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 15,
+    "Soldier": "spear",
+    "EXP": 1400,
+    "SummonAttack": 0,
+    "MarchAttack": 0,
+    "HP": 0,
+    "armor": 30,
+    "MP": 5,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 16,
+    "Soldier": "spear",
+    "EXP": 1500,
+    "SummonAttack": 0,
+    "MarchAttack": 0,
+    "HP": 50,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 17,
+    "Soldier": "spear",
+    "EXP": 1600,
+    "SummonAttack": 30,
+    "MarchAttack": 0,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 18,
+    "Soldier": "spear",
+    "EXP": 1700,
+    "SummonAttack": 0,
+    "MarchAttack": 40,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 19,
+    "Soldier": "spear",
+    "EXP": 1800,
+    "SummonAttack": 30,
+    "MarchAttack": 0,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 20,
+    "Soldier": "spear",
+    "EXP": 1900,
+    "SummonAttack": 30,
+    "MarchAttack": 40,
+    "HP": 50,
+    "armor": 30,
+    "MP": 5,
+    "ArmorPierce": 0
   }
 ]

+ 12 - 14
ActionTowerDefense/Luban/.cache.meta

@@ -1,24 +1,22 @@
-C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Assets/Gen/CfgBuilding.cs,B45865E94F67A1B2B9A59ADA4527217,1859,1732401186765
-C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Assets/Gen/CfgCreateBuilding.cs,B422E4BEC7D11DA1B193B26A05AA05E,1425,1732408056797
-C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Assets/Gen/CfgCreateEnemy.cs,3A9B470F9A1FA351330EA275C82C399,1404,1746171971758
+C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Assets/Gen/CfgCreateEnemy.cs,3A9B470F9A1FA351330EA275C82C399,1404,1746171971758
+C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Assets/Gen/CfgDynamicEnemy.cs,958E9A723CBC3E549EA8B4F9C93AF82,1411,1748329753905
 C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Assets/Gen/CfgEnemy.cs,AA55E3EA298642B35239B74ED55BFBB,1840,1747389694171
 C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Assets/Gen/CfgSoldierLevel.cs,A08CC235369146A3251A76BCCA2B9E,1381,1747122184570
-C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Assets/Gen/SingleBuildingConfig.cs,E5CE78694DF91B719BA63E763E9F43B8,2416,1732401186765
-C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Assets/Gen/SingleCreateBuildingConfig.cs,579EDD7478123FC56C428118FC3B6CC,7233,1732415326448
-C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Assets/Gen/SingleCreateEnemyConfig.cs,13EF44C8F2389B06BCEE312F6D9EBCF,5070,1747882799383
+C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Assets/Gen/SingleCreateEnemyConfig.cs,21FE43B1C3E3CFE1BE2A25FE59E9CBDF,6029,1750148037770
+C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Assets/Gen/SingleDynamicEnemyConfig.cs,A81776F38E1090D076451986C1A62532,4895,1750148037770
 C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Assets/Gen/SingleEnemyConfig.cs,B959AABD6E72533BB8F544E6A69E145,4518,1747122184570
 C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Assets/Gen/SingleSoldierLevel.cs,B2EA928C8A7E3109F6DA27E3788EC2A,3366,1747986763968
-C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Assets/Gen/Tables.cs,44F5C895116C91B4662FE298D1145C25,2106,1747122184570
-C:/works_Szand/ActionTowerDefense/ActionTowerDefense/GenerateDatas/json/cfgbuilding.json,AF3B22476CACCDADACF8AC7C7D3E1594,446,1742267809190
-C:/works_Szand/ActionTowerDefense/ActionTowerDefense/GenerateDatas/json/cfgcreatebuilding.json,96C5CE210B1AAAE686AF51DFFE8A0,5047,1741161232156
-C:/works_Szand/ActionTowerDefense/ActionTowerDefense/GenerateDatas/json/cfgcreateenemy.json,7C6049F24C7D9C9A2434E3379C9378D,10274,1747727436891
+C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Assets/Gen/Tables.cs,2FED4377FA3B67E342DDC2243B6CC19,1848,1748329753905
+C:/works_Szand/ActionTowerDefense/ActionTowerDefense/GenerateDatas/json/cfgcreateenemy.json,57B04C3E2C2834ACEB2E91D37458C881,42705,1750148037770
+C:/works_Szand/ActionTowerDefense/ActionTowerDefense/GenerateDatas/json/cfgdynamicenemy.json,8D8711E74FD794B48AB9816A9848CE,3572,1750148037770
 C:/works_Szand/ActionTowerDefense/ActionTowerDefense/GenerateDatas/json/cfgenemy.json,ADB17763C631C6F3F82987884374E90,2763,1747713933641
-C:/works_Szand/ActionTowerDefense/ActionTowerDefense/GenerateDatas/json/cfgsoldierlevel.json,7FDCFF7AFE2680A72337E0B22AC1BCBA,2783,1747986763968
+C:/works_Szand/ActionTowerDefense/ActionTowerDefense/GenerateDatas/json/cfgsoldierlevel.json,A45D0DC42AB5FE19D846E37C84FA453,10646,1750148037770
 C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Luban/Config/Datas/__beans__.xlsx,98987DA7288FEE34BCD08EA883D425E,9603,1719819495252
 C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Luban/Config/Datas/__enums__.xlsx,D95915E233EB1E4EB87BE0557A2BFDD,9879,1732405824089
-C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Luban/Config/Datas/__tables__.xlsx,73191AB2DEBAFD4D21DA7ABF2F7F725,10283,1747122174507
-C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Luban/Config/Datas/出怪表.xlsx,E1FB832F6FFE56C4E78DC1B1896D6ED2,15269,1747727436892
+C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Luban/Config/Datas/__tables__.xlsx,B1D88AC7368453452592134FD3BA0D2,10222,1747989894609
+C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Luban/Config/Datas/出怪表.xlsx,15D418C04F9C370A73B7860AA23,21426,1748340104611
+C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Luban/Config/Datas/动态出怪表.xlsx,7632BF4A345BCA5855271B5BF4B453,14702,1748340104611
 C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Luban/Config/Datas/怪物表.xlsx,AE5D299779B9735D27578E9EC93EF,10148,1747727436893
 C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Luban/Config/Datas/建筑表.xlsx,9ED27CF7DE3417811979E297BF30B64,9615,1742267302330
 C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Luban/Config/Datas/建筑生成表.xlsx,9C4EC1B178B1C62A9927C281845B5AB9,17054,1737060324755
-C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Luban/Config/Datas/士兵等级属性表.xlsx,8796CF35FFF8E8EA8F3261307BA3AC3,12719,1747986580475
+C:/works_Szand/ActionTowerDefense/ActionTowerDefense/Luban/Config/Datas/士兵等级属性表.xlsx,B853B7A2D9151EC93AF842ED5DE775,13998,1748340104612