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 { /// /// 烈焰剑 向前方发出一柄剑,对敌人造成火系伤害,对敌人施加一层灼热,比有10%概率对敌人造成1火伤势 /// public class S1401 : SkillBasic { private static int[] zdPosIndex = new int[] { 9, 8, 7, 6, 5, 4, 3, 2, 1 }; protected override void ProUseSkill() { this.AddTriggerCallBack("lieyanjian_zd", ProDefaultTimeLineTrigger_ZD); ActivationTimeLineData("1401"); } protected override void ProTimelineFxLogicInit(string groupName, ITimelineFxLogic timelineFxLogic, TriggerData triggerData) { } protected void ProDefaultTimeLineTrigger_ZD(string groupName, CombatHeroHitPoint targetEntity, ITimelineFxLogic timelineFxLogic, TriggerData triggerData) { long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value, effectValue[1]); CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v, AttType.Skill, triggerData, wuXingType, HarmType.Default); int odds = CombatCalculateTool.Instance.GetOdd(0, 100); if (odds <= effectValue[2]) { BuffInfo buffInfo = BuffInfo.GetBuffInfo(10051, 1); targetEntity.combatHeroEntity.BuffControl.AddBuff(CombatHeroEntity, buffInfo); } if (SelfSkillConfig.level >= 5) //每个烈焰剑将会对敌人照成爆燃,爆燃额外受到100%伤害 { long v2 = CombatCalculateTool.Instance.GetVlaueRatioForLong( CombatHeroEntity.CurrCombatHeroInfo.attack.Value, effectValue[3]); CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v2, AttType.Skill, triggerData, wuXingType, HarmType.Default); } } protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity, ITimelineFxLogic timelineFxLogic, TriggerData triggerData) { for (int i = 0; i < effectValue[0]; i++) { CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget .GetThis() .GetMainHotPoin(); BetterList currTarget = new BetterList(1); currTarget.Add(combatHeroHitPoint); SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos" + zdPosIndex[i]); ActivationTimeLineData("lieyanjian_zd", currTarget: currTarget, customizePos: new Vector3[] { specialDotInfo.GetWorlPos() }, indexCount: i); } } } }