CombatHeroDisappearState.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
  2. using GameLogic.Combat.CombatTool;
  3. namespace GameLogic.Combat.Hero.State
  4. {
  5. public class CombatHeroDisappearState : CombatHeroStateBasic
  6. {
  7. protected bool isSwitch = false;
  8. private TimeLineEventLogicGroupBasic _timeLineEventLogicGroupBasic;
  9. public CombatHeroDisappearState(CombatHeroEntity combatHeroEntity) : base(combatHeroEntity)
  10. {
  11. }
  12. public override bool IsSwitch(IState nextState)
  13. {
  14. return isSwitch;
  15. }
  16. protected override void ProEnter()
  17. {
  18. isSwitch = false;
  19. HarmReturnInfo harmReturnInfo = new HarmReturnInfo();
  20. harmReturnInfo.harmType = HarmType.SystemKo;
  21. combatHeroEntity.HeroDie(harmReturnInfo);
  22. TimeLineEventLogicGroupBasic timeLineEventLogicGroup =
  23. combatHeroEntity.combatHeroTimeLineControl.AddEventLogicGroup("xiaoshi");
  24. if (timeLineEventLogicGroup != null)
  25. {
  26. timeLineEventLogicGroup.TimeLineUpdateEnd = delegate
  27. {
  28. CombatController.currActiveCombat.CombatHeroController.RemoveDieHero(combatHeroEntity);
  29. };
  30. }
  31. else
  32. {
  33. CombatController.currActiveCombat.CombatHeroController.RemoveDieHero(combatHeroEntity);
  34. }
  35. // combatHeroEntity.Dispose();
  36. }
  37. protected override void ProExit()
  38. {
  39. _timeLineEventLogicGroupBasic?.BreakTimeLine(combatHeroEntity);
  40. }
  41. }
  42. }