示例#1
0
        public override async Task <bool> InGameTask()
        {
            // Returning True => go to next tick immediately, execution starts again from top of the tree.
            // Returning False => allow execution to continue to lower hooks. Such as profiles, Adventurer.

            if (await base.InGameTask())
            {
                return(Repeat(PartyObjective.TownRun));
            }

            if (await Party.LeaveWhenInWrongGame())
            {
                return(Repeat(PartyObjective.LeavingGame));
            }

            if (await Questing.UpgradeGems())
            {
                return(Continue(PartyObjective.Quest));
            }

            if (await Coordination.StartTownRunWithLeader())
            {
                return(Continue(PartyObjective.Teleporting));
            }

            if (await Coordination.WaitForGreaterRiftInProgress())
            {
                return(Repeat(PartyObjective.TownRun));
            }

            if (Targetting.RoutineWantsToLoot() || Targetting.RoutineWantsToClickGizmo())
            {
                return(Continue(PartyObjective.None));
            }

            if (await Coordination.LeaveFinishedRift())
            {
                return(Repeat(PartyObjective.TownRun));
            }

            if (await Coordination.FollowLeaderThroughPortal())
            {
                return(Repeat(PartyObjective.FollowLeader));
            }

            if (await Coordination.TeleportWhenInDifferentWorld(AutoFollow.CurrentLeader))
            {
                return(Repeat(PartyObjective.Teleporting));
            }

            if (await Coordination.TeleportWhenTooFarAway(AutoFollow.CurrentLeader))
            {
                return(Repeat(PartyObjective.Teleporting));
            }

            if (await FollowLeader())
            {
                return(Continue(PartyObjective.FollowLeader));
            }

            if (await Questing.ReturnToGreaterRift())
            {
                return(Repeat(PartyObjective.TownRun));
            }

            if (await Movement.MoveToGreaterRiftExitPortal())
            {
                return(Repeat(PartyObjective.FollowLeader));
            }

            return(false);
        }
示例#2
0
        public override async Task <bool> InGameTask()
        {
            // Returning True => go to next tick immediately, execution starts again from top of the tree.
            // Returning False => allow execution to continue to lower hooks. Such as profiles, Adventurer.

            if (await base.InGameTask())
            {
                return(true);
            }

            if (await Party.LeaveWhenInWrongGame())
            {
                return(true);
            }

            if (await Questing.UpgradeGems())
            {
                return(false);
            }

            if (await Coordination.StartTownRunWithLeader())
            {
                return(false);
            }

            if (await Coordination.WaitForGreaterRiftInProgress())
            {
                return(true);
            }

            if (await Questing.LeaveRiftWhenDone())
            {
                return(true);
            }

            if (Targetting.RoutineWantsToLoot() || Targetting.RoutineWantsToClickGizmo())
            {
                return(false);
            }

            if (await Coordination.FollowLeaderThroughPortal())
            {
                return(true);
            }

            if (await Coordination.TeleportWhenInDifferentWorld(AutoFollow.CurrentLeader))
            {
                return(true);
            }

            if (await Coordination.TeleportWhenTooFarAway(AutoFollow.CurrentLeader))
            {
                return(true);
            }

            if (await Coordination.UseNearbyPortalWhenIdle())
            {
                return(true);
            }

            if (await Movement.MoveToPlayer(AutoFollow.CurrentLeader, Settings.Coordination.FollowDistance))
            {
                return(false);
            }

            if (await Questing.ReturnToGreaterRift())
            {
                return(true);
            }

            //if (await Movement.MoveToGreaterRiftExitPortal())
            //    return true;

            return(false);
        }