Пример #1
0
        public override void Start()
        {
            PBLog.Debug("Start Called");
            IsRunning = true;
            AttachEvents();
            // make sure bank frame is closed on start to ensure Util.IsGBankFrameOpen is synced
            Util.CloseBankFrames();

            if (IsExecutingActionWhileHonorbuddyIsStopped)
            {
                IsExecutingActionWhileHonorbuddyIsStopped = false;
                ResetSecondaryBot();
            }
            else
            {
                // reset all actions
                Reset();
                if (DynamicCodeCompiler.CodeIsModified)
                {
                    DynamicCodeCompiler.GenorateDynamicCode();
                }
            }

            if (MainForm.IsValid)
            {
                MainForm.Instance.UpdateControls();
            }

            if (!SecondaryBot.Initialized)
            {
                SecondaryBot.DoInitialize();
            }
        }
Пример #2
0
        public override void Stop()
        {
            IsRunning = false;
            DetachEvents();

            PBLog.Debug("Stop Called");
            if (MainForm.IsValid)
            {
                MainForm.Instance.UpdateControls();
            }
            if (SecondaryBot != null)
            {
                SecondaryBot.Stop();
            }
        }
Пример #3
0
 private void OnSkillUpdate(object obj, LuaEventArgs args)
 {
     if (_onSkillUpdateTimer.IsFinished)
     {
         try
         {
             lock (tradeSkillLocker)
             {
                 UpdateMaterials();
                 // check if there was any tradeskills added or removed.
                 WoWSkill[] skills  = SupportedTradeSkills;
                 bool       changed = skills.Count(s => TradeSkillList.Count(l => l.SkillLine == (SkillLine)s.Id) == 1) !=
                                      TradeSkillList.Count ||
                                      skills.Length != TradeSkillList.Count;
                 if (changed)
                 {
                     PBLog.Debug("A profession was added or removed. Reloading Tradeskills (OnSkillUpdateTimerCB)");
                     OnTradeSkillsLoaded += Professionbuddy_OnTradeSkillsLoaded;
                     LoadTradeSkills();
                 }
                 else
                 {
                     PBLog.Debug("Updated tradeskills from OnSkillUpdateTimerCB");
                     foreach (TradeSkill ts in TradeSkillList)
                     {
                         ts.PulseSkill();
                     }
                     if (MainForm.IsValid)
                     {
                         MainForm.Instance.RefreshTradeSkillTabs();
                         MainForm.Instance.RefreshActionTree(typeof(CastSpellAction));
                     }
                 }
             }
         }
         catch (Exception ex)
         {
             PBLog.Warn(ex.ToString());
         }
         _onSkillUpdateTimer.Reset();
     }
 }
Пример #4
0
 public static void Debug(string format, params object[] args)
 {
     PBLog.Debug(format, args);
 }
Пример #5
0
        public override void Initialize()
        {
            try
            {
                if (!_init)
                {
                    PBLog.Debug("Initializing ...");
                    Util.ScanForOffsets();
                    if (!Directory.Exists(BotPath))
                    {
                        Directory.CreateDirectory(BotPath);
                    }
                    DynamicCodeCompiler.WipeTempFolder();
                    // force Tripper.Tools.dll to load........
                    new Vector3(0, 0, 0);

                    MySettings =
                        new ProfessionBuddySettings(
                            Path.Combine(
                                Utilities.AssemblyDirectory,
                                string.Format(@"Settings\{0}\{0}[{1}-{2}].xml", Name, Me.Name, Lua.GetReturnVal <string>("return GetRealmName()", 0))));

                    IsTradeSkillsLoaded = false;
                    LoadTradeSkills();
                    DataStore = new DataStore();
                    DataStore.ImportDataStore();
                    LoadTradeskillTools();
                    // load localized strings
                    LoadStrings();

                    // load the previous
                    BotBase bot =
                        BotManager.Instance.Bots.Values.FirstOrDefault(
                            b => b.Name.IndexOf(MySettings.LastBotBase, StringComparison.InvariantCultureIgnoreCase) >= 0);

                    if (bot == null)
                    {
                        // look for combat bot, otherwise select first bot if combat bot is not found
                        bot = BotManager.Instance.Bots.Values.FirstOrDefault(b => b.GetType().ToString() == "CombatBot")
                              ?? BotManager.Instance.Bots.Values.FirstOrDefault();
                        MySettings.LastBotBase = bot.Name;
                        MySettings.Save();
                    }
                    SecondaryBot = bot;

                    bot.DoInitialize();

                    try
                    {
                        if (!string.IsNullOrEmpty(_profileToLoad))
                        {
                            LoadPBProfile(_profileToLoad);
                        }
                        else if (!string.IsNullOrEmpty(MySettings.LastProfile))
                        {
                            LoadPBProfile(MySettings.LastProfile);
                        }
                    }
                    catch (Exception ex)
                    {
                        PBLog.Warn(ex.ToString());
                    }

                    _init = true;
                }
            }
            catch (Exception ex)
            {
                Logging.Write(Colors.Red, ex.ToString());
            }
        }