123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- 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.TimeLineData
- .GetTimeLineEventLogicGroup<TimeLineEventLogicGroupBasic>("die", null);
- if (timeLineEventLogicGroup != null)
- {
- timeLineEventLogicGroup.SetCombatInfo(combatHeroEntity, null, null, new TriggerData(), null);
- timeLineEventLogicGroup.TimeLineUpdateEnd = delegate
- {
- if (combatHeroEntity.IsEnemy)
- {
- CombatController.currActiveCombat.CombatHeroController.RemoveDieHero(combatHeroEntity);
- }
- else
- {
- isStartResurrection = true;
- }
- };
- combatHeroEntity.combatHeroTimeLineControl.AddEventLogicGroup(timeLineEventLogicGroup);
- }
- else
- {
- if (combatHeroEntity.IsEnemy)
- {
- CombatController.currActiveCombat.CombatHeroController.RemoveDieHero(combatHeroEntity);
- }
- else
- {
- isStartResurrection = true;
- }
- }
-
- // combatHeroEntity.Dispose();
- }
- protected override void ProUpdate(float t)
- {
- if (isStartResurrection)
- {
- resurrectionTime += t;
- if (resurrectionTime > 10)
- {
- isSwitch = true;
- isStartResurrection = false;
- resurrectionTime = 0;
- combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.Resurrection);
- }
- }
-
- }
- }
- }
|