internal bool ForceEvaluation() { m_ForceEvaluationMarker.Begin(); CycleStart(); MemberTraitCacheStage.Complete(); RelationTraitCacheStage.Complete(); MemberConditionRatingStage.Complete(); IncompleteGroupFilterStage.Complete(); MemberMatchIntersectionStage.Complete(); MemberDataAvailabilityStage.Complete(); MemberTraitRequirementStage.Complete(); MemberMatchReductionStage.Complete(); GroupRelationRatingStage.Complete(); FilterRelationMembersStage.Complete(); MatchSearchStage.Complete(); MarkDataUsedStage.Complete(); MemberResultFillStage.Complete(); GroupResultFillStage.Complete(); m_ForceEvaluationMarker.End(); // acquire handling comes after the profiler label because we've already found the answer AcquireHandlingStage.Complete(); onStageGroupCompletion?.Invoke(); // Return whether we had any matches this iteration return(Data.DefiniteMatchAcquireIndices.Count > 0); }