S10001.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. using System;
  2. using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
  3. using Excel2Json;
  4. using GameLogic.Combat.CombatTool;
  5. using GameLogic.Combat.Hero;
  6. using UnityEngine;
  7. using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
  8. namespace GameLogic.Combat.Skill
  9. {
  10. /// <summary>
  11. /// 战士的旋风斩
  12. /// </summary>
  13. public class S10001 : SkillBasic
  14. {
  15. protected float _harm;
  16. protected int count = 0;
  17. // protected
  18. protected override void ProInitSkillConfig()
  19. {
  20. count = 1;
  21. _harm = SelfSkillConfig.effectValue[0];
  22. // if(
  23. AddTriggerCallBack("sk1_fashe", Sk1_fasheTrigger);
  24. }
  25. protected override void ProInitSkill()
  26. {
  27. SkillConfig skillBasic = CombatHeroEntity.CurrCombatHeroInfo.GetGroupSkillConfig(10004);
  28. if (skillBasic.ID > 0)
  29. {
  30. count += (int)skillBasic.effectValue[0];
  31. }
  32. }
  33. protected override void ProUseSkill()
  34. {
  35. ActivationTimeLineData("sk1");
  36. }
  37. protected void Sk1_fasheTrigger(string groupName, CombatHeroHitPoint targetEntity,
  38. ITimelineFxLogic timelineFxLogic,
  39. TriggerData triggerData)
  40. {
  41. long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
  42. _harm);
  43. HarmReturnInfo harmReturnInfo = Harm(CombatHeroEntity, targetEntity,
  44. v, AttType.Skill, triggerData);
  45. }
  46. protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
  47. ITimelineFxLogic timelineFxLogic,
  48. TriggerData triggerData)
  49. {
  50. if (targetEntity.combatHeroEntity == CombatHeroEntity)
  51. {
  52. Vector3 forward = new Vector3(0, 0, 1);
  53. Vector3 eulerAngles = CombatHeroEntity.combatHeroGameObject.transform.eulerAngles;
  54. Vector3 zdPos = CombatHeroEntity.GetSpecialDotInfo("zdpos").GetWorlPos();
  55. int angle = 90 / count;
  56. for (int i = 0; i < count; i++)
  57. {
  58. int c = 0;
  59. if (i % 2 == 0)
  60. {
  61. c = (i / 2);
  62. }
  63. else
  64. {
  65. c = (-(i + 1) / 2);
  66. }
  67. Vector3 currEulerAngles = eulerAngles + new Vector3(0, c * angle, 0);
  68. // Quaternion quaternion = Quaternion.AngleAxis(i * 90, Vector3.up);
  69. // quaternion = quaternion + CombatHeroEntity.combatHeroGameObject.transform.rotation;
  70. // Vector3 newAngle = new Vector3(eulerAngles.x, eulerAngles.y + i * 15+180, eulerAngles.z);
  71. // Quaternion quaternion = Quaternion.Euler(newAngle);
  72. Quaternion quaternion = Quaternion.Euler(currEulerAngles);
  73. Vector3 newForward = quaternion * forward;
  74. Vector3 targetPos = zdPos + newForward;
  75. ActivationTimeLineData("sk1_fashe", null, new Vector3[] { targetPos });
  76. }
  77. }
  78. else
  79. {
  80. long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(
  81. CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
  82. _harm);
  83. HarmReturnInfo harmReturnInfo = Harm(CombatHeroEntity, targetEntity,
  84. v, AttType.Skill, triggerData);
  85. }
  86. }
  87. }
  88. }