public readonly record struct AiDiagnosisSettingsWhat counts as bad enough to report.
Remarks
⚠ Thresholds rather than heuristics, and they are arguments rather than constants. A patrol that picks a new waypoint every second is flapping by the numbers and is working perfectly; whether four switches in a window is a bug depends on the window and on the game. What this can honestly do is count and say what it counted, which is why every finding carries its evidence and its tick range.
⚠ Property initialisers and an explicit parameterless constructor, not primary-constructor defaults. A record struct's primary-constructor defaults do not run for default or for new() — only when somebody names the constructor — so writing them that way gives a "default" of all zeros, which here means every threshold is met and every agent in the game is reported as flapping. It is the same trap BehaviorLayoutOptions paid for in P2 and ConstraintGizmoStyle before that. default is still all zeros, which Analyse reads as "nothing was passed".
Fields and properties (5)
public static AiDiagnosisSettings DefaultThe shipped thresholds.
public int SwitchesHow many action changes in the window is flapping.
public int FailuresHow many failures of one action with nothing else tried is stuck.
public float TransitionsWhat average transitions a step counts as thrashing.
public int MinimumHow many records an agent needs before it is judged at all.
Methods (1)
public AiDiagnosisSettings()Creates the shipped thresholds.
Used by (2)
- AiDiagnosisVixen.Ai
- AgentDebugModelVixen.Editor.Ai