Example #1
0
        public static async Task <bool> OpenStash()
        {
            if (StashUi.IsOpened)
            {
                return(true);
            }

            WalkablePosition stashPos;

            if (World.CurrentArea.IsTown)
            {
                stashPos = StaticPositions.GetStashPosByAct();
            }
            else
            {
                var stashObj = LokiPoe.ObjectManager.Stash;
                if (stashObj == null)
                {
                    GlobalLog.Error("[OpenStash] Fail to find any Stash nearby.");
                    return(false);
                }
                stashPos = stashObj.WalkablePosition();
            }

            await PlayerAction.EnableAlwaysHighlight();

            await stashPos.ComeAtOnce();

            if (!await PlayerAction.Interact(LokiPoe.ObjectManager.Stash, () => StashUi.IsOpened && StashUi.StashTabInfo != null, "stash opening"))
            {
                return(false);
            }

            await Wait.SleepSafe(200);

            return(true);
        }