Case#1:
I have 8 different responses for a PC-initiated flirt, but one of them will only appear if PC is a halfling. When I code that option with RandomNum(8,*) and playtest with a human, every 8th time, the option doesn't appear in the menu. I could write 2 blocks for that one flirt, one for a halfling, which would have 8 responses, and one for !halfling, with 7, but is there another way?
Case#2:
Random NPC-initiated flirts. I don't really want them to repeat, at least until the player has seen them all. But when I code them with RandomNum, it sometimes reports "no valid replies or links". I believe the code below would make it do what I wanted (or not), but it looks silly, how much of it there is.
IF ~RandomNum(3,1) GlobalLT("Z_Lovetalk","GLOBAL",10) Global("Z_FiRFlirt1","LOCALS",0)~ THEN DO ~SetGlobal("Z_FiRFlirt1","LOCALS",1)~ GOTO FlirtEarly1 IF ~RandomNum(3,2) GlobalLT("Z_Lovetalk","GLOBAL",10) Global("Z_FiRFlirt2","LOCALS",0)~ THEN DO ~SetGlobal("Z_FiRFlirt2","LOCALS",1)~ GOTO FlirtEarly2 IF ~RandomNum(3,3) GlobalLT("Z_Lovetalk","GLOBAL",10) Global("Z_FiRFlirt3","LOCALS",0)~ THEN DO ~SetGlobal("Z_FiRFlirt3","LOCALS",1)~ GOTO FlirtEarly3 IF ~RandomNum(2,1) GlobalLT("Z_Lovetalk","GLOBAL",10) Global("Z_FiRFlirt1","LOCALS",1) Global("Z_FiRFlirt2","LOCALS",0)~ THEN DO ~SetGlobal("Z_FiRFlirt2","LOCALS",1)~ GOTO FlirtEarly2 IF ~RandomNum(2,2) GlobalLT("Z_Lovetalk","GLOBAL",10) Global("Z_FiRFlirt1","LOCALS",1) Global("Z_FiRFlirt3","LOCALS",0)~ THEN DO ~SetGlobal("Z_FiRFlirt3","LOCALS",1)~ GOTO FlirtEarly3 IF ~RandomNum(2,1) GlobalLT("Z_Lovetalk","GLOBAL",10) Global("Z_FiRFlirt2","LOCALS",1) Global("Z_FiRFlirt1","LOCALS",0)~ THEN DO ~SetGlobal("Z_FiRFlirt1","LOCALS",1)~ GOTO FlirtEarly1 IF ~RandomNum(2,2) GlobalLT("Z_Lovetalk","GLOBAL",10) Global("Z_FiRFlirt2","LOCALS",1) Global("Z_FiRFlirt3","LOCALS",0)~ THEN DO ~SetGlobal("Z_FiRFlirt3","LOCALS",1)~ GOTO FlirtEarly3 IF ~RandomNum(2,1) GlobalLT("Z_Lovetalk","GLOBAL",10) Global("Z_FiRFlirt3","LOCALS",1) Global("Z_FiRFlirt1","LOCALS",0)~ THEN DO ~SetGlobal("Z_FiRFlirt1","LOCALS",1)~ GOTO FlirtEarly1 IF ~RandomNum(2,2) GlobalLT("Z_Lovetalk","GLOBAL",10) Global("Z_FiRFlirt3","LOCALS",1) Global("Z_FiRFlirt2","LOCALS",0)~ THEN DO ~SetGlobal("Z_FiRFlirt2","LOCALS",1)~ GOTO FlirtEarly2 IF ~GlobalLT("Z_Lovetalk","GLOBAL",10) Global("Z_FiRFlirt2","LOCALS",1) Global("Z_FiRFlirt3","LOCALS",1) Global("Z_FiRFlirt1","LOCALS",0)~ THEN DO ~SetGlobal("Z_FiRFlirt1","LOCALS",1)~ GOTO FlirtEarly1 IF ~GlobalLT("Z_Lovetalk","GLOBAL",10) Global("Z_FiRFlirt1","LOCALS",1) Global("Z_FiRFlirt2","LOCALS",1) Global("Z_FiRFlirt3","LOCALS",0)~ THEN DO ~SetGlobal("Z_FiRFlirt3","LOCALS",1)~ GOTO FlirtEarly3 IF ~GlobalLT("Z_Lovetalk","GLOBAL",10) Global("Z_FiRFlirt1","LOCALS",1) Global("Z_FiRFlirt3","LOCALS",1) Global("Z_FiRFlirt2","LOCALS",0)~ THEN DO ~SetGlobal("Z_FiRFlirt2","LOCALS",1)~ GOTO FlirtEarly2 IF ~RandomNum(3,1) GlobalLT("Z_Lovetalk","GLOBAL",10) Global("Z_FiRFlirt1","LOCALS",1) Global("Z_FiRFlirt2","LOCALS",1) Global("Z_FiRFlirt3","LOCALS",1)~ GOTO FlirtEarly1 IF ~RandomNum(3,2) GlobalLT("Z_Lovetalk","GLOBAL",10) Global("Z_FiRFlirt1","LOCALS",1) Global("Z_FiRFlirt2","LOCALS",1) Global("Z_FiRFlirt3","LOCALS",1)~ GOTO FlirtEarly2 IF ~RandomNum(3,3) GlobalLT("Z_Lovetalk","GLOBAL",10) Global("Z_FiRFlirt1","LOCALS",1) Global("Z_FiRFlirt2","LOCALS",1) Global("Z_FiRFlirt3","LOCALS",1)~ GOTO FlirtEarly3
Am I missing a better way?
(Because it has always annoyed me when the same flirt repeats twice+. If there isn't a nice way to avoid it, I could code them in a certain order, but would that be ok?)