public static GamblingCharacterSwitchBehavior ( ) : RunStatus | ||
Результат | 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;
}
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); }