From 5bfd1103410659fbb523ad25f0e34413fe032ed2 Mon Sep 17 00:00:00 2001
From: chenxin <chenxin6991@163.com>
Date: Sat, 05 Dec 2020 18:19:06 +0800
Subject: [PATCH] 水精灵概率触发冰冻

---
 Assets/UI/Frost.png.meta                                                  |  118 ++++++++++
 Assets/Scripts/TowerDefense/Affectors/AttackAffector.cs                   |   20 -
 Assets/Scripts/TowerDefense/Agents/Agent.cs                               |  124 ++++++----
 Assets/Scripts/TowerDefense/Level/EndlessBuff/EndlessBuffManager.cs       |    3 
 Assets/Scripts/TowerDefense/UI/FreezeBreath.cs                            |   40 +++
 Assets/Scripts/TowerDefense/Level/EndlessBuff/FrostTimeAdd.cs.meta        |   11 +
 Assets/Scripts/TowerDefense/Level/EndlessBuff/FrostDamageAdd.cs.meta      |   11 +
 Assets/UI/Frost.png                                                       |    0 
 Assets/Scripts/TowerDefense/UI/TextMoveDoTween.cs                         |   19 +
 Assets/Scenes/Levels/Battle/Endless2D.unity                               |    2 
 Assets/Scripts/TowerDefense/Towers/Projectiles/BallisticAttack.cs         |   66 +++++
 Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs                       |   17 +
 Assets/Scripts/TowerDefense/Level/EndlessBuff/FrostProbabilityAdd.cs      |   29 ++
 Assets/Prefabs/UI/FrostWord.prefab                                        |   94 ++++++++
 Assets/Scripts/Enum/EndlessBuffEffectType.cs                              |    9 
 Assets/Prefabs/UI/FrostWord.prefab.meta                                   |    7 
 Assets/Scripts/TowerDefense/Level/EndlessBuff/FrostTimeAdd.cs             |   34 +++
 Assets/StreamingAssets/Table/endless_buff.json                            |    2 
 Assets/Scripts/TowerDefense/Level/EndlessBuff/FrostDamageAdd.cs           |   29 ++
 Assets/Scripts/TowerDefense/Level/EndlessBuff/FrostProbabilityAdd.cs.meta |   11 +
 20 files changed, 562 insertions(+), 84 deletions(-)

diff --git a/Assets/Prefabs/UI/FrostWord.prefab b/Assets/Prefabs/UI/FrostWord.prefab
new file mode 100644
index 0000000..efd0ea7
--- /dev/null
+++ b/Assets/Prefabs/UI/FrostWord.prefab
@@ -0,0 +1,94 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &3257525538472116254
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 3059469595041567074}
+  - component: {fileID: 598523906858100597}
+  - component: {fileID: 8715720225615642531}
+  - component: {fileID: 8223785166565473932}
+  m_Layer: 5
+  m_Name: FrostWord
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &3059469595041567074
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3257525538472116254}
+  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: 0}
+  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: 102, y: 42}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &598523906858100597
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3257525538472116254}
+  m_CullTransparentMesh: 0
+--- !u!114 &8715720225615642531
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3257525538472116254}
+  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: 074adf71b94a0ce44aaee741a68eca58, 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 &8223785166565473932
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3257525538472116254}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: f34b2e8d82a07c541958be6bda6fd604, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  bloodText: {fileID: 0}
+  SlowDownWord: {fileID: 0}
+  CritWord: {fileID: 0}
+  FrostWord: {fileID: 8715720225615642531}
diff --git a/Assets/Prefabs/UI/FrostWord.prefab.meta b/Assets/Prefabs/UI/FrostWord.prefab.meta
new file mode 100644
index 0000000..9d063ad
--- /dev/null
+++ b/Assets/Prefabs/UI/FrostWord.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: f2e6cecab2d55754b97f3ecafba0569c
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Scenes/Levels/Battle/Endless2D.unity b/Assets/Scenes/Levels/Battle/Endless2D.unity
index 78e090f..1781b49 100644
--- a/Assets/Scenes/Levels/Battle/Endless2D.unity
+++ b/Assets/Scenes/Levels/Battle/Endless2D.unity
@@ -6846,6 +6846,8 @@
     type: 3}
   CritWord: {fileID: 8715720225615642531, guid: d50687f6a62a08745981a9e471357e9c,
     type: 3}
+  FrostWord: {fileID: 8715720225615642531, guid: f2e6cecab2d55754b97f3ecafba0569c,
+    type: 3}
   TowerUpgradeEffectPrefab: {fileID: 6847503030253729540, guid: f8ec855cfd7e13a4ebb2f2cbb8bbc480,
     type: 3}
   TowerAppearEffectPrefab: {fileID: 1600692593755992933, guid: 3ac90252c12eda44094c4979e1677cbf,
diff --git a/Assets/Scripts/Enum/EndlessBuffEffectType.cs b/Assets/Scripts/Enum/EndlessBuffEffectType.cs
index 0ede021..d2a6126 100644
--- a/Assets/Scripts/Enum/EndlessBuffEffectType.cs
+++ b/Assets/Scripts/Enum/EndlessBuffEffectType.cs
@@ -39,5 +39,14 @@
 
         // 减少木属性强化子弹的蓄力时间
         DecreaseWoodChargeTime,
+
+        // 增加水精灵冰冻小怪的概率,水精灵普通攻击和技能都有概率造成冰冻,小怪被冰冻后不能移动
+        FrostProbabilityAdd,
+
+        // 增加水精灵冰冻伤害,小怪被冰冻后有额外伤害
+        FrostDamageAdd,
+
+        // 增加水精灵冰冻时间
+        FrostTimeAdd,
     }
 }
\ No newline at end of file
diff --git a/Assets/Scripts/TowerDefense/Affectors/AttackAffector.cs b/Assets/Scripts/TowerDefense/Affectors/AttackAffector.cs
index 57b8806..42120af 100644
--- a/Assets/Scripts/TowerDefense/Affectors/AttackAffector.cs
+++ b/Assets/Scripts/TowerDefense/Affectors/AttackAffector.cs
@@ -456,22 +456,6 @@
             if (towerPtr && towerPtr.FreezeBreathCtrl)
             {
                 Damager damager = projectile.gameObject.GetComponent<Damager>();
-                float finalDamage = damager.damage;
-
-                List<EndlessBuffConfig> list = EndlessBuffManager.instance.GetBuffListByEffectType(EndlessBuffEffectType.AttackAdd, towerPtr.ElfId);
-                float ratio = 0;
-                float add = 0;
-
-                if (list.Count > 0)
-                {
-                    for (int i = 0; i < list.Count; ++i)
-                    {
-                        ratio += list[i].Config.buff_effect[1];
-                        add += list[i].Config.buff_effect[2];
-                    }
-                }
-
-                finalDamage += (ratio / 100f) * finalDamage + add;
 
                 if (inFreezeBreath <= 0)
                 {
@@ -488,7 +472,7 @@
                         towerPtr.PlayFreezeBreathEffect(true);
                         towerPtr.FreezeBreathCtrl.ReleaseCount = 1;
                         towerPtr.FreezeBreathCtrl.PlayFreezeEffect(waveLineID);
-                        towerPtr.FreezeBreathCtrl.ReleaseFreeze(waveLineID, finalDamage, damager.alignmentProvider);
+                        towerPtr.FreezeBreathCtrl.ReleaseFreeze(waveLineID, towerPtr, damager.alignmentProvider);
                     }
                 }
                 else
@@ -501,7 +485,7 @@
                     if (interval == time * (towerPtr.FreezeBreathCtrl.DamageCount - towerPtr.FreezeBreathCtrl.ReleaseCount - 1) + offset && towerPtr.FreezeBreathCtrl.ReleaseCount < towerPtr.FreezeBreathCtrl.DamageCount)
                     {
                         ++towerPtr.FreezeBreathCtrl.ReleaseCount;
-                        towerPtr.FreezeBreathCtrl.ReleaseFreeze(waveLineID, finalDamage, damager.alignmentProvider);
+                        towerPtr.FreezeBreathCtrl.ReleaseFreeze(waveLineID, towerPtr, damager.alignmentProvider);
                     }
 
                     if (inFreezeBreath <= 0)
diff --git a/Assets/Scripts/TowerDefense/Agents/Agent.cs b/Assets/Scripts/TowerDefense/Agents/Agent.cs
index a78f418..36e7f02 100644
--- a/Assets/Scripts/TowerDefense/Agents/Agent.cs
+++ b/Assets/Scripts/TowerDefense/Agents/Agent.cs
@@ -222,10 +222,43 @@
         /// </summary>
         protected bool isSlowDown;
 
+        private bool isFrost;
+
         /// <summary>
         /// 是否处于冰冻状态
         /// </summary>
-        protected bool isFrost;
+        /// <value></value>
+        public bool IsFrost
+        {
+            get { return isFrost; }
+            set
+            {
+                if (!isFrost)
+                {
+                    if (value)
+                    {
+                        EndlessGameUI.instance.FloatFrostWord(transform.position);
+                        PlaySlowDownEffect();
+                        CanMove = false;
+                    }
+                }
+                else
+                {
+                    if (!value)
+                    {
+                        StopSlowDownEffect();
+                        CanMove = true;
+                    }
+                }
+
+                isFrost = value;
+            }
+        }
+
+        /// <summary>
+        /// 冰冻剩余时间,< 0时解除冰冻,冰冻期间不会被再次冰冻
+        /// </summary>
+        public float FrostRemainTime { get; set; }
 
         /// <summary>
         /// 中毒粒子特效
@@ -243,15 +276,9 @@
         public ParticleSystem SlowDownParticle;
 
         /// <summary>
-        /// 冰冻特效
-        /// </summary>
-        public ParticleSystem FrostParticle;
-
-        /// <summary>
         /// 被火技能攻击特效
         /// </summary>
         public ParticleSystem FireSkillParticle;
-
 
         /// <summary>
         /// 降低移动速度.
@@ -570,14 +597,6 @@
         protected virtual void SetAgentStopBuff(buffinfo binfo)
         {
             MoveStopTime = binfo.last / 1000;
-
-            if (!isFrost)
-            {
-                isFrost = true;
-
-                if (FrostParticle != null)
-                    FrostParticle.Play();
-            }
         }
 
         /// <summary>
@@ -685,12 +704,10 @@
             poisonAttid = 0;
             poisonTimes = 0;
             timeToPoisonHurt = 0;
-            isFrost = false;
+            IsFrost = false;
             bInDeathAct = false;
             ChangeState(AgentActionState.Move);
             configuration.ClearShieldWall();
-
-            StopFrostParticle();
 
             if (WoodAimCount > 0)
                 WoodAimCount = 0;
@@ -710,12 +727,6 @@
             // 停止DoTween动画.
             transform.DOKill();
             Destroy(gameObject);
-        }
-
-        private void StopFrostParticle()
-        {
-            if (FrostParticle != null)
-                FrostParticle.Stop();
         }
 
         /// <summary>	
@@ -908,6 +919,21 @@
             MoveStopTime = 0.0f;
         }
 
+        private void PlaySlowDownEffect()
+        {
+            if (SlowDownParticle != null)
+                SlowDownParticle.Play();
+        }
+
+        private void StopSlowDownEffect()
+        {
+            if (SlowDownParticle != null && !isSlowDown && !IsFrost)
+            {
+                SlowDownParticle.Stop();
+                SlowDownParticle.Clear();
+            }
+        }
+
         /// <summary>
         /// 根据帧间的时间,来更新Agent的位置信息,其它信息直接删除.
         /// 1: 
@@ -915,46 +941,19 @@
         /// <param name="deltaTime"></param>
         protected void updateAgentPos(float deltaTime)
         {
-            if ((!m_CurrentNode) || (!m_NextNode))
-                return;
-
-            // 是否处于停止状态.
-            if (MoveStopTime > 0)
-            {
-                MoveStopTime -= Time.deltaTime;
-                if (MoveStopTime <= 0)
-                {
-                    StopFrostParticle();
-                    MoveStopTime = 0;
-                }
-                else
-                    return;
-            }
-
-            if (fMoveSpeed == 0)
-            {
-                Debug.Log("当前的移动为零:" + fMoveSpeed);
-                return;
-            }
+            if (!m_CurrentNode || !m_NextNode || fMoveSpeed <= 0.0001f) return;
 
             float finalSpeed = fMoveSpeed * (1 - speedSlowRate);
 
             if (speedSlowRate > 0 && !isSlowDown)
             {
                 isSlowDown = true;
-
-                if (SlowDownParticle != null)
-                    SlowDownParticle.Play();
+                PlaySlowDownEffect();
             }
             else if (speedSlowRate == 0 && isSlowDown)
             {
                 isSlowDown = false;
-
-                if (SlowDownParticle != null)
-                {
-                    SlowDownParticle.Stop();
-                    SlowDownParticle.Clear();
-                }
+                StopSlowDownEffect();
             }
 
             Vector3 curPos = m_NavMeshAgent.transform.position;
@@ -1075,6 +1074,7 @@
         {
             UpdateAction();
             HandleShieldWall();
+            HandleFrost();
 
             // 处理死亡状态了,不必再移动:
             if (bInDeathAct || !CanMove) return;
@@ -1090,6 +1090,22 @@
                 updatePoison(Time.deltaTime);
         }
 
+        private void HandleFrost()
+        {
+            if (IsFrost)
+            {
+                if (FrostRemainTime > 0f)
+                {
+                    FrostRemainTime -= Time.deltaTime;
+
+                    if (FrostRemainTime <= 0f)
+                        IsFrost = false;
+                }
+                else
+                    IsFrost = false;
+            }
+        }
+
         protected virtual void Update()
         {
 
diff --git a/Assets/Scripts/TowerDefense/Level/EndlessBuff/EndlessBuffManager.cs b/Assets/Scripts/TowerDefense/Level/EndlessBuff/EndlessBuffManager.cs
index 652447f..65a1071 100644
--- a/Assets/Scripts/TowerDefense/Level/EndlessBuff/EndlessBuffManager.cs
+++ b/Assets/Scripts/TowerDefense/Level/EndlessBuff/EndlessBuffManager.cs
@@ -37,6 +37,9 @@
                 new FireRateAdd(),
                 new SkillLevelUp(),
                 new DecreaseWoodChargeTime(),
+                new FrostProbabilityAdd(),
+                new FrostDamageAdd(),
+                new FrostTimeAdd()
             };
         }
 
diff --git a/Assets/Scripts/TowerDefense/Level/EndlessBuff/FrostDamageAdd.cs b/Assets/Scripts/TowerDefense/Level/EndlessBuff/FrostDamageAdd.cs
new file mode 100644
index 0000000..0b31e1a
--- /dev/null
+++ b/Assets/Scripts/TowerDefense/Level/EndlessBuff/FrostDamageAdd.cs
@@ -0,0 +1,29 @@
+/**
+ * 13.增加水精灵冰冻伤害
+ * @Author: chenxin
+ * @Date: 2020-12-05 16:26:52
+ */
+namespace KTGMGemClient
+{
+    public class FrostDamageAdd : EndlessBuff
+    {
+        /// <summary>
+        /// 获得冰冻伤害增加(千分比)
+        /// </summary>
+        /// <param name="elfId"></param>
+        /// <returns></returns>
+        public float GetFrostDamageAdd(int elfId)
+        {
+            float ret = 0f;
+
+            for (int i = 0; i < BuffList.Count; ++i)
+            {
+                if (!IsEffective(BuffList[i], elfId)) continue;
+
+                ret += BuffList[i].Config.buff_effect[1] / 1000f;
+            }
+
+            return ret;
+        }
+    }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/TowerDefense/Level/EndlessBuff/FrostDamageAdd.cs.meta b/Assets/Scripts/TowerDefense/Level/EndlessBuff/FrostDamageAdd.cs.meta
new file mode 100644
index 0000000..dad1890
--- /dev/null
+++ b/Assets/Scripts/TowerDefense/Level/EndlessBuff/FrostDamageAdd.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 1989b6d565d1b4448a03c6d1990891d7
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Scripts/TowerDefense/Level/EndlessBuff/FrostProbabilityAdd.cs b/Assets/Scripts/TowerDefense/Level/EndlessBuff/FrostProbabilityAdd.cs
new file mode 100644
index 0000000..b62e46f
--- /dev/null
+++ b/Assets/Scripts/TowerDefense/Level/EndlessBuff/FrostProbabilityAdd.cs
@@ -0,0 +1,29 @@
+/**
+ * 12.增加水精灵冰冻小怪的概率
+ * @Author: chenxin
+ * @Date: 2020-12-05 16:26:20
+ */
+namespace KTGMGemClient
+{
+    public class FrostProbabilityAdd : EndlessBuff
+    {
+        /// <summary>
+        /// 获得冰冻概率
+        /// </summary>
+        /// <param name="elfId">精灵id</param>
+        /// <returns></returns>
+        public float GetFrostProbaility(int elfId)
+        {
+            float ret = 0f;
+
+            for (int i = 0; i < BuffList.Count; ++i)
+            {
+                if (!IsEffective(BuffList[i], elfId)) continue;
+
+                ret += BuffList[i].Config.buff_effect[1] / 1000f;
+            }
+
+            return ret;
+        }
+    }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/TowerDefense/Level/EndlessBuff/FrostProbabilityAdd.cs.meta b/Assets/Scripts/TowerDefense/Level/EndlessBuff/FrostProbabilityAdd.cs.meta
new file mode 100644
index 0000000..f2615f0
--- /dev/null
+++ b/Assets/Scripts/TowerDefense/Level/EndlessBuff/FrostProbabilityAdd.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d646272b865278e43940747659f5b397
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Scripts/TowerDefense/Level/EndlessBuff/FrostTimeAdd.cs b/Assets/Scripts/TowerDefense/Level/EndlessBuff/FrostTimeAdd.cs
new file mode 100644
index 0000000..95cbb52
--- /dev/null
+++ b/Assets/Scripts/TowerDefense/Level/EndlessBuff/FrostTimeAdd.cs
@@ -0,0 +1,34 @@
+/**
+ * 14.增加水精灵冰冻时间
+ * @Author: chenxin
+ * @Date: 2020-12-05 16:27:29
+ */
+namespace KTGMGemClient
+{
+    public class FrostTimeAdd : EndlessBuff
+    {
+        /// <summary>
+        /// 默认冰冻时间
+        /// </summary>
+        public static readonly float DefaultFrostTime = 2f;
+
+        /// <summary>
+        /// 获得冰冻时间
+        /// </summary>
+        /// <param name="elfId"></param>
+        /// <returns></returns>
+        public float GetFrostTime(int elfId)
+        {
+            float ret = 0f;
+
+            for (int i = 0; i < BuffList.Count; ++i)
+            {
+                if (!IsEffective(BuffList[i], elfId)) continue;
+
+                ret += BuffList[i].Config.buff_effect[1];
+            }
+
+            return ret + DefaultFrostTime;
+        }
+    }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/TowerDefense/Level/EndlessBuff/FrostTimeAdd.cs.meta b/Assets/Scripts/TowerDefense/Level/EndlessBuff/FrostTimeAdd.cs.meta
new file mode 100644
index 0000000..9dc7170
--- /dev/null
+++ b/Assets/Scripts/TowerDefense/Level/EndlessBuff/FrostTimeAdd.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 64857f832e43bdf43b6d7837092c3dd9
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Scripts/TowerDefense/Towers/Projectiles/BallisticAttack.cs b/Assets/Scripts/TowerDefense/Towers/Projectiles/BallisticAttack.cs
index 4a4c89c..bb293f6 100644
--- a/Assets/Scripts/TowerDefense/Towers/Projectiles/BallisticAttack.cs
+++ b/Assets/Scripts/TowerDefense/Towers/Projectiles/BallisticAttack.cs
@@ -1,9 +1,7 @@
 using ActionGameFramework.Health;
-using System;
 using TowerDefense.Agents;
 using TowerDefense.UI.HUD;
 using UnityEngine;
-using System.Collections.Generic;
 using KTGMGemClient;
 
 namespace TowerDefense.Towers.Projectiles
@@ -81,9 +79,9 @@
         /// 判断本次伤害是否暴击
         /// </summary>
         /// <returns></returns>
-        private bool IsCrit()
+        public static bool IsCrit(int elfId)
         {
-            elf_info info = ElfInfoData.GetDataById(TowerPtr.ElfId);
+            elf_info info = ElfInfoData.GetDataById(elfId);
             float crit = 0f;
 
             if (info != null)
@@ -92,7 +90,7 @@
             CritProbabilityAdd critProbabilityAdd = (CritProbabilityAdd)EndlessBuffManager.instance.GetBuffInstanceByType(EndlessBuffEffectType.CritProbabilityAdd);
 
             if (critProbabilityAdd != null)
-                crit = critProbabilityAdd.GetCrit(TowerPtr.ElfId, crit);
+                crit = critProbabilityAdd.GetCrit(elfId, crit);
 
             float random = UnityEngine.Random.Range(0, 1f);
 
@@ -103,11 +101,11 @@
         /// 获取暴击伤害增加比率
         /// </summary>
         /// <returns></returns>
-        private float GetCritDamageRate()
+        public static float GetCritDamageRate(int elfId)
         {
             CritDamageAdd critDamageAdd = (CritDamageAdd)EndlessBuffManager.instance.GetBuffInstanceByType(EndlessBuffEffectType.CritDamageAdd);
 
-            return critDamageAdd == null ? 0 : critDamageAdd.GetCritDamageRate(TowerPtr.ElfId);
+            return critDamageAdd == null ? 0 : critDamageAdd.GetCritDamageRate(elfId);
         }
 
         /// <summary>
@@ -124,17 +122,19 @@
             if (EndlessBuffManager.instanceExists)
                 basicDamage += EndlessBuffManager.instance.ProcessEndlessBuffAttack(basicDamage, TowerPtr.ElfId);
 
-            bool crit = IsCrit();
+            bool crit = IsCrit(TowerPtr.ElfId);
 
             if (crit)
             {
                 float basicCritDamageRate = info != null ? info.b_critdmg / 1000f : 0f;
-                basicDamage *= 1 + basicCritDamageRate + GetCritDamageRate();
+                basicDamage *= 1 + basicCritDamageRate + GetCritDamageRate(TowerPtr.ElfId);
             }
 
             // 玉米强化子弹10倍伤害
             if (isEnhancedBullet)
                 basicDamage *= 10f;
+
+            bool needFrost = HandleWaterFrost(TowerPtr.ElfId, (enemy as Agent), ref basicDamage);
 
             int deathCount = 0;
 
@@ -170,6 +170,16 @@
                 }
             }
 
+            if (!enemy.isDead && needFrost)
+            {
+                (enemy as Agent).IsFrost = true;
+                (enemy as Agent).FrostRemainTime = FrostTimeAdd.DefaultFrostTime;
+                FrostTimeAdd frostTimeAdd = (FrostTimeAdd)EndlessBuffManager.instance.GetBuffInstanceByType(EndlessBuffEffectType.FrostTimeAdd);
+
+                if (frostTimeAdd != null)
+                    (enemy as Agent).FrostRemainTime = frostTimeAdd.GetFrostTime(TowerPtr.ElfId);
+            }
+
             // 播放受击动画:
             if (!enemy.isDead && enemy.liveID == tid)
             {
@@ -182,6 +192,44 @@
         }
 
         /// <summary>
+        /// 处理水精灵冰冻
+        /// </summary>
+        /// <param name="elfId"></param>
+        /// <param name="enemy"></param>
+        /// <param name="basicDamage"></param>
+        /// <returns>是否需要冰冻,如果直接被打死就无所谓了,也不要飘字</returns>
+        public static bool HandleWaterFrost(int elfId, Agent enemy, ref float basicDamage)
+        {
+            bool needFrost = false;
+
+            if (elfId != 201) return needFrost;
+
+            // 处理冰冻状态中的额外伤害
+            if (enemy.IsFrost)
+            {
+                FrostDamageAdd frostDamageAdd = (FrostDamageAdd)EndlessBuffManager.instance.GetBuffInstanceByType(EndlessBuffEffectType.FrostDamageAdd);
+
+                if (frostDamageAdd != null)
+                    basicDamage *= (1 + frostDamageAdd.GetFrostDamageAdd(elfId));
+            }
+            else
+            {
+                FrostProbabilityAdd frostProbabilityAdd = (FrostProbabilityAdd)EndlessBuffManager.instance.GetBuffInstanceByType(EndlessBuffEffectType.FrostProbabilityAdd);
+
+                if (frostProbabilityAdd != null)
+                {
+                    float probaility = frostProbabilityAdd.GetFrostProbaility(elfId);
+                    float random = UnityEngine.Random.Range(0, 1);
+
+                    if (random <= probaility)
+                        needFrost = true;
+                }
+            }
+
+            return needFrost;
+        }
+
+        /// <summary>
         /// 处理塔位的属性攻击
         /// </summary>
         /// <param name="enemy"></param>
diff --git a/Assets/Scripts/TowerDefense/UI/FreezeBreath.cs b/Assets/Scripts/TowerDefense/UI/FreezeBreath.cs
index 28b05e4..e661dee 100644
--- a/Assets/Scripts/TowerDefense/UI/FreezeBreath.cs
+++ b/Assets/Scripts/TowerDefense/UI/FreezeBreath.cs
@@ -1,5 +1,4 @@
 using UnityEngine.UI;
-using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using DG.Tweening;
@@ -8,6 +7,8 @@
 using TowerDefense.Agents;
 using Core.Health;
 using TowerDefense.UI.HUD;
+using TowerDefense.Towers;
+using TowerDefense.Towers.Projectiles;
 
 /**
  * 水精灵技能-冷冻气息控制脚本
@@ -83,7 +84,7 @@
         /// </summary>
         /// <param name="waveLineId">哪条兵线</param>
         /// <param name="damage">伤害值</param>
-        public void ReleaseFreeze(int waveLineId, float damage, IAlignmentProvider alignmentProvider)
+        public void ReleaseFreeze(int waveLineId, Tower tower, IAlignmentProvider alignmentProvider)
         {
             WaveLineAgentInsMgr[] agentInsMgrs = AgentInsManager.instance.GetWaveLineList();
             WaveLineAgentInsMgr waveLineAgentInsMgr = agentInsMgrs[waveLineId];
@@ -110,6 +111,8 @@
 
                 if (agent.AgentType == SpawnAgentType.Normal)
                 {
+                    float damage = GetFinalDamage(tower, agent);
+                    bool needFrost = BallisticAttack.HandleWaterFrost(201, agent, ref damage);
                     agent.addSpeedSlowRate(0.15f);
                     agent.PlayOnHitImmediately();
                     EndlessGameUI.instance.FloatSlowDownWord(agent.position);
@@ -117,6 +120,15 @@
 
                     if (agent.isDead)
                         ++deathCount;
+                    else if (needFrost)
+                    {
+                        agent.IsFrost = true;
+                        agent.FrostRemainTime = FrostTimeAdd.DefaultFrostTime;
+                        FrostTimeAdd frostTimeAdd = (FrostTimeAdd)EndlessBuffManager.instance.GetBuffInstanceByType(EndlessBuffEffectType.FrostTimeAdd);
+
+                        if (frostTimeAdd != null)
+                            agent.FrostRemainTime = frostTimeAdd.GetFrostTime(201);
+                    }
                 }
                 else if (agent.AgentType == SpawnAgentType.BubbleBomb)
                     EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.EndlessBossSkillBubbleBombGetHit, (agent as BubbleBombAgent).Id);
@@ -126,6 +138,30 @@
                 EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.EndlessOneTimeKillCount, deathCount);
         }
 
+        private float GetFinalDamage(Tower tower, Agent agent)
+        {
+            if (tower == null || agent == null) return 0;
+
+            int elfId = 201;
+            // 基础伤害 = elf_info 基础攻击力 * elf_upgrade 攻击比率 / 1000f
+            float basicDamage = ElfInfoData.GetBasicDamage(elfId, tower.currentLevel);
+            elf_info info = ElfInfoData.GetDataById(elfId);
+
+            // 处理PVE无尽模式,buff增加的伤害
+            if (EndlessBuffManager.instanceExists)
+                basicDamage += EndlessBuffManager.instance.ProcessEndlessBuffAttack(basicDamage, elfId);
+
+            bool crit = BallisticAttack.IsCrit(elfId);
+
+            if (crit)
+            {
+                float basicCritDamageRate = info != null ? info.b_critdmg / 1000f : 0f;
+                basicDamage *= 1 + basicCritDamageRate + BallisticAttack.GetCritDamageRate(elfId);
+            }
+
+            return basicDamage;
+        }
+
         public void PlayFreezeEffect(int waveLineId)
         {
             WaveLineAgentInsMgr[] agentInsMgrs = AgentInsManager.instance.GetWaveLineList();
diff --git a/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs b/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs
index ac3e2a0..d4374be 100644
--- a/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs
+++ b/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs
@@ -133,6 +133,11 @@
         public Image CritWord;
 
         /// <summary>
+        /// 冰冻飘字
+        /// </summary>
+        public Image FrostWord;
+
+        /// <summary>
         /// 购买塔防按钮上的Text.
         /// </summary>
         protected TextMeshProUGUI towerPriceText;
@@ -2052,6 +2057,18 @@
             obj.GetComponent<TextMoveDoTween>().FloatCritWord(screenPos.x, screenPos.y);
         }
 
+        /// <summary>
+        /// 冰冻飘字
+        /// </summary>
+        /// <param name="worldPos"></param>
+        public void FloatFrostWord(Vector3 worldPos)
+        {
+            Vector3 screenPos = m_Camera.WorldToScreenPoint(worldPos);
+            GameObject obj = Instantiate(FrostWord.gameObject);
+            obj.GetComponent<Transform>().SetParent(GameObject.Find("MainUI/TextPanel").GetComponent<Transform>(), false);
+            obj.GetComponent<TextMoveDoTween>().FloatFrostWord(screenPos.x, screenPos.y);
+        }
+
         private void Start()
         {
             // 获取相应的放置区域。
diff --git a/Assets/Scripts/TowerDefense/UI/TextMoveDoTween.cs b/Assets/Scripts/TowerDefense/UI/TextMoveDoTween.cs
index 268a687..9d9466d 100644
--- a/Assets/Scripts/TowerDefense/UI/TextMoveDoTween.cs
+++ b/Assets/Scripts/TowerDefense/UI/TextMoveDoTween.cs
@@ -12,6 +12,8 @@
 
     public Image CritWord;
 
+    public Image FrostWord;
+
     private float scaleOffect = 1.5f;
 
     /// <summary>
@@ -92,6 +94,23 @@
         sequence.AppendCallback(() => { DestroyWord(); });
     }
 
+    public void FloatFrostWord(float x, float y)
+    {
+        Vector3 pos = FrostWord.transform.position;
+        pos.x = x;
+        pos.y = y;
+        pos.z = 0;
+        FrostWord.transform.position = pos;
+
+        Sequence sequence = DOTween.Sequence();
+        FrostWord.color = new Color(1f, 1f, 1f, 0.8f);
+        sequence.Join(DOTween.To(() => FrostWord.transform.position, (Vector3 v) => FrostWord.transform.position = v,
+            new Vector3(FrostWord.transform.position.x + 70 + UnityEngine.Random.Range(-15, 15), FrostWord.transform.position.y + 70 + UnityEngine.Random.Range(-15, 15), FrostWord.transform.position.z), 0.2f));
+        sequence.Append(DOTween.To(() => FrostWord.color, (Color v) => FrostWord.color = v, new Color(1f, 1f, 1f, 1f), 0.2f).SetEase(Ease.OutQuart));
+        sequence.Append(DOTween.To(() => FrostWord.color, (Color v) => FrostWord.color = v, new Color(1f, 1f, 1f, 0f), 0.3f).SetDelay(1f));
+        sequence.AppendCallback(() => { DestroyWord(); });
+    }
+
     private void WordMove(Graphic graphic, bool crit = false)
     {
         //获得Text的rectTransform,和颜色,并设置颜色微透明
diff --git a/Assets/StreamingAssets/Table/endless_buff.json b/Assets/StreamingAssets/Table/endless_buff.json
index 7a87e65..2d1f724 100644
--- a/Assets/StreamingAssets/Table/endless_buff.json
+++ b/Assets/StreamingAssets/Table/endless_buff.json
@@ -1 +1 @@
-[["1","低级火灵之力",[2,1],[1,10,0],"-1","增加全体火精灵10%攻击力","6","8",10001,1,"99"],["2","低级水灵之力",[2,2],[1,12,0],-1,"增加全体水精灵12%攻击力",6,8,10002,1,"99"],["3","低级木灵之力",[2,3],[1,15,0],-1,"增加全体木精灵15%攻击力",6,8,10003,1,"99"],["4","攻击力增加",[1,0],[1,8,0],"-1","增加全体8%攻击力","0",5,"10005","1","99"],["5","意外收获",[0],[2,200,0],0,"增加200金币","0","5","10007","1","99"],["6","精灵魔盒",[0],[3,2,200],0,"随机获得一个2级精灵","2","4",10006,"1","10"],["7","暴击增加",[1,0],[5,50,0],-1,"全体暴击率+5%","0","3","10021","1","3"],["8","爆伤增加",[1,0],[6,80,0],-1,"全体暴击伤害+8%","0","3","10022","1","2"],["9","火灵之力",[2,1],[1,20,0],-1,"增加全体火精灵20%攻击力",9,12,10001,2,"99"],["10","水灵之力",[2,2],[1,24,0],-1,"增加全体水精灵24%攻击力",9,12,10002,2,"99"],["11","木灵之力",[2,3],[1,30,0],-1,"增加全体木精灵30%攻击力",9,12,10003,2,"99"],["12","精灵之力",[1,0],[1,50,0],2,"2波增加全体精灵50%攻击力","99",99,"10005",2,1],["13","飞来横财",[0],[2,400,0],0,"增加400金币","6","8","10008","2","99"],["14","超级精灵魔盒",[0],[3,3,400],0,"随机获得一个3级精灵","5","7",10006,"2","10"],["15","暴击增加",[1,0],[5,100,0],-1,"全体暴击率+10%","4","7","10021","2","3"],["16","爆伤增加",[1,0],[6,150,0],-1,"全体暴击伤害+15%","4","7","10022","2","2"],["17","攻速增加",[1,0],[4,0.1,0.5],"-1","全体攻速+10%","0","5","10023","2","1"],["18","弹夹扩容",[3,301],[7,2,0],-1,"玉米精灵高能子弹+1",6,99,"10016","2","1"],["19","爆裂狂怒",[3,101],[9,7,0],-1,"火鸟精灵充能后攻速+35%",6,99,"10026","2","1"],["20","高级火灵之力",[2,1],[1,30,0],-1,"增加全体火精灵30%攻击力",13,"16","10001",3,"99"],["21","高级水灵之力",[2,2],[1,35,0],-1,"增加全体水精灵35%攻击力",13,"16","10002",3,"99"],["22","高级木灵之力",[2,3],[1,40,0],-1,"增加全体木精灵40%攻击力",13,"16","10003",3,"99"],["23","特级火灵之力",[2,1],[1,40,0],-1,"增加全体火精灵40%攻击力","17","99","10001","4","0"],["24","特级水灵之力",[2,2],[1,50,0],-1,"增加全体水精灵50%攻击力","17","99","10002","4","0"],["25","特级木灵之力",[2,3],[1,60,0],-1,"增加全体木精灵60%攻击力","17","99","10003","4","0"],["26","狂暴之力",[1,0],[1,65,0],2,"2波内增加全体精灵65%攻击力","99",99,10005,3,1],["27","攻速增加_水",[2,2],[4,0.25,0.5],-1,"水精灵攻速+25%","6",99,"10019",3,"2"],["28","攻速增加_火",[2,1],[4,0.3,0.5],-1,"火精灵攻速+30%",6,99,"10013",3,"2"],["29","攻速增加_木",[2,3],[4,0.2,0.5],-1,"木精灵攻速+20%",6,99,"10017",3,"2"],["30","暴击_木",[3,301],[5,300,0],-1,"木系精灵暴击率+30%",6,99,"10015",3,"2"],["31","暴怒_木",[3,301],[6,350,0],-1,"木系精灵暴击伤害+35%",6,99,"10014",3,"2"],["32","暴击_火",[3,101],[5,150,0],-1,"火系精灵暴击率+15%",6,99,"10012",3,"3"],["33","暴怒_火",[3,101],[6,200,0],-1,"火系精灵暴击伤害+20%",6,99,"10011",3,"2"],["34","暴击_水",[3,201],[5,300,0],-1,"水系精灵暴击率+30%",6,99,"10019",3,"2"],["35","暴怒_水",[3,201],[6,350,0],-1,"水系精灵暴击伤害+35%",6,99,"10020",3,"2"],["36","超级弹夹",[3,301],[7,3,0],-1,"玉米精灵高能子弹+2","9",99,"10016","4","1"],["37","超级爆裂狂怒",[3,101],[9,9,0],-1,"火鸟精灵充能后攻速+60%","9",99,"10026","4","1"],["38","技能提升",[4,0],[10,1,0],-1,"全体技能等级+1",6,99,"10005",3,"4"],["39","快速蓄能",[3,301],[11,0.3,0.8],-1,"玉米精灵蓄力时间-30%","7",99,"10018","4","3"],["40","中大奖",[0],[2,800,0],0,"增加800金币","9",99,"10010","3","99"],["41","特级精灵魔盒",[0],[3,4,800],0,"随机获得一个4级精灵","11","99","10006","4","2"]]
\ No newline at end of file
+[["1","低级火灵之力",[2,1],[1,10,0],"-1","增加全体火精灵10%攻击力","6","8",10001,1,"99"],["2","低级水灵之力",[2,2],[1,12,0],-1,"增加全体水精灵12%攻击力",6,8,10002,1,"99"],["3","低级木灵之力",[2,3],[1,15,0],-1,"增加全体木精灵15%攻击力",6,8,10003,1,"99"],["4","攻击力增加",[1,0],[1,8,0],"-1","增加全体8%攻击力","0",5,"10005","1","99"],["5","意外收获",[0],[2,200,0],0,"增加200金币","0","5","10007","1","99"],["6","精灵魔盒",[0],[3,2,200],0,"随机获得一个2级精灵","2","4",10006,"1","10"],["7","暴击增加",[1,0],[5,50,0],-1,"全体暴击率+5%","0","3","10021","1","3"],["8","爆伤增加",[1,0],[6,80,0],-1,"全体暴击伤害+8%","0","3","10022","1","2"],["9","火灵之力",[2,1],[1,20,0],-1,"增加全体火精灵20%攻击力",9,12,10001,2,"99"],["10","水灵之力",[2,2],[1,24,0],-1,"增加全体水精灵24%攻击力",9,12,10002,2,"99"],["11","木灵之力",[2,3],[1,30,0],-1,"增加全体木精灵30%攻击力",9,12,10003,2,"99"],["12","精灵之力",[1,0],[1,50,0],2,"2波增加全体精灵50%攻击力","99",99,"10005",2,1],["13","飞来横财",[0],[2,400,0],0,"增加400金币","6","8","10008","2","99"],["14","超级精灵魔盒",[0],[3,3,400],0,"随机获得一个3级精灵","5","7",10006,"2","10"],["15","暴击增加",[1,0],[5,100,0],-1,"全体暴击率+10%","4","7","10021","2","3"],["16","爆伤增加",[1,0],[6,150,0],-1,"全体暴击伤害+15%","4","7","10022","2","2"],["17","攻速增加",[1,0],[4,0.1,0.5],"-1","全体攻速+10%","0","5","10023","2","1"],["18","弹夹扩容",[3,301],[7,2,0],-1,"玉米精灵高能子弹+1",6,99,"10016","2","1"],["19","爆裂狂怒",[3,101],[9,7,0],-1,"火鸟精灵充能后攻速+35%",6,99,"10026","2","1"],["20","高级火灵之力",[2,1],[1,30,0],-1,"增加全体火精灵30%攻击力",13,"16","10001",3,"99"],["21","高级水灵之力",[2,2],[1,35,0],-1,"增加全体水精灵35%攻击力",13,"16","10002",3,"99"],["22","高级木灵之力",[2,3],[1,40,0],-1,"增加全体木精灵40%攻击力",13,"16","10003",3,"99"],["23","特级火灵之力",[2,1],[1,40,0],-1,"增加全体火精灵40%攻击力","17","99","10001","4","0"],["24","特级水灵之力",[2,2],[1,50,0],-1,"增加全体水精灵50%攻击力","17","99","10002","4","0"],["25","特级木灵之力",[2,3],[1,60,0],-1,"增加全体木精灵60%攻击力","17","99","10003","4","0"],["26","狂暴之力",[1,0],[1,65,0],2,"2波内增加全体精灵65%攻击力","99",99,10005,3,1],["27","攻速增加_水",[2,2],[4,0.25,0.5],-1,"水精灵攻速+25%","6",99,"10019",3,"2"],["28","攻速增加_火",[2,1],[4,0.3,0.5],-1,"火精灵攻速+30%",6,99,"10013",3,"2"],["29","攻速增加_木",[2,3],[4,0.2,0.5],-1,"木精灵攻速+20%",6,99,"10017",3,"2"],["30","暴击_木",[3,301],[5,300,0],-1,"木系精灵暴击率+30%",6,99,"10015",3,"2"],["31","暴怒_木",[3,301],[6,350,0],-1,"木系精灵暴击伤害+35%",6,99,"10014",3,"2"],["32","暴击_火",[3,101],[5,150,0],-1,"火系精灵暴击率+15%",6,99,"10012",3,"3"],["33","暴怒_火",[3,101],[6,200,0],-1,"火系精灵暴击伤害+20%",6,99,"10011",3,"2"],["34","暴击_水",[3,201],[5,300,0],-1,"水系精灵暴击率+30%",6,99,"10019",3,"2"],["35","暴怒_水",[3,201],[6,350,0],-1,"水系精灵暴击伤害+35%",6,99,"10020",3,"2"],["36","超级弹夹",[3,301],[7,3,0],-1,"玉米精灵高能子弹+2","9",99,"10016","4","1"],["37","超级爆裂狂怒",[3,101],[9,9,0],-1,"火鸟精灵充能后攻速+60%","9",99,"10026","4","1"],["38","技能提升",[4,0],[10,1,0],-1,"全体技能等级+1",6,99,"10005",3,"4"],["39","快速蓄能",[3,301],[11,0.3,0.8],-1,"玉米精灵蓄力时间-30%","7",99,"10018","4","3"],["40","中大奖",[0],[2,800,0],0,"增加800金币","9",99,"10010","3","99"],["41","特级精灵魔盒",[0],[3,4,800],0,"随机获得一个4级精灵","11","99","10006","4","2"],[42,"寒气_水",[3,201],[12,120,0],0,"水精灵任意攻击冰冻概率+12%",4,"99","10011",3,"3"],[43,"冻伤_水",[3,201],[13,300,0],0,"水精灵对冰冻的敌人伤害+30%",6,"99","10011",3,4],[44,"冰冻延时",[3,201],[14,1,0],0,"水精灵冰冻时间+1秒",7,"99","10011",3,3]]
\ No newline at end of file
diff --git a/Assets/UI/Frost.png b/Assets/UI/Frost.png
new file mode 100644
index 0000000..e93fde9
--- /dev/null
+++ b/Assets/UI/Frost.png
Binary files differ
diff --git a/Assets/UI/Frost.png.meta b/Assets/UI/Frost.png.meta
new file mode 100644
index 0000000..b1b2cf8
--- /dev/null
+++ b/Assets/UI/Frost.png.meta
@@ -0,0 +1,118 @@
+fileFormatVersion: 2
+guid: 074adf71b94a0ce44aaee741a68eca58
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -100
+    wrapU: 1
+    wrapV: 1
+    wrapW: -1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: 4
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

--
Gitblit v1.9.1