Example #1
0
        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));
        }