You need to set up separate <list> elements for each trial type and then sample from those accordingly. That is
**************************************************************************************************************
**************************************************************************************************************
EDITABLE STIMULI: change editable stimuli here
**************************************************************************************************************
**************************************************************************************************************
<item UnpleasantPrimes>
/1 = "MURDER"
/2 = "KILL"
/3 = "FAULT"
/4 = "LATE"
</item>
<item PleasantPrimes>
/1 = "HAPPY"
/2 = "LOVE"
/3 = "NICE"
/4 = "LUNCH"
</item>
<item UnpleasantTargets>
/1 = "EVIL"
/2 = "FORGET"
/3 = "STUPID"
/4 = "WORRY"
/5 = "POVERTY"
/6 = "VOMIT"
/7 = "IDIOT"
/8 = "ROTTEN"
/9 = "HEADACHE"
/10 = "LOUSY"
/11 = "DEVIL"
/12 = "SLIME"
/13 = "DIVORCE"
/14 = "FAILURE"
/15 = "FRAUD"
/16 = "TERRIBLE"
/17 = "POLLUTE"
/18 = "SCUM"
/19 = "UGLY"
/20 = "HUMILIATE"
/21 = "STINK"
/22 = "WASTE"
/23 = "SNOB"
/24 = "FILTH"
</item>
<item PleasantTargets>
/1 = "SWEET"
/2 = "LUCKY"
/3 = "THANKFUL"
/4 = "PRETTY"
/5 = "FREEDOM"
/6 = "RAINBOW"
/7 = "GREAT"
/8 = "HONEST"
/9 = "PEACE"
/10 = "HEAVEN"
/11 = "PLEASURE"
/12 = "EASY"
/13 = "TRUTH"
/14 = "FRIEND"
/15 = "CHEER"
/16 = "HOPE"
/17 = "WONDERFUL"
/18 = "HUMOR"
/19 = "SUNSET"
/20 = "TERRIFIC"
/21 = "MIRACLE"
/22 = "SUNRISE"
/23 = "PARADISE"
/24 = "VACATION"
</item>
with
<list UP_UnpleasantPrimeitemnumbers>
/ items = (1, 2, 3, 4)
/ poolsize = 12
/ replace = false
/ resetinterval = 1
</list>
<list UU_UnpleasantPrimeitemnumbers>
/ items = (1, 2, 3, 4)
/ poolsize = 12
/ replace = false
/ resetinterval = 1
</list>
<list PP_PleasantPrimeitemnumbers>
/ items = (1, 2, 3, 4)
/ poolsize = 12
/ replace = false
/ resetinterval = 1
</list>
<list PU_PleasantPrimeitemnumbers>
/ items = (1, 2, 3, 4)
/ poolsize = 12
/ replace = false
/ resetinterval = 1
</list>
and
<trial UU_test>
/ ontrialbegin = [values.counttrials_test += 1; values.UU_test += 1]
/ ontrialbegin = [values.primecategory="Unpleasant"; values.targetcategory="Unpleasant"]
/ ontrialbegin = [values.targetitemnumber = list.UnpleasantTargetitemnumbers.nextvalue; values.primeitemnumber =
list.UU_UnpleasantPrimeitemnumbers.nextvalue]
/ ontrialbegin = [trial.UU_test.insertstimulustime(shape.eraser, (values.primeduration))]
/ ontrialbegin = [trial.UU_test.insertstimulustime(text.UnpleasantTarget, (values.primeduration + values.pt_isi))]
/ ontrialend = [trial.UU_test.resetstimulusframes()]
/ stimulustimes = [0 = UnpleasantPrime]
/ beginresponsetime = values.primeduration + values.pt_isi
/ responseinterrupt = immediate
/ monkeyresponse = (18, 23)
/ isvalidresponse = [trial.UU_test.response==values.responsekeyUnpleasant || trial.UU_test.response == values.responsekeyPleasant]
/ iscorrectresponse = [trial.UU_test.response == values.responsekeyUnpleasant]
/ ontrialend = [values.prime = text.UnpleasantPrime.currentitem; values.target = text.UnpleasantTarget.currentitem]
/ ontrialend = [if (trial.UU_test.correct) {values.corr_test += 1;
values.sumRT_test += trial.UU_test.latency;
values.corr_UU_test += 1;
values.sumRT_UU_test += trial.UU_test.latency}]
/ posttrialpause = values.iti
/ errormessage = true(errorfeedback, 500)
</trial>
<trial UP_test>
/ ontrialbegin = [values.counttrials_test += 1; values.UP_test += 1]
/ ontrialbegin = [values.primecategory="Unpleasant"; values.targetcategory="Pleasant"]
/ ontrialbegin = [values.targetitemnumber = list.PleasantTargetitemnumbers.nextvalue; values.primeitemnumber =
list.UP_UnpleasantPrimeitemnumbers.nextvalue]
/ ontrialbegin = [trial.UP_test.insertstimulustime(shape.eraser, (values.primeduration))]
/ ontrialbegin = [trial.UP_test.insertstimulustime(text.PleasantTarget, (values.primeduration + values.pt_isi))]
/ ontrialend = [trial.UP_test.resetstimulusframes()]
/ stimulustimes = [0 = UnpleasantPrime]
/ beginresponsetime = values.primeduration + values.pt_isi
/ responseinterrupt = immediate
/ monkeyresponse = (18, 23)
/ isvalidresponse = [trial.UP_test.response==values.responsekeyUnpleasant || trial.UP_test.response == values.responsekeyPleasant]
/ iscorrectresponse = [trial.UP_test.response == values.responsekeyPleasant]
/ ontrialend = [values.prime = text.UnpleasantPrime.currentitem; values.target = text.PleasantTarget.currentitem]
/ ontrialend = [if (trial.UP_test.correct) {values.corr_test += 1;
values.sumRT_test += trial.UP_test.latency;
values.corr_UP_test += 1;
values.sumRT_UP_test += trial.UP_test.latency}]
/ posttrialpause = values.iti
/ errormessage = true(errorfeedback, 500)
</trial>
<trial PU_test>
/ ontrialbegin = [values.counttrials_test += 1; values.PU_test += 1]
/ ontrialbegin = [values.primecategory="Pleasant"; values.targetcategory="Unpleasant"]
/ ontrialbegin = [values.targetitemnumber = list.UnpleasantTargetitemnumbers.nextvalue; values.primeitemnumber =
list.PU_PleasantPrimeitemnumbers.nextvalue]
/ ontrialbegin = [trial.PU_test.insertstimulustime(shape.eraser, (values.primeduration))]
/ ontrialbegin = [trial.PU_test.insertstimulustime(text.UnpleasantTarget, (values.primeduration + values.pt_isi))]
/ ontrialend = [trial.PU_test.resetstimulusframes()]
/ stimulustimes = [0 = PleasantPrime]
/ beginresponsetime = values.primeduration + values.pt_isi
/ responseinterrupt = immediate
/ monkeyresponse = (18, 23)
/ isvalidresponse = [trial.PU_test.response==values.responsekeyUnpleasant || trial.PU_test.response == values.responsekeyPleasant]
/ iscorrectresponse = [trial.PU_test.response == values.responsekeyUnpleasant]
/ ontrialend = [values.prime = text.PleasantPrime.currentitem; values.target = text.UnpleasantTarget.currentitem]
/ ontrialend = [if (trial.PU_test.correct) {values.corr_test += 1;
values.sumRT_test += trial.PU_test.latency;
values.corr_PU_test += 1;
values.sumRT_PU_test += trial.PU_test.latency}]
/ posttrialpause = values.iti
/ errormessage = true(errorfeedback, 500)
</trial>
<trial PP_test>
/ ontrialbegin = [values.counttrials_test += 1; values.PP_test += 1]
/ ontrialbegin = [values.primecategory="Pleasant"; values.targetcategory="Pleasant"]
/ ontrialbegin = [values.targetitemnumber = list.PleasantTargetitemnumbers.nextvalue; values.primeitemnumber =
list.PP_PleasantPrimeitemnumbers.nextvalue]
/ ontrialbegin = [trial.PP_test.insertstimulustime(shape.eraser, (values.primeduration))]
/ ontrialbegin = [trial.PP_test.insertstimulustime(text.PleasantTarget, (values.primeduration + values.pt_isi))]
/ ontrialend = [trial.PP_test.resetstimulusframes()]
/ stimulustimes = [0 = PleasantPrime]
/ beginresponsetime = values.primeduration + values.pt_isi
/ responseinterrupt = immediate
/ monkeyresponse = (18, 23)
/ isvalidresponse = [trial.PP_test.response==values.responsekeyUnpleasant || trial.PP_test.response == values.responsekeyPleasant]
/ iscorrectresponse = [trial.PP_test.response == values.responsekeyPleasant]
/ ontrialend = [values.prime = text.PleasantPrime.currentitem; values.target = text.PleasantTarget.currentitem]
/ ontrialend = [if (trial.PP_test.correct) {values.corr_test += 1;
values.sumRT_test += trial.PP_test.latency;
values.corr_PP_test += 1;
values.sumRT_PP_test += trial.PP_test.latency}]
/ posttrialpause = values.iti
/ errormessage = true(errorfeedback, 500)
</trial>