| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 | using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;using GameLogic.Combat.CombatTool;using GameLogic.Combat.Hero;using UnityEngine;using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;namespace GameLogic.Combat.Skill{    /// <summary>    /// 弓箭发射多个见    /// </summary>    public class S40001 : SkillBasic    {        private float _harm;        protected int _count;        protected int _currCount;        protected override void ProInitSkill()        {            _harm = SelfSkillConfig.effectValue[0];            _count = 3;            AddTriggerCallBack("sk1_fashe", Sk1_fasheTrigger);        }        protected override void ProUseSkill()        {            _finishTimeLineGroupName = "-1";            _currCount = 0;            ActiveSk1();        }        protected void ActiveSk1()        {            if (_currCount >= _count)            {                SkillPlayFinish();                return;            }            _currCount++;            TimeLineEventLogicGroupBasic currMyLoopGroupBasic = ActivationTimeLineData("sk1");            currMyLoopGroupBasic.TimeLineUpdateEnd += ActiveSk1;        }        protected override ILifetCycleHitPoint[] ProGetTineLineTargetEntity(            TimeLineEventLogicBasic timeLineEventLogicBasic)        {            if (CombatHeroEntity.CombatAIBasic.currFocusTarget == null)            {                return null;            }            return new[]            {                CombatHeroEntity.CombatAIBasic.currFocusTarget.GetThis<CombatHeroEntity>()                    .GetMainHotPoin<ILifetCycleHitPoint>()            };        }        protected void Sk1_fasheTrigger(string groupName, CombatHeroHitPoint targetEntity,            ITimelineFxLogic timelineFxLogic,            TriggerData triggerData)        {            long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,                _harm);            HarmReturnInfo harmReturnInfo = Harm(CombatHeroEntity, targetEntity,                v, AttType.Skill, triggerData);        }        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,            ITimelineFxLogic timelineFxLogic,            TriggerData triggerData)        {            Vector3 eulerAngles = CombatHeroEntity.combatHeroGameObject.transform.rotation.eulerAngles;            for (int i = -5; i < 5; i++)            {                Vector3 forward = CombatHeroEntity.combatHeroGameObject.transform.forward;                Quaternion quaternion = Quaternion.AngleAxis(i * 5, Vector3.up);                // quaternion = quaternion + CombatHeroEntity.combatHeroGameObject.transform.rotation;                // Vector3 newAngle = new Vector3(eulerAngles.x, eulerAngles.y + i * 15+180, eulerAngles.z);                // Quaternion quaternion = Quaternion.Euler(newAngle);                forward = quaternion * forward;                Vector3 targetPos = CombatHeroEntity.combatHeroGameObject.transform.position + forward;                ActivationTimeLineData("sk1_fashe", null, new Vector3[] { targetPos });            }        }    }}
 |