S10001.cs 3.3 KB

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