fBaseXtensions.XML.FunkyMoveToSnoTag.CreateBehavior C# (CSharp) Method

CreateBehavior() protected method

Main SafeMoveTo behavior
protected CreateBehavior ( ) : Composite
return Composite
        protected override Composite CreateBehavior()
        {
            return new Sequence(
                new DecoratorContinue(ret =>FunkyGame.GameIsInvalid,
                    new Action(ret => RunStatus.Failure)
                    ),

                new Action(ret => UpdateObject()),

                new Decorator(ret => ZetaDia.Me.IsDead,
                    new Action(ret => RunStatus.Failure)),

                new Decorator(ret => CurrentObject==null,
                    new Action(ret => _isDone=true)),

                //new Action(ret => GameUI.SafeClickUIButtons()),
                new PrioritySelector(
                    new Decorator(ctx => _tagStartTime != DateTime.UtcNow && DateTime.UtcNow.Subtract(_tagStartTime).TotalSeconds > Timeout,
                        new Sequence(
                            new Action(ret => Logger.DBLog.DebugFormat("Timeout of {0} seconds exceeded for Profile Behavior (start: {1} now: {2}) {3}", Timeout, _tagStartTime.ToLocalTime(), DateTime.Now, Status())),
                            new Action(ret => _isDone = true)
                            )
                        ),
                    new Switch<MoveResult>(ret => Move(),
                        new SwitchArgument<MoveResult>(MoveResult.ReachedDestination,
                            new Sequence(
                                new Action(ret => Logger.DBLog.DebugFormat("ReachedDestination! {0}", Status())),
                                new Action(ret => _isDone = true)
                                )
                            ),
                        new SwitchArgument<MoveResult>(MoveResult.PathGenerationFailed,
                            new Sequence(
                                new Action(ret => Logger.DBLog.DebugFormat("Move Failed: {0}! {1}", ret, Status())),
                                new Action(ret => _isDone = true)
                                )
                            )
                        )
                    )
                );
        }