*label casezero2
*if ((werewolfone) and (gargoyleone))
*goto epilogue
*elseif ((werewolfone) and (vampireone))
*goto epilogue
*elseif ((gargoyleone) and (vampireone))
*goto epilogue
*else
*goto caseone
*label caseone
Looking at the files you decide which case you want to do...
*choice
*if (werewolfone = false)
*hide_reuse #"By Tooth and Claw"
*goto casea
*if (gargoyleone = false)
*hide_reuse #"Creepy Statues"
*goto caseb
*if (((werewolfone) or (gargoyleone)) and (vampireone = false))
*hide_reuse #"SOS"
*goto casec
I’ve set up the code so that if you complete “By Tooth and Claw” the game sets [werewolfone] true, “Creepy Statues” sets [gargoyleone] true and “SOS” sets [vampireone] true. So the code above should make the player *goto epilogue if they have completed two missions. but apparently players can do all missions if they do the first two cases first they still get to do the third case. Can anyone see where the ‘issue’ is because I can’t spot it?
*if (((werewolfone) or (gargoyleone)) and (vampireone = false))
If werewolfone and gargoyleone are both true (which means the first two missions are done) and the third mission isn’t done (vampireone), that means you can do the third mission. That’s what I think does it. The problem I spotted is you need to use a strictly-or (XOR in some programming languages) there, I think. Because that *if goes true even if both of the werewolf and gargoyle missions are true (done), and the vampire mission isn’t.
Or, you can set a counter that adds one to it when a mission is done and is set to 0 by default, so that if the counter is 2 or above, you can’t do any more missions.
the intention is when you do your first case either “By Tooth and Claw” or “Creepy Statues” the “SOS” case appears (for a limited time the player either does it or does the other case and loses the chance to do ths case)