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 = buffInf.BuffConfig.effectValue[0];
b_1012 b1012 = combatHeroEntity.BuffControl.GetBuffBasicForType();
if (b1012 != null)
{
addHarm += CombatCalculateTool.Instance.GetVlaueRatioForFloat(addHarm,
b1012.buffInf.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 (buffCount >= buffInf.BuffConfig.overlayCount)
{
float currTime = CombatController.currActiveCombat.combatTime;
if (currTime - lasetAddBuffTime >= buffInf.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);
}
}
}
}
}