CombatHeroDieState.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
  2. using GameLogic.Combat.CombatTool;
  3. namespace GameLogic.Combat.Hero.State
  4. {
  5. public class CombatHeroDieState : CombatHeroStateBasic
  6. {
  7. public float resurrectionTime;
  8. protected bool isStartResurrection;
  9. protected bool isSwitch = false;
  10. public CombatHeroDieState(CombatHeroEntity combatHeroEntity) : base(combatHeroEntity)
  11. {
  12. }
  13. public override bool IsSwitch(IState nextState)
  14. {
  15. return isSwitch;
  16. }
  17. protected override void ProEnter()
  18. {
  19. isSwitch = false;
  20. resurrectionTime = 0;
  21. TimeLineEventLogicGroupBasic timeLineEventLogicGroup=combatHeroEntity.combatHeroTimeLineControl.AddEventLogicGroup("die");
  22. if (timeLineEventLogicGroup != null)
  23. {
  24. timeLineEventLogicGroup.TimeLineUpdateEnd = delegate
  25. {
  26. if (combatHeroEntity.IsEnemy)
  27. {
  28. CombatController.currActiveCombat.CombatHeroController.RemoveDieHero(combatHeroEntity);
  29. }
  30. else
  31. {
  32. isStartResurrection = true;
  33. combatHeroEntity.combatHeroTimeLineControl.AddEventLogicGroup("die_idle");
  34. }
  35. };
  36. }
  37. else
  38. {
  39. if (combatHeroEntity.IsEnemy)
  40. {
  41. CombatController.currActiveCombat.CombatHeroController.RemoveDieHero(combatHeroEntity);
  42. }
  43. else
  44. {
  45. isStartResurrection = true;
  46. combatHeroEntity.combatHeroTimeLineControl.AddEventLogicGroup("die_idle");
  47. }
  48. }
  49. // combatHeroEntity.Dispose();
  50. }
  51. protected override void ProUpdate(float t)
  52. {
  53. if (isStartResurrection)
  54. {
  55. resurrectionTime += t;
  56. if (resurrectionTime > 60)
  57. {
  58. isSwitch = true;
  59. isStartResurrection = false;
  60. resurrectionTime = 0;
  61. combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.Resurrection);
  62. }
  63. }
  64. }
  65. }
  66. }