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 { /// /// 战士的旋风斩 /// public class S10001 : SkillBasic { protected float _harm; // protected protected override void ProInitSkillConfig() { _harm = SelfSkillConfig.effectValue[0]; AddTriggerCallBack("sk1_fashe", Sk1_fasheTrigger); } // protected override ILifetCycleHitPoint[] ProGetTineLineTargetEntity( // TimeLineEventLogicBasic timeLineEventLogicBasic) // { // ILifetCycleHitPoint[] allHero = new ILifetCycleHitPoint[_enterAlertTarget.Count]; // for (int i = 0; i < _enterAlertTarget.Count; i++) // { // allHero[i] = _enterAlertTarget[i].GetMainHotPoin(); // } // // return allHero; // } protected override void ProUseSkill() { ActivationTimeLineData("sk1"); } 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) { if (targetEntity.combatHeroEntity == CombatHeroEntity) { Vector3 forward = new Vector3(0, 0, 1); Vector3 eulerAngles = CombatHeroEntity.combatHeroGameObject.transform.eulerAngles; Vector3 zdPos = CombatHeroEntity.GetSpecialDotInfo("zdpos").GetWorlPos(); for (int i = 0; i < 4; i++) { eulerAngles.y = i * 90; // Quaternion quaternion = Quaternion.AngleAxis(i * 90, 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); Quaternion quaternion = Quaternion.Euler(eulerAngles); Vector3 newForward = quaternion * forward; Vector3 targetPos = zdPos + newForward; ActivationTimeLineData("sk1_fashe", null, new Vector3[] { targetPos }); } } else { long v = CombatCalculateTool.Instance.GetVlaueRatioForLong( CombatHeroEntity.CurrCombatHeroInfo.attack.Value, _harm); HarmReturnInfo harmReturnInfo = Harm(CombatHeroEntity, targetEntity, v, AttType.Skill, triggerData); } } } }