private void _ToMove(float direction,long time) { BehaviorStage.OnBegin begin = () => { var speedChange = new SpeedChangeBehaviorHandler(_Entity); var move = new MoveBehaviorHandler(_Entity); var stop = new StopToIdleBehaviorHandler(_Entity); var idle = new MoveToIdleBehaviorHandler(_Entity); var injury = new IdleToInjuryBehaviorHandler(_Entity); speedChange.MoveEvent += _ToMove; move.MoveEvent += _ToMove; stop.DoneEvent += _ToIdle; idle.DoneEvent += _ToIdle; injury.DoneEvent += _ToInjury; _EntityMove(direction, time); var actor = _Entity.FindAbility<IActorPropertyAbility>(); actor.BeginExpendEnergy(); return new IBehaviorHandler[] { move, stop, idle, injury, speedChange }; }; _ChangeStage(begin); }
private void _ToIdle() { _ChangeStage(() => { var move = new MoveBehaviorHandler(_Entity); var injury = new IdleToInjuryBehaviorHandler(_Entity); var skill = new IdleToSkillBehaviorHandler(_Entity); var knockout = new KnockoutBehaviorHandler(_Entity); injury.DoneEvent += _ToInjury; move.MoveEvent += _ToMove; skill.SkillEvent += _ToSkill; knockout.DoneEvent += _ToKnockout; var actor = _Entity.FindAbility<IActorPropertyAbility>(); actor.EndExpendEnergy(); _EntityAct(new Serializable.ActionCommand() { Command = ActionStatue.Idle_1, Turn = true } ); return new IBehaviorHandler[] { injury, move, skill, knockout }; }); }