fix: make the job filter work better

This commit is contained in:
Anna 2021-01-15 22:12:29 -05:00
parent 400af0810f
commit 36195a3e9f
1 changed files with 12 additions and 1 deletions

View File

@ -102,6 +102,16 @@ namespace BetterPartyFinder {
}
}
// ensure the number of total slots with possibles joins is at least the number of jobs
// note that this doesn't make sure it's joinable, see below
var numSlots = jobs
.Aggregate((acc, x) => acc.Union(x).ToHashSet())
.Count;
if (numSlots < jobs.Length) {
return false;
}
// loop through each unique pair of jobs
for (var i = 0; i < jobs.Length; i++) {
// ReSharper disable once LoopCanBeConvertedToQuery
@ -115,12 +125,13 @@ namespace BetterPartyFinder {
// check if the slots either job can join have overlap
var overlap = a.Intersect(b);
if (!overlap.Any()) {
if (overlap.Count() != 1) {
continue;
}
// if there is overlap, check the difference between the sets
// if there is no difference, the party can't be joined
// note that if the overlap is more than one slot, we don't need to check
var difference = a.Except(b);
if (!difference.Any()) {
return false;