using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic; using Excel2Json; 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 int count = 0; // protected protected override void ProInitSkillConfig() { count = 1; _harm = SelfSkillConfig.effectValue[0]; // if( AddTriggerCallBack("sk1_fashe", Sk1_fasheTrigger); } protected override void ProInitSkill() { SkillConfig skillBasic = CombatHeroEntity.CurrCombatHeroInfo.GetGroupSkillConfig(10004); if (skillBasic.ID>0) { count +=(int)skillBasic.effectValue[0]; } } 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(); int angle = 360 / count; for (int i = 0; i < count; i++) { eulerAngles.y = i * angle; // 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); } } } }