chenxin
2020-11-17 40b918d5189a154bc0ff31627e69867742934720
buff补充
3 files renamed
22 files copied
1 files deleted
24 files added
65 files modified
3124 ■■■■ changed files
Assets/Materials/Guide/RectGuidance.mat 6 ●●●● patch | view | raw | blame | history
Assets/Prefabs/BulletBar.prefab 1093 ●●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/Fire/GrowUpTower_0.prefab 2 ●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/Fire/GrowUpTower_1.prefab 2 ●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/Fire/GrowUpTower_2.prefab 2 ●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/Fire/GrowUpTower_3.prefab 2 ●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/Fire/GrowUpTower_4.prefab 2 ●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/Water/CopyCatTower_0.prefab 3 ●●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/Water/CopyCatTower_1.prefab 2 ●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/Water/CopyCatTower_2.prefab 2 ●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/Water/CopyCatTower_3.prefab 2 ●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/Water/CopyCatTower_4.prefab 2 ●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/WoodTower/BlinkTower_0.prefab 2 ●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/WoodTower/BlinkTower_1.prefab 2 ●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/WoodTower/BlinkTower_2.prefab 2 ●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/WoodTower/BlinkTower_3.prefab 2 ●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/WoodTower/BlinkTower_4.prefab 2 ●●● patch | view | raw | blame | history
Assets/Prefabs/UI/BulletUI.prefab 2 ●●● patch | view | raw | blame | history
Assets/Prefabs/UI/Endless/BottomCanvas.prefab 941 ●●●● patch | view | raw | blame | history
Assets/Prefabs/UI/EnergyUI.prefab 3 ●●●● patch | view | raw | blame | history
Assets/Prefabs/UI/FreezeEnergy.prefab 2 ●●● patch | view | raw | blame | history
Assets/Resources/UI/Endless/BuffIcon/10008.png patch | view | raw | blame | history
Assets/Resources/UI/Endless/BuffIcon/10008.png.meta 4 ●●●● patch | view | raw | blame | history
Assets/Resources/UI/Endless/BuffIcon/10009.png patch | view | raw | blame | history
Assets/Resources/UI/Endless/BuffIcon/10009.png.meta 4 ●●●● patch | view | raw | blame | history
Assets/Resources/UI/Endless/BuffIcon/10010.png patch | view | raw | blame | history
Assets/Resources/UI/Endless/BuffIcon/10010.png.meta 4 ●●●● patch | view | raw | blame | history
Assets/Resources/UI/Endless/BuffIcon/10011.png patch | view | raw | blame | history
Assets/Resources/UI/Endless/BuffIcon/10011.png.meta 4 ●●●● patch | view | raw | blame | history
Assets/Resources/UI/Endless/BuffIcon/10012.png patch | view | raw | blame | history
Assets/Resources/UI/Endless/BuffIcon/10012.png.meta 4 ●●●● patch | view | raw | blame | history
Assets/Resources/UI/Endless/BuffIcon/10013.png patch | view | raw | blame | history
Assets/Resources/UI/Endless/BuffIcon/10013.png.meta 4 ●●●● patch | view | raw | blame | history
Assets/Resources/UI/Endless/BuffQuality/1.png patch | view | raw | blame | history
Assets/Resources/UI/Endless/BuffQuality/1.png.meta 2 ●●● patch | view | raw | blame | history
Assets/Resources/UI/Endless/BuffQuality/2.png patch | view | raw | blame | history
Assets/Resources/UI/Endless/BuffQuality/2.png.meta 2 ●●● patch | view | raw | blame | history
Assets/Resources/UI/Endless/BuffQuality/3.png patch | view | raw | blame | history
Assets/Resources/UI/Endless/BuffQuality/3.png.meta 2 ●●● patch | view | raw | blame | history
Assets/Scenes/Levels/Battle/Endless2D.unity 35 ●●●● patch | view | raw | blame | history
Assets/Scripts/ActionGameFramework/Health/Damager.cs 6 ●●●●● patch | view | raw | blame | history
Assets/Scripts/Data/EndlessBuffData.cs 21 ●●●●● patch | view | raw | blame | history
Assets/Scripts/Enum/EndlessBuffEffectType.cs 24 ●●●● patch | view | raw | blame | history
Assets/Scripts/Event/EventType.cs 2 ●●●●● patch | view | raw | blame | history
Assets/Scripts/Json/JsonDataCenter.cs 4 ●●● patch | view | raw | blame | history
Assets/Scripts/Net/NetExtends/Table.cs 4 ●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Affectors/AttackAffector.cs 73 ●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Agents/Agent.cs 30 ●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Level/EndlessBuff.meta 8 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Level/EndlessBuff/CritBulletAdd.cs 32 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Level/EndlessBuff/CritBulletAdd.cs.meta 2 ●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Level/EndlessBuff/CritDamageAdd.cs 30 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Level/EndlessBuff/CritDamageAdd.cs.meta 2 ●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Level/EndlessBuff/CritProbabilityAdd.cs 33 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Level/EndlessBuff/CritProbabilityAdd.cs.meta 2 ●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Level/EndlessBuff/DecreaseTowerAttackCD.cs 36 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Level/EndlessBuff/DecreaseTowerAttackCD.cs.meta 2 ●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Level/EndlessBuff/EndlessBuff.cs 62 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Level/EndlessBuff/EndlessBuff.cs.meta 2 ●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Level/EndlessBuff/EndlessBuffManager.cs 71 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Level/EndlessBuff/EndlessBuffManager.cs.meta 2 ●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Level/EndlessBuff/FireRateAdd.cs 29 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Level/EndlessBuff/FireRateAdd.cs.meta 2 ●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Level/EndlessBuff/GoldAdd.cs 18 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Level/EndlessBuff/GoldAdd.cs.meta 2 ●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Level/EndlessBuff/ObtainTower.cs 21 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Level/EndlessBuff/ObtainTower.cs.meta 2 ●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Level/EndlessBuff/SlowDown.cs 28 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Level/EndlessBuff/SlowDown.cs.meta 2 ●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGridEndless.cs 21 ●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Towers/Projectiles/BallisticAttack.cs 54 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Towers/Tower.cs 2 ●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Towers/TowerFireTrigger.cs 20 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Towers/TowerLaunchers/HitscanLauncher.cs 2 ●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Towers/TowerLevel.cs 41 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/UI/BulletUICtl.cs 117 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/UI/EndlessBuffPreview.cs 2 ●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs 18 ●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/UI/HUD/EndlessRandomTower.cs 116 ●●●● patch | view | raw | blame | history
Assets/StreamingAssets/Table/endless_buff.json 2 ●●● patch | view | raw | blame | history
Assets/UI/bullet_0.png patch | view | raw | blame | history
Assets/UI/bullet_0.png.meta 4 ●●●● patch | view | raw | blame | history
Assets/UI/bullet_1.png patch | view | raw | blame | history
Assets/UI/bullet_1.png.meta 4 ●●●● patch | view | raw | blame | history
Assets/UI/bullet_bottom.png patch | view | raw | blame | history
Assets/UI/bullet_bottom.png.meta 4 ●●●● patch | view | raw | blame | history
Assets/UI/energy.png patch | view | raw | blame | history
Assets/UI/energy_bottom.png patch | view | raw | blame | history
Assets/UI/energy_bottom.png.meta 4 ●●●● patch | view | raw | blame | history
Assets/UI/energy_fire.png patch | view | raw | blame | history
Assets/UI/energy_fire.png.meta 4 ●●●● patch | view | raw | blame | history
Assets/UI/energy_water.png patch | view | raw | blame | history
Assets/UI/energy_water.png.meta 4 ●●●● patch | view | raw | blame | history
Assets/UI/按钮1.png patch | view | raw | blame | history
Assets/UI/按钮1.png.meta 4 ●●●● patch | view | raw | blame | history
Assets/UI/按钮2.png patch | view | raw | blame | history
Assets/UI/按钮2.png.meta 4 ●●●● patch | view | raw | blame | history
GemBattle.zip patch | view | raw | blame | history
GemBattle/宝石塔防_Data/Managed/Assembly-CSharp-firstpass.dll patch | view | raw | blame | history
GemBattle/宝石塔防_Data/Managed/Assembly-CSharp.dll patch | view | raw | blame | history
GemBattle/宝石塔防_Data/Managed/MoreMountains.NiceVibrations.Demos.dll patch | view | raw | blame | history
GemBattle/宝石塔防_Data/Managed/MoreMountains.NiceVibrations.Haptics.dll patch | view | raw | blame | history
GemBattle/宝石塔防_Data/Managed/MoreMountains.NiceVibrations.dll patch | view | raw | blame | history
GemBattle/宝石塔防_Data/Managed/Unity.TextMeshPro.dll patch | view | raw | blame | history
GemBattle/宝石塔防_Data/Managed/Unity.Timeline.dll patch | view | raw | blame | history
GemBattle/宝石塔防_Data/Managed/UnityEngine.UI.dll patch | view | raw | blame | history
GemBattle/宝石塔防_Data/StreamingAssets/Table/endless_buff.json 2 ●●● patch | view | raw | blame | history
GemBattle/宝石塔防_Data/globalgamemanagers patch | view | raw | blame | history
GemBattle/宝石塔防_Data/globalgamemanagers.assets patch | view | raw | blame | history
GemBattle/宝石塔防_Data/level0 patch | view | raw | blame | history
GemBattle/宝石塔防_Data/level1 patch | view | raw | blame | history
GemBattle/宝石塔防_Data/resources.assets patch | view | raw | blame | history
GemBattle/宝石塔防_Data/sharedassets0.assets patch | view | raw | blame | history
GemBattle/宝石塔防_Data/sharedassets1.assets patch | view | raw | blame | history
GemBattle/宝石塔防_Data/sharedassets1.assets.resS patch | view | raw | blame | history
Assets/Materials/Guide/RectGuidance.mat
@@ -69,8 +69,8 @@
    - _OcclusionStrength: 1
    - _Parallax: 0.02
    - _Slider: 81.39478
    - _SliderX: 189
    - _SliderY: 73.5
    - _SliderX: 79
    - _SliderY: 265
    - _SmoothnessTextureChannel: 0
    - _SpecularHighlights: 1
    - _SrcBlend: 1
@@ -83,7 +83,7 @@
    - _UseUIAlphaClip: 0
    - _ZWrite: 1
    m_Colors:
    - _Center: {r: -3, g: -862, b: 0, a: 0}
    - _Center: {r: -145, g: 155, b: 0, a: 0}
    - _Color: {r: 1, g: 1, b: 1, a: 1}
    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
  m_BuildTextureStacks: []
Assets/Prefabs/BulletBar.prefab
@@ -1,6 +1,6 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &649954433278527627
--- !u!1 &294070814187691420
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
@@ -8,118 +8,36 @@
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 649954433278527626}
  - component: {fileID: 649954433278527629}
  - component: {fileID: 7521080046687447342}
  - component: {fileID: 2260520366043237953}
  m_Layer: 0
  m_Name: Bg
  m_Name: bullet_0 (1)
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!4 &649954433278527626
--- !u!4 &7521080046687447342
Transform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 649954433278527627}
  m_GameObject: {fileID: 294070814187691420}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalPosition: {x: 0.004, y: 0.218, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 649954434242370658}
  m_RootOrder: 0
  m_RootOrder: 7
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &649954433278527629
--- !u!212 &2260520366043237953
SpriteRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 649954433278527627}
  m_Enabled: 1
  m_CastShadows: 0
  m_ReceiveShadows: 0
  m_DynamicOccludee: 1
  m_MotionVectors: 1
  m_LightProbeUsage: 1
  m_ReflectionProbeUsage: 1
  m_RayTracingMode: 0
  m_RayTraceProcedural: 0
  m_RenderingLayerMask: 1
  m_RendererPriority: 0
  m_Materials:
  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
  m_StaticBatchInfo:
    firstSubMesh: 0
    subMeshCount: 0
  m_StaticBatchRoot: {fileID: 0}
  m_ProbeAnchor: {fileID: 0}
  m_LightProbeVolumeOverride: {fileID: 0}
  m_ScaleInLightmap: 1
  m_ReceiveGI: 1
  m_PreserveUVs: 0
  m_IgnoreNormalsForChartDetection: 0
  m_ImportantGI: 0
  m_StitchLightmapSeams: 1
  m_SelectedEditorRenderState: 0
  m_MinimumChartSize: 4
  m_AutoUVMaxDistance: 0.5
  m_AutoUVMaxAngle: 89
  m_LightmapParameters: {fileID: 0}
  m_SortingLayerID: 0
  m_SortingLayer: 0
  m_SortingOrder: 0
  m_Sprite: {fileID: 21300000, guid: 4927445faed092546a6b3335118c6dea, type: 3}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_FlipX: 0
  m_FlipY: 0
  m_DrawMode: 0
  m_Size: {x: 0.21, y: 0.9}
  m_AdaptiveModeThreshold: 0.5
  m_SpriteTileMode: 0
  m_WasSpriteAssigned: 1
  m_MaskInteraction: 1
  m_SpriteSortPoint: 0
--- !u!1 &649954433760061292
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 649954433760061295}
  - component: {fileID: 649954433760061294}
  m_Layer: 0
  m_Name: Mask
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!4 &649954433760061295
Transform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 649954433760061292}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 1, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 649954434242370658}
  m_RootOrder: 1
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &649954433760061294
SpriteRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 649954433760061292}
  m_GameObject: {fileID: 294070814187691420}
  m_Enabled: 1
  m_CastShadows: 0
  m_ReceiveShadows: 0
@@ -153,16 +71,98 @@
  m_SortingLayerID: 0
  m_SortingLayer: 0
  m_SortingOrder: 1
  m_Sprite: {fileID: 21300000, guid: bff5183b5d43c0249b8624f5e7255209, type: 3}
  m_Sprite: {fileID: 21300000, guid: 3ac0721032818764a9ccf68a1559cc4a, type: 3}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_FlipX: 0
  m_FlipY: 0
  m_DrawMode: 0
  m_Size: {x: 0.21, y: 0.9}
  m_Size: {x: 0.2, y: 0.15}
  m_AdaptiveModeThreshold: 0.5
  m_SpriteTileMode: 0
  m_WasSpriteAssigned: 1
  m_MaskInteraction: 1
  m_MaskInteraction: 0
  m_SpriteSortPoint: 0
--- !u!1 &358214801208781673
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 6069324559710410066}
  - component: {fileID: 701775616604260873}
  m_Layer: 0
  m_Name: bullet_bottom (1)
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!4 &6069324559710410066
Transform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 358214801208781673}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0.2188, z: -0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 649954434242370658}
  m_RootOrder: 1
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &701775616604260873
SpriteRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 358214801208781673}
  m_Enabled: 1
  m_CastShadows: 0
  m_ReceiveShadows: 0
  m_DynamicOccludee: 1
  m_MotionVectors: 1
  m_LightProbeUsage: 1
  m_ReflectionProbeUsage: 1
  m_RayTracingMode: 0
  m_RayTraceProcedural: 0
  m_RenderingLayerMask: 1
  m_RendererPriority: 0
  m_Materials:
  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
  m_StaticBatchInfo:
    firstSubMesh: 0
    subMeshCount: 0
  m_StaticBatchRoot: {fileID: 0}
  m_ProbeAnchor: {fileID: 0}
  m_LightProbeVolumeOverride: {fileID: 0}
  m_ScaleInLightmap: 1
  m_ReceiveGI: 1
  m_PreserveUVs: 0
  m_IgnoreNormalsForChartDetection: 0
  m_ImportantGI: 0
  m_StitchLightmapSeams: 1
  m_SelectedEditorRenderState: 0
  m_MinimumChartSize: 4
  m_AutoUVMaxDistance: 0.5
  m_AutoUVMaxAngle: 89
  m_LightmapParameters: {fileID: 0}
  m_SortingLayerID: 0
  m_SortingLayer: 0
  m_SortingOrder: 0
  m_Sprite: {fileID: 21300000, guid: d46b0b63d9cc5f7408251ed6d4f9f3c4, type: 3}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_FlipX: 0
  m_FlipY: 0
  m_DrawMode: 0
  m_Size: {x: 0.2, y: 0.15}
  m_AdaptiveModeThreshold: 0.5
  m_SpriteTileMode: 0
  m_WasSpriteAssigned: 1
  m_MaskInteraction: 0
  m_SpriteSortPoint: 0
--- !u!1 &649954434242370657
GameObject:
@@ -173,7 +173,6 @@
  serializedVersion: 6
  m_Component:
  - component: {fileID: 649954434242370658}
  - component: {fileID: 649954434242370659}
  - component: {fileID: 43203094639935979}
  m_Layer: 0
  m_Name: BulletBar
@@ -193,61 +192,21 @@
  m_LocalPosition: {x: 0, y: 1, z: 0}
  m_LocalScale: {x: 0.8, y: 0.8, z: 0.8}
  m_Children:
  - {fileID: 649954433278527626}
  - {fileID: 649954433760061295}
  - {fileID: 7724262154329898045}
  - {fileID: 6069324559710410066}
  - {fileID: 6104473004824981008}
  - {fileID: 2163107409097430881}
  - {fileID: 2732464836575262486}
  - {fileID: 4328665606367236721}
  - {fileID: 4597350740996707262}
  - {fileID: 7521080046687447342}
  - {fileID: 3581189601844990616}
  - {fileID: 142708819584152480}
  - {fileID: 902995427128172438}
  - {fileID: 8143668582440947975}
  m_Father: {fileID: 0}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
--- !u!331 &649954434242370659
SpriteMask:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 649954434242370657}
  m_Enabled: 1
  m_CastShadows: 1
  m_ReceiveShadows: 1
  m_DynamicOccludee: 1
  m_MotionVectors: 1
  m_LightProbeUsage: 1
  m_ReflectionProbeUsage: 1
  m_RayTracingMode: 0
  m_RayTraceProcedural: 0
  m_RenderingLayerMask: 1
  m_RendererPriority: 0
  m_Materials:
  - {fileID: 10758, guid: 0000000000000000f000000000000000, type: 0}
  m_StaticBatchInfo:
    firstSubMesh: 0
    subMeshCount: 0
  m_StaticBatchRoot: {fileID: 0}
  m_ProbeAnchor: {fileID: 0}
  m_LightProbeVolumeOverride: {fileID: 0}
  m_ScaleInLightmap: 1
  m_ReceiveGI: 1
  m_PreserveUVs: 0
  m_IgnoreNormalsForChartDetection: 0
  m_ImportantGI: 0
  m_StitchLightmapSeams: 1
  m_SelectedEditorRenderState: 3
  m_MinimumChartSize: 4
  m_AutoUVMaxDistance: 0.5
  m_AutoUVMaxAngle: 89
  m_LightmapParameters: {fileID: 0}
  m_SortingLayerID: 0
  m_SortingLayer: 0
  m_SortingOrder: 0
  m_Sprite: {fileID: 21300000, guid: bff5183b5d43c0249b8624f5e7255209, type: 3}
  m_MaskAlphaCutoff: 0.2
  m_FrontSortingLayerID: 0
  m_BackSortingLayerID: 0
  m_FrontSortingLayer: 0
  m_BackSortingLayer: 0
  m_FrontSortingOrder: 0
  m_BackSortingOrder: 0
  m_IsCustomRangeActive: 0
  m_SpriteSortPoint: 0
--- !u!114 &43203094639935979
MonoBehaviour:
  m_ObjectHideFlags: 0
@@ -260,6 +219,840 @@
  m_Script: {fileID: 11500000, guid: ce6c8d23972e4224384dead8d4662621, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  bulletScaleMask: {fileID: 649954433760061294}
  fAdjValue: 0.008
  maxBulletNum: 6
  BottomArr:
  - {fileID: 7644879240941639744}
  - {fileID: 701775616604260873}
  - {fileID: 7831201965329777844}
  - {fileID: 1081863160066418343}
  - {fileID: 4344711806471387399}
  - {fileID: 1503223324089708586}
  BulletArr:
  - {fileID: 1972262421311986546}
  - {fileID: 2260520366043237953}
  - {fileID: 1897655678081005607}
  - {fileID: 7573798318347097818}
  - {fileID: 5181293745417947100}
  - {fileID: 7159988421761445821}
  NormalSprite: {fileID: 21300000, guid: 3ac0721032818764a9ccf68a1559cc4a, type: 3}
  CritSprite: {fileID: 21300000, guid: 9b09056f35611ac4992f1038526985b6, type: 3}
--- !u!1 &2656917812175095632
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 4328665606367236721}
  - component: {fileID: 1503223324089708586}
  m_Layer: 0
  m_Name: bullet_bottom (5)
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!4 &4328665606367236721
Transform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 2656917812175095632}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: -0.382, z: -0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 649954434242370658}
  m_RootOrder: 5
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &1503223324089708586
SpriteRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 2656917812175095632}
  m_Enabled: 1
  m_CastShadows: 0
  m_ReceiveShadows: 0
  m_DynamicOccludee: 1
  m_MotionVectors: 1
  m_LightProbeUsage: 1
  m_ReflectionProbeUsage: 1
  m_RayTracingMode: 0
  m_RayTraceProcedural: 0
  m_RenderingLayerMask: 1
  m_RendererPriority: 0
  m_Materials:
  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
  m_StaticBatchInfo:
    firstSubMesh: 0
    subMeshCount: 0
  m_StaticBatchRoot: {fileID: 0}
  m_ProbeAnchor: {fileID: 0}
  m_LightProbeVolumeOverride: {fileID: 0}
  m_ScaleInLightmap: 1
  m_ReceiveGI: 1
  m_PreserveUVs: 0
  m_IgnoreNormalsForChartDetection: 0
  m_ImportantGI: 0
  m_StitchLightmapSeams: 1
  m_SelectedEditorRenderState: 0
  m_MinimumChartSize: 4
  m_AutoUVMaxDistance: 0.5
  m_AutoUVMaxAngle: 89
  m_LightmapParameters: {fileID: 0}
  m_SortingLayerID: 0
  m_SortingLayer: 0
  m_SortingOrder: 0
  m_Sprite: {fileID: 21300000, guid: d46b0b63d9cc5f7408251ed6d4f9f3c4, type: 3}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_FlipX: 0
  m_FlipY: 0
  m_DrawMode: 0
  m_Size: {x: 0.2, y: 0.15}
  m_AdaptiveModeThreshold: 0.5
  m_SpriteTileMode: 0
  m_WasSpriteAssigned: 1
  m_MaskInteraction: 0
  m_SpriteSortPoint: 0
--- !u!1 &3924042059771382817
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 3581189601844990616}
  - component: {fileID: 1897655678081005607}
  m_Layer: 0
  m_Name: bullet_0 (2)
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!4 &3581189601844990616
Transform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 3924042059771382817}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0.004, y: 0.066, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 649954434242370658}
  m_RootOrder: 8
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &1897655678081005607
SpriteRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 3924042059771382817}
  m_Enabled: 1
  m_CastShadows: 0
  m_ReceiveShadows: 0
  m_DynamicOccludee: 1
  m_MotionVectors: 1
  m_LightProbeUsage: 1
  m_ReflectionProbeUsage: 1
  m_RayTracingMode: 0
  m_RayTraceProcedural: 0
  m_RenderingLayerMask: 1
  m_RendererPriority: 0
  m_Materials:
  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
  m_StaticBatchInfo:
    firstSubMesh: 0
    subMeshCount: 0
  m_StaticBatchRoot: {fileID: 0}
  m_ProbeAnchor: {fileID: 0}
  m_LightProbeVolumeOverride: {fileID: 0}
  m_ScaleInLightmap: 1
  m_ReceiveGI: 1
  m_PreserveUVs: 0
  m_IgnoreNormalsForChartDetection: 0
  m_ImportantGI: 0
  m_StitchLightmapSeams: 1
  m_SelectedEditorRenderState: 0
  m_MinimumChartSize: 4
  m_AutoUVMaxDistance: 0.5
  m_AutoUVMaxAngle: 89
  m_LightmapParameters: {fileID: 0}
  m_SortingLayerID: 0
  m_SortingLayer: 0
  m_SortingOrder: 1
  m_Sprite: {fileID: 21300000, guid: 3ac0721032818764a9ccf68a1559cc4a, type: 3}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_FlipX: 0
  m_FlipY: 0
  m_DrawMode: 0
  m_Size: {x: 0.2, y: 0.15}
  m_AdaptiveModeThreshold: 0.5
  m_SpriteTileMode: 0
  m_WasSpriteAssigned: 1
  m_MaskInteraction: 0
  m_SpriteSortPoint: 0
--- !u!1 &4399802801167457086
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 902995427128172438}
  - component: {fileID: 5181293745417947100}
  m_Layer: 0
  m_Name: bullet_0 (4)
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!4 &902995427128172438
Transform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4399802801167457086}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0.004, y: -0.23, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 649954434242370658}
  m_RootOrder: 10
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &5181293745417947100
SpriteRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4399802801167457086}
  m_Enabled: 1
  m_CastShadows: 0
  m_ReceiveShadows: 0
  m_DynamicOccludee: 1
  m_MotionVectors: 1
  m_LightProbeUsage: 1
  m_ReflectionProbeUsage: 1
  m_RayTracingMode: 0
  m_RayTraceProcedural: 0
  m_RenderingLayerMask: 1
  m_RendererPriority: 0
  m_Materials:
  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
  m_StaticBatchInfo:
    firstSubMesh: 0
    subMeshCount: 0
  m_StaticBatchRoot: {fileID: 0}
  m_ProbeAnchor: {fileID: 0}
  m_LightProbeVolumeOverride: {fileID: 0}
  m_ScaleInLightmap: 1
  m_ReceiveGI: 1
  m_PreserveUVs: 0
  m_IgnoreNormalsForChartDetection: 0
  m_ImportantGI: 0
  m_StitchLightmapSeams: 1
  m_SelectedEditorRenderState: 0
  m_MinimumChartSize: 4
  m_AutoUVMaxDistance: 0.5
  m_AutoUVMaxAngle: 89
  m_LightmapParameters: {fileID: 0}
  m_SortingLayerID: 0
  m_SortingLayer: 0
  m_SortingOrder: 1
  m_Sprite: {fileID: 21300000, guid: 3ac0721032818764a9ccf68a1559cc4a, type: 3}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_FlipX: 0
  m_FlipY: 0
  m_DrawMode: 0
  m_Size: {x: 0.2, y: 0.15}
  m_AdaptiveModeThreshold: 0.5
  m_SpriteTileMode: 0
  m_WasSpriteAssigned: 1
  m_MaskInteraction: 0
  m_SpriteSortPoint: 0
--- !u!1 &4668746867932216773
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 2732464836575262486}
  - component: {fileID: 4344711806471387399}
  m_Layer: 0
  m_Name: bullet_bottom (4)
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!4 &2732464836575262486
Transform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4668746867932216773}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: -0.2318, z: -0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 649954434242370658}
  m_RootOrder: 4
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &4344711806471387399
SpriteRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4668746867932216773}
  m_Enabled: 1
  m_CastShadows: 0
  m_ReceiveShadows: 0
  m_DynamicOccludee: 1
  m_MotionVectors: 1
  m_LightProbeUsage: 1
  m_ReflectionProbeUsage: 1
  m_RayTracingMode: 0
  m_RayTraceProcedural: 0
  m_RenderingLayerMask: 1
  m_RendererPriority: 0
  m_Materials:
  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
  m_StaticBatchInfo:
    firstSubMesh: 0
    subMeshCount: 0
  m_StaticBatchRoot: {fileID: 0}
  m_ProbeAnchor: {fileID: 0}
  m_LightProbeVolumeOverride: {fileID: 0}
  m_ScaleInLightmap: 1
  m_ReceiveGI: 1
  m_PreserveUVs: 0
  m_IgnoreNormalsForChartDetection: 0
  m_ImportantGI: 0
  m_StitchLightmapSeams: 1
  m_SelectedEditorRenderState: 0
  m_MinimumChartSize: 4
  m_AutoUVMaxDistance: 0.5
  m_AutoUVMaxAngle: 89
  m_LightmapParameters: {fileID: 0}
  m_SortingLayerID: 0
  m_SortingLayer: 0
  m_SortingOrder: 0
  m_Sprite: {fileID: 21300000, guid: d46b0b63d9cc5f7408251ed6d4f9f3c4, type: 3}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_FlipX: 0
  m_FlipY: 0
  m_DrawMode: 0
  m_Size: {x: 0.2, y: 0.15}
  m_AdaptiveModeThreshold: 0.5
  m_SpriteTileMode: 0
  m_WasSpriteAssigned: 1
  m_MaskInteraction: 0
  m_SpriteSortPoint: 0
--- !u!1 &5052972357522373282
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 142708819584152480}
  - component: {fileID: 7573798318347097818}
  m_Layer: 0
  m_Name: bullet_0 (3)
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!4 &142708819584152480
Transform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 5052972357522373282}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0.004, y: -0.082, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 649954434242370658}
  m_RootOrder: 9
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &7573798318347097818
SpriteRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 5052972357522373282}
  m_Enabled: 1
  m_CastShadows: 0
  m_ReceiveShadows: 0
  m_DynamicOccludee: 1
  m_MotionVectors: 1
  m_LightProbeUsage: 1
  m_ReflectionProbeUsage: 1
  m_RayTracingMode: 0
  m_RayTraceProcedural: 0
  m_RenderingLayerMask: 1
  m_RendererPriority: 0
  m_Materials:
  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
  m_StaticBatchInfo:
    firstSubMesh: 0
    subMeshCount: 0
  m_StaticBatchRoot: {fileID: 0}
  m_ProbeAnchor: {fileID: 0}
  m_LightProbeVolumeOverride: {fileID: 0}
  m_ScaleInLightmap: 1
  m_ReceiveGI: 1
  m_PreserveUVs: 0
  m_IgnoreNormalsForChartDetection: 0
  m_ImportantGI: 0
  m_StitchLightmapSeams: 1
  m_SelectedEditorRenderState: 0
  m_MinimumChartSize: 4
  m_AutoUVMaxDistance: 0.5
  m_AutoUVMaxAngle: 89
  m_LightmapParameters: {fileID: 0}
  m_SortingLayerID: 0
  m_SortingLayer: 0
  m_SortingOrder: 1
  m_Sprite: {fileID: 21300000, guid: 3ac0721032818764a9ccf68a1559cc4a, type: 3}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_FlipX: 0
  m_FlipY: 0
  m_DrawMode: 0
  m_Size: {x: 0.2, y: 0.15}
  m_AdaptiveModeThreshold: 0.5
  m_SpriteTileMode: 0
  m_WasSpriteAssigned: 1
  m_MaskInteraction: 0
  m_SpriteSortPoint: 0
--- !u!1 &5353999998929272187
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 8143668582440947975}
  - component: {fileID: 7159988421761445821}
  m_Layer: 0
  m_Name: bullet_0 (5)
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!4 &8143668582440947975
Transform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 5353999998929272187}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0.004, y: -0.382, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 649954434242370658}
  m_RootOrder: 11
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &7159988421761445821
SpriteRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 5353999998929272187}
  m_Enabled: 1
  m_CastShadows: 0
  m_ReceiveShadows: 0
  m_DynamicOccludee: 1
  m_MotionVectors: 1
  m_LightProbeUsage: 1
  m_ReflectionProbeUsage: 1
  m_RayTracingMode: 0
  m_RayTraceProcedural: 0
  m_RenderingLayerMask: 1
  m_RendererPriority: 0
  m_Materials:
  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
  m_StaticBatchInfo:
    firstSubMesh: 0
    subMeshCount: 0
  m_StaticBatchRoot: {fileID: 0}
  m_ProbeAnchor: {fileID: 0}
  m_LightProbeVolumeOverride: {fileID: 0}
  m_ScaleInLightmap: 1
  m_ReceiveGI: 1
  m_PreserveUVs: 0
  m_IgnoreNormalsForChartDetection: 0
  m_ImportantGI: 0
  m_StitchLightmapSeams: 1
  m_SelectedEditorRenderState: 0
  m_MinimumChartSize: 4
  m_AutoUVMaxDistance: 0.5
  m_AutoUVMaxAngle: 89
  m_LightmapParameters: {fileID: 0}
  m_SortingLayerID: 0
  m_SortingLayer: 0
  m_SortingOrder: 1
  m_Sprite: {fileID: 21300000, guid: 9b09056f35611ac4992f1038526985b6, type: 3}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_FlipX: 0
  m_FlipY: 0
  m_DrawMode: 0
  m_Size: {x: 0.2, y: 0.15}
  m_AdaptiveModeThreshold: 0.5
  m_SpriteTileMode: 0
  m_WasSpriteAssigned: 1
  m_MaskInteraction: 0
  m_SpriteSortPoint: 0
--- !u!1 &5737626202314668185
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 7724262154329898045}
  - component: {fileID: 7644879240941639744}
  m_Layer: 0
  m_Name: bullet_bottom
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!4 &7724262154329898045
Transform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 5737626202314668185}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0.369, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 649954434242370658}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &7644879240941639744
SpriteRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 5737626202314668185}
  m_Enabled: 1
  m_CastShadows: 0
  m_ReceiveShadows: 0
  m_DynamicOccludee: 1
  m_MotionVectors: 1
  m_LightProbeUsage: 1
  m_ReflectionProbeUsage: 1
  m_RayTracingMode: 0
  m_RayTraceProcedural: 0
  m_RenderingLayerMask: 1
  m_RendererPriority: 0
  m_Materials:
  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
  m_StaticBatchInfo:
    firstSubMesh: 0
    subMeshCount: 0
  m_StaticBatchRoot: {fileID: 0}
  m_ProbeAnchor: {fileID: 0}
  m_LightProbeVolumeOverride: {fileID: 0}
  m_ScaleInLightmap: 1
  m_ReceiveGI: 1
  m_PreserveUVs: 0
  m_IgnoreNormalsForChartDetection: 0
  m_ImportantGI: 0
  m_StitchLightmapSeams: 1
  m_SelectedEditorRenderState: 0
  m_MinimumChartSize: 4
  m_AutoUVMaxDistance: 0.5
  m_AutoUVMaxAngle: 89
  m_LightmapParameters: {fileID: 0}
  m_SortingLayerID: 0
  m_SortingLayer: 0
  m_SortingOrder: 0
  m_Sprite: {fileID: 21300000, guid: d46b0b63d9cc5f7408251ed6d4f9f3c4, type: 3}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_FlipX: 0
  m_FlipY: 0
  m_DrawMode: 0
  m_Size: {x: 0.2, y: 0.15}
  m_AdaptiveModeThreshold: 0.5
  m_SpriteTileMode: 0
  m_WasSpriteAssigned: 1
  m_MaskInteraction: 0
  m_SpriteSortPoint: 0
--- !u!1 &6377557099052072719
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 2163107409097430881}
  - component: {fileID: 1081863160066418343}
  m_Layer: 0
  m_Name: bullet_bottom (3)
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!4 &2163107409097430881
Transform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 6377557099052072719}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: -0.0816, z: -0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 649954434242370658}
  m_RootOrder: 3
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &1081863160066418343
SpriteRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 6377557099052072719}
  m_Enabled: 1
  m_CastShadows: 0
  m_ReceiveShadows: 0
  m_DynamicOccludee: 1
  m_MotionVectors: 1
  m_LightProbeUsage: 1
  m_ReflectionProbeUsage: 1
  m_RayTracingMode: 0
  m_RayTraceProcedural: 0
  m_RenderingLayerMask: 1
  m_RendererPriority: 0
  m_Materials:
  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
  m_StaticBatchInfo:
    firstSubMesh: 0
    subMeshCount: 0
  m_StaticBatchRoot: {fileID: 0}
  m_ProbeAnchor: {fileID: 0}
  m_LightProbeVolumeOverride: {fileID: 0}
  m_ScaleInLightmap: 1
  m_ReceiveGI: 1
  m_PreserveUVs: 0
  m_IgnoreNormalsForChartDetection: 0
  m_ImportantGI: 0
  m_StitchLightmapSeams: 1
  m_SelectedEditorRenderState: 0
  m_MinimumChartSize: 4
  m_AutoUVMaxDistance: 0.5
  m_AutoUVMaxAngle: 89
  m_LightmapParameters: {fileID: 0}
  m_SortingLayerID: 0
  m_SortingLayer: 0
  m_SortingOrder: 0
  m_Sprite: {fileID: 21300000, guid: d46b0b63d9cc5f7408251ed6d4f9f3c4, type: 3}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_FlipX: 0
  m_FlipY: 0
  m_DrawMode: 0
  m_Size: {x: 0.2, y: 0.15}
  m_AdaptiveModeThreshold: 0.5
  m_SpriteTileMode: 0
  m_WasSpriteAssigned: 1
  m_MaskInteraction: 0
  m_SpriteSortPoint: 0
--- !u!1 &7578573335585263285
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 6104473004824981008}
  - component: {fileID: 7831201965329777844}
  m_Layer: 0
  m_Name: bullet_bottom (2)
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!4 &6104473004824981008
Transform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 7578573335585263285}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0.0686, z: -0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 649954434242370658}
  m_RootOrder: 2
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &7831201965329777844
SpriteRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 7578573335585263285}
  m_Enabled: 1
  m_CastShadows: 0
  m_ReceiveShadows: 0
  m_DynamicOccludee: 1
  m_MotionVectors: 1
  m_LightProbeUsage: 1
  m_ReflectionProbeUsage: 1
  m_RayTracingMode: 0
  m_RayTraceProcedural: 0
  m_RenderingLayerMask: 1
  m_RendererPriority: 0
  m_Materials:
  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
  m_StaticBatchInfo:
    firstSubMesh: 0
    subMeshCount: 0
  m_StaticBatchRoot: {fileID: 0}
  m_ProbeAnchor: {fileID: 0}
  m_LightProbeVolumeOverride: {fileID: 0}
  m_ScaleInLightmap: 1
  m_ReceiveGI: 1
  m_PreserveUVs: 0
  m_IgnoreNormalsForChartDetection: 0
  m_ImportantGI: 0
  m_StitchLightmapSeams: 1
  m_SelectedEditorRenderState: 0
  m_MinimumChartSize: 4
  m_AutoUVMaxDistance: 0.5
  m_AutoUVMaxAngle: 89
  m_LightmapParameters: {fileID: 0}
  m_SortingLayerID: 0
  m_SortingLayer: 0
  m_SortingOrder: 0
  m_Sprite: {fileID: 21300000, guid: d46b0b63d9cc5f7408251ed6d4f9f3c4, type: 3}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_FlipX: 0
  m_FlipY: 0
  m_DrawMode: 0
  m_Size: {x: 0.2, y: 0.15}
  m_AdaptiveModeThreshold: 0.5
  m_SpriteTileMode: 0
  m_WasSpriteAssigned: 1
  m_MaskInteraction: 0
  m_SpriteSortPoint: 0
--- !u!1 &8932903281373825722
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 4597350740996707262}
  - component: {fileID: 1972262421311986546}
  m_Layer: 0
  m_Name: bullet_0
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!4 &4597350740996707262
Transform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 8932903281373825722}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0.004, y: 0.37, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 649954434242370658}
  m_RootOrder: 6
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &1972262421311986546
SpriteRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 8932903281373825722}
  m_Enabled: 1
  m_CastShadows: 0
  m_ReceiveShadows: 0
  m_DynamicOccludee: 1
  m_MotionVectors: 1
  m_LightProbeUsage: 1
  m_ReflectionProbeUsage: 1
  m_RayTracingMode: 0
  m_RayTraceProcedural: 0
  m_RenderingLayerMask: 1
  m_RendererPriority: 0
  m_Materials:
  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
  m_StaticBatchInfo:
    firstSubMesh: 0
    subMeshCount: 0
  m_StaticBatchRoot: {fileID: 0}
  m_ProbeAnchor: {fileID: 0}
  m_LightProbeVolumeOverride: {fileID: 0}
  m_ScaleInLightmap: 1
  m_ReceiveGI: 1
  m_PreserveUVs: 0
  m_IgnoreNormalsForChartDetection: 0
  m_ImportantGI: 0
  m_StitchLightmapSeams: 1
  m_SelectedEditorRenderState: 0
  m_MinimumChartSize: 4
  m_AutoUVMaxDistance: 0.5
  m_AutoUVMaxAngle: 89
  m_LightmapParameters: {fileID: 0}
  m_SortingLayerID: 0
  m_SortingLayer: 0
  m_SortingOrder: 1
  m_Sprite: {fileID: 21300000, guid: 3ac0721032818764a9ccf68a1559cc4a, type: 3}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_FlipX: 0
  m_FlipY: 0
  m_DrawMode: 0
  m_Size: {x: 0.2, y: 0.15}
  m_AdaptiveModeThreshold: 0.5
  m_SpriteTileMode: 0
  m_WasSpriteAssigned: 1
  m_MaskInteraction: 0
  m_SpriteSortPoint: 0
Assets/Prefabs/Towers/Fire/GrowUpTower_0.prefab
@@ -403,7 +403,7 @@
  epicenter: {fileID: 4795219791600268}
  isMultiAttack: 0
  maxAttackNum: 1
  fireRate: 1
  projectileFireRate: 1
  bWoodAffector: 0
  randomAudioSource: {fileID: 114747113932365056}
  towerTargetter: {fileID: 114079108543431824}
Assets/Prefabs/Towers/Fire/GrowUpTower_1.prefab
@@ -29094,7 +29094,7 @@
  epicenter: {fileID: 4187985146200546}
  isMultiAttack: 1
  maxAttackNum: 2
  fireRate: 1
  projectileFireRate: 1
  bWoodAffector: 0
  randomAudioSource: {fileID: 114412975896621836}
  towerTargetter: {fileID: 114831088907122518}
Assets/Prefabs/Towers/Fire/GrowUpTower_2.prefab
@@ -28917,7 +28917,7 @@
  epicenter: {fileID: 4737672716932362}
  isMultiAttack: 1
  maxAttackNum: 3
  fireRate: 1
  projectileFireRate: 1
  bWoodAffector: 0
  randomAudioSource: {fileID: 114646411789118934}
  towerTargetter: {fileID: 114624795727799840}
Assets/Prefabs/Towers/Fire/GrowUpTower_3.prefab
@@ -28917,7 +28917,7 @@
  epicenter: {fileID: 4737672716932362}
  isMultiAttack: 1
  maxAttackNum: 3
  fireRate: 1
  projectileFireRate: 1
  bWoodAffector: 0
  randomAudioSource: {fileID: 114646411789118934}
  towerTargetter: {fileID: 114624795727799840}
Assets/Prefabs/Towers/Fire/GrowUpTower_4.prefab
@@ -28917,7 +28917,7 @@
  epicenter: {fileID: 4737672716932362}
  isMultiAttack: 1
  maxAttackNum: 3
  fireRate: 1
  projectileFireRate: 1
  bWoodAffector: 0
  randomAudioSource: {fileID: 114646411789118934}
  towerTargetter: {fileID: 114624795727799840}
Assets/Prefabs/Towers/Water/CopyCatTower_0.prefab
@@ -43409,7 +43409,7 @@
  epicenter: {fileID: 4795219791600268}
  isMultiAttack: 0
  maxAttackNum: 1
  fireRate: 1
  projectileFireRate: 1
  bWoodAffector: 0
  randomAudioSource: {fileID: 114747113932365056}
  towerTargetter: {fileID: 114079108543431824}
@@ -43608,7 +43608,6 @@
  m_Script: {fileID: 11500000, guid: 70719dcea2b0be54580a41e62debeab1, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  offect: {x: 0, y: 0.07, z: 0.04}
--- !u!1 &4886038783420556509
GameObject:
  m_ObjectHideFlags: 0
Assets/Prefabs/Towers/Water/CopyCatTower_1.prefab
@@ -29093,7 +29093,7 @@
  epicenter: {fileID: 4187985146200546}
  isMultiAttack: 1
  maxAttackNum: 2
  fireRate: 1
  projectileFireRate: 1
  bWoodAffector: 0
  randomAudioSource: {fileID: 114412975896621836}
  towerTargetter: {fileID: 114831088907122518}
Assets/Prefabs/Towers/Water/CopyCatTower_2.prefab
@@ -28916,7 +28916,7 @@
  epicenter: {fileID: 4737672716932362}
  isMultiAttack: 1
  maxAttackNum: 3
  fireRate: 1
  projectileFireRate: 1
  bWoodAffector: 0
  randomAudioSource: {fileID: 114646411789118934}
  towerTargetter: {fileID: 114624795727799840}
Assets/Prefabs/Towers/Water/CopyCatTower_3.prefab
@@ -28916,7 +28916,7 @@
  epicenter: {fileID: 4737672716932362}
  isMultiAttack: 1
  maxAttackNum: 3
  fireRate: 1
  projectileFireRate: 1
  bWoodAffector: 0
  randomAudioSource: {fileID: 114646411789118934}
  towerTargetter: {fileID: 114624795727799840}
Assets/Prefabs/Towers/Water/CopyCatTower_4.prefab
@@ -28916,7 +28916,7 @@
  epicenter: {fileID: 4737672716932362}
  isMultiAttack: 1
  maxAttackNum: 3
  fireRate: 1
  projectileFireRate: 1
  bWoodAffector: 0
  randomAudioSource: {fileID: 114646411789118934}
  towerTargetter: {fileID: 114624795727799840}
Assets/Prefabs/Towers/WoodTower/BlinkTower_0.prefab
@@ -43411,7 +43411,7 @@
  epicenter: {fileID: 4795219791600268}
  isMultiAttack: 0
  maxAttackNum: 1
  fireRate: 1
  projectileFireRate: 1
  bWoodAffector: 1
  randomAudioSource: {fileID: 114747113932365056}
  towerTargetter: {fileID: 114079108543431824}
Assets/Prefabs/Towers/WoodTower/BlinkTower_1.prefab
@@ -29095,7 +29095,7 @@
  epicenter: {fileID: 4187985146200546}
  isMultiAttack: 1
  maxAttackNum: 2
  fireRate: 1
  projectileFireRate: 1
  bWoodAffector: 1
  randomAudioSource: {fileID: 114412975896621836}
  towerTargetter: {fileID: 114831088907122518}
Assets/Prefabs/Towers/WoodTower/BlinkTower_2.prefab
@@ -28918,7 +28918,7 @@
  epicenter: {fileID: 4737672716932362}
  isMultiAttack: 1
  maxAttackNum: 3
  fireRate: 1
  projectileFireRate: 1
  bWoodAffector: 1
  randomAudioSource: {fileID: 114646411789118934}
  towerTargetter: {fileID: 114624795727799840}
Assets/Prefabs/Towers/WoodTower/BlinkTower_3.prefab
@@ -28918,7 +28918,7 @@
  epicenter: {fileID: 4737672716932362}
  isMultiAttack: 1
  maxAttackNum: 3
  fireRate: 1
  projectileFireRate: 1
  bWoodAffector: 1
  randomAudioSource: {fileID: 114646411789118934}
  towerTargetter: {fileID: 114624795727799840}
Assets/Prefabs/Towers/WoodTower/BlinkTower_4.prefab
@@ -28918,7 +28918,7 @@
  epicenter: {fileID: 4737672716932362}
  isMultiAttack: 1
  maxAttackNum: 3
  fireRate: 1
  projectileFireRate: 1
  bWoodAffector: 1
  randomAudioSource: {fileID: 114646411789118934}
  towerTargetter: {fileID: 114624795727799840}
Assets/Prefabs/UI/BulletUI.prefab
@@ -89,7 +89,7 @@
  m_Script: {fileID: 11500000, guid: ce6c8d23972e4224384dead8d4662621, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  bulletScaleMask: {fileID: 4636030447972189695}
  bulletScaleMask: {fileID: 0}
  fAdjValue: 0.008
  maxBulletNum: 6
--- !u!1 &4636030447972189693
Assets/Prefabs/UI/Endless/BottomCanvas.prefab
@@ -1,5 +1,289 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2949276214842940293
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 8444485125150162961}
  - component: {fileID: 4933555016129551837}
  - component: {fileID: 2003835407464362767}
  m_Layer: 5
  m_Name: Image (1)
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &8444485125150162961
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 2949276214842940293}
  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_Children: []
  m_Father: {fileID: 4623057511312575043}
  m_RootOrder: 1
  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: -79, y: 10}
  m_SizeDelta: {x: 52, y: 58}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4933555016129551837
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 2949276214842940293}
  m_CullTransparentMesh: 0
--- !u!114 &2003835407464362767
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 2949276214842940293}
  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: 1, b: 1, 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: f95a7e975f487ac4b932bea4f52cc966, 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!1 &4306811289090099484
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 8563026178876940214}
  - component: {fileID: 5151289279430454484}
  - component: {fileID: 5359712543083727356}
  - component: {fileID: 1987915212137622960}
  - component: {fileID: 3866818396358359728}
  m_Layer: 5
  m_Name: TowerBuyBtn (1)
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &8563026178876940214
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4306811289090099484}
  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_Children:
  - {fileID: 661367110392523085}
  - {fileID: 2858083007431408240}
  m_Father: {fileID: 2459412157512953547}
  m_RootOrder: 1
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0.5, y: 0}
  m_AnchorMax: {x: 0.5, y: 0}
  m_AnchoredPosition: {x: -114, y: 98}
  m_SizeDelta: {x: 310, y: 140}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5151289279430454484
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4306811289090099484}
  m_CullTransparentMesh: 0
--- !u!114 &5359712543083727356
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4306811289090099484}
  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: 1, b: 1, 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: ab77798961eb0584f9fd0f748043a754, 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 &1987915212137622960
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4306811289090099484}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Navigation:
    m_Mode: 3
    m_SelectOnUp: {fileID: 0}
    m_SelectOnDown: {fileID: 0}
    m_SelectOnLeft: {fileID: 0}
    m_SelectOnRight: {fileID: 0}
  m_Transition: 0
  m_Colors:
    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
    m_ColorMultiplier: 1
    m_FadeDuration: 0.1
  m_SpriteState:
    m_HighlightedSprite: {fileID: 0}
    m_PressedSprite: {fileID: 0}
    m_SelectedSprite: {fileID: 0}
    m_DisabledSprite: {fileID: 0}
  m_AnimationTriggers:
    m_NormalTrigger: Normal
    m_HighlightedTrigger: Highlighted
    m_PressedTrigger: Pressed
    m_SelectedTrigger: Selected
    m_DisabledTrigger: Disabled
  m_Interactable: 1
  m_TargetGraphic: {fileID: 5359712543083727356}
  m_OnClick:
    m_PersistentCalls:
      m_Calls: []
--- !u!114 &3866818396358359728
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4306811289090099484}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: d180bd5a32e2da54997fbca35bd105b2, type: 3}
  m_Name:
  m_EditorClassIdentifier:
--- !u!1 &4506804646466140602
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 2858083007431408240}
  - component: {fileID: 6484642370492505356}
  - component: {fileID: 1476075535769517796}
  m_Layer: 5
  m_Name: Image
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &2858083007431408240
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4506804646466140602}
  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_Children: []
  m_Father: {fileID: 8563026178876940214}
  m_RootOrder: 1
  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: -79, y: 10}
  m_SizeDelta: {x: 52, y: 58}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6484642370492505356
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4506804646466140602}
  m_CullTransparentMesh: 0
--- !u!114 &1476075535769517796
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4506804646466140602}
  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: 1, b: 1, 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: f95a7e975f487ac4b932bea4f52cc966, 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!1 &4623057511285327668
GameObject:
  m_ObjectHideFlags: 0
@@ -34,7 +318,7 @@
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0.5}
  m_AnchorMax: {x: 0, y: 0.5}
  m_AnchoredPosition: {x: 199, y: -10}
  m_AnchoredPosition: {x: 177, y: 21}
  m_SizeDelta: {x: 200, y: 65}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4623057511285327657
@@ -415,17 +699,17 @@
  m_GameObject: {fileID: 4623057511312575040}
  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1.5, y: 1.5000001, z: 1.5000001}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children:
  - {fileID: 4623057513087273498}
  - {fileID: 4623057512525223247}
  - {fileID: 8444485125150162961}
  m_Father: {fileID: 2459412157512953547}
  m_RootOrder: 1
  m_RootOrder: 2
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0.5, y: 0}
  m_AnchorMax: {x: 0.5, y: 0}
  m_AnchoredPosition: {x: -3, y: 98}
  m_SizeDelta: {x: 252, y: 98}
  m_AnchoredPosition: {x: 215, y: 98}
  m_SizeDelta: {x: 310, y: 140}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4623057511312575047
CanvasRenderer:
@@ -455,7 +739,7 @@
  m_OnCullStateChanged:
    m_PersistentCalls:
      m_Calls: []
  m_Sprite: {fileID: 21300000, guid: 7c92b592097659442923d42e81d43ea8, type: 3}
  m_Sprite: {fileID: 21300000, guid: 28a0f25ee3c7f2749bd6a571f5198f8a, type: 3}
  m_Type: 0
  m_PreserveAspect: 0
  m_FillCenter: 1
@@ -521,8 +805,7 @@
  m_Name: 
  m_EditorClassIdentifier: 
  randomBtn: {fileID: 4623057511312575045}
  cdTimeBg: {fileID: 4623057512525223246}
  cdTimeText: {fileID: 4623057512496053749}
  skillBtn: {fileID: 1987915212137622960}
  buyBtnLevelUp: {fileID: 21300000, guid: 3ffe4129e848f0d4dae264dd341cb920, type: 3}
--- !u!114 &4623057511312575046
MonoBehaviour:
@@ -642,7 +925,7 @@
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 2459412157512953547}
  m_RootOrder: 18
  m_RootOrder: 19
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 1, y: 1}
@@ -851,7 +1134,7 @@
  m_Children:
  - {fileID: 4623057511488971176}
  m_Father: {fileID: 2459412157512953547}
  m_RootOrder: 11
  m_RootOrder: 12
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0.5, y: 0.5}
  m_AnchorMax: {x: 0.5, y: 0.5}
@@ -1196,7 +1479,7 @@
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 2459412157512953547}
  m_RootOrder: 16
  m_RootOrder: 17
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0.5, y: 0.5}
  m_AnchorMax: {x: 0.5, y: 0.5}
@@ -1357,7 +1640,7 @@
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 0, y: 0}
  m_AnchoredPosition: {x: 75, y: 612}
  m_AnchoredPosition: {x: 75, y: 1843}
  m_SizeDelta: {x: 200, y: 200}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!223 &4623057511676237799
@@ -1543,7 +1826,7 @@
  - {fileID: 4623057511676237794}
  - {fileID: 4623057511334348350}
  m_Father: {fileID: 2459412157512953547}
  m_RootOrder: 3
  m_RootOrder: 4
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 1, y: 1}
@@ -1579,7 +1862,7 @@
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 2459412157512953547}
  m_RootOrder: 12
  m_RootOrder: 13
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0.5, y: 0.5}
  m_AnchorMax: {x: 0.5, y: 0.5}
@@ -1944,11 +2227,11 @@
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 2459412157512953547}
  m_RootOrder: 4
  m_RootOrder: 5
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 1, y: 0.5}
  m_AnchorMax: {x: 1, y: 0.5}
  m_AnchoredPosition: {x: -81, y: -258.99997}
  m_AnchoredPosition: {x: -81, y: 129}
  m_SizeDelta: {x: 136, y: 70}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4623057511951820394
@@ -2487,7 +2770,7 @@
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 2459412157512953547}
  m_RootOrder: 17
  m_RootOrder: 18
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0.5, y: 0.5}
  m_AnchorMax: {x: 0.5, y: 0.5}
@@ -2624,7 +2907,7 @@
  - {fileID: 4623057511623356894}
  - {fileID: 4623057512200465642}
  m_Father: {fileID: 2459412157512953547}
  m_RootOrder: 9
  m_RootOrder: 10
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0.5, y: 1}
  m_AnchorMax: {x: 0.5, y: 1}
@@ -2969,7 +3252,7 @@
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 2459412157512953547}
  m_RootOrder: 15
  m_RootOrder: 16
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0.5, y: 0.5}
  m_AnchorMax: {x: 0.5, y: 0.5}
@@ -3463,141 +3746,6 @@
  MiddleTreasure: {fileID: 4623057512047938861}
  AdvancedTreasure: {fileID: 4623057511910378067}
  Gold: {fileID: 4623057512168490628}
--- !u!1 &4623057512496053747
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 4623057512496053746}
  - component: {fileID: 4623057512496053748}
  - component: {fileID: 4623057512496053749}
  m_Layer: 5
  m_Name: cdTimeText
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &4623057512496053746
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4623057512496053747}
  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_Children: []
  m_Father: {fileID: 4623057512525223247}
  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: 60, y: 50}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4623057512496053748
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4623057512496053747}
  m_CullTransparentMesh: 0
--- !u!114 &4623057512496053749
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4623057512496053747}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Material: {fileID: 0}
  m_Color: {r: 1, g: 1, b: 1, 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_text: 10s
  m_isRightToLeft: 0
  m_fontAsset: {fileID: 11400000, guid: 572adb1c73f88e441a1bf998ca9f4ea5, type: 2}
  m_sharedMaterial: {fileID: -3548855653558765056, guid: 572adb1c73f88e441a1bf998ca9f4ea5,
    type: 2}
  m_fontSharedMaterials: []
  m_fontMaterial: {fileID: 0}
  m_fontMaterials: []
  m_fontColor32:
    serializedVersion: 2
    rgba: 4294967295
  m_fontColor: {r: 1, g: 1, b: 1, a: 1}
  m_enableVertexGradient: 0
  m_colorMode: 3
  m_fontColorGradient:
    topLeft: {r: 1, g: 1, b: 1, a: 1}
    topRight: {r: 1, g: 1, b: 1, a: 1}
    bottomLeft: {r: 1, g: 1, b: 1, a: 1}
    bottomRight: {r: 1, g: 1, b: 1, a: 1}
  m_fontColorGradientPreset: {fileID: 0}
  m_spriteAsset: {fileID: 0}
  m_tintAllSprites: 0
  m_StyleSheet: {fileID: 0}
  m_TextStyleHashCode: -1183493901
  m_overrideHtmlColors: 0
  m_faceColor:
    serializedVersion: 2
    rgba: 4294967295
  m_fontSize: 36.2
  m_fontSizeBase: 36
  m_fontWeight: 400
  m_enableAutoSizing: 1
  m_fontSizeMin: 18
  m_fontSizeMax: 72
  m_fontStyle: 0
  m_HorizontalAlignment: 2
  m_VerticalAlignment: 512
  m_textAlignment: 65535
  m_characterSpacing: 0
  m_wordSpacing: 0
  m_lineSpacing: 0
  m_lineSpacingMax: 0
  m_paragraphSpacing: 0
  m_charWidthMaxAdj: 0
  m_enableWordWrapping: 1
  m_wordWrappingRatios: 0.4
  m_overflowMode: 0
  m_linkedTextComponent: {fileID: 0}
  parentLinkedComponent: {fileID: 0}
  m_enableKerning: 1
  m_enableExtraPadding: 0
  checkPaddingRequired: 0
  m_isRichText: 1
  m_parseCtrlCharacters: 1
  m_isOrthographic: 1
  m_isCullingEnabled: 0
  m_horizontalMapping: 0
  m_verticalMapping: 0
  m_uvLineOffset: 0
  m_geometrySortingOrder: 0
  m_IsTextObjectScaleStatic: 0
  m_VertexBufferAutoSizeReduction: 1
  m_useMaxVisibleDescender: 1
  m_pageToDisplay: 1
  m_margin: {x: 0, y: 0, z: 0, w: 0}
  m_isUsingLegacyAnimationComponent: 0
  m_isVolumetricText: 0
  m_hasFontAssetChanged: 0
  m_baseMaterial: {fileID: 0}
  m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &4623057512515962848
GameObject:
  m_ObjectHideFlags: 0
@@ -3708,82 +3856,6 @@
  m_EditorClassIdentifier: 
  m_HorizontalFit: 0
  m_VerticalFit: 2
--- !u!1 &4623057512525223244
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 4623057512525223247}
  - component: {fileID: 4623057512525223233}
  - component: {fileID: 4623057512525223246}
  m_Layer: 5
  m_Name: btnUpBgMask
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &4623057512525223247
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4623057512525223244}
  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_Children:
  - {fileID: 4623057512496053746}
  m_Father: {fileID: 4623057511312575043}
  m_RootOrder: 1
  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: 162, y: -12}
  m_SizeDelta: {x: 60, y: 50}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4623057512525223233
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4623057512525223244}
  m_CullTransparentMesh: 0
--- !u!114 &4623057512525223246
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4623057512525223244}
  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: 1, b: 1, 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: 762031a35316a0040938a3581436f744, 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!1 &4623057512560611307
GameObject:
  m_ObjectHideFlags: 0
@@ -3997,7 +4069,7 @@
  - {fileID: 4623057512415519653}
  - {fileID: 4623057512080954351}
  m_Father: {fileID: 2459412157512953547}
  m_RootOrder: 5
  m_RootOrder: 6
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 1, y: 0.5}
  m_AnchorMax: {x: 1, y: 0.5}
@@ -4304,7 +4376,7 @@
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 2459412157512953547}
  m_RootOrder: 13
  m_RootOrder: 14
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 1, y: 0.5}
  m_AnchorMax: {x: 1, y: 0.5}
@@ -4521,7 +4593,7 @@
  - {fileID: 3028643154847299432}
  - {fileID: 4623057512074301610}
  m_Father: {fileID: 2459412157512953547}
  m_RootOrder: 19
  m_RootOrder: 20
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0.5, y: 0.5}
  m_AnchorMax: {x: 0.5, y: 0.5}
@@ -4694,7 +4766,7 @@
  m_LocalEulerAnglesHint: {x: 0.9990001, y: -0.99600005, z: -0.109000005}
  m_AnchorMin: {x: 0.5, y: 0.5}
  m_AnchorMax: {x: 0.5, y: 0.5}
  m_AnchoredPosition: {x: -16, y: 0}
  m_AnchoredPosition: {x: -38, y: 30.999996}
  m_SizeDelta: {x: 32, y: 37}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4623057513050824276
@@ -4767,7 +4839,7 @@
  - {fileID: 4623057511285327671}
  - {fileID: 4623057513050824274}
  m_Father: {fileID: 2459412157512953547}
  m_RootOrder: 2
  m_RootOrder: 3
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0.5, y: 0}
  m_AnchorMax: {x: 0.5, y: 0}
@@ -4888,8 +4960,8 @@
  m_faceColor:
    serializedVersion: 2
    rgba: 4294967295
  m_fontSize: 36
  m_fontSizeBase: 36
  m_fontSize: 56
  m_fontSizeBase: 56
  m_fontWeight: 400
  m_enableAutoSizing: 0
  m_fontSizeMin: 18
@@ -4963,7 +5035,7 @@
  m_LocalScale: {x: 1.2, y: 1.2, z: 1.2}
  m_Children: []
  m_Father: {fileID: 2459412157512953547}
  m_RootOrder: 7
  m_RootOrder: 8
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0.5, y: 1}
  m_AnchorMax: {x: 0.5, y: 1}
@@ -5089,7 +5161,7 @@
  - {fileID: 4623057511856796898}
  - {fileID: 4623057512663774582}
  m_Father: {fileID: 2459412157512953547}
  m_RootOrder: 14
  m_RootOrder: 15
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0.5, y: 0.5}
  m_AnchorMax: {x: 0.5, y: 0.5}
@@ -5344,7 +5416,7 @@
  - {fileID: 4623057513320342619}
  - {fileID: 4623057511982691805}
  m_Father: {fileID: 2459412157512953547}
  m_RootOrder: 8
  m_RootOrder: 9
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0.5, y: 1}
  m_AnchorMax: {x: 0.5, y: 1}
@@ -5370,6 +5442,141 @@
  WaveNumText: {fileID: 4623057513320342618}
  BossInfo: {fileID: 4623057513278548003}
  HPInfoText: {fileID: 4623057511982691804}
--- !u!1 &5180736553888704101
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 661367110392523085}
  - component: {fileID: 7745649445018114533}
  - component: {fileID: 2983413829639846834}
  m_Layer: 5
  m_Name: cashText
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &661367110392523085
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 5180736553888704101}
  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_Children: []
  m_Father: {fileID: 8563026178876940214}
  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: 85, y: 15}
  m_SizeDelta: {x: 200, y: 50}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7745649445018114533
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 5180736553888704101}
  m_CullTransparentMesh: 0
--- !u!114 &2983413829639846834
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 5180736553888704101}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Material: {fileID: 0}
  m_Color: {r: 1, g: 1, b: 1, 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_text: 10
  m_isRightToLeft: 0
  m_fontAsset: {fileID: 11400000, guid: 572adb1c73f88e441a1bf998ca9f4ea5, type: 2}
  m_sharedMaterial: {fileID: -3548855653558765056, guid: 572adb1c73f88e441a1bf998ca9f4ea5,
    type: 2}
  m_fontSharedMaterials: []
  m_fontMaterial: {fileID: 0}
  m_fontMaterials: []
  m_fontColor32:
    serializedVersion: 2
    rgba: 4294967295
  m_fontColor: {r: 1, g: 1, b: 1, a: 1}
  m_enableVertexGradient: 0
  m_colorMode: 3
  m_fontColorGradient:
    topLeft: {r: 1, g: 1, b: 1, a: 1}
    topRight: {r: 1, g: 1, b: 1, a: 1}
    bottomLeft: {r: 1, g: 1, b: 1, a: 1}
    bottomRight: {r: 1, g: 1, b: 1, a: 1}
  m_fontColorGradientPreset: {fileID: 0}
  m_spriteAsset: {fileID: 0}
  m_tintAllSprites: 0
  m_StyleSheet: {fileID: 0}
  m_TextStyleHashCode: -1183493901
  m_overrideHtmlColors: 0
  m_faceColor:
    serializedVersion: 2
    rgba: 4294967295
  m_fontSize: 56
  m_fontSizeBase: 56
  m_fontWeight: 400
  m_enableAutoSizing: 0
  m_fontSizeMin: 18
  m_fontSizeMax: 72
  m_fontStyle: 0
  m_HorizontalAlignment: 1
  m_VerticalAlignment: 256
  m_textAlignment: 65535
  m_characterSpacing: 0
  m_wordSpacing: 0
  m_lineSpacing: 0
  m_lineSpacingMax: 0
  m_paragraphSpacing: 0
  m_charWidthMaxAdj: 0
  m_enableWordWrapping: 1
  m_wordWrappingRatios: 0.4
  m_overflowMode: 0
  m_linkedTextComponent: {fileID: 0}
  parentLinkedComponent: {fileID: 0}
  m_enableKerning: 1
  m_enableExtraPadding: 0
  checkPaddingRequired: 0
  m_isRichText: 1
  m_parseCtrlCharacters: 1
  m_isOrthographic: 1
  m_isCullingEnabled: 0
  m_horizontalMapping: 0
  m_verticalMapping: 0
  m_uvLineOffset: 0
  m_geometrySortingOrder: 0
  m_IsTextObjectScaleStatic: 0
  m_VertexBufferAutoSizeReduction: 1
  m_useMaxVisibleDescender: 1
  m_pageToDisplay: 1
  m_margin: {x: 0, y: 0, z: 62.71267, w: 13.763641}
  m_isUsingLegacyAnimationComponent: 0
  m_isVolumetricText: 0
  m_hasFontAssetChanged: 0
  m_baseMaterial: {fileID: 0}
  m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &9176589141210151365
GameObject:
  m_ObjectHideFlags: 0
@@ -5398,6 +5605,7 @@
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children:
  - {fileID: 4623057512515962851}
  - {fileID: 8563026178876940214}
  - {fileID: 4623057511312575043}
  - {fileID: 4623057513073301098}
  - {fileID: 4623057511776897179}
@@ -5542,17 +5750,52 @@
      propertyPath: m_Name
      value: hh1
      objectReference: {fileID: 0}
    - target: {fileID: 7193677034299007581, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384422679409385, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384422954344874, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384423131069520, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384423789432921, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384423799936934, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384424106249944, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    m_RemovedComponents: []
  m_SourcePrefab: {fileID: 100100000, guid: 5bac711eb8890f244b4146b3339516ff, type: 3}
--- !u!224 &4623057511292283298 stripped
RectTransform:
  m_CorrespondingSourceObject: {fileID: 7193677034299007580, guid: 5bac711eb8890f244b4146b3339516ff,
    type: 3}
  m_PrefabInstance: {fileID: 2593358110680681470}
  m_PrefabAsset: {fileID: 0}
--- !u!1 &4623057511292283299 stripped
GameObject:
  m_CorrespondingSourceObject: {fileID: 7193677034299007581, guid: 5bac711eb8890f244b4146b3339516ff,
    type: 3}
  m_PrefabInstance: {fileID: 2593358110680681470}
  m_PrefabAsset: {fileID: 0}
--- !u!224 &4623057511292283298 stripped
RectTransform:
  m_CorrespondingSourceObject: {fileID: 7193677034299007580, guid: 5bac711eb8890f244b4146b3339516ff,
    type: 3}
  m_PrefabInstance: {fileID: 2593358110680681470}
  m_PrefabAsset: {fileID: 0}
@@ -5673,17 +5916,52 @@
      propertyPath: m_Name
      value: hh3
      objectReference: {fileID: 0}
    - target: {fileID: 7193677034299007581, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384422679409385, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384422954344874, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384423131069520, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384423789432921, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384423799936934, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384424106249944, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    m_RemovedComponents: []
  m_SourcePrefab: {fileID: 100100000, guid: 5bac711eb8890f244b4146b3339516ff, type: 3}
--- !u!1 &2593358110827121938 stripped
GameObject:
  m_CorrespondingSourceObject: {fileID: 7193677034299007581, guid: 5bac711eb8890f244b4146b3339516ff,
    type: 3}
  m_PrefabInstance: {fileID: 4623057511438462799}
  m_PrefabAsset: {fileID: 0}
--- !u!224 &2593358110827121939 stripped
RectTransform:
  m_CorrespondingSourceObject: {fileID: 7193677034299007580, guid: 5bac711eb8890f244b4146b3339516ff,
    type: 3}
  m_PrefabInstance: {fileID: 4623057511438462799}
  m_PrefabAsset: {fileID: 0}
--- !u!1 &2593358110827121938 stripped
GameObject:
  m_CorrespondingSourceObject: {fileID: 7193677034299007581, guid: 5bac711eb8890f244b4146b3339516ff,
    type: 3}
  m_PrefabInstance: {fileID: 4623057511438462799}
  m_PrefabAsset: {fileID: 0}
@@ -5889,7 +6167,7 @@
    - target: {fileID: 2366615777647505734, guid: edd0f54808263644d9740a9c0040b493,
        type: 3}
      propertyPath: m_RootOrder
      value: 10
      value: 11
      objectReference: {fileID: 0}
    - target: {fileID: 2366615777647505734, guid: edd0f54808263644d9740a9c0040b493,
        type: 3}
@@ -5975,18 +6253,6 @@
      objectReference: {fileID: 0}
    m_RemovedComponents: []
  m_SourcePrefab: {fileID: 100100000, guid: edd0f54808263644d9740a9c0040b493, type: 3}
--- !u!1 &8424158400893339871 stripped
GameObject:
  m_CorrespondingSourceObject: {fileID: 3801312133014535296, guid: edd0f54808263644d9740a9c0040b493,
    type: 3}
  m_PrefabInstance: {fileID: 4623057511554511967}
  m_PrefabAsset: {fileID: 0}
--- !u!224 &6989462182969459993 stripped
RectTransform:
  m_CorrespondingSourceObject: {fileID: 2366615777647505734, guid: edd0f54808263644d9740a9c0040b493,
    type: 3}
  m_PrefabInstance: {fileID: 4623057511554511967}
  m_PrefabAsset: {fileID: 0}
--- !u!114 &1184553460454064981 stripped
MonoBehaviour:
  m_CorrespondingSourceObject: {fileID: 5789385329819219722, guid: edd0f54808263644d9740a9c0040b493,
@@ -5999,6 +6265,18 @@
  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
--- !u!224 &6989462182969459993 stripped
RectTransform:
  m_CorrespondingSourceObject: {fileID: 2366615777647505734, guid: edd0f54808263644d9740a9c0040b493,
    type: 3}
  m_PrefabInstance: {fileID: 4623057511554511967}
  m_PrefabAsset: {fileID: 0}
--- !u!1 &8424158400893339871 stripped
GameObject:
  m_CorrespondingSourceObject: {fileID: 3801312133014535296, guid: edd0f54808263644d9740a9c0040b493,
    type: 3}
  m_PrefabInstance: {fileID: 4623057511554511967}
  m_PrefabAsset: {fileID: 0}
--- !u!1001 &4623057511616550406
PrefabInstance:
  m_ObjectHideFlags: 0
@@ -6115,6 +6393,41 @@
        type: 3}
      propertyPath: m_Name
      value: hh4
      objectReference: {fileID: 0}
    - target: {fileID: 7193677034299007581, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384422679409385, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384422954344874, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384423131069520, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384423789432921, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384423799936934, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384424106249944, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    m_RemovedComponents: []
  m_SourcePrefab: {fileID: 100100000, guid: 5bac711eb8890f244b4146b3339516ff, type: 3}
@@ -6426,6 +6739,12 @@
      objectReference: {fileID: 0}
    m_RemovedComponents: []
  m_SourcePrefab: {fileID: 100100000, guid: 49213eb9f84d76e47b6b19e9a246b83c, type: 3}
--- !u!224 &3028643155105321891 stripped
RectTransform:
  m_CorrespondingSourceObject: {fileID: 7651475816072793687, guid: 49213eb9f84d76e47b6b19e9a246b83c,
    type: 3}
  m_PrefabInstance: {fileID: 4623057511748623860}
  m_PrefabAsset: {fileID: 0}
--- !u!114 &7735723185050839569 stripped
MonoBehaviour:
  m_CorrespondingSourceObject: {fileID: 3130750578608519141, guid: 49213eb9f84d76e47b6b19e9a246b83c,
@@ -6438,12 +6757,6 @@
  m_Script: {fileID: 11500000, guid: 9a92c216c3d4e97459299f45fc451060, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
--- !u!224 &3028643155105321891 stripped
RectTransform:
  m_CorrespondingSourceObject: {fileID: 7651475816072793687, guid: 49213eb9f84d76e47b6b19e9a246b83c,
    type: 3}
  m_PrefabInstance: {fileID: 4623057511748623860}
  m_PrefabAsset: {fileID: 0}
--- !u!1001 &4623057511883902042
PrefabInstance:
  m_ObjectHideFlags: 0
@@ -6560,6 +6873,41 @@
        type: 3}
      propertyPath: m_Name
      value: hh5
      objectReference: {fileID: 0}
    - target: {fileID: 7193677034299007581, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384422679409385, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384422954344874, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384423131069520, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384423789432921, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384423799936934, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384424106249944, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    m_RemovedComponents: []
  m_SourcePrefab: {fileID: 100100000, guid: 5bac711eb8890f244b4146b3339516ff, type: 3}
@@ -6692,17 +7040,52 @@
      propertyPath: m_Name
      value: hh2
      objectReference: {fileID: 0}
    - target: {fileID: 7193677034299007581, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384422679409385, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384422954344874, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384423131069520, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384423789432921, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384423799936934, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    - target: {fileID: 7405384424106249944, guid: 5bac711eb8890f244b4146b3339516ff,
        type: 3}
      propertyPath: m_Layer
      value: 5
      objectReference: {fileID: 0}
    m_RemovedComponents: []
  m_SourcePrefab: {fileID: 100100000, guid: 5bac711eb8890f244b4146b3339516ff, type: 3}
--- !u!224 &2593358111913102218 stripped
RectTransform:
  m_CorrespondingSourceObject: {fileID: 7193677034299007580, guid: 5bac711eb8890f244b4146b3339516ff,
    type: 3}
  m_PrefabInstance: {fileID: 4623057512515660246}
  m_PrefabAsset: {fileID: 0}
--- !u!1 &2593358111913102219 stripped
GameObject:
  m_CorrespondingSourceObject: {fileID: 7193677034299007581, guid: 5bac711eb8890f244b4146b3339516ff,
    type: 3}
  m_PrefabInstance: {fileID: 4623057512515660246}
  m_PrefabAsset: {fileID: 0}
--- !u!224 &2593358111913102218 stripped
RectTransform:
  m_CorrespondingSourceObject: {fileID: 7193677034299007580, guid: 5bac711eb8890f244b4146b3339516ff,
    type: 3}
  m_PrefabInstance: {fileID: 4623057512515660246}
  m_PrefabAsset: {fileID: 0}
@@ -6756,7 +7139,7 @@
    - target: {fileID: 162820266587863501, guid: 550ad0a7c16a47a49bfb36ef49a73a67,
        type: 3}
      propertyPath: m_RootOrder
      value: 6
      value: 7
      objectReference: {fileID: 0}
    - target: {fileID: 162820266587863501, guid: 550ad0a7c16a47a49bfb36ef49a73a67,
        type: 3}
Assets/Prefabs/UI/EnergyUI.prefab
@@ -90,6 +90,7 @@
  m_Name: 
  m_EditorClassIdentifier: 
  energyScaleMask: {fileID: 4636030447972189695}
  energyEffPrefab: {fileID: 0}
--- !u!1 &4636030447972189693
GameObject:
  m_ObjectHideFlags: 0
@@ -155,7 +156,7 @@
  m_OnCullStateChanged:
    m_PersistentCalls:
      m_Calls: []
  m_Sprite: {fileID: 21300000, guid: 747f83368dfba694c89bc6908324bb94, type: 3}
  m_Sprite: {fileID: 21300000, guid: 1c47922a3efeb394892627a7c1daa3f8, type: 3}
  m_Type: 0
  m_PreserveAspect: 0
  m_FillCenter: 1
Assets/Prefabs/UI/FreezeEnergy.prefab
@@ -157,7 +157,7 @@
  m_OnCullStateChanged:
    m_PersistentCalls:
      m_Calls: []
  m_Sprite: {fileID: 21300000, guid: 747f83368dfba694c89bc6908324bb94, type: 3}
  m_Sprite: {fileID: 21300000, guid: fb0a889c8f8a280438057bf0fbd923c6, type: 3}
  m_Type: 0
  m_PreserveAspect: 0
  m_FillCenter: 1
Assets/Resources/UI/Endless/BuffIcon/10008.png
Assets/Resources/UI/Endless/BuffIcon/10008.png.meta
copy from Assets/UI/energy.png.meta copy to Assets/Resources/UI/Endless/BuffIcon/10008.png.meta
File was copied from Assets/UI/energy.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 747f83368dfba694c89bc6908324bb94
guid: cca6988cdd60bf44f8dd0cfd8fcfeb85
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
@@ -37,7 +37,7 @@
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
Assets/Resources/UI/Endless/BuffIcon/10009.png
Assets/Resources/UI/Endless/BuffIcon/10009.png.meta
copy from Assets/UI/energy.png.meta copy to Assets/Resources/UI/Endless/BuffIcon/10009.png.meta
File was copied from Assets/UI/energy.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 747f83368dfba694c89bc6908324bb94
guid: 3ba408c408d5050459a4c56e218acf96
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
@@ -37,7 +37,7 @@
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
Assets/Resources/UI/Endless/BuffIcon/10010.png
Assets/Resources/UI/Endless/BuffIcon/10010.png.meta
copy from Assets/UI/energy.png.meta copy to Assets/Resources/UI/Endless/BuffIcon/10010.png.meta
File was copied from Assets/UI/energy.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 747f83368dfba694c89bc6908324bb94
guid: 16f1a6a087f619d40b6fec26a4af2231
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
@@ -37,7 +37,7 @@
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
Assets/Resources/UI/Endless/BuffIcon/10011.png
Assets/Resources/UI/Endless/BuffIcon/10011.png.meta
copy from Assets/UI/energy.png.meta copy to Assets/Resources/UI/Endless/BuffIcon/10011.png.meta
File was copied from Assets/UI/energy.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 747f83368dfba694c89bc6908324bb94
guid: 8a542ba4bf406d94188730cac11fc5df
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
@@ -37,7 +37,7 @@
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
Assets/Resources/UI/Endless/BuffIcon/10012.png
Assets/Resources/UI/Endless/BuffIcon/10012.png.meta
File was renamed from Assets/UI/energy.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 747f83368dfba694c89bc6908324bb94
guid: 6d1e8c9e133a02e47aa9d1145ea2c09a
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
@@ -37,7 +37,7 @@
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
Assets/Resources/UI/Endless/BuffIcon/10013.png
Assets/Resources/UI/Endless/BuffIcon/10013.png.meta
copy from Assets/UI/energy.png.meta copy to Assets/Resources/UI/Endless/BuffIcon/10013.png.meta
File was copied from Assets/UI/energy.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 747f83368dfba694c89bc6908324bb94
guid: 47c9c9d250f4cf94fadff95453cdbf5a
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
@@ -37,7 +37,7 @@
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
Assets/Resources/UI/Endless/BuffQuality/1.png

Assets/Resources/UI/Endless/BuffQuality/1.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 981bb55659998b84a96276d6b40ebb00
guid: ad916819186014c4b80a984815bd371c
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
Assets/Resources/UI/Endless/BuffQuality/2.png

Assets/Resources/UI/Endless/BuffQuality/2.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: af2406b6691afaa468813ee5264cf086
guid: 4288b5b08fc1709439ab2d40d5b82539
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
Assets/Resources/UI/Endless/BuffQuality/3.png

Assets/Resources/UI/Endless/BuffQuality/3.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 0574ee5edfca671449f9bffc3a1fcddd
guid: 96d350e697cf6c54284d5a8b9e3775d2
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
Assets/Scenes/Levels/Battle/Endless2D.unity
@@ -2577,8 +2577,8 @@
  - component: {fileID: 567180761}
  - component: {fileID: 567180760}
  - component: {fileID: 567180758}
  - component: {fileID: 567180764}
  - component: {fileID: 567180765}
  - component: {fileID: 567180764}
  m_Layer: 0
  m_Name: WaveManager
  m_TagString: Untagged
@@ -2743,7 +2743,7 @@
  m_GameObject: {fileID: 567180756}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: ae98f435720c34145a1b4019d3893885, type: 3}
  m_Script: {fileID: 11500000, guid: 3a3de143fa3c8274aa2c0e6439474690, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
--- !u!114 &567180765
@@ -2840,8 +2840,8 @@
  m_GameObject: {fileID: 580839154}
  m_Enabled: 1
  serializedVersion: 2
  m_ClearFlags: 4
  m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
  m_ClearFlags: 2
  m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0}
  m_projectionMatrixMode: 1
  m_GateFitMode: 2
  m_FOVAxisMode: 0
@@ -4598,6 +4598,18 @@
      area: 0.05177676
    completeArea: 0.70710546
  outSidePointsParent: {fileID: 208464362}
--- !u!114 &923131544 stripped
MonoBehaviour:
  m_CorrespondingSourceObject: {fileID: 1987915212137622960, guid: 29da21b318f42054db30c52123aa4dbf,
    type: 3}
  m_PrefabInstance: {fileID: 877647585}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 0}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
  m_Name:
  m_EditorClassIdentifier:
--- !u!1 &928059874
GameObject:
  m_ObjectHideFlags: 0
@@ -6539,7 +6551,8 @@
    serializedVersion: 2
    m_Bits: 513
  sphereCastRadius: 1
  randomTowerBtn: {fileID: 0}
  randomTowerBtn: {fileID: 1712321103}
  SkillTowerBtn: {fileID: 923131544}
  bloodText: {fileID: 8440900062448590821, guid: 47dfe8b7004c4ce47b908704df79f2d0,
    type: 3}
  bloodPoison: {fileID: 8440900062448590821, guid: c81aa50d57f360144bd4b9427c9c9fbd,
@@ -8429,6 +8442,18 @@
  m_Father: {fileID: 1435697235}
  m_RootOrder: 2
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1712321103 stripped
MonoBehaviour:
  m_CorrespondingSourceObject: {fileID: 4623057511312575045, guid: 29da21b318f42054db30c52123aa4dbf,
    type: 3}
  m_PrefabInstance: {fileID: 877647585}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 0}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
  m_Name:
  m_EditorClassIdentifier:
--- !u!1 &1720255124
GameObject:
  m_ObjectHideFlags: 0
Assets/Scripts/ActionGameFramework/Health/Damager.cs
@@ -4,6 +4,7 @@
using TowerDefense.Agents;
using UnityEngine;
using Random = UnityEngine.Random;
using TowerDefense.Towers;
namespace ActionGameFramework.Health
{
@@ -55,6 +56,11 @@
        /// </summary>
        public SerializableIAlignmentProvider alignment;
        /// <summary>
        /// 塔的属性id
        /// </summary>
        /// <value></value>
        public int TowerAttributeId { get; set; }
        /// <summary>
        /// Gets the alignment of the damager
Assets/Scripts/Data/EndlessBuffData.cs
@@ -42,6 +42,11 @@
        /// 可生效总波数,生命周期类型为n波内生效才有作用,否则没有意义
        /// </summary>
        public int TotalEffectWaves;
        /// <summary>
        /// 记录玩家选择该buff的次数
        /// </summary>
        public int SelectCount;
    }
    public class EndlessBuffData
@@ -132,6 +137,22 @@
        }
        /// <summary>
        /// 从buff池中删除以后都不会再出现的buff
        /// </summary>
        /// <param name="id"></param>
        public static void RemoveFromBuffPool(int id)
        {
            for (int i = 0; i < endlessBuffPool.Count; ++i)
            {
                if (endlessBuffPool[i].Config.id == id)
                {
                    endlessBuffPool.Remove(endlessBuffPool[i]);
                    break;
                }
            }
        }
        /// <summary>
        /// 获取随机数量的buff列表
        /// </summary>
        /// <param name="num"></param>
Assets/Scripts/Enum/EndlessBuffEffectType.cs
@@ -8,12 +8,30 @@
    public enum EndlessBuffEffectType
    {
        // 宝石攻击力增加 公式:宝石攻击力 = 养成攻击力 * (1 + 增加百分比radio) + 固定数值add
        Attack = 1,
        AttackAdd = 1,
        // 金币增加
        Gold,
        GoldAdd,
        // 下一个波次开始随机获得一个宝石
        ObtainTower
        ObtainTower,
        // 塔的普通攻击时间CD减少 (ms)
        DecreaseTowerAttackCD,
        // 暴击概率增加(千分比)
        CritProbabilityAdd,
        // 暴击伤害增加 暴击时 伤害 = 最终伤害 * (1 + crit_dmg / 1000)
        CritDamageAdd,
        // 暴击子弹数量变化(木精灵独有)
        CritBulletAdd,
        // 减速比例改变(水精灵独有)
        SlowDown,
        // 攻击速度增加
        FireRateAdd
    }
}
Assets/Scripts/Event/EventType.cs
@@ -85,6 +85,8 @@
        WaveLineFinish,
        // 播放水精灵充能满特效
        EndlessPlayFreezeBreathEffect,
        // 木属性精灵暴击子弹数量改变
        EndlessCritBulletNumChange,
    }
}
Assets/Scripts/Json/JsonDataCenter.cs
@@ -177,7 +177,9 @@
                            OpponentMgr.instance.ResetCurrency(currency);
                        if (EndlessLevelManager.instanceExists)
                            EndlessLevelManager.instance.ResetCurrency(currency);
                            // cx test
                            EndlessLevelManager.instance.ResetCurrency(500000);
                            // EndlessLevelManager.instance.ResetCurrency(currency);
                        break;
                    case "skilltime":
                        // 设置技能塔出现时间
Assets/Scripts/Net/NetExtends/Table.cs
@@ -977,6 +977,9 @@
        // 品质
        public int rare;
        
        // 是否重复出现
        public int is_repeated;
        public static endless_buff CreateFromJson(JsonData item)
@@ -994,6 +997,7 @@
            _endless_buff.upper_level = int.Parse(GameUtils.GetString(item[index++].ToString())); 
            _endless_buff.image = int.Parse(GameUtils.GetString(item[index++].ToString())); 
            _endless_buff.rare = int.Parse(GameUtils.GetString(item[index++].ToString())); 
            _endless_buff.is_repeated = int.Parse(GameUtils.GetString(item[index++].ToString()));
            
            return _endless_buff;
        }
Assets/Scripts/TowerDefense/Affectors/AttackAffector.cs
@@ -3,14 +3,11 @@
using ActionGameFramework.Audio;
using ActionGameFramework.Health;
using Core.Health;
using TowerDefense.Agents;
using TowerDefense.Targetting;
using TowerDefense.Towers;
using TowerDefense.Towers.Projectiles;
using UnityEngine;
using KTGMGemClient;
using TowerDefense.Towers.TowerLaunchers;
using TowerDefense.Level;
namespace TowerDefense.Affectors
{
@@ -56,12 +53,16 @@
        /// </summary>
        public int maxAttackNum = 1;
        /// <summary>
        /// The fire rate in fires-per-second
        /// </summary>
        public float fireRate;
        [SerializeField]
        private float projectileFireRate;
        public float FireRate
        {
            get { return 1 / GetFireDuration(); }
        }
        /// <summary>
        /// 是否木属性数据
@@ -135,6 +136,27 @@
        protected float freezeBreathBackTimer = 0;
        private int towerAttributeId;
        /// <summary>
        /// 火精灵技能固定攻击倍速
        /// </summary>
        /// <value></value>
        protected float fireSpeed { get; set; } = 5f;
        /// <summary>
        /// 火精灵攻击最终攻击倍速,里面计算了buff增加的倍速
        /// </summary>
        /// <value></value>
        public float finalFireSpeed
        {
            get
            {
                FireRateAdd fireRateAdd = (FireRateAdd)EndlessBuffManager.instance.GetBuffInstanceByType(EndlessBuffEffectType.FireRateAdd);
                return fireRateAdd.GetFireSpeedAdd(towerAttributeId);
            }
        }
        /// <summary>
        /// Gets the search rate from the targetter
        /// </summary>
@@ -185,6 +207,15 @@
        public override TowerDefense.Targetting.Targetter GetTargetter()
        {
            return targetter;
        }
        private void Start()
        {
            if (projectile != null)
            {
                Damager damager = projectile.GetComponent<Damager>();
                towerAttributeId = damager.TowerAttributeId;
            }
        }
        /// <summary>
@@ -289,7 +320,7 @@
                if (fillBulletTime <= 0.3f)
                {
                    if (towerPtr && towerPtr.bulletCtl)
                        towerPtr.bulletCtl.resetToMaxBullet();
                        towerPtr.bulletCtl.ResetToMaxBullet();
                }
                if (fillBulletTime <= 0)
@@ -315,11 +346,11 @@
                    if (proint == 10)
                    {
                        fireState = true;
                        fInEnergy = 5.0f;
                        fInEnergy = finalFireSpeed;
                        myTower.SetFireMatSpeed(true);//设置了火宝石快速攻击
                        // 设置多倍攻击速度
                        fBackupTimer = m_FireTimer;
                        m_FireTimer = m_FireTimer / 5.0f;
                        m_FireTimer = m_FireTimer / finalFireSpeed;
                        towerPtr.uiProOffset = 0;
                        towerPtr.PlayEnergyEffect(true);
@@ -356,7 +387,7 @@
                Damager damager = projectile.gameObject.GetComponent<Damager>();
                float finalDamage = damager.damage;
                List<EndlessBuffConfig> list = EndlessBuffManager.instance.GetBuffListByEffectType(EndlessBuffEffectType.Attack, towerPtr.attributeId);
                List<EndlessBuffConfig> list = EndlessBuffManager.instance.GetBuffListByEffectType(EndlessBuffEffectType.AttackAdd, towerPtr.attributeId);
                float ratio = 0;
                float add = 0;
@@ -443,6 +474,15 @@
        }
        /// <summary>
        /// 获取子弹发射时间间隔
        /// </summary>
        public float GetFireDuration()
        {
            DecreaseTowerAttackCD endlessBuff = (DecreaseTowerAttackCD)EndlessBuffManager.instance.GetBuffInstanceByType(EndlessBuffEffectType.DecreaseTowerAttackCD);
            return endlessBuff.GetDecreaseCD(towerPtr.attributeId, 1 / projectileFireRate);
        }
        /// <summary>
        /// Update the timers
        /// </summary>
        protected virtual void Update()
@@ -457,12 +497,12 @@
            if (m_TrackingEnemy != null && m_FireTimer < 0)
            {
                m_FireTimer = 1 / fireRate;
                m_FireTimer = GetFireDuration();
                if (fInEnergy > 0)
                    m_FireTimer /= 5;
                    m_FireTimer /= finalFireSpeed;
                towerLevel.FireSpeed = fInEnergy > 0 ? 5f : 1f;
                towerLevel.FireSpeed = fInEnergy > 0 ? finalFireSpeed : 1f;
                if (towerPtr && towerPtr.bulletCtl != null)
                {
@@ -498,11 +538,13 @@
            if (towerPtr && (towerPtr.bulletCtl != null))
            {
                int bnum = towerPtr.bulletCtl.decBullet();
                // 暴击子弹的数量,如果获得相应buff可能会修改暴击子弹数量
                int critBulletNum = towerPtr.bulletCtl.CritBulletNum;
                if (bnum == 0)
                if (bnum < critBulletNum)
                {
                    //damagerProjectile.damageMulti = 10.0f;
                    fillBulletTime = 2.0f;
                    if (bnum == 0)
                        fillBulletTime = 2.0f;
                    //这里需要替换特效
                    var poolable = Core.Utilities.Poolable.TryGetPoolable<Core.Utilities.Poolable>(woodProjectile_SP);
@@ -511,7 +553,6 @@
                    tmpDamager.damageMulti = 10.0f;
                    tmpDamager.damage = damagerProjectile.damage;
                }
            }
            else
            {
Assets/Scripts/TowerDefense/Agents/Agent.cs
@@ -866,7 +866,8 @@
            if (state == ActionState) return;
            ActionState = state;
            ActionAnimator.SetInteger(paramName, (int)state);
            if (ActionAnimator != null)
                ActionAnimator.SetInteger(paramName, (int)state);
        }
        /// <summary>
@@ -1054,8 +1055,11 @@
        public void PlayOnHitImmediately()
        {
            ChangeState(AgentActionState.GetHit);
            ActionAnimator.Play("GetHit", 0, 0);
            ActionAnimator.Update(0);
            if (ActionAnimator)
            {
                ActionAnimator.Play("GetHit", 0, 0);
                ActionAnimator.Update(0);
            }
        }
        /// <summary>
@@ -1065,26 +1069,6 @@
        {
            if (FireSkillParticle != null)
                FireSkillParticle.Play();
        }
        public void PlayGetHitParticle(int attributeId)
        {
            //这里的id是BallisticAttack上面设置的
            if (attributeId == 10101)
            {
                //10101 火
            }
            else if (attributeId == 20101)
            {
                //20101 水
            }
            else if (attributeId == 30101)
            {
                //30101 木
            }
        }
        public void PlayAttack()
Assets/Scripts/TowerDefense/Level/EndlessBuff.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 329109ad5fef0db448c7e15a0e42f161
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Scripts/TowerDefense/Level/EndlessBuff/CritBulletAdd.cs
New file
@@ -0,0 +1,32 @@
/**
 * 7.木属性精灵暴击子弹数量增加
 * @Author: chenxin
 * @Date: 2020-11-17 15:03:30
 */
namespace KTGMGemClient
{
    public class CritBulletAdd : EndlessBuff
    {
        public override void Handle()
        {
            int max = 1;
            // 从列表中取一个数量最高的
            for (int i = 0; i < BuffList.Count; ++i)
            {
                if (BuffList[i].Config.buff_effect[1] > max)
                    max = BuffList[i].Config.buff_effect[1];
            }
            EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.EndlessCritBulletNumChange, max);
        }
        public override void LoseEffect()
        {
            if (BuffList.Count == 0)
                EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.EndlessCritBulletNumChange, BulletUICtl.defaultCritNum);
            else
                Handle();
        }
    }
}
Assets/Scripts/TowerDefense/Level/EndlessBuff/CritBulletAdd.cs.meta
copy from Assets/Scripts/TowerDefense/Level/EndlessBuffManager.cs.meta copy to Assets/Scripts/TowerDefense/Level/EndlessBuff/CritBulletAdd.cs.meta
File was copied from Assets/Scripts/TowerDefense/Level/EndlessBuffManager.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ae98f435720c34145a1b4019d3893885
guid: 28f7eb731bd0ac84ba3ffbe659ea7794
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
Assets/Scripts/TowerDefense/Level/EndlessBuff/CritDamageAdd.cs
New file
@@ -0,0 +1,30 @@
/**
 * 6.暴击伤害增加
 * @Author: chenxin
 * @Date: 2020-11-17 11:29:29
 */
namespace KTGMGemClient
{
    public class CritDamageAdd : EndlessBuff
    {
        /// <summary>
        /// 根据宝石id获得暴击增加的伤害比率(千分比)
        /// </summary>
        /// <param name="gemId"></param>
        /// <param name="preDamage"></param>
        /// <returns></returns>
        public float GetCritDamageRate(int gemId, float preDamage = 0)
        {
            float ret = preDamage;
            for (int i = 0; i < BuffList.Count; ++i)
            {
                if (!IsEffective(BuffList[i], gemId)) continue;
                ret += BuffList[i].Config.buff_effect[1] / 1000f;
            }
            return ret;
        }
    }
}
Assets/Scripts/TowerDefense/Level/EndlessBuff/CritDamageAdd.cs.meta
copy from Assets/Scripts/TowerDefense/Level/EndlessBuffManager.cs.meta copy to Assets/Scripts/TowerDefense/Level/EndlessBuff/CritDamageAdd.cs.meta
File was copied from Assets/Scripts/TowerDefense/Level/EndlessBuffManager.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ae98f435720c34145a1b4019d3893885
guid: 6aa3c08999d2f9b458450bb13230825a
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
Assets/Scripts/TowerDefense/Level/EndlessBuff/CritProbabilityAdd.cs
New file
@@ -0,0 +1,33 @@
/**
 * 5.暴击率增加
 * @Author: chenxin
 * @Date: 2020-11-17 11:13:33
 */
namespace KTGMGemClient
{
    public class CritProbabilityAdd : EndlessBuff
    {
        /// <summary>
        /// 根据宝石id获取暴击率 已经有的 + buff增加的
        /// </summary>
        /// <param name="gemId">宝石id</param>
        /// <param name="preCrit">已经拥有的暴击率</param>
        /// <returns>0~1</returns>
        public float GetCrit(int gemId, float preCrit = 0)
        {
            float ret = preCrit;
            for (int i = 0; i < BuffList.Count; ++i)
            {
                if (!IsEffective(BuffList[i], gemId)) continue;
                ret += BuffList[i].Config.buff_effect[1] / 1000f;
                if (ret >= 1)
                    break;
            }
            return ret;
        }
    }
}
Assets/Scripts/TowerDefense/Level/EndlessBuff/CritProbabilityAdd.cs.meta
copy from Assets/Scripts/TowerDefense/Level/EndlessBuffManager.cs.meta copy to Assets/Scripts/TowerDefense/Level/EndlessBuff/CritProbabilityAdd.cs.meta
File was copied from Assets/Scripts/TowerDefense/Level/EndlessBuffManager.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ae98f435720c34145a1b4019d3893885
guid: 154074aa1285f0943ab31be023fd74c1
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
Assets/Scripts/TowerDefense/Level/EndlessBuff/DecreaseTowerAttackCD.cs
New file
@@ -0,0 +1,36 @@
/**
 * 4.塔的普通攻击CD减少
 * @Author: chenxin
 * @Date: 2020-11-16 20:19:32
 */
namespace KTGMGemClient
{
    public class DecreaseTowerAttackCD : EndlessBuff
    {
        /// 根据宝石id获得计算好的CD值
        /// </summary>
        /// <param name="gemId">Tower的id</param>
        /// <param name="fireDuration">发射时间间隔</param>
        /// <returns></returns>
        public float GetDecreaseCD(int gemId, float fireDuration)
        {
            float ret = fireDuration;
            for (int i = 0; i < BuffList.Count; ++i)
            {
                if (!IsEffective(BuffList[i], gemId)) continue;
                ret -= BuffList[i].Config.buff_effect[1];
                // 小于下限,就不会再减少了
                if (ret <= BuffList[i].Config.buff_effect[2])
                {
                    ret = BuffList[i].Config.buff_effect[2];
                    break;
                }
            }
            return ret;
        }
    }
}
Assets/Scripts/TowerDefense/Level/EndlessBuff/DecreaseTowerAttackCD.cs.meta
copy from Assets/Scripts/TowerDefense/Level/EndlessBuffManager.cs.meta copy to Assets/Scripts/TowerDefense/Level/EndlessBuff/DecreaseTowerAttackCD.cs.meta
File was copied from Assets/Scripts/TowerDefense/Level/EndlessBuffManager.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ae98f435720c34145a1b4019d3893885
guid: 8f7fdd96d3c38fa4fa95c162131c0a23
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
Assets/Scripts/TowerDefense/Level/EndlessBuff/EndlessBuff.cs
New file
@@ -0,0 +1,62 @@
using System.Collections.Generic;
/**
 * 无尽模式buff基类
 * @Author: chenxin
 * @Date: 2020-11-16 18:21:10
 */
namespace KTGMGemClient
{
    public class EndlessBuff
    {
        public EndlessBuff()
        {
            BuffList = new List<EndlessBuffConfig>();
        }
        /// <summary>
        /// 属于自己这个类别的buff列表
        /// </summary>
        public List<EndlessBuffConfig> BuffList;
        /// <summary>
        /// 添加buff的时候会调用Handle处理函数
        /// </summary>
        public virtual void Handle()
        {
        }
        /// <summary>
        /// 当buff失效时会调用次函数
        /// </summary>
        public virtual void LoseEffect()
        {
        }
        /// <summary>
        /// 判断buff是否生效
        /// </summary>
        /// <param name="gemId"></param>
        protected bool IsEffective(EndlessBuffConfig buffData, int gemId)
        {
            bool isEffective = false;
            switch (buffData.UseTarget)
            {
                case EndlessBuffUseTarget.All:
                    isEffective = true;
                    break;
                case EndlessBuffUseTarget.Element:
                    isEffective = gemId == buffData.Config.target_type[1];
                    break;
                case EndlessBuffUseTarget.Designated:
                    isEffective = gemId == buffData.Config.target_type[1];
                    break;
            }
            return isEffective;
        }
    }
}
Assets/Scripts/TowerDefense/Level/EndlessBuff/EndlessBuff.cs.meta
copy from Assets/Scripts/TowerDefense/Level/EndlessBuffManager.cs.meta copy to Assets/Scripts/TowerDefense/Level/EndlessBuff/EndlessBuff.cs.meta
File was copied from Assets/Scripts/TowerDefense/Level/EndlessBuffManager.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ae98f435720c34145a1b4019d3893885
guid: 90326ea10f243394d832e053a005ba58
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
Assets/Scripts/TowerDefense/Level/EndlessBuff/EndlessBuffManager.cs
File was renamed from Assets/Scripts/TowerDefense/Level/EndlessBuffManager.cs
@@ -1,10 +1,8 @@
using Core.Utilities;
using System.Collections.Generic;
using KTGMGemClient;
using UnityEngine;
using TowerDefense.Towers;
namespace TowerDefense.Level
namespace KTGMGemClient
{
    /// <summary>
    /// 无尽模式buff管理器
@@ -16,9 +14,28 @@
        /// </summary>
        public List<EndlessBuffConfig> BuffList;
        /// <summary>
        /// buff处理类实例列表
        /// </summary>
        private List<EndlessBuff> instanceList;
        private void Start()
        {
            BuffList = new List<EndlessBuffConfig>();
            // 新增buff,需要把实例添加进来
            instanceList = new List<EndlessBuff>()
            {
                // 攻击力增加的buff没有什么需要处理的,如果需要新写个类继承EndlessBuff即可
                new EndlessBuff(),
                new GoldAdd(),
                new ObtainTower(),
                new DecreaseTowerAttackCD(),
                new CritProbabilityAdd(),
                new CritDamageAdd(),
                new CritBulletAdd(),
                new SlowDown(),
                new FireRateAdd()
            };
        }
        /// <summary>
@@ -26,28 +43,24 @@
        /// </summary>
        public void AddBuff(EndlessBuffConfig buff)
        {
            if (buff.LifeCycleType == EndlessBuffLifeCycleType.Once)
            {
                switch (buff.EffectType)
                {
                    case EndlessBuffEffectType.Gold:
                        // 一次性增加金币
                        EndlessLevelManager.instance.Currency.AddCurrency(buff.Config.buff_effect[1]);
                        break;
                    case EndlessBuffEffectType.ObtainTower:
                        // 是否到了技能时间
                        bool canSkill = EndlessUIStart.instance.GameStartTime <= EndlessRandomTower.SKILL_TOWER_TIME;
                        Tower newTower = EndlessRandomTower.instance.GetRandomTower(canSkill);
            ++buff.SelectCount;
                        if (!EndlessRandomTower.instance.RandomPlaceTower(newTower, buff.Config.buff_effect[1] - 1, 0))
                            EndlessLevelManager.instance.Currency.AddCurrency(buff.Config.buff_effect[2]);
                        break;
                }
                return;
            }
            // 0表示只要被选择过,以后就不再出现了
            if (buff.Config.is_repeated == 0)
                EndlessBuffData.RemoveFromBuffPool(buff.Config.id);
            BuffList.Add(buff);
            EndlessBuff endlessBuff = GetBuffInstanceByType((EndlessBuffEffectType)buff.Config.buff_effect[0]);
            endlessBuff.BuffList.Add(buff);
            endlessBuff.Handle();
            // 如果是一次性生效的buff,直接移除掉
            if (buff.LifeCycleType == EndlessBuffLifeCycleType.Once)
            {
                endlessBuff.BuffList.Remove(buff);
                RemoveBuff(buff);
            }
        }
        /// <summary>
@@ -57,6 +70,8 @@
        public void RemoveBuff(EndlessBuffConfig buff)
        {
            BuffList.Remove(buff);
            EndlessBuff endlessBuff = GetBuffInstanceByType((EndlessBuffEffectType)buff.Config.buff_effect[0]);
            endlessBuff.LoseEffect();
        }
        /// <summary>
@@ -77,7 +92,7 @@
                    if (BuffList[i].TackEffectWaves >= BuffList[i].TotalEffectWaves)
                    {
                        // 超过波次数量限制,移除掉
                        BuffList.Remove(BuffList[i]);
                        RemoveBuff(BuffList[i]);
                        len = BuffList.Count;
                    }
                }
@@ -123,5 +138,15 @@
            return ret;
        }
        /// <summary>
        /// 根据buff类型获得buff处理类实例
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        public EndlessBuff GetBuffInstanceByType(EndlessBuffEffectType type)
        {
            return instanceList[(int)type - 1];
        }
    }
}
Assets/Scripts/TowerDefense/Level/EndlessBuff/EndlessBuffManager.cs.meta
copy from Assets/Scripts/TowerDefense/Level/EndlessBuffManager.cs.meta copy to Assets/Scripts/TowerDefense/Level/EndlessBuff/EndlessBuffManager.cs.meta
File was copied from Assets/Scripts/TowerDefense/Level/EndlessBuffManager.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ae98f435720c34145a1b4019d3893885
guid: 3a3de143fa3c8274aa2c0e6439474690
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
Assets/Scripts/TowerDefense/Level/EndlessBuff/FireRateAdd.cs
New file
@@ -0,0 +1,29 @@
/**
 * 9.火精灵塔攻击速度增加(充能满后触发的的攻速)
 * @Author: chenxin
 * @Date: 2020-11-17 15:21:25
 */
namespace KTGMGemClient
{
    public class FireRateAdd : EndlessBuff
    {
        /// <summary>
        /// 获取buff增加的攻击倍速
        /// </summary>
        /// <param name="gemId"></param>
        public float GetFireSpeedAdd(int gemId)
        {
            float max = 0;
            for (int i = 0; i < BuffList.Count; ++i)
            {
                if (!IsEffective(BuffList[i], gemId)) continue;
                if (BuffList[i].Config.buff_effect[1] > max)
                    max = BuffList[i].Config.buff_effect[1];
            }
            return max;
        }
    }
}
Assets/Scripts/TowerDefense/Level/EndlessBuff/FireRateAdd.cs.meta
File was renamed from Assets/Scripts/TowerDefense/Level/EndlessBuffManager.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ae98f435720c34145a1b4019d3893885
guid: 040afe2ba7c935e45b567d52ba380874
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
Assets/Scripts/TowerDefense/Level/EndlessBuff/GoldAdd.cs
New file
@@ -0,0 +1,18 @@
using TowerDefense.Level;
/**
 * 2.金币增加buff
 * @Author: chenxin
 * @Date: 2020-11-16 18:33:00
 */
namespace KTGMGemClient
{
    public class GoldAdd : EndlessBuff
    {
        public override void Handle()
        {
            // 一次性增加金币
            EndlessLevelManager.instance.Currency.AddCurrency(BuffList[BuffList.Count - 1].Config.buff_effect[1]);
        }
    }
}
Assets/Scripts/TowerDefense/Level/EndlessBuff/GoldAdd.cs.meta
copy from Assets/Scripts/TowerDefense/Level/EndlessBuffManager.cs.meta copy to Assets/Scripts/TowerDefense/Level/EndlessBuff/GoldAdd.cs.meta
File was copied from Assets/Scripts/TowerDefense/Level/EndlessBuffManager.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ae98f435720c34145a1b4019d3893885
guid: 47ec5fb46c670934db6c4104d899ae9e
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
Assets/Scripts/TowerDefense/Level/EndlessBuff/ObtainTower.cs
New file
@@ -0,0 +1,21 @@
using TowerDefense.Towers;
using TowerDefense.Level;
/**
 * 3.随机获得一个塔
 * @Author: chenxin
 * @Date: 2020-11-16 19:30:39
 */
namespace KTGMGemClient
{
    public class ObtainTower : EndlessBuff
    {
        public override void Handle()
        {
            Tower newTower = EndlessRandomTower.instance.GetRandomTower(EFeatureTower.NULL, true);
            if (!EndlessRandomTower.instance.RandomPlaceTower(newTower, BuffList[BuffList.Count - 1].Config.buff_effect[1] - 1, 0))
                EndlessLevelManager.instance.Currency.AddCurrency(BuffList[BuffList.Count - 1].Config.buff_effect[2]);
        }
    }
}
Assets/Scripts/TowerDefense/Level/EndlessBuff/ObtainTower.cs.meta
copy from Assets/Scripts/TowerDefense/Level/EndlessBuffManager.cs.meta copy to Assets/Scripts/TowerDefense/Level/EndlessBuff/ObtainTower.cs.meta
File was copied from Assets/Scripts/TowerDefense/Level/EndlessBuffManager.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ae98f435720c34145a1b4019d3893885
guid: 31ed5f99ae116cc4eb9df2721baa7e0d
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
Assets/Scripts/TowerDefense/Level/EndlessBuff/SlowDown.cs
New file
@@ -0,0 +1,28 @@
/**
 * 8.水精灵减速比例增加
 * @Author: chenxin
 * @Date: 2020-11-17 14:08:27
 */
namespace KTGMGemClient
{
    public class SlowDown : EndlessBuff
    {
        /// <summary>
        /// 根据宝石id获得buff增加的减速比例
        /// </summary>
        /// <param name="gemId"></param>
        public float GetSlowDownAdd(int gemId)
        {
            float ret = 0;
            for (int i = 0; i < BuffList.Count; ++i)
            {
                if (!IsEffective(BuffList[i], gemId)) continue;
                ret += BuffList[i].Config.buff_effect[1];
            }
            return ret;
        }
    }
}
Assets/Scripts/TowerDefense/Level/EndlessBuff/SlowDown.cs.meta
copy from Assets/Scripts/TowerDefense/Level/EndlessBuffManager.cs.meta copy to Assets/Scripts/TowerDefense/Level/EndlessBuff/SlowDown.cs.meta
File was copied from Assets/Scripts/TowerDefense/Level/EndlessBuffManager.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ae98f435720c34145a1b4019d3893885
guid: 2c94450c223f94047b031e1cf1f492d3
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGridEndless.cs
@@ -589,12 +589,25 @@
            // Precalculate inverted grid size, to save a division every time we translate coords
            m_InvGridSize = 1 / gridSize;
            SetUpGrid();
            // 初始化格子对应的屏幕坐标数据 延迟执行
            Invoke("preCalculateGridUIPos", 0.3f);
            //preCalculateGridUIPos();
            EventCenter.Ins.Add<int>((int)KTGMGemClient.EventType.EndlessCritBulletNumChange, OnCritBulletNumChange);
        }
        /// <summary>
        /// 木属性暴击子弹数量改变
        /// </summary>
        /// <param name="count"></param>
        private void OnCritBulletNumChange(int count)
        {
            for (int i = 0; i < dimensions.x; ++i)
            {
                for (int j = 0; j < AttackRowNumbers; ++j)
                {
                    arrTowerBulletUi[i, j].CritBulletNum = count;
                }
            }
        }
        /// <summary>
@@ -774,7 +787,7 @@
                    arrTowerEnergyEffect[x, y] = Instantiate(energyEffectPrefab);
                    arrTowerEnergyEffect[x, y].transform.position = vpos;
                    // 创建水精灵充能条
                    img = Instantiate(FreezeBreathChargePrefab);
                    img.transform.SetParent(container.transform);
Assets/Scripts/TowerDefense/Towers/Projectiles/BallisticAttack.cs
@@ -43,7 +43,6 @@
            {
                case SpawnAgentType.Normal:
                    HandleNormal(enemy);
                    (enemy as Agent).PlayGetHitParticle(attributeId);
                    break;
                case SpawnAgentType.BubbleBomb:
                    HandleBubbleBomb(enemy);
@@ -84,32 +83,42 @@
        }
        /// <summary>
        /// 判断本次伤害是否暴击
        /// </summary>
        /// <returns></returns>
        private bool IsCrit()
        {
            CritProbabilityAdd critProbabilityAdd = (CritProbabilityAdd)EndlessBuffManager.instance.GetBuffInstanceByType(EndlessBuffEffectType.CritProbabilityAdd);
            float crit = critProbabilityAdd.GetCrit(damager.TowerAttributeId);
            float random = UnityEngine.Random.Range(0, 1f);
            return random <= crit;
        }
        /// <summary>
        /// 获取暴击伤害增加比率
        /// </summary>
        /// <returns></returns>
        private float GetCritDamageRate()
        {
            CritDamageAdd critDamageAdd = (CritDamageAdd)EndlessBuffManager.instance.GetBuffInstanceByType(EndlessBuffEffectType.CritDamageAdd);
            return critDamageAdd.GetCritDamageRate(damager.TowerAttributeId);
        }
        /// <summary>
        /// 处理普通小怪和boss收到的伤害
        /// </summary>
        /// <param name="enemy"></param>
        private void HandleNormal(Targetable enemy)
        {
            float finalDamage = damager.finalDamage;
            // bool crit = damager.isCrit;
            bool crit = false;
            // if (crit)
            //     finalDamage += finalDamage;
            // 精英怪和Boss双倍攻击.
            bool doubleHit = false;
            // bool doubleHit = damager.doubleHit && enemy.bElit;
            // if (doubleHit)
            //     finalDamage *= 2;
            // 处理光塔对应的攻击增加:
            if (attackRise > 0)
                finalDamage += (finalDamage * attackRise);
            // 破甲状态
            if (enemy.bShieldBreak)
                finalDamage += (finalDamage * 0.1f);
            bool crit = IsCrit();
            // 处理PVE无尽模式,buff增加的伤害
            finalDamage += ProcessEndlessBuffAttack(finalDamage);
            if (crit)
                finalDamage *= 1 + GetCritDamageRate();
            int deathCount = 0;
@@ -137,9 +146,9 @@
            if (!enemy.opponentAgent)
            {
                if (GameUI.instanceExists)
                    GameUI.instance.generateBloodText(backPos, finalDamage, crit, doubleHit);
                    GameUI.instance.generateBloodText(backPos, finalDamage, crit);
                else if (EndlessGameUI.instanceExists)
                    EndlessGameUI.instance.generateBloodText(backPos, finalDamage, crit, doubleHit);
                    EndlessGameUI.instance.generateBloodText(backPos, finalDamage, crit);
            }
            // 播放受击动画:
@@ -156,7 +165,7 @@
            // 非无尽模式
            if (!EndlessBuffManager.instanceExists) return 0;
            List<EndlessBuffConfig> list = EndlessBuffManager.instance.GetBuffListByEffectType(EndlessBuffEffectType.Attack, attributeId);
            List<EndlessBuffConfig> list = EndlessBuffManager.instance.GetBuffListByEffectType(EndlessBuffEffectType.AttackAdd, attributeId);
            if (list.Count == 0) return 0;
@@ -183,7 +192,8 @@
            switch (id)
            {
                case 2:  // 减速.
                    enemy.addSpeedSlowRate(0.25f);
                    SlowDown slowDown = (SlowDown)EndlessBuffManager.instance.GetBuffInstanceByType(EndlessBuffEffectType.SlowDown);
                    enemy.addSpeedSlowRate(0.25f + slowDown.GetSlowDownAdd(damager.TowerAttributeId));
                    enemy.SetTargetableMatColor(Color.blue);
                    break;
                case 3:  // 中毒
Assets/Scripts/TowerDefense/Towers/Tower.cs
@@ -380,7 +380,7 @@
                // 设置数据
                buc.gameObject.SetActive(true);
                bulletCtl = buc;
                buc.resetToMaxBullet();
                buc.ResetToMaxBullet();
            }
            else
            {
Assets/Scripts/TowerDefense/Towers/TowerFireTrigger.cs
@@ -1,5 +1,3 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TowerDefense.Affectors;
@@ -21,15 +19,15 @@
        public void OnFire()
        {
            // cx test
            // if (!isStart)
            // {
            //     isStart = true;
            // }
            // else
            // {
            //     Debug.Log($"--------------------- {duration} ---------------------");
            //     duration = 0;
            // }
            //     if (!isStart)
            //     {
            //         isStart = true;
            //     }
            //     else
            //     {
            //         Debug.Log($"--------------------- {duration} ---------------------");
            //         duration = 0;
            //     }
            Affector.FireProjectile();
        }
Assets/Scripts/TowerDefense/Towers/TowerLaunchers/HitscanLauncher.cs
@@ -91,7 +91,7 @@
            float delayAttack = 0.0f;
            if (aaf)
            {
                float attackRate = aaf.fireRate;
                float attackRate = aaf.FireRate;
                if (attackRate > 0)
                    delayAttack = 1.0f / attackRate;
            }
Assets/Scripts/TowerDefense/Towers/TowerLevel.cs
@@ -195,15 +195,18 @@
            {
                effect.Initialize(alignment, mask);
                effect.towerPtr = tower;
                AttackAffector attackAffector = effect.GetComponent<AttackAffector>();
                if (attackAffector.projectile != null)
                {
                    Damager damager = attackAffector.projectile.gameObject.GetComponent<Damager>();
                    damager.TowerAttributeId = tower.attributeId;
                }
            }
            m_ParentTower = tower;
            Transform starTs = transform.Find("Star");
            starTs.localPosition = new Vector3(0, 0.2f, 0.6f);
            starTs.localRotation = Quaternion.Euler(60, 180, 0);
            // Vector3 parentScale = transform.parent.transform.localScale;
            // Vector3 tmpScale = new Vector3(0.72f, 0.5f, 0.5f);
            // starTs.localScale = tmpScale * (6 / parentScale.x);
        }
        private Transform mat;
@@ -216,7 +219,10 @@
            mat = transform.Find("Cube");
            myRender = mat.GetComponent<MeshRenderer>();
            normalScale = new Vector3(1.5f, 1.5f, 1.5f);
        }
        private void Start()
        {
            if (ActionAnimator != null)
            {
                AnimationClip[] clips = ActionAnimator.runtimeAnimatorController.animationClips;
@@ -232,7 +238,7 @@
                GameObject affectorObj = transform.Find("Affector").gameObject;
                AttackAffector attackAffector = affectorObj.GetComponent<AttackAffector>();
                fireRate = attackAffector.fireRate;
                fireRate = attackAffector.FireRate;
                if (actionTimeArr[1] > 1 / fireRate)
                {
@@ -240,33 +246,36 @@
                    attackSpeed = actionTimeArr[1] * fireRate;
                }
                SetAttackState(false);
            }
        }
        public void LateUpdate()
        {
            if (ActionAnimator != null && ActionAnimator.isActiveAndEnabled)
            {
                AnimatorStateInfo stateInfo = ActionAnimator.GetCurrentAnimatorStateInfo(0);
            if (ActionAnimator == null || !ActionAnimator.isActiveAndEnabled) return;
                if (ActionState == TowerActionState.Attack && stateInfo.normalizedTime >= 0.9f)
                    ChangeState(TowerActionState.Standing);
            }
            AnimatorStateInfo stateInfo = ActionAnimator.GetCurrentAnimatorStateInfo(0);
            if (ActionState == TowerActionState.Attack && stateInfo.normalizedTime >= 1f)
                ChangeState(TowerActionState.Standing);
        }
        public void ChangeState(TowerActionState state)
        {
            if (ActionAnimator == null || ActionState == state) return;
            if (ActionAnimator == null || !ActionAnimator.isActiveAndEnabled) return;
            ActionState = state;
            if (ActionState == TowerActionState.Attack && state == TowerActionState.Attack)
            {
                ActionAnimator.Update(0);
                ActionAnimator.Play("Attack", 0, 0);
            }
            ActionAnimator.SetInteger(paramName, (int)state);
            if (state == TowerActionState.Attack)
                ActionAnimator.speed = attackSpeed * FireSpeed;
            else if (state == TowerActionState.Standing)
                ActionAnimator.speed = 1f;
            ActionAnimator.SetInteger(paramName, (int)state);
        }
        /// <summary>
@@ -435,7 +444,7 @@
                var attack = affector as AttackAffector;
                if (attack != null && attack.damagerProjectile != null)
                {
                    dps += attack.GetProjectileDamage() * attack.fireRate;
                    dps += attack.GetProjectileDamage() * attack.FireRate;
                }
            }
            return dps;
Assets/Scripts/TowerDefense/UI/BulletUICtl.cs
@@ -1,19 +1,10 @@
using DG.Tweening;
using Protobuf;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine;
/// <summary>
/// 子弹充能对应的数据结构.
/// </summary>
public class BulletUICtl : MonoBehaviour
{
    public SpriteRenderer bulletScaleMask;
    public float fAdjValue;
    /// <summary>
    /// 最大子弹数目.
    /// </summary>
@@ -24,18 +15,48 @@
    /// </summary>
    protected int curBulletNum;
    private float[] scaleArr = { 0, 0.16f, 0.32f, 0.48f, 0.64f, 0.8f, 1f };
    private int critNum = 3;
    private float[] yArr = { 0.4f, 0.377f, 0.307f, 0.227f, 0.153f, 0.074f, 0 };
    /// <summary>
    /// 默认的暴击子弹数量
    /// </summary>
    public static int defaultCritNum { get; private set; }
    private float gap = 0.15f;
    /// <summary>
    /// 暴击子弹数量
    /// </summary>
    /// <value></value>
    public int CritBulletNum
    {
        get { return critNum; }
        set
        {
            if (value < 1) value = 1;
            else if (value > maxBulletNum) value = maxBulletNum;
            critNum = value;
            UpdateBulletType();
        }
    }
    /// <summary>
    /// 子弹底图
    /// </summary>
    public SpriteRenderer[] BottomArr;
    public SpriteRenderer[] BulletArr;
    public Sprite NormalSprite;
    public Sprite CritSprite;
    // Start is called before the first frame update
    void Start()
    {
        resetToMaxBullet();
        defaultCritNum = critNum;
        ResetToMaxBullet();
        UpdateBulletType();
    }
    /// <summary>
    /// 获取进度条进度.
@@ -43,28 +64,28 @@
    /// <returns></returns>
    public int GetCtlProgress()
    {
        return this.curBulletNum;
        return curBulletNum;
    }
    /// <summary>
    /// 设置进度.
    /// </summary>
    /// <param name="pro"></param>
    public void SetCtlProcess( int pro)
    public void SetCtlProcess(int pro)
    {
        this.curBulletNum = pro;
        this.updateBulletUI(pro, maxBulletNum);
        curBulletNum = pro;
        updateBulletUI(pro, maxBulletNum);
    }
    /// <summary>
    /// 重设子弹数目到最大.
    /// </summary>
    public void resetToMaxBullet()
    public void ResetToMaxBullet()
    {
        if (this.curBulletNum == maxBulletNum) return;
        this.curBulletNum = maxBulletNum;
        this.updateBulletUI(curBulletNum, maxBulletNum);
        if (curBulletNum == maxBulletNum) return;
        curBulletNum = maxBulletNum;
        updateBulletUI(curBulletNum, maxBulletNum);
    }
    /// <summary>
@@ -73,32 +94,52 @@
    /// <returns></returns>
    public int decBullet()
    {
        if (this.curBulletNum <= 0) return 0;
        this.curBulletNum--;
        this.updateBulletUI(curBulletNum, maxBulletNum);
        if (curBulletNum <= 0) return 0;
        curBulletNum--;
        updateBulletUI(curBulletNum, maxBulletNum);
        return curBulletNum;
    }
    /// <summary>
    /// 更新子弹界面对应的缩放信息
    /// 更新子弹显示
    /// </summary>
    /// <param name="curBNum"></param>
    /// <param name="totalBNum"></param>
    public void updateBulletUI( int curBNum,int totalBNum)
    public void updateBulletUI(int curBNum, int totalBNum)
    {
        if (bulletScaleMask == null) return;
        // 隐藏的子弹数量
        int hideCount = maxBulletNum - curBNum;
        Vector3 pos = bulletScaleMask.transform.localPosition;
        pos.y = yArr[maxBulletNum - curBulletNum];
        bulletScaleMask.transform.localPosition = pos;
        Vector3 s = bulletScaleMask.transform.localScale;
        s.y = scaleArr[maxBulletNum - curBulletNum];
        bulletScaleMask.transform.localScale = s;
        for (int i = 0; i < BulletArr.Length; ++i)
        {
            if (hideCount > 0)
            {
                --hideCount;
                BulletArr[i].enabled = false;
            }
            else
                BulletArr[i].enabled = true;
        }
    }
    // Update is called once per frame
    void Update()
    /// <summary>
    /// 更新子弹类型
    /// </summary>
    private void UpdateBulletType()
    {
        int count = critNum;
        for (int i = BulletArr.Length - 1; i >= 0; --i)
        {
            if (count > 0)
            {
                --count;
                BulletArr[i].sprite = CritSprite;
            }
            else
                BulletArr[i].sprite = NormalSprite;
        }
    }
}
Assets/Scripts/TowerDefense/UI/EndlessBuffPreview.cs
@@ -57,7 +57,7 @@
            for (int i = 0; i < buffList.Count; ++i)
            {
                // 只统计了加攻击力的
                if (buffList[i].EffectType != EndlessBuffEffectType.Attack) continue;
                if (buffList[i].EffectType != EndlessBuffEffectType.AttackAdd) continue;
                switch (buffList[i].UseTarget)
                {
Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs
@@ -109,6 +109,8 @@
        /// </summary>
        public Button randomTowerBtn;
        public Button SkillTowerBtn;
        /// <summary>
        /// 飘血数字对应的prefab.
        /// </summary>
@@ -128,6 +130,8 @@
        /// 购买塔防按钮上的Text.
        /// </summary>
        protected TextMeshProUGUI towerPriceText;
        protected TextMeshProUGUI towerPriceText1;
        protected bool tdBuyDisable = false;
@@ -731,13 +735,13 @@
        /// <param name="tower"></param>
        protected void growUpTower(Tower tower)
        {
            Tower newTower = EndlessRandomTower.instance.GetRandomTower(false);
            Tower newTower = EndlessRandomTower.instance.GetRandomTower(EFeatureTower.NULL, true);
            // 所有的Tower不能升级成为FeatureTower.
            int maxLoop = 20;
            while (newTower.towerFeature != EFeatureTower.NULL)
            {
                newTower = EndlessRandomTower.instance.GetRandomTower(false);
                newTower = EndlessRandomTower.instance.GetRandomTower(EFeatureTower.NULL, true);
                maxLoop--;
                if (maxLoop <= 0)
                {
@@ -1030,7 +1034,7 @@
            {
                if (!TryPlaceTower(pointerInfo, false, true))
                {
                   CancelPlaceTower(pointerInfo);
                    CancelPlaceTower(pointerInfo);
                    Debug.Log("这里需要返回原位");
                    return;
@@ -1770,12 +1774,16 @@
            if (!towerPriceText)
            {
                towerPriceText = randomTowerBtn.transform.Find("cashText").GetComponent<TextMeshProUGUI>();
                towerPriceText1 = SkillTowerBtn.transform.Find("cashText").GetComponent<TextMeshProUGUI>();
                if (towerPriceText)
                    towerPriceText.text = tpMgr.currentTowerPrice.ToString();
                if (towerPriceText1)
                    towerPriceText1.text = tpMgr.currentTowerPrice.ToString();
            }
            else
            {
                towerPriceText.text = tpMgr.currentTowerPrice.ToString();
                towerPriceText1.text = tpMgr.currentTowerPrice.ToString();
            }
            // 无法支付新的塔防价格,按钮变灰.
@@ -1795,6 +1803,7 @@
            if (towerPriceText)
            {
                towerPriceText.color = new Color(0.5f, 0.5f, 0.5f);
                towerPriceText1.color = new Color(0.5f, 0.5f, 0.5f);
            }
            tdBuyDisable = true;
        }
@@ -1810,7 +1819,10 @@
                return;
            if (towerPriceText)
            {
                towerPriceText.color = new Color(1.0f, 1.0f, 1.0f);
                towerPriceText1.color = new Color(1.0f, 1.0f, 1.0f);
            }
            if (randomTowerBtn)
            {
Assets/Scripts/TowerDefense/UI/HUD/EndlessRandomTower.cs
@@ -14,15 +14,7 @@
    // 当前类所在的Btn.
    public Button randomBtn;
    /// <summary>
    /// 倒计时对应的背景图片.
    /// </summary>
    public Image cdTimeBg;
    /// <summary>
    /// 倒计划对应的文字.
    /// </summary>
    public TextMeshProUGUI cdTimeText;
    public Button skillBtn;
    /// <summary>
    /// 购买二级宝石的按钮贴图.
@@ -86,24 +78,26 @@
        bSetBuyLvlUp = false;
        bCdTimeStart = false;
        cdTimeBg.gameObject.SetActive(false);
        cdTimeText.text = "";
        randomBtn.onClick.AddListener(onClick);
        randomBtn.onClick.AddListener(delegate () { onClick(EFeatureTower.NULL); });
        skillBtn.onClick.AddListener(delegate () { onClick(EFeatureTower.Skill_Bomb); });
    }
    public void ChangeBtnClickNormal()
    {
        randomBtn.onClick.RemoveAllListeners();
        randomBtn.onClick.AddListener(onClick);
        skillBtn.onClick.RemoveAllListeners();
        randomBtn.onClick.AddListener(delegate () { onClick(EFeatureTower.NULL); });
        skillBtn.onClick.AddListener(delegate () { onClick(EFeatureTower.Skill_Bomb); });
    }
    public void ChangeBtnClick()
    {
        randomBtn.onClick.RemoveAllListeners();
        skillBtn.onClick.RemoveAllListeners();
        randomBtn.onClick.AddListener(() =>
        {
            AudioSourceManager.Ins.Play(AudioEnum.UIDisable);
        });
        skillBtn.onClick.AddListener(() =>
        {
            AudioSourceManager.Ins.Play(AudioEnum.UIDisable);
        });
@@ -129,14 +123,11 @@
        {
            bCdTimeStart = true;
            btnLvlUpCdTime = LEVELUP_TOWER_TIME - gstime;
            cdTimeBg.gameObject.SetActive(true);
        }
        if ((!bSetBuyLvlUp) && (gstime > LEVELUP_TOWER_TIME))
        {
            bSetBuyLvlUp = true;
            this.randomBtn.GetComponent<Image>().sprite = buyBtnLevelUp;
            cdTimeBg.gameObject.SetActive(false);
            cdTimeText.text = "";
        }
        // 更新倒计时:
@@ -144,7 +135,6 @@
        {
            btnLvlUpCdTime -= Time.deltaTime;
            string distr = ((int)Math.Ceiling(btnLvlUpCdTime)).ToString() + "s";
            cdTimeText.text = distr;
        }
    }
@@ -194,7 +184,7 @@
            if (name == this.towerArray[ti].towerName)
                return towerArray[ti];
        return GetRandomTower(false);
        return GetRandomTower(EFeatureTower.NULL, true);
    }
    /// <summary>
@@ -222,81 +212,34 @@
    /// <summary>
    /// 根据规则生成一个随机的塔
    /// </summary>
    /// <param name="onlySpawnElf">是否仅产生精灵宝石,而不产生技能宝石</param>
    /// <returns></returns>
    public Tower GetRandomTower(bool onlySpawnElf = true)
    public Tower GetRandomTower(EFeatureTower towerType, bool isRandom)
    {
        if (!isInitFightData)
        int[] indexArr = { 0, 1, 2, 3, 4 };
        if (!isRandom)
        {
            isInitFightData = true;
            weightList = new List<int>();
            List<posWeight> posWeight = JsonDataCenter.GetList<posWeight>();
            randomTotalWeight = 0;
            for (int i = 0; i < posWeight.Count; ++i)
            if (towerType == EFeatureTower.NULL)
            {
                weightList.Add(posWeight[i].weight);
                randomTotalWeight += posWeight[i].weight;
                // 只获得普通宝石
                indexArr = new int[] { 0, 1, 2 };
            }
            // 游戏开始之前先把出站组乱序
            GameUtils.Shuffle(towerArray);
            else
            {
                // 只获得技能宝石
                indexArr = new int[] { 3, 4 };
            }
        }
        Tower ret = null;
        int random = UnityEngine.Random.Range(0, indexArr.Length);
        // 还没到技能时间,忽略掉技能宝石
        if (onlySpawnElf)
        {
            // 精灵宝石位置索引列表
            List<int> elfIndexList = new List<int>();
            for (int i = 0; i < towerArray.Count; ++i)
            {
                if (towerArray[i].towerFeature == EFeatureTower.NULL)
                    elfIndexList.Add(i);
            }
            // 没有上阵精灵宝石
            if (elfIndexList.Count == 0)
            {
                Debug.LogError("--------------------- 没有上阵精灵宝石 ---------------------");
                return null;
            }
            // 计算所有精灵宝石位置的总权重
            int elfTotalWeight = 0;
            // 精灵宝石位置权重列表
            List<int> elfWeightList = new List<int>();
            for (int i = 0; i < elfIndexList.Count; ++i)
            {
                elfTotalWeight += weightList[elfIndexList[i]];
                elfWeightList.Add(weightList[elfIndexList[i]]);
            }
            // 所有精灵宝石位置的权重都为0,直接等概率出一个精灵宝石
            int index = elfTotalWeight == 0 ? mRandom.Next(0, elfIndexList.Count) : GetRandomIndex(elfWeightList, elfTotalWeight);
            ret = towerArray[elfIndexList[index]];
        }
        // 可以自由产生
        else
        {
            int index = randomTotalWeight == 0 ? mRandom.Next(0, towerArray.Count) : GetRandomIndex(weightList, randomTotalWeight);
            ret = towerArray[index];
        }
        // 生成宝石成功,需要调整宝石位置,把宝石放到队尾
        towerArray.Remove(ret);
        towerArray.Add(ret);
        return ret;
        return towerArray[indexArr[random]];
    }
    /// <summary>
    /// 随机购买Tower的入口,如果购买成功,则需要实时更新价格
    /// </summary>
    public void onClick()
    public void onClick(EFeatureTower towerType)
    {
        if (GameConfig.IsNewbie && !GameConfig.CanBuyNewTower)
        {
@@ -307,13 +250,10 @@
        AudioSourceManager.Ins.Play(AudioEnum.UI);
        // 还没到技能时间,忽略掉技能宝石
        Tower newTower = GetRandomTower(EndlessUIStart.instance.GameStartTime <= SKILL_TOWER_TIME);
        Tower newTower = GetRandomTower(towerType, false);
        if (!newTower)
            throw new Exception("未能成功产生Tower");
        if (newTower.towerFeature == EFeatureTower.NULL)
        {
Assets/StreamingAssets/Table/endless_buff.json
@@ -1 +1 @@
[[1,"低级火灵之力",[2,1],[1,10,0],-1,"增加全体火精灵10%攻击力",0,99,10001,1],[2,"低级水灵之力",[2,2],[1,10,0],-1,"增加全体水精灵10%攻击力",0,99,10002,1],[3,"低级木灵之力",[2,3],[1,10,0],-1,"增加全体木精灵10%攻击力",0,99,10003,1],[4,"火灵之力",[2,1],[1,15,0],-1,"增加全体火精灵15%攻击力",4,99,10001,2],[5,"水灵之力",[2,2],[1,15,0],-1,"增加全体水精灵15%攻击力",4,99,10002,2],[6,"木灵之力",[2,3],[1,15,0],-1,"增加全体木精灵15%攻击力",4,99,10003,2],[7,"高级火灵之力",[2,1],[1,20,0],-1,"增加全体火精灵20%攻击力",7,99,10001,3],[8,"高级水灵之力",[2,2],[1,20,0],-1,"增加全体水精灵20%攻击力",7,99,10002,3],[9,"高级木灵之力",[2,3],[1,20,0],-1,"增加全体木精灵20%攻击力",7,99,10003,3],[10,"精灵之力",[1,0],[1,50,0],2,"2波增加全体精灵50%攻击力",3,99,10004,2],[11,"时空宝石",[1,0],[1,65,0],2,"2波内增加全体精灵65%攻击力",3,99,10005,3],[12,"飞来横财",[0],[2,300,0],0,"增加300金币",0,99,10007,1],[13,"中大奖!",[0],[2,800,0],0,"增加800金币",4,99,10007,3],[14,"精灵魔盒",[0],[3,3,300],0,"随机获得一个3级精灵",99,99,10006,2],[15,"超级精灵魔盒",[0],[3,4,500],0,"随机获得一个4级精灵",99,99,10006,3]]
[[1,"低级火灵之力",[2,1],[1,10,0],-1,"增加全体火精灵10%攻击力",0,99,10001,1,1],[2,"低级水灵之力",[2,2],[1,10,0],-1,"增加全体水精灵10%攻击力",0,99,10002,1,1],[3,"低级木灵之力",[2,3],[1,10,0],-1,"增加全体木精灵10%攻击力",0,99,10003,1,1],[4,"火灵之力",[2,1],[1,15,0],-1,"增加全体火精灵15%攻击力",4,99,10001,2,1],[5,"水灵之力",[2,2],[1,15,0],-1,"增加全体水精灵15%攻击力",4,99,10002,2,1],[6,"木灵之力",[2,3],[1,15,0],-1,"增加全体木精灵15%攻击力",4,99,10003,2,1],[7,"高级火灵之力",[2,1],[1,20,0],-1,"增加全体火精灵20%攻击力",7,99,10001,3,1],[8,"高级水灵之力",[2,2],[1,20,0],-1,"增加全体水精灵20%攻击力",7,99,10002,3,1],[9,"高级木灵之力",[2,3],[1,20,0],-1,"增加全体木精灵20%攻击力",7,99,10003,3,1],[10,"精灵之力",[1,0],[1,50,0],2,"2波增加全体精灵50%攻击力",3,99,10004,2,1],[11,"狂暴之力",[1,0],[1,65,0],2,"2波内增加全体精灵65%攻击力",3,99,10005,3,1],[12,"飞来横财",[0],[2,300,0],0,"增加300金币",0,99,10007,1,1],[13,"中大奖!",[0],[2,800,0],0,"增加800金币",4,99,10007,3,1],[14,"精灵魔盒",[0],[3,3,300],0,"随机获得一个3级精灵",99,99,10006,2,1],[15,"超级精灵魔盒",[0],[3,4,500],0,"随机获得一个4级精灵",99,99,10006,3,1],[16,"时空之力:水",[2,2],[4200500],0,"水精灵攻击间隔-0.2秒",0,99,10002,3,0],[17,"时空之力:火",[2,1],[4200500],0,"火精灵攻击间隔-0.2秒",0,99,10001,3,0],[18,"时空之力:木",[2,3],[4200500],0,"木精灵攻击间隔-0.2秒",0,99,10003,3,0],[19,"狂暴:玉米枪手",[3109],[5,150,0],0,"玉米精灵暴击率+15%",0,99,10008,3,0],[20,"暴怒:玉米枪手",[3109],[6,300,0],0,"玉米精灵暴击伤害+30%",0,99,10008,3,0],[21,"弹夹扩容:玉米枪手",[3109],[7,2,0],0,"玉米精灵高能子弹数量变为2颗",0,99,10008,3,0],[22,"爆裂狂怒:炸弹火鸟",[3101],[9,7,0],0,"火鸟精灵充能后变为7倍攻速",0,99,10009,3,0]]
Assets/UI/bullet_0.png
Assets/UI/bullet_0.png.meta
copy from Assets/UI/energy.png.meta copy to Assets/UI/bullet_0.png.meta
File was copied from Assets/UI/energy.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 747f83368dfba694c89bc6908324bb94
guid: 3ac0721032818764a9ccf68a1559cc4a
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
@@ -37,7 +37,7 @@
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
Assets/UI/bullet_1.png
Assets/UI/bullet_1.png.meta
copy from Assets/UI/energy.png.meta copy to Assets/UI/bullet_1.png.meta
File was copied from Assets/UI/energy.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 747f83368dfba694c89bc6908324bb94
guid: 9b09056f35611ac4992f1038526985b6
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
@@ -37,7 +37,7 @@
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
Assets/UI/bullet_bottom.png
Assets/UI/bullet_bottom.png.meta
copy from Assets/UI/energy.png.meta copy to Assets/UI/bullet_bottom.png.meta
File was copied from Assets/UI/energy.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 747f83368dfba694c89bc6908324bb94
guid: d46b0b63d9cc5f7408251ed6d4f9f3c4
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
@@ -37,7 +37,7 @@
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
Assets/UI/energy.png
Binary files differ
Assets/UI/energy_bottom.png
Assets/UI/energy_bottom.png.meta
copy from Assets/UI/energy.png.meta copy to Assets/UI/energy_bottom.png.meta
File was copied from Assets/UI/energy.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 747f83368dfba694c89bc6908324bb94
guid: 5f35cdfa5ae72a14e8b99bcc54c56ff5
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
@@ -37,7 +37,7 @@
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
Assets/UI/energy_fire.png
Assets/UI/energy_fire.png.meta
copy from Assets/UI/energy.png.meta copy to Assets/UI/energy_fire.png.meta
File was copied from Assets/UI/energy.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 747f83368dfba694c89bc6908324bb94
guid: 1c47922a3efeb394892627a7c1daa3f8
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
@@ -37,7 +37,7 @@
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
Assets/UI/energy_water.png
Assets/UI/energy_water.png.meta
copy from Assets/UI/energy.png.meta copy to Assets/UI/energy_water.png.meta
File was copied from Assets/UI/energy.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 747f83368dfba694c89bc6908324bb94
guid: fb0a889c8f8a280438057bf0fbd923c6
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
@@ -37,7 +37,7 @@
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
Assets/UI/按钮1.png
Assets/UI/按钮1.png.meta
copy from Assets/UI/energy.png.meta copy to "Assets/UI/\346\214\211\351\222\2561.png.meta"
File was copied from Assets/UI/energy.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 747f83368dfba694c89bc6908324bb94
guid: 28a0f25ee3c7f2749bd6a571f5198f8a
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
@@ -37,7 +37,7 @@
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
Assets/UI/按钮2.png
Assets/UI/按钮2.png.meta
copy from Assets/UI/energy.png.meta copy to "Assets/UI/\346\214\211\351\222\2562.png.meta"
File was copied from Assets/UI/energy.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 747f83368dfba694c89bc6908324bb94
guid: ab77798961eb0584f9fd0f748043a754
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
@@ -37,7 +37,7 @@
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
GemBattle.zip
Binary files differ
GemBattle/宝石塔防_Data/Managed/Assembly-CSharp-firstpass.dll
Binary files differ
GemBattle/宝石塔防_Data/Managed/Assembly-CSharp.dll
Binary files differ
GemBattle/宝石塔防_Data/Managed/MoreMountains.NiceVibrations.Demos.dll
Binary files differ
GemBattle/宝石塔防_Data/Managed/MoreMountains.NiceVibrations.Haptics.dll
Binary files differ
GemBattle/宝石塔防_Data/Managed/MoreMountains.NiceVibrations.dll
Binary files differ
GemBattle/宝石塔防_Data/Managed/Unity.TextMeshPro.dll
Binary files differ
GemBattle/宝石塔防_Data/Managed/Unity.Timeline.dll
Binary files differ
GemBattle/宝石塔防_Data/Managed/UnityEngine.UI.dll
Binary files differ
GemBattle/宝石塔防_Data/StreamingAssets/Table/endless_buff.json
@@ -1 +1 @@
[[1,"低级火灵之力",[2,1],[1,10,0],-1,"增加全体火精灵10%攻击力",0,99,10001,1],[2,"低级水灵之力",[2,2],[1,10,0],-1,"增加全体水精灵10%攻击力",0,99,10002,1],[3,"低级木灵之力",[2,3],[1,10,0],-1,"增加全体木精灵10%攻击力",0,99,10003,1],[4,"火灵之力",[2,1],[1,15,0],-1,"增加全体火精灵15%攻击力",4,99,10001,2],[5,"水灵之力",[2,2],[1,15,0],-1,"增加全体水精灵15%攻击力",4,99,10002,2],[6,"木灵之力",[2,3],[1,15,0],-1,"增加全体木精灵15%攻击力",4,99,10003,2],[7,"高级火灵之力",[2,1],[1,20,0],-1,"增加全体火精灵20%攻击力",7,99,10001,3],[8,"高级水灵之力",[2,2],[1,20,0],-1,"增加全体水精灵20%攻击力",7,99,10002,3],[9,"高级木灵之力",[2,3],[1,20,0],-1,"增加全体木精灵20%攻击力",7,99,10003,3],[10,"精灵之力",[1,0],[1,50,0],2,"2波增加全体精灵50%攻击力",3,99,10004,2],[11,"时空宝石",[1,0],[1,65,0],2,"2波内增加全体精灵65%攻击力",3,99,10005,3],[12,"飞来横财",[0],[2,300,0],0,"增加300金币",0,99,10007,1],[13,"中大奖!",[0],[2,800,0],0,"增加800金币",4,99,10007,3],[14,"精灵魔盒",[0],[3,3,300],0,"随机获得一个3级精灵",99,99,10006,2],[15,"超级精灵魔盒",[0],[3,4,500],0,"随机获得一个4级精灵",99,99,10006,3]]
[[1,"低级火灵之力",[2,1],[1,10,0],-1,"增加全体火精灵10%攻击力",0,99,10001,1,1],[2,"低级水灵之力",[2,2],[1,10,0],-1,"增加全体水精灵10%攻击力",0,99,10002,1,1],[3,"低级木灵之力",[2,3],[1,10,0],-1,"增加全体木精灵10%攻击力",0,99,10003,1,1],[4,"火灵之力",[2,1],[1,15,0],-1,"增加全体火精灵15%攻击力",4,99,10001,2,1],[5,"水灵之力",[2,2],[1,15,0],-1,"增加全体水精灵15%攻击力",4,99,10002,2,1],[6,"木灵之力",[2,3],[1,15,0],-1,"增加全体木精灵15%攻击力",4,99,10003,2,1],[7,"高级火灵之力",[2,1],[1,20,0],-1,"增加全体火精灵20%攻击力",7,99,10001,3,1],[8,"高级水灵之力",[2,2],[1,20,0],-1,"增加全体水精灵20%攻击力",7,99,10002,3,1],[9,"高级木灵之力",[2,3],[1,20,0],-1,"增加全体木精灵20%攻击力",7,99,10003,3,1],[10,"精灵之力",[1,0],[1,50,0],2,"2波增加全体精灵50%攻击力",3,99,10004,2,1],[11,"狂暴之力",[1,0],[1,65,0],2,"2波内增加全体精灵65%攻击力",3,99,10005,3,1],[12,"飞来横财",[0],[2,300,0],0,"增加300金币",0,99,10007,1,1],[13,"中大奖!",[0],[2,800,0],0,"增加800金币",4,99,10007,3,1],[14,"精灵魔盒",[0],[3,3,300],0,"随机获得一个3级精灵",99,99,10006,2,1],[15,"超级精灵魔盒",[0],[3,4,500],0,"随机获得一个4级精灵",99,99,10006,3,1],[16,"时空之力:水",[2,2],[4200500],0,"水精灵攻击间隔-0.2秒",0,99,10002,3,0],[17,"时空之力:火",[2,1],[4200500],0,"火精灵攻击间隔-0.2秒",0,99,10001,3,0],[18,"时空之力:木",[2,3],[4200500],0,"木精灵攻击间隔-0.2秒",0,99,10003,3,0],[19,"狂暴:玉米枪手",[3109],[5,150,0],0,"玉米精灵暴击率+15%",0,99,10008,3,0],[20,"暴怒:玉米枪手",[3109],[6,300,0],0,"玉米精灵暴击伤害+30%",0,99,10008,3,0],[21,"弹夹扩容:玉米枪手",[3109],[7,2,0],0,"玉米精灵高能子弹数量变为2颗",0,99,10008,3,0],[22,"爆裂狂怒:炸弹火鸟",[3101],[9,7,0],0,"火鸟精灵充能后变为7倍攻速",0,99,10009,3,0]]
GemBattle/宝石塔防_Data/globalgamemanagers
Binary files differ
GemBattle/宝石塔防_Data/globalgamemanagers.assets
Binary files differ
GemBattle/宝石塔防_Data/level0
Binary files differ
GemBattle/宝石塔防_Data/level1
Binary files differ
GemBattle/宝石塔防_Data/resources.assets
Binary files differ
GemBattle/宝石塔防_Data/sharedassets0.assets
Binary files differ
GemBattle/宝石塔防_Data/sharedassets1.assets
Binary files differ
GemBattle/宝石塔防_Data/sharedassets1.assets.resS
Binary files differ