Vixen
02b45cc4
csharp
public readonly record struct MoveQuery

The question the selector answers.

Read the guide page for this →

Remarks

A value, so building one costs nothing and comparing two is comparing a few words. The selection pass only has to run when the question changes, and that test is this type's equality — which is why it is a record struct and why Preferred is a memory rather than an array.

⚠ Required is the only hard filter, and it should be used sparingly. Everything expressed as a requirement is a way for the query to return nothing; everything expressed as a preference degrades instead. "The best walk, given that I am injured and on ice" wants role=loop required and the rest preferred, so a set with no injured ice-walk finds the injured walk, and one with neither finds the walk.

Fields and properties (5)

  • public FacetSet Required

    What a candidate must say to be considered at all.

  • public WeightedFacet[]? Preferred

    What a candidate is rewarded for saying.

  • public MoveTargets Numeric

    What the body wants to be doing.

  • public MoveKey Previous

    What is playing, so the same move is not immediately chosen again.

  • public float RepeatPenalty

    How much choosing Previous again counts against it.

Methods (1)

  • public MoveQuery()

    Creates an empty query.

Used by (16)

  • MoveSelectionBenchmarksVixen.Benchmarks.Animation
  • AlphabeticalTestScorerVixen.Animation.Tests
  • AuthoringTestsVixen.Animation.Tests
  • DefaultMoveScorerVixen.Animation
  • IMoveScorerVixen.Animation
  • IMoveSelectorVixen.Animation
  • MoveCoverageVixen.Animation
  • MoveExplanationsVixen.Animation
  • MoveSetMotionVixen.Animation
  • MoveSetTestsVixen.Animation.Tests
  • MoveTransitionTestsVixen.Animation.Tests
  • QueryMoveSelectorVixen.Animation
  • SeamTestsVixen.Animation.Tests
  • TableTestSelectorVixen.Animation.Tests
  • MoveQueryTextVixen.Editor.AssetEditors
  • MoveSetTestsVixen.Editor.AssetEditors.Tests