Assets/Scripts/TowerDefense/Level/EndlessBuff/EndlessBuffManager.cs
@@ -34,7 +34,9 @@
                new CritDamageAdd(),
                new CritBulletAdd(),
                new SlowDown(),
                new FireRateAdd()
                new FireRateAdd(),
                new SkillLevelUp(),
                new DecreaseWoodChargeTime(),
            };
        }
@@ -46,21 +48,24 @@
            Debug.Log($"--- 获得buff:id {buff.Config.id}, name:{buff.Config.name} description:{buff.Config.brief} ---");
            ++buff.SelectCount;
            // 0表示只要被选择过,以后就不再出现了
            if (buff.Config.is_repeated == 0)
            // 有出现次数限制的
            if (buff.Config.get_times > 0 && buff.SelectCount >= buff.Config.get_times)
                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)
            if (endlessBuff != null)
            {
                endlessBuff.BuffList.Remove(buff);
                RemoveBuff(buff);
                endlessBuff.BuffList.Add(buff);
                endlessBuff.Handle();
                // 如果是一次性生效的buff,直接移除掉
                if (buff.LifeCycleType == EndlessBuffLifeCycleType.Once)
                {
                    endlessBuff.BuffList.Remove(buff);
                    RemoveBuff(buff);
                }
            }
        }
@@ -72,7 +77,7 @@
        {
            BuffList.Remove(buff);
            EndlessBuff endlessBuff = GetBuffInstanceByType((EndlessBuffEffectType)buff.Config.buff_effect[0]);
            endlessBuff.LoseEffect();
            endlessBuff?.LoseEffect();
        }
        /// <summary>
@@ -147,6 +152,9 @@
        /// <returns></returns>
        public EndlessBuff GetBuffInstanceByType(EndlessBuffEffectType type)
        {
            int tmp = (int)type - 1;
            if ((int)type - 1 >= instanceList.Count) return null;
            return instanceList[(int)type - 1];
        }
    }