Vixen
c7401864
csharp
public interface IScoredCandidateSet<out T>

A list of candidates scored the same way, whatever a candidate happens to be.

Read the guide page for this →

Remarks

Doc 37 § D14, as a type. Unreal's EQS answers "where should I stand" by generating candidate points, running scored tests over them and taking the best; utility scoring answers "what should I do" by generating candidate actions, running scored considerations over them and taking the best. Those are the same machine, and this interface is where that stops being a remark and becomes something the compiler checks: UtilitySet implements it and so does EnvironmentQuery.

⚠ Factor counts are per candidate, not per set, which is the one place the two hosts genuinely differ. Every point in a query runs the same test list; every action in a utility set has its own considerations. A shared abstraction that assumed the query's shape would have made the utility set implement it by lying.

Fields and properties (1)

  • int CandidateCount

    How many candidates there are.

Methods (5)

  • T CandidateAt(int index)

    One of them.

  • Symbol CandidateName(int index)

    What one candidate is called, for a table, an overlay and a diagnostic.

  • int FactorsOf(int index)

    How many factors score one candidate.

  • Symbol FactorName(int index, int factor)

    What one of a candidate's factors is called.

  • float ScoreOf(in AgentContext context, int index, Span<float> detail = default(Span<float>))

    Scores one candidate, and optionally reports every factor it read.

Used by (5)

  • CandidateScoringVixen.Ai
  • EnvironmentQueryVixen.Ai
  • QueryScorerExitCriteriaTestsVixen.Ai.Tests
  • SeamTestsVixen.Ai.Nodes.Tests
  • UtilitySetVixen.Ai