MagicWeaponChuChangState.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using GameLogic.Combat.CombatTool;
  2. using UnityEngine;
  3. namespace GameLogic.Combat.Hero.State
  4. {
  5. public class MagicWeaponChuChangState : CombatHeroStateBasic
  6. {
  7. private CombatMagicWeaponEntity myCombatMagicWeaponEntity;
  8. private Vector3 startPos;
  9. private Vector3 endPos;
  10. private float _addTime;
  11. private float _currTime;
  12. public MagicWeaponChuChangState(CombatHeroEntity combatHeroEntity) : base(combatHeroEntity)
  13. {
  14. myCombatMagicWeaponEntity = combatHeroEntity as CombatMagicWeaponEntity;
  15. }
  16. protected override void ProEnter()
  17. {
  18. myCombatMagicWeaponEntity.GameObject.SetActive(true);
  19. startPos = myCombatMagicWeaponEntity.MagicWeaponControl.combatHeroEntity.dotPos;
  20. float y = myCombatMagicWeaponEntity.IsEnemy ? 5 : 3;
  21. float x = myCombatMagicWeaponEntity.useIndex;
  22. endPos = startPos + new Vector3(x, y, 0);
  23. _addTime = 1.0f / (Vector3.Distance(startPos, endPos) / 10);
  24. _currTime = 0;
  25. }
  26. protected override void ProUpdate(float t)
  27. {
  28. _currTime += t * _addTime;
  29. Vector3 pos = Vector3.Lerp(startPos, endPos, _currTime);
  30. myCombatMagicWeaponEntity.combatHeroGameObject.SetPosition(pos);
  31. if (_currTime >= 1)
  32. {
  33. myCombatMagicWeaponEntity.isCombatState = true;
  34. myCombatMagicWeaponEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle);
  35. }
  36. }
  37. protected override void ProExit()
  38. {
  39. }
  40. public override bool IsUpdateLockTarget()
  41. {
  42. return false;
  43. }
  44. protected override void ProDispose()
  45. {
  46. }
  47. }
  48. }