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);
}
}
}
}