using Common.Utility.CombatEvent; using Fort23.Core; using GameLogic.Combat.CombatTool; using GameLogic.Player; using UnityEngine; namespace GameLogic.Combat.Buff { /// /// 3、毒:每层毒对敌人每秒照成1%伤害,10层毒后毒气会入侵五脏对敌人对敌人施加噬魂 /// public class b_1003 : 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.effectValue[1]) { return; } BuffInfo buffInfo = null; switch (data.SkillBasic.wuXingType) { case WuXingType.Gold: buffInfo = BuffInfo.GetBuffInfo(10291, 1,this); break; case WuXingType.Fire: buffInfo = BuffInfo.GetBuffInfo(10321, 1,this); break; case WuXingType.Wood: buffInfo = BuffInfo.GetBuffInfo(10301, 1,this); break; case WuXingType.Earth: buffInfo = BuffInfo.GetBuffInfo(10331, 1,this); break; case WuXingType.Water: buffInfo = BuffInfo.GetBuffInfo(10311, 1,this); break; } combatHeroEntity.BuffControl.AddBuff(source, buffInfo); } } protected override void ProDormancyObj() { CombatEventManager.Instance.RemoveEventListener(CombatEventType.AddUseGongFa, AddUseGongFa); } 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.Wood_Proficient); CombatCalculateTool.Instance.Harm(source, combatHeroEntity, harm, AttType.Buff, _triggerData, WuXingType.Null,null,HarmType.Buff); } } protected override void ProUpdateEffect() { } } }