コード例 #1
0
        public override async Task <bool> ExecuteRotation(ExGatherTag tag)
        {
            if (tag.IsUnspoiled())
            {
                await SingleMindAppraiseAndRebuff(tag);
                await AppraiseAndRebuff(tag);
                await Methodical(tag);
                await IncreaseChance(tag);
            }
            else
            {
                if (Core.Player.CurrentGP >= 600)
                {
                    await SingleMindAppraiseAndRebuff(tag);
                    await AppraiseAndRebuff(tag);
                    await Methodical(tag);
                    await IncreaseChance(tag);
                }
                else
                {
                    await Impulsive(tag);
                    await Impulsive(tag);
                    await Instinctual(tag);
                }
            }

            return(true);
        }
コード例 #2
0
        public override async Task <bool> ExecuteRotation(ExGatherTag tag)
        {
            if (tag.IsUnspoiled())
            {
                await SingleMindMethodical(tag);
                await SingleMindMethodical(tag);
                await DiscerningMethodical(tag);
                await IncreaseChance(tag);
            }
            else
            {
#if RB_CN
                if (Core.Player.CurrentGP >= 600 && tag.GatherItem.Chance < 98)
                {
#else
                if (Core.Player.CurrentGP >= 600)
                {
#endif
                    await SingleMindMethodical(tag);
                    await SingleMindMethodical(tag);
                    await DiscerningMethodical(tag);
                    await IncreaseChance(tag);
                }
                else
                {
                    await Impulsive(tag);
                    await Impulsive(tag);
                    await Instinctual(tag);
                }
            }

            return(true);
        }
    }
コード例 #3
0
		public override async Task<bool> ExecuteRotation(ExGatherTag tag)
		{
			if (tag.IsUnspoiled())
			{
				await SingleMindMethodical(tag);
				await SingleMindMethodical(tag);
				await UtmostCaution(tag);
				await Methodical(tag);
				await UtmostCaution(tag);
				await Methodical(tag);
			}
			else
			{
				if (Core.Player.CurrentGP >= 600)
				{
					await SingleMindMethodical(tag);
					await SingleMindMethodical(tag);
					await UtmostCaution(tag);
					await Methodical(tag);
					await UtmostCaution(tag);
					await Methodical(tag);
					return true;
				}
				
				await Impulsive(tag);
				await Impulsive(tag);
				await Methodical(tag);
			}
			return true;
		}
コード例 #4
0
        public override async Task <bool> ExecuteRotation(ExGatherTag tag)
        {
            if (tag.IsUnspoiled())
            {
                await SingleMindMethodical(tag);
                await SingleMindMethodical(tag);
                await UtmostCaution(tag);
                await Methodical(tag);
                await UtmostCaution(tag);
                await Methodical(tag);
            }
            else
            {
                if (Core.Player.CurrentGP >= 600)
                {
                    await SingleMindMethodical(tag);
                    await SingleMindMethodical(tag);
                    await UtmostCaution(tag);
                    await Methodical(tag);
                    await UtmostCaution(tag);
                    await Methodical(tag);

                    return(true);
                }

                await Impulsive(tag);
                await Impulsive(tag);
                await Methodical(tag);
            }
            return(true);
        }
コード例 #5
0
		int IGetOverridePriority.GetOverridePriority(ExGatherTag tag)
		{
			if (tag.IsEphemeral() || tag.IsUnspoiled() || tag.CollectableItem != null)
			{
				return -1;
			}

			return 8000;
		}
コード例 #6
0
        protected virtual IGatheringRotation ResolveInternalGatheringRotation(ExGatherTag tag)
        {
            if (tag.IsUnspoiled())
            {
                return(ExGatherTag.Rotations["Unspoiled"]);
            }

            return(ExGatherTag.Rotations["RegularNode"]);
        }
コード例 #7
0
		int IGetOverridePriority.GetOverridePriority(ExGatherTag tag)
		{
			if (tag.IsEphemeral() || tag.IsUnspoiled())
			{
				return -1;
			}

			return 8000;
		}
コード例 #8
0
        int IGetOverridePriority.GetOverridePriority(ExGatherTag tag)
        {
            if (tag.IsUnspoiled() && tag.CollectableItem == null)
            {
                return(8000);
            }

            return(-1);
        }
コード例 #9
0
		protected virtual IGatheringRotation ResolveInternalGatheringRotation(ExGatherTag tag)
		{
			if (tag.IsUnspoiled())
			{
				return ExGatherTag.Rotations["Unspoiled"];
			}

			return ExGatherTag.Rotations["RegularNode"];
		}
コード例 #10
0
		int IGetOverridePriority.GetOverridePriority(ExGatherTag tag)
		{
			if (tag.IsUnspoiled() && tag.CollectableItem == null)
			{
				return 8000;
			}

			return -1;
		}
コード例 #11
0
		public override async Task<bool> Prepare(ExGatherTag tag)
		{
			var unknownItems = GatheringManager.GatheringWindowItems.Where(i => i.IsUnknownChance() && i.Amount > 0).ToArray();

			if (tag.IsUnspoiled() && Core.Player.CurrentGP >= 550 && unknownItems.Length > 1)
			{
				await tag.Cast(Ability.Toil);
			}

			return await base.Prepare(tag);
		}
コード例 #12
0
        public override async Task <bool> ExecuteRotation(ExGatherTag tag)
        {
            if (tag.IsUnspoiled())
            {
                await SingleMindMethodical(tag);
                await DiscerningMethodical(tag);
                await DiscerningMethodical(tag);
                await IncreaseChance(tag);
            }
            else if (tag.IsEphemeral())
            {
                if (Core.Player.CurrentGP >= 600)
                {
                    await SingleMindMethodical(tag);
                    await DiscerningMethodical(tag);
                    await DiscerningMethodical(tag);
                    await IncreaseChance(tag);
                }
                else
                {
                    await Impulsive(tag);
                    await Impulsive(tag);
                    await Instinctual(tag);
                }
            }
            else
            {
                if (Core.Player.CurrentGP >= 600)
                {
                    if (GatheringManager.SwingsRemaining > 4)
                    {
                        await SingleMindMethodical(tag);
                        await DiscerningMethodical(tag);
                        await DiscerningMethodical(tag);
                        await IncreaseChance(tag);
                    }
                    else
                    {
                        await Methodical(tag);
                        await Methodical(tag);
                        await Methodical(tag);
                        await Methodical(tag);
                    }
                }
                else
                {
                    await Impulsive(tag);
                    await Impulsive(tag);
                    await Instinctual(tag);
                }
            }

            return(true);
        }
コード例 #13
0
        public override async Task <bool> Prepare(ExGatherTag tag)
        {
            var unknownItems = GatheringManager.GatheringWindowItems.Where(i => i.IsUnknownChance() && i.Amount > 0).ToArray();

            if (tag.IsUnspoiled() && Core.Player.CurrentGP >= 550 && unknownItems.Length > 1)
            {
                await tag.Cast(Ability.Toil);
            }

            return(await base.Prepare(tag));
        }
コード例 #14
0
        int IGetOverridePriority.GetOverridePriority(ExGatherTag tag)
        {
            if (tag.GatherItem == null)
            {
                return(-1);
            }

            if (tag.GatherItem.IsUnknown || (tag.IsUnspoiled() && tag.GatherItem.Chance == 25))
            {
                return(int.MaxValue);
            }

            return(-1);
        }
コード例 #15
0
		int IGetOverridePriority.GetOverridePriority(ExGatherTag tag)
		{
			if (tag.GatherItem == null)
			{
				return -1;
			}

			if (tag.GatherItem.IsUnknown || (tag.IsUnspoiled() && tag.GatherItem.Chance == 25))
			{
				return int.MaxValue;
			}

			return -1;
		}
コード例 #16
0
        public override async Task <bool> ExecuteRotation(ExGatherTag tag)
        {
            if (tag.IsUnspoiled())
            {
                await SingleMindImpulsive(tag);
                await SingleMindImpulsive(tag);
                await SingleMindMethodical(tag);
                await IncreaseChance(tag);
            }
            else
            {
                if (Core.Player.CurrentGP >= 600 && (GatheringManager.SwingsRemaining > 4 || tag.CanUseCordial()))
                {
                    if (Core.Player.ClassLevel >= 57)
                    {
                        await SingleMindImpulsive(tag);
                        await SingleMindImpulsive(tag);
                        await SingleMindMethodical(tag);
                        await IncreaseChance(tag);
                    }
                    else
                    {
                        await Discerning(tag);
                        await AppraiseAndRebuff(tag);
                        await AppraiseAndRebuff(tag);
                        await Methodical(tag);
                        await IncreaseChance(tag);
                    }
                }
                else
                {
                    await Impulsive(tag);
                    await Impulsive(tag);
                    await Instinctual(tag);
                }
            }

            return(true);
        }
コード例 #17
0
		public override async Task<bool> ExecuteRotation(ExGatherTag tag)
		{
			if (tag.IsUnspoiled())
			{
				await AppraiseAndRebuff(tag);
				await AppraiseAndRebuff(tag);
				await Methodical(tag);
			}
			else
			{
				if (Core.Player.CurrentGP >= 600)
				{
					await AppraiseAndRebuff(tag);
					await AppraiseAndRebuff(tag);
					await Methodical(tag);
					return true;
				}

				await Impulsive(tag);
				await Impulsive(tag);
				await Methodical(tag);
			}
			return true;
		}
コード例 #18
0
		public override bool ShouldForceGather(ExGatherTag tag)
		{
			return !tag.IsEphemeral() && !tag.IsUnspoiled();
		}
コード例 #19
0
 public override bool ShouldForceGather(ExGatherTag tag)
 {
     return(!tag.IsEphemeral() && !tag.IsUnspoiled());
 }
コード例 #20
0
		public override async Task<bool> ExecuteRotation(ExGatherTag tag)
		{
			if (tag.IsUnspoiled())
			{
				await UtmostCaution(tag);
				await AppraiseAndRebuff(tag);
				await UtmostMethodical(tag);
				await AppraiseAndRebuff(tag);
				await Methodical(tag);
				await IncreaseChance(tag);
			}
			else
			{
				// if 58+
				if (tag.GatherItem.Chance < 98 && Core.Player.CurrentGP >= 600)
				{
					// if 60 or cordial is ready and is 58
					if (tag.GatherItem.Chance < 97 || tag.CanUseCordial(Attributes.RequiredTimeInSeconds))
					{
						var appraisalsRemaining = 4;
						await Impulsive(tag);
						appraisalsRemaining--;

						if (HasDiscerningEye)
						{
							await UtmostSingleMindMethodical(tag);
							appraisalsRemaining--;
						}

						await Impulsive(tag);
						appraisalsRemaining--;

						if (HasDiscerningEye)
						{
							await UtmostSingleMindMethodical(tag);
							appraisalsRemaining--;
						}

						if (appraisalsRemaining == 2)
						{
							await Methodical(tag);
						}

						if (appraisalsRemaining == 1)
						{
							await UtmostDiscerningMethodical(tag);
						}

						await IncreaseChance(tag);
						return true;
					}
				}

				await Impulsive(tag);
				await Impulsive(tag);
				await Methodical(tag);

				return true;
			}

			return true;
		}
コード例 #21
0
        public override async Task <bool> ExecuteRotation(ExGatherTag tag)
        {
            if (tag.IsUnspoiled())
            {
                await UtmostCaution(tag);
                await AppraiseAndRebuff(tag);

#if RB_CN
                await UtmostCaution(tag);
#endif
                await Methodical(tag);
                await AppraiseAndRebuff(tag);
                await Methodical(tag);
                await IncreaseChance(tag);
            }
            else
            {
                // if 58+
                if (tag.GatherItem.Chance < 98 && Core.Player.CurrentGP >= 600)
                {
                    // if 60 or cordial is ready and is 58
                    if (tag.GatherItem.Chance < 97 || tag.CanUseCordial(Attributes.RequiredTimeInSeconds))
                    {
                        var appraisalsRemaining = 4;
                        await Impulsive(tag);

                        appraisalsRemaining--;

                        if (HasDiscerningEye)
                        {
                            await UtmostSingleMindMethodical(tag);

                            appraisalsRemaining--;
                        }

                        await Impulsive(tag);

                        appraisalsRemaining--;

                        if (HasDiscerningEye)
                        {
                            await UtmostSingleMindMethodical(tag);

                            appraisalsRemaining--;
                        }

                        if (appraisalsRemaining == 2)
                        {
                            await Methodical(tag);
                        }

                        if (appraisalsRemaining == 1)
                        {
                            await UtmostDiscerningMethodical(tag);
                        }

                        await IncreaseChance(tag);

                        return(true);
                    }
                }

                await Impulsive(tag);
                await Impulsive(tag);
                await Methodical(tag);

                return(true);
            }

            return(true);
        }