I have been working on this generator so I can choose a place with the drop down level and then be able to have random loot generated from that certain place, I have managed to get it to do what I want, my issue is I am unable to find a way to make sure the outcome doesn’t have any repeats
One of the quirks in Perchance is that
[listname]
isn’t a reference to the variable, meaning it doesn’t return the whole list, it would only return a random item from that list.Thus, on the line
output.selectOne.selectUnique(1,2,3)
here is what happens:output.selectOne
would select an item from theoutput
. For example, it would return[Object1]
since the dropdown is set to ‘Zero’.- Doing
.selectUnique(1,2,3)
would randomize the number of selection, however since the returned item is[Object1]
and notObject1
itself, it would not return unique values since you only have[Object1]
as the item and not allGood, hood, Bood
.
Best thing you could do is to create a variable and set that variable to the list to be used like so:
output [list = Object1] ^[Level == "Zero"] [list = Object2] ^[Level == "One"] [list = Object3] ^[Level == "Two"] GroupSelectPrompt You find [pack] [output.evaluateItem, list.selectUnique(1,2,3).joinItems(" and ")]
We use
output.evaluateItem
to ‘run’ the function in the square bracket on the selected item, which would set the value oflist
to the actual list that we need. Then we use thelist
and use.selectUnique
to it to get the unique items.Another way is to use the random-select-plugin like so:
GroupSelectPrompt You find [pack] [select(Object1, Object2, Object3, null, Level == "Zero", Level == "One", Level == "Two").selectUnique(1,2,3).joinItems(" and ")]