MagicWeaponMoveState.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using Common.Utility.CombatEvent;
  2. using Fort23.Core;
  3. using GameLogic.Combat.CombatTool;
  4. namespace GameLogic.Combat.Hero.State
  5. {
  6. public class MagicWeaponMoveState : CombatHeroStateBasic
  7. {
  8. private TimerEntity _timerEntity;
  9. public MagicWeaponMoveState(CombatHeroEntity combatHeroEntity) : base(combatHeroEntity)
  10. {
  11. }
  12. protected override void ProEnter()
  13. {
  14. // if (!combatHeroEntity.IsEnemy)
  15. // {
  16. combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle);
  17. return;
  18. // }
  19. }
  20. protected void FinishTimeLine()
  21. {
  22. if (CombatController.currActiveCombat.CombatTypeBasic.isActiveCombat)
  23. {
  24. ActiveHero();
  25. }
  26. }
  27. protected void ActiveHero()
  28. {
  29. _timerEntity = TimerComponent.Instance.AddTimer(CombatCalculateTool.Instance.GetOdd(0, 300),
  30. delegate
  31. {
  32. combatHeroEntity.GameObject.SetActive(true);
  33. combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.Active);
  34. });
  35. }
  36. private void ActiveCombat(IEventData eventData)
  37. {
  38. CombatEventManager.Instance.RemoveEventListener(CombatEventType.ActiveCombat, ActiveCombat);
  39. ActiveHero();
  40. }
  41. protected override void ProExit()
  42. {
  43. CombatEventManager.Instance.RemoveEventListener(CombatEventType.ActiveCombat, ActiveCombat);
  44. }
  45. public override bool IsUpdateLockTarget()
  46. {
  47. return false;
  48. }
  49. protected override void ProDispose()
  50. {
  51. TimerComponent.Instance.Remove(_timerEntity);
  52. CombatEventManager.Instance.RemoveEventListener(CombatEventType.ActiveCombat, ActiveCombat);
  53. }
  54. }
  55. }