public override IAdvice CreateAdvice(IAgent agent) { var modifiers = new[] { new AdditiveValueModifier(0.1f) }; var contextAccessor = new ManualContextAccessor(agent.OwnerContext, agent.UtilityVariables, GetBestTarget); return(new DefaultAdvice(AdviceVariableTypes.UseAbility, TargetUtilities, contextAccessor, modifiers)); }
public override IAdvice CreateAdvice(IAgent agent) { var contextAccessor = new ManualContextAccessor(agent.OwnerContext, agent.UtilityVariables, (unit, _) => unit); return(new DefaultAdvice(AdviceVariableTypes.HealSelf, new[] { new UtilityKey(UtilityVariableTypes.HasLowHealth) }, contextAccessor)); }
public override IAdvice CreateAdvice(IAgent agent) { var contextAccessor = new ManualContextAccessor(agent.OwnerContext, agent.UtilityVariables, GetBestLocation); return(new DefaultAdvice(AdviceVariableTypes.EscapeTo, new[] { new UtilityKey(UtilityVariableTypes.IsInDanger), new UtilityKey(UtilityVariableTypes.HasLowHealth) }, contextAccessor)); }
public override IAdvice CreateAdvice(IAgent agent) { var contextAccessor = new ManualContextAccessor(agent.OwnerContext, agent.UtilityVariables, GetBestTarget); return(new DefaultAdvice(AdviceVariableTypes.HealOther, new[] { new UtilityKey(UtilityVariableTypes.PartyLowHealth), new UtilityKey(UtilityVariableTypes.AllyDistance), }, contextAccessor)); }