public override void Pulse() { string fnname = "FTWRev.Pulse"; MyTimer.Start(fnname); // Display startup message if (FTWProps.firstpulse == true) { FTWProps.firstpulse = false; // Eh, I don't like it. Uncomment if you really want it. //Mount.OnMountUp += UseTravelForm; FTWProps.core.Initialize(); FTWLogger.log("FTW starting at {0}", DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss")); FTWLogger.log("Current bot: {0}", Styx.CommonBot.BotManager.Current.Name); } // Unstick ourselves if necessary. CheckForStuck.Pulse(); // Display last red text if (StyxWoW.LastRedErrorMessage != FTWProps.redtext) { FTWProps.redtext = StyxWoW.LastRedErrorMessage; FTWLogger.debug(Color.Red, "Red text: {0}", FTWProps.redtext); } // Leave early if not in valid state if (!FTWUtils.ValidState()) { //FTWLogger.debug(Color.Red, "Invalid state: {0}", FTWUtils.printState()); } else { // Save current class and spec //FTWProps.ClassAndSpec = StyxWoW.Me.ClassAndSpec(); // List aura changes AuraWatcher.Pulse(); // Load rules if they're not loaded //if (!FTWProps.rules.ContainsKey(FTWProps.ClassAndSpec)) // FTWProps.LoadRules(); FTWProps.core.Pulse(); if (FTWUtils.MeOrPartyMemberInCombat()) { //if (BotPoi.Current.Type == PoiType.Loot) //{ // debug("Not done with combat, clearing loot flag"); // BotPoi.Clear(); //} // Force combat because me OR party/raid members in combat) Combat(); } } // Perform dungeon stuff DungeonWatcher.Pulse(); // Perform UI stuff UI.Pulse(); MyTimer.Stop(fnname); MyTimer.Pulse(); }