wangguan
2020-11-18 a531019511b98a2f3fadcce9c2ec87922ab9c9ea
Assets/Scripts/TowerDefense/Affectors/AttackAffector.cs
@@ -132,7 +132,7 @@
        /// </summary>
        protected float freezeBreathCallTime = 0;
        protected float inFreezeBreath = 0;
        protected float inFreezeBreath;
        protected float freezeBreathBackTimer = 0;
@@ -405,22 +405,25 @@
                    if (processInt == (int)Mathf.Floor(FreezeBreath.ChargeTime))
                    {
                        inFreezeBreath = FreezeBreath.EffectTime;
                        inFreezeBreath = towerPtr.FreezeBreathCtrl.SkillTime;
                        towerPtr.FreezeBreathProgressOffset = 0;
                        towerPtr.PlayFreezeBreathEffect(true);
                        towerPtr.FreezeBreathCtrl.ReleaseCount = 1;
                        towerPtr.FreezeBreathCtrl.PlayFreezeEffect(waveLineID);
                        towerPtr.FreezeBreathCtrl.ReleaseFreeze(waveLineID, finalDamage, damager.alignmentProvider);
                    }
                }
                else
                {
                    inFreezeBreath -= Time.deltaTime;
                    int time = Mathf.FloorToInt(towerPtr.FreezeBreathCtrl.EffectTime / (towerPtr.FreezeBreathCtrl.DamageCount - 1) * 10);
                    int interval = Mathf.FloorToInt(inFreezeBreath * 10);
                    int offset = Mathf.FloorToInt(towerPtr.FreezeBreathCtrl.SkillTime * 10) - Mathf.FloorToInt(towerPtr.FreezeBreathCtrl.EffectTime * 10);
                    if (inFreezeBreath <= FreezeBreath.EffectTime / 2 && towerPtr.FreezeBreathCtrl.ReleaseCount != 2)
                    if (interval == time * (towerPtr.FreezeBreathCtrl.DamageCount - towerPtr.FreezeBreathCtrl.ReleaseCount - 1) + offset && towerPtr.FreezeBreathCtrl.ReleaseCount < towerPtr.FreezeBreathCtrl.DamageCount)
                    {
                        towerPtr.FreezeBreathCtrl.ReleaseCount = 2;
                        ++towerPtr.FreezeBreathCtrl.ReleaseCount;
                        towerPtr.FreezeBreathCtrl.ReleaseFreeze(waveLineID, finalDamage, damager.alignmentProvider);
                        return;
                    }
                    if (inFreezeBreath <= 0)
@@ -429,8 +432,6 @@
                        freezeBreathCallTime = 0;
                        towerPtr.FreezeBreathCtrl.SetProgress(0);
                        towerPtr.PlayFreezeBreathEffect(false);
                        towerPtr.FreezeBreathCtrl.ReleaseCount = 3;
                        towerPtr.FreezeBreathCtrl.ReleaseFreeze(waveLineID, finalDamage, damager.alignmentProvider);
                    }
                }
            }