1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
- using GameLogic.Combat.CombatTool;
- namespace GameLogic.Combat.Hero.State
- {
- public class CombatHeroDieState : CombatHeroStateBasic
- {
- public float resurrectionTime;
- protected bool isStartResurrection;
- protected bool isSwitch = false;
-
- public CombatHeroDieState(CombatHeroEntity combatHeroEntity) : base(combatHeroEntity)
- {
-
- }
- public override bool IsSwitch(IState nextState)
- {
- return isSwitch;
- }
-
-
- protected override void ProEnter()
- {
-
- isSwitch = false;
- resurrectionTime = 0;
- TimeLineEventLogicGroupBasic timeLineEventLogicGroup=combatHeroEntity.combatHeroTimeLineControl.AddEventLogicGroup("die");
-
- if (timeLineEventLogicGroup != null)
- {
- timeLineEventLogicGroup.TimeLineUpdateEnd = delegate
- {
- if (combatHeroEntity.IsEnemy)
- {
- CombatController.currActiveCombat.CombatHeroController.RemoveDieHero(combatHeroEntity);
- }
- else
- {
- isStartResurrection = true;
- combatHeroEntity.combatHeroTimeLineControl.AddEventLogicGroup("die_idle");
- }
- };
-
- }
- else
- {
- if (combatHeroEntity.IsEnemy)
- {
- CombatController.currActiveCombat.CombatHeroController.RemoveDieHero(combatHeroEntity);
- }
- else
- {
- isStartResurrection = true;
- combatHeroEntity.combatHeroTimeLineControl.AddEventLogicGroup("die_idle");
- }
- }
-
- // combatHeroEntity.Dispose();
- }
- protected override void ProUpdate(float t)
- {
- if (isStartResurrection)
- {
- resurrectionTime += t;
- if (resurrectionTime > 60)
- {
- isSwitch = true;
- isStartResurrection = false;
- resurrectionTime = 0;
- combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.Resurrection);
- }
- }
-
- }
- }
- }
|