private async Task <bool> Moving() { EnablePulse(); TargetingHelper.TurnCombatOn(); if (!await NavigationCoroutine.MoveTo(_keywardenLocation, 15)) { return(false); } if (_keywardenData.IsAlive) { _keywardenLocation = GetKeywardenLocation(); if (_keywardenLocation == Vector3.Zero) { State = States.Searching; } } else { Logger.Info("[Keywarden] Keywarden shish kebab!"); State = States.Waiting; } return(false); }
private void ZergCheck() { if (PluginSettings.Current.KeywardenZergMode.HasValue && !PluginSettings.Current.KeywardenZergMode.Value) { return; } var corruptGrowthDetectionRadius = ZetaDia.Me.ActorClass == ActorClass.Barbarian ? 30 : 20; var combatState = false; if (_keywardenLocation != Vector3.Zero && _keywardenLocation.Distance(AdvDia.MyPosition) <= 50f) { TargetingHelper.TurnCombatOn(); return; } if (!combatState && ZetaDia.Me.HitpointsCurrentPct <= 0.8f) { combatState = true; } if (!combatState && _keywardenData.Act == Act.A4) { if (ZetaDia.Actors.GetActorsOfType <DiaUnit>(true).Any( a => a.IsFullyValid() && KeywardenDataFactory.A4CorruptionSNOs.Contains(a.ActorSnoId) && a.IsAlive & a.Position.Distance(AdvDia.MyPosition) <= corruptGrowthDetectionRadius)) { combatState = true; } } if (!combatState && ZetaDia.Actors.GetActorsOfType <DiaUnit>(true).Any(u => u.IsFullyValid() && u.IsAlive && KeywardenDataFactory.GoblinSNOs.Contains(u.ActorSnoId))) { combatState = true; } if (!combatState && ZetaDia.Actors.GetActorsOfType <DiaUnit>(true).Count(u => u.IsFullyValid() && u.IsHostile && u.IsAlive && u.Position.Distance(AdvDia.MyPosition) <= 15f) >= 4) { combatState = true; } if (combatState) { TargetingHelper.TurnCombatOn(); } else { TargetingHelper.TurnCombatOff(); } }
private bool NotStarted() { DisablePulse(); _keywardenLocation = Vector3.Zero; if (!_keywardenData.IsAlive) { State = States.Completed; return(false); } TargetingHelper.TurnCombatOn(); Logger.Info("[Keywarden] Lets go find da guy with da machina, shall we?"); State = AdvDia.CurrentLevelAreaId == _keywardenData.LevelAreaId ? States.Searching : States.TakingWaypoint; return(false); }
private async Task <bool> Moving() { EnablePulse(); TargetingHelper.TurnCombatOn(); if (!await NavigationCoroutine.MoveTo(_keywardenLocation, 15)) { return(false); } if (NavigationCoroutine.LastResult == CoroutineResult.Failure && (NavigationCoroutine.LastMoveResult == MoveResult.Failed || NavigationCoroutine.LastMoveResult == MoveResult.PathGenerationFailed)) { var canClientPathTo = await AdvDia.Navigator.CanFullyClientPathTo(_keywardenLocation); if (!canClientPathTo) { State = States.Searching; MoveCooldownUntil = DateTime.UtcNow.AddSeconds(10); Core.Logger.Debug("[Keywarden] Can't seem to get to the keywarden!"); } return(false); } if (_keywardenData.IsAlive) { _keywardenLocation = GetKeywardenLocation(); if (_keywardenLocation == Vector3.Zero) { State = States.Searching; } } else { Core.Logger.Log("[Keywarden] Keywarden shish kebab!"); State = States.Waiting; } return(false); }