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); } } } } }