fBaseXtensions.Behaviors.CharacterControl.GamblingCharacterSwitchBehavior C# (CSharp) Method

GamblingCharacterSwitchBehavior() public static method

public static GamblingCharacterSwitchBehavior ( ) : RunStatus
return RunStatus
        public static RunStatus GamblingCharacterSwitchBehavior()
        {
            if (!_delayer.Test(5d))
                return RunStatus.Running;

            if (GamblingCharacterSwitchToMain)
            {
                if (!_initalDelayStarted)
                {
                    _initalstartTime = DateTime.Now;
                    _initalDelayStarted = true;
                }
                var initaldelayStartSecs = DateTime.Now.Subtract(_initalstartTime).TotalSeconds;
                if (initaldelayStartSecs < 7)
                {
                    BotMain.StatusText = "[Funky] Switching to Main Hero (Waiting for inital delay! [" + initaldelayStartSecs + " secs])";
                    return RunStatus.Running;
                }

                BotMain.StatusText = "[Funky] Switching to Main Hero";
                ZetaDia.Memory.ClearCache();
                HeroInfo curheroinfo = new HeroInfo(ZetaDia.Service.Hero);

                if (!curheroinfo.Equals(MainHeroInfo))
                {//Need To Switch back to main hero!

                    Logger.DBLog.DebugFormat("Current Hero Info Mismatched -- Current Hero {0}\r\nMain Hero{1}",
                        curheroinfo.ToString(), MainHeroInfo.ToString());

                    if (_mainHeroIndexes.Count == 0)
                    {//Get a list of possible heroes using our index list (matching hero class and name)
                        foreach (var c in HeroIndexInfo.Characters.Where(c => c.Class == MainHeroInfo.Class && c.Name == MainHeroInfo.Name))
                        {
                            _mainHeroIndexes.Add(c.Index);
                        }
                    }
                    else
                    {//Switch and remove index from list
                        int mainheroIndex = _mainHeroIndexes.First();
                        Logger.DBLog.InfoFormat("[Funky] Switching to Main Hero -- Index {0}", mainheroIndex);
                        ZetaDia.Service.GameAccount.SwitchHero(mainheroIndex);
                        _mainHeroIndexes.RemoveAt(0);
                    }
                }
                else
                {//Finished! Reset the variables.
                    FunkyGame.ShouldRefreshAccountDetails = true;
                    PluginSettings.LoadSettings();
                    _initalDelayStarted = false;
                    MainHeroInfo = null;
                    AltHeroInfo = null;
                    GamblingCharacterSwitch = false;
                    GamblingCharacterSwitchToMain = false;
                    _mainHeroIndexes.Clear();
                    return RunStatus.Success;
                }

                return RunStatus.Running;
            }

            //Update Main Hero Info and Switch to Alt Hero!
            if (MainHeroInfo == null)
            {
                if (!_initalDelayStarted)
                {
                    _initalstartTime = DateTime.Now;
                    _initalDelayStarted = true;
                }
                var initaldelayStartSecs = DateTime.Now.Subtract(_initalstartTime).TotalSeconds;
                if (initaldelayStartSecs < 7)
                {
                    BotMain.StatusText = "[Funky] Switching to Alt Hero (Waiting for inital delay! [" + initaldelayStartSecs + " secs])";
                    return RunStatus.Running;
                }

                BotMain.StatusText = "[Funky] Switching to Alt Hero";
                return CharacterSwitch();
            }

            //Update Alt Hero Info and Start Adventure Mode Game!
            if (AltHeroInfo == null)
                return UpdateAltHero();

            //Finished for now.. lets load the new game and let combat control take over!
            FunkyGame.ShouldRefreshAccountDetails = true;
            GamblingCharacterSwitch = false;
            AltHeroGamblingEnabled = true;
            _initalDelayStarted = false;
            return RunStatus.Success;
        }

Usage Example

Exemplo n.º 1
0
        public static RunStatus OutOfGameBehavior(object ret)
        {
            if (CharacterControl.GamblingCharacterSwitch)
            {
                return(CharacterControl.GamblingCharacterSwitchBehavior());
            }


            if (MuleBehavior)
            {
                if (!InitMuleBehavior)
                {
                    Finished                 = false;
                    InitMuleBehavior         = true;
                    NewMuleGame.BotHeroName  = ZetaDia.Service.Hero.Name;
                    NewMuleGame.BotHeroIndex = 0;
                    NewMuleGame.LastProfile  = ProfileManager.CurrentProfile.Path;
                    NewMuleGame.LastHandicap = CharacterSettings.Instance.MonsterPowerLevel;
                }

                if (!CreatedCharacter)
                {
                    RunStatus NewHeroStatus = CreateNewHero();

                    if (NewHeroStatus == RunStatus.Success)
                    {
                        CreatedCharacter = true;
                        //Setup Settings
                        //Bot.Character.Account.UpdateCurrentAccountDetails();
                        Settings.PluginSettings.LoadSettings();
                    }
                    return(RunStatus.Running);
                }

                if (!RanProfile)
                {
                    RunStatus NewGameStatus = NewMuleGame.BeginNewGameProfile();
                    if (NewGameStatus == RunStatus.Success)
                    {
                        RanProfile = true;
                        return(RunStatus.Success);
                    }
                    return(RunStatus.Running);
                }

                RunStatus FinishStatus = NewMuleGame.FinishMuleBehavior();
                if (FinishStatus == RunStatus.Success)
                {
                    Finished         = true;
                    RanProfile       = false;
                    CreatedCharacter = false;
                    InitMuleBehavior = false;
                    MuleBehavior     = false;
                    //Load Settings
                    //Bot.Character.Account.UpdateCurrentAccountDetails();
                    Settings.PluginSettings.LoadSettings();

                    return(RunStatus.Success);
                }
                return(RunStatus.Running);
            }


            if (ExitGameBehavior.BehaviorEngaged)
            {
                //Get First or Last Used Profile..
                TrackedProfile firstProfile = FunkyGame.CurrentStats.GetFirstProfile();

                string profile = firstProfile != null ? firstProfile.ProfileName :
                                 GlobalSettings.Instance.LastProfile;

                //Load Profile and Fire our left game handler
                ProfileManager.Load(profile);
                //EventHandlers.FunkyOnLeaveGame(null, null);

                //Finally disable this..
                ExitGameBehavior.BehaviorEngaged = false;
                ExitGameBehavior.ShouldExitGame  = false;
            }

            //Custom Hero Setting Game Difficulty
            if (!CharacterControl.GameDifficultyChanged)
            {
                CharacterControl.GameDifficultyChanged = true;
                var customdifficulty = (GameDifficulty)Enum.Parse(typeof(GameDifficulty), FunkyBaseExtension.Settings.General.CustomDifficulty);
                CharacterSettings.Instance.GameDifficulty = customdifficulty;
            }

            return(RunStatus.Success);
        }