S40001.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
  2. using GameLogic.Combat.CombatTool;
  3. using GameLogic.Combat.Hero;
  4. using UnityEngine;
  5. using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
  6. namespace GameLogic.Combat.Skill
  7. {
  8. /// <summary>
  9. /// 弓箭发射多个见
  10. /// </summary>
  11. public class S40001 : SkillBasic
  12. {
  13. private float _harm;
  14. protected int _count;
  15. protected int _currCount;
  16. protected override void ProInitSkillConfig()
  17. {
  18. _harm = SelfSkillConfig.effectValue[0];
  19. _count = 3;
  20. AddTriggerCallBack("sk1_fashe", Sk1_fasheTrigger);
  21. }
  22. protected override void ProUseSkill()
  23. {
  24. _finishTimeLineGroupName = "-1";
  25. _currCount = 0;
  26. ActiveSk1();
  27. }
  28. protected void ActiveSk1()
  29. {
  30. if (_currCount >= _count)
  31. {
  32. SkillPlayFinish();
  33. return;
  34. }
  35. _currCount++;
  36. TimeLineEventLogicGroupBasic currMyLoopGroupBasic = ActivationTimeLineData("sk1");
  37. currMyLoopGroupBasic.TimeLineUpdateEnd += ActiveSk1;
  38. }
  39. protected override ILifetCycleHitPoint[] ProGetTineLineTargetEntity(
  40. TimeLineEventLogicBasic timeLineEventLogicBasic)
  41. {
  42. if (CombatHeroEntity.CombatAIBasic.currFocusTarget == null)
  43. {
  44. return null;
  45. }
  46. return new[]
  47. {
  48. CombatHeroEntity.CombatAIBasic.currFocusTarget.GetThis<CombatHeroEntity>()
  49. .GetMainHotPoin<ILifetCycleHitPoint>()
  50. };
  51. }
  52. protected void Sk1_fasheTrigger(string groupName, CombatHeroHitPoint targetEntity,
  53. ITimelineFxLogic timelineFxLogic,
  54. TriggerData triggerData)
  55. {
  56. long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
  57. _harm);
  58. HarmReturnInfo harmReturnInfo = Harm(CombatHeroEntity, targetEntity,
  59. v, AttType.Skill, triggerData);
  60. }
  61. protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
  62. ITimelineFxLogic timelineFxLogic,
  63. TriggerData triggerData)
  64. {
  65. Vector3 eulerAngles = CombatHeroEntity.combatHeroGameObject.transform.rotation.eulerAngles;
  66. for (int i = -5; i < 5; i++)
  67. {
  68. Vector3 forward = CombatHeroEntity.combatHeroGameObject.transform.forward;
  69. Quaternion quaternion = Quaternion.AngleAxis(i * 5, Vector3.up);
  70. // quaternion = quaternion + CombatHeroEntity.combatHeroGameObject.transform.rotation;
  71. // Vector3 newAngle = new Vector3(eulerAngles.x, eulerAngles.y + i * 15+180, eulerAngles.z);
  72. // Quaternion quaternion = Quaternion.Euler(newAngle);
  73. forward = quaternion * forward;
  74. Vector3 targetPos = CombatHeroEntity.combatHeroGameObject.transform.position + forward;
  75. ActivationTimeLineData("sk1_fashe", null, new Vector3[] { targetPos });
  76. }
  77. }
  78. }
  79. }