public static void FleeHurtDir(NPCHumanContext c) { if (c.AIAgent.IsNavRunning() && HumanNavigateToOperator.NavigateInDirOfBestSample(c, NavPointSampler.SampleCount.Eight, 4f, NavPointSampler.SampleFeatures.RetreatFromDirection, c.AIAgent.GetStats.MinFleeRange, c.AIAgent.GetStats.MaxFleeRange)) { c.SetFact(NPCPlayerApex.Facts.IsFleeing, 1, true, true); } }
public static void Sidestep(NPCHumanContext c) { if (c.AIAgent.IsNavRunning()) { c.Human.StoppingDistance = 0.1f; if (HumanNavigateToOperator.NavigateInDirOfBestSample(c, NavPointSampler.SampleCount.Eight, 4f, NavPointSampler.SampleFeatures.FlankTarget, 2f, 5f) && c.AIAgent.GetFact(NPCPlayerApex.Facts.IsInCover) == 1) { c.AIAgent.SetFact(NPCPlayerApex.Facts.SidesteppedOutOfCover, 1, true, true); } } }
public static void NavigateToRandomLoc(NPCHumanContext c) { if (IsHumanRoamReady.Evaluate(c) && c.AIAgent.IsNavRunning() && HumanNavigateToOperator.NavigateInDirOfBestSample(c, NavPointSampler.SampleCount.Eight, 4f, NavPointSampler.SampleFeatures.DiscourageSharpTurns, c.AIAgent.GetStats.MinRoamRange, c.AIAgent.GetStats.MaxRoamRange)) { HumanNavigateToOperator.UpdateRoamTime(c); if (c.Human.OnChatter != null) { c.Human.OnChatter(); } } }