using System; using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic; using Fort23.Core; using GameLogic.Combat.CombatTool; using GameLogic.Combat.Hero; using UnityEngine; using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface; namespace GameLogic.Combat.Skill { /// /// 冰魄飞甲 /// 神龟龟甲一个虚影快速连续收缩,然后爆开,形成多个如同龟甲碎片的弹道,被命中的敌人受到{0}伤害,碎片无视敌人{1}%防御 /// public class S9021 : SkillBasic { protected override void ProInitSkill() { AddTriggerCallBack("9021_zd", ProDefaultTimeLineTrigger_9021_zd); } protected override void ProUseSkill() { ActivationTimeLineData("9021"); ballisticsCount = (int)effectValue[0]; Vector3 startPos = CombatHeroEntity.dotPos; CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget .GetThis() .GetMainHotPoin(); BetterList currTarget = new BetterList(); currTarget.Add(combatHeroHitPoint); Vector3 dir = (combatHeroHitPoint.combatHeroEntity.dotPos - startPos).normalized; bool isLafet = false; for (int i = 0; i < effectValue[0]; i++) { Vector3 endPos = Vector3.zero; if (i != 0) { int fh = (int)(Math.Pow(-1, i + 1) * Math.Ceiling(i / 2.0)); Quaternion quaternion = Quaternion.Euler(0, fh * 10, 0)*CombatHeroEntity.GameObject.transform.rotation; dir = quaternion * Vector3.forward; } endPos = dir * 30 + startPos+new Vector3(0,1,0); ActivationTimeLineData("9021_zd", currTarget: currTarget, customizePos: new Vector3[] { startPos, endPos }, indexCount: i); } } private void ProDefaultTimeLineTrigger_9021_zd(string groupName, CombatHeroHitPoint targetEntity, ITimelineFxLogic timelineFxLogic, TriggerData triggerData, ISkillFeatures skillFeatures) { HarmReturnInfo harmReturnInfo = CObjectPool.Instance.Fetch(); harmReturnInfo.ArmorPiercing = effectValue[2]; float harmBl = effectValue[1]; long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value, harmBl); harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v, AttType.Skill, triggerData, wuXingType, skillFeatures, HarmType.Default, harmReturnInfo: harmReturnInfo); } protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity, ITimelineFxLogic timelineFxLogic, TriggerData triggerData, ISkillFeatures skillFeatures) { } } }