@[email protected]'s Solution works wonderfully.
Here is another way using the exclude-items-plugin
:
exclude = {import:exclude-items-plugin}
sentence
[takenTypes = [], ''] You find yourself in {a} [d=description.selectOne] [b=biome.selectOne].<br> As the area is [d.singularForm.lowerCase], [td = typesdescription.selectOne.evaluateItem, takenTypes.push(td), td] type 'mons are rather prolific. That is in addition to the [typesbiome = exclude(others[b], takenTypes).selectUnique(2).map(a => (takenTypes.push(a), a)).joinItems(" and ")] types that live in the [b] already. <br>Oddly enough, there also seem to be some [s=exclude(stragglers, takenTypes).selectOne, takenTypes.push(s), s] type 'mons in the area as well. <br><br> Pokemon Types: [td] ([d]), [typesbiome] ([b]), [s] (stragglers)
The td = typesdescription.selectOne.evaluateItem
makes sure that you have the Type instead of the description stored on the takenTypes
list. If you don't want to add the evaluateItem
you could remove the dynamic odds using the d
and use td = typesdescription[d].selectOne
to select only the type. We push the selected types on the takenTypes
list and use it to exclude the already selected types on the next selection with the exclude-items-plugin
.