public UtilityAi(IActivityCreationContext activityCreationContext, ISkillEvaluationContext skillEvaluationContext, IConditionContext conditionContext) { _activityCreationContext = activityCreationContext; _skillEvaluationContext = skillEvaluationContext; _conditionContext = conditionContext; }
public override float EvaluateSkill(ISkillEvaluationContext context, Skill skill, GameEntity entity) { IEnumerable <GameEntity> actorsAround = context.EntityDetector.DetectEntities(entity.position.Position, entity.vision.VisionRange) .Where(a => a != entity); if (!actorsAround.Any()) { return(0f); } GameEntity closestActor = actorsAround.First(); // todo: needs finishing return(0f); }
public override float EvaluateSkill(ISkillEvaluationContext context, Skill skill, GameEntity entity) { return(ScoreToReturn); }
public override float EvaluateSkill(ISkillEvaluationContext context, Skill skill, GameEntity entity) { float span = Max - Min; return(Min + context.Rng.NextFloat() * span); }
public abstract float EvaluateSkill(ISkillEvaluationContext context, Skill skill, GameEntity entity);
public override float EvaluateSkill(ISkillEvaluationContext context, Skill skill, GameEntity entity) { float normalizedTimeOfDay = context.ContextManager.Current.InGameDate.Hour / 24f; return(TimeToScore.Evaluate(normalizedTimeOfDay)); }