XiaoShiAndShow.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
  2. using UnityEngine;
  3. using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic;
  4. namespace GameLogic.Combat.Skill.MagicSkill
  5. {
  6. public class XiaoShiAndShow : MagicAttShowBasic
  7. {
  8. private Vector3 currSize;
  9. private Vector3 targetSize;
  10. private Vector3 currPos;
  11. private Vector3 targetPos;
  12. private float currTime;
  13. private float moveSpeed;
  14. protected bool isUpdateMove;
  15. protected override void ProInit()
  16. {
  17. }
  18. protected override void ProSetInfo()
  19. {
  20. isUpdateMove = false;
  21. TimeLineEventLogicGroupBasic timeLineEventLogicGroupBasic =
  22. _skillBasic.ActivationTimeLineData("sk1_xiaoshi");
  23. timeLineEventLogicGroupBasic.TimeLineUpdateEnd = XiaoShiFinish;
  24. }
  25. private void XiaoShiFinish()
  26. {
  27. TimeLineMagicWeaponShowPointSerializtion timeLineMagicWeaponShowPointSerializtion = CombatHeroEntity
  28. .combatHeroTimeLineControl
  29. .GetTimeLineEventInfo<TimeLineMagicWeaponShowPointSerializtion>("sk1_show");
  30. if (timeLineMagicWeaponShowPointSerializtion != null)
  31. {
  32. switch (timeLineMagicWeaponShowPointSerializtion.showPointType)
  33. {
  34. case TimeLineMagicWeaponShowPointSerializtion.ShowPointType.Head:
  35. Vector3 headPos = target.dotPos + new Vector3(0, 5, 0);
  36. CombatHeroEntity.combatHeroGameObject.SetPosition(headPos);
  37. break;
  38. case TimeLineMagicWeaponShowPointSerializtion.ShowPointType.Customize:
  39. SpecialDotInfo specialDotInfo =
  40. target.GetSpecialDotInfo(timeLineMagicWeaponShowPointSerializtion.customizePointName);
  41. CombatHeroEntity.combatHeroGameObject.SetPosition(specialDotInfo.GetWorlPos());
  42. break;
  43. }
  44. }
  45. else
  46. {
  47. Vector3 headPos = target.dotPos + new Vector3(0, 5, 0);
  48. CombatHeroEntity.combatHeroGameObject.SetPosition(headPos);
  49. }
  50. TimeLineEventLogicGroupBasic timeLineEventLogicGroupBasic =
  51. _skillBasic.ActivationTimeLineData("sk1_show");
  52. timeLineEventLogicGroupBasic.TimeLineUpdateEnd = ShowFinish;
  53. }
  54. private void ShowFinish()
  55. {
  56. TimeLineEventLogicGroupBasic timeLineEventLogicGroupBasic =
  57. _skillBasic.ActivationTimeLineData("sk1");
  58. if (timeLineEventLogicGroupBasic != null) //有表现.播表现,不需要位移
  59. {
  60. timeLineEventLogicGroupBasic.TimeLineUpdateEnd = AllFinish;
  61. }
  62. else //位移
  63. {
  64. currSize = Vector3.one;
  65. targetSize = Vector3.one * 2f;
  66. currPos = CombatHeroEntity.dotPos;
  67. targetPos = target.dotPos;
  68. currTime = 0;
  69. isUpdateMove = true;
  70. }
  71. }
  72. private void AllFinish()
  73. {
  74. callBack?.Invoke();
  75. }
  76. protected override void ProUpdate(float t)
  77. {
  78. if (!isUpdateMove)
  79. {
  80. return;
  81. }
  82. currTime += t;
  83. Vector3 size = Vector3.Lerp(currSize, targetSize, currTime);
  84. Vector3 pos = Vector3.Lerp(currPos, targetPos, currTime);
  85. CombatHeroEntity.combatHeroGameObject.SetPosition(pos);
  86. CombatHeroEntity.combatHeroGameObject.SetScale(size);
  87. if(currTime>1)
  88. {
  89. AllFinish();
  90. }
  91. }
  92. }
  93. }