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}照成伤害,没道刀气并对敌人照成流血 /// 刀气现在在命中目标后能为玩家带来伤害的20%生命恢复 /// 刀气+1 /// 刀气对放血的目标照成的伤害提升200%,并再次让敌人放血 /// public class S1103 : SkillBasic { protected override void ProUseSkill() { ActivationTimeLineData("1103"); CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget .GetThis() .GetMainHotPoin(); BetterList currTarget = new BetterList(); currTarget.Add(combatHeroHitPoint); for (int i = 0; i < effectValue[0]; i++) { float startTime = i * -0.02f; SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos" + (i + 2)); ActivationTimeLineData("1103_fashe", currTarget: currTarget, customizePos: new Vector3[] { specialDotInfo.GetWorlPos() }, indexCount: i,startTime:startTime); } } protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity, ITimelineFxLogic timelineFxLogic, TriggerData triggerData) { float addHarm = effectValue[1]; if (SelfSkillConfig.level > 5) { b_1012 b1012 = targetEntity.combatHeroEntity.BuffControl.GetBuffBasicForType(); if (b1012 != null) { addHarm += SelfSkillConfig.effectValue[4]; b1012.FangXue(); } } long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value, addHarm); HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v, AttType.Skill, triggerData, wuXingType, HarmType.Default); if (harmReturnInfo.isHitHero) { int odds = CombatCalculateTool.Instance.GetOdd(0, 100); if (odds <= effectValue[2]) { BuffInfo buffInfo = BuffInfo.GetBuffInfo(10111, 1); targetEntity.combatHeroEntity.BuffControl.AddBuff(CombatHeroEntity, buffInfo); } if (SelfSkillConfig.level > 1) { long huiFu = CombatCalculateTool.Instance.GetVlaueRatioForLong(harmReturnInfo.att, effectValue[3]); CombatCalculateTool.Instance.Recover(CombatHeroEntity, CombatHeroEntity.GetMainHotPoin(), huiFu, AttType.Skill, HarmType.Recover, triggerData); } } } } }