- Jun 11, 2020
- 59
- 130
The sex system in my game is currently a loop of two labels. The first contains the player's choices and allows them to change the variables of the sex. The second label it leads to contains a function that causes the npc to randomly generate an action based on their traits and the current variables, take that action and change the variables. Then it leads to back to the first label and the cycle continues until the scene ends. I think this is the basics of how sex systems work in these sorts of games.
My problem is that the second label in the loop isn't doing anything. This is what it looks like:
label sbo_suck:
$ sb_suck_action(y38, y39, tlist)
python:
if sstats.ar1 > 75 and sb_under == 'on':
sstats.ar1 = 75
if sstats.ar0 >= 100:
"Long female orgasm text."
$ sstats.ar0 = 0
if sstats.ar1 >= 100:
jump sbo_suck_end
if tlist[0] != 'true':
"[y38[0]]"
"[y39[0]]"
else:
sv "[y38[0]]"
"[y39[0]]"
if sstats.ar1 >= 50:
"You can see the sweat beading on his forehead."
elif sstats.ar1 >= 70:
"You hear his breath hitched in arousal."
elif sstats.ar1 >= 90:
"He's panting rapidly now."
else:
pass
python:
if y39[0] == '2':
sstats.ar0 += 2
elif y39[0] == '3':
sstats.ar1 += 3
elif y39[0] == '4':
sb_belt = 'open'
elif y39[0] == '5':
sb_pants = 'open'
sb.stats.cock_seen = 'yes'
The last few lines of variables determine whether his pants and underwear are on and if you've seen his cock before, respectively. y38, y39 and tlist are three lists that have their values changed in a function.
This is what that function is:
y38 = ["ph"]
y39 = ["ph"]
tlist = [""]
def sb_suck_action(y38, y39, tlist):
suck_list = []
suct_list = []
suck1 = "You catch the movement of his head in your peripheral vision and glance up to see that he's staring intently at your face. His eyes studying every detail. He's quite enjoying having a girl as beautiful as you standing on her knees in front of him."
suck2 = "He runs the fingers of one hand through your hair, slowly tracing from the top to the back of your head. It sends a tingle down your spine."
suck3 = "He slips both hands behind your head and pulls your mouth into his crotch. He gyrates his hips against your face once and then lets go, letting you take the wheel again."
suct1 = "Whores like you were born to slobber on my cock."
suct2 = "Yeah suck it bitch. Suck my rod. Only thing you're good for."
suct3 = "Always happy to see a bitch in her proper place. On her knees."
suck_list.extend([suck1, suck2])
if sb_under == 'on':
suck_list.append(suck3)
suck_list.append(suck19c)
else:
pass
if sb_under != 'on' and pf.attire.bra == None and (sb.personality.boob_pref == pf.appearance.b_size or sb_oral_decision == 'tits') and pf_mouth != 'full' and pf.appearance.b_size != 'flat':
suck_list.append(suck20a)
elif sb_under != 'on' and pf.attire.bra == None and (sb.personality.boob_pref == pf.appearance.b_size or sb_oral_decision == 'tits') and pf_mouth != 'full' and pf.appearance.b_size == 'flat':
suck_list.append(suck20b)
else:
pass
if sb.personality.vulgarity == 'sleazy':
suct_list.append(suct3)
if sb.personality.vulgarity == 'sleazy' and pf_mouth != 'free':
suct_list.extend([suct1, suct2])
if sb.personality.speech == 'talkative':
y38[0] = random.choices([random.choice(suck_list), random.choice(suct_list)], weights=[60, 40], k = 1)[0]
elif sb.personality.speech == 'reticent':
y38[0] = random.choices([random.choice(suck_list), random.choice(suct_list)], weights=[95, 5], k = 1)[0]
else:
y38[0] = random.choices([random.choice(suck_list), random.choice(suct_list)], weights=[75, 25], k = 1)[0]
if y38[0] == suck1:
y39[0] = '1'
tlist[0] = ''
elif y38[0] == suck2:
y39[0] = '2'
tlist[0] = ''
elif y38[0] == suck3:
y39[0] = '3'
tlist[0] = ''
elif y38[0] == suct1:
y39[0] = 't1'
tlist[0] = 'true'
elif y38[0] == suct2:
y39[0] = 't2'
tlist[0] = 'true'
elif y38[0] == suct3:
y39[0] = 't3'
tlist[0] = 'true'
else:
y39[0] = 'Error'
This is a very shortened version. Through testing I've determined that y39[0] does correlate to the value of y38[0] so if the first one is suck1 then the second one will be '1'. The basic action and reaction loop should work but for some reason it doesn't. None of the NPC's actions are having an impact on the variables. Can anyone help me find out why?
My problem is that the second label in the loop isn't doing anything. This is what it looks like:
label sbo_suck:
$ sb_suck_action(y38, y39, tlist)
python:
if sstats.ar1 > 75 and sb_under == 'on':
sstats.ar1 = 75
if sstats.ar0 >= 100:
"Long female orgasm text."
$ sstats.ar0 = 0
if sstats.ar1 >= 100:
jump sbo_suck_end
if tlist[0] != 'true':
"[y38[0]]"
"[y39[0]]"
else:
sv "[y38[0]]"
"[y39[0]]"
if sstats.ar1 >= 50:
"You can see the sweat beading on his forehead."
elif sstats.ar1 >= 70:
"You hear his breath hitched in arousal."
elif sstats.ar1 >= 90:
"He's panting rapidly now."
else:
pass
python:
if y39[0] == '2':
sstats.ar0 += 2
elif y39[0] == '3':
sstats.ar1 += 3
elif y39[0] == '4':
sb_belt = 'open'
elif y39[0] == '5':
sb_pants = 'open'
sb.stats.cock_seen = 'yes'
The last few lines of variables determine whether his pants and underwear are on and if you've seen his cock before, respectively. y38, y39 and tlist are three lists that have their values changed in a function.
This is what that function is:
y38 = ["ph"]
y39 = ["ph"]
tlist = [""]
def sb_suck_action(y38, y39, tlist):
suck_list = []
suct_list = []
suck1 = "You catch the movement of his head in your peripheral vision and glance up to see that he's staring intently at your face. His eyes studying every detail. He's quite enjoying having a girl as beautiful as you standing on her knees in front of him."
suck2 = "He runs the fingers of one hand through your hair, slowly tracing from the top to the back of your head. It sends a tingle down your spine."
suck3 = "He slips both hands behind your head and pulls your mouth into his crotch. He gyrates his hips against your face once and then lets go, letting you take the wheel again."
suct1 = "Whores like you were born to slobber on my cock."
suct2 = "Yeah suck it bitch. Suck my rod. Only thing you're good for."
suct3 = "Always happy to see a bitch in her proper place. On her knees."
suck_list.extend([suck1, suck2])
if sb_under == 'on':
suck_list.append(suck3)
suck_list.append(suck19c)
else:
pass
if sb_under != 'on' and pf.attire.bra == None and (sb.personality.boob_pref == pf.appearance.b_size or sb_oral_decision == 'tits') and pf_mouth != 'full' and pf.appearance.b_size != 'flat':
suck_list.append(suck20a)
elif sb_under != 'on' and pf.attire.bra == None and (sb.personality.boob_pref == pf.appearance.b_size or sb_oral_decision == 'tits') and pf_mouth != 'full' and pf.appearance.b_size == 'flat':
suck_list.append(suck20b)
else:
pass
if sb.personality.vulgarity == 'sleazy':
suct_list.append(suct3)
if sb.personality.vulgarity == 'sleazy' and pf_mouth != 'free':
suct_list.extend([suct1, suct2])
if sb.personality.speech == 'talkative':
y38[0] = random.choices([random.choice(suck_list), random.choice(suct_list)], weights=[60, 40], k = 1)[0]
elif sb.personality.speech == 'reticent':
y38[0] = random.choices([random.choice(suck_list), random.choice(suct_list)], weights=[95, 5], k = 1)[0]
else:
y38[0] = random.choices([random.choice(suck_list), random.choice(suct_list)], weights=[75, 25], k = 1)[0]
if y38[0] == suck1:
y39[0] = '1'
tlist[0] = ''
elif y38[0] == suck2:
y39[0] = '2'
tlist[0] = ''
elif y38[0] == suck3:
y39[0] = '3'
tlist[0] = ''
elif y38[0] == suct1:
y39[0] = 't1'
tlist[0] = 'true'
elif y38[0] == suct2:
y39[0] = 't2'
tlist[0] = 'true'
elif y38[0] == suct3:
y39[0] = 't3'
tlist[0] = 'true'
else:
y39[0] = 'Error'
This is a very shortened version. Through testing I've determined that y39[0] does correlate to the value of y38[0] so if the first one is suck1 then the second one will be '1'. The basic action and reaction loop should work but for some reason it doesn't. None of the NPC's actions are having an impact on the variables. Can anyone help me find out why?