Cool idea - I wish I had thought of it.Essential PID 1 might become available after Lovetalk 2, with Essential PID 1 being a requirement for Lovetalk 5 to begin
IF ~lovetalk=1~ THEN BEGIN lovetalkone SAY ~heya~ IF ~~ THEN DO ~setglobal:lovetalk=2 realsetglobaltimer(value)~ EXIT END IF ~lovetalk=3~ THEN BEGIN lovetalktwo SAY ~heya~ IF ~~ THEN DO ~setglobal:lovetalk=4 realsetglobaltimer(value)~ EXIT END /* end of file PID */ IF ~IsGabber(Player1) lovetalk=0~ THEN BEGIN friendshipPID SAY ~blah~ ++ ~reply1~ DO ~setglobal:lovePIDadvance=1~ + nextstate //and so on for a bunch of choices <<snip>> END
and to trigger the lovetalks, instead of the standard big block, individual blocks that advance after both vars are incremented
IF reallovetalktimerexpired() lovetalk=2 lovePIDadvance=1 THEN RESPONSE #100 setglobal lovetalk=3 SDNS(Player1)
Darned good idea. If you really wanted to get tricky, you could do what Domi and Berelinde do, and make that PID advancing variable a range, tracking the "compatability", so if the player has less than 3 points from PID responses, no advancement; if they have 3 to 6, advance gingerly, if they hve 7 to 9, throw themselves at you, etc.
Then you could have PID responses that de-incremented. For Jaheira:
++ ~[PC] Hey, no worries. It is a tough road being a druid, a half-elf, and a Harper. You go ahead and cry on my shoulder.~ DO ~IncrementGlobal("lovePIDadvance","GLOBAL",1~
++ ~[PC] Oh, quit your whining. Khalid was a no-good waste of experience points and really not much more than a stuttering mule. You are lucky I didn't kill him myself..~ DO ~IncrementGlobal("lovePIDadvance","GLOBAL",-27~