internal static bool IsLevelSyncNeeded(FateData fate) { if (!fate.IsValid || fate.Status == FateStatus.NOTACTIVE || fate.Status == FateStatus.COMPLETE) { return(false); } return(fate.MaxLevel < OracleClassManager.GetTrueLevel() && !Core.Player.IsLevelSynced && fate.Within2D(Core.Player.Location)); }
internal static bool GrindMobFilter(BattleCharacter battleCharacter) { if (!battleCharacter.IsValid || battleCharacter.IsDead || !battleCharacter.IsVisible || battleCharacter.CurrentHealthPercent <= 0f) { return(false); } if (battleCharacter.TappedByOther) { return(false); } if (OracleClassManager.GetTrueLevel() - WaitSettings.Instance.MobGrindMinLevelBelow > battleCharacter.ClassLevel) { return(false); } if (OracleClassManager.GetTrueLevel() + WaitSettings.Instance.MobGrindMaxLevelAbove < battleCharacter.ClassLevel) { return(false); } if (!battleCharacter.CanAttack) { return(false); } if (Blacklist.Contains(battleCharacter.ObjectId, BlacklistFlags.Combat)) { return(false); } if (battleCharacter.IsFateGone) { return(false); } if (battleCharacter.IsFate) { return(false); } if (BlacklistSettings.Instance.BlacklistedMobs.Contains(battleCharacter.NpcId)) { return(false); } if (GameObjectManager.Attackers.Contains(battleCharacter)) { return(true); } return(true); }
internal static bool FateFilter(FateData fate) { var oracleFateData = FateDatabase.GetFateFromFateData(fate); if (oracleFateData.Type == FateType.Boss && !FateSettings.Instance.BossFatesEnabled) { return(false); } if (oracleFateData.Type == FateType.Collect && !FateSettings.Instance.CollectFatesEnabled) { return(false); } if (oracleFateData.Type == FateType.Defence && !FateSettings.Instance.DefenceFatesEnabled) { return(false); } if (oracleFateData.Type == FateType.Escort && !FateSettings.Instance.EscortFatesEnabled) { return(false); } if (oracleFateData.Type == FateType.Kill && !FateSettings.Instance.KillFatesEnabled) { return(false); } if (oracleFateData.Type == FateType.MegaBoss && !FateSettings.Instance.MegaBossFatesEnabled) { return(false); } if (WaitingForChainFate() && GetChainFate(PreviousFateId).Id != fate.Id) { return(false); } if (ModeSettings.Instance.OracleOperationMode == OracleOperationMode.SpecificFates && !FateSettings.Instance.SpecificFateList.Contains(fate.Id)) { return(false); } if (Blacklist.Contains(fate.Id, BlacklistFlags.Node)) { return(false); } if (BlacklistSettings.Instance.BlacklistedFates.Contains(fate.Id)) { return(false); } if (FateSettings.Instance.IgnoreLowDuration) { if (Math.Abs(fate.Progress) < 0.5f && fate.TimeLeft < TimeSpan.FromSeconds(FateSettings.Instance.LowFateDuration)) { return(false); } } // Always ignore FATEs under 60 seconds if they're collection FATEs (stops reselecting FATE after final turn in). if (oracleFateData.Type == FateType.Collect && fate.TimeLeft < TimeSpan.FromSeconds(60)) { return(false); } if (oracleFateData.SupportLevel == FateSupportLevel.Unsupported) { return(false); } if (oracleFateData.SupportLevel == FateSupportLevel.Problematic && !FateSettings.Instance.RunProblematicFates) { return(false); } if (oracleFateData.SupportLevel == FateSupportLevel.NotInGame) { return(false); } if (!FateProgressionMet(fate)) { return(false); } if (fate.Level > OracleClassManager.GetTrueLevel() + FateSettings.Instance.FateMaxLevelAbove) { return(false); } if (fate.Level < OracleClassManager.GetTrueLevel() - FateSettings.Instance.FateMinLevelBelow && (ModeSettings.Instance.OracleOperationMode == OracleOperationMode.FateGrind || ModeSettings.Instance.OracleOperationMode == OracleOperationMode.LevelMode || ModeSettings.Instance.OracleOperationMode == OracleOperationMode.MultiLevelMode)) { return(false); } return(true); }