S10001.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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 S10001 : SkillBasic
  12. {
  13. protected float _harm;
  14. protected int count = 0;
  15. // protected
  16. protected override void ProInitSkillConfig()
  17. {
  18. count = 1;
  19. _harm = SelfSkillConfig.effectValue[0];
  20. // if(
  21. AddTriggerCallBack("sk1_fashe", Sk1_fasheTrigger);
  22. }
  23. protected override void ProInitSkill()
  24. {
  25. SkillBasic skillBasic = CombatHeroEntity.CombatHeroSkillControl.GetSkillBasic(10004);
  26. if (skillBasic != null)
  27. {
  28. count +=(int)skillBasic.SelfSkillConfig.effectValue[0];
  29. }
  30. }
  31. protected override void ProUseSkill()
  32. {
  33. ActivationTimeLineData("sk1");
  34. }
  35. protected void Sk1_fasheTrigger(string groupName, CombatHeroHitPoint targetEntity,
  36. ITimelineFxLogic timelineFxLogic,
  37. TriggerData triggerData)
  38. {
  39. long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
  40. _harm);
  41. HarmReturnInfo harmReturnInfo = Harm(CombatHeroEntity, targetEntity,
  42. v, AttType.Skill, triggerData);
  43. }
  44. protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
  45. ITimelineFxLogic timelineFxLogic,
  46. TriggerData triggerData)
  47. {
  48. if (targetEntity.combatHeroEntity == CombatHeroEntity)
  49. {
  50. Vector3 forward = new Vector3(0, 0, 1);
  51. Vector3 eulerAngles = CombatHeroEntity.combatHeroGameObject.transform.eulerAngles;
  52. Vector3 zdPos = CombatHeroEntity.GetSpecialDotInfo("zdpos").GetWorlPos();
  53. int angle = 360 / count;
  54. for (int i = 0; i < count; i++)
  55. {
  56. eulerAngles.y = i * angle;
  57. // Quaternion quaternion = Quaternion.AngleAxis(i * 90, Vector3.up);
  58. // quaternion = quaternion + CombatHeroEntity.combatHeroGameObject.transform.rotation;
  59. // Vector3 newAngle = new Vector3(eulerAngles.x, eulerAngles.y + i * 15+180, eulerAngles.z);
  60. // Quaternion quaternion = Quaternion.Euler(newAngle);
  61. Quaternion quaternion = Quaternion.Euler(eulerAngles);
  62. Vector3 newForward = quaternion * forward;
  63. Vector3 targetPos = zdPos + newForward;
  64. ActivationTimeLineData("sk1_fashe", null, new Vector3[] { targetPos });
  65. }
  66. }
  67. else
  68. {
  69. long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(
  70. CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
  71. _harm);
  72. HarmReturnInfo harmReturnInfo = Harm(CombatHeroEntity, targetEntity,
  73. v, AttType.Skill, triggerData);
  74. }
  75. }
  76. }
  77. }