using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic; using GameLogic.Combat.Buff; using GameLogic.Combat.CombatTool; using GameLogic.Combat.Hero; using UnityEngine; using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface; namespace GameLogic.Combat.Skill { /// /// 导电(被动) /// 每隔{0},敌人受到感电层数*{1}%的伤害 /// public class S9054 : SkillBasic { protected float _currTime; protected override void ProUseSkill() { } protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity, ITimelineFxLogic timelineFxLogic, TriggerData triggerData, ISkillFeatures skillFeatures) { float harmBl = 0; b_1018 b1018 = targetEntity.combatHeroEntity.BuffControl.GetBuffBasicForType(); if (b1018 != null) //消耗一层感电,额外照成伤害 { harmBl += b1018.buffCount * effectValue[1]; } long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value, harmBl); HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v, AttType.Skill, triggerData, wuXingType, skillFeatures, HarmType.Default); } protected override void ProCombatUpdate(float time) { _currTime += time; if (_currTime >= effectValue[0]) { _currTime = 0; // CombatHeroEntity[] allHero = // CombatController.currActiveCombat.CombatHeroController.GetHero(!CombatHeroEntity.IsEnemy); CombatHeroEntity targetHeroEntity = CombatHeroEntity.CombatAIBasic.currFocusTarget; if (targetHeroEntity != null) { b_1018 b1018 = targetHeroEntity.BuffControl.GetBuffBasicForType(); if (b1018 != null) { Vector3 targetPos = targetHeroEntity.dotPos; ActivationTimeLineData("9053_fashe", customizePos: new Vector3[] { targetPos }); int count = b1018.buffCount; float harmBl = count * effectValue[1]; long v = CombatCalculateTool.Instance.GetVlaueRatioForLong( CombatHeroEntity.CurrCombatHeroInfo.attack.Value, harmBl); HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetHeroEntity, v, AttType.Skill, triggerData, wuXingType, null, HarmType.Default); } } } } } }