S140003.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
  2. using Core.Utility;
  3. using Fort23.Core;
  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. /// 狼boss 第3个技能,跳跃攻击范围那的敌人
  12. /// </summary>
  13. public class S140003 : SkillBasic
  14. {
  15. private float _harm;
  16. private Parabola3DPath parabolaPath;
  17. protected float _currTime;
  18. protected float _addTime;
  19. protected override void ProInitSkillConfig()
  20. {
  21. _harm = SelfSkillConfig.effectValue[0];
  22. _addTime=1.0f/0.37f;
  23. }
  24. protected override void ProUseSkill()
  25. {
  26. ActivationTimeLineData("sk3");
  27. }
  28. protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
  29. ITimelineFxLogic timelineFxLogic,
  30. TriggerData triggerData)
  31. {
  32. _currTime = 0;
  33. parabolaPath = CObjectPool.Instance.Fetch<Parabola3DPath>();
  34. parabolaPath.addY += 3;
  35. Vector3 startPos = CombatHeroEntity.dotPos;
  36. Vector3 targetPos = startPos + CombatHeroEntity.faceDir * 4 ;
  37. parabolaPath.SetPos(startPos, targetPos);
  38. }
  39. protected override void ProSkillPlayFinish()
  40. {
  41. CObjectPool.Instance.Recycle(parabolaPath);
  42. parabolaPath = null;
  43. }
  44. protected override void ProCombatUpdate(float time)
  45. {
  46. if (parabolaPath != null)
  47. {
  48. _currTime += time*_addTime;
  49. Vector3 pos = parabolaPath.GetPositionAtTime(_currTime);
  50. CombatHeroEntity.combatHeroGameObject.SetPosition(pos);
  51. if (_currTime >= 1)
  52. {
  53. CObjectPool.Instance.Recycle(parabolaPath);
  54. parabolaPath = null;
  55. long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(
  56. CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
  57. _harm);
  58. for (int i = 0; i < _enterAlertTarget.Count; i++)
  59. {
  60. CombatHeroHitPoint combatHeroHitPoint = _enterAlertTarget[i].GetMainHotPoin<CombatHeroHitPoint>();
  61. HarmReturnInfo harmReturnInfo = Harm(CombatHeroEntity, combatHeroHitPoint,
  62. v, AttType.Skill, triggerData);
  63. }
  64. }
  65. }
  66. }
  67. }
  68. }