using Common.Utility.CombatEvent; using Fort23.Core; using GameLogic.Combat.CombatTool; using GameLogic.Player; namespace GameLogic.Combat.Buff { /// /// 灼热:对敌人照成{0}火属性灼烧伤害,满层后敌人获得灼痛,有灼痛时不在获得,满层时敌人会受到痛苦,敌人使用功法时自身受到当前生命{1}%伤 /// public class b_1005 : BuffBasic { private float _time; protected override void ProInit() { CombatEventManager.Instance.AddEventListener(CombatEventType.AddUseGongFa, AddUseGongFa); } private void AddUseGongFa(IEventData eventData) { AddUseGongFaEventData data = (AddUseGongFaEventData)eventData; if (data.SkillBasic.CombatHeroEntity == combatHeroEntity) { if (buffCount < buffInf.BuffConfig.overlayCount) { return; } float harmbl = buffInf.BuffConfig.effectValue[1]; long harm = CombatCalculateTool.Instance.GetVlaueRatioForLong( source.CurrCombatHeroInfo.hp.Value, harmbl); CombatCalculateTool.Instance.Harm(source, combatHeroEntity, harm, AttType.Buff, _triggerData, WuXingType.Fire,null,HarmType.Buff); } } protected override void ProUpdate(float t) { _time += t; if (_time >= 1) { _time -= 1; float harmbl = buffCount * buffInf.BuffConfig.effectValue[0]; long harm = CombatCalculateTool.Instance.GetVlaueRatioForLong( source.CurrCombatHeroInfo.attack.Value, harmbl); harm += CombatCalculateTool.Instance.GetVlaueRatioForLong( harm, source.CurrCombatHeroInfo.Fire_Proficient); CombatCalculateTool.Instance.Harm(source, combatHeroEntity, harm, AttType.Buff, _triggerData, WuXingType.Fire, null, HarmType.Buff); } } // protected override void ProUpdateEffect() // { // if (buffCount >= buffInf.BuffConfig.overlayCount) //最大叠加数量 // { // b_1010 b1010 = combatHeroEntity.BuffControl.GetBuffBasicForType(); // if (b1010 != null) // { // return; // } // // BuffInfo buffInfo = BuffInfo.GetBuffInfo(10101, 1,this); // combatHeroEntity.BuffControl.AddBuff(source, buffInfo); // // combatHeroEntity.BuffControl.RemoveBuff(this); // } // } protected override void ProDormancyObj() { CombatEventManager.Instance.RemoveEventListener(CombatEventType.AddUseGongFa, AddUseGongFa); } } }