using GameLogic.Combat.CombatTool;
using GameLogic.Player;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
namespace GameLogic.Combat.Buff
{
    /// 
    /// 敌人持续流血{0}金属性伤害,满层后每隔{0}秒放血一次
    /// 
    public class b_1011 : BuffBasic
    {
        /// 
        /// 上次添加buff时间
        /// 
        private float lasetAddBuffTime;
        protected override void ProInit()
        {
            _jianGe = 1;
            lasetAddBuffTime = 0;
        }
        protected override void UpdateJumping()
        {
            float addHarm = BuffConfig.effectValue[0];
            b_1012 b1012 = combatHeroEntity.BuffControl.GetBuffBasicForType();
            if (b1012 != null)
            {
                addHarm += CombatCalculateTool.Instance.GetVlaueRatioForFloat(addHarm,
                    b1012.BuffConfig.effectValue[1]);
            }
            long harm = CombatCalculateTool.Instance.GetVlaueRatioForLong(source.CurrCombatHeroInfo.attack.Value,
                addHarm);
            harm += CombatCalculateTool.Instance.GetVlaueRatioForLong(
                harm, source.CurrCombatHeroInfo.Metal_Proficient);
            CombatCalculateTool.Instance.Harm(source, combatHeroEntity, harm, AttType.Buff, _triggerData,
                WuXingType.Gold, null);
        }
        protected override void ProUpdate(float t)
        {
            if (BuffConfig.ID <= 0)
            {
                return;
            }
            if (buffCount >= BuffConfig.overlayCount)
            {
                float currTime = CombatController.currActiveCombat.combatTime;
                if (currTime - lasetAddBuffTime >= BuffConfig.effectValue[1])
                {
                    lasetAddBuffTime = currTime;
                    b_1012 b1012 = combatHeroEntity.BuffControl.GetBuffBasicForType();
                    if (b1012 != null)
                    {
                        b1012.FangXue();
                        return;
                    }
                    BuffInfo buffInfo = BuffInfo.GetBuffInfo(10121, 1, this);
                    combatHeroEntity.BuffControl.AddBuff(source, buffInfo);
                }
            }
        }
    }
}