MagicWeaponChuChangState.cs 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
  2. using GameLogic.Combat.CombatTool;
  3. using UnityEngine;
  4. namespace GameLogic.Combat.Hero.State
  5. {
  6. public class MagicWeaponChuChangState : CombatHeroStateBasic
  7. {
  8. private CombatMagicWeaponEntity myCombatMagicWeaponEntity;
  9. private Vector3 startPos;
  10. private Vector3 endPos;
  11. private float _addTime;
  12. private float _currTime;
  13. private TimeLineEventLogicGroupBasic timeLineEventLogicGroup;
  14. public MagicWeaponChuChangState(CombatHeroEntity combatHeroEntity) : base(combatHeroEntity)
  15. {
  16. myCombatMagicWeaponEntity = combatHeroEntity as CombatMagicWeaponEntity;
  17. }
  18. protected override void ProEnter()
  19. {
  20. timeLineEventLogicGroup =
  21. combatHeroEntity.combatHeroTimeLineControl.AddEventLogicGroup("jihuo");
  22. myCombatMagicWeaponEntity.GameObject.SetActive(true);
  23. startPos = myCombatMagicWeaponEntity.MagicWeaponControl.combatHeroEntity.dotPos;
  24. float y = myCombatMagicWeaponEntity.IsEnemy ? 5 : 3;
  25. float x = myCombatMagicWeaponEntity.useIndex;
  26. endPos = startPos + new Vector3(x, y, 0);
  27. _addTime = 1.0f / (Vector3.Distance(startPos, endPos) / 3);
  28. _currTime = 0;
  29. }
  30. protected override void ProUpdate(float t)
  31. {
  32. _currTime += t * _addTime;
  33. Vector3 pos = Vector3.Lerp(startPos, endPos, _currTime);
  34. myCombatMagicWeaponEntity.combatHeroGameObject.SetPosition(pos);
  35. if (_currTime >= 1)
  36. {
  37. if (timeLineEventLogicGroup != null)
  38. {
  39. timeLineEventLogicGroup.CloseLoopFx();
  40. }
  41. // myCombatMagicWeaponEntity.GameObject.SetActive(true);
  42. timeLineEventLogicGroup =
  43. combatHeroEntity.combatHeroTimeLineControl.AddEventLogicGroup("show");
  44. if (timeLineEventLogicGroup != null)
  45. {
  46. timeLineEventLogicGroup.TimeLineUpdateEnd = delegate()
  47. {
  48. timeLineEventLogicGroup.CloseLoopFx();
  49. myCombatMagicWeaponEntity.isCombatState = true;
  50. myCombatMagicWeaponEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle);
  51. };
  52. }
  53. else
  54. {
  55. myCombatMagicWeaponEntity.isCombatState = true;
  56. myCombatMagicWeaponEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle);
  57. }
  58. }
  59. }
  60. protected override void ProExit()
  61. {
  62. }
  63. public override bool IsUpdateLockTarget()
  64. {
  65. return false;
  66. }
  67. protected override void ProDispose()
  68. {
  69. }
  70. }
  71. }