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 ProInitSkillConfig()
- {
- _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 });
- }
- }
- }
- }
|