MagicWeaponIdleState.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using Common.Utility.CombatEvent;
  2. using Fort23.Core;
  3. using GameLogic.Combat.CombatTool;
  4. using GameLogic.Combat.Hero.State;
  5. using UnityEngine;
  6. namespace GameLogic.Combat.Hero
  7. {
  8. public class MagicWeaponIdleState : CombatHeroStateBasic
  9. {
  10. private CombatMagicWeaponEntity myCombatMagicWeaponEntity;
  11. private Vector3 startPos;
  12. private Vector3 endPos;
  13. private float _addTime;
  14. private float _currTime;
  15. private float _awaitTime;
  16. public MagicWeaponIdleState(CombatHeroEntity combatHeroEntity) : base(combatHeroEntity)
  17. {
  18. myCombatMagicWeaponEntity = combatHeroEntity as CombatMagicWeaponEntity;
  19. }
  20. protected override void ProEnter()
  21. {
  22. _awaitTime = 1.0f;
  23. }
  24. protected override void ProUpdate(float t)
  25. {
  26. if (myCombatMagicWeaponEntity.MagicWeaponCollisionId >= 0)
  27. {
  28. myCombatMagicWeaponEntity.CombatAIBasic.ChangeState(CombatHeroStateType.move);
  29. return;
  30. }
  31. _awaitTime -= t;
  32. if (_awaitTime <= 0)
  33. {
  34. myCombatMagicWeaponEntity.CombatAIBasic.ChangeState(CombatHeroStateType.att);
  35. return;
  36. }
  37. Quaternion newQuaternion = Quaternion.LookRotation(Vector3.up);
  38. myCombatMagicWeaponEntity.GameObject.transform.rotation = Quaternion.RotateTowards(
  39. myCombatMagicWeaponEntity.GameObject.transform.rotation,
  40. newQuaternion, 5);
  41. }
  42. protected override void ProExit()
  43. {
  44. }
  45. public override bool IsUpdateLockTarget()
  46. {
  47. return false;
  48. }
  49. protected override void ProDispose()
  50. {
  51. }
  52. }
  53. }