新增buff  玉米精灵蓄力时间减少
玉米精灵强化子弹蓄力,瞄准
修复了购买按钮文字显示出错问题
2 files added
23 files modified
765 ■■■■■ changed files
Assets/Prefabs/Enemies/fire 2.prefab 137 ●●●●● patch | view | raw | blame | history
Assets/Prefabs/Enemies/water 1.prefab 156 ●●●●● patch | view | raw | blame | history
Assets/Prefabs/Enemies/wood 2.prefab 137 ●●●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/Water/CopyCatTower.prefab 2 ●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/WoodTower/BlinkTower.prefab 2 ●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/WoodTower/BlinkTower_0.prefab 3 ●●●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/WoodTower/BlinkTower_1.prefab 3 ●●●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/WoodTower/BlinkTower_2.prefab 3 ●●●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/WoodTower/BlinkTower_3.prefab 3 ●●●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/WoodTower/BlinkTower_4.prefab 3 ●●●●● patch | view | raw | blame | history
Assets/Scripts/ActionGameFramework/Health/DamageCollider.cs 2 ●●● patch | view | raw | blame | history
Assets/Scripts/ActionGameFramework/Health/Damager.cs 7 ●●●● patch | view | raw | blame | history
Assets/Scripts/Common/GameConfig.cs 2 ●●● patch | view | raw | blame | history
Assets/Scripts/Common/GameUtils.cs 4 ●●● patch | view | raw | blame | history
Assets/Scripts/Enum/EndlessBuffEffectType.cs 3 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Affectors/AttackAffector.cs 161 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Agents/Agent.cs 65 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Agents/BubbleBombAgent.cs 5 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Agents/WoodPileAgent.cs 5 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Level/EndlessBuff/DecreaseWoodChargeTime.cs 32 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Level/EndlessBuff/DecreaseWoodChargeTime.cs.meta 11 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Level/EndlessBuff/EndlessBuffManager.cs 1 ●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Towers/Projectiles/BallisticAttack.cs 15 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Towers/TowerLaunchers/Launcher.cs 1 ●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/UI/HUD/EndlessRandomTower.cs 2 ●●● patch | view | raw | blame | history
Assets/Prefabs/Enemies/fire 2.prefab
@@ -275,6 +275,7 @@
  - {fileID: 6679120199681160672}
  - {fileID: 6178603281983929972}
  - {fileID: 4595872435068790202}
  - {fileID: 7560661838633597988}
  m_Father: {fileID: 0}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -325,6 +326,8 @@
  towerTargetter: {fileID: 7490226013430720439}
  radiusEffectColor: {r: 0, g: 0, b: 0, a: 0}
  towerLevel: {fileID: 0}
  WoodChargeEffect: {fileID: 0}
  WoodChargeTransform: {fileID: 0}
--- !u!114 &8434816861478773454
MonoBehaviour:
  m_ObjectHideFlags: 0
@@ -360,6 +363,7 @@
  spawnParticle: {fileID: 19888028, guid: 799ba3095ff225146bea02318a149f87, type: 3}
  ActionAnimator: {fileID: 8418524101809364958}
  bShowDebugNode: 0
  WoodAimEffect: {fileID: 5938374105552992342}
--- !u!54 &8434816861478773555
Rigidbody:
  m_ObjectHideFlags: 0
@@ -998,6 +1002,127 @@
    type: 3}
  m_PrefabInstance: {fileID: 4796933190690775530}
  m_PrefabAsset: {fileID: 0}
--- !u!1001 &5089574475052862479
PrefabInstance:
  m_ObjectHideFlags: 0
  serializedVersion: 2
  m_Modification:
    m_TransformParent: {fileID: 8434816861478773449}
    m_Modifications:
    - target: {fileID: 96203512265991587, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: playOnAwake
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 1497617084374774873, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: playOnAwake
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 2140454439133505879, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: playOnAwake
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 3059864911439580455, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_Name
      value: Effect_FaZhen_Mu
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalPosition.x
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalPosition.y
      value: 0.45
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalPosition.z
      value: 0.604
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalRotation.x
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalRotation.y
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalRotation.z
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalRotation.w
      value: 1
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_RootOrder
      value: 11
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalEulerAnglesHint.x
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalEulerAnglesHint.y
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalEulerAnglesHint.z
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalScale.x
      value: 0.1
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalScale.y
      value: 0.1
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalScale.z
      value: 0.1
      objectReference: {fileID: 0}
    - target: {fileID: 7187876785112635791, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: playOnAwake
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 9217477229972816226, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: playOnAwake
      value: 0
      objectReference: {fileID: 0}
    m_RemovedComponents: []
  m_SourcePrefab: {fileID: 100100000, guid: 80d4838afd8ff814e950071cb5b55cd7, type: 3}
--- !u!4 &7560661838633597988 stripped
Transform:
  m_CorrespondingSourceObject: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
    type: 3}
  m_PrefabInstance: {fileID: 5089574475052862479}
  m_PrefabAsset: {fileID: 0}
--- !u!198 &5938374105552992342 stripped
ParticleSystem:
  m_CorrespondingSourceObject: {fileID: 1497617084374774873, guid: 80d4838afd8ff814e950071cb5b55cd7,
    type: 3}
  m_PrefabInstance: {fileID: 5089574475052862479}
  m_PrefabAsset: {fileID: 0}
--- !u!1001 &6146236397121986736
PrefabInstance:
  m_ObjectHideFlags: 0
@@ -1163,18 +1288,18 @@
      objectReference: {fileID: 0}
    m_RemovedComponents: []
  m_SourcePrefab: {fileID: 100100000, guid: 78046dd80a5fb1d45a60cf15574ee7bf, type: 3}
--- !u!198 &6178603283043088035 stripped
ParticleSystem:
  m_CorrespondingSourceObject: {fileID: 2639904808709911356, guid: 78046dd80a5fb1d45a60cf15574ee7bf,
    type: 3}
  m_PrefabInstance: {fileID: 8150421983870813599}
  m_PrefabAsset: {fileID: 0}
--- !u!4 &6178603281983929972 stripped
Transform:
  m_CorrespondingSourceObject: {fileID: 2639904807578598379, guid: 78046dd80a5fb1d45a60cf15574ee7bf,
    type: 3}
  m_PrefabInstance: {fileID: 8150421983870813599}
  m_PrefabAsset: {fileID: 0}
--- !u!198 &6178603283043088035 stripped
ParticleSystem:
  m_CorrespondingSourceObject: {fileID: 2639904808709911356, guid: 78046dd80a5fb1d45a60cf15574ee7bf,
    type: 3}
  m_PrefabInstance: {fileID: 8150421983870813599}
  m_PrefabAsset: {fileID: 0}
--- !u!1001 &8970689413692267143
PrefabInstance:
  m_ObjectHideFlags: 0
Assets/Prefabs/Enemies/water 1.prefab
@@ -275,6 +275,7 @@
  - {fileID: 200673849226178847}
  - {fileID: 4964518330195590823}
  - {fileID: 5004668289563595669}
  - {fileID: 5849021530416894200}
  m_Father: {fileID: 0}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -325,6 +326,8 @@
  towerTargetter: {fileID: 7490226013430720439}
  radiusEffectColor: {r: 0, g: 0, b: 0, a: 0}
  towerLevel: {fileID: 0}
  WoodChargeEffect: {fileID: 0}
  WoodChargeTransform: {fileID: 0}
--- !u!114 &8434816861478773454
MonoBehaviour:
  m_ObjectHideFlags: 0
@@ -360,6 +363,7 @@
  spawnParticle: {fileID: 19892064, guid: 8c51d2af51854f148bba24c2904e2e63, type: 3}
  ActionAnimator: {fileID: 6678885540973173833}
  bShowDebugNode: 0
  WoodAimEffect: {fileID: 7759258216086246538}
--- !u!54 &8434816861478773555
Rigidbody:
  m_ObjectHideFlags: 0
@@ -1292,15 +1296,161 @@
      objectReference: {fileID: 0}
    m_RemovedComponents: []
  m_SourcePrefab: {fileID: 100100000, guid: 78046dd80a5fb1d45a60cf15574ee7bf, type: 3}
--- !u!4 &4964518330195590823 stripped
Transform:
  m_CorrespondingSourceObject: {fileID: 2639904807578598379, guid: 78046dd80a5fb1d45a60cf15574ee7bf,
    type: 3}
  m_PrefabInstance: {fileID: 6937602200615535948}
  m_PrefabAsset: {fileID: 0}
--- !u!198 &4964518329174177392 stripped
ParticleSystem:
  m_CorrespondingSourceObject: {fileID: 2639904808709911356, guid: 78046dd80a5fb1d45a60cf15574ee7bf,
    type: 3}
  m_PrefabInstance: {fileID: 6937602200615535948}
  m_PrefabAsset: {fileID: 0}
--- !u!4 &4964518330195590823 stripped
--- !u!1001 &9180296405555405011
PrefabInstance:
  m_ObjectHideFlags: 0
  serializedVersion: 2
  m_Modification:
    m_TransformParent: {fileID: 8434816861478773449}
    m_Modifications:
    - target: {fileID: 96203512265991587, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: playOnAwake
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 1497617084374774873, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: playOnAwake
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 2140454439133505879, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: playOnAwake
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 3059864911439580455, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_Name
      value: Effect_FaZhen_Mu
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalPosition.x
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalPosition.y
      value: 0.26
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalPosition.z
      value: 0.796
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalRotation.x
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalRotation.y
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalRotation.z
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalRotation.w
      value: 1
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_RootOrder
      value: 11
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalEulerAnglesHint.x
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalEulerAnglesHint.y
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalEulerAnglesHint.z
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalScale.x
      value: 0.2
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalScale.y
      value: 0.2
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalScale.z
      value: 0.2
      objectReference: {fileID: 0}
    - target: {fileID: 7132746749733314300, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalPosition.z
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 7132746749733314300, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalPosition.y
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 7132746749733314300, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalRotation.x
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 7132746749733314300, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalRotation.y
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 7132746749733314300, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalRotation.z
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 7187876785112635791, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: playOnAwake
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 9217477229972816226, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: playOnAwake
      value: 0
      objectReference: {fileID: 0}
    m_RemovedComponents: []
  m_SourcePrefab: {fileID: 100100000, guid: 80d4838afd8ff814e950071cb5b55cd7, type: 3}
--- !u!4 &5849021530416894200 stripped
Transform:
  m_CorrespondingSourceObject: {fileID: 2639904807578598379, guid: 78046dd80a5fb1d45a60cf15574ee7bf,
  m_CorrespondingSourceObject: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
    type: 3}
  m_PrefabInstance: {fileID: 6937602200615535948}
  m_PrefabInstance: {fileID: 9180296405555405011}
  m_PrefabAsset: {fileID: 0}
--- !u!198 &7759258216086246538 stripped
ParticleSystem:
  m_CorrespondingSourceObject: {fileID: 1497617084374774873, guid: 80d4838afd8ff814e950071cb5b55cd7,
    type: 3}
  m_PrefabInstance: {fileID: 9180296405555405011}
  m_PrefabAsset: {fileID: 0}
Assets/Prefabs/Enemies/wood 2.prefab
@@ -275,6 +275,7 @@
  - {fileID: 5729843628970712658}
  - {fileID: 8244594842321693027}
  - {fileID: 3207871016240874820}
  - {fileID: 1380975045714923634}
  m_Father: {fileID: 0}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -325,6 +326,8 @@
  towerTargetter: {fileID: 7490226013430720439}
  radiusEffectColor: {r: 0, g: 0, b: 0, a: 0}
  towerLevel: {fileID: 0}
  WoodChargeEffect: {fileID: 0}
  WoodChargeTransform: {fileID: 0}
--- !u!114 &8434816861478773454
MonoBehaviour:
  m_ObjectHideFlags: 0
@@ -360,6 +363,7 @@
  spawnParticle: {fileID: 19873840, guid: e4a4dd0be891ef542a95aef4b72806c4, type: 3}
  ActionAnimator: {fileID: 2308564654919142006}
  bShowDebugNode: 0
  WoodAimEffect: {fileID: 3003829860448736256}
--- !u!54 &8434816861478773555
Rigidbody:
  m_ObjectHideFlags: 0
@@ -868,6 +872,127 @@
  m_Script: {fileID: 11500000, guid: 5440fde571ec4db4a719f37df8e972f0, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
--- !u!1001 &4424546503988928601
PrefabInstance:
  m_ObjectHideFlags: 0
  serializedVersion: 2
  m_Modification:
    m_TransformParent: {fileID: 8434816861478773449}
    m_Modifications:
    - target: {fileID: 96203512265991587, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: playOnAwake
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 1497617084374774873, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: playOnAwake
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 2140454439133505879, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: playOnAwake
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 3059864911439580455, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_Name
      value: Effect_FaZhen_Mu
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalPosition.x
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalPosition.y
      value: 0.251
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalPosition.z
      value: 0.603
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalRotation.x
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalRotation.y
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalRotation.z
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalRotation.w
      value: 1
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_RootOrder
      value: 11
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalEulerAnglesHint.x
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalEulerAnglesHint.y
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalEulerAnglesHint.z
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalScale.x
      value: 0.1
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalScale.y
      value: 0.1
      objectReference: {fileID: 0}
    - target: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: m_LocalScale.z
      value: 0.1
      objectReference: {fileID: 0}
    - target: {fileID: 7187876785112635791, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: playOnAwake
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 9217477229972816226, guid: 80d4838afd8ff814e950071cb5b55cd7,
        type: 3}
      propertyPath: playOnAwake
      value: 0
      objectReference: {fileID: 0}
    m_RemovedComponents: []
  m_SourcePrefab: {fileID: 100100000, guid: 80d4838afd8ff814e950071cb5b55cd7, type: 3}
--- !u!4 &1380975045714923634 stripped
Transform:
  m_CorrespondingSourceObject: {fileID: 3336341481763942443, guid: 80d4838afd8ff814e950071cb5b55cd7,
    type: 3}
  m_PrefabInstance: {fileID: 4424546503988928601}
  m_PrefabAsset: {fileID: 0}
--- !u!198 &3003829860448736256 stripped
ParticleSystem:
  m_CorrespondingSourceObject: {fileID: 1497617084374774873, guid: 80d4838afd8ff814e950071cb5b55cd7,
    type: 3}
  m_PrefabInstance: {fileID: 4424546503988928601}
  m_PrefabAsset: {fileID: 0}
--- !u!1001 &5046465214892965966
PrefabInstance:
  m_ObjectHideFlags: 0
@@ -1033,18 +1158,18 @@
      objectReference: {fileID: 0}
    m_RemovedComponents: []
  m_SourcePrefab: {fileID: 100100000, guid: 78046dd80a5fb1d45a60cf15574ee7bf, type: 3}
--- !u!198 &8244594841270657460 stripped
ParticleSystem:
  m_CorrespondingSourceObject: {fileID: 2639904808709911356, guid: 78046dd80a5fb1d45a60cf15574ee7bf,
    type: 3}
  m_PrefabInstance: {fileID: 6253384680902185608}
  m_PrefabAsset: {fileID: 0}
--- !u!4 &8244594842321693027 stripped
Transform:
  m_CorrespondingSourceObject: {fileID: 2639904807578598379, guid: 78046dd80a5fb1d45a60cf15574ee7bf,
    type: 3}
  m_PrefabInstance: {fileID: 6253384680902185608}
  m_PrefabAsset: {fileID: 0}
--- !u!198 &8244594841270657460 stripped
ParticleSystem:
  m_CorrespondingSourceObject: {fileID: 2639904808709911356, guid: 78046dd80a5fb1d45a60cf15574ee7bf,
    type: 3}
  m_PrefabInstance: {fileID: 6253384680902185608}
  m_PrefabAsset: {fileID: 0}
--- !u!1001 &8019561273946026293
PrefabInstance:
  m_ObjectHideFlags: 0
Assets/Prefabs/Towers/Water/CopyCatTower.prefab
@@ -142,7 +142,7 @@
  uiImage: {fileID: 21300000, guid: a4930810a16645146b591af4fd8cc80b, type: 3}
  enemyLayerMask:
    serializedVersion: 2
    m_Bits: 4294967295
    m_Bits: 524087
  bDoubleHitElit: 0
--- !u!65 &65801875245033440
BoxCollider:
Assets/Prefabs/Towers/WoodTower/BlinkTower.prefab
@@ -144,7 +144,7 @@
  uiImage: {fileID: 21300000, guid: 7421dffecb7e7d644b4ce0980c1f75da, type: 3}
  enemyLayerMask:
    serializedVersion: 2
    m_Bits: 4294967295
    m_Bits: 524087
  bDoubleHitElit: 0
--- !u!65 &65801875245033440
BoxCollider:
Assets/Prefabs/Towers/WoodTower/BlinkTower_0.prefab
@@ -43418,6 +43418,9 @@
  towerTargetter: {fileID: 114079108543431824}
  radiusEffectColor: {r: 0, g: 1, b: 1, a: 0.09803922}
  towerLevel: {fileID: 114779466188146336}
  WoodChargeEffect: {fileID: 787924165437406883, guid: 2eff7753b97eabd4e90186bd002380ba,
    type: 3}
  WoodChargeTransform: {fileID: 4457715277627928}
--- !u!1 &1860257489135870
GameObject:
  m_ObjectHideFlags: 0
Assets/Prefabs/Towers/WoodTower/BlinkTower_1.prefab
@@ -29102,6 +29102,9 @@
  towerTargetter: {fileID: 114831088907122518}
  radiusEffectColor: {r: 0, g: 1, b: 1, a: 0.09803922}
  towerLevel: {fileID: 114056922861069036}
  WoodChargeEffect: {fileID: 787924165437406883, guid: 2eff7753b97eabd4e90186bd002380ba,
    type: 3}
  WoodChargeTransform: {fileID: 930484069627965929}
--- !u!1 &1823473106924508
GameObject:
  m_ObjectHideFlags: 0
Assets/Prefabs/Towers/WoodTower/BlinkTower_2.prefab
@@ -28925,6 +28925,9 @@
  towerTargetter: {fileID: 114624795727799840}
  radiusEffectColor: {r: 0, g: 1, b: 1, a: 0.09803922}
  towerLevel: {fileID: 114683032773000130}
  WoodChargeEffect: {fileID: 787924165437406883, guid: 2eff7753b97eabd4e90186bd002380ba,
    type: 3}
  WoodChargeTransform: {fileID: 4726805076667173648}
--- !u!1 &1800239179868154
GameObject:
  m_ObjectHideFlags: 0
Assets/Prefabs/Towers/WoodTower/BlinkTower_3.prefab
@@ -28925,6 +28925,9 @@
  towerTargetter: {fileID: 114624795727799840}
  radiusEffectColor: {r: 0, g: 1, b: 1, a: 0.09803922}
  towerLevel: {fileID: 114683032773000130}
  WoodChargeEffect: {fileID: 787924165437406883, guid: 2eff7753b97eabd4e90186bd002380ba,
    type: 3}
  WoodChargeTransform: {fileID: 7208623104397428330}
--- !u!1 &1800239179868154
GameObject:
  m_ObjectHideFlags: 0
Assets/Prefabs/Towers/WoodTower/BlinkTower_4.prefab
@@ -28925,6 +28925,9 @@
  towerTargetter: {fileID: 114624795727799840}
  radiusEffectColor: {r: 0, g: 1, b: 1, a: 0.09803922}
  towerLevel: {fileID: 114683032773000130}
  WoodChargeEffect: {fileID: 787924165437406883, guid: 2eff7753b97eabd4e90186bd002380ba,
    type: 3}
  WoodChargeTransform: {fileID: 3053498307503446518}
--- !u!1 &1800239179868154
GameObject:
  m_ObjectHideFlags: 0
Assets/Scripts/ActionGameFramework/Health/DamageCollider.cs
@@ -60,7 +60,7 @@
            LazyLoad();
            BallisticAttack ballisticAttack = damager.GetComponent<BallisticAttack>();
            ballisticAttack.DealDamage((Targetable)damageableBehaviour, ballisticAttack.attributeId);
            ballisticAttack.DealDamage((Targetable)damageableBehaviour, ballisticAttack.attributeId, damager.IsEnhancedBullet);
            damager.HasDamaged(c.transform.position, damageableBehaviour.configuration.alignmentProvider);
        }
Assets/Scripts/ActionGameFramework/Health/Damager.cs
@@ -19,11 +19,16 @@
        public float damage;
        /// <summary>
        /// 用于最后一颗子弹的多倍攻击
        /// 强化子弹的多倍攻击
        /// </summary>
        public float damageMulti = 1.0f;
        /// <summary>
        /// 是否是增强的子弹
        /// </summary>
        public bool IsEnhancedBullet { get; set; }
        /// <summary>
        /// TEST CODE TO TOWER_NAME
        /// </summary>
        public string towerName = "";
Assets/Scripts/Common/GameConfig.cs
@@ -49,7 +49,7 @@
        /// <summary>
        /// 是否是新手
        /// </summary>
        public static bool IsNewbie = true;
        public static bool IsNewbie = false;
        /// <summary>
        /// 无尽模式每一轮游戏中成功使用技能宝石的次数
Assets/Scripts/Common/GameUtils.cs
@@ -1,13 +1,11 @@
using LitJson;
using System.Collections.Generic;
using System;
using UnityEngine;
namespace KTGMGemClient
{
    public class GameUtils
    {
        private static int id { get; set; } = 0;
        private static int id { get; set; } = 1;
        /// <summary>
        /// 获取一个唯一id
Assets/Scripts/Enum/EndlessBuffEffectType.cs
@@ -33,8 +33,11 @@
        // 攻击速度增加
        FireRateAdd,
        //增加技能等级
        SkillLevelUp,
        // 减少木属性强化子弹的蓄力时间
        DecreaseWoodChargeTime,
    }
}
Assets/Scripts/TowerDefense/Affectors/AttackAffector.cs
@@ -8,6 +8,8 @@
using TowerDefense.Towers.Projectiles;
using UnityEngine;
using KTGMGemClient;
using TowerDefense.Agents;
using TowerDefense.Level;
namespace TowerDefense.Affectors
{
@@ -143,6 +145,32 @@
        /// </summary>
        /// <value></value>
        protected float fireSpeed { get; set; } = 5f;
        /// <summary>
        /// 木属性精灵蓄力时间
        /// </summary>
        protected float woodChargeTime { get; set; } = 1.5f;
        protected float woodRemainChargeTime { get; set; }
        /// <summary>
        /// 蓄力特效时间
        /// </summary>
        protected float woodChargeEffectTime { get; set; }
        /// <summary>
        /// 木属性精灵蓄力特效
        /// </summary>
        public GameObject WoodChargeEffect;
        private GameObject woodChargeEffect;
        public Transform WoodChargeTransform;
        /// <summary>
        /// 木属性正在瞄准的Agent
        /// </summary>
        protected Agent woodAimAgent;
        /// <summary>
        /// 火精灵攻击最终攻击倍速,里面计算了buff增加的倍速
@@ -308,6 +336,22 @@
        // 处理木精灵装填子弹
        private void HandleBullet()
        {
            if (woodRemainChargeTime > 0f)
                woodRemainChargeTime -= Time.deltaTime;
            if (woodChargeEffectTime > 0f)
            {
                woodChargeEffectTime -= Time.deltaTime;
                UpdateWoodAim();
                if (woodChargeEffectTime <= 0 && woodChargeEffect != null)
                {
                    CancelWoodAim();
                    Destroy(woodChargeEffect);
                    woodChargeEffect = null;
                }
            }
            // 预留出来装填子弹的时间.
            if (fillBulletTime > 0)
            {
@@ -323,6 +367,95 @@
                    fillBulletTime = 0;
                }
            }
        }
        /// <summary>
        /// 更新木属性瞄准
        /// </summary>
        private void UpdateWoodAim()
        {
            // 离得最近的 Agent
            Agent agent = GetMinDistanceAgent();
            if (agent != null)
            {
                // 还没有瞄准目标,直接分配
                if (woodAimAgent == null)
                {
                    woodAimAgent = agent;
                    if (agent.WoodAimCount == 0)
                        agent.WoodAimEffect.Play();
                    ++agent.WoodAimCount;
                }
                // 有小怪走到之前瞄准目标的前面 或者 之前瞄准的目标死亡,切换瞄准目标
                else if (woodAimAgent.Id != agent.Id)
                {
                    if (woodAimAgent.WoodAimCount > 0)
                    {
                        --woodAimAgent.WoodAimCount;
                        if (woodAimAgent.WoodAimCount == 0)
                        {
                            woodAimAgent.WoodAimEffect.Stop();
                            woodAimAgent.WoodAimEffect.Clear();
                        }
                    }
                    if (agent.WoodAimCount == 0)
                        agent.WoodAimEffect.Play();
                    ++agent.WoodAimCount;
                }
            }
        }
        /// <summary>
        /// 获取距离终点最近的Agent
        /// </summary>
        /// <returns></returns>
        private Agent GetMinDistanceAgent()
        {
            Agent ret = null;
            float minDistance = -1f;
            WaveLineAgentInsMgr[] waveLineAgentIns = AgentInsManager.instance.GetWaveLineList();
            WaveLineAgentInsMgr waveLineAgentInsMgr = waveLineAgentIns[waveLineID];
            List<Agent> agents = waveLineAgentInsMgr.listAgent;
            Vector3 endPos = EndlessLevelManager.instance.GetHomeBasePosition(waveLineID + 1);
            for (int i = 0; i < agents.Count; ++i)
            {
                float distance = Mathf.Abs(agents[i].transform.position.z - endPos.z);
                if (minDistance < 0 || distance < minDistance)
                {
                    minDistance = distance;
                    ret = agents[i];
                }
            }
            return ret;
        }
        /// <summary>
        /// 取消木属性瞄准
        /// </summary>
        private void CancelWoodAim()
        {
            if (woodAimAgent != null && woodAimAgent.WoodAimCount > 0)
            {
                --woodAimAgent.WoodAimCount;
                if (woodAimAgent.WoodAimCount == 0)
                {
                    woodAimAgent.WoodAimEffect.Stop();
                    woodAimAgent.WoodAimEffect.Clear();
                }
            }
            woodAimAgent = null;
        }
        // 处理火精灵充能
@@ -504,7 +637,9 @@
                if (towerPtr && towerPtr.bulletCtl != null)
                {
                    int bnum = towerPtr.bulletCtl.GetCtlProgress();
                    if (bnum == 0) return;
                    // 蓄力时间内不攻击
                    if (bnum == 0 || woodRemainChargeTime > 0f) return;
                }
                if (towerPtr && towerPtr.FreezeBreathCtrl != null)
@@ -531,8 +666,10 @@
            if (m_TrackingEnemy == null || fillBulletTime > 0) return;
            go.GetComponent<Damager>().IsEnhancedBullet = false;
            // 处理子弹充能相关的内容
            if (towerPtr && (towerPtr.bulletCtl != null))
            if (towerPtr && towerPtr.bulletCtl != null)
            {
                int bnum = towerPtr.bulletCtl.decBullet();
                // 暴击子弹的数量,如果获得相应buff可能会修改暴击子弹数量
@@ -541,7 +678,8 @@
                if (bnum < critBulletNum)
                {
                    if (bnum == 0)
                        fillBulletTime = 2.0f;
                        // 不需要装填时间
                        fillBulletTime = 0.1f;
                    //这里需要替换特效
                    var poolable = Core.Utilities.Poolable.TryGetPoolable<Core.Utilities.Poolable>(woodProjectile_SP);
@@ -549,6 +687,23 @@
                    Damager tmpDamager = go.GetComponent<Damager>();
                    tmpDamager.damageMulti = 10.0f;
                    tmpDamager.damage = damagerProjectile.damage;
                    tmpDamager.IsEnhancedBullet = true;
                }
                // 下一颗子弹是强化子弹,然后直接蓄力
                if (bnum - 1 >= 0 && bnum - 1 < critBulletNum)
                {
                    woodRemainChargeTime = woodChargeTime;
                    DecreaseWoodChargeTime decreaseWoodChargeTime = (DecreaseWoodChargeTime)EndlessBuffManager.instance.GetBuffInstanceByType(EndlessBuffEffectType.DecreaseWoodChargeTime);
                    if (decreaseWoodChargeTime != null)
                        woodRemainChargeTime = decreaseWoodChargeTime.GetWoodChargeTime(woodChargeTime);
                    woodChargeEffectTime = woodRemainChargeTime + 0.5f / towerLevel.ActionAnimator.speed;
                    woodChargeEffect = Instantiate(WoodChargeEffect);
                    woodChargeEffect.transform.SetPositionAndRotation(WoodChargeTransform.position, WoodChargeTransform.rotation);
                    ParticleSystem ps = woodChargeEffect.transform.GetChild(0).GetComponent<ParticleSystem>();
                    ps.Play();
                }
            }
            else
Assets/Scripts/TowerDefense/Agents/Agent.cs
@@ -291,6 +291,38 @@
        private string paramName = "AgentActionState";
        /// <summary>
        /// 外部赋值,唯一标识一个代理
        /// </summary>
        public int Id { get; set; }
        private Tween repelTween;
        /// <summary>
        /// 击退距离
        /// </summary>
        protected float repelDistance { get; set; } = 7f;
        /// <summary>
        /// 击退时间间隔
        /// </summary>
        protected float repelTime { get; set; } = 0.5f;
        /// <summary>
        /// 是否受到木属性强化子弹攻击
        /// </summary>
        public bool IsEnhancedBulletAttack { get; set; }
        /// <summary>
        /// 木属性精灵瞄准小怪特效
        /// </summary>
        public ParticleSystem WoodAimEffect;
        /// <summary>
        /// 有几个木属性精灵瞄准了Agent
        /// </summary>
        public int WoodAimCount { get; set; }
        /// <summary>
        /// 更新怪物的移动速度。
        /// </summary>
        /// <param name="fscale"></param>
@@ -450,6 +482,26 @@
            return true;
        }
        /// <summary>
        /// Agent被击退
        /// </summary>
        public void AgentBeRepelled()
        {
            CanMove = false;
            if (repelTween != null)
                repelTween.Kill();
            Node StartingNodeList = EndlessLevelManager.instance.StartingNodeList[waveLineID];
            repelTween = transform.DOMoveZ(Mathf.Min(StartingNodeList.transform.position.z, transform.position.z + repelDistance), repelTime);
            repelTween.onComplete = RepelCompleted;
        }
        private void RepelCompleted()
        {
            CanMove = true;
            repelTween = null;
        }
        /// <summary>
        /// Stops the navMeshAgent and attempts to return to pool
@@ -497,12 +549,22 @@
            configuration.ClearShieldWall();
            StopFrostParticle();
            if (WoodAimCount > 0)
                WoodAimCount = 0;
            WoodAimEffect.Stop();
            WoodAimEffect.Clear();
            //this.SetTargetableMatColor(Color.white);
            // 删除当前停止特效和状态.
            if (MoveStopTime > 0)
                MoveStopTime = 0.0f;
            if (repelTween != null)
            {
                repelTween.Kill();
                repelTween = null;
            }
            // 停止DoTween动画.
            this.transform.DOKill();
@@ -521,6 +583,7 @@
        /// </summary>
        public virtual void Initialize()
        {
            Id = GameUtils.GetId();
            ResetPositionData();
            LazyLoad();
            configuration.SetHealth(configuration.maxHealth);
@@ -1098,7 +1161,7 @@
            if (EnemyData != null && EndlessGameUI.instance.state != EndlessGameUI.State.GameOver)
            {
                Debug.Log("小怪被杀死了,增加能量" + EnemyData.energy);
                // Debug.Log("小怪被杀死了,增加能量" + EnemyData.energy);
                EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.EnergyUp, EnemyData.energy);
            }
Assets/Scripts/TowerDefense/Agents/BubbleBombAgent.cs
@@ -11,11 +11,6 @@
    public class BubbleBombAgent : Agent
    {
        /// <summary>
        /// 外部赋值,唯一标识一个泡泡炸弹代理
        /// </summary>
        public int Id { get; set; }
        /// <summary>
        /// 正常的特效
        /// </summary>
        public ParticleSystem NormalEffect;
Assets/Scripts/TowerDefense/Agents/WoodPileAgent.cs
@@ -13,11 +13,6 @@
    public class WoodPileAgent : Agent
    {
        /// <summary>
        /// 外部赋值,唯一标识一个泡泡炸弹代理
        /// </summary>
        public int Id { get; set; }
        /// <summary>
        ///  木桩墙壁收到货塔攻击的额外伤害倍率
        /// </summary>
        public float FireHurtRate { get; set; }
Assets/Scripts/TowerDefense/Level/EndlessBuff/DecreaseWoodChargeTime.cs
New file
@@ -0,0 +1,32 @@
/**
 * 11.减少木属性强化子弹的蓄力时间
 * @Author: chenxin
 * @Date: 2020-11-24 15:14:00
 */
namespace KTGMGemClient
{
    public class DecreaseWoodChargeTime : EndlessBuff
    {
        /// <summary>
        /// 获取木属性强化子弹的蓄力时间,计算buff加成
        /// </summary>
        /// <param name="preTime"></param>
        public float GetWoodChargeTime(float preTime)
        {
            float ret = preTime;
            for (int i = 0; i < BuffList.Count; ++i)
            {
                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/DecreaseWoodChargeTime.cs.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 8cdc978d5dce4b440acba424e4038389
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Scripts/TowerDefense/Level/EndlessBuff/EndlessBuffManager.cs
@@ -36,6 +36,7 @@
                new SlowDown(),
                new FireRateAdd(),
                new SkillLevelUp(),
                new DecreaseWoodChargeTime(),
            };
        }
Assets/Scripts/TowerDefense/Towers/Projectiles/BallisticAttack.cs
@@ -3,7 +3,6 @@
using TowerDefense.Agents;
using TowerDefense.UI.HUD;
using UnityEngine;
using TowerDefense.Level;
using System.Collections.Generic;
using KTGMGemClient;
@@ -44,12 +43,12 @@
        /// </summary>
        /// <param name="enemy"></param>
        /// <param name="attributeId">子弹的属性id</param>
        public void DealDamage(Targetable enemy, int attributeId = -1)
        public void DealDamage(Targetable enemy, int attributeId = -1, bool isEnhancedBullet = false)
        {
            switch ((enemy as Agent).AgentType)
            {
                case SpawnAgentType.Normal:
                    HandleNormal(enemy);
                    HandleNormal(enemy, isEnhancedBullet);
                    break;
                case SpawnAgentType.BubbleBomb:
                    HandleBubbleBomb(enemy);
@@ -120,7 +119,7 @@
        /// 处理普通小怪和boss收到的伤害
        /// </summary>
        /// <param name="enemy"></param>
        private void HandleNormal(Targetable enemy)
        private void HandleNormal(Targetable enemy, bool isEnhancedBullet)
        {
            float finalDamage = damager.finalDamage;
            bool crit = IsCrit();
@@ -163,8 +162,14 @@
            }
            // 播放受击动画:
            if ((!enemy.isDead) && (enemy.liveID == tid))
            if (!enemy.isDead && enemy.liveID == tid)
            {
                (enemy as Agent).PlayOnHit();
                // 如果是玉米强化子弹的攻击,要处理击退的效果
                if (TowerPtr != null && isEnhancedBullet)
                    (enemy as Agent).AgentBeRepelled();
            }
        }
        /// <summary>
Assets/Scripts/TowerDefense/Towers/TowerLaunchers/Launcher.cs
@@ -80,6 +80,7 @@
            Damager tm = poolable.gameObject.GetComponent<Damager>();
            if (tm)
            {
                tm.IsEnhancedBullet = attack.GetComponent<Damager>().IsEnhancedBullet;
                Damager srctm = attack.GetComponent<Damager>();
                tm.inSceneUpGradeDamage = srctm.inSceneUpGradeDamage;
                tm.doubleHit = srctm.doubleHit;
Assets/Scripts/TowerDefense/UI/HUD/EndlessRandomTower.cs
@@ -86,7 +86,7 @@
    public void UpdateDescDisplay()
    {
        int minLevel = EndlessGameUI.instance.MinLevel;
        int minLevel = Mathf.Min(EndlessGameUI.instance.MinLevel, 1);
        NormalDesc.text = $"购买{minLevel + 1}级宝石";
        //SkillDesc.text = $"购买{minLevel + 1}级技能宝石";