fBaseXtensions.Behaviors.OutOfGame.CreateNewHero C# (CSharp) Method

CreateNewHero() public static method

public static CreateNewHero ( ) : RunStatus
return RunStatus
        public static RunStatus CreateNewHero()
        {
            if (DateTime.Now.Subtract(LastActionTaken).TotalMilliseconds > 1000)
            {
                if (UI.ValidateUIElement(UI.GameMenu.SwitchHeroButton))
                {
                    if (NewCharacterName == null)
                    {
                        UI.GameMenu.SwitchHeroButton.Click();
                    }
                    else if (ZetaDia.Service.Hero.Name == NewCharacterName)
                    {
                        Logger.Write(LogLevel.OutOfGame, "Successfully Created New Character");
                        return RunStatus.Success;
                    }
                }
                else if (UI.ValidateUIElement(UI.GameMenu.CreateHeroButton))
                {
                    UI.GameMenu.CreateHeroButton.Click();
                }
                else if (UI.ValidateUIElement(UI.GameMenu.HeroNameText))
                {
                    if (!SelectedClass)
                    {
                        UIElement thisClassButton = UI.GameMenu.SelectHeroType(ActorClass.DemonHunter);
                        if (thisClassButton != null && thisClassButton.IsValid && thisClassButton.IsEnabled && thisClassButton.IsVisible)
                        {
                            thisClassButton.Click();
                            SelectedClass = true;
                        }
                    }
                    else
                    {
                        if (NewCharacterName == null)
                            NewCharacterName = GenerateRandomText();

                        if (UI.GameMenu.HeroNameText.IsValid)
                        {
                            Logger.Write(LogLevel.OutOfGame, "Valid TextObject for character name UI");
                        }

                        if (!UI.GameMenu.HeroNameText.HasText)
                        {
                            UI.GameMenu.HeroNameText.SetText(NewCharacterName.Substring(0, 1));
                        }
                        else
                        {
                            if (UI.GameMenu.HeroNameText.Text != NewCharacterName)
                            {
                                UI.GameMenu.HeroNameText.SetText(NewCharacterName.Substring(0, UI.GameMenu.HeroNameText.Text.Length + 1));
                            }
                            else if (UI.ValidateUIElement(UI.GameMenu.CreateNewHeroButton))
                            {
                                UI.GameMenu.CreateNewHeroButton.Click();
                            }
                        }
                    }
                }

                LastActionTaken = DateTime.Now;
            }
            return RunStatus.Running;
        }