| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 | 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{    /// <summary>    /// 冰魄飞甲    /// 神龟龟甲一个虚影快速连续收缩,然后爆开,形成多个如同龟甲碎片的弹道,被命中的敌人受到{0}伤害,碎片无视敌人{1}%防御    /// </summary>    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<CombatHeroEntity>()                .GetMainHotPoin<CombatHeroHitPoint>();            BetterList<ILifetCycleHitPoint> currTarget = new BetterList<ILifetCycleHitPoint>();            currTarget.Add(combatHeroHitPoint);            Vector3 dir = (combatHeroHitPoint.combatHeroEntity.dotPos - startPos).normalized;            bool isLafet = false;            for (int i = 0; i < effectValue[0]*15; 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 * 5, 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>();            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)        {        }    }}
 |