Browse Source

Merge remote-tracking branch 'upstream/master'

HotMike 1 year ago
parent
commit
48a494b9ef
45 changed files with 2667 additions and 902 deletions
  1. 2 0
      locations/bedrPar.qsrc
  2. 3 0
      locations/city_house_res_misc.qsrc
  3. 3 0
      locations/city_mansion_residence_3.qsrc
  4. 5 4
      locations/city_park.qsrc
  5. 1 1
      locations/clothing_QV.qsrc
  6. 4 2
      locations/crossfit_north_box.qsrc
  7. 5 3
      locations/danceclass.qsrc
  8. 15 27
      locations/exercise.qsrc
  9. 37 9
      locations/exp_gain.qsrc
  10. 20 6
      locations/fit.qsrc
  11. 1 1
      locations/foto_nude_debut.qsrc
  12. 24 23
      locations/gadroad.qsrc
  13. 45 26
      locations/gdksport.qsrc
  14. 385 99
      locations/grades.qsrc
  15. 22 16
      locations/gschool_grounds.qsrc
  16. 327 26
      locations/katja_procedural.qsrc
  17. 9 5
      locations/pav_park.qsrc
  18. 37 36
      locations/pirsingsalon.qsrc
  19. 18 29
      locations/podrsex.qsrc
  20. 3 3
      locations/saveg.qsrc
  21. 20 16
      locations/saveupdater.qsrc
  22. 5 13
      locations/sex.qsrc
  23. 160 112
      locations/sex_ev_after.qsrc
  24. 27 13
      locations/sex_ev_condoms.qsrc
  25. 4 3
      locations/sex_ev_cowgirl.qsrc
  26. 38 37
      locations/sex_ev_cum.qsrc
  27. 6 6
      locations/sex_ev_favorite_part.qsrc
  28. 27 21
      locations/sex_ev_foreplay.qsrc
  29. 1 1
      locations/sex_ev_foreplay_desc.qsrc
  30. 113 47
      locations/sex_ev_leave.qsrc
  31. 6 0
      locations/sex_ev_miss.qsrc
  32. 139 85
      locations/sex_ev_morning.qsrc
  33. 577 103
      locations/sex_ev_pillow_talk.qsrc
  34. 73 27
      locations/sex_ev_pillow_talk2.qsrc
  35. 79 71
      locations/sex_ev_reactions.qsrc
  36. 20 3
      locations/sex_ev_sex.qsrc
  37. 46 4
      locations/sex_ev_start.qsrc
  38. 13 3
      locations/sex_ev_stats.qsrc
  39. 292 13
      locations/sex_ev_talk.qsrc
  40. 2 0
      locations/sitr.qsrc
  41. 11 0
      locations/spell.qsrc
  42. 9 7
      locations/stat.qsrc
  43. 25 0
      locations/version.qsrc
  44. 2 1
      locations/wardrobe.qsrc
  45. 6 0
      locations/willpower.qsrc

+ 2 - 0
locations/bedrPar.qsrc

@@ -221,6 +221,8 @@ if $ARGS[0] = '' or $ARGS[0] = 'start':
 
 			if locat['Anya_inroom'] = 0: dynamic $palelady
 
+			gs 'wardrobe', 'default_sport_options'
+
 			gs 'exercise', 'start'
 
 			if sewing_kit = 1:

+ 3 - 0
locations/city_house_res_misc.qsrc

@@ -112,6 +112,9 @@ if $ARGS[0] = 'backy':
 			if $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich':
 				*nl
 				'You can do some exercises here.'
+
+				gs 'wardrobe', 'default_sport_options'
+
 				act 'Exercise': gt 'exercise', 'workout'
 			else
 				*nl

+ 3 - 0
locations/city_mansion_residence_3.qsrc

@@ -26,6 +26,9 @@ if $ARGS[0] = 'ygym':
 
 	if ymanrem[11] = 2:
 		'Your private gym with all the necessities to live a healthy life. From here you can walk over to the pool or relax in the sauna.'
+
+		gs 'wardrobe', 'default_sport_options'
+
 		gs 'exercise', 'start'
 	end
 end

+ 5 - 4
locations/city_park.qsrc

@@ -121,12 +121,11 @@ if $ARGS[0] = 'start':
 		end
 	end
 
-	if $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and hour > 5 and hour < 23 and parkrunday ! daystart:
-		if pcs_energy >= 5:
+	if $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and hour > 5 and hour < 23:
+		if pcs_energy >= 5 and pcs_stam >= stammax / 5:
 			act 'Go for a run in the park (1:00)':
 				*clr & cla
 				menu_off = 1
-				parkrunday = daystart
 				gs 'exercise', 'tier1', 60, 'run'
 				'<center><b><font color="maroon">Park</font></b></center>'
 				'<center><img <<$set_imgh>> src="images/locations/shared/park/parkbeg.jpg"></center>'
@@ -180,8 +179,10 @@ if $ARGS[0] = 'start':
 					end
 				end
 			end
-		else
+		elseif pcs_stam >= stammax / 5:
 			act 'Go for a run in the park (1:00)': '<br><font color="red">You are so hungry you cannot face going for a run.</font>'
+		else
+			act 'Go for a run in the park (1:00)': '<br><font color="red">You are to exhausted to do this. Recover your stamina before trying to go for a run.</font>'
 		end
 	elseif hour > 5 and hour < 23 and parkrunday ! daystart:
 		'You could go for a run in the park if you were wearing sports clothes and shoes.'

+ 1 - 1
locations/clothing_QV.qsrc

@@ -1914,7 +1914,7 @@ if $ARGS[0] = 'shop_filter':
 		clothingfilter['only'] += 1
 	end
 	if clothingfilter['too_risque_only'] = 1 and CloInhibit > pcs_inhib:
-		clothingfilter['inc'] += 1
+		clothingfilter['only'] += 1
 	end
 	if clothingfilter['loose_only'] = 1 and CloStyle = 5:
 		clothingfilter['only'] += 1

+ 4 - 2
locations/crossfit_north_box.qsrc

@@ -34,7 +34,7 @@ if $ARGS[0] = 'box':
 		end
 	end
 
-	if pcs_energy >= 20:
+	if pcs_energy >= 20 and pcs_stam >= stammax / 5:
 		act 'Start the exercise':
 			menu_off = 1
 			if last_crossfit_workout = daystart:
@@ -83,8 +83,10 @@ if $ARGS[0] = 'box':
 				end
 			end
 		end
-	else
+	elseif pcs_stam >= stammax / 5:
 		act 'Start the exercise': '<br><font color="red">You feel too hungry to do this exercise now.</font>'
+	else
+		act 'Start the exercise': '<br><font color="red">You are to exhausted to do this. Recover your stamina before trying to do this exercise.</font>'
 	end
 end
 

+ 5 - 3
locations/danceclass.qsrc

@@ -9,7 +9,7 @@ gs 'themes', 'indoors'
 '<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/dance/danceclass.jpg"></center>'
 'A big, open room with good lighting and huge mirrors, perfect for improving your dance skills.'
 
-if pcs_energy >= 10:
+if pcs_energy >= 10 and pcs_stam >= stammax / 5:
 	act 'Modern dance class (0:30)':
 		*clr & cla
 		gs 'exercise', 'tier2', 30, 'agil', 'stren', 'danc'
@@ -71,9 +71,11 @@ if pcs_energy >= 10:
 			act 'Pole dance class (0:30)': '<br><font color="red">You don''t have enough energy to use this action.</font>'
 		end
 	end
-else
+elseif pcs_stam >= stammax / 5:
 	*nl
-	'You are so hungry you can''t even bring yourself to look at the activities available'
+	'You are so hungry you can''t even bring yourself to look at the activities available.'
+else
+	'You are to exhausted you can''t even bring yourself to look at the activities available. Recover your stamina before trying to dance.'
 end
 
 act 'Leave':gt 'fit', 'dressing_room'

+ 15 - 27
locations/exercise.qsrc

@@ -41,7 +41,9 @@ if $ARGS[0] = 'workout':
 			gt $loc, $loc_arg
 		end
 	end
-	if $clothingworntype = 'nude' or $clothingworntype = 'danilovich_outfits':
+	if pcs_energy < 20 or pcs_stam < stammax / 5:
+		'You do not have the energy/stamina to exercise currently'
+	elseif $clothingworntype = 'nude' or $clothingworntype = 'danilovich_outfits':
 		act 'Manual routines': gt 'exercise', 'manual'
 		act 'Define routines': gt 'exercise', 'setup'
 		if exer_stam[1] ! 0 and pcs_stam > exer_stam[1]: act '<<$excer_name[1]>> - (<<exer_stam[1]>> stamina)': exercisex = 1 & gt 'exercise', 'auto'
@@ -142,63 +144,51 @@ if $ARGS[0] = 'manual':
 	menu_off = 0
 	cla
 	act 'Return':gt 'exercise', 'workout'
-	if pcs_stam >= 15:
+	if pcs_energy < 20 and pcs_stam < stammax / 5:
+		'You don''t have the energy/stamina to work out anymore now.'
+	else
 		act 'Do pushups for 15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'push'
 		act 'Do crunches for 15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'press'
 		act 'Do squats for 15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'butt'
 		if skak > 0 and $loc ! 'meadow':
 			act 'Jump rope for 15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'rope'
 		end
-	end
-	if pcs_stam >= 10:
 		if bookYog > 0:
 			act 'Do yoga for 15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'yoga'
 		end
 		if obruch > 0 and $loc ! 'meadow':
 			act 'Use your hula hoop for 15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'hula'
 		end
-	end
-	if pcs_stam >= 30:
 		act 'Do pushups for 30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt  'exercise', 'push'
 		act 'Do crunches for 30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt  'exercise', 'press'
 		act 'Do squats for 30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt 'exercise', 'butt'
 		if skak > 0 and $loc ! 'meadow':
 			act 'Jump rope for 30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt  'exercise', 'rope'
 		end
-	end
-	if pcs_stam >= 20:
 		if bookYog > 0:
 			act 'Do yoga for 30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt  'exercise', 'yoga'
 		end
 		if obruch > 0 and $loc ! 'meadow':
 			act 'Use your hula hoop for 30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt  'exercise', 'hula'
 		end
-	end
-	if pcs_stam >= 45:
 		act 'Do pushups for 45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt  'exercise', 'push'
 		act 'Do crunches for 45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt  'exercise', 'press'
 		act 'Do squats for 45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt 'exercise', 'butt'
 		if skak > 0 and $loc ! 'meadow':
 			act 'Jump rope for 45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt  'exercise', 'rope'
 		end
-	end
-	if pcs_stam >= 30:
 		if bookYog > 0:
 			act 'Do yoga for 45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt  'exercise', 'yoga'
 		end
 		if obruch > 0 and $loc ! 'meadow':
 			act 'Use your hula hoop for 45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt  'exercise', 'hula'
 		end
-	end
-	if pcs_stam >= 60:
 		act 'Do pushups for 60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt  'exercise', 'push'
 		act 'Do crunches for 60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt  'exercise', 'press'
 		act 'Do squats for 60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt 'exercise', 'butt'
 		if skak > 0 and $loc ! 'meadow':
 			act 'Jump rope for 60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt  'exercise', 'rope'
 		end
-	end
-	if pcs_stam >= 40:
 		if bookYog > 0:
 			act 'Do yoga for 60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt  'exercise', 'yoga'
 		end
@@ -206,9 +196,6 @@ if $ARGS[0] = 'manual':
 			act 'Use your hula hoop for 60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt  'exercise', 'hula'
 		end
 	end
-	if pcs_stam < 10 or pcs_stam < 15 and bookYog + obruch = 0:
-		'You don''t have the energy to work out anymore now.'
-	end
 end
 
 if $ARGS[0] = 'routines':
@@ -218,10 +205,10 @@ if $ARGS[0] = 'routines':
 	'<center><table>'
 	'<TD><b>Routine</b></TD><TD><b>Push ups</b></TD><TD><b>Crunches</b></TD><TD><b>Jump rope</b></TD><TD><b>Yoga</TD><TD><b>Hula hoop</b></TD><TD><b>Squats</b></TD>'
 	'<TR><TD width="100" cellspacing="2" align="left">'+iif(exer_menu = 1,'<a href="exec:$excer_name[1] = input (''<center>Enter name for exercise routine 1<br>Leave blank to restore default name.</center>'') & gs ''exercise'', ''rename'' & gt ''exercise'', ''setup''"><<$excer_name[1]>>:</a> ','<<$excer_name[1]>>:</a> ')+'</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout0[1]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout1[1]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout2[1]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout3[1]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout4[1]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout5[1]*15>></b> minutes</TD>'
-	'<TR><TD width="100" cellspacing="2" align="left">'+iif(exer_menu = 1,'<a href="exec:$excer_name[2] = input (''<center>Enter name for exercise routine 2<br>Leave blank to restore default name.</center>'') & gs ''exercise'', ''rename'' & gt ''exercise'', ''setup''"><<$excer_name[2]>>:</a> ','<<$excer_name[2]>>:</a> ')+'</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout0[2]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout1[2]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout2[2]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout3[2]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout4[2]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout5[1]*15>></b> minutes</TD>'
-	'<TR><TD width="100" cellspacing="2" align="left">'+iif(exer_menu = 1,'<a href="exec:$excer_name[3] = input (''<center>Enter name for exercise routine 3<br>Leave blank to restore default name.</center>'') & gs ''exercise'', ''rename'' & gt ''exercise'', ''setup''"><<$excer_name[3]>>:</a> ','<<$excer_name[3]>>:</a> ')+'</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout0[3]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout1[3]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout2[3]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout3[3]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout4[3]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout5[1]*15>></b> minutes</TD>'
-	'<TR><TD width="100" cellspacing="2" align="left">'+iif(exer_menu = 1,'<a href="exec:$excer_name[4] = input (''<center>Enter name for exercise routine 4<br>Leave blank to restore default name.</center>'') & gs ''exercise'', ''rename'' & gt ''exercise'', ''setup''"><<$excer_name[4]>>:</a> ','<<$excer_name[4]>>:</a> ')+'</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout0[4]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout1[4]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout2[4]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout3[4]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout4[4]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout5[1]*15>></b> minutes</TD>'
-	'<TR><TD width="100" cellspacing="2" align="left">'+iif(exer_menu = 1,'<a href="exec:$excer_name[5] = input (''<center>Enter name for exercise routine 5<br>Leave blank to restore default name.</center>'') & gs ''exercise'', ''rename'' & gt ''exercise'', ''setup''"><<$excer_name[5]>>:</a> ','<<$excer_name[5]>>:</a> ')+'</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout0[5]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout1[5]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout2[5]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout3[5]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout4[5]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout5[1]*15>></b> minutes</TD>'
+	'<TR><TD width="100" cellspacing="2" align="left">'+iif(exer_menu = 1,'<a href="exec:$excer_name[2] = input (''<center>Enter name for exercise routine 2<br>Leave blank to restore default name.</center>'') & gs ''exercise'', ''rename'' & gt ''exercise'', ''setup''"><<$excer_name[2]>>:</a> ','<<$excer_name[2]>>:</a> ')+'</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout0[2]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout1[2]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout2[2]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout3[2]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout4[2]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout5[2]*15>></b> minutes</TD>'
+	'<TR><TD width="100" cellspacing="2" align="left">'+iif(exer_menu = 1,'<a href="exec:$excer_name[3] = input (''<center>Enter name for exercise routine 3<br>Leave blank to restore default name.</center>'') & gs ''exercise'', ''rename'' & gt ''exercise'', ''setup''"><<$excer_name[3]>>:</a> ','<<$excer_name[3]>>:</a> ')+'</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout0[3]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout1[3]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout2[3]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout3[3]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout4[3]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout5[3]*15>></b> minutes</TD>'
+	'<TR><TD width="100" cellspacing="2" align="left">'+iif(exer_menu = 1,'<a href="exec:$excer_name[4] = input (''<center>Enter name for exercise routine 4<br>Leave blank to restore default name.</center>'') & gs ''exercise'', ''rename'' & gt ''exercise'', ''setup''"><<$excer_name[4]>>:</a> ','<<$excer_name[4]>>:</a> ')+'</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout0[4]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout1[4]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout2[4]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout3[4]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout4[4]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout5[4]*15>></b> minutes</TD>'
+	'<TR><TD width="100" cellspacing="2" align="left">'+iif(exer_menu = 1,'<a href="exec:$excer_name[5] = input (''<center>Enter name for exercise routine 5<br>Leave blank to restore default name.</center>'') & gs ''exercise'', ''rename'' & gt ''exercise'', ''setup''"><<$excer_name[5]>>:</a> ','<<$excer_name[5]>>:</a> ')+'</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout0[5]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout1[5]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout2[5]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout3[5]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout4[5]*15>></b> minutes</TD><TD width="100" cellspacing="2" align="left"><b><<exer_rout5[5]*15>></b> minutes</TD>'
 	'<TR><TD colspan="7"><br><br><center><a href="exec:gt ''exercise'', ''setup''">Define up to 5 automated exercise routines.</a></center></TD></TR>'
 	'</table></center>'
 	*nl
@@ -528,7 +515,7 @@ if $ARGS[0] = 'tier1':
 	end
 
 	gs 'exercise', 'get_sport_clothes_exercise_bonus'
-	pcs_stam -= (mult * (10 - sport_clothes_exercise_bonus)) / 2
+	pcs_stam -= (5*mult * (10 - sport_clothes_exercise_bonus)) / 2
 
 	gs 'sweat', 'add', (3*mult)
 	fat -= (4 + mult/2)
@@ -576,7 +563,7 @@ if $ARGS[0] = 'tier2':
 	end
 
 	gs 'exercise', 'get_sport_clothes_exercise_bonus'
-	pcs_stam -= (mult * (10 - sport_clothes_exercise_bonus))
+	pcs_stam -= 5*mult * (10 - sport_clothes_exercise_bonus)
 
 	gs 'sweat', 'add', (10*mult)
 	fat -= (3 + mult/2)
@@ -624,7 +611,7 @@ if $ARGS[0] = 'tier3':
 	end
 
 	gs 'exercise', 'get_sport_clothes_exercise_bonus'
-	pcs_stam -= (3*mult * (10 - sport_clothes_exercise_bonus)) / 2
+	pcs_stam -= (15*mult * (10 - sport_clothes_exercise_bonus)) / 2
 
 	gs 'sweat', 'add', (15*mult)
 	fat -= (2 + mult/2)
@@ -672,7 +659,7 @@ if $ARGS[0] = 'tier4':
 	end
 
 	gs 'exercise', 'get_sport_clothes_exercise_bonus'
-	pcs_stam -= (5*mult * (10 - sport_clothes_exercise_bonus))/2
+	pcs_stam -= (25*mult * (10 - sport_clothes_exercise_bonus))/2
 
 	gs 'sweat', 'add', (25*mult)
 	fat -= (1 + mult/2)
@@ -737,5 +724,6 @@ if $ARGS[0] = 'get_sport_clothes_exercise_bonus':
 		sport_clothes_exercise_bonus += 1
 	end
 end
+
 --- exercise ---------------------------------
 

+ 37 - 9
locations/exp_gain.qsrc

@@ -8,16 +8,44 @@ if ARGS[1] > 0:
 	if $ARGS[0] = 'stren_plus' and ARGS[2] = 0 and stren_plus_lvl > 50:
 		!!This is so that exp only is awarded to additional strength if it is high when you use steroids
 	else
-		if pcs_condition['lack_of_sleep'] >= 20:
-			dynamic "<<$ARGS[0]>>_exp += <<ARGS[1]>>/4"
-		elseif pcs_condition['lack_of_sleep'] >= 10:
-			dynamic "<<$ARGS[0]>>_exp += <<ARGS[1]>>/2"
-		elseif pcs_condition['lack_of_sleep'] >= 5:
-			dynamic "<<$ARGS[0]>>_exp += (<<ARGS[1]>>*3)/4"
-		elseif pcs_condition['lack_of_sleep'] >= 2 and ARGS[1] > 1:
-			dynamic "<<$ARGS[0]>>_exp += (<<ARGS[1]>>*9)/10"
+		if pcs_stam <= 0:
+			if pcs_condition['lack_of_sleep'] >= 20:
+				dynamic "<<$ARGS[0]>>_exp += <<ARGS[1]>>/8"
+			elseif pcs_condition['lack_of_sleep'] >= 10:
+				dynamic "<<$ARGS[0]>>_exp += <<ARGS[1]>>/4"
+			elseif pcs_condition['lack_of_sleep'] >= 5:
+				dynamic "<<$ARGS[0]>>_exp += (<<ARGS[1]>>*3)/8"
+			elseif pcs_condition['lack_of_sleep'] >= 2:
+				dynamic "<<$ARGS[0]>>_exp += (<<ARGS[1]>>*9)/20"
+			else
+				dynamic "<<$ARGS[0]>>_exp += <<ARGS[1]>>/2"
+			end
+		elseif pcs_stam < stammax / 5:
+			if pcs_condition['lack_of_sleep'] >= 20:
+				dynamic "<<$ARGS[0]>>_exp += (<<ARGS[1]>>*3)/16"
+			elseif pcs_condition['lack_of_sleep'] >= 10:
+				dynamic "<<$ARGS[0]>>_exp += (<<ARGS[1]>>*3)/8"
+			elseif pcs_condition['lack_of_sleep'] >= 5:
+				dynamic "<<$ARGS[0]>>_exp += (<<ARGS[1]>>*9)/16"
+			elseif pcs_condition['lack_of_sleep'] >= 2 and ARGS[1] > 1:
+				dynamic "<<$ARGS[0]>>_exp += (<<ARGS[1]>>*27)/40"
+			elseif ARGS[1] > 1:
+				dynamic "<<$ARGS[0]>>_exp += (<<ARGS[1]>>*3)/4"
+			else
+				dynamic "<<$ARGS[0]>>_exp += <<ARGS[1]>>"
+			end
 		else
-			dynamic "<<$ARGS[0]>>_exp += <<ARGS[1]>>"
+			if pcs_condition['lack_of_sleep'] >= 20:
+				dynamic "<<$ARGS[0]>>_exp += <<ARGS[1]>>/4"
+			elseif pcs_condition['lack_of_sleep'] >= 10:
+				dynamic "<<$ARGS[0]>>_exp += <<ARGS[1]>>/2"
+			elseif pcs_condition['lack_of_sleep'] >= 5:
+				dynamic "<<$ARGS[0]>>_exp += (<<ARGS[1]>>*3)/4"
+			elseif pcs_condition['lack_of_sleep'] >= 2 and ARGS[1] > 1:
+				dynamic "<<$ARGS[0]>>_exp += (<<ARGS[1]>>*9)/10"
+			else
+				dynamic "<<$ARGS[0]>>_exp += <<ARGS[1]>>"
+			end
 		end
 	end
 end

+ 20 - 6
locations/fit.qsrc

@@ -144,6 +144,8 @@ if $ARGS[0] = 'dressing_room':
 		gt 'wardrobe', 'start'
 	end
 
+	gs 'wardrobe', 'default_sport_options'
+
 	if PCloswimwear = 1:
 		act 'Use the pool': gt 'bass', 'start'
 	else
@@ -151,7 +153,7 @@ if $ARGS[0] = 'dressing_room':
 	end
 
 	if abonement > 0:
-		if $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and pcs_stam >= 40:
+		if $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich':
 			act 'Go to the gym':
 				cla
 				gt 'fit', 'gym'
@@ -179,15 +181,20 @@ if $ARGS[0] = 'dressing_room':
 				act 'Leave':gt 'fit', 'dressing_room'
 
 			end
-		elseif $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and pcs_stam >= 40 and pcs_energy >= 20:
+		elseif $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and pcs_stam >= stammax / 5 and pcs_energy >= 20:
 			act 'Go to team practice':gt 'beg', 'start'
 			if week = 6 and pcs_run >= 20 and run_comp_day ! daystart:
 				act '<b>Enter competition race</b>':run_comp_day = daystart & gt 'beg1', 'start'
 			end
-		elseif $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and pcs_stam >= 40:
-			act 'Go to team practice': '<br><font color="red">You don''t have enough energy to use this action.</font>'
+		elseif $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and pcs_stam >= stammax / 5:
+			act 'Go to team practice': '<br><font color="red">You feel too hungry to do this.</font>'
+			if week = 6 and pcs_run >= 20 and run_comp_day ! daystart:
+				act '<b>Enter competition race</b>': '<br><font color="red">You feel too hungry to do this.</font>'
+			end
+		elseif $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich':
+			act 'Go to team practice': '<br><font color="red">You are to exhausted to do this. Recover your stamina before trying to train.</font>'
 			if week = 6 and pcs_run >= 20 and run_comp_day ! daystart:
-				act '<b>Enter competition race</b>': '<br><font color="red">You don''t have enough energy to use this action.</font>'
+				act '<b>Enter competition race</b>': '<br><font color="red">You are to exhausted to do this. Recover your stamina before entering the race.</font>'
 			end
 		end
 	end
@@ -342,7 +349,7 @@ if $ARGS[0] = 'gym':
 
 	gs 'fit', 'exercise_end'
 
-	if pcs_energy >= 15:
+	if pcs_energy >= 15 or pcs_stam >= stammax / 5:
 		act 'Aerobics (Burn fat)':
 			cla
 			*clr
@@ -470,6 +477,13 @@ if $ARGS[0] = 'gym':
 			end
 		end
 		act 'Go to the kickboxing gym':gt 'fit', 'kickboxing'
+	elseif pcs_energy >= 15:
+		act 'Aerobics (Burn fat)': '<br><font color="red">You are to exhausted to do this. Recover your stamina before trying to train.</font>'
+		act 'Free weights (Build muscle)': '<br><font color="red">You are to exhausted to do this. Recover your stamina before trying to train.</font>'
+		act 'Cross trainer (endurance)': '<br><font color="red">YYou are to exhausted to do this. Recover your stamina before trying to train.</font>'
+		act 'Tennis practice (agility)': '<br><font color="red">You are to exhausted to do this. Recover your stamina before trying to train.</font>'
+		act 'Tennis practice (reactions)': '<br><font color="red">You are to exhausted to do this. Recover your stamina before trying to train.</font>'
+		act 'Go to the kickboxing gym': '<br><font color="red">You are to exhausted to do this. Recover your stamina before trying to train.</font>'
 	else
 		act 'Aerobics (Burn fat)': '<br><font color="red">You feel too hungry to do this.</font>'
 		act 'Free weights (Build muscle)': '<br><font color="red">You feel too hungry to do this.</font>'

+ 1 - 1
locations/foto_nude_debut.qsrc

@@ -148,7 +148,7 @@ if $ARGS[0] = 'nude_debut1':
 	else
 		'The crew move to prepare the set.'
 		*nl
-		'This is your modelling shoot ever but no one seems surprised or even find it remarkable that you''re jumping straight into it. It seems to them that you''re just one of the many desperate girls who come into the studio, willing to bare it all for easy money.'
+		'This is your first modelling shoot ever but no one seems surprised or even find it remarkable that you''re jumping straight into it. It seems to them that you''re just one of the many desperate girls who come into the studio, willing to bare it all for easy money.'
 	end
 	gs'foto_nude_debut', 'nude_debut2'
 end

+ 24 - 23
locations/gadroad.qsrc

@@ -63,33 +63,34 @@ if $ARGS[0] = '':
 	act 'Walk down to the river (0:10)':minut += 10 & gt 'gadriver', 'start'
 	act 'Walk into the woods (0:15)':minut += 15 & gt'gadforest','forest_edge'
 	act 'Walk to the fields (0:10)':minut += 10 & gt'gadfield','field'
-	if $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and hour >= 6 and hour < 22 and gadrunday ! daystart:
-		act 'Go for a run (1:00)':
-			*clr & cla
-			menu_off = 1
-			minut += 60
-			fat -= RAND(5,15)
-			gs 'exp_gain', 'run', RAND(3,6)
-			gs 'sweat', 'add', 20
-			gadrunday = daystart
-			gs'stat'
-
-			if month <= 3 or month >= 11:
-				'<center><img <<$set_imgh>> src="images/locations/gadukino/village/gadbeg4.jpg"></center>'
-			elseif month=9 or month=10 or month=4 or month=5:
-				'<center><img <<$set_imgh>> src="images/locations/gadukino/village/gadbeg3.jpg"></center>'
-			else
-				if strenbuf >= salo:
-					'<center><img <<$set_imgh>> src="images/locations/gadukino/village/gadbeg1.jpg"></center>'
+	if $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and hour >= 6 and hour < 22:
+		if pcs_energy >= 5 and pcs_stam >= stammax / 5:
+			act 'Go for a run (1:00)':
+				*clr & cla
+				menu_off = 1
+				gs 'exercise', 'tier1', 60, 'run'
+
+				if month <= 3 or month >= 11:
+					'<center><img <<$set_imgh>> src="images/locations/gadukino/village/gadbeg4.jpg"></center>'
+				elseif month=9 or month=10 or month=4 or month=5:
+					'<center><img <<$set_imgh>> src="images/locations/gadukino/village/gadbeg3.jpg"></center>'
 				else
-					'<center><img <<$set_imgh>> src="images/locations/gadukino/village/gadbeg2.jpg"></center>'
+					if strenbuf >= salo:
+						'<center><img <<$set_imgh>> src="images/locations/gadukino/village/gadbeg1.jpg"></center>'
+					else
+						'<center><img <<$set_imgh>> src="images/locations/gadukino/village/gadbeg2.jpg"></center>'
+					end
 				end
-			end
-			'You run for an hour enjoying the scenery.'
+				'You run for an hour enjoying the scenery.'
 
-			act 'Finish':gt'gadroad'
+				act 'Finish':gt'gadroad'
+			end
+		elseif pcs_stam >= stammax / 5:
+			act 'Go for a run (1:00)': '<br><font color="red">You are so hungry you cannot face going for a run.</font>'
+		else
+			act 'Go for a run (1:00)': '<br><font color="red">You are to exhausted to do this. Recover your stamina before trying to go for a run.</font>'
 		end
-	elseif ($clothingworntype ! 'danilovich_outfits' or $shoeworntype ! 'danilovich') and hour >= 6 and hour < 22 and gadrunday ! daystart:
+	elseif ($clothingworntype ! 'danilovich_outfits' or $shoeworntype ! 'danilovich') and hour >= 6 and hour < 22:
 		'You could go for a run here if you were wearing sports clothes and shoes.'
 	end
 end

+ 45 - 26
locations/gdksport.qsrc

@@ -64,6 +64,8 @@ if $ARGS[0] = 'start':
 		gt 'wardrobe', 'start'
 	end
 
+	gs 'wardrobe', 'default_sport_options'
+
 	if shampoo > 0 or (mid($start_type,1,2) = 'sg' and (SchoolAtestat = 0 or SchoolBlock = 0)):
 		act 'Take a shower': gt 'gdksport', 'shower'
 	else
@@ -72,37 +74,53 @@ if $ARGS[0] = 'start':
 
 	*nl
 
-	if pcs_stam > 20 and $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and hour < 18:
+	if $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and hour < 18:
 		if gsAboBeg > 0 and npc_pregtalk['A131'] = 0:
-			if pcs_energy >= 20:
-				act 'Take a track lesson. You have <<gsAboBeg>> lessons remaining': gt 'gdksport', 'racing2'
+			if pcs_stam >= stammax / 5:
+				if pcs_energy >= 20:
+					act 'Take a track lesson. You have <<gsAboBeg>> lessons remaining': gt 'gdksport', 'racing2'
+				else
+					act 'Take a track lesson. You have <<gsAboBeg>> lessons remaining': '<br><font color="red">You feel too hungry to do this.</font>'
+				end
 			else
-				act 'Take a track lesson. You have <<gsAboBeg>> lessons remaining': '<br><font color="red">You feel too hungry to do this.</font>'
+				act 'Take a track lesson. You have <<gsAboBeg>> lessons remaining': '<br><font color="red">You are to exhausted to do this. Recover your stamina before trying to train.</font>'
 			end
 		end
 		if gsAboVolley > 0 and volleysostav = 0 and npc_pregtalk['A69'] = 0:
-			if pcs_energy >= 20:
-				if week ! 5:
-					act 'Take a volleyball lesson. You have <<gsAboVolley>> lessons remaining': gt 'gdksport', 'vball2'
+			if pcs_stam >= stammax / 5:
+				if pcs_energy >= 20:
+					if week ! 5:
+						act 'Take a volleyball lesson. You have <<gsAboVolley>> lessons remaining': gt 'gdksport', 'vball2'
+					else
+						act 'Take a volleyball lesson. You have <<gsAboVolley>> lessons remaining': gt 'gdksport', 'vball3'
+					end
 				else
-					act 'Take a volleyball lesson. You have <<gsAboVolley>> lessons remaining': gt 'gdksport', 'vball3'
+					act 'Take a volleyball lesson. You have <<gsAboVolley>> lessons remaining': '<br><font color="red">You feel too hungry to do this.</font>'
 				end
 			else
-				act 'Take a volleyball lesson. You have <<gsAboVolley>> lessons remaining': '<br><font color="red">You feel too hungry to do this.</font>'
+				act 'Take a volleyball lesson. You have <<gsAboVolley>> lessons remaining': '<br><font color="red">You are to exhausted to do this. Recover your stamina before trying to train.</font>'
 			end
 		end
 		if volleysostav > 0:
 			if week ! 6 and volkomday ! daystart:
-				if pcs_energy >= 20:
-					act 'Play with the team': gt 'gdksport', 'vball4'
+				if pcs_stam >= stammax / 5:
+					if pcs_energy >= 20:
+						act 'Play with the team': gt 'gdksport', 'vball4'
+					else
+						act 'Play with the team': '<br><font color="red">You feel too hungry to do this.</font>'
+					end
 				else
-					act 'Play with the team': '<br><font color="red">You feel too hungry to do this.</font>'
+					act 'Play with the team': '<br><font color="red">You are to exhausted to do this. Recover your stamina before trying to play.</font>'
 				end
 			elseif week = 6 and sorevday ! daystart and hour <= 18:
-				if pcs_energy >= 20:
-					act 'Play in Tournament': gt 'gdksport', 'vball5'
+				if pcs_stam >= stammax / 5:
+					if pcs_energy >= 20:
+						act 'Play in Tournament': gt 'gdksport', 'vball5'
+					else
+						act 'Play in Tournament': '<br><font color="red">You feel too hungry to do this.</font>'
+					end
 				else
-					act 'Play in Tournament': '<br><font color="red">You feel too hungry to do this.</font>'
+					act 'Play in Tournament': '<br><font color="red">You are to exhausted to do this. Recover your stamina before trying to play.</font>'
 				end
 			elseif week = 6 and sorevday ! daystart and hour > 18:
 				'As you look around, you don''t see anyone from the team. You suddenly realize that there was a tournament game today and you were supposed to be here at 18:00! You missed the bus and the coach is going to be furious!'
@@ -114,16 +132,20 @@ if $ARGS[0] = 'start':
 			end
 		end
 		if gsAboDance > 0 and AlbinaQW['StarletsJoined'] = 0 and npc_pregtalk['A23'] = 0:
-			if pcs_energy >= 20:
-				act 'Take a dance lesson. You have <<gsAboDance>> lessons remaining':
-					if rand(0, 5) = 0:
-						gt 'danceGev'
-					else
-						gt 'gdksport', 'dance2'
+			if pcs_stam >= stammax / 5:
+				if pcs_energy >= 20:
+					act 'Take a dance lesson. You have <<gsAboDance>> lessons remaining':
+						if rand(0, 5) = 0:
+							gt 'danceGev'
+						else
+							gt 'gdksport', 'dance2'
+						end
 					end
+				else
+					act 'Take a dance lesson. You have <<gsAboDance>> lessons remaining': '<br><font color="red">You feel too hungry to do this.</font>'
 				end
 			else
-				act 'Take a dance lesson. You have <<gsAboDance>> lessons remaining': '<br><font color="red">You feel too hungry to do this.</font>'
+				act 'Take a dance lesson. You have <<gsAboDance>> lessons remaining': '<br><font color="red">You are to exhausted to do this. Recover your stamina before trying to train.</font>'
 			end
 		elseif AlbinaQW['StarletsJoined'] > 0 and AlbinaQW['StarletsShutDown'] = 0 and npc_pregtalk['A23'] = 0 and AlbinaQW['startletsday'] ! daystart:
 			if hour = 15 and starlets_on = 1:
@@ -143,11 +165,8 @@ if $ARGS[0] = 'start':
 				'Tell Albina you want to <a href="exec:gt ''albina_starlets'',''Quit''">quit</a> the Starlets.'
 			end
 		end
-	elseif pcs_stam <= 20:
-		*nl
-		'You are too tired to do any exercise. You need to rest and replenish your stamina.'
 	end
-	
+
 	if deodorant > 0 and deodorant_on = 0:
 		'Your deodorant will last you for <b><<deodorant>></b> more '+iif(deodorant = 1, 'application.', 'applications.')
 		act 'Apply deodorant (0:01)':

+ 385 - 99
locations/grades.qsrc

@@ -127,74 +127,204 @@ end
 
 if $ARGS[0] = 'class_activity':
 !!This adds the point for doing an in class activity that is not modified.
-	if pcs_condition['lack_of_sleep'] >= 20:
-		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 2'
-	elseif pcs_condition['lack_of_sleep'] >= 10:
-		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 5'
-	elseif pcs_condition['lack_of_sleep'] >= 5:
-		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 7'
-	elseif pcs_condition['lack_of_sleep'] >= 2:
-		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 9'
+	if pcs_stam <= 0:
+		if pcs_condition['lack_of_sleep'] >= 20:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 1'
+		elseif pcs_condition['lack_of_sleep'] >= 10:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 2'
+		elseif pcs_condition['lack_of_sleep'] >= 5:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 3'
+		elseif pcs_condition['lack_of_sleep'] >= 2:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 5'
+		else
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 5'
+		end
+	elseif pcs_stam < stammax / 5:
+		if pcs_condition['lack_of_sleep'] >= 20:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 2'
+		elseif pcs_condition['lack_of_sleep'] >= 10:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 4'
+		elseif pcs_condition['lack_of_sleep'] >= 5:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 6'
+		elseif pcs_condition['lack_of_sleep'] >= 2:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 8'
+		else
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 9'
+		end
 	else
-		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 10'
+		if pcs_condition['lack_of_sleep'] >= 20:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 2'
+		elseif pcs_condition['lack_of_sleep'] >= 10:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 5'
+		elseif pcs_condition['lack_of_sleep'] >= 5:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 7'
+		elseif pcs_condition['lack_of_sleep'] >= 2:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 9'
+		else
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 10'
+		end
 	end
 end
 
 if $ARGS[0] = 'class_activity_skill':
 !!This adds the point for doing an in class activity modified by a skill.
-	if pcs_condition['lack_of_sleep'] >= 20:
-		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (2*(85+<<ARGS[3]>>))/100'
-	elseif pcs_condition['lack_of_sleep'] >= 10:
-		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (5*(85+<<ARGS[3]>>))/100'
-	elseif pcs_condition['lack_of_sleep'] >= 5:
-		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (7*(85+<<ARGS[3]>>))/100'
-	elseif pcs_condition['lack_of_sleep'] >= 2:
-		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (9*(85+<<ARGS[3]>>))/100'
+	if pcs_stam <= 0:
+		if pcs_condition['lack_of_sleep'] >= 20:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (2*(85+<<ARGS[3]>>))/200'
+		elseif pcs_condition['lack_of_sleep'] >= 10:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (5*(85+<<ARGS[3]>>))/200'
+		elseif pcs_condition['lack_of_sleep'] >= 5:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (7*(85+<<ARGS[3]>>))/200'
+		elseif pcs_condition['lack_of_sleep'] >= 2:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (9*(85+<<ARGS[3]>>))/200'
+		else
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (10*(85+<<ARGS[3]>>))/200'
+		end
+	elseif pcs_stam < stammax / 5:
+		if pcs_condition['lack_of_sleep'] >= 20:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (6*(85+<<ARGS[3]>>))/400'
+		elseif pcs_condition['lack_of_sleep'] >= 10:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (15*(85+<<ARGS[3]>>))/400'
+		elseif pcs_condition['lack_of_sleep'] >= 5:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (21*(85+<<ARGS[3]>>))/400'
+		elseif pcs_condition['lack_of_sleep'] >= 2:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (27*(85+<<ARGS[3]>>))/400'
+		else
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (30*(85+<<ARGS[3]>>))/400'
+		end
 	else
-		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (10*(85+<<ARGS[3]>>))/100'
+		if pcs_condition['lack_of_sleep'] >= 20:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (2*(85+<<ARGS[3]>>))/100'
+		elseif pcs_condition['lack_of_sleep'] >= 10:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (5*(85+<<ARGS[3]>>))/100'
+		elseif pcs_condition['lack_of_sleep'] >= 5:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (7*(85+<<ARGS[3]>>))/100'
+		elseif pcs_condition['lack_of_sleep'] >= 2:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (9*(85+<<ARGS[3]>>))/100'
+		else
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (10*(85+<<ARGS[3]>>))/100'
+		end
 	end
 end
 
 if $ARGS[0] = 'class_activity_attributes':
 !!This adds the point for doing an in class activity modified by an attributes.
-	if pcs_condition['lack_of_sleep'] >= 20:
-		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (2*(50+<<ARGS[3]>>))/100'
-	elseif pcs_condition['lack_of_sleep'] >= 10:
-		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (5*(50+<<ARGS[3]>>))/100'
-	elseif pcs_condition['lack_of_sleep'] >= 5:
-		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (7*(50+<<ARGS[3]>>))/100'
-	elseif pcs_condition['lack_of_sleep'] >= 2:
-		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (9*(50+<<ARGS[3]>>))/100'
-	else
-		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (10*(50+<<ARGS[3]>>))/100'
-	end
-end
-
-if $ARGS[0] = 'optional_activity':
-!!This adds the point for doing an optional out of class activity that is not modified.
-	if dyneval('RESULT = class[''<<$ARGS[1]>>_<<$ARGS[2]>>_use_computer'']') = 0 or $ARGS[3] = 'yes':
+	if pcs_stam <= 0:
 		if pcs_condition['lack_of_sleep'] >= 20:
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 2'
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (2*(50+<<ARGS[3]>>))/200'
 		elseif pcs_condition['lack_of_sleep'] >= 10:
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 5'
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (5*(50+<<ARGS[3]>>))/200'
 		elseif pcs_condition['lack_of_sleep'] >= 5:
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 7'
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (7*(50+<<ARGS[3]>>))/200'
 		elseif pcs_condition['lack_of_sleep'] >= 2:
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 9'
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (9*(50+<<ARGS[3]>>))/200'
 		else
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 10'
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (10*(50+<<ARGS[3]>>))/200'
 		end
-	elseif dyneval('RESULT = class[''<<$ARGS[1]>>_<<$ARGS[2]>>_use_computer'']') = 1:
+	elseif pcs_stam < stammax / 5:
 		if pcs_condition['lack_of_sleep'] >= 20:
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 1'
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (6*(50+<<ARGS[3]>>))/400'
 		elseif pcs_condition['lack_of_sleep'] >= 10:
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 2'
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (15*(50+<<ARGS[3]>>))/400'
 		elseif pcs_condition['lack_of_sleep'] >= 5:
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 3'
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (21*(50+<<ARGS[3]>>))/400'
 		elseif pcs_condition['lack_of_sleep'] >= 2:
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 4'
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (27*(50+<<ARGS[3]>>))/400'
+		else
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (30*(50+<<ARGS[3]>>))/400'
+		end
+	else
+		if pcs_condition['lack_of_sleep'] >= 20:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (2*(50+<<ARGS[3]>>))/100'
+		elseif pcs_condition['lack_of_sleep'] >= 10:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (5*(50+<<ARGS[3]>>))/100'
+		elseif pcs_condition['lack_of_sleep'] >= 5:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (7*(50+<<ARGS[3]>>))/100'
+		elseif pcs_condition['lack_of_sleep'] >= 2:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (9*(50+<<ARGS[3]>>))/100'
+		else
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (10*(50+<<ARGS[3]>>))/100'
+		end
+	end
+end
+
+if $ARGS[0] = 'optional_activity':
+!!This adds the point for doing an optional out of class activity that is not modified.
+	if dyneval('RESULT = class[''<<$ARGS[1]>>_<<$ARGS[2]>>_use_computer'']') = 0 or $ARGS[3] = 'yes':
+		if pcs_stam <= 0:
+			if pcs_condition['lack_of_sleep'] >= 20:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 1'
+			elseif pcs_condition['lack_of_sleep'] >= 10:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 2'
+			elseif pcs_condition['lack_of_sleep'] >= 5:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 3'
+			elseif pcs_condition['lack_of_sleep'] >= 2:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 4'
+			else
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 5'
+			end
+		elseif pcs_stam < stammax / 5:
+			if pcs_condition['lack_of_sleep'] >= 20:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 2'
+			elseif pcs_condition['lack_of_sleep'] >= 10:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 4'
+			elseif pcs_condition['lack_of_sleep'] >= 5:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 6'
+			elseif pcs_condition['lack_of_sleep'] >= 2:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 8'
+			else
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 9'
+			end
+		else
+			if pcs_condition['lack_of_sleep'] >= 20:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 2'
+			elseif pcs_condition['lack_of_sleep'] >= 10:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 5'
+			elseif pcs_condition['lack_of_sleep'] >= 5:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 7'
+			elseif pcs_condition['lack_of_sleep'] >= 2:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 9'
+			else
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 10'
+			end
+		end
+	elseif dyneval('RESULT = class[''<<$ARGS[1]>>_<<$ARGS[2]>>_use_computer'']') = 1:
+		if pcs_stam <= 0:
+			if pcs_condition['lack_of_sleep'] >= 20:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 1'
+			elseif pcs_condition['lack_of_sleep'] >= 10:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 1'
+			elseif pcs_condition['lack_of_sleep'] >= 5:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 2'
+			elseif pcs_condition['lack_of_sleep'] >= 2:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 2'
+			else
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 3'
+			end
+		elseif pcs_stam < stammax / 5:
+			if pcs_condition['lack_of_sleep'] >= 20:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 1'
+			elseif pcs_condition['lack_of_sleep'] >= 10:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 2'
+			elseif pcs_condition['lack_of_sleep'] >= 5:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 2'
+			elseif pcs_condition['lack_of_sleep'] >= 2:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 3'
+			else
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 4'
+			end
 		else
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 5'
+			if pcs_condition['lack_of_sleep'] >= 20:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 1'
+			elseif pcs_condition['lack_of_sleep'] >= 10:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 2'
+			elseif pcs_condition['lack_of_sleep'] >= 5:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 3'
+			elseif pcs_condition['lack_of_sleep'] >= 2:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 4'
+			else
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 5'
+			end
 		end
 	end
 	
@@ -206,28 +336,80 @@ end
 if $ARGS[0] = 'optional_activity_skill':
 !!This adds the point for doing an optional out of class activity modified by a skill.
 	if dyneval('RESULT = class[''<<$ARGS[1]>>_<<$ARGS[2]>>_use_computer'']') = 0 or $ARGS[3] = 'yes':
-		if pcs_condition['lack_of_sleep'] >= 20:
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (2*(85+<<ARGS[3]>>))/100'
-		elseif pcs_condition['lack_of_sleep'] >= 10:
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (5*(85+<<ARGS[3]>>))/100'
-		elseif pcs_condition['lack_of_sleep'] >= 5:
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (7*(85+<<ARGS[3]>>))/100'
-		elseif pcs_condition['lack_of_sleep'] >= 2:
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (9*(85+<<ARGS[3]>>))/100'
+		if pcs_stam <= 0:
+			if pcs_condition['lack_of_sleep'] >= 20:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (2*(85+<<ARGS[3]>>))/200'
+			elseif pcs_condition['lack_of_sleep'] >= 10:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (5*(85+<<ARGS[3]>>))/200'
+			elseif pcs_condition['lack_of_sleep'] >= 5:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (7*(85+<<ARGS[3]>>))/200'
+			elseif pcs_condition['lack_of_sleep'] >= 2:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (9*(85+<<ARGS[3]>>))/200'
+			else
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (10*(85+<<ARGS[4]>>))/200'
+			end
+		elseif pcs_stam < stammax / 5:
+			if pcs_condition['lack_of_sleep'] >= 20:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (6*(85+<<ARGS[3]>>))/400'
+			elseif pcs_condition['lack_of_sleep'] >= 10:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (15*(85+<<ARGS[3]>>))/400'
+			elseif pcs_condition['lack_of_sleep'] >= 5:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (21*(85+<<ARGS[3]>>))/400'
+			elseif pcs_condition['lack_of_sleep'] >= 2:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (27*(85+<<ARGS[3]>>))/400'
+			else
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (30*(85+<<ARGS[4]>>))/400'
+			end
 		else
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (10*(85+<<ARGS[4]>>))/100'
+			if pcs_condition['lack_of_sleep'] >= 20:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (2*(85+<<ARGS[3]>>))/100'
+			elseif pcs_condition['lack_of_sleep'] >= 10:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (5*(85+<<ARGS[3]>>))/100'
+			elseif pcs_condition['lack_of_sleep'] >= 5:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (7*(85+<<ARGS[3]>>))/100'
+			elseif pcs_condition['lack_of_sleep'] >= 2:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (9*(85+<<ARGS[3]>>))/100'
+			else
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (10*(85+<<ARGS[4]>>))/100'
+			end
 		end
 	elseif dyneval('RESULT = class[''<<$ARGS[1]>>_<<$ARGS[2]>>_use_computer'']') = 1:
-		if pcs_condition['lack_of_sleep'] >= 20:
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (1*(85+<<ARGS[3]>>))/100'
-		elseif pcs_condition['lack_of_sleep'] >= 10:
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (2*(85+<<ARGS[3]>>))/100'
-		elseif pcs_condition['lack_of_sleep'] >= 5:
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (3*(85+<<ARGS[3]>>))/100'
-		elseif pcs_condition['lack_of_sleep'] >= 2:
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (4*(85+<<ARGS[3]>>))/100'
+		if pcs_stam <= 0:
+			if pcs_condition['lack_of_sleep'] >= 20:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (1*(85+<<ARGS[3]>>))/200'
+			elseif pcs_condition['lack_of_sleep'] >= 10:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (2*(85+<<ARGS[3]>>))/200'
+			elseif pcs_condition['lack_of_sleep'] >= 5:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (3*(85+<<ARGS[3]>>))/200'
+			elseif pcs_condition['lack_of_sleep'] >= 2:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (4*(85+<<ARGS[3]>>))/200'
+			else
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (5*(85+<<ARGS[4]>>))/200'
+			end
+		elseif pcs_stam < stammax / 5:
+			if pcs_condition['lack_of_sleep'] >= 20:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (3*(85+<<ARGS[3]>>))/400'
+			elseif pcs_condition['lack_of_sleep'] >= 10:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (6*(85+<<ARGS[3]>>))/400'
+			elseif pcs_condition['lack_of_sleep'] >= 5:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (9*(85+<<ARGS[3]>>))/400'
+			elseif pcs_condition['lack_of_sleep'] >= 2:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (12*(85+<<ARGS[3]>>))/400'
+			else
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (15*(85+<<ARGS[4]>>))/400'
+			end
 		else
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (5*(85+<<ARGS[4]>>))/100'
+			if pcs_condition['lack_of_sleep'] >= 20:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (1*(85+<<ARGS[3]>>))/100'
+			elseif pcs_condition['lack_of_sleep'] >= 10:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (2*(85+<<ARGS[3]>>))/100'
+			elseif pcs_condition['lack_of_sleep'] >= 5:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (3*(85+<<ARGS[3]>>))/100'
+			elseif pcs_condition['lack_of_sleep'] >= 2:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (4*(85+<<ARGS[3]>>))/100'
+			else
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (5*(85+<<ARGS[4]>>))/100'
+			end
 		end
 	end
 
@@ -239,28 +421,80 @@ end
 if $ARGS[0] = 'optional_activity_attribute':
 !!This adds the point for doing an optional out of class activity modified by an attributes.
 	if dyneval('RESULT = class[''<<$ARGS[1]>>_<<$ARGS[2]>>_use_computer'']') = 0 or $ARGS[3] = 'yes':
-		if pcs_condition['lack_of_sleep'] >= 20:
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (2*(50+<<ARGS[3]>>))/100'
-		elseif pcs_condition['lack_of_sleep'] >= 10:
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (5*(50+<<ARGS[3]>>))/100'
-		elseif pcs_condition['lack_of_sleep'] >= 5:
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (7*(50+<<ARGS[3]>>))/100'
-		elseif pcs_condition['lack_of_sleep'] >= 2:
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (9*(50+<<ARGS[3]>>))/100'
+		if pcs_stam <= 0:
+			if pcs_condition['lack_of_sleep'] >= 20:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (2*(50+<<ARGS[3]>>))/200'
+			elseif pcs_condition['lack_of_sleep'] >= 10:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (5*(50+<<ARGS[3]>>))/200'
+			elseif pcs_condition['lack_of_sleep'] >= 5:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (7*(50+<<ARGS[3]>>))/200'
+			elseif pcs_condition['lack_of_sleep'] >= 2:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (9*(50+<<ARGS[3]>>))/200'
+			else
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (10*(50+<<ARGS[4]>>))/200'
+			end
+		elseif pcs_stam < stammax / 5:
+			if pcs_condition['lack_of_sleep'] >= 20:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (6*(50+<<ARGS[3]>>))/400'
+			elseif pcs_condition['lack_of_sleep'] >= 10:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (15*(50+<<ARGS[3]>>))/400'
+			elseif pcs_condition['lack_of_sleep'] >= 5:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (21*(50+<<ARGS[3]>>))/400'
+			elseif pcs_condition['lack_of_sleep'] >= 2:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (27*(50+<<ARGS[3]>>))/400'
+			else
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (30*(50+<<ARGS[4]>>))/400'
+			end
 		else
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (10*(50+<<ARGS[4]>>))/100'
+			if pcs_condition['lack_of_sleep'] >= 20:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (2*(50+<<ARGS[3]>>))/100'
+			elseif pcs_condition['lack_of_sleep'] >= 10:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (5*(50+<<ARGS[3]>>))/100'
+			elseif pcs_condition['lack_of_sleep'] >= 5:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (7*(50+<<ARGS[3]>>))/100'
+			elseif pcs_condition['lack_of_sleep'] >= 2:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (9*(50+<<ARGS[3]>>))/100'
+			else
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (10*(50+<<ARGS[4]>>))/100'
+			end
 		end
 	elseif dyneval('RESULT = class[''<<$ARGS[1]>>_<<$ARGS[2]>>_use_computer'']') = 1:
-		if pcs_condition['lack_of_sleep'] >= 20:
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (1*(50+<<ARGS[3]>>))/100'
-		elseif pcs_condition['lack_of_sleep'] >= 10:
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (2*(50+<<ARGS[3]>>))/100'
-		elseif pcs_condition['lack_of_sleep'] >= 5:
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (3*(50+<<ARGS[3]>>))/100'
-		elseif pcs_condition['lack_of_sleep'] >= 2:
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (4*(50+<<ARGS[3]>>))/100'
+		if pcs_stam <= 0:
+			if pcs_condition['lack_of_sleep'] >= 20:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (1*(50+<<ARGS[3]>>))/200'
+			elseif pcs_condition['lack_of_sleep'] >= 10:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (2*(50+<<ARGS[3]>>))/200'
+			elseif pcs_condition['lack_of_sleep'] >= 5:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (3*(50+<<ARGS[3]>>))/200'
+			elseif pcs_condition['lack_of_sleep'] >= 2:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (4*(50+<<ARGS[3]>>))/200'
+			else
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (5*(50+<<ARGS[4]>>))/200'
+			end
+		elseif pcs_stam < stammax / 5:
+			if pcs_condition['lack_of_sleep'] >= 20:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (3*(50+<<ARGS[3]>>))/400'
+			elseif pcs_condition['lack_of_sleep'] >= 10:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (6*(50+<<ARGS[3]>>))/400'
+			elseif pcs_condition['lack_of_sleep'] >= 5:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (9*(50+<<ARGS[3]>>))/400'
+			elseif pcs_condition['lack_of_sleep'] >= 2:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (12*(50+<<ARGS[3]>>))/400'
+			else
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (15*(50+<<ARGS[4]>>))/400'
+			end
 		else
-			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (5*(50+<<ARGS[4]>>))/100'
+			if pcs_condition['lack_of_sleep'] >= 20:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (1*(50+<<ARGS[3]>>))/100'
+			elseif pcs_condition['lack_of_sleep'] >= 10:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (2*(50+<<ARGS[3]>>))/100'
+			elseif pcs_condition['lack_of_sleep'] >= 5:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (3*(50+<<ARGS[3]>>))/100'
+			elseif pcs_condition['lack_of_sleep'] >= 2:
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (4*(50+<<ARGS[3]>>))/100'
+			else
+				dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (5*(50+<<ARGS[4]>>))/100'
+			end
 		end
 	end
 
@@ -287,28 +521,80 @@ if $ARGS[0] = 'homework':
 		if $class_list_institution[i] = $ARGS[1]:
 			if dyneval ('RESULT = class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_homework'']') = 1:
 				if $ARGS[2] = 'no':
-					if pcs_condition['lack_of_sleep'] >= 20:
-						dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*1*(50+modifier))/100)'
-					elseif pcs_condition['lack_of_sleep'] >= 10:
-						dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*2*(50+modifier))/100)'
-					elseif pcs_condition['lack_of_sleep'] >= 5:
-						dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*3*(50+modifier))/100)'
-					elseif pcs_condition['lack_of_sleep'] >= 2:
-						dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*4*(50+modifier))/100)'
+					if pcs_stam <= 0:
+						if pcs_condition['lack_of_sleep'] >= 20:
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*1*(50+modifier))/200)'
+						elseif pcs_condition['lack_of_sleep'] >= 10:
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*2*(50+modifier))/200)'
+						elseif pcs_condition['lack_of_sleep'] >= 5:
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*3*(50+modifier))/200)'
+						elseif pcs_condition['lack_of_sleep'] >= 2:
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*4*(50+modifier))/200)'
+						else
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*5*(50+modifier))/200)'
+						end
+					elseif pcs_stam < stammax / 5:
+						if pcs_condition['lack_of_sleep'] >= 20:
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*3*(50+modifier))/400)'
+						elseif pcs_condition['lack_of_sleep'] >= 10:
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*6*(50+modifier))/400)'
+						elseif pcs_condition['lack_of_sleep'] >= 5:
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*9*(50+modifier))/400)'
+						elseif pcs_condition['lack_of_sleep'] >= 2:
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*12*(50+modifier))/400)'
+						else
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*15*(50+modifier))/400)'
+						end	
 					else
-						dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*5*(50+modifier))/100)'
+						if pcs_condition['lack_of_sleep'] >= 20:
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*1*(50+modifier))/100)'
+						elseif pcs_condition['lack_of_sleep'] >= 10:
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*2*(50+modifier))/100)'
+						elseif pcs_condition['lack_of_sleep'] >= 5:
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*3*(50+modifier))/100)'
+						elseif pcs_condition['lack_of_sleep'] >= 2:
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*4*(50+modifier))/100)'
+						else
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*5*(50+modifier))/100)'
+						end				
 					end
 				else
-					if pcs_condition['lack_of_sleep'] >= 20:
-						dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((2*(50+modifier))/100)'
-					elseif pcs_condition['lack_of_sleep'] >= 10:
-						dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((5*(50+modifier))/100)'
-					elseif pcs_condition['lack_of_sleep'] >= 5:
-						dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((7*(50+modifier))/100)'
-					elseif pcs_condition['lack_of_sleep'] >= 2:
-						dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((9*(50+modifier))/100)'
+					if pcs_stam <= 0:
+						if pcs_condition['lack_of_sleep'] >= 20:
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((2*(50+modifier))/200)'
+						elseif pcs_condition['lack_of_sleep'] >= 10:
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((5*(50+modifier))/200)'
+						elseif pcs_condition['lack_of_sleep'] >= 5:
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((7*(50+modifier))/200)'
+						elseif pcs_condition['lack_of_sleep'] >= 2:
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((9*(50+modifier))/200)'
+						else
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((10*(50+modifier))/200)'
+						end
+					elseif pcs_stam < stammax / 5:
+						if pcs_condition['lack_of_sleep'] >= 20:
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((6*(50+modifier))/400)'
+						elseif pcs_condition['lack_of_sleep'] >= 10:
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((15*(50+modifier))/400)'
+						elseif pcs_condition['lack_of_sleep'] >= 5:
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((21*(50+modifier))/400)'
+						elseif pcs_condition['lack_of_sleep'] >= 2:
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((27*(50+modifier))/400)'
+						else
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((30*(50+modifier))/400)'
+						end
 					else
-						dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((10*(50+modifier))/100)'
+						if pcs_condition['lack_of_sleep'] >= 20:
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((2*(50+modifier))/100)'
+						elseif pcs_condition['lack_of_sleep'] >= 10:
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((5*(50+modifier))/100)'
+						elseif pcs_condition['lack_of_sleep'] >= 5:
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((7*(50+modifier))/100)'
+						elseif pcs_condition['lack_of_sleep'] >= 2:
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((9*(50+modifier))/100)'
+						else
+							dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((10*(50+modifier))/100)'
+						end
 					end
 				end
 			end

+ 22 - 16
locations/gschool_grounds.qsrc

@@ -351,24 +351,27 @@ if $ARGS[0] = 'sports':
 
 	act 'Leave the sports field': minut += 1 & gt 'gschool_grounds', 'main'
 
-	if schoolrunday ! daystart and $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich':
-		act 'Go for a run (1 hour)':
-			*clr & cla
-			menu_off = 1
-			gs 'exercise', 'tier1', 60, 'run'
-			fat -= rand(0,4)
-			gs 'sweat', 'add', 5
-			gs 'stat'
-			if month > 2 and month <= 9:
-				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/grounds/runsummer.jpg"></center>'
-			else
-				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/grounds/runwinter.jpg"></center>'
-			end
-			'You spend an hour running on the track.'
+	if $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich':
+		if pcs_energy >= 5 and pcs_stam >= stammax / 5:
+			act 'Go for a run (1 hour)':
+				*clr & cla
+				menu_off = 1
+				gs 'exercise', 'tier1', 60, 'run'
+				if month > 2 and month <= 9:
+					'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/grounds/runsummer.jpg"></center>'
+				else
+					'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/grounds/runwinter.jpg"></center>'
+				end
+				'You spend an hour running on the track.'
 
-			act 'Continue': gt 'gschool_grounds', 'sports'
+				act 'Continue': gt 'gschool_grounds', 'sports'
+			end
+		elseif pcs_stam >= stammax / 5:
+			act 'Go for a run (1:00)': '<br><font color="red">You are so hungry you cannot face going for a run.</font>'
+		else
+			act 'Go for a run (1:00)': '<br><font color="red">You are to exhausted to do this. Recover your stamina before trying to go for a run.</font>'
 		end
-	elseif schoolrunday ! daystart and ($clothingworntype ! 'danilovich_outfits' or $shoeworntype ! 'danilovich'):
+	elseif ($clothingworntype ! 'danilovich_outfits' or $shoeworntype ! 'danilovich'):
 		'You could go for a run here if you were wearing sports clothes and shoes.'
 	end
 
@@ -773,6 +776,9 @@ if $ARGS[0] = 'change_room':
 		cla
 		gt 'wardrobe', 'start'
 	end
+
+	gs 'wardrobe', 'default_sport_options'
+
 	dynamic $publicpan
 	act 'Look in the mirror': gt 'mirror', 'start'
 	if pcs_hairbsh < 1: act 'Brush your hair': gt 'mirror', 'brush'

+ 327 - 26
locations/katja_procedural.qsrc

@@ -1,7 +1,7 @@
 # katja_procedural
 !2022/08/02
 
-!!This files governs Katja''s procedural actions that are called from many places. 
+!!This files governs Katja''s procedural actions that are called form many places. 
 
 !! The model used for Katja''s porn scene was originally the porn actress Faye Reagan, lately Red Fox/Michelle H have also been used for a lot of content. But several other have also been used.
 
@@ -10,21 +10,26 @@
 !! katjaQW['QWstage'] = 1 You have agreed to hang out with Katja afer school. (meynoldQW = 1)
 !! katjaQW['QWstage'] = 2 You have been to Katja''s house and you can go there to hang out with her. (meynoldQW = 2)
 !! katjaQW['QWstage'] = 3 You have kissed Katja and she might be interested in more. (katjaFirstKiss = 1 and KatjaOTN)
-!! npc_sex['A14'] = 1 You have had at least one sexual experience with Katja.
-!! katjaQW['QWstage'] = 4 Katja have asked you to help have sex with a boy.
+!! npc_sex['A14'] = 1 You have had at least one sexual experince with Katja.
+!! katjaQW['QWstage'] = 4 Katja have asked you to helpe have sex with a boy.
 !! katjaQW['QWstage'] = 5 You have agreed to help Katja have sex with a boy.
 !! katjaQW['QWstage'] = 6 You have talked with Katja about her first experience with a boy.
 !! katjaQW['QWstage'] = 7 You have told Katja about the boys in the park.
 
-!! katjaQW['boy_block'] is set to 1 if you tell Katja that you have no interest in boys when she ask about you sex experience with a boy.
+!! katjaQW['liberated'] is set to one after some time if the player have not started Katja''s quest. It means she will start to be sexually active with out having the player character help her.
 
-!! katjaQW['relationship_count_start'] is set to daystart when you have had sex with Katja and the yearstart is more than one (that is in the second year). It starts a countdown of 6 to 12 months before Katja will ask you about your relationship.
+!! katjaQW['first_time_in_nightclub'] is set to 1 if you have sex with Katja during a threesome at the night club before you start her storyline, and 2 if you make her come during that scene. Used trigger a different introduction to her storyline.
+
+!! katjaQW['boy_block'] is set to 1 if you tell Katja that you have no interest in boys when she ask about you sex experience whit boy.
+
+!! katjaQW['relationship_count_start'] is set to daystart when you have had sex with Katja and the yearstart is more than on (that is in the second year). It starts a countdown of 6 to 12 months before Katja will ask you about your relationship.
 !! katjaQW['relationship_talk'] = 1 you have had a discussion about your relationship.
 
 !! katjaQW['couple'] is set to 1 when you agree to be a couple.
-!! katjaQW['faithful'] is set to 1 if you are a couple and agree not to have sex with others (unless you both participate)
-!! katjaQW['sex_clossedness'] 0 means no restriction on sex scenes with Katja, 1 mean only scenes with Katja and the player character are available, 2 means that the player character won't have sex with Katja
+!! katjaQW['faithful'] is sent to 1 if you are a couple and agree not to have sex with others (unless you both participate)
+!! katjaQW['cheat_warning'] is set the first time Katja confronts the player because the caught them cheating and to 2 after the player have been caught so many times that Katja warns them that she will also starts to sleep around. 
 
+!! katjaQW['sex_clossedness'] 0 mean no restriction on sex scenes with Katja, 1 mean only scenes with Katja and the player character are available, 2 mean that the player character wont have sex with Katja
 
 !! katjaQW['anal_quest'] =1 Katja has asked you to help her have anal sex with a boy.
 !! katjaQW['anal_quest'] =2 You have agreed to help Katja have anal sex with a boy.
@@ -37,21 +42,40 @@
 !! katjaQW['school_kiss'] Increases the first two times you kiss at school. Used to trigger the kissing competition in the park. (flag_start_parc)
 
 !! katjaQW['slut'] a number that increases as Katja becomes more and more sexually liberated, and allows her to be willing to do more sexual stuff. (katjaSlut)
-!! katjaQW['horny'] a measure of Katja''s arousal. Grows until she has an orgasm and will determine how willing she is at the moment to have sex.
 !! katjaQW['dom'] a number that tells if Katja is dominant or submissive. 0 is neutral, a negative means she is submissive and a positive means she is dominant. In general the absolute value needs to be above 30 before you will see any effect. (katjaDom but not a 1 to 1 translation since that variable was all over the place.)
-!! katjaQW['simultanous_boys'] the number of boys Katja has been with at the same time. Is not really set before the number is 2.
-!! katjaQW['simultanous_girls'] the number of girls Katja has been with at the same time including the player character, so it is not really set before the number is 2.
+!! katjaQW['simultanous_boys'] the number of boys Katja have been with at the same time, Is not really set before the number is 2.
+!! katjaQW['simultanous_girls'] the number of girls Katja have been with at the same time including the player character, so it is not really set before the number is 2.
+
+!! katjaQW['horny'] a measure of Katja''s arousal. Grows until she have an orgasm and will determine how willing she is at the moment to have sex.
+!! katjaQw['drinks'] a measure of how drunk Katja is. 0 means sober, 8 quit drunk and 12 that she can barely stand.
+!! katjaQW['under_influnece_of_cocaine'] if positive it means that her inhibition is still affected by the cocaine she used.
+
+!! katjaQW['coke_stage'] = 0 Katja have never tried cocaine, and would need to be convinced by a difficult willpower check to try, the circumstances can make the check harder or easier,
+!! katjaQW['coke_stage'] = 1 Katja have tried cocaine at least once, but is still reluctant. Still need to be convinced by a willpower check try again, but not as difficult as the first time.
+!! katjaQW['coke_stage'] = 2 Katja have tried cocaine several times and is getting less reluctant to use it. Still need to be convinced by a willpower check try again, but easier and can at times be removed if the circumstances are right.
+!! katjaQW['coke_stage'] = 3 Katja have tried cocaine several times and is getting comfortable with using it. Does in general not need a willpower check to use it if offered, and might take it if offered even if the player character don''t unless forced not to by a willpower check.
+!! katjaQW['coke_stage'] = 4 Katja is starting to get into using cocaine. Does not need a willpower check to be convinced to take it, might ask the player character or other for it in the right situation (in general before or at a party), and would usually need a willpower check to be convinced to not use it. Might try to convince the player character to also take it.
+!! katjaQW['coke_stage'] = 5 Katja is getting even more into it. She will start to sometimes buy it herself and offer it to the Player characters in the right situations (at a party or such) and will need convincing to not take it herself. Still only a party user but might now take it at a party without the player being there.
+!! katjaQW['coke_stage'] = 6 Katja is starting to get addicted. She will almost always have some and will now start suggesting you are taking it more often, for example just hanging out an normal afternoon/evening and need willpower checks to be convinced not to take even if the Player character done''t take any. Still only takes some without the player being present at parties together with others.
+!! katjaQW['coke_stage'] = 7 Katja is addicted. Will take several times a week even with out the player characters presence. It will start to slowly affect her every day life. But will still be able to function more or less normally.
+!! katjaQW['coke_stage'] = 8 Katja is very addicted. Will take every day, and unless the player character provides she will start doing stuff to earn money for that takes time away from studying which will harm her education. She might not turn up to class because she was out all night trying to precure money for it, and will often not be found since she is trying to earn money for it, might prostitutes herself for the money.
+!! katjaQW['coke_stage'] = -1 Katja have been true a cold turkey/rehab and wont touch cocaine for the fear of getting addicted again.
+
+!!  katjaQW['coke_point'] A a variable used to change the katjaQW['coke_stage'].
+!! katjaQW['financial_strain'] A variable that is used to check if Katja is using more money on drugs thatn she have, so that she will start doing things to earn those money.
 
 !! katjaQW['park_sex'] 	a measure of what experience Katja has had with random guys in the park. 0 means she has not had sex with anybody in the park,
 !!					1 means that she has had sex with one guy at a time (either alone, in a threesome with the player character or while the player had sex with another guy next to them)
 !!					2 means she has had a threesome with 2 guys you met in the park, and 3 means she has paticipated in an orgy with guys from the park. (katjaSex)
 
-!! katjaQW['masturbates'] = 1 Katja has started masturbating at night if she got too horny. (KatjaMastr)
+!! katjaQW['masturbates'] = 1 Katja has started masturbating at night if she get too horny. (KatjaMastr)
 !! The following 3 variables functions as pcs_throat, pcs_vag and pcs_ass does for the player character. So whenever Katja has sex with a guy or a dildo is used on her you should add code to change them as is done for the player character in arousal.
 !! npc_throat['A14'] The capacity for Katja to take a dick (or dildo) down her throat. (KatjaThroat)
 !! npc_vag['A14'] The capacity for Katja to take a dick (or dildo) in the vagina.
 !! npc_ass['A14'] The capacity for Katja to take a dick (or dildo) in her ass. (KatjaAnus)
-!! katjaQW['deepthroat'] Number of time Katja have been deepthroated
+!! katjaQW['pussy_sex'] = 1 Katja have had pussy sex with guy where the player character wasn''t present.
+!! katjaQW['anal_sex'] = 1 Katja have had anal sex with guy where the player character wasn''t present.
+!! katjaQW['deepthroat'] Number of time Katja have deepthroated
 !! katjaQW['dp'] the number of times Katja have been double penetrated.
 
 !! katjaQW['strapon_bj'] = 1 Katja has given a BJ to your strap-on.
@@ -70,14 +94,14 @@
 !! katjaQW['lazar_pussy_talk'] = 1 Katja and the player character have talked about having sex with Lazar.
 !! katjaQW['lazar_anal_talk'] = 1 Katja and the player character have talked about having anal sex with Lazar.
 
-!! katjaQW['Lazar_Ivan_4some'] 1 means they had a foursome but no double penetration, 2 means that the player character recieved a double penetration during the first foursome and have not talked about it yet, and 3 is if the player character have recieved a double penetration and they have talked about the first foursome.
+!! katjaQW['Lazar_Ivan_4some'] 1 means the had a foursome but no double penetration, 2 means that the player character recieved a double penetration during the first foursome and have not talked about it yet, and 3 is if the player character have recieved a double penetration and they have talked about the first foursome.
 
 !! katjaQW['Marcus_day'] is set to daystart if you or Katja ask to have a threesome with Marcus. Such that the question will only be asked once per day.
 !! katjaQW['Lazar_day'] is set to daystart if you or Katja ask to have a threesome with Lazar. Such that the question will only be asked once per day.
 
 !! katjaQW['birth_control_start_day'] This is set to the daystart value from the day Katja''s birth control will be effective if the player tells her to use it. Should be used to check if Katja can become pregnant by if katjaQW['birth_control_start_day'] ! 0 and katjaQW['birth_control_start_day'] < daystart to make sure is protected.
 
-!! KatjaQW['orgasm_day'] Is set to be equal to daystart when Katja gain an orgasm (It is not set all palces). (KatjaOrgasm)
+!! KatjaQW['orgasm_day'] Is set to be equal to daystart when Katja gain an orgasm (It is not set all places). (KatjaOrgasm)
 !! katjaQW['take_of_panties_day'] is set to daystart if you get katja to take of her panties during school break.
 !! katjaQW['afterschool_hangout_day'] Is set to be equal daystart when you choose to hang out with Katja after school. (katjaMeynoldday)
 !! katjaQW['no_panties_day'] Is set to daystart if you show Katja that you are not wearing panties.
@@ -92,17 +116,33 @@
 !! katjaQW['knows_cuni'] = 1 You have told Katja that have gone down on another girl (KatjaKnowKuni =1)
 !! katjaQW['know_Pirced_tongue'] = 1 katja have noticed your tongue piercing (KatjaKnowPirsA =1)
 
-!! katjaQW['school_sex'] = 1 Katja has taken you to a storage room at school to have sex. (katschoolsex)
-!! katjaQW['disco_Foto'] =1 somebody has taken a photo of Katja''s exposed breast at the disco. Right now the only use of this variable is so that another photo won't be taken. (katja_disco_Foto)
+!! katjaQW['school_sex'] = 1 Katja have taken you to a storage room at school to have sex. (katschoolsex)
+!! katjaQW['disco_Foto'] =1 somebody have takien a picture of Katja''s exposed breast at the disco. Right now to only use of this variable is so that another foto wont be taken. (katja_disco_Foto)
 
 !! katjaQW['drunk_help'] is set to 1 when Katja walks you home from the disco because you are to drunk. Will be reset to 0 after you talk to her about it at school. (meynoldQW = 3)
 !! katjaQW['no_panties_at_disco'] is set if Katja shows you at the disco that she is not vearing panties. Will be reset to 0 at night. (katja_disco_end)
-!! KatjaQW['sex_in_the_park_comment'] temposry varibale which is set during sex with guys in the park to make sure she will give the right comment before she says goodbuy. Will be reset to 0 when going home after sex. (KatjaOhrenet)
+!! KatjaQW['sex_in_the_park_comment'] temposry varibale which is set during sex with guys in the park to make sure she give the right comment before she says goodbuy. Will be rest to 0 when going home after sex. (KatjaOhrenet)
 
 !! katjaQW['know_katja_uni'] = 1 Katja has told you she is going to uni to study teaching.
 !! katjaQW['know_going_to_teaching_degree'] =1 you have told Katja that you are going to the university to study in the teaching program.
 !! katjaQW['meet_uni_class'] = 1 You have meet Katja in you uni class.
 
+if $ARGS[0] = 'hourly':
+	!! Modifies Katja''s state each hour, mainly reducing drugs and alcohol levels
+	gs 'katja_meynold_schedule'
+	if katjaQw['drinks'] > 0:
+		if (locat['katja'] > 0 and locat['katja'] < 4) or (locat['katja'] > 19 and locat['katja'] < 24):
+			katjaQw['drinks'] -= 2
+			if katjaQw['drinks'] < 0: katjaQw['drinks'] = 0
+		else
+			katjaQw['drinks'] -= rand(0,1)
+		end
+	end
+	if katjaQW['under_influnece_of_cocaine'] > 0: katjaQW['under_influnece_of_cocaine'] -= 1
+
+	if katjaQW['nightclub_private_room_boy'] = 1 and katjaQW['disco_loc'] ! 7: katjaQW['nightclub_private_room_boy'] = 0 & gs 'katja_procdural', 'sex_set', 1
+end
+
 if $ARGS[0] = 'cikl':
 	!!Modifying Katja''s arousal level.
 	if katjaQW['QWstage'] > 2:
@@ -116,13 +156,37 @@ if $ARGS[0] = 'cikl':
 				katjaQW['horny'] = 100
 			end
 		end
+	else
+		!! During the uni year, Katja might start masturbate even if the player have not started her quest.
+		if yearstart > 1 and katjaQW['masturbates'] = 0 and rand(0,50) = 50: katjaQW['masturbates'] = 1 & katjaQW['slut'] += 5
 	end
-
+	
+	!! Start the countdown for Katja''s relationship talk
 	if yearstart > 1 and npc_sex['A14'] > 0 and katjaQW['relationship_count_start'] = 0: katjaQW['relationship_count_start'] = daystart 
 
-	!!Reseting if Katja has shown you that she is not wearing panties at the disco. The reason to not use a daystart variable, is that if you show it very late Friday it might prevent you from seeing it Saturday (daystart can change during the event)
+	!! If the player have not gotten to the point where they have sex with Katja by the start of the second year of uni, she will then start to be sexually active without the player. (Does not prevent the player from starting her storyline, but it might be at a later stage in the stroryline, since Katja is now more experienced.
+	if yearstart > 2 and npc_sex['A14'] = 0 and katjaQW['liberated'] = 0:
+		katjaQW['liberated'] = 1
+		if katjaQW['masturbates'] = 0: katjaQW['masturbates'] = 1
+	end
+
+	!! Set some variables related to her sexual experience that is not taking care in all the acts.
+	if (katjaQW['QWstage'] >= 6 or katjaQW['anal_quest'] >= 3) and katjaQW['simultanous_boys'] = 0: katjaQW['simultanous_boys'] = 1
+	if npc_sex['A14'] >= 1 and katjaQW['simultanous_girls'] = 0: katjaQW['simultanous_girls'] = 1
+
+	!! Katja learning about you sexual experience from other sources because you are a slut.
+	if fame['pav_slut'] >= 150 and stat['bj'] > 0 and katjaQW['knows_BJ'] ! 1: katjaQW['knows_BJ'] = 1
+	if fame['pav_slut'] >= 250 or preg > 0 and stat['vaginal'] > 0 and katjaQW['knows_sex'] ! 1: katjaQW['knows_sex'] = 1
+
+	!!Resetting if Katja have shown you that she is not wearing panties at the disco. The reason to not use a daystart variable, is the if you show it very late Friday it might prevent you from seeing it Saturday (daystart can change during the event)
 	if katjaQW['no_panties_at_disco'] > 0: katjaQW['no_panties_at_disco'] = 0
 
+	!! Setting the sex stat for Katja if she went to a private room at the nightclub and the player character did not spy on her.
+	if katjaQW['nightclub_private_room_boy'] = 1: 
+		katjaQW['nightclub_private_room_boy'] = 0
+		if rand(0,katjaQw['slut']/25) > 0: gs 'katja_procdural', 'sex_set', 1
+	end
+	
 	!!Out commented Katja becoming pregnant until more content for a pregnant Katja is done 
 	!!if katjaPreg = 0 and month >= 2 and year > 2016: katjaPreg = 1
 
@@ -144,10 +208,59 @@ if $ARGS[0] = 'cikl':
 		katjaQW['preference_change'] = 2
 		npc_preference['A<<npctemp>>_clothes_thinnes'] = 1
 	end	
+
+	!! Check if she did drugs with others
+	if katjaQW['coke_stage'] >= 5:
+		if locat['katja_save2'] = 53 and katjaQW['disco_arrival'] + 600 > totminut or katjaQW['disco_met'] + 600 > totminut:
+			if rand(0,katjaQW['coke_stage']) >= 5: gs 'katja_procdural', 'take_cocaine', 1, 1
+		elseif katjaQw['alone_with_other_day'] = daystart -1
+			if rand(2,katjaQW['coke_stage']) >= 5: gs 'katja_procdural', 'take_cocaine', 1, 1
+		end
+	end
+	
+	!! Taking care of her cocaine tolerance/addiction
+	if katjaQW['coke_stage'] = 1 and katjaQW['coke_point'] > 3:
+		katjaQW['coke_stage'] = 2
+	elseif katjaQW['coke_stage'] = 2 and katjaQW['coke_point'] > 8:
+		katjaQW['coke_stage'] = 3
+	elseif katjaQW['coke_stage'] = 3 and katjaQW['coke_point'] > 15:
+		katjaQW['coke_stage'] = 4
+	elseif katjaQW['coke_stage'] = 4:
+		if katjaQW['coke_point'] > 25: 
+			katjaQW['coke_stage'] = 5
+		elseif katjaQW['coke_point'] < 8:
+			katjaQW['coke_stage'] = 3
+		end
+	elseif katjaQW['coke_stage'] = 5:
+		if katjaQW['coke_point'] > 35: 
+			katjaQW['coke_stage'] = 6
+		elseif katjaQW['coke_point'] < 25:
+			katjaQW['coke_stage'] = 5
+		end
+	elseif katjaQW['coke_stage'] = 6:
+		if katjaQW['coke_point'] > 50: 
+			katjaQW['coke_stage'] = 7
+		elseif katjaQW['coke_point'] < 35:
+			katjaQW['coke_stage'] = 5
+		end
+	elseif katjaQW['coke_stage'] = 7:
+		if katjaQW['coke_day'] + 1 < daystart and rand(0,3)= 0: gs 'katja_procdural', 'take_cocaine', 1, 1
+		if katjaQW['coke_point'] > 70: 
+			katjaQW['coke_stage'] = 8
+		elseif katjaQW['coke_point'] < 45:
+			katjaQW['coke_stage'] = 6
+		end
+	elseif katjaQW['coke_stage'] = 8:
+		if katjaQW['coke_day'] + 1 < daystart: katjaQW['financial_strain'] += rand(0,1) & gs 'katja_procdural', 'take_cocaine', 1, 1
+		if katjaQW['coke_point'] < 55: katjaQW['coke_stage'] = 7
+	end
+			
+	if katjaQW['coke_day'] + 7 < daystart and katjaQW['coke_day_lapse'] = 1: katjaQW['coke_day_lapse'] = 0 & katjaQW['coke_point'] -= 1
+	if katjaQW['coke_point'] < 0: katjaQW['coke_point'] = 0 
 end
 
 if $ARGS[0] = 'face_color':
-
+	!! To print the colour of her face, for the player to get an idea of her arousal
 	if katjaQW['QWstage'] > 2:
 		if katjaQW['horny'] < 20:
 			'Katja looks calm and stoic.'
@@ -166,9 +279,10 @@ if $ARGS[0] = 'face_color':
 end
 
 if $ARGS[0] = 'makeup':
-	$carry_arg[1] = $ARGS[1]
-	$carry_arg[2] = $ARGS[2]
+	!! Routine for Katja to apply makeup to the player character
 	'Katja looks at you with a smile. "<<$pcs_nickname>>, I bet you would look great with a little make-up on you! What do you say?"'
+	$temp_loc = $ARGS[1]
+	$temp_loc_arg = $ARGS[2]
 	act 'Let her put makeup on you':
 		*clr & cla
 		pcs_hairbsh = 1
@@ -184,7 +298,7 @@ if $ARGS[0] = 'makeup':
 			'Katja subtly applies some neutral tones, with a light application of makeup to bring out your natural beauty.'
 			if katjaQW['QWstage'] > 2:katjaQW['horny'] += 5*(1 + npc_sex['A14']) & 'Katja suddenly becomes aware that she is staring into your eyes and blushes.'
 
-			act 'Thank Katja for the makeup': gt $carry_arg[1], $carry_arg[2]
+			act 'Thank Katja for the makeup': gt $temp_loc, $temp_loc_arg
 		end
 
 		act 'Normal make-up':
@@ -193,7 +307,7 @@ if $ARGS[0] = 'makeup':
 			'Katja applies some mildly vibrate tones and colors of makeup to cover your minor imperfections and enhance your best features.'
 			if katjaQW['QWstage'] > 2:katjaQW['horny'] += 5*(1 + npc_sex['A14']) & 'Katja suddenly becomes aware that she is staring into your eyes and blushes.'
 
-			act 'Thank Katja for the makeup': gt $carry_arg[1], $carry_arg[2]
+			act 'Thank Katja for the makeup': gt $temp_loc, $temp_loc_arg
 		end
 
 		act 'Heavy make-up':
@@ -202,9 +316,196 @@ if $ARGS[0] = 'makeup':
 			'Katja applies some deeper, richer shades of makeup that are thick enough to cover most imperfections while drawing attention to your eyes and lips.'
 			if katjaQW['QWstage'] > 2:katjaQW['horny'] += 5*(1 + npc_sex['A14']) & 'Katja suddenly becomes aware that she is staring into your eyes and blushes.'
 
-			act 'Thank Katja for the makeup': gt $carry_arg[1], $carry_arg[2]
+			act 'Thank Katja for the makeup': gt $temp_loc, $temp_loc_arg
+		end
+		act 'You really don''t need it': gt $temp_loc, $temp_loc_arg
+	end
+end
+
+if $ARGS[0] = 'willing_to_be_naughty':
+	!! A version of katjaQW['slut'] modified for drug and alcohol use to make her more willing to do stuff when drunk and/or high 
+	temp = KatjaQW['slut']
+	if katjaQW['under_influnece_of_cocaine'] > 0: temp += 10/katjaQW['coke_stage']
+	temp += katjaQW['drinks']
+	RESULT = temp
+end
+
+if $ARGS[0] = 'take_cocaine':
+	!! Use if Katja takes cocaine. The extra argument is set to 1 if you only want the effect on her tolerance/addiction. Use it if she takes cocaine in a without the player character being present. The second extra argument is only used by the cikl argument in this file, such that Katja taking drugs counts for the day that just passed and not the day starting.
+	if katjaQW['coke_stage'] = 0:
+		katjaQW['slut'] += 10
+		katjaQW['coke_stage'] = 1
+	elseif katjaQW['coke_stage'] = 1:
+		katjaQW['slut'] += 2
+	elseif katjaQW['coke_stage'] = 2:
+		katjaQW['slut'] += rand(1,2)
+	elseif katjaQW['coke_stage'] = 3:
+		katjaQW['slut'] += rand(0,1)
+	end
+	if katjaQW['coke_stage'] = -1 and rand(0,1) = 0: katjaQW['coke_stage'] = 4
+	if $ARGS[1] = 0:
+		katjaQW['under_influnece_of_cocaine'] += 2
+		if katjaQW['coke_stage'] > 0:
+			katjaQW['horny'] += 4*(11-katjaQW['coke_stage']) 
+		else
+			katjaQW['horny'] += 40
+		end
+	end
+	if katjaQW['coke_stage'] < 3:
+		katjaQW['coke_point'] += 1
+	elseif katjaQW['coke_stage'] < 6:
+		if katjaQW['coke_day']  + 7 > daystart - ARGS[2]: katjaQW['coke_point'] += 1
+	elseif katjaQW['coke_stage'] < 8:
+		if katjaQW['coke_day']  + 2 > daystart - ARGS[2]: katjaQW['coke_point'] += 1
+	elseif katjaQW['coke_stage'] = 8:
+		if katjaQW['coke_day'] = daystart - ARGS[2]: katjaQW['coke_point'] += 1
+	end
+	katjaQW['coke_day'] = daystart - ARGS[2]
+	katjaQW['coke_day_lapse'] = 1
+end
+
+if $ARGS[0] = 'sex_set':
+	!! Test to see if Katja have sex with somebody whiteout the player presents, and updates Katja''s stat accordingly. ARGS[1] is the number of boys Katja is with and ARGS[2] the number of girls.
+	if AGS[1] > 0:
+		!! Katja was in a situation with one or more boys where she might have had sex if some of them.
+		if katjaQW['simultanous_boys'] = 0 and rand(0,4) <= katjaQW['slut']/25:
+			!! Katja have never had sex with a boy before
+			if npc_vag['A14'] = 0 and npc_ass['A14'] = 0:
+				if rand(0,4) = 0:
+					npc_ass['A14'] += 2
+					katjaQW['anal_sex'] = 1
+				else
+					npc_vag['A14'] += 2
+					katjaQW['pussy_sex'] = 1
+				end
+			else
+				if npc_vag['A14'] > 0 and rand(0,3) > 0:
+					if katjaQW['pussy_sex'] = 0: katjaQW['pussy_sex'] = 1
+					if npc_vag['A14'] < rand(5,10):
+						npc_vag['A14'] += 2
+					elseif npc_vag['A14'] < rand(10,20)
+						 npc_vag['A14'] += 1
+					end
+				else	
+					if rand(0,5) = 0:
+						npc_vag['A14'] += 2
+						katjaQW['pussy_sex'] = 1
+					end
+				end
+				if npc_ass['A14'] > 0 and rand(0,3) > 0:
+					if katjaQW['anal_sex'] = 0: katjaQW['anal_sex'] = 1
+					if npc_ass['A14'] < rand(5,10):
+						npc_ass['A14'] += 2
+					elseif npc_ass['A14'] < rand(10,20)
+						 npc_ass['A14'] += 1
+					end
+				else	
+					if rand(0,7) = 0:
+						npc_ass['A14'] += 2
+						katjaQW['anal_sex'] = 1
+					end
+				end
+			end
+
+			if npc_throat['A14'] > 0 and rand(0,7) > 0:
+				if npc_throat['A14'] < rand(8,22): npc_throat['A14'] += 1
+			else	
+				if rand(0,3) = 0: npc_throat['A14'] += 1
+			end
+			
+			!! It this case Katja will have sex with at most 2 of the boys present
+			katjaQW['simultanous_boys'] = rand(1,min(2,ARGS[1]))
+			katjaQW['slut'] += katjaQW['simultanous_boys']*5
+		elseif rand(0,2) <= katjaQW['slut']/50:
+			!! Katja have had sex with one or more boys before
+			if npc_vag['A14'] > 0 and rand(0,3) > 0:
+				if katjaQW['pussy_sex'] = 0: katjaQW['pussy_sex'] = 1
+				if npc_vag['A14'] < rand(5,10):
+					npc_vag['A14'] += 2
+				elseif npc_vag['A14'] < rand(10,20)
+					 npc_vag['A14'] += 1
+				end
+			else	
+				if rand(0,5) = 0:
+					npc_vag['A14'] += 2
+					katjaQW['pussy_sex'] = 1
+				end
+			end
+			if npc_ass['A14'] > 0 and rand(0,3) > 0:
+				if katjaQW['anal_sex'] = 0: katjaQW['anal_sex'] = 1
+				if npc_ass['A14'] < rand(5,10):
+					npc_ass['A14'] += 2
+				elseif npc_ass['A14'] < rand(10,20)
+					 npc_ass['A14'] += 1
+				end
+			else	
+				if rand(0,7) = 0:
+					npc_ass['A14'] += 2
+					katjaQW['anal_sex'] = 1
+				end
+			end
+
+			if npc_throat['A14'] > 0 and rand(0,7) > 0:
+				if npc_throat['A14'] < rand(8,22): npc_throat['A14'] += 1
+			else	
+				if rand(0,3) = 0: npc_throat['A14'] += 1
+			end
+
+			!! In this case she can have sex with all the boys present
+			katjaQW['simultanous_boys'] += max(0,rand(0,ARGS[1] - katjaQW['simultanous_boys']))
+				
+			katjaQW['slut'] += min(katjaQW['simultanous_boys'],ARGS[1])*3
+		end
+	end
+	
+	if AGS[2] > 0:
+		!! Katja was in a situation with one or more girls where she might have had sex if some of them.
+		if katjaQW['simultanous_girls'] = 0 and rand(0,3) <= katjaQW['slut']/33:
+			!! Katja have never had sex with a girl before
+			if npc_vag['A14'] > 0 and rand(0,5) > 0:
+				 npc_vag['A14'] += 1
+			else	
+				if rand(0,9) = 0: npc_vag['A14'] += 1
+			end
+			if npc_ass['A14'] > 0 and rand(0,7) > 0:
+				 npc_ass['A14'] += 1
+			else	
+				if rand(0,14) = 0: npc_ass['A14'] += 1
+			end
+
+			if npc_throat['A14'] > 0 and rand(0,2) = 0:
+				npc_throat['A14'] += 1
+			else	
+				if rand(0,6) = 0: npc_throat['A14'] += 1
+			end
+			
+			!! It this case Katja will have sex with at most 3 of the girls present
+			katjaQW['simultanous_girls'] = rand(1,min(3,ARGS[1]))
+			katjaQW['slut'] += katjaQW['simultanous_girls']*4
+		elseif rand(0,1) <= katjaQW['slut']/50:
+			!! Katja have had sex with one or more girls before
+			if npc_vag['A14'] > 0 and rand(0,5) > 0:
+				 npc_vag['A14'] += 1
+			else	
+				if rand(0,9) = 0: npc_vag['A14'] += 1
+			end
+			if npc_ass['A14'] > 0 and rand(0,7) > 0:
+				 npc_ass['A14'] += 1
+			else	
+				if rand(0,14) = 0: npc_ass['A14'] += 1
+			end
+
+			if npc_throat['A14'] > 0 and rand(0,2) = 0:
+				npc_throat['A14'] += 1
+			else	
+				if rand(0,6) = 0: npc_throat['A14'] += 1
+			end
+
+			!! In this case she can have sex with all the girls present
+			katjaQW['simultanous_girls'] += max(0,rand(0,ARGS[1] - katjaQW['simultanous_girls']))
+				
+			katjaQW['slut'] += min(katjaQW['simultanous_gitls'],ARGS[1])*2
 		end
-		act 'You really don''t need it': gt $carry_arg[1], $carry_arg[2]
 	end
 end
 

+ 9 - 5
locations/pav_park.qsrc

@@ -295,11 +295,15 @@ if $ARGS[0] = 'start':
 			act 'Continue': gt 'pav_park', 'start'
 		end
 	end
-	if $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and hour > 5 and hour < 23 and daybegskver ! daystart and pcs_energy >= 10:
-		act 'Jog through the park (1:00)': gt 'pav_park', 'run'
-	elseif $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and hour > 5 and hour < 23 and daybegskver ! daystart:
-		act 'Jog through the park (1:00)': '<br><font color="red">You feel too hungry to do this.</font>'
-	elseif ($clothingworntype ! 'danilovich_outfits' or $shoeworntype ! 'danilovich') and hour > 5 and hour < 23 and daybegskver ! daystart:
+	if $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and hour > 5 and hour < 23:
+		if pcs_energy >= 10 and pcs_stam >= stammax / 5:
+			act 'Jog through the park (1:00)': gt 'pav_park', 'run'
+		elseif pcs_stam >= stammax / 5:
+			act 'Jog through the park (1:00)': '<br><font color="red">You feel too hungry to do this.</font>'
+		else
+			act 'Jog through the park (1:00)': '<br><font color="red">You are to exhausted to do this. Recover your stamina before trying to go for a run.</font>'
+		end
+	else
 		'You could jog around the park if you were wearing sports clothes and shoes.'
 	end
 	act 'Sit on the bench': gt 'pav_park', 'sitting_park_bench'

+ 37 - 36
locations/pirsingsalon.qsrc

@@ -1,5 +1,6 @@
 # pirsingsalon
 
+
 !! Piercings variables:
 !! pirsX: Which piercing is worn at position X
 !! X=
@@ -27,15 +28,15 @@ if $ARGS[0] = 'start':
 	'Small studio with just one artist doing the tattoos and piercings.'
 
 	'<center><table border=1><TH>View tattoos</TH><TH>View tattoos</TH><TH>View piercings</TH>'
-	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''arm''">Arm - 8000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''lip''">Lip - 5000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pirsyaz''">Tongue - 5000 <b>₽</b></a></TD></tr>'
-	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''ass''">Ass - 10000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''neck''">Neck - 8000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pirsgub''">Lip - 6000 <b>₽</b></a></TD></tr>'
-	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''back''">Back - 10000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pubic''">Pubic - 20000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pirsysh''">Ear - 3000 <b>₽</b></a></TD></tr>'
-	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''belly''">Belly - 10000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''shoulder''">Shoulder - 8000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pirsnos''">Nose - 5000 <b>₽</b></a></TD></tr>'
-	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''breast''">Breasts - 15000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''side''">Side - 12000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pirsbro''">Eyebrow - 5000 <b>₽</b></a></TD></tr>'
-	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''chest''">Chest - 12000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''tramp''">Tramp stamp - 12000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pirssos''">Nipple - 10000 <b>₽</b></a></TD></tr>'
-	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''face''">Face - 10000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''under''">Under breast - 12000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pirspyp''">Navel - 10000 <b>₽</b></a></TD></tr>'
-	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''foot''">Foot - 8000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''wrist''">Wrist - 7000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pirsvla''">Pussy - 25000 <b>₽</b></a></TD></tr>'
-	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''leg''">Legs - 10000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''hand''">Hand - 7000 <b>₽</b></TD><TD></TD></tr></table></center>'
+	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''arm''">Arm - 8,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''lip''">Lip - 5,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pirsyaz''">Tongue - 5,000 <b>₽</b></a></TD></tr>'
+	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''ass''">Ass - 1,0000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''neck''">Neck - 8,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pirsgub''">Lip - 6,000 <b>₽</b></a></TD></tr>'
+	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''back''">Back - 10,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pubic''">Pubic - 20,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pirsysh''">Ear - 3,000 <b>₽</b></a></TD></tr>'
+	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''belly''">Belly - 10,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''shoulder''">Shoulder - 8,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pirsnos''">Nose - 5,000 <b>₽</b></a></TD></tr>'
+	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''breast''">Breasts - 15,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''side''">Side - 12,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pirsbro''">Eyebrow - 5,000 <b>₽</b></a></TD></tr>'
+	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''chest''">Chest - 12000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''tramp''">Tramp stamp - 12,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pirssos''">Nipple - 10,000 <b>₽</b></a></TD></tr>'
+	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''face''">Face - 10,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''under''">Under breast - 12,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pirspyp''">Navel - 10,000 <b>₽</b></a></TD></tr>'
+	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''foot''">Foot - 8,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''wrist''">Wrist - 7,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pirsvla''">Pussy - 25,000 <b>₽</b></a></TD></tr>'
+	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''leg''">Legs - 10,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''hand''">Hand - 7,000 <b>₽</b></TD><TD></TD></tr></table></center>'
 
 	if hour < 12 or hour > 20:
 		cls
@@ -117,7 +118,7 @@ if $ARGS[0] = 'tongue_pir':
 			act 'Return':gt 'pirsingsalon', 'pirsyaz'
 		else
 			if money >= 3000:
-				act 'Buy this piercing for 3000 <b>₽</b> (cash)':
+				act 'Buy this piercing for 3,000 <b>₽</b> (cash)':
 					'You buy the piercing.'
 					cla
 					money -= 3000
@@ -128,7 +129,7 @@ if $ARGS[0] = 'tongue_pir':
 				'You don''t have enough cash for this piercing.'
 			end
 			if karta + bankDebtLimit >= 3000:
-				act 'Buy this piercing for 3000 <b>₽</b> (card)':
+				act 'Buy this piercing for 3,000 <b>₽</b> (card)':
 					'You buy the piercing.'
 					cla
 					karta -= 3000
@@ -141,7 +142,7 @@ if $ARGS[0] = 'tongue_pir':
 		end
 	elseif (money >= 5000) or (karta + bankDebtLimit >= 5000):
 		if money >= 5000:
-			act 'Get your tongue pierced with this piercing for 5000 <b>₽</b> (cash)':
+			act 'Get your tongue pierced with this piercing for 5,000 <b>₽</b> (cash)':
 				cls
 				minut += 30
 				money -= 5000
@@ -157,7 +158,7 @@ if $ARGS[0] = 'tongue_pir':
 			end
 		end
 		if karta + bankDebtLimit >= 5000:
-			act 'Get your tongue pierced with this piercing for 5000 <b>₽</b> (card)':
+			act 'Get your tongue pierced with this piercing for 5,000 <b>₽</b> (card)':
 				cls
 				minut += 30
 				karta -= 5000
@@ -204,7 +205,7 @@ if $ARGS[0] = 'lip_pir':
 			act 'Return':gt 'pirsingsalon', 'pirsgub'
 		else
 			if money >= 4000:
-				act 'Buy this piercing for 4000 <b>₽</b> (cash)':
+				act 'Buy this piercing for 4,000 <b>₽</b> (cash)':
 					'You buy the piercing.'
 					cla
 					money -= 4000
@@ -215,7 +216,7 @@ if $ARGS[0] = 'lip_pir':
 				'You don''t have enough cash for this piercing.'
 			end
 			if karta + bankDebtLimit >= 4000:
-				act 'Buy this piercing for 4000 <b>₽</b> (card)':
+				act 'Buy this piercing for 4,000 <b>₽</b> (card)':
 					'You buy the piercing.'
 					cla
 					karta -= 4000
@@ -228,7 +229,7 @@ if $ARGS[0] = 'lip_pir':
 		end
 	elseif (money >= 6000) or (karta + bankDebtLimit >= 6000):
 		if money >= 6000:
-			act 'Get your lip pierced with this piercing for 6000 <b>₽</b> (cash)':
+			act 'Get your lip pierced with this piercing for 6,000 <b>₽</b> (cash)':
 				cls
 				minut += 30
 				money -= 6000
@@ -244,7 +245,7 @@ if $ARGS[0] = 'lip_pir':
 			end
 		end
 		if karta + bankDebtLimit >= 6000:
-			act 'Get your lip pierced with this piercing for 6000 <b>₽</b> (card)':
+			act 'Get your lip pierced with this piercing for 6,000 <b>₽</b> (card)':
 				cls
 				minut += 30
 				karta -= 6000
@@ -291,7 +292,7 @@ if $ARGS[0] = 'ears_pir':
 			act 'Return':gt 'pirsingsalon', 'pirsysh'
 		else
 			if money >= 1000:
-				act 'Buy this piercing for 1000 <b>₽</b> (cash)':
+				act 'Buy this piercing for 1,000 <b>₽</b> (cash)':
 					'You buy the earrings.'
 					cla
 					money -= 1000
@@ -302,7 +303,7 @@ if $ARGS[0] = 'ears_pir':
 				'You don''t have enough cash for these earrings.'
 			end
 			if karta + bankDebtLimit >= 1000:
-				act 'Buy these earrings for 1000 <b>₽</b> (card)':
+				act 'Buy these earrings for 1,000 <b>₽</b> (card)':
 					'You buy the earrings.'
 					cla
 					karta -= 1000
@@ -315,7 +316,7 @@ if $ARGS[0] = 'ears_pir':
 		end
 	elseif (money >= 3000) or (karta + bankDebtLimit >= 3000):
 		if money >= 3000:
-			act 'Get your ears pierced with these earrings for 3000 <b>₽</b> (cash)':
+			act 'Get your ears pierced with these earrings for 3,000 <b>₽</b> (cash)':
 				cls
 				minut += 30
 				money -= 3000
@@ -331,7 +332,7 @@ if $ARGS[0] = 'ears_pir':
 			end
 		end
 		if karta + bankDebtLimit >= 3000:
-			act 'Get your ears pierced with these earrings for 3000 <b>₽</b> (card)':
+			act 'Get your ears pierced with these earrings for 3,000 <b>₽</b> (card)':
 				cls
 				minut += 30
 				karta -= 3000
@@ -378,7 +379,7 @@ if $ARGS[0] = 'nose_pir':
 			act 'Return':gt 'pirsingsalon', 'pirsnos'
 		else
 			if money >= 2000:
-				act 'Buy this piercing for 2000 <b>₽</b> (cash)':
+				act 'Buy this piercing for 2,000 <b>₽</b> (cash)':
 					'You buy the piercing.'
 					cla
 					money -= 2000
@@ -389,7 +390,7 @@ if $ARGS[0] = 'nose_pir':
 				'You don''t have enough cash for this piercing.'
 			end
 			if karta + bankDebtLimit >= 2000:
-				act 'Buy this piercing for 2000 <b>₽</b> (card)':
+				act 'Buy this piercing for 2,000 <b>₽</b> (card)':
 					'You buy the piercing.'
 					cla
 					karta -= 2000
@@ -402,7 +403,7 @@ if $ARGS[0] = 'nose_pir':
 		end
 	elseif (money >= 5000) or (karta + bankDebtLimit >= 5000):
 		if money >= 5000:
-			act 'Get your nose pierced with this piercing for 5000 <b>₽</b> (cash)':
+			act 'Get your nose pierced with this piercing for 5,000 <b>₽</b> (cash)':
 				cls
 				minut += 30
 				money -= 5000
@@ -418,7 +419,7 @@ if $ARGS[0] = 'nose_pir':
 			end
 		end
 		if karta + bankDebtLimit >= 5000:
-			act 'Get your nose pierced with this piercing for 5000 <b>₽</b> (card)':
+			act 'Get your nose pierced with this piercing for 5,000 <b>₽</b> (card)':
 				cls
 				minut += 30
 				karta -= 5000
@@ -465,7 +466,7 @@ if $ARGS[0] = 'brow_pir':
 			act 'Return':gt 'pirsingsalon', 'pirsbro'
 		else
 			if money >= 2000:
-				act 'Buy this piercing for 2000 <b>₽</b> (cash)':
+				act 'Buy this piercing for 2,000 <b>₽</b> (cash)':
 					'You buy the piercing.'
 					cla
 					money -= 2000
@@ -476,7 +477,7 @@ if $ARGS[0] = 'brow_pir':
 				'You don''t have enough cash for this piercing.'
 			end
 			if karta + bankDebtLimit >= 2000:
-				act 'Buy this piercing for 2000 <b>₽</b> (card)':
+				act 'Buy this piercing for 2,000 <b>₽</b> (card)':
 					'You buy the piercing.'
 					cla
 					karta -= 2000
@@ -489,7 +490,7 @@ if $ARGS[0] = 'brow_pir':
 		end
 	elseif (money >= 5000) or (karta + bankDebtLimit >= 5000):
 		if money >= 5000:
-			act 'Get your brow pierced with this piercing for 5000 <b>₽</b> (cash)':
+			act 'Get your brow pierced with this piercing for 5,000 <b>₽</b> (cash)':
 				cls
 				minut += 30
 				money -= 5000
@@ -505,7 +506,7 @@ if $ARGS[0] = 'brow_pir':
 			end
 		end
 		if karta + bankDebtLimit >= 5000:
-			act 'Get your brow pierced with this piercing for 5000 <b>₽</b> (card)':
+			act 'Get your brow pierced with this piercing for 5,000 <b>₽</b> (card)':
 				cls
 				minut += 30
 				karta -= 5000
@@ -552,7 +553,7 @@ if $ARGS[0] = 'nip_pir':
 			act 'Return':gt 'pirsingsalon', 'pirssos'
 		else
 			if money >= 6000:
-				act 'Buy these piercings for 6000 <b>₽</b> (cash)':
+				act 'Buy these piercings for 6,000 <b>₽</b> (cash)':
 					'You buy the piercings.'
 					cla
 					money -= 6000
@@ -563,7 +564,7 @@ if $ARGS[0] = 'nip_pir':
 				'You don''t have enough cash for these piercings.'
 			end
 			if karta + bankDebtLimit >= 6000:
-				act 'Buy these piercings for 6000 <b>₽</b> (card)':
+				act 'Buy these piercings for 6,000 <b>₽</b> (card)':
 					'You buy the piercings.'
 					cla
 					karta -= 6000
@@ -608,7 +609,7 @@ if $ARGS[0] = 'nip_pir':
 			end
 		end
 	else
-		'You cannot afford to get your lip pierced with these piercings.'
+		'You cannot afford to get your nipples pierced with these piercings.'
 	end
 
 	act 'Return':gt 'pirsingsalon', 'pirssos'
@@ -639,7 +640,7 @@ if $ARGS[0] = 'belly_pir':
 			act 'Return':gt 'pirsingsalon', 'pirspyp'
 		else
 			if money >= 7000:
-				act 'Buy this piercing for 7000 <b>₽</b> (cash)':
+				act 'Buy this piercing for 7,000 <b>₽</b> (cash)':
 					'You buy the piercing.'
 					cla
 					money -= 7000
@@ -650,7 +651,7 @@ if $ARGS[0] = 'belly_pir':
 				'You don''t have enough cash for this piercing.'
 			end
 			if karta + bankDebtLimit >= 7000:
-				act 'Buy this piercing for 7000 <b>₽</b> (card)':
+				act 'Buy this piercing for 7,000 <b>₽</b> (card)':
 					'You buy the piercing.'
 					cla
 					karta -= 7000
@@ -817,7 +818,7 @@ if $ARGS[0] = 'arm_get':
 		'You cannot afford this tattoo.'
 	else
 		if money >= 8000:
-			act 'Get this tattoo 8000 <b>₽</b> (cash)':
+			act 'Get this tattoo 8,000 <b>₽</b> (cash)':
 				cla
 				tatarm = n
 				money -= 8000
@@ -828,7 +829,7 @@ if $ARGS[0] = 'arm_get':
 			end
 		end
 		if karta + bankDebtLimit >= 8000:
-			act 'Get this tattoo 8000 <b>₽</b> (card)':
+			act 'Get this tattoo 8,000 <b>₽</b> (card)':
 				cla
 				tatarm = n
 				karta -= 8000

+ 18 - 29
locations/podrsex.qsrc

@@ -45,14 +45,11 @@ if $ARGS[0] = 'suck':
 		gs 'stat'
 		
 	end
-	if sexvar = 1:'<br>The man groans that he will cum soon.'
-	if sexvar > 0:xgt 'podrsex', 'var'
-	if sexvar = 0:
-		*clr
-		'<br><center><img <<$set_imgh>> src="images/locations/shared/sex/pod/cum<<picrand>>.jpg"></center>'
-		spafinloc = 12
-		gs 'cum_manage'
-		gs 'podrsex', 'end'
+	if sexvar = 1: '<br>The man groans that he will cum soon.'
+	if sexvar > 0:
+		xgt 'podrsex', 'var'
+	else
+		gt 'podrsex', 'end'
 	end
 end
 
@@ -80,10 +77,10 @@ if $ARGS[0] = 'pussy':
 		$orgasm_or = 'yes'
 		gs 'stat'
 	end
-	if sexvar = 1:'<br>The man groans that he will cum soon.'
-	if sexvar > 0:xgt 'podrsex', 'var'
-	if sexvar = 0:
-		gs 'cum_manage'
+	if sexvar = 1: '<br>The man groans that he will cum soon.'
+	if sexvar > 0:
+		xgt 'podrsex', 'var'
+	else
 		gs 'podrsex', 'end'
 	end
 end
@@ -115,11 +112,10 @@ if $ARGS[0] = 'ass':
 		gs 'stat'
 		
 	end
-	if sexvar = 1:'<br>The man groans that he will cum soon.'
-	if sexvar > 0:xgt 'podrsex', 'var'
-	if sexvar = 0:
-		spafinloc = 3
-		gs 'cum_manage'
+	if sexvar = 1: '<br>The man groans that he will cum soon.'
+	if sexvar > 0:
+		xgt 'podrsex', 'var'
+	else
 		gs 'podrsex', 'end'
 	end
 end
@@ -152,13 +148,11 @@ if $ARGS[0] = 'voy':
 	
 		gs 'arousal', 'cuni', 10, 'lesbian', 'dom', 'group'
 		gs 'stat'
-		
 	end
-	if sexvar = 1:'<br>The man groans that he will cum soon.'
-	if sexvar > 0:xgt 'podrsex', 'var'
-	if sexvar = 0:
-		spafinloc = 12
-		gs 'cum_manage'
+	if sexvar = 1: '<br>The man groans that he will cum soon.'
+	if sexvar > 0:
+		xgt 'podrsex', 'var'
+	else
 		gs 'podrsex', 'end'
 	end
 end
@@ -172,6 +166,7 @@ if $ARGS[0] = 'end':
 	sexstart = 0
 
 	if pos = 1:
+		'<br><center><img <<$set_imgh>> src="images/locations/shared/sex/pod/cum<<picrand>>.jpg"></center>'
 		'The man''s cock erupts, shooting his load over your face and the other girl. The two of you giggle and lick his cock clean, kissing each other in the process.'
 		gs 'cum_call', 'face', $boy, 1
 		gs 'cum_call', 'mouth_swallow', $boy, 1
@@ -187,13 +182,11 @@ if $ARGS[0] = 'end':
 			gs 'cum_call', '', $boy, 1
 			gs 'arousal', 'end'
 			gs 'stat'
-		
 		elseif tmp > 0:
 			'<br>You push against him when you feel his cock pumping his load deep inside you. Maybe you''ll end up pregnant...'
 			gs 'cum_call', '', $boy, 1
 			gs 'arousal', 'end'
 			gs 'stat'
-		
 		end
 	elseif pos = 3:
 		spafinloc = 3
@@ -201,7 +194,6 @@ if $ARGS[0] = 'end':
 		gs 'cum_call', 'anus', $boy, 1
 		gs 'arousal', 'end'
 		gs 'stat'
-		
 	elseif pos = 4:
 		'He groans, pumping her pussy full of cum.'
 		tmp = func('pregriskeval')
@@ -209,18 +201,15 @@ if $ARGS[0] = 'end':
 			'<br>It''s exciting to watch another woman being pumped full of sperm. Maybe''ll she end up pregnant with his bastard son... '
 			gs 'arousal', 'end'
 			gs 'stat'
-		
 		else
 			'<br>It''s hot to see another woman being pumped full of cum, but You just hope she''s on the pill right now...'
 			gs 'arousal', 'end'
 			gs 'stat'
-		
 		end
 	elseif pos = 5:
 		'He groans, pumping her ass full of cum.'
 		gs 'arousal', 'end'
 		gs 'stat'
-		
 	end
 	pos = 0
 	gs 'stat'

+ 3 - 3
locations/saveg.qsrc

@@ -14,8 +14,8 @@
 !! When you do this you should always commit this file and saveupdater.qsrc at the same time.
 
 version_major = 0
-version_minor = 8
-version_revision = 9
-version_patch = 2
+version_minor = 9
+version_revision = 0
+version_patch = 0
 --- saveg ---------------------------------
 

+ 20 - 16
locations/saveupdater.qsrc

@@ -1664,24 +1664,28 @@ if ((100*version_major +version_minor)*100+version_revision)*100+version_patch <
 		if $npc_rel_type[i] ! '':$npc_rel_type[i] = 'fuckbuddy'
 		i += 1
 	if i <= ARRSIZE('$boys'):jump 'loopboys'
+
+	if traits > 0 or trait > 0:
+
+		pcs_traits['nerd_status'] = traits['nerd_status']
+		pcs_traits['cumeater'] = trait['cumeater']
+		pcs_traits['commando_lvl'] = trait['commando_lvl']
+		pcs_traits['commando_exp'] = trait['commando_exp']
+		pcs_traits['alko_status'] = traits['alko_status']
+		pcs_traits['alko_points'] = traits['alko_points']
+		pcs_traits['buttslut_lvl'] = traits['buttslut_lvl']
+		pcs_traits['buttslut_exp'] = traits['buttslut_exp']
+		pcs_traits['nerd_lernHome'] = traits['nerd_lernHome']
+		pcs_traits['nerd_points'] = traits['nerd_points']
+		pcs_traits['nerd_lessons'] = traits['nerd_lessons']
+
+		killvar 'traits'
+		killvar 'trait'
+	end
 end
 
-if traits > 0 or trait > 0:
-
-	pcs_traits['nerd_status'] = traits['nerd_status']
-	pcs_traits['cumeater'] = trait['cumeater']
-	pcs_traits['commando_lvl'] = trait['commando_lvl']
-	pcs_traits['commando_exp'] = trait['commando_exp']
-	pcs_traits['alko_status'] = traits['alko_status']
-	pcs_traits['alko_points'] = traits['alko_points']
-	pcs_traits['buttslut_lvl'] = traits['buttslut_lvl']
-	pcs_traits['buttslut_exp'] = traits['buttslut_exp']
-	pcs_traits['nerd_lernHome'] = traits['nerd_lernHome']
-	pcs_traits['nerd_points'] = traits['nerd_points']
-	pcs_traits['nerd_lessons'] = traits['nerd_lessons']
-
-	killvar 'traits'
-	killvar 'trait'
+if ((100*version_major +version_minor)*100+version_revision)*100+version_patch < 00080903:
+
 end
 
 gs 'saveg'

+ 5 - 13
locations/sex.qsrc

@@ -169,29 +169,21 @@ if $ARGS[0] = 'end':
 	killvar 'dick'
 
 	if pos = 1:
-		spafinloc = 12
 		'He groans loudly, and you feel his hard cock erupting in your mouth. You swallow it obediently, figuring that is what he wants you to do.'
+		gs 'cum_call', 'mouth_swallow', $boy, 1
 	elseif pos = 2:
-		spafinloc = 9
 		'Stroking himself while he pleasures you, he groans loudly, spraying his seed on the floor. Some of it splatters against your feet as well.'
+		gs 'cum_call', 'feet', $boy, 1
 	elseif pos = 3:
-		spafinloc = 0
-		cuminside = 1
 		'He groans loudly, spraying his seed deep inside your pussy.'
+		gs 'cum_call', '', $boy, 1
+		gs 'cuminsidereact'
 	else
-		spafinloc = 3
 		'He groans loudly, spraying his seed deep inside your ass.'
+		gs 'cum_call', 'anus', $boy, 1
 	end
-	gs 'cum_manage'
-	if pcs_horny >= 80:
-		pcs_horny = 0
-		orgasm += 1
-		'You feel so horny after bringing him to orgasm, you''re very close to having an orgasm also! You close your eyes and surrender yourself to the moment, quickly rubbing yourself to completion.'
-	end
-	if cuminside = 1: killvar 'cuminside' & gs 'cuminsidereact'
 
 	gs 'arousal', 'end'
-
 	gs 'stat'
 	act 'Leave':
 		if picrand >= 54 and picrand <= 73: killvar 'picrand' & gt 'office', 'work'

+ 160 - 112
locations/sex_ev_after.qsrc

@@ -45,6 +45,20 @@ if $ARGS[0] = 'quit2':
 	gs'sex_ev_after', 'after_sex2'
 end
 
+if $ARGS[0] = 'stop_here_pic':
+	if sex_ev['cock_inserted'] = 1:
+		if $sex_ev['position'] = 'miss':
+			'<center><img <<$set_imgh>> src="images/shared/sex/vag/miss/2.jpg"></center>'
+		elseif $sex_ev['position'] = 'doggy':
+			'<center><img <<$set_imgh>> src="images/shared/sex/vag/doggy/2.jpg"></center>'
+		elseif $sex_ev['position'] = 'cowgirl':
+			'<center><img <<$set_imgh>> src="images/shared/sex/vag/cowgirl/1.jpg"></center>'
+		end
+	else
+		$sex_ev['bed_room']
+	end
+end
+
 if $ARGS[0] = 'stop_here':
 	act'Ask to stop':
 		sex_ev['finish_ask'] = 1
@@ -52,35 +66,53 @@ if $ARGS[0] = 'stop_here':
 			cla & *clr
 			$sex_ev['bed_room']
 			'"Satisfied?" you ask sleepily.'
+			gs'sex_ev_after', 'stop_here2'
 		elseif sex_ev['blowjob_continue_ask'] = 1:
 			cla & *clr
 			'<center><video autoplay loop src="images/shared/sex/blowjob/play1.mp4"></video></center>'
 			'"There, happy now?" you ask, playing with his cock.'
+			gs'sex_ev_after', 'stop_here2'
 		else
 			cla
-			act'':
+			act'You good to stop here?':
+				if sex_ev['keep_going_continue'] > 0:
+					cla & *clr
+					gs 'sex_ev_after', 'stop_here_pic'
+					'"Is that good enough for you now?" you ask.'
+				elseif sex_ev['first_break'] = 1:
+					cla & *nl
+					'"Actually," you say. "I''m happy if we just to finish here. How about you?"'
+				else
+					cla & *clr
+					gs 'sex_ev_after', 'stop_here_pic'
+					'"I think I''m good here," you say. "How about you?"'
+				end
+				gs'sex_ev_after', 'stop_here2'
+			end
+			
+			act'I''m shattered':
+				cla & *clr
+				gs 'sex_ev_after', 'stop_here_pic'
 				if sex_ev['consecutive_orgasm'] = 1:
-				
+					'"Can we... stop here...?" you pant tiredly. "That last orgasm really took it out of me. I''m shattered..."'
 				elseif sex_ev['consecutive_orgasm'] > 1:
-				
+					'"Can we... stop here...?" you pant tiredly. "You made me come so many times in a row... I''m shattered..."'
 				else
-				
+					'"Can we... stop here...?" you pant tiredly. "I''m absolutely shattered..."'
 				end
+				gs'sex_ev_after', 'stop_here2'
 			end
-			if sex_ev['keep_going_continue'] > 0:
-				cla & *clr
-				$sex_ev['bed_room']
-				'"Is that good enough for you now?" you ask.'
-			elseif sex_ev['first_break'] = 1:
-				cla & *nl
-				'"Actually," you say. "I think I might be happy just to finish here. How about you?"'
-			else
+			
+			act'Need to get going':
 				cla & *clr
-				$sex_ev['bed_room']
-				'"I think I''m good here," you say. "How about you?"'
+				gs 'sex_ev_after', 'stop_here_pic'
+				'"You mind if we stop here?" you ask. "I need to get going soon."'
+				gs'sex_ev_after', 'stop_here2'
 			end
+			
+			gs'sex_ev_pillow_talk2', 'wakeup_sex_late_for_school'
 		end
-		gs'sex_ev_after', 'stop_here2'
+!!		gs'sex_ev_after', 'stop_here2'
 !!		gs'sex_ev_after', 'after_sex2'
 	end
 end
@@ -96,16 +128,23 @@ if $ARGS[0] = 'stop_here2':
 			gs'sex_ev_after', 'finish_sex'
 		elseif sex_ev['keep_going_continue'] > 0:
 			'"Just a couple more times?" <<$npc_firstname[$boy]>> begs. "I still want to get off a few more times with you."'
-			gs'sex_ev_after', 'stop_here_options'
+			gs'sex_ev_after', 'ask_continue_options'
 		elseif npc_abusive[$boy] = 1 or npc_selfish[$boy] = 1 or (npc_caretaker[$boy] ! 1 and rand(1,3)):
 			'"You''re done already?" <<$npc_firstname[$boy]>> complains. "I still want to get off a few more times with you."'
-			gs'sex_ev_after', 'stop_here_options'
+			gs'sex_ev_after', 'ask_continue_options'
+!!{		elseif sex_ev['cum_count'] = 0:
+			sex_ev['ask_to_cum_once'] = 1
+			if $sex_ev['position'] = 'miss' or $sex_ev['position'] = 'doggy' or $sex_ev['position'] = 'cowgirl':
+				'"Can I just come real quick?" <<$npc_firstname[$boy]>> asks. "I''m really close."'
+			else
+				
+			end}
 		elseif npc_caretaker[$boy] = 1:
 			'"I was actually hoping to go a few more times," <<$npc_firstname[$boy]>> says a bit wistfully. "But if you want to stop, that''s all right."'
-			gs'sex_ev_after', 'stop_here_options'
+			gs'sex_ev_after', 'ask_continue_options'
 		elseif npc_caretaker[$boy] = 1:
 			
-			gs'sex_ev_after', 'stop_here_options'
+			gs'sex_ev_after', 'ask_continue_options'
 			
 		end
 		
@@ -114,7 +153,7 @@ if $ARGS[0] = 'stop_here2':
 	end
 end
 
-if $ARGS[0] = 'stop_here_options':
+if $ARGS[0] = 'ask_continue_options':
 	act'I can''t keep going':
 		cla & *nl
 !!		if sex_ev['fuck_count'] > 0:
@@ -245,24 +284,31 @@ if $ARGS[0] = 'well_continue':
 	act'Well...':
 		sex_ev['blue_ball'] = 0
 		cla
-		act'We can''t have that':
-			cla & *nl
-			'"Well, we can''t have you going unsatisfied now can we?" you say with a teasing smile.'
-			sex_ev['keep_going_continue'] += 1
-			gs'sex_ev_after', 'well_continue2'
-		end
-		
-		act'I have a <i>little</i> more time':
-			cla & *nl
-			'"Well... I guess I might be able to keep going a <i>little</i> longer," you say with a soft smile.'
-			gs'sex_ev_after', 'well_continue2'
-		end
-		if sex_ev['no_time'] = 0:
-			act'I can be late':
+		if sex_ev['ask_to_cum_once'] = 1:
+			act'Let him finish':
+				cla & *nl
+				'"Okay," you say softly. '
+			end
+		else
+			act'We can''t have that':
 				cla & *nl
-				'"Well... Maybe I could be a <i>little</i> late..." you say with a soft smile.'
+				'"Well, we can''t have you going unsatisfied now can we?" you say with a teasing smile.'
+				sex_ev['keep_going_continue'] += 1
 				gs'sex_ev_after', 'well_continue2'
 			end
+			
+			act'I have a <i>little</i> more time':
+				cla & *nl
+				'"Well... I guess I might be able to keep going a <i>little</i> longer," you say with a soft smile.'
+				gs'sex_ev_after', 'well_continue2'
+			end
+			if sex_ev['no_time'] = 0:
+				act'I can be late':
+					cla & *nl
+					'"Well... Maybe I could be a <i>little</i> late..." you say with a soft smile.'
+					gs'sex_ev_after', 'well_continue2'
+				end
+			end
 		end
 	end
 end
@@ -284,91 +330,93 @@ if $ARGS[0] = 'well_continue2':
 end
 
 if $ARGS[0] = 'tap_out':
-	if $npc_dick_desc[$boy] = 'long' or $npc_dick_desc[$boy] = 'huge' or $npc_dick_desc[$boy] = 'enormous' or $npc_dick_desc[$boy] = 'lengthy' or $npc_dick_desc[$boy] = 'gigantic' or $npc_dick_desc[$boy] = 'monster' and ($sex_ev['position'] = 'miss' or $sex_ev['position'] = 'doggy' or $sex_ev['position'] = 'cowgirl'):
-		act'Tap out (too big)':
-			gs 'pain', 4, 'cervix', 'ache'
-			gs 'pain', 4, 'vaginal', 'stretch'
-			sex_ev['tap_out'] = 1
-			sex_ev['sore_pussy'] = 1
-			cla & *clr
-			$sex_ev['bed_room']
-			if sex_ev['cock_inserted'] = 0:
-				'"I can''t keep this up..." you pant breathlessly. "You''re just too big for me... I can''t keep going..."'
-			else
-				'"I can''t keep this up..." you pant, wincing at the pain of <<$npc_firstname[$boy]>>''s large cock stretching your pussy past its limits. "You''re too big for me... I just... I can''t keep going..."'
-			end
-			
-			if npc_selfish[$boy] = 1 or npc_abusive[$boy] = 1:
-				'"Come on, don''t be like that," <<$npc_firstname[$boy]>> moans. "You just need to get used to it. Don''t pussy out now."'
-				act'I can''t':
-					cla & *nl
-					npc_dick_too_big[$boy] = 1
-					'"I just can''t," you shake your head, legs tightening over your sore lady bits. "My pussy hurts so much, I can''t handle your cock inside me again."'
-					'"Ugh," <<$npc_firstname[$boy]>> says rolling his eyes. "Way to be a little bitch about it. Never going to learn to enjoy my big cock unless you practice."'
-					gs'sex_ev_after', 'after_sex1'
+	if sex_ev['fuck_count'] > 0:
+		if $npc_dick_desc[$boy] = 'long' or $npc_dick_desc[$boy] = 'huge' or $npc_dick_desc[$boy] = 'enormous' or $npc_dick_desc[$boy] = 'lengthy' or $npc_dick_desc[$boy] = 'gigantic' or $npc_dick_desc[$boy] = 'monster' and ($sex_ev['position'] = 'miss' or $sex_ev['position'] = 'doggy' or $sex_ev['position'] = 'cowgirl'):
+			act'Tap out (too big)':
+				gs 'pain', 4, 'cervix', 'ache'
+				gs 'pain', 4, 'vaginal', 'stretch'
+				sex_ev['tap_out'] = 1
+				sex_ev['sore_pussy'] = 1
+				cla & *clr
+				$sex_ev['bed_room']
+				if sex_ev['cock_inserted'] = 0:
+					'"I can''t keep this up..." you pant breathlessly. "You''re just too big for me... I can''t keep going..."'
+				else
+					'"I can''t keep this up..." you pant, wincing at the pain of <<$npc_firstname[$boy]>>''s large cock stretching your pussy past its limits. "You''re too big for me... I just... I can''t keep going..."'
 				end
 				
-				act'Force yourself to keep going':
-					cla & *nl
-					sex_ev['tap_out'] = 2
-					if sex_ev['cock_inserted'] = 0:
-						'"I can''t believe I''m letting you talk me into this..." you grimace, rubbing your thighs together over your sore pussy. "Okay, keep going..."'
-					else
-						'"I can''t believe I''m letting you talk me into this..."  you grimace, wincing again as you adjust your hips around <<$npc_firstname[$boy]>>''s cock. "Okay, keep going..."'
+				if npc_selfish[$boy] = 1 or npc_abusive[$boy] = 1:
+					'"Come on, don''t be like that," <<$npc_firstname[$boy]>> moans. "You just need to get used to it. Don''t pussy out now."'
+					act'I can''t':
+						cla & *nl
+						npc_dick_too_big[$boy] = 1
+						'"I just can''t," you shake your head, legs tightening over your sore lady bits. "My pussy hurts so much, I can''t handle your cock inside me again."'
+						'"Ugh," <<$npc_firstname[$boy]>> says rolling his eyes. "Way to be a little bitch about it. Never going to learn to enjoy my big cock unless you practice."'
+						gs'sex_ev_after', 'after_sex1'
 					end
-					if sex_ev['boy_cum'] >= 1:
-						gs'sex_ev_sex', 'reset'
-						sex_ev['must_fuck'] = 1
-						act'Let him lead':cla & gs 'sex_ev_sex', 'he_choose_position'
-						gs'sex_ev_sex', 'position_choose'
+					
+					act'Force yourself to keep going':
+						cla & *nl
+						sex_ev['tap_out'] = 2
+						if sex_ev['cock_inserted'] = 0:
+							'"I can''t believe I''m letting you talk me into this..." you grimace, rubbing your thighs together over your sore pussy. "Okay, keep going..."'
+						else
+							'"I can''t believe I''m letting you talk me into this..."  you grimace, wincing again as you adjust your hips around <<$npc_firstname[$boy]>>''s cock. "Okay, keep going..."'
+						end
+						if sex_ev['boy_cum'] >= 1:
+							gs'sex_ev_sex', 'reset'
+							sex_ev['must_fuck'] = 1
+							act'Let him lead':cla & gs 'sex_ev_sex', 'he_choose_position'
+							gs'sex_ev_sex', 'position_choose'
+						else
+							gs'sex_ev_sex', 'keep_fucking_act'
+						end
+					end
+					
+					act'Ask for a break':
+						cla & *nl
+						'"Can''t we just do something else?" you beg. "Just for a little bit? Give my pussy a break?"'
+						'"That doesn''t sound so bad. What were you thinking?"'
+						gs 'sex_ev_foreplay', 'foreplay_choose'
+					end
+				else
+					if npc_caretaker[$boy] = 1:
+						npc_dick_too_big[$boy] = 1
+						'"Sorry," <<$npc_firstname[$boy]>> says, looking truly apologetic. "I know it''s not easy for girls to handle. We can try again another time."'
+						act'Thanks':
+							cla & *nl
+							'"Thanks," you say, smiling gratefully at him. "Yeah... maybe another time..."'
+							gs'sex_ev_after', 'after_sex1'
+						end
+						
+						act'Don''t be sorry':
+							cla & *nl
+							'"Don''t be sorry," you say, shaking your head. "It''s not your fault you''ve got such a big dick. Maybe it''s my fault for having too small a pussy."'
+							'You give him a little smile which he returns.'
+							gs'sex_ev_after', 'after_sex1'
+						end
 					else
-						gs'sex_ev_sex', 'keep_fucking_act'
+						npc_dick_too_big[$boy] = 1
+						'"Damn, my dick''s too big for you?" <<$npc_firstname[$boy]>> asks, smiling smugly when you return an exhausted nod. "Just one of those big dick problems I guess. Okay we''ll try again later."'
+						'He laughs aloud, not seeming to care much that your pussy is sore beyond belief.'
+						act'Finish sex':gs'sex_ev_after', 'after_sex1'
 					end
-				end
-				
-				act'Ask for a break':
-					cla & *nl
-					'"Can''t we just do something else?" you beg. "Just for a little bit? Give my pussy a break?"'
-					'"That doesn''t sound so bad. What were you thinking?"'
-					gs 'sex_ev_foreplay', 'foreplay_choose'
-				end
-			else
-				if npc_caretaker[$boy] = 1:
-					npc_dick_too_big[$boy] = 1
-					'"Sorry," <<$npc_firstname[$boy]>> says, looking truly apologetic. "I know it''s not easy for girls to handle. We can try again another time."'
-					act'Thanks':
+					
+					act'Blow him for a little bit':
 						cla & *nl
-						'"Thanks," you say, smiling gratefully at him. "Yeah... maybe another time..."'
-						gs'sex_ev_after', 'after_sex1'
+						'"I just need a little break," you smile gratefully. "Maybe I can blow you for a little bit and then come back to it?"'
+						'"That sounds great," <<$npc_firstname[$boy]>> smiles back.'
+						act'Blow him':gt 'sex_ev_foreplay', 'bj_sub1'
 					end
 					
-					act'Don''t be sorry':
+					act'We can do other stuff':
 						cla & *nl
-						'"Don''t be sorry," you say, shaking your head. "It''s not your fault you''ve got such a big dick. Maybe it''s my fault for having too small a pussy."'
-						'You give him a little smile which he returns.'
-						gs'sex_ev_after', 'after_sex1'
+						sex_ev['no_sex'] = 1
+						'"We don''t have to stop," you smile. "My pussy can''t take your cock anymore, but we can still do other stuff."'
+						'"Like what?" <<$npc_firstname[$boy]>> smiles back.'
+						if sex_ev['boy_cum'] >= 1: gs'sex_ev_sex', 'reset'
+						gs 'sex_ev_foreplay', 'foreplay_choose'
 					end
-				else
-					npc_dick_too_big[$boy] = 1
-					'"Damn, my dick''s too big for you?" <<$npc_firstname[$boy]>> asks, smiling smugly when you return an exhausted nod. "Just one of those big dick problems I guess. Okay we''ll try again later."'
-					'He laughs aloud, not seeming to care much that your pussy is sore beyond belief.'
-					act'Finish sex':gs'sex_ev_after', 'after_sex1'
-				end
-				
-				act'Blow him for a little bit':
-					cla & *nl
-					'"I just need a little break," you smile gratefully. "Maybe I can blow you for a little bit and then come back to it?"'
-					'"That sounds great," <<$npc_firstname[$boy]>> smiles back.'
-					act'Blow him':gt 'sex_ev_foreplay', 'bj_sub1'
-				end
-				
-				act'We can do other stuff':
-					cla & *nl
-					sex_ev['no_sex'] = 1
-					'"We don''t have to stop," you smile. "My pussy can''t take your cock anymore, but we can still do other stuff."'
-					'"Like what?" <<$npc_firstname[$boy]>> smiles back.'
-					if sex_ev['boy_cum'] >= 1: gs'sex_ev_sex', 'reset'
-					gs 'sex_ev_foreplay', 'foreplay_choose'
 				end
 			end
 		end
@@ -1510,9 +1558,9 @@ if $ARGS[0] = 'kiss':
 end
 
 if $ARGS[0] = 'plan_b':
-	if sex_ev['creampie_count'] > 0 and morning_after_pill > 0 and sex_ev['plan_b'] ! 2 and birth_control['think_safe'] = 0 and sex_ev['angry_after'] = 0 and mesec = 0:
+	if sex_ev['creampie_count'] > 0 and morning_after_pill > 0 and sex_ev['ma_pill'] ! 2 and birth_control['think_safe'] = 0 and sex_ev['angry_after'] = 0 and mesec = 0:
 		act'Take a morning after pill':
-			sex_ev['plan_b'] = 2
+			sex_ev['ma_pill'] = 2
 			cla & *clr
 			$sex_ev['bed_room']
 			if cumloc[0] > 0:

+ 27 - 13
locations/sex_ev_condoms.qsrc

@@ -4,6 +4,8 @@
 !! sex_ev['no_condom'] = 1 - you have agreed not to use condoms today
 !! sex_ev['out_of_condoms'] = 1 - npc has run out of condoms
 !! sex_ev['out_of_condoms'] = 2 - npc has run out of condoms, will use players
+!! npc_bareback[$boy] = 1 - player and npc will never use condoms
+!! npc_bareback[$boy] = 2 - player and npc will only use condoms on days when player is in danger of getting pregnant
 
 if $ARGS[0] = 'setup':
 	if npc_condom_conscious[$boy] > 0 and $sex_ev['loc'] = 'npc_home':
@@ -103,6 +105,14 @@ if $ARGS[0] = 'pc_condom_use_stats':
 	sex_ev['pc_condoms_used'] += 1
 	sex_ev['must_fuck'] = 1
 	prezik -= 1
+	if npc_no_condoms[$boy] > 0: sex_ev['pc_insist_condom'] = 1
+end
+
+if $ARGS[0] = 'npc_condom_use_stats':
+	sex_ev['condoms_used'] += 1
+	sex_ev['must_fuck'] = 1
+	sex_ev['condom'] = 1
+	if npc_no_condoms[$boy] > 0: sex_ev['pc_insist_condom'] = 1
 end
 
 if $ARGS[0] = 'pc_need_condoms':
@@ -130,14 +140,17 @@ end
 
 if $ARGS[0] = 'pc_condoms2':
 	if npc_no_condoms[$boy] = 1:
+		sex_ev['npc_doesnt_want_condoms'] = 1
 		'"Come on," he moans. "Do we have to? I hate condoms."'
 		gs 'sex_ev_condoms', 'no_condom1'
 	elseif rand(1,10) >= 7 and npc_bareback[$boy] ! 2:
+		sex_ev['npc_doesnt_want_condoms'] = 1
 		'"Come on," he moans. "Do we have to use one today?"'
 		gs 'sex_ev_condoms', 'no_condom1'
 	else
 		'<<$npc_firstname[$boy]>> nods and you sigh in relief as he takes it from you, tearing open the package and clumsily rolling the little rubber onto his cock.'
 		gs 'sex_ev_condoms', 'pc_condom_use_stats'
+		if $sex_ev['position'] ! 'miss' or $sex_ev['position'] ! 'doggy' or $sex_ev['position'] ! 'cowgirl': $sex_ev['position'] = 'miss'
 		act'Let <<$npc_firstname[$boy]>> fuck you':gt 'sex_ev_<<$sex_ev[''position'']>>', '<<$sex_ev[''position'']>>_goto'
 	end
 end
@@ -249,6 +262,7 @@ end
 if $ARGS[0] = 'pc_condom_ask3':
 	if rand(1,10) >= 7 and npc_bareback[$boy] ! 2:
 		if sex_ev['condom_count'] > sex_ev['condoms_used']:
+			sex_ev['npc_doesnt_want_condoms'] = 1
 			'"Come on," he moans. "Do we have to use one today?"'
 			gs 'sex_ev_condoms', 'no_condom1'
 		else
@@ -306,7 +320,7 @@ if $ARGS[0] = 'will_morning_after_pill':
 			sex_ev['skip_condom'] = 1
 			sex_ev['no_condom'] = 1
 			sex_ev['must_fuck'] = 1
-			sex_ev['plan_b'] = 1
+			sex_ev['ma_pill'] = 1
 			'"I have a morning after pill," you say. '
 		end
 		
@@ -316,7 +330,7 @@ if $ARGS[0] = 'will_morning_after_pill':
 			sex_ev['skip_condom'] = 1
 			sex_ev['no_condom'] = 1
 			sex_ev['must_fuck'] = 1
-			sex_ev['plan_b'] = 1
+			sex_ev['ma_pill'] = 1
 			'"I have a morning after pill," you say. '
 		end
 	else
@@ -326,17 +340,12 @@ if $ARGS[0] = 'will_morning_after_pill':
 			sex_ev['skip_condom'] = 1
 			sex_ev['no_condom'] = 1
 			sex_ev['must_fuck'] = 1
-			sex_ev['pill_tomorrow'] = 1
+			sex_ev['ma_pill_tomorrow'] = 1
 			'"I''ll buy a pill tomorrow," you say. '
 		end
 	end
 end
 
-if $ARGS[0] = 'npc_condom_use_stats':
-	sex_ev['condoms_used'] += 1
-	sex_ev['must_fuck'] = 1
-	sex_ev['condom'] = 1
-end
 
 if $ARGS[0] = 'npc_condom_use':
 	cla & *clr
@@ -653,6 +662,7 @@ if $ARGS[0] = 'no_condom1':
 			if sex_ev['using_pc_condoms'] = 1 and prezik > 0:
 				'"What the fuck! Why didn''t you say so!" he says, immediately taking the condom from you and clumsily rolling the little rubber onto his cock.'
 				gs 'sex_ev_condoms', 'pc_condom_use_stats'
+				if $sex_ev['position'] ! 'miss' or $sex_ev['position'] ! 'doggy' or $sex_ev['position'] ! 'cowgirl': $sex_ev['position'] = 'miss'
 				act'Let <<$npc_firstname[$boy]>> fuck you':gt 'sex_ev_<<$sex_ev[''position'']>>', '<<$sex_ev[''position'']>>_goto'
 			else
 				'"What the fuck! Why didn''t you say so!" he says, immediately reaching for a condom.'
@@ -660,9 +670,11 @@ if $ARGS[0] = 'no_condom1':
 			end
 		elseif rand(1,10) < 8:
 			sex_ev['condom'] = 1
+			sex_ev['pc_insist_condom'] = 1
 			if sex_ev['using_pc_condoms'] = 1 and prezik > 0:
 				'"Ugh, fine," <<$npc_firstname[$boy]>> grumbles, taking the condom from you and clumsily rolling the little rubber onto his cock.'
 				gs 'sex_ev_condoms', 'pc_condom_use_stats'
+				if $sex_ev['position'] ! 'miss' or $sex_ev['position'] ! 'doggy' or $sex_ev['position'] ! 'cowgirl': $sex_ev['position'] = 'miss'
 				act'Let <<$npc_firstname[$boy]>> fuck you':gt 'sex_ev_<<$sex_ev[''position'']>>', '<<$sex_ev[''position'']>>_goto'
 			else
 				'"Ugh, fine," <<$npc_firstname[$boy]>> grumbles, reaching for a condom.'
@@ -1085,6 +1097,7 @@ end
 
 if $ARGS[0] = 'reenable_condoms2':
 	if npc_no_condoms[$boy] = 1:
+		sex_ev['npc_doesnt_want_condoms'] = 1
 		'"Come on, do we have to use condoms? I''ll pull out if it''s not a safe day, I promise."'
 		act'We need condoms':
 			cla & *clr
@@ -2118,7 +2131,7 @@ if $ARGS[0] = 'virgin_condom_ask3':
 	
 	act'Well... (no condom)':
 		cla & *clr
-		sex_ev['insist_no_condom'] = 1
+		sex_ev['npc_insist_no_condom'] = 1
 		$sex_ev['bed_room']
 		'Once again, the heady feeling of arousal becomes irresistible. You <i>ache</i> to feel him inside you and the thought of even a thin sleeve of rubber separating your cock from your pussy suddenly feels distasteful to you. It''s your first time. You want to feel <i>everything.</i>'
 		*nl
@@ -2149,7 +2162,7 @@ if $ARGS[0] = 'virgin_condom_ask3':
 
 		act'Trust him':
 			cla & *clr
-			sex_ev['insist_no_condom'] = 1
+			sex_ev['npc_insist_no_condom'] = 1
 			$sex_ev['bed_room']
 			'"If you say so..." you say hesitantly. He just smiles back in response. You can''t help but fume just a little bit, feeling like he''s ruined the mood somewhat. But you don''t have much time to think about that as moments later, <<$npc_firstname[$boy]>> takes your virginity.'
 			gs'sex_ev_virgin', 'miss_virg_start'
@@ -2168,6 +2181,7 @@ if $ARGS[0] = 'virgin_condom_ask3':
 					'"Well if you want to use a condom, then you''re gonna have to provide one," he huffs. "Cause I just told you: I don''t use them."'
 					gs 'sex_ev_condoms', 'virgin_npc_doesnt_condom'
 				else
+					sex_ev['pc_insist_condom'] = 1
 					'"Fine, fine," he grumbles, rolling his eyes. You fume for a little bit, feeling like he''s totally ruined the moment while he rolls the rubber onto his cock. A little bit later, he''s back in position between your legs. A moment after that, he takes your virginity.'
 					gs 'sex_ev_condoms', 'npc_condom_use_stats'
 					gs'sex_ev_virgin', 'miss_virg_start'
@@ -2176,7 +2190,7 @@ if $ARGS[0] = 'virgin_condom_ask3':
 
 			act'Trust him':
 				sex_ev['promise_no_creampie'] = 1
-				sex_ev['insist_no_condom'] = 1
+				sex_ev['npc_insist_no_condom'] = 1
 				cla & *clr
 				$sex_ev['bed_room']
 				'"If you say so," you sigh. "But you <i>absolutely cannot</i> cum inside me, alright?"'
@@ -2250,7 +2264,7 @@ end
 if $ARGS[0] = 'virgin_condom2':
 	if morning_after_pill > 0:
 		act'Have a morning after pill':
-			sex_ev['plan_b'] = 1
+			sex_ev['ma_pill'] = 1
 			cla & *nl
 			'"Besides," you look pointedly at your bag. "I have a morning after pill."'
 			'<<$npc_firstname[$boy]>> raises an eyebrow back at you.'
@@ -2298,7 +2312,7 @@ if $ARGS[0] = 'virgin_condom2':
 		end
 	else
 		act'Buy a morning after pill':
-			sex_ev['pill_tomorrow'] = 1
+			sex_ev['ma_pill_tomorrow'] = 1
 			cla & *nl
 			'"Besides, something bad happens I can get a morning after pill," you promise. "I might even get one regardless, just to be safe."'
 			gs 'sex_ev_condoms', 'virgin_condom3'

+ 4 - 3
locations/sex_ev_cowgirl.qsrc

@@ -72,7 +72,7 @@ if $ARGS[0] = 'cowgirl_girl_orgasm_continue':
 	act'Continue':
 		cla & *clr
 		sex_ev['cock_inserted'] = 1
-		gs'sex_ev_sex', 'speed_select'
+!!		gs'sex_ev_sex', 'speed_select'
 		'<center><video autoplay loop src="images/shared/sex/vag/cowgirl/slow1.mp4"></video></center>'
 		if $sex_ev['position'] = 'miss':
 			!! IMAGE HERE
@@ -84,11 +84,12 @@ if $ARGS[0] = 'cowgirl_girl_orgasm_continue':
 			!! IMAGE HERE
 			'You''ve barely finished your orgasm when he begins moving his hips again underneath you. You mew in protest, hypersensitive to every movement of his cock inside your still-quivering pussy. At his insistence, you start moving your hips again.'
 		end
-		act'Ride him gently':gt 'sex_ev_cowgirl', 'cowgirl1'
+		act'Keep going':gt 'sex_ev_cowgirl', 'cowgirl<<sex_ev[''speed'']>>.2'
+!!{		act'Ride him gently':gt 'sex_ev_cowgirl', 'cowgirl1'
 
 		act'Ride him steadily':gt 'sex_ev_cowgirl', 'cowgirl2'
 
-		act'Ride him hard':gt 'sex_ev_cowgirl', 'cowgirl3'
+		act'Ride him hard':gt 'sex_ev_cowgirl', 'cowgirl3'}
 	end
 end
 

+ 38 - 37
locations/sex_ev_cum.qsrc

@@ -284,11 +284,13 @@ if $ARGS[0] = 'fuck_cum_random':
 		sex_ev['cum_where'] = 1
 	elseif sex_ev['cum_choice'] > 1:
 		$sex_ev['cum_choice'] = $npc_cum_pref[$boy]
-		if $sex_ev['cum_choice'] = 'creampie':
-			if (npc_free_creampies[$boy] = 1 and (sex_ev['safe_day'] = 1 or sex_ev['probably_safe_day'] = 1)) or npc_free_creampies[$boy] = 2 or sex_ev['creampie_allowance'] = 1:
-				sex_ev['cum_warn'] = 0
-				$sex_ev['cum_choice'] = 'creampie_surprise'
-			end
+		
+		if $sex_ev['cum_choice'] = 'creampie' and ((npc_free_creampies[$boy] = 1 and (sex_ev['safe_day'] = 1 or sex_ev['probably_safe_day'] = 1)) or npc_free_creampies[$boy] = 2 or sex_ev['creampie_allowance'] = 1):
+			sex_ev['cum_warn'] = 0
+			$sex_ev['cum_choice'] = 'creampie_surprise'
+		elseif sex_ev['no_condom'] ! 1 and $sex_ev['cum_choice'] = 'creampie':
+			sex_ev['cum_warn'] = 1
+			$sex_ev['cum_choice'] = ''
 		end
 	else
 		!! boy will cum where he wants without asking
@@ -312,8 +314,10 @@ if $ARGS[0] = 'random_cum_choice':
 		if (npc_free_creampies[$boy] = 1 and (sex_ev['safe_day'] = 1 or sex_ev['probably_safe_day'] = 1)) or npc_free_creampies[$boy] = 2 or sex_ev['creampie_allowance'] = 1:
 			sex_ev['cum_warn'] = 0
 			$sex_ev['cum_choice'] = 'creampie_surprise'
-		else
+		elseif sex_ev['no_condom'] = 1:
 			$sex_ev['cum_choice'] = 'creampie'
+		else
+			sex_ev['cum_warn'] = 1
 		end
 	elseif rand(1,4) = 1:
 		$sex_ev['cum_choice'] = 'mouth'
@@ -586,10 +590,10 @@ if $ARGS[0] = 'cum_his_choice':
 		if $npc_cum_pref[$boy] = 'creampie':
 			gt'sex_ev_cum', 'creampie_surprise'
 		elseif $npc_cum_pref[$boy] = 'mouth':
-			sex_ev['mouth_cum'] += 1
+			sex_ev['mouth_cum_count'] += 1
 			gs'sex_ev_cum', 'cum_mouth'
 		elseif $npc_cum_pref[$boy] = 'face':
-			sex_ev['facial'] += 1
+			sex_ev['facial_count'] += 1
 			gs'sex_ev_cum', 'cum_facial'
 		elseif $npc_cum_pref[$boy] = 'tits':
 			sex_ev['tit_cum'] += 1
@@ -604,10 +608,10 @@ if $ARGS[0] = 'cum_his_choice':
 		if $npc_cum_pref[$boy] = 'creampie':
 			gt'sex_ev_cum', 'creampie_surprise'
 		elseif $npc_cum_pref[$boy] = 'mouth':
-			sex_ev['mouth_cum'] += 1
+			sex_ev['mouth_cum_count'] += 1
 			gs'sex_ev_cum', 'cum_mouth'
 		elseif $npc_cum_pref[$boy] = 'face':
-			sex_ev['facial'] += 1
+			sex_ev['facial_count'] += 1
 			gs'sex_ev_cum', 'cum_facial'
 		elseif $npc_cum_pref[$boy] = 'tits':
 			sex_ev['tit_cum'] += 1
@@ -628,10 +632,10 @@ if $ARGS[0] = 'cum_his_choice2':
 		if $npc_cum_pref[$boy] = 'creampie' and (npc_childfree[$boy] ! 1 or npc_know_bc[$boy] = 1):
 			gt'sex_ev_cum', 'creampie_surprise'
 		elseif $npc_cum_pref[$boy] = 'mouth':
-			sex_ev['mouth_cum'] += 1
+			sex_ev['mouth_cum_count'] += 1
 			gs'sex_ev_cum', 'cum_mouth'
 		elseif $npc_cum_pref[$boy] = 'face':
-			sex_ev['facial'] += 1
+			sex_ev['facial_count'] += 1
 			gs'sex_ev_cum', 'facial_he_jerks'
 		elseif $npc_cum_pref[$boy] = 'tits':
 			sex_ev['tit_cum'] += 1
@@ -674,10 +678,10 @@ if $ARGS[0] = 'cum_wherever':
 		if $npc_cum_pref[$boy] = 'creampie':
 			gt'sex_ev_cum', 'creampie_surprise'
 		elseif $npc_cum_pref[$boy] = 'mouth':
-			sex_ev['mouth_cum'] += 1
+			sex_ev['mouth_cum_count'] += 1
 			gs'sex_ev_cum', 'cum_mouth'
 		elseif $npc_cum_pref[$boy] = 'face':
-			sex_ev['facial'] += 1
+			sex_ev['facial_count'] += 1
 			gs'sex_ev_cum', 'facial_he_jerks'
 		elseif $npc_cum_pref[$boy] = 'tits':
 			sex_ev['tit_cum'] += 1
@@ -735,7 +739,7 @@ if $ARGS[0] = 'cum_facial':
 	$sex_ev['cum_choice'] = 'facial'
 	$sex_ev['last_cum'] = 'facial'
 	sex_ev['cum_face'] += 1
-	sex_ev['facial'] += 1
+	sex_ev['facial_count'] += 1
 !!{	if sex_ev['position'] = 'miss' and npc_cum_cannon[[$boy] = 1:
 		
 	else}
@@ -776,7 +780,7 @@ end
 if $ARGS[0] = 'facial_jerk_him':
 	sex_ev['cock_inserted'] = 0
 	sex_ev['cum_face'] += 1
-	sex_ev['facial'] += 1
+	sex_ev['facial_count'] += 1
 	sex_ev['pc_facial_jerk'] += 1
 	$sex_ev['last_cum'] = 'facial'
 	if sex_ev['he_ask_creampie'] = 1:
@@ -1495,13 +1499,6 @@ if $ARGS[0] = 'cum_inside':
 				gs'sex_ev_reactions', 'react_menu'
 			end
 			
-			act'Tolerate it (disgust)':
-				cla & *nl
-				'You stay there, trying not to squirm in discomfort, feeling <<$npc_firstname[$boy]>>''s spunk fill your womb. Despite your disgust, you don''t move, waiting until you no longer feel him twitching inside you.'
-				gs 'sex_ev_cum', 'cum_inside_pull_away'
-				gs'sex_ev_reactions', 'react_menu'
-			end
-			
 			act'Come with him':
 				cla & *clr
 				'<center><video autoplay loop src="images/shared/sex/vag/doggy/orgasm2.mp4"></video></center>'
@@ -1515,6 +1512,13 @@ if $ARGS[0] = 'cum_inside':
 				gs 'sex_ev_cum', 'cum_inside_pull_away'
 				gs'sex_ev_reactions', 'react_menu'
 			end
+			
+			act'Tolerate it (disgust)':
+				cla & *nl
+				'You stay there, trying not to squirm in discomfort, feeling <<$npc_firstname[$boy]>>''s spunk fill your womb. Despite your disgust, you don''t move, waiting until you no longer feel him twitching inside you.'
+				gs 'sex_ev_cum', 'cum_inside_pull_away'
+				gs'sex_ev_reactions', 'react_menu'
+			end
 		end
 	elseif $sex_ev['position'] = 'cowgirl':
 		'<center><video autoplay loop src="images/shared/sex/cum/vagcreampie/cumvaginal.mp4"></video></center>'
@@ -1524,6 +1528,7 @@ if $ARGS[0] = 'cum_inside':
 				gs 'sex_ev_sex', 'fuck_arousal_cum_code'
 				gs'stat'
 				sex_ev['orgasm_count'] += 1
+				sex_ev['simultaneous_orgasm_count'] += 1
 				sex_ev['came_together'] = 2
 				'You drop your hips, impaling yourself on <<$npc_firstname[$boy]>>''s cock. He thrusts his hips upward, driving himself deep inside you and you feel cum spurt out inside you. The sensation pushes you over the edge, causing your pussy to clamp down onto his cock even more and your body to spasm uncontrollably. The two of come together, holding each other tight, both of your orgasms fuelling the other''s. After some time, your orgasm fades, leaving both of you panting.'
 				gs 'sex_ev_cum', 'cum_inside_pull_away'
@@ -1570,13 +1575,6 @@ if $ARGS[0] = 'cum_inside':
 					gs'sex_ev_reactions', 'react_menu'
 				end
 				
-				act'Tolerate it (disgust)':
-					cla & *nl
-					'You stay there, trying not to squirm in discomfort, feeling <<$npc_firstname[$boy]>>''s spunk fill your womb. Despite your disgust, you don''t move, waiting until you no longer feel him twitching inside you.'
-					gs 'sex_ev_cum', 'cum_inside_pull_away'
-					gs'sex_ev_reactions', 'react_menu'
-				end
-				
 				act'Come with him':
 					cla & *clr
 					'<center><video autoplay loop src="images/shared/sex/vag/cowgirl/orgasm1.mp4"></video></center>'
@@ -1590,6 +1588,13 @@ if $ARGS[0] = 'cum_inside':
 					gs 'sex_ev_cum', 'cum_inside_pull_away'
 					gs'sex_ev_reactions', 'react_menu'
 				end
+				
+				act'Tolerate it (disgust)':
+					cla & *nl
+					'You stay there, trying not to squirm in discomfort, feeling <<$npc_firstname[$boy]>>''s spunk fill your womb. Despite your disgust, you don''t move, waiting until you no longer feel him twitching inside you.'
+					gs 'sex_ev_cum', 'cum_inside_pull_away'
+					gs'sex_ev_reactions', 'react_menu'
+				end
 			end
 		end
 	end
@@ -1869,7 +1874,7 @@ if $ARGS[0] = 'cum_pullout':
 				end
 			end
 		elseif $sex_ev['position'] = 'cowgirl':
-			if sex_ev['not_inside'] = 1:
+			if sex_ev['not_inside'] = 1 or sex_ev['condom'] = 1:
 				gs'cum_call', 'stomach',$boy,1
 				sex_ev['cum_stomach'] += 1
 				$sex_ev['cum_describe2'] = 'looking at the white liquid glazing your stomach'
@@ -1888,11 +1893,7 @@ if $ARGS[0] = 'cum_pullout':
 				sex_ev['cum_ass'] += 1
 				$sex_ev['cum_describe2'] = 'looking at the white liquid glazing your stomach'
 				'<center><img <<$set_imgh>> src="images/shared/sex/cum/cum4.jpg"></center>'
-				if sex_ev['condom'] = 1:
-					'<<$npc_firstname[$boy]>> suddenly pushes you backwards, eliciting a yelp as you fall onto your back, his cock popping out from your pussy along the way. He rips the condom off his cock and moments later, he ejaculates, sending cum spattering across your belly.'
-				else
-					'"Oh fuck!" <<$npc_firstname[$boy]>> grunts, his cock slipping from your pussy and sliding up between your ass cheeks. You reach around to put it back in when you feel something hot and wet spattering across your ass and back.'
-				end
+				'"Oh fuck!" <<$npc_firstname[$boy]>> grunts, his cock slipping from your pussy and sliding up between your ass cheeks. You reach around to put it back in when you feel something hot and wet spattering across your ass and back.'
 			end
 		end
 	end
@@ -2085,7 +2086,7 @@ if $ARGS[0] = 'what_now':
 			cla & *clr
 			'<center><video autoplay loop src="images/shared/sex/misc/wait.mp4"></video></center>'
 			if daystage >= 3:
-				if sex_ev['plan_b'] = 1:
+				if sex_ev['ma_pill'] = 1:
 					'"Well if I''m already going to take a pill tomorrow, I guess there''s no point in telling you not to come inside me tonight," you say. "Come wherever you want."'
 				else
 					'"Well I''m already full of cum so I guess there''s no point in telling you not to come inside me tonight," you say. "Come wherever you want."'

+ 6 - 6
locations/sex_ev_favorite_part.qsrc

@@ -60,9 +60,9 @@ end
 if $ARGS[0] = 'good_for_you2':
 	if $npc_cum_pref[$boy] = 'creampie' and sex_ev['creampie_count'] > 0:
 		gs'sex_ev_favorite_part', 'creampie_favorite'
-	elseif $npc_cum_pref[$boy] = 'mouth' and sex_ev['mouth_cum'] > 0:
+	elseif $npc_cum_pref[$boy] = 'mouth' and sex_ev['mouth_cum_count'] > 0:
 		gs'sex_ev_favorite_part', 'cum_mouth_favorite'
-	elseif $npc_cum_pref[$boy] = 'facial' and sex_ev['facial'] > 0:
+	elseif $npc_cum_pref[$boy] = 'facial' and sex_ev['facial_count'] > 0:
 		gs'sex_ev_favorite_part', 'facial_favorite'
 	elseif $npc_cum_pref[$boy] = 'tits' and sex_ev['tit_cum'] > 0:
 		gs'sex_ev_favorite_part', 'tit_cum_favorite'
@@ -1388,8 +1388,8 @@ if $ARGS[0] = 'pc_creampie_fav1':
 		act'When you came inside':
 			cla & *clr
 			'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk1.jpg"></center>'
-			if $sex_ev['boy_favorite'] = 'creampie' and npc_free_creampies[$boy] < 1 and sex_ev['surprise_creampie_count'] > 0:
-				if npc_know_not_bc[$boy] = 1:
+			if $sex_ev['boy_favorite'] = 'creampie' and npc_free_creampies[$boy] < 1 and sex_ev['surprise_creampie_count'] > 0  and npc_ask_creampie[$boy] > 0:
+				if npc_know_not_bc[$boy] = 1 and birth_control['think_safe'] ! 1:
 					'"I... liked it when you came inside me," you admit, quickly holding up your finger before <<$npc_firstname[$boy]>> can say anything. "But you still need to ask before you do it! You know I''m not on birth control so it''s extra important!"'
 				elseif birth_control['think_safe'] ! 1:
 					gs'sex_ev_stats', 'no_birth_control_know'
@@ -1420,7 +1420,7 @@ if $ARGS[0] = 'pc_creampie_fav1':
 end
 
 if $ARGS[0] = 'pc_mouthcum_fav1':
-	if sex_ev['mouth_cum'] > 0:
+	if sex_ev['mouth_cum_count'] > 0:
 		act'When you came in my mouth':
 			cla & *clr
 			'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk1.jpg"></center>'
@@ -1475,7 +1475,7 @@ if $ARGS[0] = 'pc_mouthcum_fav1':
 end
 
 if $ARGS[0] = 'pc_facial_fav1':
-	if sex_ev['facial'] > 0:
+	if sex_ev['facial_count'] > 0:
 		if sex_ev['disgusting_facial'] = 0:
 			act'When you cumshot me':
 				cla & *clr

+ 27 - 21
locations/sex_ev_foreplay.qsrc

@@ -17,6 +17,7 @@ if $ARGS[0] = 'undress':
 end
 
 if $ARGS[0] = 'bed_start':
+	sex_ev['start_time'] = totminut
 	!! $sex_ev['bed_room']
 	if rand(0,1) = 1:
 		!! he wins initiative
@@ -146,9 +147,11 @@ if $ARGS[0] = 'selfish_fuck_start':
 	sex_ev['position_rand'] = rand(1,3)
 	sex_ev['must_fuck'] = 1
 	gs 'sex_ev_sex', 'speed_select'
+	cla & *clr
 	if npc_bareback[$boy] > 0 or sex_ev['no_condom'] = 1 or (npc_condom_conscious[$boy] = 0 and rand(1,2) = 1):
 		if $npc_fav_pos[$boy] = 'miss' or sex_ev['position_rand'] = 1:
 			$sex_ev['position'] = 'miss'
+			'<center><img <<$set_imgh>> src="images/shared/sex/foreplay/miss3.jpg"></center>'
 			'<<$npc_firstname[$boy]>> pushes you down on the bed and spreads your legs, preparing to thrust between them.'
 			if stat['think_virgin'] = 1 and sex_ev['fuck_count'] = 0:
 				act'Stop him (virgin)':$sex_ev['position'] = 'miss' & gt'sex_ev_virgin', 'lover_wait'
@@ -159,10 +162,12 @@ if $ARGS[0] = 'selfish_fuck_start':
 			gs 'sex_ev_condoms', 'condom_wait'
 		elseif stat['think_virgin'] = 0 or sex_ev['fuck_count'] > 0:
 			if $npc_fav_pos[$boy] = 'doggy' or sex_ev['position_rand'] = 2:
-				$sex_ev['position'] = 'cowgirl'
+				$sex_ev['position'] = 'doggy'
+				'<center><img <<$set_imgh>> src="images/shared/sex/foreplay/doggy1.jpg"></center>'
 				'<<$npc_firstname[$boy]>> pushes you down on the bed and draws you up to your knees, preparing to thrust into you from behind.'
 			elseif $npc_fav_pos[$boy] = 'cowgirl' or sex_ev['position_rand'] = 3:
 				$sex_ev['position'] = 'cowgirl'
+				'<center><img <<$set_imgh>> src="images/shared/sex/foreplay/cowgirl1.jpg"></center>'
 				'<<$npc_firstname[$boy]>> drags you down on the bed with him, pulling you up so you''re straddling him to ride his cock.'
 			end
 			act'Let <<$npc_firstname[$boy]>> fuck you':gt 'sex_ev_<<$sex_ev[''position'']>>', '<<$sex_ev[''position'']>>_goto'
@@ -173,9 +178,10 @@ if $ARGS[0] = 'selfish_fuck_start':
 		end
 	else
 		if npc_condom_conscious[$boy] > 0 or (sex_ev['condom_count'] > 0 and (rand(0,1) = 1 or npc_always_condoms[$boy] = 1)):
+			'<center><img <<$set_imgh>> src="images/shared/sex/cock/condom1.jpg"></center>'
 			if $npc_fav_pos[$boy] = 'miss' or sex_ev['position_rand'] = 1:
 				$sex_ev['position'] = 'miss'
-				'<<$npc_firstname[$boy]>> pushes you down on the bed and spreads your legs.'
+				'<<$npc_firstname[$boy]>> pushes you down on the bed and spreads your legs, pausing only to grab a condom and roll it onto his cock.'
 				if stat['think_virgin'] = 1 and sex_ev['fuck_count'] = 0:
 					act'Stop him (virgin)':$sex_ev['position'] = 'miss' & gt'sex_ev_virgin', 'lover_wait'
 					act'Let him take your virginity':gs'sex_ev_virgin', 'start3'
@@ -185,21 +191,16 @@ if $ARGS[0] = 'selfish_fuck_start':
 				gs 'sex_ev_condoms', 'temp_disable_condoms'
 				if $sex_ev['type'] ! 'hookup': gs 'sex_ev_condoms', 'disable_condoms'
 			elseif stat['think_virgin'] = 0 or sex_ev['fuck_count'] > 0:
-				act'Continue':
-					cla & *clr
-					'<center><img <<$set_imgh>> src="images/shared/sex/cock/condom1.jpg"></center>'
-					if $npc_fav_pos[$boy] = 'doggy' or sex_ev['position_rand'] = 2:
-						$sex_ev['position'] = 'doggy'
-						'<<$npc_firstname[$boy]>> pushes you down on the bed and draws you up to your knees, preparing to thrust into you from behind.'
-					elseif $npc_fav_pos[$boy] = 'cowgirl' or sex_ev['position_rand'] = 3:
-						$sex_ev['position'] = 'cowgirl'
-						'<<$npc_firstname[$boy]>> drags you down on the bed with him, pulling you up so you''re straddling him to ride his cock.'
-					end
-					'"I''m going to fuck you silly," he growls as he tears open a condom and starts rolling it onto his cock.'
-					act'Let <<$npc_firstname[$boy]>> fuck you':gs 'sex_ev_condoms', 'npc_condom_use_stats' & gt 'sex_ev_<<$sex_ev[''position'']>>', '<<$sex_ev[''position'']>>_goto'
-					gs 'sex_ev_condoms', 'temp_disable_condoms'
-					if $sex_ev['type'] ! 'hookup': gs 'sex_ev_condoms', 'disable_condoms'
+				if $npc_fav_pos[$boy] = 'doggy' or sex_ev['position_rand'] = 2:
+					$sex_ev['position'] = 'doggy'
+					'<<$npc_firstname[$boy]>> pushes you down on the bed and draws you up to your knees, preparing to thrust into you from behind.'
+				elseif $npc_fav_pos[$boy] = 'cowgirl' or sex_ev['position_rand'] = 3:
+					$sex_ev['position'] = 'cowgirl'
+					'<<$npc_firstname[$boy]>> drags you down on the bed with him, pulling you up so you''re straddling him to ride his cock.'
 				end
+				'"I''m going to fuck you silly," he growls as he tears open a condom and starts rolling it onto his cock.'
+				act'Let <<$npc_firstname[$boy]>> fuck you':gs 'sex_ev_condoms', 'npc_condom_use_stats' & gt 'sex_ev_<<$sex_ev[''position'']>>', '<<$sex_ev[''position'']>>_goto'
+				gs 'sex_ev_condoms', 'temp_disable_condoms'
 			else
 				gs 'sex_ev_sex', 'rand_position'
 				gs 'sex_ev_foreplay', 'selfish_fuck_start'
@@ -544,23 +545,28 @@ if $ARGS[0] = 'nipple_play':
 	$sex_ev['position'] = 'nipple_play'
 	'<<$npc_firstname[$boy]>> leans forward, grabbing ahold of your breasts with his hands and uses his mouth on your nipples. He sucks them up, flicks at the tips with his tongue, sending electricity flying through them. Heat spreads through your hips and you can feel wetness pooling between your thighs.'
 	act'Continue':
-		cla & *nl
+		
 		if rand(0,1) = 1 and kuni_no[$boy] ! 1 and (mesec = 0 or npc_pussyeater_know[$boy] = 1) and sex_ev['sensitive_cuni'] ! 1:
+			cla & *nl
 			'After a few minutes, <<$npc_firstname[$boy]>> pulls back from your chest and pushes you down, beginning to move between your legs to eat you out.'
 			gs 'sex_ev_foreplay', 'kuni_start'
 		else
+			cla & *clr
+			'<center><img <<$set_imgh>> src="images/shared/sex/foreplay/miss3.jpg"></center>'
 			sex_ev['position_choose'] = 1
 			'After a few minutes, <<$npc_firstname[$boy]>> pulls back from your chest and pushes you down, climbing on top of you with his rock hard cock between your legs.'
 			$sex_ev['position'] = 'miss'
-			'<<$npc_firstname[$boy]>> pushes you down on the bed and spreads your legs.'
 			if stat['think_virgin'] = 1 and sex_ev['fuck_count'] = 0:
 				act'Stop him (virgin)':$sex_ev['position'] = 'miss' & gt'sex_ev_virgin', 'lover_wait'
 				act'Let him take your virginity':gs'sex_ev_virgin', 'start3'
-			else
+			elseif sex_ev['condom'] ! 0 or sex_ev['no_condom'] ! 0:
 				act'Let <<$npc_firstname[$boy]>> fuck you':gs 'sex_ev_condoms', 'npc_condom_use_stats' & gt 'sex_ev_<<$sex_ev[''position'']>>', '<<$sex_ev[''position'']>>_goto'
+			else
+				gs 'sex_ev_condoms', 'condoms'
 			end
-			gs 'sex_ev_condoms', 'temp_disable_condoms'
-			if $sex_ev['type'] ! 'hookup': gs 'sex_ev_condoms', 'disable_condoms'
+			
+!!			gs 'sex_ev_condoms', 'temp_disable_condoms'
+!!			if $sex_ev['type'] ! 'hookup': gs 'sex_ev_condoms', 'disable_condoms'
 		end
 	end
 end

+ 1 - 1
locations/sex_ev_foreplay_desc.qsrc

@@ -69,7 +69,7 @@ if $ARGS[0] = 'transition1_desc':
 	if $sex_ev['loc'] = 'player home':
 		'You pant tiredly, laying back on your bed as your orgasm slowly winds down. Suddenly <<$npc_firstname[$boy]>>''s cock enters your view, dangling above your head, and he bends over you, trying to push it into your panting mouth.'
 	elseif $sex_ev['loc'] = 'npc_home':
-		$sex_ev['bed_room']
+!!		$sex_ev['bed_room']
 		'You pant tiredly, laying back on <<$npc_firstname[$boy]>>''s bed as your orgasm slowly winds down. Suddenly <<$npc_firstname[$boy]>>''s cock enters your view, dangling above your head, and he bends over you, trying to push it into your panting mouth.'
 	else
 		'You pant tiredly, laying back on the bed as your orgasm slowly winds down. Suddenly <<$npc_firstname[$boy]>>''s cock enters your view, dangling above your head, and he bends over you, trying to push it into your panting mouth.'

+ 113 - 47
locations/sex_ev_leave.qsrc

@@ -907,6 +907,10 @@ if $ARGS[0] = 'dressing2':
 		gs'sex_ev_leave', 'dressing_finish'
 	end
 	act'Talk while you dress':cla & gs'sex_ev_leave', 'dress_talk'
+	if sex_ev['ma_pill_money'] = 0 and npc_pay_for_ma_pill[$boy] = 1 and sex_ev['creampie_count'] > 0:
+		cla
+		act'Continue':cla & gs'sex_ev_leave', 'money_for_ma_pill'
+	end
 end
 
 if $ARGS[0] = 'dressing_finish':
@@ -1257,10 +1261,18 @@ if $ARGS[0] = 'panty_gift2':
 		if npc_girlfriend[$boy] = 1 and npc_fidelity[$boy] = 6:
 			if pc_know_npc_has_girlfriend[$boy] = 0: pc_know_npc_has_girlfriend[$boy] = 1
 			'"And what am I supposed to do with these when my girlfriend comes home?" he asks, looking at them amusedly.'
-			gs 'sex_ev_leave', 'panty_gift_girlfriend'
+			if $sex_ev['type'] = 'hookup':
+				gs 'sex_ev_hookup_leave', 'panty_gift_girlfriend'
+			else
+				gs 'sex_ev_leave', 'panty_gift_girlfriend'
+			end
 		else
 			'<<$npc_firstname[$boy]>> doesn''t reply, but his expression says that he isn''t displeased.'
-			gs 'sex_ev_leave', 'dressing2'
+			if $sex_ev['type'] = 'hookup':
+				gs 'sex_ev_hookup_leave', 'later'
+			else
+				gs 'sex_ev_leave', 'dressing2'
+			end
 		end
 	end
 	
@@ -1275,10 +1287,18 @@ if $ARGS[0] = 'panty_gift2':
 		if npc_girlfriend[$boy] = 1 and npc_fidelity[$boy] = 6:
 			if pc_know_npc_has_girlfriend[$boy] = 0: pc_know_npc_has_girlfriend[$boy] = 1
 			'"And what am I supposed to do with these when my girlfriend comes home?" he asks, looking at them amusedly.'
-			gs 'sex_ev_leave', 'panty_gift_girlfriend'
+			if $sex_ev['type'] = 'hookup':
+				gs 'sex_ev_hookup_leave', 'panty_gift_girlfriend'
+			else
+				gs 'sex_ev_leave', 'panty_gift_girlfriend'
+			end
 		else
 			'"Maybe I should frame it," <<$npc_firstname[$boy]>> snickers.'
-			gs 'sex_ev_leave', 'dressing2'
+			if $sex_ev['type'] = 'hookup':
+				gs 'sex_ev_hookup_leave', 'later'
+			else
+				gs 'sex_ev_leave', 'dressing2'
+			end
 		end
 	end
 	
@@ -1289,10 +1309,18 @@ if $ARGS[0] = 'panty_gift2':
 		if npc_girlfriend[$boy] = 1 and npc_fidelity[$boy] = 6:
 			if pc_know_npc_has_girlfriend[$boy] = 0: pc_know_npc_has_girlfriend[$boy] = 1
 			'"And what am I supposed to do with these when my girlfriend comes home?" he asks, looking at them amusedly.'
-			gs 'sex_ev_leave', 'panty_gift_girlfriend'
+			if $sex_ev['type'] = 'hookup':
+				gs 'sex_ev_hookup_leave', 'panty_gift_girlfriend'
+			else
+				gs 'sex_ev_leave', 'panty_gift_girlfriend'
+			end
 		else
 			'<<$npc_firstname[$boy]>> doesn''t reply, but his expression says that he isn''t displeased.'
-			gs 'sex_ev_leave', 'dressing2'
+			if $sex_ev['type'] = 'hookup':
+				gs 'sex_ev_hookup_leave', 'later'
+			else
+				gs 'sex_ev_leave', 'dressing2'
+			end
 		end
 	end
 	
@@ -1304,10 +1332,18 @@ if $ARGS[0] = 'panty_gift2':
 			if npc_girlfriend[$boy] = 1 and npc_fidelity[$boy] = 6:
 				if pc_know_npc_has_girlfriend[$boy] = 0: pc_know_npc_has_girlfriend[$boy] = 1
 				'"And what am I supposed to do with these when my girlfriend comes home?" he asks, looking at them amusedly.'
-				gs 'sex_ev_leave', 'panty_gift_girlfriend'
+				if $sex_ev['type'] = 'hookup':
+					gs 'sex_ev_hookup_leave', 'panty_gift_girlfriend'
+				else
+					gs 'sex_ev_leave', 'panty_gift_girlfriend'
+				end
 			else
 				'<<$npc_firstname[$boy]>> doesn''t reply, but his expression says that he isn''t displeased.'
-				gs 'sex_ev_leave', 'dressing2'
+				if $sex_ev['type'] = 'hookup':
+					gs 'sex_ev_hookup_leave', 'later'
+				else
+					gs 'sex_ev_leave', 'dressing2'
+				end
 			end
 		end
 	end
@@ -1320,10 +1356,18 @@ if $ARGS[0] = 'panty_gift2':
 			if npc_girlfriend[$boy] = 1:
 				if pc_know_npc_has_girlfriend[$boy] = 0: pc_know_npc_has_girlfriend[$boy] = 1
 				'"And what am I supposed to do with these when my girlfriend comes home?" he asks, looking at them amusedly.'
-				gs 'sex_ev_hookup_leave', 'panty_gift_girlfriend'
+				if $sex_ev['type'] = 'hookup':
+					gs 'sex_ev_hookup_leave', 'panty_gift_girlfriend'
+				else
+					gs 'sex_ev_leave', 'panty_gift_girlfriend'
+				end
 			else
 				'<<$npc_firstname[$boy]>> doesn''t say anything in response, but given the lustful glint in his eyes, he seems pretty pleased.'
-				gs 'sex_ev_hookup_leave', 'later'
+				if $sex_ev['type'] = 'hookup':
+					gs 'sex_ev_hookup_leave', 'later'
+				else
+					gs 'sex_ev_leave', 'dressing2'
+				end
 			end
 		end
 		
@@ -1338,10 +1382,18 @@ if $ARGS[0] = 'panty_gift2':
 			if npc_girlfriend[$boy] = 1:
 				if pc_know_npc_has_girlfriend[$boy] = 0: pc_know_npc_has_girlfriend[$boy] = 1
 				'"And what am I supposed to do with these when my girlfriend comes home?" he asks, looking at them amusedly.'
-				gs 'sex_ev_hookup_leave', 'panty_gift_girlfriend'
+				if $sex_ev['type'] = 'hookup':
+					gs 'sex_ev_hookup_leave', 'panty_gift_girlfriend'
+				else
+					gs 'sex_ev_leave', 'panty_gift_girlfriend'
+				end
 			else
 				'<<$npc_firstname[$boy]>> doesn''t say anything in response, but given the lustful glint in his eyes, he seems pretty pleased.'
-				gs 'sex_ev_hookup_leave', 'later'
+				if $sex_ev['type'] = 'hookup':
+					gs 'sex_ev_hookup_leave', 'later'
+				else
+					gs 'sex_ev_leave', 'dressing2'
+				end
 			end
 		end
 		
@@ -1516,7 +1568,6 @@ end
 if $ARGS[0] = 'dress_talk_boy':
 
 	if $sex_ev['type'] ! 'hookup':
-		gs 'sex_ev_leave', 'npc_sex_ev_invite'
 
 		if sex_ev['dress_talk2'] = 0:
 			'"What''re you up to later?"'
@@ -1560,6 +1611,7 @@ if $ARGS[0] = 'dress_talk_boy':
 
 
 		end
+		gs 'sex_ev_leave', 'npc_sex_ev_invite'
 	end
 end
 
@@ -1663,7 +1715,7 @@ end
 
 if $ARGS[0] = 'walk_funny':
 	if sex_ev['fuck_count'] > 5 and $sex_ev['walk_funny_talk'] = '' and pain['vaginal'] > 10:
-		if hour >= 20: 
+		if hour < 16: 
 			$sex_ev['walk_funny_day'] = 'day'
 		else
 			$sex_ev['walk_funny_day'] = 'day tomorrow'
@@ -2065,44 +2117,47 @@ if $ARGS[0] = 'pc_sex_ev_invite_denied':
 end
 
 if $ARGS[0] = 'npc_sex_ev_invite':
+	cla
 	if (rand(1,10) < npc_sexdrive[$boy] or rand(1,200) < npc_rel[$boy]) and sex_ev['plans_later_talk'] = 0:
-		gs 'sex_ev_leave', 'dress_loop'
-		sex_ev['plans_later_talk'] = 1
-		if npc_day_off[$boy] = week + 1 or (week = 7 and npc_day_off[$boy] = 1):
-			sex_ev['invite_tomorrow'] = 1
-			if npc_girlfriend[$boy] = 1 and npc_fidelity[$boy] = 6:
-				pc_know_npc_has_girlfriend[$boy] = 1
-				'"You busy tomorrow?" <<$npc_firstname[$boy]>> asks as you''re <<$sex_ev[''dress_describe'']>>. "It''ll be my day off and my girlfriend won''t be around. Want to come over and do this again?"'
-			else
-				'"You busy tomorrow?" <<$npc_firstname[$boy]>> asks as you''re <<$sex_ev[''dress_describe'']>>. "It''ll be my day off. Want to come by and do this again?"'
-			end
-		elseif npc_day_off[$boy] = week and (sex_ev['sleepover'] = 1 or hour < 5):
-			sex_ev['invite_today'] = 1
-			if npc_girlfriend[$boy] = 1 and npc_fidelity[$boy] = 6:
-				pc_know_npc_has_girlfriend[$boy] = 1
-				'"You busy later?" <<$npc_firstname[$boy]>> asks as you''re <<$sex_ev[''dress_describe'']>>. "Today''s my day off and my girlfriend won''t be around. Want to come over and do this again?"'
+		act'Continue':
+			gs 'sex_ev_leave', 'dress_loop'
+			sex_ev['plans_later_talk'] = 1
+			if npc_day_off[$boy] = week + 1 or (week = 7 and npc_day_off[$boy] = 1):
+				sex_ev['invite_tomorrow'] = 1
+				if npc_girlfriend[$boy] = 1 and npc_fidelity[$boy] = 6:
+					pc_know_npc_has_girlfriend[$boy] = 1
+					'"You busy tomorrow?" <<$npc_firstname[$boy]>> asks as you''re <<$sex_ev[''dress_describe'']>>. "It''ll be my day off and my girlfriend won''t be around. Want to come over and do this again?"'
+				else
+					'"You busy tomorrow?" <<$npc_firstname[$boy]>> asks as you''re <<$sex_ev[''dress_describe'']>>. "It''ll be my day off. Want to come by and do this again?"'
+				end
+			elseif npc_day_off[$boy] = week and (sex_ev['sleepover'] = 1 or hour < 5):
+				sex_ev['invite_today'] = 1
+				if npc_girlfriend[$boy] = 1 and npc_fidelity[$boy] = 6:
+					pc_know_npc_has_girlfriend[$boy] = 1
+					'"You busy later?" <<$npc_firstname[$boy]>> asks as you''re <<$sex_ev[''dress_describe'']>>. "Today''s my day off and my girlfriend won''t be around. Want to come over and do this again?"'
+				else
+					'"You busy later?" <<$npc_firstname[$boy]>> asks as you''re <<$sex_ev[''dress_describe'']>>. "It''s my day off. Want to come by and do this again?"'
+				end
 			else
-				'"You busy later?" <<$npc_firstname[$boy]>> asks as you''re <<$sex_ev[''dress_describe'']>>. "It''s my day off. Want to come by and do this again?"'
+				sex_ev['invite_tomorrow'] = 1
+				if npc_girlfriend[$boy] = 1 and npc_fidelity[$boy] = 6:
+					pc_know_npc_has_girlfriend[$boy] = 1
+					'"You busy tomorrow?" <<$npc_firstname[$boy]>> asks as you''re <<$sex_ev[''dress_describe'']>>. "My girlfriend won''t be around. Want to come over and do this again?"'
+				else
+					'"You busy tomorrow?" <<$npc_firstname[$boy]>> asks as you''re <<$sex_ev[''dress_describe'']>>. "Want to come by and do this again?"'
+				end
 			end
-		else
-			sex_ev['invite_tomorrow'] = 1
-			if npc_girlfriend[$boy] = 1 and npc_fidelity[$boy] = 6:
-				pc_know_npc_has_girlfriend[$boy] = 1
-				'"You busy tomorrow?" <<$npc_firstname[$boy]>> asks as you''re <<$sex_ev[''dress_describe'']>>. "My girlfriend won''t be around. Want to come over and do this again?"'
-			else
-				'"You busy tomorrow?" <<$npc_firstname[$boy]>> asks as you''re <<$sex_ev[''dress_describe'']>>. "Want to come by and do this again?"'
+			
+			gs 'sex_ev_leave', 'busy_tomorrow'
+			
+			act'What time?':
+				gs 'sex_ev_leave', 'dress_loop'
+				'"That depends," you say, <<$sex_ev[''dress_describe'']>>. "What time were you thinking?"'
+				'"<<npc_start_free_time[$boy]>>?" <<$npc_firstname[$boy]>> asks.'
+				gs 'sex_ev_leave', 'busy_time'
+				gs 'sex_ev_leave', 'sex_ev_plan'
 			end
 		end
-		
-		gs 'sex_ev_leave', 'busy_tomorrow'
-		
-		act'What time?':
-			gs 'sex_ev_leave', 'dress_loop'
-			'"That depends," you say, <<$sex_ev[''dress_describe'']>>. "What time were you thinking?"'
-			'"<<npc_start_free_time[$boy]>>?" <<$npc_firstname[$boy]>> asks.'
-			gs 'sex_ev_leave', 'busy_time'
-			gs 'sex_ev_leave', 'sex_ev_plan'
-		end
 	else
 		sex_ev['plans_later_talk'] = 1
 	end
@@ -2162,4 +2217,15 @@ if $ARGS[0] = 'sex_ev_plan':
 	end
 end
 
+if $ARGS[0] = 'money_for_ma_pill':
+	sex_ev['ma_pill_money'] = 1
+	money += 1000
+	cla & *clr
+	gs'sex_ev_leave', 'dress_loop'
+	'"Hey," <<$npc_firstname[$boy]>> says as you''re <<$sex_ev[''dress_describe'']>>. "Don''t forget this."'
+	'He grabs his wallet and pulls out a 1000<b>₽</b note, holding it out to you.'
+	'"For the morning after pill," he says.'
+	'"Oh yeah, thanks," you nod, taking it from him.'
+	gs 'sex_ev_leave', 'dressing2'
+end
 --- sex_ev_leave ---------------------------------

+ 6 - 0
locations/sex_ev_miss.qsrc

@@ -307,6 +307,12 @@ if $ARGS[0] = 'miss1.2':
 			gs 'sex_ev_miss', 'miss1.2_dirty_talk'
 			*nl
 			'All your dirty talk is just that: talk. Your pussy still barely feels anything other than the occasional bump, but you don''t want <<$npc_firstname[$boy]>> to feel bad about it either so you play along, pretending it feels good.'
+		elseif sex_ev['casual_talk'] > 0:
+			if mid($boy,1,1) = 'A':
+				gs 'sex_ev_sex_talk_<<$boy>>', 'talk_output'
+			else
+			
+			end
 		end
 	else
 		if sex_ev['moan'] <= 2 and sex_ev['moan'] > 0:

+ 139 - 85
locations/sex_ev_morning.qsrc

@@ -583,61 +583,7 @@ if $ARGS[0] = 'wakeup1':
 		else
 			'"Want some breakfast?" <<$npc_firstname[$boy]>> asks. "It''ll just take me a few minutes."'
 		end
-		act'No thanks':
-			sex_ev['breakfast_finished'] = -1
-			cla
-			act'No time':
-				cla & *nl
-				'"Sorry, I don''t have time," you say. "I wish I could but I really need to get going."'
-				gs 'sex_ev_morning', 'wakeup1'
-			end
-			
-			act'Not hungry':
-				cla & *nl
-				'"I''ll pass," you say. "I''m not all that hungry right now."'
-				gs 'sex_ev_morning', 'wakeup1'
-			end
-			
-			act'Don''t eat breakfast':
-				cla & *nl
-				'"I''ll pass," you say. "I don''t really eat breakfast."'
-				gs 'sex_ev_morning', 'wakeup1'
-			end
-			
-			act'On a diet':
-				cla & *nl
-				'"I''m on a diet," you say ruefully. "Gotta keep the calories down."'
-				gs 'sex_ev_morning', 'wakeup1'
-			end
-		end
-		
-		act'Yes please (15 minutes)':
-			cla & *nl
-			'"That sounds great," you smile.'
-			act'Continue':gt'sex_ev_morning', 'wait_for_breakfast1'
-		end
-		
-		act'Let me cook instead':
-			cla & *nl
-			if sex_ev['get_up'] = 0:
-				'"Please, allow me," you smile, moving to get out of bed. "It''s the least I can do for letting me sleep over."'
-			else
-				'"Please, allow me," you smile. "It''s the least I can do for letting me sleep over."'
-			end
-			act'Make breakfast':gt'sex_ev_morning', 'pc_make_breakfast'
-		end
-		
-		if sex_ev['morning_fuck'] = 0:
-			act'Differnt kind of breakfast (sex)':
-				gs'arousal', 'bj', 1, 'no_orgasm_msg'
-				cla & *clr
-				'<center><video autoplay loop src="images/shared/sex/blowjob/bj47.mp4"></video></center>'
-				'"Yeah," you say crawling over to him. "I could really use some <i>meat</i> right now."'
-				'You slink down between his legs, wrapping your lips around his cock and slurp hard.'
-				'"Nngh, fuck..." <<$npc_firstname[$boy]>> grunts, getting harder by the second. "Not what I had in mind but..." You cut him off as you plunge your lips back down his shaft.'
-				act'Continue':gt'sex_ev_foreplay', 'bj_dom2'
-			end
-		end
+		gs'sex_ev_morning', 'boy_breakfast_offer'
 	else
 !!	elseif npc_latesleeper[$boy] = 1:
 !!		gt'sex_ev_morning', 'latesleeper'
@@ -731,9 +677,9 @@ if $ARGS[0] = 'wakeup1':
 			act'Make breakfast':gt'sex_ev_morning', 'pc_make_breakfast'
 		end
 		
-		if sex_ev['creampie_count'] > 0 and morning_after_pill > 0 and sex_ev['plan_b'] = 0 and birth_control['think_safe'] = 0:
+		if sex_ev['creampie_count'] > 0 and morning_after_pill > 0 and sex_ev['ma_pill'] = 0 and birth_control['think_safe'] = 0:
 			act'Take a morning after pill':
-				sex_ev['plan_b'] = 2
+				sex_ev['ma_pill'] = 2
 				cla & *clr
 				$sex_ev['bed_room']
 				
@@ -1163,32 +1109,56 @@ if $ARGS[0] = 'forgot_bc_pill':
 		act'Calm down':
 			cla & *clr
 			'<center><video autoplay loop src="images/shared/sex/after/wakeup_shock2.mp4"></video></center>'
-			'You sit up and start taking big deep breaths, forcing yourself to calm down, trying to approach the situation logically.'
-			*nl
-			if sex_ev['creampie_count'] > 0:
-				if sex_ev['creampie_count'] > 5:
-					'Okay, so <<$npc_firstname[$boy]>> came inside you last night... <i>Many</i> times. But you can still take a morning after pill. Maybe it''ll be okay.'
-				elseif sex_ev['creampie_count'] > 1:
-					'Okay, so <<$npc_firstname[$boy]>> came inside you last night... More than once... A <i>few</i> times. But you can still take a morning after pill. Maybe it''ll be okay.'
-				elseif sex_ev['creampie_count'] = 1:
-					'Okay, so <<$npc_firstname[$boy]>> came inside you last night... But only once. That''s not too bad, right? Maybe you can still take a morning after pill. Maybe it''ll be okay.'
-				end
-				if morning_after_pill > 0:
-					*nl
-					if LudaQW['free_condoms'] = 1 and stat['morning_after_pill'] = 0:
-						'Actually, you have the one Aunt Luda gave you. For emergencies she said...'
+			'You sit up and start taking big deep breaths, forcing yourself to calm down and try to approach the situation logically.'
+			act'You can take a morning after pill':
+				cla & *nl
+				if sex_ev['creampie_count'] > 0:
+					if sex_ev['creampie_count'] > 5:
+						'Okay, so <<$npc_firstname[$boy]>> came inside you last night... <i>A lot.</i> But you can still take a morning after pill. Maybe it''ll be okay.'
+					elseif sex_ev['creampie_count'] > 1:
+						'Okay, so <<$npc_firstname[$boy]>> came inside you last night... More than once... A <i>few</i> times. But you can still take a morning after pill. Maybe it''ll be okay.'
+					elseif sex_ev['creampie_count'] = 1:
+						'Okay, so <<$npc_firstname[$boy]>> came inside you last night... But only once. That''s not too bad, right? Maybe you can still take a morning after pill. Maybe it''ll be okay.'
+					end
+					if morning_after_pill > 0:
+						*nl
+						if LudaQW['free_condoms'] = 1 and stat['morning_after_pill'] = 0:
+							'Actually, you have the one Aunt Luda gave you. For emergencies she said...'
+						else
+							'Actually, you have one in your bag. You could take it right now.'
+						end
+					end
+				else
+					if pharmacy_timers['birth_control'] > 0:
+						'<<$npc_firstname[$boy]>> didn''t come inside you yesterday, so you''re not in any real danger of getting pregnant right this second. But this breaks your streak. Aunt Luda said you need to take it every day or it won''t work. So if you take it now, does that mean you''re still not safe?'
 					else
-						'Actually, you have one in your bag. You could take it right now.'
+						'<<$npc_firstname[$boy]>> didn''t come inside you yesterday, so you''re not in any real danger of getting pregnant right this second. But does this mean you''ll need to wait a few days to build up the birth control in your system again? If you take your next pill now, does that mean you''re still not safe?'
 					end
 				end
-			else
-				if pharmacy_timers['birth_control'] > 0:
-					'<<$npc_firstname[$boy]>> didn''t come inside you yesterday, but this breaks your streak. Aunt Luda said you need to take it every day or it won''t work. So if you take it now, does that mean you''re still not safe?'
-				else
-					'<<$npc_firstname[$boy]>> didn''t come inside you yesterday, so you''re probably not in immediate danger of getting pregnant. But does this mean you''ll need to wait a few days to build up the birth control in your system again?'
+				gs'sex_ev_morning', 'forgot_bc_pill2'
+			end
+			
+			if stat['dangerous_day'] ! 1:
+				act'You''re not fertile right now':
+					cla & *nl
+					if sex_ev['creampie_count'] > 0:
+						if sex_ev['creampie_count'] > 5:
+							'Okay, so <<$npc_firstname[$boy]>> came inside you last night... <i>A lot.</i> But it''s not the fertile stage of your cycle. You should be fine, right?'
+						elseif sex_ev['creampie_count'] > 1:
+							'Okay, so <<$npc_firstname[$boy]>> came inside you last night... More than once... A <i>few</i> times. But it''s not the fertile stage of your cycle. You should be fine, right?'
+						elseif sex_ev['creampie_count'] = 1:
+							'Okay, so <<$npc_firstname[$boy]>> came inside you last night... But only once. And it''s not the fertile stage of your cycle. You should be fine, right?'
+						end
+					else
+						if pharmacy_timers['birth_control'] > 0:
+							'<<$npc_firstname[$boy]>> didn''t come inside you yesterday, so you''re not in any real danger of getting pregnant right this second. But this breaks your streak. Aunt Luda said you need to take it every day or it won''t work. So if you take it now, does that mean you''re still not safe?'
+						else
+							'<<$npc_firstname[$boy]>> didn''t come inside you yesterday, so you''re not in any real danger of getting pregnant right this second. But does this mean you''ll need to wait a few days to build up the birth control in your system again? If you take your next pill now, does that mean you''re still not safe?'
+						end
+					end
+					gs'sex_ev_morning', 'forgot_bc_pill2'
 				end
 			end
-			gs'sex_ev_morning', 'forgot_bc_pill2'
 		end
 	end
 end
@@ -1417,6 +1387,64 @@ if $ARGS[0] = 'guilt3':
 	end
 end
 
+if $ARGS[0] = 'boy_breakfast_offer':
+	act'No thanks':
+		sex_ev['breakfast_finished'] = -1
+		cla
+		act'No time':
+			cla & *nl
+			'"Sorry, I don''t have time," you say. "I wish I could but I really need to get going."'
+			gs 'sex_ev_morning', 'wakeup1'
+		end
+		
+		act'Not hungry':
+			cla & *nl
+			'"I''ll pass," you say. "I''m not all that hungry right now."'
+			gs 'sex_ev_morning', 'wakeup1'
+		end
+		
+		act'Don''t eat breakfast':
+			cla & *nl
+			'"I''ll pass," you say. "I don''t really eat breakfast."'
+			gs 'sex_ev_morning', 'wakeup1'
+		end
+		
+		act'On a diet':
+			cla & *nl
+			'"I''m on a diet," you say ruefully. "Gotta keep the calories down."'
+			gs 'sex_ev_morning', 'wakeup1'
+		end
+	end
+	
+	act'Yes please (15 minutes)':
+		cla & *nl
+		'"That sounds nice," you smile.'
+		act'Continue':gt'sex_ev_morning', 'wait_for_breakfast1'
+	end
+	
+	act'Let me cook instead':
+		cla & *nl
+		if sex_ev['get_up'] = 0:
+			'"Please, allow me," you smile, moving to get out of bed. "It''s the least I can do for letting me sleep over."'
+		else
+			'"Please, allow me," you smile. "It''s the least I can do for letting me sleep over."'
+		end
+		act'Make breakfast':gt'sex_ev_morning', 'pc_make_breakfast'
+	end
+	
+	if sex_ev['morning_fuck'] = 0:
+		act'Differnt kind of breakfast (sex)':
+			gs'arousal', 'bj', 1, 'no_orgasm_msg'
+			cla & *clr
+			'<center><video autoplay loop src="images/shared/sex/blowjob/bj47.mp4"></video></center>'
+			'"Yeah," you say crawling over to him. "I could really use some <i>meat</i> right now."'
+			'You slink down between his legs, wrapping your lips around his cock and slurp hard.'
+			'"Nngh, fuck..." <<$npc_firstname[$boy]>> grunts, getting harder by the second. "Not what I had in mind but..." You cut him off as you plunge your lips back down his shaft.'
+			act'Continue':gt'sex_ev_foreplay', 'bj_dom2'
+		end
+	end
+end
+
 if $ARGS[0] = 'wait_for_breakfast1':
 	minut += 15
 	gs 'stat'
@@ -1563,12 +1591,13 @@ if $ARGS[0] = 'breakfast_in_bed_menu':
 		cla & *nl
 		'"A bit of protein sounds good right now," you smile, reaching for the sandwiches he made, the slice of bread with cheese and kolbasa.'
 		if npc_humor[$boy] = 2:
-			'<<$npc_firstname[$boy]>> snickers, giving you a dirty smirk, saying, "I got some protein for you to swallow if you really want some."'
+			'"If it''s protein you want, I got some for you..." <<$npc_firstname[$boy]>> snickers.'
 			act'Roll your eyes':
 				cla & *nl
-				'You sigh deeply, rolling your eyes to the heavens as you ignore his vulgar remarks and bite into the sandwich. The bread is nice and soft, the cheese creamy, and the kolbasa salty and cheap but full of familiar comfort.'
+				'You sigh deeply, rolling your eyes to the heavens as you ignore his vulgar euphemisms and bite into the sandwich. The bread is nice and soft, the cheese creamy, and the kolbasa salty and cheap but full of familiar comfort.'
 				gs'sex_ev_morning', 'eat_breakfast1'
 			end
+			
 			act'Giggle':
 				cla & *nl
 				'You giggle at the dirty joke, struggling to fit the fork into your mouth as you bite into the sandwich. The bread is nice and soft, the cheese creamy, and the kolbasa salty and cheap but full of familiar comfort.'
@@ -1595,7 +1624,7 @@ if $ARGS[0] = 'breakfast_in_bed_menu':
 end
 
 if $ARGS[0] = 'want_breakfast':
-	if sex_ev['breakfast_eat'] = 0:
+	if sex_ev['breakfast_eat'] = 0 and $sex_ev['loc'] ! 'hotel_room':
 		act'Breakfast?':
 			cla
 			act'Offer to cook':
@@ -1615,27 +1644,45 @@ if $ARGS[0] = 'want_breakfast':
 				end
 				act'Make breakfast':gt'sex_ev_morning', 'pc_make_breakfast'
 			end
+			
 			act'You want coffee':
 				cla
 				act'Got any coffee?':
 					cla & *nl
-					'"Any chance I could get some coffee?" you ask.'
+					'"Any chance I could get some coffee?" you ask <<$npc_firstname[$boy]>>.'
+					gs'sex_ev_morning', 'want_coffee_response'
 				end
 				
 				act'Would kill for some coffee':
 					cla & *nl
-					
+					'"I would <i>kill</i> for a cup of coffee right now," you say, looking suggestively at <<$npc_firstname[$boy]>>.'
+					gs'sex_ev_morning', 'want_coffee_response'
 				end
 				
 				act'Would suck cock for some coffee':
 					cla & *nl
-					
+					'"I would suck your cock for a cup of coffee right now," you say, smirking suggestively at <<$npc_firstname[$boy]>>.'
+					gs'sex_ev_morning', 'want_coffee_response'
 				end
 			end
 		end
 	end
 end
 
+if $ARGS[0] = 'want_coffee_response':
+	'He glances over at the clock.'
+	if npc_end_free_time <= hour + 2:
+		sex_ev['npc_late_work'] = 1
+		'"I don''t have time," <<$npc_firstname[$boy]>> says, shaking his head. "I gotta get to work."'
+		'You sigh in disappointment.'
+		gs'sex_ev_morning', 'wakeup1'
+	else
+		!! make a coffee only option later
+		'"I''ve got some time," <<$npc_firstname[$boy]>> says. "How about breakfast instead?"'
+		gs'sex_ev_morning', 'boy_breakfast_offer'
+	end
+end
+
 if $ARGS[0] = 'pc_make_breakfast':
 	cla & *clr
 	'<center><img <<$set_imgh>> src="images/pc/activities/cooking/nude_fridge1.jpg"></center>'
@@ -2002,7 +2049,14 @@ if $ARGS[0] = 'eat_breakfast_coffee':
 	
 	act'Dieting':
 		cla & *nl
-		'"I''m on a diet," you reply. "But you go ahead. Don''t hold back on account of me."'
+		'"I''m on a diet," you reply. "Caffeine is an appetite suppressant. But you go ahead. Don''t hold back on account of me."'
+		'He nods, continuing to help himself as you casually chit chat over the food.'
+		act'Clear your dishes':gt'sex_ev_morning', 'breakfast_dishes'
+	end
+	
+	act'Can''t eat in the morning':
+		cla & *nl
+		'"My stomach can''t really handle food in the morning," you reply. "I mostly just stick to coffee. But you go ahead. Don''t hold back on account of me."'
 		'He nods, continuing to help himself as you casually chit chat over the food.'
 		act'Clear your dishes':gt'sex_ev_morning', 'breakfast_dishes'
 	end

File diff suppressed because it is too large
+ 577 - 103
locations/sex_ev_pillow_talk.qsrc


+ 73 - 27
locations/sex_ev_pillow_talk2.qsrc

@@ -1200,7 +1200,7 @@ if $ARGS[0] = 'wakeup_sex_late_for_school':
 			gs'sex_ev_pillow_talk', 'talk_time_add'
 			cla & *clr
 			'<center><video autoplay loop src="images/shared/sex/after/check_phone1.mp4"></video></center>'
-			'You reach over to the bedside table, checking the time on your phone.'
+			'You reach over to the bedside table to check the time on your phone.'
 			*nl
 			gs 'shortgs', 'calendar_display'
 			if hour < 8:
@@ -1226,8 +1226,8 @@ if $ARGS[0] = 'wakeup_sex_late_for_school':
 				
 				act'I need to hurry':
 					cla & *nl
-					'"I gotta get out of here," you say. "I really don''t want to be late'
-					gs'sex_ev_pillow_talk', 'topics'
+					'"I gotta get out of here," you say. "I really don''t want to be late."'
+					gs'sex_ev_after', 'after_sex2'
 				end
 				
 				act'Worth it':
@@ -1239,7 +1239,7 @@ if $ARGS[0] = 'wakeup_sex_late_for_school':
 					act'I''m gonna get kicked out of school':
 						cla & *nl
 						'"Shit!" you curse. "If I''m late again I''m gonna get expelled!"'
-						gs'sex_ev_pillow_talk', 'topics'
+						gs'sex_ev_after', 'after_sex2'
 					end
 				end
 			elseif hour = 8:
@@ -1344,7 +1344,7 @@ end
 !! ------------------------------ BOY INITIATED CONVERSATIONS -------------------------------------------------
 
 if $ARGS[0] = 'new_with_you_boy':
-	sex_ev['new_with_you'] = 1
+	sex_ev['new_with_you'] = 1 & sex_ev['how_was_day'] = 1
 	cla & *clr
 	'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk1.jpg"></center>'
 	'"So, anything new going on with you?" <<$npc_firstname[$boy]>> asks.'
@@ -1354,39 +1354,85 @@ if $ARGS[0] = 'new_with_you_boy':
 		'"Not really," you shrug. "Same old same old."'
 		gs'sex_ev_pillow_talk', 'topics'
 	end
+	gs'sex_ev_pillow_talk2', 'share_life_menu'
+end
+
+if $ARGS[0] = 'how_was_day_boy':
+	sex_ev['new_with_you'] = 1 & sex_ev['how_was_day'] = 1
+	cla & *clr
+	'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk1.jpg"></center>'
+	'"How was your day?" <<$npc_firstname[$boy]>> asks.'
+	act'It was fine':
+		cla & *nl
+		
+		gs'sex_ev_pillow_talk2', 'share_life_menu'
+	end
 	
-	if npc_know_have_girlfriend[$boy] = 1 or npc_know_have_boyfriend[$boy] = 1:
-		if pcs_lovers + pcs_girlfriends = 0:
-			act'Single now':
-				gs 'sex_ev_stats', 'single_know'
+	act'It was good':
+		cla & *nl
+		
+		gs'sex_ev_pillow_talk2', 'share_life_menu'
+	end
+	
+	act'It was bad':
+		cla & *nl
+		
+		gs'sex_ev_pillow_talk2', 'share_life_menu'
+	end
+	
+	act'It was okay':
+		cla & *nl
+		
+		gs'sex_ev_pillow_talk2', 'share_life_menu'
+	end
+end
+
+if $ARGS[0] = 'share_life_menu':
+	gs'sex_ev_pillow_talk2', 'share_life_single'
+end
+
+if $ARGS[0] = 'share_life_single':
+	if pcs_lovers + pcs_girlfriends = 0:
+		act'Single now':
+			
+			cla
+			act'Broke up with...':
 				cla
-				act'Broke up with...':
-					cla
-					act'My boyfriend':
-						cla & *nl
-						'"I broke up with my boyfriend," you tell <<$npc_firstname[$boy]>>. "So I guess I''m single now."'
-						
-					end
+				act'My boyfriend':
+					cla & *nl
+					'"I broke up with my boyfriend," you tell <<$npc_firstname[$boy]>>. "So I guess I''m single now."'
+					if npc_know_have_girlfriend[$boy] = 1 or npc_know_have_boyfriend[$boy] = 1:
+					
+					else
 					
-					act'My girlfriend':
-						cla & *nl
-						'"I broke up with my boyfriend," you tell <<$npc_firstname[$boy]>>. "So I guess I''m single now."'
-						
 					end
+					gs 'sex_ev_stats', 'single_know'
 				end
 				
-			!!{	act'Got broken up with...':
-					cla
-					act'By my boyfriend':
-					
-					end
+				act'My girlfriend':
+					cla & *nl
+					'"I broke up with my boyfriend," you tell <<$npc_firstname[$boy]>>. "So I guess I''m single now."'
+					if npc_know_have_girlfriend[$boy] = 1 or npc_know_have_boyfriend[$boy] = 1:
 					
-					act'By my girlfriend':
+					else
 					
 					end
-				end}
+					gs 'sex_ev_stats', 'single_know'
+				end
 			end
+			
+		!!{	act'Got broken up with...':
+				cla
+				act'By my boyfriend':
+				
+				end
+				
+				act'By my girlfriend':
+				
+				end
+			end}
 		end
 	end
 end
+
 --- sex_ev_pillow_talk2 ---------------------------------

+ 79 - 71
locations/sex_ev_reactions.qsrc

@@ -78,7 +78,7 @@ if $ARGS[0] = 'creampie_react':
 end
 
 if $ARGS[0] = 'creampie_safe_day':
-	if sex_ev['safe_day'] = 0 and sex_ev['probably_safe_day'] = 0 and sex_ev['danger_day'] = 0 and birth_control['think_safe'] ! 1 and sex_ev['plan_b'] = 0 and sex_ev['plan_b_buy'] = 0:
+	if sex_ev['safe_day'] = 0 and sex_ev['probably_safe_day'] = 0 and sex_ev['danger_day'] = 0 and birth_control['think_safe'] ! 1 and sex_ev['ma_pill'] = 0 and sex_ev['plan_b_buy'] = 0 and npc_know_bc[$boy] ! 1:
 		if stat['safe_day'] = 1:
 			act'It''s a safe day':
 				sex_ev['safe_day'] = 1
@@ -349,7 +349,7 @@ if $ARGS[0] = 'creampie_ask_next_time':
 						npc_ask_creampie[$boy] = 1
 						cla & *nl
 						if sex_ev['came_together'] > 0:
-							'"I don''t mind... if you come inside me..." you pant. "But... you need to ask..."'
+							'"I don''t mind... if you come inside me..." you pant. "But... could you ask next time...?"'
 						else
 							'"I don''t mind if you come inside me," you smile gently at him. "But you need to ask before you do."'
 						end
@@ -376,7 +376,7 @@ if $ARGS[0] = 'creampie_ask_next_time':
 					act'(A little mad)':
 						cla & *nl
 						if sex_ev['came_together'] > 0:
-							'"You need to..." you pant. "... ask... before you do... that..."'
+							'"You need to..." you pant. "... ask... before you... do that..."'
 							'It''s hard to give a glare that has impact when you''re still dick drunk off the back of your last orgasm.'
 						else
 							'"You need to ask next time," you chide him, a slight frown creasing your brow.'
@@ -508,7 +508,7 @@ if $ARGS[0] = 'creampie_ask_next_time_mad2':
 end
 
 if $ARGS[0] = 'cum_together_no_bc1':
-	if sex_ev['creampie_ask'] = 0 and sex_ev['he_ask_creampie_yes'] ! 1 and (npc_free_creampies[$boy] = 0 or (npc_free_creampies[$boy] = 1 and stat['dangerous_day'] = 1)):
+	if birth_control['think_safe'] = 0 and sex_ev['creampie_ask'] = 0 and sex_ev['he_ask_creampie_yes'] ! 1 and (npc_free_creampies[$boy] = 0 or (npc_free_creampies[$boy] = 1 and stat['dangerous_day'] = 1)):
 		act'Be careful (pregnancy)':
 			cla
 			if pillcon2 > 0:
@@ -569,7 +569,7 @@ if $ARGS[0] = 'cum_together_no_bc1':
 end
 
 if $ARGS[0] = 'cum_together_no_bc2':
-	if sex_ev['creampie_ask'] = 0 and sex_ev['he_ask_creampie_yes'] ! 1 and npc_free_creampies[$boy] = 0:
+	if sex_ev['creampie_ask'] = 0 and sex_ev['he_ask_creampie_yes'] ! 1 and npc_free_creampies[$boy] = 0 and birth_control['think_safe'] = 0:
 		if npc_know_not_bc[$boy] = 0:
 			act'Not on birth control':
 				cla & *nl
@@ -673,7 +673,7 @@ if $ARGS[0] = 'creampie_gross':
 end
 
 if $ARGS[0] = 'creampie_gross2':
-	act'Creampies are weird':
+	act'Feels weird':
 		cla & *nl
 		if npc_free_creampies[$boy] > 0 and $pc_cum_pref_know[$boy] = 'creampie':
 			'"I really don''t like creampies. They feel weird," you grimace, before twisting your mouth in a wry smirk and shrug. "But I like you. So you better be happy."'
@@ -688,7 +688,7 @@ if $ARGS[0] = 'creampie_gross2':
 		cla & *nl
 		if birth_control['think_safe'] ! 1:
 			gs'sex_ev_stats', 'no_birth_control_know'
-			'"I''m not on birth control," you grimace. "I can practically <i>feel</i> the little bastards swimming around inside me. Trying to get me pregnant. Just the thought of getting pregnant grosses me out."'
+			'"I''m not on birth control," you grimace. "I can practically <i>feel</i> the little bastards swimming around inside me and trying to get me pregnant. Just the thought of getting pregnant grosses me out."'
 		else
 			if npc_know_bc[$boy] = 1:
 				'"The idea of pregnancy grosses me out," you grimace.'
@@ -797,6 +797,12 @@ if $ARGS[0] = 'thanks_for_asking':
 						'"Changed my mind," you grin. "I like them now. So long as you ask."'
 						gs'sex_ev_sex', 'sex_end'
 					end
+					
+					act'Only when it''s you':
+						cla & *nl
+						'"I only like it when you do it," you say, giving him a warm smile.'
+						gs'sex_ev_sex', 'sex_end'
+					end
 				else
 					'"Thanks for letting me," he smiles back.'
 					gs'sex_ev_sex', 'sex_end'
@@ -1864,7 +1870,7 @@ end
 
 if $ARGS[0] = 'creampie_pc_startled':
 !!	if sex_ev['creampie_allowance'] = 0 and sex_ev['creampie_ask'] ! 1 and sex_ev['came_together'] = 0 and npc_free_creampies[$boy] ! 2:
-	if sex_ev['creampie_ask'] ! 1 and sex_ev['came_together'] = 0 and npc_free_creampies[$boy] ! 2:
+	if sex_ev['creampie_ask'] ! 1 and sex_ev['creampie_force'] ! 1 and sex_ev['came_together'] = 0 and npc_free_creampies[$boy] ! 2:
 		act'Startled':
 			$sex_ev['reaction'] = 'startled'
 			cla & *clr
@@ -1912,7 +1918,7 @@ if $ARGS[0] = 'take_in_stride1':
 end
 
 if $ARGS[0] = 'did_you_come_inside':
-	if sex_ev['creampie_ask'] ! 1 and sex_ev['came_together'] = 0 and npc_free_creampies[$boy] ! 2 and sex_ev['just_cum_inside_me'] = 0:
+	if sex_ev['creampie_ask'] ! 1 and sex_ev['creampie_force'] ! 1 and sex_ev['came_together'] = 0 and npc_free_creampies[$boy] ! 2 and sex_ev['just_cum_inside_me'] = 0:
 		act'Did you just come inside me?':
 			sex_ev['just_cum_inside_me'] = 1
 			if sex_ev['cock_inserted'] = 0:
@@ -2082,7 +2088,7 @@ if $ARGS[0] = 'accidents_happen1':
 			'"It was an accident, right?" you ask.'
 			'"Yeah," he says abashedly.'
 			'"Then it''s okay. Accidents happen," you reply, smiling fondly at him.'
-		elseif sex_ev['plan_b'] = 1:
+		elseif sex_ev['ma_pill'] = 1:
 			'"I''m already going to get a pill," you smirk amusedly. "What''s one more creampie in that case?"'
 		else
 			'"I told you before didn''t I? Accidents happen," you smile. "No big deal."'
@@ -2196,7 +2202,7 @@ if $ARGS[0] = 'creampie_wtf':
 			act'Not on birth control':
 				cla & *clr
 				gs'sex_ev_reactions', 'creampie_wtf_image'
-				if npc_know_not_bc[$boy] = 1 and sex_ev['pill_tomorrow'] ! 1 and sex_ev['creampie_count'] = 1:
+				if npc_know_not_bc[$boy] = 1 and sex_ev['ma_pill_tomorrow'] ! 1 and sex_ev['creampie_count'] = 1:
 					'"What the fuck!" you exclaim as <<$npc_firstname[$boy]>> lets his cock slip from your pussy, the flow of liquid you were expecting following out quickly after. "You know I''m not on birth control!"'
 					if npc_abusive[$boy] = 1 or npc_selfish[$boy] = 1:
 						if mesec > 0:
@@ -2213,7 +2219,7 @@ if $ARGS[0] = 'creampie_wtf':
 						gs'sex_ev_reactions', 'creampie_forgive'
 					end
 				else
-					if sex_ev['pill_tomorrow'] = 1:
+					if sex_ev['ma_pill_tomorrow'] = 1:
 						'"What the fuck!" you exclaim as <<$npc_firstname[$boy]>> lets his cock slip from your pussy, the flow of liquid you were expecting following out quickly after.'
 						'"What? You said you were gonna get the pill tomorrow anyways."'
 						gs'sex_ev_reactions', 'creampie_wtf_2'
@@ -2385,21 +2391,21 @@ if $ARGS[0] = 'oh_shit_options':
 		act'I guess I need a pill':
 			cla
 			act'Annoyed':
-				sex_ev['pill_tomorrow'] = 1
+				sex_ev['ma_pill_tomorrow'] = 1
 				cla & *nl
 				'"I guess I''m going to need a pill tomorrow," you say, frowning.'
 				gs'sex_ev_cum', 'what_now'
 			end
 			
 			act'Unconcerned':
-				sex_ev['pill_tomorrow'] = 1
+				sex_ev['ma_pill_tomorrow'] = 1
 				cla & *nl
 				'"I guess I''m going to need a pill tomorrow," you shrug, unconcerned.'
 				gs'sex_ev_cum', 'what_now'
 			end
 			
 			act'Humorous':
-				sex_ev['pill_tomorrow'] = 1
+				sex_ev['ma_pill_tomorrow'] = 1
 				cla & *nl
 				'"I guess I''m going to need a pill tomorrow," you say, giving <<$npc_firstname[$boy]>> a wry smirk to let him know you''re not mad.'
 				gs'sex_ev_cum', 'what_now'
@@ -2411,60 +2417,62 @@ if $ARGS[0] = 'oh_shit_options':
 end
 
 if $ARGS[0] = 'have_plan_b':
-	if morning_after_pill > 0:
-		act'I have some plan B':
-			cla
-			act'Calm':
-				sex_ev['plan_b'] = 1
-				cla & *nl
-				'"I have a morning after pill," you say calmly. "I''ll be okay."'
-				gs'sex_ev_cum', 'what_now'
-			end
-			
-			act'Amused':
-				sex_ev['plan_b'] = 1
-				cla & *nl
-				if npc_selfish[$boy] = 1 or npc_abusive[$boy] > 0:
-					'"It''s okay," you giggle, finding a strange amusement in how unapologetic <<$npc_firstname[$boy]>> is about it. "I have a morning after pill."'
-				else
-					'"It''s okay," you giggle, unable to keep from laughing at <<$npc_firstname[$boy]>>''s worry. "I have some plan B on me."'
+	if birth_control['think_safe'] = 0 and npc_know_bc[$boy] ! 1:
+		if morning_after_pill > 0:
+			act'I have some plan B':
+				cla
+				act'Calm':
+					sex_ev['ma_pill'] = 1
+					cla & *nl
+					'"I have a morning after pill," you say calmly. "I''ll be okay."'
+					gs'sex_ev_cum', 'what_now'
 				end
-				gs'sex_ev_cum', 'what_now'
-			end
-			
-			act'Sexy':
-				sex_ev['plan_b'] = 1
-				cla & *nl
-				'"It''s okay," you say with a sexy smile. "I have a morning after pill."'
-				gs'sex_ev_cum', 'what_now'
-			end
-		end
-	else
-		act'I''ll buy some plan B':
-			cla
-			act'Calm':
-				sex_ev['plan_b_buy'] = 1
-				cla & *nl
-				'"I''ll get a morning after pill later," you shrug. "No big deal."'
-				gs'sex_ev_cum', 'what_now'
-			end
-			
-			act'Amused':
-				sex_ev['plan_b_buy'] = 1
-				cla & *nl
-				if npc_selfish[$boy] = 1 or npc_abusive[$boy] > 0:
-					'"I''ll get a morning after pill later," you giggle, finding a strange amusement in how unapologetic <<$npc_firstname[$boy]>> is about it.'
-				else
-					'"I''ll get a morning after pill later," you giggle, unable to keep from laughing at <<$npc_firstname[$boy]>>''s worry.'
+				
+				act'Amused':
+					sex_ev['ma_pill'] = 1
+					cla & *nl
+					if npc_selfish[$boy] = 1 or npc_abusive[$boy] > 0:
+						'"It''s okay," you giggle, finding a strange amusement in how unapologetic <<$npc_firstname[$boy]>> is about it. "I have a morning after pill."'
+					else
+						'"It''s okay," you giggle, unable to keep from laughing at <<$npc_firstname[$boy]>>''s worry. "I have some plan B on me."'
+					end
+					gs'sex_ev_cum', 'what_now'
+				end
+				
+				act'Sexy':
+					sex_ev['ma_pill'] = 1
+					cla & *nl
+					'"It''s okay," you say with a sexy smile. "I have a morning after pill."'
+					gs'sex_ev_cum', 'what_now'
 				end
-				gs'sex_ev_cum', 'what_now'
 			end
-			
-			act'Sexy':
-				sex_ev['plan_b_buy'] = 1
-				cla & *nl
-				'"It''s okay," you say with a sexy smile. "I''ll get a morning after pill later,"'
-				gs'sex_ev_cum', 'what_now'
+		else
+			act'I''ll buy some plan B':
+				cla
+				act'Calm':
+					sex_ev['plan_b_buy'] = 1
+					cla & *nl
+					'"I''ll get a morning after pill later," you shrug. "No big deal."'
+					gs'sex_ev_cum', 'what_now'
+				end
+				
+				act'Amused':
+					sex_ev['plan_b_buy'] = 1
+					cla & *nl
+					if npc_selfish[$boy] = 1 or npc_abusive[$boy] > 0:
+						'"I''ll get a morning after pill later," you giggle, finding a strange amusement in how unapologetic <<$npc_firstname[$boy]>> is about it.'
+					else
+						'"I''ll get a morning after pill later," you giggle, unable to keep from laughing at <<$npc_firstname[$boy]>>''s worry.'
+					end
+					gs'sex_ev_cum', 'what_now'
+				end
+				
+				act'Sexy':
+					sex_ev['plan_b_buy'] = 1
+					cla & *nl
+					'"It''s okay," you say with a sexy smile. "I''ll get a morning after pill later,"'
+					gs'sex_ev_cum', 'what_now'
+				end
 			end
 		end
 	end
@@ -2477,26 +2485,26 @@ if $ARGS[0] = 'have_plan_b':
 end
 
 if $ARGS[0] = 'have_plan_b2':
-	if sex_ev['plan_b'] = 0 and sex_ev['plan_b_buy'] = 0:
+	if sex_ev['ma_pill'] = 0 and sex_ev['plan_b_buy'] = 0 and booty_call['safe_day'] = 0 and booty_call['probably_safe_day'] = 0 and birth_control['think_safe'] = 0 and npc_know_bc[$boy] ! 1:
 		if morning_after_pill > 0:
 			act'I have some plan B':
 				cla
 				act'Calm':
-					sex_ev['plan_b'] = 1
+					sex_ev['ma_pill'] = 1
 					cla & *nl
 					'"Don''t worry," you say calmly. "I have a morning after pill."'
 					gs'sex_ev_sex', 'sex_end'
 				end
 				
 				act'Amused':
-					sex_ev['plan_b'] = 1
+					sex_ev['ma_pill'] = 1
 					cla & *nl
 					'"Don''t worry," you giggle with glee. "I have a morning after pill."'
 					gs'sex_ev_sex', 'sex_end'
 				end
 				
 				act'Sexy':
-					sex_ev['plan_b'] = 1
+					sex_ev['ma_pill'] = 1
 					cla & *nl
 					'"Don''t worry," you say with a sexy smile. "I have a morning after pill."'
 					gs'sex_ev_sex', 'sex_end'
@@ -2906,7 +2914,7 @@ if $ARGS[0] = 'facial_react1':
 			sex_ev['disgusting_facial'] = 1
 			cla & *clr
 			'<center><video autoplay loop src="images/shared/sex/cum/facial/facial_after1.mp4"></video></center>'
-			if npc_facial_count[$boy] + sex_ev['facial'] = 1:
+			if npc_facial_count[$boy] + sex_ev['facial_count'] = 1:
 				'"Ugh, disgusting!" you groan, spitting the vile viscous fluid away from your lips. "It''s like getting sneezed on! Why did I let you do this?"'
 			else
 				'"Ugh, disgusting!" you groan, spitting the vile viscous fluid away from your lips. "It''s like getting sneezed on! Why do I let you do this?"'

+ 20 - 3
locations/sex_ev_sex.qsrc

@@ -270,6 +270,7 @@ end
 if $ARGS[0] = 'fuck_arousal_cum_code':
 	sex_ev['fuck_time_temp'] = 1
 	sex_ev['fuck_time_total'] += 1
+	if sex_ev['creampie_ask'] = 1: sex_ev['ask_creampie_count'] += 1
 	gs 'arousal', 'vaginal', sex_ev['fuck_time_temp'],'no_orgasm_msg'
 	gs 'stat'
 end
@@ -321,13 +322,23 @@ if $ARGS[0] = 'fuck_continue':
 			act'Focus on the sensations':$orgasm_or = '' & sex_ev['dirty_talk'] = 0 & sex_ev['moan'] = 0 & gt 'sex_ev_<<$sex_ev[''position'']>>', '<<$sex_ev[''pos_speed'']>>.2'
 			act'Moan softly':$orgasm_or = '' & sex_ev['dirty_talk'] = 0 & sex_ev['moan'] = 1 & gt 'sex_ev_<<$sex_ev[''position'']>>', '<<$sex_ev[''pos_speed'']>>.2'
 			act'Moan loudly':$orgasm_or = '' & sex_ev['dirty_talk'] = 0 & sex_ev['moan'] = 2 & gt 'sex_ev_<<$sex_ev[''position'']>>', '<<$sex_ev[''pos_speed'']>>.2'
-	!!		act'Talk dirty...':gs 'sex_ev_sex', 'dirty_talk1'
-			act'Talk dirty':
+	!!		act'Dirty talk...':gs 'sex_ev_sex', 'dirty_talk1'
+			act'Dirty talk':
 				$orgasm_or = ''
 				sex_ev['moan'] = 0
 				sex_ev['dirty_talk'] = 1
 				gt 'sex_ev_<<$sex_ev[''position'']>>', '<<$sex_ev[''pos_speed'']>>.2'
 			end
+!!{			if $sex_ev['speed'] ! 3:
+				act'Talk while fucking':
+					cla
+					if mid($boy,1,1) = 'A':
+						gs 'sex_ev_sex_talk_<<$boy>>', 'talk_menu'
+					else
+						gs 'sex_ev_sex_talk', 'talk_menu'
+					end
+				end
+			end}
 			if sex_ev['fuck_enjoyment'] ! 2:
 				act'Fake enjoyment':sex_ev['bored'] = 1 & sex_ev['moan'] = 3 & $orgasm_or = 'no' & gt 'sex_ev_<<$sex_ev[''position'']>>', '<<$sex_ev[''pos_speed'']>>.2'
 			end
@@ -1207,10 +1218,16 @@ if $ARGS[0] = 'pain':
 		end
 	end
 	if sex_ev['fuck_enjoyment'] = -1: gs 'pain', 1, 'vaginal', 'ache'
-	if sex_ev['fuck_time_total'] > pcs_vag * 3: gs 'pain', 2, 'vaginal', 'ache'
+	if sex_ev['fuck_time_total'] > pcs_vag * 3 and sex_ev['pain_counter'] = 0:
+		sex_ev['pain_counter'] = 1
+		gs 'pain', 2, 'vaginal', 'ache'
+	else
+		sex_ev['pain_counter'] -= 1
+	end
 end
 
 if $ARGS[0] = 'sleep_sex':
+	sex_ev['start_time'] = totminut
 	sex_ev['sleep_fuck'] = 1
 	gs'arousal', 'vaginal', rand(5,10), 'no_orgasm_msg'
 	if npc_sex_speed <= 2:

+ 46 - 4
locations/sex_ev_start.qsrc

@@ -330,8 +330,8 @@ if $ARGS[0] = 'fb_invited_start':
 				end
 			end
 		end
-		
-		if prezik > 0:
+				
+		if prezik > 0 and npc_bareback[$boy] = 0:
 			act'I brought condoms':
 				pc_buy_condoms[$boy] = 2
 				cla & *nl
@@ -346,12 +346,12 @@ if $ARGS[0] = 'fb_invited_start':
 				act'Undress':gt 'sex_ev_foreplay', 'undress'
 			end
 		end
-		if morning_after_pill > 0:
+		if morning_after_pill > 0 and npc_bareback[$boy] = 0:
 			act'Brought a morning after pill':
 				cla
 				sex_ev['skip_condom'] = 1
 				sex_ev['no_condom'] = 1
-				sex_ev['plan_b'] = 1
+				sex_ev['ma_pill'] = 1
 				act'No condoms':
 					cla & *clr
 					$sex_ev['bed_room']
@@ -368,6 +368,48 @@ if $ARGS[0] = 'fb_invited_start':
 				end
 			end
 		end
+		
+		if birth_control['think_safe'] = 1 and npc_know_bc[$boy] = 0:
+			act'Tell him you''re on birth control':
+				cla & *clr
+				$sex_ev['bed_room']
+				'You step inside and draw close to <<$npc_firstname[$boy]>>. You lean in and whisper in his ear...'
+				*nl
+				act'No condoms':
+					cla & *clr
+					$sex_ev['bed_room']
+					if npc_know_bc_not_effective[$boy] = 1:
+						'"<i>My birth control is ready. Let''s go bareback today.</i>"'
+					else
+						'"<i>I''m on birth control now. Let''s go bareback today.</i>"'
+					end
+					gs 'sex_ev_stats', 'birth_control_know'
+					act'Undress':gt 'sex_ev_foreplay', 'undress'
+				end
+				
+				act'Come inside me':
+					sex_ev['creampie_allowance'] = 1
+					cla & *clr
+					$sex_ev['bed_room']
+					if npc_know_bc_not_effective[$boy] = 1:
+						'"<i>My birth control is ready. You can come inside me as much as you want.</i>"'
+					else
+						'"<i>I''m on birth control now. You can come inside me as much as you want.</i>"'
+					end
+					gs 'sex_ev_stats', 'birth_control_know'
+					act'Undress':gt 'sex_ev_foreplay', 'undress'
+				end
+			end
+		end
+		
+		if npc_shave_promise[$boy] > 0 and pcs_pubes < 4:
+			act'Tell him you shaved':
+				cla & *clr
+				$sex_ev['bed_room']
+				'"I have a special surprise too," you say, stepping inside and drawing close to <<$npc_firstname[$boy]>>. You lean in and whisper in his ear, "<i>I shaved my pussy for you.</i>"'
+				act'Undress':gt 'sex_ev_foreplay', 'undress'
+			end
+		end
 !!	act'Stumble over to the couch':gt 'sex_ev_start', 'couch_start'
 	end
 end

+ 13 - 3
locations/sex_ev_stats.qsrc

@@ -72,7 +72,7 @@ if $ARGS[0] = 'save':
 	npc_cum_together_count[$boy] += sex_ev['creampie_orgasm']
 	
 	!! number of times your fuckbuddy has cum on your face
-	npc_facial_count[$boy] += sex_ev['facial']
+	npc_facial_count[$boy] += sex_ev['facial_count']
 	
 	!! number of times your fuckbuddy has cum on your tits
 	npc_creampie_count[$boy] += sex_ev['tit_cum']
@@ -81,7 +81,7 @@ if $ARGS[0] = 'save':
 	npc_pullout_count[$boy] += sex_ev['pullout']
 	
 	!! number of times your fuckbuddy has cum in your mouth
-	npc_mouth_cum_count[$boy] += sex_ev['mouth_cum']
+	npc_mouth_cum_count[$boy] += sex_ev['mouth_cum_count']
 	
 	!! number of times you have jerked him to completion
 	npc_cum_hand_count[$boy] += sex_ev['cum_hand']
@@ -96,7 +96,7 @@ if $ARGS[0] = 'save':
 	npc_shower_sex_count[$boy] += sex_ev['shower_sex']
 	
 	!! number of times your fuckbuddy has cum in your mouth
-	npc_mouth_cum_count[$boy] += sex_ev['mouth_cum']
+	npc_mouth_cum_count[$boy] += sex_ev['mouth_cum_count']
 	
 	!! number of times you have denied letting your fuckbuddy take your virginity
 	npc_virgin_deny[$boy] += sex_ev['virgin_deny']
@@ -114,6 +114,7 @@ end
 
 
 if $ARGS[0] = 'birth_control_know':
+	npc_know_bc_not_effective[$boy] = 0
 	npc_know_not_bc[$boy] = 0
 	npc_know_bc[$boy] = 1
 end
@@ -122,6 +123,15 @@ end
 if $ARGS[0] = 'no_birth_control_know':
 	npc_know_not_bc[$boy] = 1
 	npc_know_bc[$boy] = 0
+	npc_know_bc_not_effective[$boy] = 0
+end
+
+if $ARGS[0] = 'bareback_risk_active':
+	npc_bareback_risk[$boy] = 1
+end
+
+if $ARGS[0] = 'bareback_risk_deactive':
+	npc_bareback_risk[$boy] = 0
 end
 
 if $ARGS[0] = 'single_know':

+ 292 - 13
locations/sex_ev_talk.qsrc

@@ -18,7 +18,7 @@ if $ARGS[0] = 'boy_accidental_creampie':
 			'"Speaking of which..." <<$npc_firstname[$boy]>> asks, looking intently at your pussy, clearly thinking about when he came inside you earlier. "You''re going to get a morning after pill, right?"'
 		end
 		gs'sex_ev_talk', 'childfree_accidental_creampie1'
-	elseif sex_ev['plan_b'] = 1:
+	elseif sex_ev['ma_pill'] = 1:
 		if cum_loc['vagina'] > 0:
 			'"Speaking of which..." <<$npc_firstname[$boy]>> says, looking intently at the cum slowly draining from your pussy. "You''re gonna take that pill right?"'
 		else
@@ -42,6 +42,17 @@ end
 
 if $ARGS[0] = 'boy_accidental_creampie2':
 	if birth_control['think_safe'] = 1:
+		act'I''ll be fine':
+			cla & *nl
+			'"I''ll be fine," you smile reassuringly. <<$npc_firstname[$boy]>> nods, relaxing a bit.'
+			*nl
+			if birth_control['think_safe'] = 1:
+				'<i>Besides, I''m on birth control,</i> you think to yourself. <i>But he doesn''t need to know that.</i>'
+			else
+				'<i>I mean, what are the odds that something bad happens?</i>'
+			end
+			gs'sex_ev_pillow_talk', 'topics'
+		end
 		gs'sex_ev_pillow_talk', 'on_birth_control'
 	else
 		if stat['safe_day'] = 1:
@@ -186,12 +197,12 @@ end
 
 if $ARGS[0] = 'morning_after_money':
 	'<<$npc_firstname[$boy]>> looks at you for a moment before reaching down into his discarded trousers to grab his wallet, pulling 800<b>₽</b> out.'
-	'"Here," he says, offering the cash to you. "Get a morning after pill tomorrow.'
+	'"Here," he says, offering the cash to you. "Get a morning after pill later.'
 	act'No, you don''t have to':
 		cla & *nl
 		'"No," you shake your head. "I can''t ask you to do that."'
 		if npc_childfree[$boy] = 1:
-			'"Take it," he says insistently. "I don''t want any kids running around. You can thank me by making sure you take that pill tomorrow."'
+			'"Take it," he says insistently. "I don''t want any kids running around. You can thank me by making sure you take that pill later."'
 		else
 			'"Don''t worry about it," he says, smiling gently. "I think it would suck for both of us if you got pregnant right now."'
 		end
@@ -212,12 +223,13 @@ if $ARGS[0] = 'morning_after_money':
 		act'Take it':
 			take_morning_after[$boy] = daystart
 			cla & *clr
+			$sex_ev['bed_room']
 			'You take the money from him, warmed by the gesture.'
 			'"Thanks," you say, giving him the most grateful smile you can.'
 			if npc_childfree[$boy] = 1:
-				'"Seriously," <<$npc_firstname[$boy]>> says. "Take that pill."'
+				'"Seriously," <<$npc_firstname[$boy]>> says returning your smile with a stern look. "Take that pill."'
 			else
-				'He just nods back in return'
+				'He just nods back in return.'
 			end
 			gs'sex_ev_pillow_talk', 'topics'
 		end
@@ -614,17 +626,285 @@ end
 !! --------------------- After Sex Talking -------------------------
 !! (different from pillow talk)
 
+if $ARGS[0] = 'bareback_think':
+	act'Think about it':
+		cla & *nl
+		'"Hmmm..."'
+		'<i>He''s got a point,</i> you muse to yourself. <i>Nothing bad happened this time. What <b>if</b> we just stopped using condoms...?</i>'
+		sex_ev['bareback_thinking'] = 1
+		gs'sex_ev_talk', 'bareback_too_risky'
+		gs'sex_ev_talk', 'bareback_agree'
+	end
+end
+
+
+if $ARGS[0] = 'bareback_too_risky':
+	act'Way too risky':
+		cla & *nl
+		'"No way!" you exclaim' + iif(sex_ev['bareback_thinking'] = 1, ', dismissing the thought with a shake of your head. ', '. ') + '"That''s way too risky! Just because nothing went wrong this time doesn''t mean something can''t go wrong in the future! We skipped it this time, but it''s not becoming a regular thing."'
+		if npc_no_condoms[$boy] = 1:
+			if npc_bareback_risk[$boy] = 1:
+				'"You said that last time too," <<$npc_firstname[$boy]>> snickers.'
+			else
+				if npc_argumentative[$boy] = 1:
+					'"I don''t see why," <<$npc_firstname[$boy]>> grumbles. "We both hate using them. We''re only making things worse for ourselves."'
+				elseif npc_caretaker[$boy] = 1:
+					'"Maybe that was asking a bit too much," <<$npc_firstname[$boy]>> replies sheepishly.'
+				else
+					'<<$npc_firstname[$boy]>> sighs deeply.'
+					'"Guess that was too much to hope for..."'
+				end
+			end
+		else
+			if npc_bareback_risk[$boy] = 1:
+				'"But didn''t you say that the last time after we went bareback?" <<$npc_firstname[$boy]>> says with a puzzled look.'
+			elseif npc_childfree[$boy] = 1:
+				'"Yeah, better safe than sorry I guess," <<$npc_firstname[$boy]>> nods. "Using condoms sucks a lot less than you getting pregnant."'
+			else
+				'"Yeah, better safe than sorry," <<$npc_firstname[$boy]>> nods. "Sorry. Don''t know what I was thinking asking that."'
+			end
+		end
+		npc_bareback_risk[$boy] = 1
+		gs'sex_ev_pillow_talk', 'topics'
+	end
+end
+
+
+if $ARGS[0] = 'bareback_agree':
+	act'Start going bareback':
+		npc_bareback[$boy] = 1
+		cla & *clr
+		'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk2.jpg"></center>'
+		'"Okay," you say with an eager smile. "Let''s stop using condoms then."'
+		'<<$npc_firstname[$boy]>> looks back at you shocked.'
+		'"You really mean it?" he asks.'
+		act'You really mean it':
+			cla & *nl
+			if sex_ev['boy_pill_suggest'] = 1:
+				'"Yeah," you nod. "I really mean it. Let''s go bareback from now on. If I need to get a pill after, then I''ll get a pill after."'
+			else
+				'"Yeah," you nod. "I really mean it. Let''s go bareback from now on."'
+				if birth_control['think_safe'] = 1: '<i>I''m on birth control anyways</i>, you think to yourself. <i>I probably don''t need to be so extra protective.</i>'
+				'<<$npc_firstname[$boy]>> seems very excited.'
+			end
+			gs'sex_ev_pillow_talk', 'topics'
+		end
+		
+		act'Tease him':
+			cla & *nl
+			'"Yeah? Why? Are you saying you want to keep using them?" you reply teasingly.'
+			if npc_no_condoms[$boy] = 1:
+				'"Fuck no! I''ve been waiting forever for this!"'
+			else
+				'"No! No! I mean, if you''re good to stop, then I''m good with it too."'
+			end
+			'<<$npc_firstname[$boy]>> seems very excited.'
+			gs'sex_ev_pillow_talk', 'topics'
+		end
+	end
+	if birth_control['think_safe'] = 0:
+		act'Bareback on safe days':
+			npc_bareback[$boy] = 2
+			cla & *clr
+			'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk2.jpg"></center>'
+			'"I think it would be too risky to go bareback all the time," you say slowly. "But if it''s at the right time, maybe it will be okay?"'
+			'"What are you saying?" <<$npc_firstname[$boy]>> asks. He seems to be trying not to get his hopes up before you say it out loud.'
+			'"As long as I''m not in danger of getting pregnant, then it should be okay to skip the condom. So if I time it with my cycle, it should be fine. Right?"'
+			if npc_no_condoms[$boy] = 1:
+				'"Well... I''d prefer if we skipped the condoms altogether," he says wistfully. "But that''s better than nothing."'
+			else
+				'"That sounds really good," he smiles eagerly.'
+			end
+			'"Okay," you smile back. "I''ll let you know the next time it''s safe."'
+			gs'sex_ev_pillow_talk', 'topics'
+		end
+	end
+end
+
+if $ARGS[0] = 'bareback_think_pill':
+	act'Think about it':
+		cla & *nl
+		'"Hmmm..."'
+		'<i>He''s got a point,</i> you muse to yourself. <i>As long as I make sure I take some plan B by the next day, it should be just fine. Shouldn''t it?</i>'
+		sex_ev['bareback_thinking'] = 1
+		gs'sex_ev_talk', 'bareback_too_risky'
+		gs'sex_ev_talk', 'bareback_agree'
+	end
+end
+
+if $ARGS[0] = 'bareback_pill_expense':
+	act'Too expensive':
+		cla & *clr
+		'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk3.jpg"></center>'
+		'"That pill costs money you know," you say irritatedly. "I''m not willing to pay for that every time you forget to pull out."'
+		if npc_finance[$boy] = 2 and npc_selfish[$boy] < 1:
+			'"How about I pay for it then?" <<$npc_firstname[$boy]>> asks. "Any time you need a morning after pill because of me, I''ll give you money to pay for it."'
+			'He grabs his wallet and pulls out a wad of notes.'
+			'"1000<b>₽</b> should be enough, right?" he grins. "First one can be on me."'
+			act'Refuse':
+				cla
+				act'Couldn''t impose':
+					cla & *clr
+					'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk2.jpg"></center>'
+					'You blink as he offers the cash to you.'
+					'"No, I couldn''t possibly," you say, pushing it back towards him. "I''d feel bad taking your money."'
+					'"Why? I''m getting something out of it too," he grins extending his hand again. "Just take it and let''s start going bareback."'
+					gs 'willpower', 'misc', 'resist'
+					if will_cost <= pcs_willpwr:
+						act'Refuse (<<will_cost>> Willpower)':
+							cla & *clr
+							'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk1.jpg"></center>'
+							'"No," you say, forcing the money away again. "I''m not taking your money for this. We''ll just keep using condoms."'
+							'<<$npc_firstname[$boy]>> sighs in disappointment but does as you ask and puts the cash away.'
+							'"Let me know if you ever change your mind," he says. "Offer will still stand."'
+							npc_pay_for_ma_pill_offer[$boy] = 1
+							gs'sex_ev_pillow_talk', 'topics'
+						end
+					else
+						act 'Refuse (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
+					end
+				end
+				
+				act'Hormonal influence':
+					cla & *clr
+					'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk1.jpg"></center>'
+					'"It''s not just the money," you shake your head, pushing his hand back. "Those pills are just a bunch of hormones getting dumped into my body. It could totally throw my balance out of whack. I have enough hormonal issues as it is ' + iif(age < 20, 'as a teenage girl.', 'as a woman.') + 'I don''t need more."'
+					'"Fair enough I suppose," <<$npc_firstname[$boy]>> replies ruefully and puts the money away. "Offer''s always on the table if you change your mind."'
+					npc_pay_for_ma_pill_offer[$boy] = 1
+					gs'sex_ev_pillow_talk', 'topics'
+				end
+				
+				act'Not a charity case':
+					cla & *clr
+					'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk3.jpg"></center>'
+					'"I''m not some kind of charity case," you say in irritation, practically slapping his hand away. "I can get by just fine on my own and <i>I</i> choose what I want to spend <i>my</i> money on."'
+					'"Just let me know if you ever change your mind," <<$npc_firstname[$boy]>> shrugs, putting the money away. "Offer is here any time you want it."'
+					npc_pay_for_ma_pill_offer[$boy] = 1
+					gs'sex_ev_pillow_talk', 'topics'
+				end
+				
+!!{				if sex_ev['type'] ! 'prostitution':
+					act'Makes me feel like a hooker':
+						cla & *clr
+						'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk2.jpg"></center>'
+						'"Absolutely not," you say, pushing the money back towards him and crinkling your nose with disgust. "I''d feel like a hooker if I did that."'
+						
+					end
+				end}
+			end
+			
+			act'Accept':
+				cla
+				act'Surprise':
+					cla & *clr
+					'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk2.jpg"></center>'
+					'"Wait really?" you say in surprise, taking the notes from him. "You''d really do that? I can just have this?"'
+					gs'sex_ev_talk', 'boy_pays_for_ma_pills'
+				end
+				
+				act'Gratitude':
+					cla & *clr
+					'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk2.jpg"></center>'
+					'"Oh! Wow," you say, taking the notes from him. "That''s... This is actually very helpful. That''s so nice of you! Not sure how many guys would be willing to pay for a girl''s emergency birth control like this."'
+					gs'sex_ev_pillow_talk', 'topics'
+				end
+				
+				act'Excitement':
+					cla & *clr
+					'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk1.jpg"></center>'
+					'"Seriously?!" you say, excitedly grabbing the money. "If you''re paying for it then sure!"'
+					gs'sex_ev_pillow_talk', 'topics'
+				end
+				
+!!{				act'Embarrassment':
+					cla & *clr
+					'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk3.jpg"></center>'
+					
+					gs'sex_ev_pillow_talk', 'topics'
+				end}
+			end
+		else
+			
+		end
+	end
+end
+
+if $ARGS[0] = 'boy_pays_for_ma_pills':
+	if npc_childfree[$boy] = 1:
+		'"Well it would cost me a lot more money if you got pregnant and I had to pay child support," <<$npc_firstname[$boy]>> chuckles jokingly. "But I make plenty of money. The cost of a few pills is hardly going to make a dent. So you ready to stop using condoms?"'
+	else
+		'"I make enough money to be able to afford the nicer things in life," <<$npc_firstname[$boy]>> shrugs somewhat smugly. "What''s a few pills here and there? So you ready to stop using condoms?"'
+	end
+	'"I guess as long as you''re paying for it..." you say.'
+	npc_pay_for_ma_pill[$boy] = 1
+	npc_bareback[$boy] = 1
+	money += 1000
+	sex_ev['ma_pill_money'] = 1
+end
+
+if $ARGS[0] = 'ma_pill_money':
+	if sex_ev['ma_pill_money'] = 0 and npc_pay_for_ma_pill[$boy] = 1 and sex_ev['creampie_count'] > 0:
+		act'Ask for plan B money':
+			cla & *clr
+			'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk1.jpg"></center>'
+			if cum_loc['vagina'] > 0:
+				'"Think I could get that money for the pill now?" you ask, rubbing your thighs together over the cum still oozing from your pussy.'
+			else
+				'"Think I could get that money for the pill now?" you ask, rubbing your thighs together as you remember the feeling of <<$npc_firstname[$boy]>>''s cum oozing from your pussy.'
+			end
+			'"Sure thing," he says, quickly reaching over to his wallet and pulling out a 1000<b>₽</b note and handing it to you.'
+			'"Thanks," you say as you take it.'
+			sex_ev['ma_pill_money'] = 1
+			money += 1000
+			gs'sex_ev_pillow_talk', 'topics'
+		end
+	end
+end
+
+if $ARGS[0] = 'bareback_bc_suggest':
+	if birth_control['using_bc'] > 0:
+		act'Already am':
+			cla & *clr
+			'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk3.jpg"></center>'
+			if birth_control['think_safe'] = 0:
+				npc_know_bc_not_effective[$boy] = 1
+				'"I <i>am</i> on birth control," you sigh. "But it''s not ready yet. It''s still going to be a while longer before it''s effective and I can''t afford not to use condoms until that happens."'
+			else
+				gs 'sex_ev_stats', 'birth_control_know'
+				'"I <i>am</i> on birth control," you sigh. "But hormonal birth control isn''t 100% effective. I really don''t want to get pregnant so gotta use condoms, even if I hate them."'
+				if npc_no_condoms[$boy] = 1:
+					'"Seriously?" <<$npc_firstname[$boy]>> says, giving you an exasperated look. "You''ve been on birth control this whole time and we''re still using condoms? What the hell!"'
+					'"I just told you, I don''t want to get pregnant!"'
+					'"You''re not going to get pregnant while you''re on birth control! Stop being so paranoid and let''s just go bareback already!"'
+					
+					act'No way':
+						cla & *nl
+						'"No way!" you exclaim. "Just because nothing went wrong this time doesn''t mean something can''t go wrong in the future!"'
+						'"This is fucking dumb," <<$npc_firstname[$boy]>> grumbles.'
+						gs'sex_ev_pillow_talk', 'topics'
+					end
+					gs'sex_ev_talk', 'bareback_agree'
+				else
+					'"Seems a little excessive, don''t you think?" <<$npc_firstname[$boy]>> says giving you an odd look.'
+					'"Better than getting pregnant," you shrug back.'
+				end
+			end
+		end
+	end
+end
+
 if $ARGS[0] = 'borrow_money':
 	if sex_ev['borrow_$$'] = 0:
 		act'Ask for money...':
 			sex_ev['borrow_$$'] = 1
 			cla
-			gs'sex_ev_talk', 'planb_borrow'
+			act'Never mind':cla & sex_ev['borrow_$$'] = 0 & gs'sex_ev_pillow_talk', 'topics'
+			gs'sex_ev_talk', 'borrow_planb'
 		end
 	end
 end
 
-if $ARGS[0] = 'planb_borrow':
+if $ARGS[0] = 'borrow_planb':
 	if sex_ev['creampie_count'] > 0:
 		act'... for plan B':
 			cla & *clr
@@ -670,23 +950,22 @@ if $ARGS[0] = 'planb_borrow':
 	end
 end
 
-if $ARGS[0] = 'planb_borrow2':
-	act'100 <b>₽</b> (just a little)':
+if $ARGS[0] = 'borrow_planb2':
+	act'100<b>₽</b> (just a little)':
 	
 	
 	end
 	
-	act'370 <b>₽</b> (half price)':
+	act'370<b>₽</b> (half price)':
 	
 	end
 	
-	act'740 <b>₽</b> (full price)':
+	act'740<b>₽</b> (full price)':
 		cla & *nl
 		money += 740
 		'"I don''t have any money right now," you admit. "So I need the full 740 <b>₽</b> '
 		if npc_selfish[$boy] = 1:
-			'"Seriously?" <<$npc_firstname[$boy]>> scowls as hands over the bills. "You don''t have <i>any</i> money? Get a job or something."'
-			'"Thanks," you say a little stiffly. It''s hard to be grateful when someone''s being such an ass about it...'
+			'"Seriously?" <<$npc_firstname[$boy]>> scowls as hands over the notes. "You don''t have <i>any</i> money? Get a job or something."'
 		else
 			''
 		end

+ 2 - 0
locations/sitr.qsrc

@@ -54,6 +54,8 @@ if mishka > 0: iif(mishka = 1, 'Your teddy bear is', 'Your <<mishka>> teddy bear
 !gs'husb' - do not delete!
 gs'subkid'
 
+gs 'wardrobe', 'default_sport_options'
+
 gs 'exercise', 'start'
 
 *nl

+ 11 - 0
locations/spell.qsrc

@@ -190,6 +190,7 @@ if $ARGS[0] = 'regenerate':
 		msg '<b><font color = <<$SplTxtColGood>>>Your body surges with life. You feel better already.</font></b>'
 		killvar 'regenVal'
 		killvar 'regenArrIdx'
+		gs 'stat' 
 	else
 		msg '<b><font color="red">The spell fizzles. Nothing seems to happen.</b>'
 	end
@@ -199,6 +200,7 @@ if $ARGS[0] = 'painblock':
 	if SuccessValue > 0:
 		pain['killer'] = 1
 		msg '<b><font color = <<$SplTxtColGood>>>Your pain recedes into a dull throb.</font></b>'
+		gs 'stat' 
 	else
 		msg '<b><font color="red">The spell fizzles. Nothing seems to happen.</b>'
 	end
@@ -222,6 +224,7 @@ if $ARGS[0] = 'curedisease':
 		! You do not feel good
 		pcs_mood -= 30
 		msg '<b><font color = <<$SplTxtColGood>>>You burst into a high fever. You feel terrible, but you know you are now healthy.</font></b>'
+		gs 'stat' 
 	else
 		msg '<b><font color="red">The spell fizzles. Nothing seems to happen.</b>'
 	end
@@ -233,6 +236,7 @@ if $ARGS[0] = 'curewounds':
 		gs 'medical_din','healthTreatment'
 		gs 'medical_din','healthTreatment'
 		msg '<b><font color = <<$SplTxtColGood>>>You feel yourself coursing with life. You feel better already.</font></b>'
+		gs 'stat' 
 	else
 		msg '<b><font color="red">The spell fizzles. Nothing seems to happen.</b>'
 	end
@@ -248,6 +252,7 @@ if $ARGS[0] = 'curewounds2':
 		killvar 'spankedtime'
 		pcs_health = pcs_vital * 10 + pcs_stren * 5 + 1000
 		msg '<b><font color = <<$SplTxtColGood>>>You feel yourself coursing with life. All pain is gone.</font></b>'
+		gs 'stat' 
 	else
 		msg '<b><font color="red">The spell fizzles. Nothing seems to happen.</b>'
 	end
@@ -296,6 +301,7 @@ if $ARGS[0] = 'berserk':
 			gs 'spellTimer', 'add', 'berserk', 120, $berserkCode, ''
 		end
 		msg '<b><font color = <<$SplTxtColGood>>>You feel a huge adrenalin surge. You begin looking for someone to battle.</font></b>'
+		gs 'stat' 
 	else
 		msg '<b><font color="red">The spell fizzles. Nothing seems to happen.</b>'
 	end
@@ -314,6 +320,7 @@ if $ARGS[0] = 'shower':
 		! Brush Teeth
 		pcs_breath = 1
 		msg '<b><font color = <<$SplTxtColGood>>>You feel clean and refreshed.</font></b>'
+		gs 'stat' 
 	else
 		msg '<b><font color="red">The spell fizzles. Nothing seems to happen.</b>'
 	end
@@ -330,6 +337,7 @@ if $ARGS[0] = 'glamour':
 		!	TickCode = ''  Do nothing
 		gs 'spellTimer', 'add', 'glamour', 120, 'pcs_apprncbase -= 150', ''
 		msg '<b><font color = <<$SplTxtColGood>>>You feel gorgeous. People will love you.</font></b>'
+		gs 'stat' 
 	else
 		msg '<b><font color="red">The spell fizzles. Nothing seems to happen.</b>'
 	end
@@ -340,6 +348,7 @@ if $ARGS[0] = 'alterself':
 		! Stop Reputation accumulation.
 		!TODO
 		msg '<b><font color = <<$SplTxtColGood>>>Your features change. Your own mother wouldn''t recognize you.</font></b>'
+		gs 'stat' 
 	else
 		msg '<b><font color="red">The spell fizzles. Nothing seems to happen.</b>'
 	end
@@ -371,6 +380,7 @@ if $ARGS[0] = 'makeup':
 		killvar 'MakeupArg'
 		killvar '$MakeupArg'
 		msg '<b><font color = <<$SplTxtColGood>>>Makeup is applied to your face.</font></b>'
+		gs 'stat' 
 	else
 		msg '<b><font color="red">The spell fizzles. Nothing seems to happen.</b>'
 	end
@@ -415,6 +425,7 @@ if $ARGS[0] = 'cosmetica':
 			end
 		end
 		msg '<b><font color = <<$SplTxtColGood>>>You feel beautiful.</font></b>'
+		gs 'stat' 
 	else
 		msg '<b><font color="red">The spell fizzles. Nothing seems to happen.</b>'
 	end

+ 9 - 7
locations/stat.qsrc

@@ -85,10 +85,6 @@ end
 if lernSkill >= 8: gs 'exp_gain', 'intel', 1 & lernSkill = 0
 if lern >= 10: gs 'exp_gain', 'intel', 1 & lern = 0
 
-!! Katja learnign about you sexual experience from other sources because you are a slut.
-if fame['pav_slut'] >= 150 and stat['bj'] > 0 and katjaQW['knows_BJ'] ! 1: katjaQW['knows_BJ'] = 1
-if fame['pav_slut'] >= 250 or preg > 0 and stat['vaginal'] > 0 and katjaQW['knows_sex'] ! 1: katjaQW['knows_sex'] = 1
-
 shameless = guy + stat['bj'] + stat['anal'] + stat['hj'] + ((slutty + gang) * 2)
 moneySUM = money + karta + stolmoney
 cumSUM = cumsumbod/40
@@ -193,7 +189,7 @@ elseif pcs_inhib > 100:
 end
 
 healthmax = (pcs_vital * 10 + pcs_stren * 5)
-stammax = 5 * (2 * pcs_vital + pcs_agil + pcs_stren) / 2
+stammax = (30* (2 * pcs_vital + pcs_agil + pcs_stren) +1000)/ 13
 speed = (2 * (pcs_stren + pcs_agil) + pcs_vital) / 5
 if healthmax < 1: healthmax = 1
 if willpowermax < 50: willpowermax = 50
@@ -452,7 +448,7 @@ if minut >= 60:
 			pcs_energy -= (4 * amphetamineBonus + succublvl/2)
 			pcs_hydra -= (8 * amphetamineBonus + succublvl/2)
 		end
-		pcs_stam += stammax / 10
+		pcs_stam += stammax / 8
 		pcs_sleep -= 4
 		if alko > 0: alko -= 1
 		pcs_willpower_feeder += willpowermax*4
@@ -466,7 +462,6 @@ if minut >= 60:
 			pcs_energy -= (8 * amphetamineBonus + succublvl)
 			pcs_hydra -= (16 * amphetamineBonus + succublvl)
 		end
-		pcs_stam += stammax / 20
 		if InSleepWake <= hour or InSleepWake[1] < daystart:
 			pcs_sleep -= 4
 		end
@@ -495,6 +490,13 @@ if minut >= 60:
 		else
 			pcs_mood['hydredcheck'] = 0
 		end
+		if pcs_stam <= 0:
+			pcs_mood -= 6
+			pcs_sleep -= 5
+		elseif pcs_stam < stammax / 5:
+			pcs_mood -= 3
+		end
+		pcs_stam += stammax / 40
 		pcs_willpower_feeder += willpowermax*4/3
 		pcs_willpwr += pcs_willpower_feeder/100
 		pcs_willpower_feeder = pcs_willpower_feeder mod 100

+ 25 - 0
locations/version.qsrc

@@ -2,6 +2,31 @@
 
 act 'Return': gt 'start'
 
+'0.9'
+'- Stamina reworked to have meaning and work as limitor for exercising from bgkjdgbizgblzdgbr'
+'- New 2023 splash screens at game start from Gwen'
+'- Random photo event added to park by HotMike'
+'- Small update on the City Nightclub. A full bar with menu, nomore prostitution but you can be picked up by a couple on the dance floor from bgkjdgbizgblzdgbr'
+'- Music store a bit more organic with some new bits from nutluck, coded by bgkjdgbizgblzdgbr'
+'- Sonia content relating to her fail from nutluck with code from bgkjdgbizgblzdgbr'
+'- Minor dilogue scenes added to pharmacy by BBZ01 with code from Hooded Silence'
+'- Sleep should set to 100 if you have enough sleep now, and thousands of number separators added by Hooded Silence'
+'- various small things from hornguy6 (Idk)'
+'- New exercises for butt training and heavy weights to use the code below from Kevin Smarts'
+'- Code to allow training of butt and strength beyond 100 for bodybuilder Sveta from bgkjdgbizgblzdgbr'
+'- View bodysuit in stat window thanks to jeep91'
+'- The Uni Cafe now uses the system for bying food introduced with The Coffee Hole - bgkjdgbizgblzdgbr'
+'- new Katya events at Coffe hole and Uni from bgkjdgbizgblzdgbr'
+'- Clothing now tracks exposure of pussy, butt and nipples with extention to inhib range for them and school uniform checks now include skimpy tops by Kevin Smarts'
+'- small QoL fix to the stats display to add a date suffix based on the event generator system from Hooded Silence'
+'- Default school and sports uniforms now set by button in wardrobe and short cut to change into sports in suitable locations by Kevin Smarts'
+'- Can now end the rental agreement in shared apartment from Kevin Smarts'
+'- Starting willpower adjustment to fit lower max for various school groups from nutluck'
+'- filters for underwear and disposal for unwanted boidysuits from Kevin Smarts'
+'- Text edits from Vengeange_11, HotMike and nutluck'
+'- Bug fixes from Kevin Smarts, hornguy6, Derryth_Love, maankamara, Hooded Silence, Sword, bgkjdgbizgblzdgbr, noobtrain, 3xpurt, jeep91, Unstable.Egghead, HotMike and Anya.'
+'- Image pack from Anya (dev pack 0.9.0)'
+
 '0.8.9.2'
 '- Bug fixes'
 

+ 2 - 1
locations/wardrobe.qsrc

@@ -893,7 +893,7 @@ if $ARGS[0] = 'default_sport_options':
 				lastworndefpursenumber['sport'] = currentpursenumber
 				$lastworncoattype['sport'] = $coatworntype
 				lastworndefcoatnumber['sport'] = coatwornnumber
-				gs 'wardrobe', 'default_entry_wear', default_sport_number
+				gt $loc, $loc_arg
 			end
 		else
 			act'Put your regular clothes back on':
@@ -909,6 +909,7 @@ if $ARGS[0] = 'default_sport_options':
 				gs 'shoes', 'wear', $shoelastworntype['sport'], shoelastwornnumber['sport']
 				gs 'purses', 'wear', $shoelastworntype['sport'], shoelastwornnumber['sport']
 				gs 'coats', 'wear', $lastworncoattype['sport'], lastworndefcoatnumber['sport']
+				gt $loc, $loc_arg
 			end
 		end
 	end

+ 6 - 0
locations/willpower.qsrc

@@ -102,6 +102,12 @@ if $ARGS[0] = 'calc':
 	elseif pcs_sleep < 30:
 		will_calc += 5
 	end
+!!exhaustion (stamina)
+	if pcs_stam <= 0:
+		will_calc += 10
+	elseif pcs_stam < stammax / 5:
+		will_calc += 5
+	end
 !!hunger
 	if pcs_energy < 5:
 		will_calc += 50

Some files were not shown because too many files changed in this diff