Vixen
caa30e12
csharp
public sealed class UtilityAction

One thing an agent might do, and how good it would be.

Read the guide page for this →

Remarks

doc 37 § D2's whole point: what this chooses is an IAgentAction, named by index the way a behaviour-tree task is. A project writes MoveToTask once and gets it in a tree, in a utility set and in a GOAP plan.

Weight is the bucket — 1 for ambient, 2–3 for important, 5 for emergency — and it is a multiplier rather than a hard ordering. ⚠ A hard ordering means an emergency action with one zero-scoring consideration blocks everything below it; a multiplier degrades instead.

Fields and properties (6)

  • public Symbol Name

    What it is called.

  • public ushort Action

    Which action it runs.

  • public UtilityConsideration[] Considerations

    What decides how good it is.

  • public float Weight

    Its multiplier. 1 for ambient, 2–3 for important, 5 for emergency.

  • public float Cooldown

    How long after it ends before it may be chosen again, in seconds.

  • public int Bucket

    Which group it is in. Higher wins, under UtilitySelectors.Bucketed.

Methods (2)

  • public UtilityAction(Symbol name, ushort action, params UtilityConsideration[] considerations)

    Creates an action.

  • public float Score(in AgentContext context, Span<float> detail = default(Span<float>))

    How good it would be right now.

Used by (23)

  • AiDebugChannelTestsVixen.Ai.Tests
  • AiDiagnosisExitCriteriaTestsVixen.Ai.Tests
  • AiSnapshotTestsVixen.Ai.Tests
  • AiSnapshotsVixen.Ai
  • AiSystemVixen.Ai
  • AuthorableNodeTestsVixen.Ai.Tests
  • BucketedSelectorVixen.Ai
  • OverlayFixtureVixen.Ai.Diagnostics.Tests
  • QueryScorerExitCriteriaTestsVixen.Ai.Tests
  • RunUtilitySetTaskVixen.Ai
  • UtilityAgentTestsVixen.Ai.Tests
  • UtilityCompensationTestsVixen.Ai.Tests
  • UtilityContentTestsVixen.Ai.Tests
  • UtilityInertiaTestsVixen.Ai.Tests
  • UtilityOscillationTestsVixen.Ai.Tests
  • UtilitySelectorTestsVixen.Ai.Tests
  • UtilitySelectorsVixen.Ai
  • UtilitySetVixen.Ai
  • UtilitySetContentCompilerVixen.Ai
  • VillageVixen.Ai.Nodes.Tests
  • VillageSampleTestsVixen.Ai.Nodes.Tests
  • AgentFixtureVixen.Editor.AssetEditors.Tests
  • LiveAgentVixen.Editor.AssetEditors.Tests