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)
)
)
)
)
);
}