本文整理汇总了C#中ExGatherTag.Cast方法的典型用法代码示例。如果您正苦于以下问题:C# ExGatherTag.Cast方法的具体用法?C# ExGatherTag.Cast怎么用?C# ExGatherTag.Cast使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ExGatherTag
的用法示例。
在下文中一共展示了ExGatherTag.Cast方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ExecuteRotation
public override async Task<bool> ExecuteRotation(ExGatherTag tag)
{
var level = Core.Player.ClassLevel;
if (GatheringManager.SwingsRemaining > 4 || ShouldForceUseRotation(tag, level))
{
if (Core.Player.CurrentGP >= 500 && level >= 40)
{
await tag.Cast(Ability.IncreaseGatherYield2);
if (Core.Player.CurrentGP >= 100)
{
await tag.Cast(Ability.IncreaseGatherQuality10);
if (Core.Player.CurrentGP >= 100 && tag.GatherItem.Chance < 95)
{
await tag.Cast(Ability.IncreaseGatherChance15);
}
else
{
if (Core.Player.CurrentGP >= 50 && tag.GatherItem.Chance < 100)
{
await tag.Cast(Ability.IncreaseGatherChance5);
}
}
return await base.ExecuteRotation(tag);
}
}
}
return true;
}
示例2: ExecuteRotation
public override async Task<bool> ExecuteRotation(ExGatherTag tag)
{
var level = Core.Player.ClassLevel;
if (GatheringManager.SwingsRemaining > 4 || ShouldForceUseRotation(tag, level))
{
if (Core.Player.CurrentGP >= 500 && level >= 40)
{
await tag.Cast(Ability.IncreaseGatherYield2);
return await base.ExecuteRotation(tag);
}
if (Core.Player.CurrentGP >= 400 && level >= 30 && (level < 40 || Core.Player.MaxGP < 500))
{
await tag.Cast(Ability.IncreaseGatherYield);
return await base.ExecuteRotation(tag);
}
if (Core.Player.CurrentGP >= 300 && level >= 25 && (level < 30 || Core.Player.MaxGP < 400))
{
await Wait();
if (!tag.GatherItem.TryGatherItem())
{
return false;
}
await tag.Cast(Ability.AdditionalAttempt);
return await base.ExecuteRotation(tag);
}
}
return true;
}
示例3: DoRotation
private async Task<bool> DoRotation(ExGatherTag tag)
{
// 96-180 with min perception
// 138-259 with max perception
await tag.Cast(Ability.DiscerningEye);
await tag.Cast(Ability.InstinctualAppraisal);
if (CurrentRarity < 240)
{
var perception = Core.Player.Stats.Perception;
// Methodical range is 80-115
// Discerning methodical is 120-172
if (Core.Player.CurrentGP >= 200)
{
// TODO: not complete
}
await Methodical(tag);
}
await IncreaseChance(tag);
return true;
}
示例4: IncreaseChance
protected override async Task<bool> IncreaseChance(ExGatherTag tag)
{
var level = Core.Player.ClassLevel;
if (Core.Player.CurrentGP >= 250 && tag.GatherItem.Chance < 51 && level > 10)
{
return await tag.Cast(Ability.IncreaseGatherChance50);
}
if (Core.Player.CurrentGP >= 100 && tag.GatherItem.Chance < 95 && level > 4)
{
if (level >= 23 && GatheringManager.SwingsRemaining == 1)
{
return await tag.Cast(Ability.IncreaseGatherChanceOnce15);
}
return await tag.Cast(Ability.IncreaseGatherChance15);
}
if (Core.Player.CurrentGP >= 50 && tag.GatherItem.Chance < 100 && level > 3)
{
if (level >= 23 && GatheringManager.SwingsRemaining == 1)
{
return await tag.Cast(Ability.IncreaseGatherChanceOnce15);
}
return await tag.Cast(Ability.IncreaseGatherChance5);
}
return true;
}
示例5: ExecuteRotation
public override async Task<bool> ExecuteRotation(ExGatherTag tag)
{
if (Core.Player.CurrentGP >= 300 && GatheringManager.SwingsRemaining > 4)
{
await tag.Cast(Ability.IncreaseGatherQuality30);
await base.ExecuteRotation(tag);
if (tag.GatherItem.Chance == 100 && Core.Player.CurrentGP >= 300 && GatheringManager.SwingsRemaining == 5)
{
await Wait();
if (!tag.GatherItem.TryGatherItem())
{
return false;
}
await tag.Cast(Ability.AdditionalAttempt);
}
return true;
}
// Approx 30 gp or more between running to nodes, we are basically capped here so just use 100 gp
if (Core.Player.CurrentGP >= Core.Player.MaxGP - 30)
{
await tag.Cast(Ability.IncreaseGatherQuality10);
return true;
}
return true;
}
示例6: Gather
public virtual async Task<bool> Gather(ExGatherTag tag)
{
tag.StatusText = "Gathering items";
while (tag.Node.CanGather && GatheringManager.SwingsRemaining > tag.SwingsRemaining && Behaviors.ShouldContinue)
{
await Wait();
if (Memory.Gathering.HqChain == 2 && GatheringManager.SwingsRemaining > tag.SwingsRemaining)
{
await tag.Cast(Ability.Luck);
await Wait();
}
if (GatheringManager.GatheringCombo == 4 && GatheringManager.SwingsRemaining > tag.SwingsRemaining)
{
await tag.Cast(Ability.IncreaseGatherChanceQuality100);
await Wait();
}
if (!await tag.ResolveGatherItem())
{
return false;
}
var swingsRemaining = GatheringManager.SwingsRemaining - 1;
if (!tag.GatherItem.TryGatherItem())
{
return false;
}
var ticks = 0;
while (swingsRemaining != GatheringManager.SwingsRemaining && ticks++ < 60 && Behaviors.ShouldContinue)
{
await Coroutine.Yield();
}
}
tag.StatusText = "Gathering items complete";
return true;
}
示例7: ExecuteRotation
public override async Task<bool> ExecuteRotation(ExGatherTag tag)
{
if (Core.Player.CurrentGP >= 500)
{
await tag.Cast(Ability.IncreaseGatherYield2);
}
return await base.ExecuteRotation(tag);
}
示例8: Gather
public override async Task<bool> Gather(ExGatherTag tag)
{
tag.StatusText = "Gathering items";
while (tag.Node.CanGather && GatheringManager.SwingsRemaining > tag.SwingsRemaining && Behaviors.ShouldContinue)
{
await Wait();
if (GatheringManager.GatheringCombo == 4 && GatheringManager.SwingsRemaining > tag.SwingsRemaining)
{
await tag.Cast(Ability.IncreaseGatherChanceQuality100);
await tag.Cast(Ability.IncreaseGatherYieldOnce);
await Wait();
}
// No way to tell if we missed the first swing afaik... so we have to check if we have a combo of 0 anytime after the second swing.
if (GatheringManager.GatheringCombo == 0 && GatheringManager.SwingsRemaining < 5 && !Core.Player.HasAura(220))
{
await tag.Cast(Ability.IncreaseGatherQuality10);
}
if (!await tag.ResolveGatherItem())
{
return false;
}
var swingsRemaining = GatheringManager.SwingsRemaining - 1;
if (!tag.GatherItem.TryGatherItem())
{
return false;
}
var ticks = 0;
while (swingsRemaining != GatheringManager.SwingsRemaining && ticks++ < 60 && Behaviors.ShouldContinue)
{
await Coroutine.Yield();
}
}
tag.StatusText = "Gathering items complete";
return true;
}
示例9: Prepare
public override async Task<bool> Prepare(ExGatherTag tag)
{
// TODO: how much gathering to 1 hit? needs to be added into this logic.
if (Core.Player.CurrentGP >= 500)
{
await tag.Cast(Ability.Toil);
}
return await base.Prepare(tag);
}
示例10: Prepare
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);
}
示例11: DoLevel50Rotation
private async Task<bool> DoLevel50Rotation(ExGatherTag tag)
{
// 240-345 collectability
await Methodical(tag);
await Methodical(tag);
await Methodical(tag);
if (Core.Player.CurrentGP >= 300)
{
await tag.Cast(Ability.AdditionalAttempt);
}
return true;
}
示例12: ExecuteRotation
public override async Task<bool> ExecuteRotation(ExGatherTag tag)
{
var gpRequired = 0U;
var skillList = new List<SpellData>();
foreach (var gatheringSkill in tag.GatheringSkillOrder.GatheringSkills)
{
// Ignoring times to cast.... no skills would ever be cast more than once.
SpellData spellData;
if (!Actionmanager.CurrentActions.TryGetValue(gatheringSkill.SpellName, out spellData))
{
Actionmanager.CurrentActions.TryGetValue(gatheringSkill.SpellId, out spellData);
}
if (spellData == null)
{
tag.Logger.Warn("Unable to find skill -> Name: {0}, Id: {1}", gatheringSkill.SpellName, gatheringSkill.SpellId);
}
else
{
skillList.Add(spellData);
gpRequired += spellData.Cost;
}
}
if (!tag.GatheringSkillOrder.AllOrNone || gpRequired <= Core.Player.CurrentGP)
{
foreach (var skill in skillList)
{
if (Core.Player.CurrentGP > skill.Cost)
{
await tag.Cast(skill.Id);
}
}
}
return true;
}
示例13: UtmostCaution
protected async Task UtmostCaution(ExGatherTag tag)
{
await tag.Cast(Ability.UtmostCaution);
}
示例14: UtmostDiscerningMethodical
protected async Task UtmostDiscerningMethodical(ExGatherTag tag)
{
await tag.Cast(Ability.UtmostCaution);
await tag.Cast(Ability.DiscerningEye);
await tag.Cast(Ability.MethodicalAppraisal);
}
示例15: Methodical
protected async Task Methodical(ExGatherTag tag)
{
await tag.Cast(Ability.MethodicalAppraisal);
}