public override bool Initialise()
        {
            base.Initialise();

            Name           = "BasicFlaskRoutine";
            KeyboardHelper = new KeyboardHelper(GameController);

            Tree = CreateTree();

            // Add this as a coroutine for this plugin
            Settings.Enable.OnValueChanged += (sender, b) =>
            {
                if (b)
                {
                    if (Core.ParallelRunner.FindByName(basicFlaskRoutineChecker) == null)
                    {
                        InitCoroutine();
                    }
                    TreeCoroutine?.Resume();
                }
                else
                {
                    TreeCoroutine?.Pause();
                }
            };
            InitCoroutine();

            Settings.TicksPerSecond.OnValueChanged += (sender, b) =>
            {
                UpdateCoroutineWaitRender();
            };

            return(true);
        }
Exemple #2
0
 private void UpdateCoroutineWaitRender()
 {
     if (TreeCoroutine != null)
     {
         TreeCoroutine.UpdateCondition(new WaitTime(1000 / Settings.TicksPerSecond));
     }
 }
        public bool CreateAndStartTreeFromLoadedProfile()
        {
            if (Settings.LoadedProfile == null)
            {
                return(false);
            }

            if (Settings.LoadedProfile.Composite == null)
            {
                LogMessage(PluginName + ": Profile " + Settings.LoadedProfile.Name + " was loaded, but it had no composite.", 5);
                return(true);
            }

            if (TreeCoroutine != null)
            {
                TreeCoroutine.Done(true);
            }
            var extensionParameter = new ExtensionParameter(this);

            Tree = new ProfileTreeBuilder(ExtensionCache, extensionParameter).BuildTreeFromTriggerComposite(Settings.LoadedProfile.Composite);

            // Append the cache action to the built tree
            Tree = new Sequence(
                new TreeSharp.Action(x => ExtensionCache.LoadedExtensions.ForEach(ext => ext.UpdateCache(extensionParameter, ExtensionCache.Cache))),
                Tree);

            // Add this as a coroutine for this plugin
            TreeCoroutine = (new Coroutine(() => TickTree(Tree)
                                           , new WaitTime(1000 / Settings.TicksPerSecond), nameof(BuildYourOwnRoutineCore), "Tree"))
                            .AutoRestart(GameController.CoroutineRunner).Run();

            LogMessage(PluginName + ": Profile " + Settings.LoadedProfile.Name + " was loaded successfully!", 5);

            return(true);
        }
Exemple #4
0
        public override bool Initialise()
        {
            base.Initialise();
            Name = "Willplug";

            pickit                 = new Pickit(this.Settings, this);
            mover                  = new Mover(GameController);
            WillBot.Me             = new WillPlayer(this, GameController, pickit, LoadedMonsters);
            WillBot.Mover          = mover;
            WillBot.gameController = GameController;
            WillBot.basePlugin     = this;
            WillBot.KeyboardHelper = new TreeRoutine.DefaultBehaviors.Helpers.KeyboardHelper(GameController);

            Input.RegisterKey(Keys.RButton);
            Input.RegisterKey(Keys.A);
            //Input.RegisterKey(Settings.VaalAttackKey);
            Input.RegisterKey(Settings.TestKey1);
            Input.RegisterKey(Settings.TestKey2);
            Input.RegisterKey(Settings.PauseAbilityUsage);
            Input.RegisterKey(Settings.TryLootNearbykey);
            // Input.RegisterKey(Settings.SmokeMineMacroActivationKey);
            //BuffTree = BuffBehavior.CreateBerserkerBuffTree();
            //BuffTree = NecroBuffs.CreateNecroBuffTree();
            BuffTree = CharacterAbilityTrees.CreateScourgeArrowPfTree();
            Tree     = CreateTree();
            Settings.Enable.OnValueChanged += (sender, b) =>
            {
                if (b)
                {
                    if (Core.ParallelRunner.FindByName(treeroutineName) == null)
                    {
                        InitCoroutine();
                    }
                    TreeCoroutine?.Resume();
                }
                else
                {
                    TreeCoroutine?.Pause();
                }
            };
            InitCoroutine();
            InitBuffRoutine();
            InitAutoLootRoutine();
            #region PickitRelated
            DebugTimer.Reset();
            Settings.MouseSpeed.OnValueChanged += (sender, f) => { Mouse.speedMouse = Settings.MouseSpeed.Value; };
            pickitCoroutineWaitTime             = new WaitTime(Settings.ExtraDelay);
            Settings.ExtraDelay.OnValueChanged += (sender, i) => pickitCoroutineWaitTime = new WaitTime(i);
            pickit.LoadRuleFiles();
            #endregion

            return(true);
        }
Exemple #5
0
        public override bool Initialise()
        {
            base.Initialise();

            Name               = "BuildYourOwnRoutineCore";
            KeyboardHelper     = new KeyboardHelper(GameController);
            ExtensionCache     = new ExtensionCache();
            ExtensionParameter = new ExtensionParameter(this);

            ProfileDirectory   = DirectoryFullName + @"/Profile/";
            ExtensionDirectory = DirectoryFullName + @"/Extension/";
            Directory.CreateDirectory(DirectoryFullName);
            Directory.CreateDirectory(ExtensionDirectory);
            ExtensionLoader.LoadAllExtensions(ExtensionCache, ExtensionDirectory);
            ProcessLoadedExtensions();

            Settings.Enable.OnValueChanged += (sender, b) =>
            {
                if (b)
                {
                    if (Core.ParallelRunner.FindByName(buildYourOwnRoutineChecker) == null)
                    {
                        CreateAndStartTreeFromLoadedProfile();
                    }
                    TreeCoroutine?.Resume();
                }
                else
                {
                    TreeCoroutine?.Pause();
                }
            };

            CreateAndStartTreeFromLoadedProfile();

            Settings.TicksPerSecond.OnValueChanged += (sender, b) =>
            {
                UpdateCoroutineWaitRender();
            };

            return(true);
        }
Exemple #6
0
        public override Job Tick()
        {
            //ingameStateIngameUi = GameController.Game.IngameState.IngameUi;

            screentCenterCache = screenCenter;
            k     = camera.Width < 1024f ? 1120f : 1024f;
            scale = k / camera.Height * camera.Width * 3f / 4f / mapWindow.LargeMapZoom;

            string soulCatcher = "unique_flask_no_recovery_and_soul_gain";

            //string soulCatcher = "unique_flask_soul_catcher";
            //
            //if (WillBot.Plugin.TreeHelper.CanTickMap() == true)
            //{
            //    if (Settings.VaalAttackKey.PressedDown())
            //    {
            //        var playerBuffs = GameController.Game.IngameState.Data.LocalPlayer.GetComponent<ExileCore.PoEMemory.Components.Buffs>();

            //        var soulCatcherBuffs = playerBuffs?.BuffsList?.Where(x => x.Name?.Contains(soulCatcher) ?? false)?.ToList();
            //        var soulCatcherBuff = soulCatcherBuffs.FirstOrDefault();

            //        if (soulCatcherBuff != null && soulCatcherBuff.Timer > 0.2)
            //        {
            //            InputWrapper.KeyDown(Keys.A);
            //        }
            //        else
            //        {
            //            if (DateTime.Now.Subtract(lastActivatedFlaskTime).TotalMilliseconds > 100)
            //            {
            //                InputWrapper.KeyPress(Keys.D2);
            //                lastActivatedFlaskTime = DateTime.Now;
            //            }
            //        }
            //    }
            //    else
            //    {
            //        InputWrapper.KeyUp(Keys.A);
            //    }
            //}


            if (Settings.PauseAbilityUsage.PressedOnce())
            {
                if (BuffTreeCoroutine.Running)
                {
                    Console.WriteLine("Ability paused");
                    BuffTreeCoroutine.AutoResume = false;
                    BuffTreeCoroutine.Pause();
                }
                else
                {
                    Console.WriteLine("Abilities resumed");
                    BuffTreeCoroutine.AutoResume = true;
                    BuffTreeCoroutine.Resume();
                }
            }

            if (Settings.TestKey1.PressedOnce())
            {
                if (TreeCoroutine.Running)
                {
                    WillBot.isBotPaused = true;
                    Console.WriteLine("Bot paused");
                    InputWrapper.ResetMouseButtons();
                    TreeCoroutine.AutoResume = false;
                    TreeCoroutine.Pause();
                }
                else
                {
                    WillBot.Mover.UpdateTerrainData(doNotUpdateIfAlreadyExists: true);
                    WillBot.isBotPaused = false;
                    Console.WriteLine("Bot resumed");
                    TreeCoroutine.AutoResume = true;
                    TreeCoroutine.Resume();
                }
            }
            if (Settings.TestKey2.PressedOnce())
            {
                //ChaosRecipeBehavior.MapChaosRecipeItems();
                //ChaosRecipeBehavior.GetNumberOfCrRecipeSetsInStash();
                var gameControllerEntities = GameController.EntityListWrapper;

                var labelOnGrounds = GameController.IngameState.IngameUi.ItemsOnGroundLabels;

                var pause = 5;
            }
            //if (Settings.TryLootNearbykey.PressedOnce())
            //{
            //    AutoLootCoroutine.AutoResume = true;
            //    AutoLootCoroutine.Resume();
            //    Console.WriteLine("Looting nearby");
            //}
            //if (autoLootingDone == true)
            //{
            //    AutoLootCoroutine.AutoResume = false;
            //    AutoLootCoroutine.Pause();
            //    Console.WriteLine("Looting done");
            //    autoLootingDone = false;
            //}

            //Debug check for seed cache
            //var nearestEntities = GameController.Entities.Where(x => x.DistancePlayer < 15).ToList();
            //foreach (var entity in nearestEntities)
            //{
            //    WillBot.WillBot.LogMessageComboCombo($"Distance player: {entity.DistancePlayer}, name: {entity.ToString()}");

            //}

            if (WillBot.isBotPaused == false)
            {
                WillBot.Mover.UpdateExplored();
                StuckTracker.Update();
                pickit.UpdateItemsToPickUp();
            }
            return(null);
        }