예제 #1
0
        /// <summary>
        /// Send out a request to all plugins for someone to handle gem upgrading for us.
        /// </summary>
        public static async Task <bool> UpgradeGems()
        {
            if (DateTime.UtcNow.Subtract(LastRequestedGemUpgrade).TotalSeconds < 15)
            {
                return(false);
            }

            if (RiftHelper.IsInRift && RiftHelper.RiftQuest.Step == RiftQuest.RiftStep.UrshiSpawned && RiftHelper.CurrentRift.IsCompleted)
            {
                if (AutoFollow.CurrentLeader.Distance > 30f)
                {
                    Log.Warn("Rift is Completed; telport to the leader");
                    await Coordination.TeleportToPlayer(AutoFollow.CurrentLeader, false);

                    await Coroutine.Sleep(3000);
                }

                Log.Warn("Rift is Completed; requesting gem upgrade from other plugins.");
                PluginCommunicator.BroadcastGemUpgradRequest();
                await Coroutine.Sleep(5000);

                LastRequestedGemUpgrade = DateTime.UtcNow;
                return(true);
            }

            return(false);
        }
        private async Task <bool> NotStarted()
        {
            SafeZerg.Instance.DisableZerg();
            ScanForObjective();
            if (_center == Vector3.Zero)
            {
                _center = AdvDia.MyPosition;
            }

            // Ask combat routine to make sure everything is killed.
            PluginCommunicator.RequestClearArea(_seconds);

            State      = States.Clearing;
            _startTime = PluginTime.CurrentMillisecond;
            return(false);
        }
예제 #3
0
 public PluginCommunicationResponse Receive(IPlugin sender, string command, params object[] args)
 {
     return(PluginCommunicator.Receive(sender, command, args));
 }
예제 #4
0
 private bool Completed()
 {
     PluginCommunicator.BroadcastGemUpgradRequest();
     DisablePulse();
     return(true);
 }