wangguan
2020-12-23 aadfae81e6a511cd2c062ab0b05f3ee3419f1a7f
Assets/Scripts/TowerDefense/Level/EndlessBuff/EndlessBuffManager.cs
@@ -34,7 +34,12 @@
                new CritDamageAdd(),
                new CritBulletAdd(),
                new SlowDown(),
                new FireRateAdd()
                new FireRateAdd(),
                new SkillLevelUp(),
                new DecreaseWoodChargeTime(),
                new FrostProbabilityAdd(),
                new FrostDamageAdd(),
                new FrostTimeAdd()
            };
        }
@@ -51,6 +56,9 @@
                EndlessBuffData.RemoveFromBuffPool(buff.Config.id);
            BuffList.Add(buff);
            EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.PlayBuffPS, buff.Config.get_buff);
            EndlessBuff endlessBuff = GetBuffInstanceByType((EndlessBuffEffectType)buff.Config.buff_effect[0]);
            if (endlessBuff != null)
@@ -114,7 +122,7 @@
        {
            List<EndlessBuffConfig> ret = new List<EndlessBuffConfig>();
            // 暂且先这么处理吧 如果1:火 2:水 3:木
            int attributeId = (int)Mathf.Floor(id / 10000f);
            int attributeId = (int)Mathf.Floor(id / 100f);
            for (int i = 0; i < BuffList.Count; ++i)
            {
@@ -155,5 +163,27 @@
            return instanceList[(int)type - 1];
        }
        /// <summary>
        /// 处理PVE无尽模式buff增加的伤害
        /// </summary>
        /// <param name="finalDamage"></param>
        public float ProcessEndlessBuffAttack(float finalDamage, int elfId)
        {
            List<EndlessBuffConfig> list = EndlessBuffManager.instance.GetBuffListByEffectType(EndlessBuffEffectType.AttackAdd, elfId);
            if (list.Count == 0) return 0;
            float ratio = 0;
            float add = 0;
            for (int i = 0; i < list.Count; ++i)
            {
                ratio += list[i].Config.buff_effect[1];
                add += list[i].Config.buff_effect[2];
            }
            return finalDamage * (ratio / 100f) + add;
        }
    }
}