Kaynağa Gözat

Merge remote-tracking branch 'Lusticon/master'

Kevin_Smarts 4 ay önce
ebeveyn
işleme
bd3698a933
54 değiştirilmiş dosya ile 529 ekleme ve 399 silme
  1. 2 8
      locations/LariskaSex.qsrc
  2. 4 4
      locations/MartinSex.qsrc
  3. 2 2
      locations/Peterroom.qsrc
  4. 5 5
      locations/Serge_kuh.qsrc
  5. 1 4
      locations/Zvereva_Sly_sex.qsrc
  6. 1 1
      locations/alex.qsrc
  7. 2 2
      locations/anushkaev1.qsrc
  8. 1 1
      locations/anushkaev2.qsrc
  9. 267 126
      locations/arousal.qsrc
  10. 1 0
      locations/barbershop.qsrc
  11. 1 1
      locations/bed_events.qsrc
  12. 1 1
      locations/bedr.qsrc
  13. 1 1
      locations/bedr2x.qsrc
  14. 8 8
      locations/brothel.qsrc
  15. 1 1
      locations/cardgame_durak.qsrc
  16. 5 2
      locations/city_saunawhore.qsrc
  17. 1 0
      locations/city_smalloffice.qsrc
  18. 1 1
      locations/cum_cleanup.qsrc
  19. 13 13
      locations/dinSex.qsrc
  20. 2 4
      locations/dinSex2.qsrc
  21. 4 1
      locations/din_bad.qsrc
  22. 2 2
      locations/din_van.qsrc
  23. 57 40
      locations/exercise.qsrc
  24. 1 0
      locations/food.qsrc
  25. 64 97
      locations/foto.qsrc
  26. 10 10
      locations/foto_events.qsrc
  27. 2 2
      locations/foto_model_documentary.qsrc
  28. 1 1
      locations/foto_practice.qsrc
  29. 1 1
      locations/foto_shoot.qsrc
  30. 2 2
      locations/gopsex.qsrc
  31. 1 1
      locations/gopskver.qsrc
  32. 1 1
      locations/gschool_sex.qsrc
  33. 8 16
      locations/hourly_events.qsrc
  34. 1 1
      locations/husbSex.qsrc
  35. 2 0
      locations/kit_din.qsrc
  36. 3 3
      locations/lesbidomhouse.qsrc
  37. 3 3
      locations/lesbimistress.qsrc
  38. 1 0
      locations/pav_clinic.qsrc
  39. 1 1
      locations/pav_shared_nestor.qsrc
  40. 1 1
      locations/pav_shared_oleg.qsrc
  41. 3 0
      locations/pav_train_hall.qsrc
  42. 4 4
      locations/placer_sex.qsrc
  43. 2 2
      locations/pod_ezd.qsrc
  44. 1 1
      locations/pod_whore.qsrc
  45. 10 8
      locations/pre_sleep.qsrc
  46. 3 2
      locations/pushkin_ballet_res.qsrc
  47. 1 1
      locations/sex_ev_reactions.qsrc
  48. 3 3
      locations/sexm.qsrc
  49. 1 1
      locations/sleep.qsrc
  50. 1 1
      locations/sleep_simple.qsrc
  51. 6 6
      locations/stat.qsrc
  52. 1 1
      locations/succubus.qsrc
  53. 6 0
      locations/vann.qsrc
  54. 1 1
      locations/zsoft_gopskverGorSlut.qsrc

+ 2 - 8
locations/LariskaSex.qsrc

@@ -32,10 +32,7 @@ if $ARGS[0] = 'undressed2':
 		act 'Lariska wears the Strap-on': gt 'LariskaSex', 'bj_1'
 	end
 	act 'Get dressed': 
-		if analplugout = 1:
-			analplugout = 0
-			analplugin = 1
-		end
+		if analplugout = 1: gs 'dinsex', 'after_anal'
 		if vibratorOUT = 1:
 			vibratorIN = 1
 			vibratorOUT = 0
@@ -709,10 +706,7 @@ if $ARGS[0] = 'boyfriend_sex':
 							gs 'arousal', 'bj', 5,'lesbian', 'group'
 							gs 'stat'
 							act 'Clean up':
-								if analplugout = 1:
-									analplugout = 0
-									analplugin = 1
-								end
+								if analplugout = 1: gs 'dinsex', 'after_anal'
 								if vibratorOUT = 1:
 									vibratorIN = 1
 									vibratorOUT = 0

+ 4 - 4
locations/MartinSex.qsrc

@@ -493,7 +493,7 @@ if $ARGS[0] = 'MartinTease1':
 		'And you can''t blame him for this reaction - you went from being a friendly flirt to showing him your pussy in under a minute, so most men would need a second to catch up with a reality that has gone utterly mad.'
 
 		if analplugin = 1:
-			analplugin = 0
+			analplugin = 0 & analplugout = 1
 			minut += 1
 			*nl
 			'<center><img <<$set_imgh>> src="images/locations/city/industrial/bar/sex/bar/martin/tease/buttplug.jpg"></center>'
@@ -605,7 +605,7 @@ if $ARGS[0] = 'MartinTease2':
 				'"There, better now?"'
 
 				if analplugin = 1:
-					analplugin = 0
+					analplugin = 0 & analplugout = 1
 					minut += 1
 					*nl
 					'<center><img <<$set_imgh>> src="images/locations/city/industrial/bar/sex/bar/martin/tease/buttplug.jpg"></center>'
@@ -670,7 +670,7 @@ if $ARGS[0] = 'MartinTease3':
 			*nl
 			'Considering how reluctant he was to let you "settle for an old man", he seems to be awfully happy about that same young <<$bodyVars[''desc'']>> woman stripping and exposing her privates to him.'
 		else
-			analplugin = 0
+			analplugin = 0 & analplugout = 1
 			minut += 1
 			*nl
 			'<center><img <<$set_imgh>> src="images/locations/city/industrial/bar/sex/bar/martin/tease/buttplug.jpg"></center>'
@@ -828,7 +828,7 @@ if $ARGS[0] = 'MartinTease4':
 					'"Maybe a little better than okay," he smirks.'
 					'Considering how reluctant he was to let you "settle for an old man", he seems to be awfully happy about teasing that same young <<$bodyVars[''desc'']>> woman while she''s stripping and exposing her privates to him.'
 				else
-					analplugin = 0
+					analplugin = 0 & analplugout = 1
 					minut += 1
 					*nl
 					'<center><img <<$set_imgh>> src="images/locations/city/industrial/bar/sex/bar/martin/tease/buttplug.jpg"></center>'

+ 2 - 2
locations/Peterroom.qsrc

@@ -72,7 +72,7 @@ if $ARGS[0] = 'start':
 			'You do as he says and feel leather cuffs being tightly fastened around your wrists.'
 
 			if analplugin = 1:
-				analplugin = 0
+				analplugin = 0 & analplugout = 1
 				'"What do we have here?" he asks as he grips the end of your butt plug and eases it out.'
 			end
 
@@ -141,7 +141,7 @@ if $ARGS[0] = 'klap':
 		'Your moans are muffled by the gag as Peter bears down on you from above. "Let''s see how well your sweet ass takes me..." he says'
 
 		if analplugin = 1:
-			analplugin = 0
+			analplugin = 0 & analplugout = 1
 			', pulls out your butt plug'
 		end
 

+ 5 - 5
locations/Serge_kuh.qsrc

@@ -488,7 +488,7 @@ if $ARGS[0] = 'izdev2':
 							'He slips his dick into your soppy pussy with one firm thrust, and begins to fuck you thoroughly. "Very nice, very wet... you''re a good little slut, <<$pcs_nickname>>. Did getting me off with your mouth really turn you on so much?"'
 							'To your shame you have to admit that: yes, yes it did.'
 							if analplugin = 1:
-								analplugin = 0
+								analplugin = 0 & analplugout = 1
 								'While Sergey keeps pounding your pussy, he begins to tug at your butt plug. It''s not that easy to take out while you''re moving constantly, and eventually Sergey stops fucking you for a second to pull it out.'
 							end
 							'With his cock still inside your pussy, he begins to finger your tight little asshole.'
@@ -925,7 +925,7 @@ if $ARGS[0] = 'izdev9':
 							'"When Sergey tells you to stop after a few minutes of throatfucking, his cock is covered in a layer of saliva. "Very good, <<$pcs_nickname>>. You''re almost as good as your classmate. Now get on your hands and knees."'
 							'Sergey''s hands explore your body greedily, but end up a little bit higher than you had anticipated.'
 							if analplugin = 1:
-								analplugin = 0
+								analplugin = 0 & analplugout = 1
 								'Sergey laughs when he finds your butt plug and says: "Wow, <<$pcs_nickname>>! I never would''ve thought... good for you, though. Let''s get this out of the way for now."'
 								'He carefully pulls your butt plug out of your ass, and plunges his fingers in to test how loose your ass is. "Very nice. That should make the next step easier. Will save some time, too... no need to take it slow!"'
 							end
@@ -1476,7 +1476,7 @@ if $ARGS[0] = 'izn1':
 			'"I have all day, slut! We''ll repeat this until you get it right! Hands behind your back!" he growls, and slaps your hand away once more.'
 			'He repeats this three more times. When he realizes you''re no longer trying to disobey him, he nods: "That''s better, slut. Turn around."'
 			if analplugin = 1:
-				analplugin = 0
+				analplugin = 0 & analplugout = 1
 				'Sergey notices your butt plug and pulls it out of you in one quick motion, tossing it aside carelessly.'
 			end
 			'When you turn your back to him, you feel his raging erection poking against the small of your back. He takes it in his hand and guides it towards your tight anus, and begins to work the head inside your asshole. "You handle pain well, slut", Sergey groans. "This should be easy for you."'
@@ -1545,7 +1545,7 @@ if $ARGS[0] = 'izn2':
 		'Then he stops, and rubs his cock against your puckered asshole.'
 		$orgasm_or = 'yes'
 		if analplugin = 1:
-			analplugin = 0
+			analplugin = 0 & analplugout = 1
 			'Or at least, he tries to. "What''s this?" he asked, a bit amazed... he was not expecting you to be wearing a butt plug! He grins as he pulls it out, and holds it in front of your mouth: "Lick it clean while I stuff your ass with something else, slut."'
 		end
 		'He slips one finger inside your ass, and then another. And then another! With three fingers inside you, he begins to move his hand.'
@@ -1748,7 +1748,7 @@ if $ARGS[0] = 'sex3':
 			'"Uncle Sergey, fuck me!" you tell him. It''s more of an order than a question, but Sergey seems happy to oblige and turns you around, showing his cock inside you in one firm thrust.'
 			'He''s satisfied enough to just fuck you for a while, but you notice his attention is going to your asshole more and more.'
 			if analplugin = 1:
-				analplugin = 0
+				analplugin = 0 & analplugout = 1
 				'Sergey laughs when he finds your butt plug and says: "Wow, <<$pcs_nickname>>! I never would''ve thought... good for you, though. Let''s get this out of the way for now."'
 				'He carefully pulls your butt plug out of your ass, and plunges his fingers in to test how loose your ass is. "Very nice. That should make the next step easier. Will save some time, too... no need to take it slow!"'
 			end

+ 1 - 4
locations/Zvereva_Sly_sex.qsrc

@@ -172,10 +172,7 @@ if $ARGS[0] = 'sex_end':
 		killvar '$pursebratype' & killvar 'pursebranumber'
 		gs 'clothing','wear_last_worn'
 
-		if analplugout = 1:
-			analplugout = 0
-			analplugin = 1
-		end
+		if analplugout = 1: gs 'dinsex', 'after_anal'
 		if vibratorOUT = 1:
 			vibratorIN = 1
 			vibratorOUT = 0

+ 1 - 1
locations/alex.qsrc

@@ -31,7 +31,7 @@ act 'Get on your knees and take it in your mouth':
 		'Alexey slaps you on your ass with the palm of his hand and says, "You''re wet like a slut already, do you like being fucked like this?"'
 		if analplugin = 1:
 			'Alexey pulls the plug out of your narrow and tight ass.'
-			analplugout = 1
+			analplugin = 0 & analplugout = 1
 		end
 		'Without stopping his relentless pounding of your pussy, Alexey smears one of his fingers with your lovejuices, and sticks it in your anus.'
 		'He moves his finger slowly, probing your anus and preparing it for his dick.'

+ 2 - 2
locations/anushkaev1.qsrc

@@ -134,7 +134,7 @@ if $ARGS[0] = 'strapon1':
 													anushkaQW['dom_nush'] -= 1
 													'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/anushka/bedroom/sex/strapon/strapme9.jpg"></center>'
 													if analplugin = 1:
-														analplugin = 0
+														analplugin = 0 & analplugout = 1
 														'She straddles your thighs to get a better position, then starts pulling on your butt plug. As you glance back, you see a huge grin on her face. "You won''t be needing this for a while..." she says as she pulls it free and shows it to you.'
 													else
 														'She straddles your thighs to get a better position and uses her hands to spread your ass cheeks. As you glance back, you see a huge grin on her face. She obviously loves the idea of fucking you in the ass.'
@@ -277,7 +277,7 @@ if $ARGS[0] = 'strapon1':
 										'Once she gets bored of you sucking the dildo, she flips your ass towards her.'
 										anushkaQW['dom_nush'] -= 1
 										if analplugin = 1:
-											analplugin = 0
+											analplugin = 0 & analplugout = 1
 											'She straddles your thighs to get a better position, then starts pulling on your butt plug. As you glance back, you see a huge grin on her face. "You won''t be needing this for a while..." she says as she pulls it free and shows it to you.'
 										else
 											'She straddles your thighs to get a better position and uses her hands to spread your ass cheeks. As you glance back, you see a huge grin on her face. She obviously loves the idea of fucking you in the ass.'

+ 1 - 1
locations/anushkaev2.qsrc

@@ -671,7 +671,7 @@ if $ARGS[0] = 'val3some':
 													'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/anushka/sex/spy/join/val/valnushs11.jpg"></center>'
 													'You nod at his request. "Sure, you can fuck my ass." you tell him and Anushka rolls off of you as Valentin moves up behind you. He grabs you by the hips and pulls you up into a doggy position. As he does, Anushka moves around in front of you and lies on her back with her legs spread. She places her hand on the back of your head and pulls your face to her crotch.'
 													*nl
-													if analplugin = 1: analplugin = 0 & 'Valentin pulls out your butt plug without mercy, and it comes out with a loud pop. You doing some anal training <<$pcs_nickname>>? Nice! No need to take it easy on you it seems.'
+													if analplugin = 1: analplugin = 0 & analplugout = 1 & 'Valentin pulls out your butt plug without mercy, and it comes out with a loud pop. You doing some anal training <<$pcs_nickname>>? Nice! No need to take it easy on you it seems.'
 													'As you lower your head, you feel Valentin''s cock pressing against your asshole, along with a squirt of lube. He rubs the tip of his dick against your asshole while you start to lick Anushka''s sopping wet pussy.'
 													*nl
 													'You groan as Valentin''s <<dick>>cm <<$dick_girth>> cock pops into your ass. He pauses to let you adjust before he slowly starts fucking your ass. The louder you moan the harder and rougher he gets. He seems to be really getting into it, making you think he is close when he cries out "Fuck, I''m about to cum!"'

+ 267 - 126
locations/arousal.qsrc

@@ -89,13 +89,8 @@ killvar 'orgasm_flag'
 
 if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0] ! 'count2':
 
-	if strpos($ARGS[2]+$ARGS[3]+$ARGS[4]+$ARGS[5]+$ARGS[6]+ $ARGS[7]+ $ARGS[8],'unaware') > 0:
-		temp_unaware = 1
-	end
-
-	if strpos($ARGS[2]+$ARGS[3]+$ARGS[4]+$ARGS[5]+$ARGS[6]+ $ARGS[7]+ $ARGS[8],'no_orgasm_msg') > 0:
-		temp_text = 1
-	end
+	if arrpos('$ARGS', 'unaware') >= 0: temp_unaware = 1
+	if arrpos('$ARGS', 'no_orgasm_msg') >= 0: temp_text = 1
 	
 	if mid($ARGS[2],1,4) = 'dick':
 		temp_dick = dyneval('result='+$ARGS[2])
@@ -106,12 +101,12 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		temp_silavag = silavag
 		$temp_dick_girth = $dick_girth
 	end
-	if strpos($ARGS[2]+$ARGS[3]+$ARGS[4]+$ARGS[5]+$ARGS[6]+ $ARGS[7]+ $ARGS[8],'rough')+strpos($ARGS[2]+$ARGS[3]+$ARGS[4]+$ARGS[5]+$ARGS[6]+ $ARGS[7]+ $ARGS[8],'beast') > 0: temp_silavag = 0
+	if arrpos('$ARGS', 'rape') >= 0 or arrpos('$ARGS', 'rough') >= 0 or arrpos('$ARGS', 'beast') >= 0: temp_silavag = 0
 	grange = dyneval('result=strpos(''skinny   slimx     well pr   thicker   thickx    massive   monstrous'',$ARGS[0])',mid($temp_dick_girth+'x',1,6))/2
 
 	!! first let us determine how slippery are pc''s holes
 	if vaginal_slip < pcs_horny / 10: vaginal_slip = pcs_horny / 10
-	if strpos($ARGS[2]+$ARGS[3]+$ARGS[4]+$ARGS[5]+$ARGS[6]+ $ARGS[7]+ $ARGS[8],'lube') > 0:
+	if arrpos('$ARGS', 'lube') >= 0:
 		if ar_anal_lube = 0:
 			if mid($ARGS[0],1,4) = 'anal':
 				anal_slip = 8
@@ -125,6 +120,9 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 			end
 		end
 	end
+	!! cum slippery
+	if cumsumvag > 0: vaginal_slip += rand(cumsumvag/10, cumsumvag/5)
+	if cumsumass > 0: anal_slip += rand(cumsumass/15, cumsumass/10)
 	!!	This is to allow a Succubus with the right skill level to handle any size then go back to original size
 	if succubusflag = 1 and sucskill >= 4:
 		if mid($ARGS[0],1,4) = 'vagi' and temp_dick ! pcs_vag:
@@ -175,12 +173,14 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 !!		!! No idea where else to put this. This is used for breast stimulation which will eventually cause lactation in sveta without her knowledge. If anyone knows a better place for this, please let me know. - milky_boobs.
 !!		milkedvolume += func('lact_lib','$get_breastmilk', 8, ARGS[1])
 	elseif $ARGS[0] = 'massage':
+		pcs_sweat += rand(2,4)*max(1,ARGS[1]/5)
 		count['massage'] = 1
 		stim['act'] = 25
 	elseif $ARGS[0] = 'foreplay':
 		count['foreplay'] = 1
 		stim['act'] = 20
 	elseif $ARGS[0] = 'cuni':
+		pcs_sweat += rand(0,1)*max(1,ARGS[1]/5)
 		orgasm_flag['vaginal'] = 1
 		count['cuni'] = 1
 		stim['mag'] += 4
@@ -203,6 +203,7 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		stim['act'] = 70
 		stim_les = 1
 	elseif $ARGS[0] = 'anal':
+		pcs_sweat += rand(1,4)*max(1,ARGS[1]/5)
 		stat['last_sex_day'] = daystart
 		orgasm_flag['anal'] = 1
 		if temp_unaware = 1:
@@ -215,8 +216,6 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		elseif pcs_traits['buttslut_lvl'] >= 2:
 			stim['mag'] += 3
 		end
-		if pcs_ass < temp_dick:pcs_ass += 1
-		if pcs_ass*2 < temp_dick:pcs_ass += 1
 		!! length and girth abilities of anus are not also separated , but I suppose that they are related although it is not propable
 		!! we can estimate difference in girth and length anal_girth_difference and anal_lenght_difference - names are shortened
 		altdif = temp_dick - pcs_ass
@@ -237,21 +236,38 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		if agrdif < 0: agrdif = 0
 		if altdif < 0: altdif = 0
 		!! rough sex always gives pain
-		if arrpos('$ARGS', 'rape') >= 0:         altdif += rand(temp_dick,temp_dick*2)    & agrdif += rand(grange*2,grange*4)
-		if arrpos('$ARGS', 'rough') >= 0:        altdif += rand(temp_dick/3,temp_dick/2)  & agrdif += rand(grange*3/2,grange*2)
-		if arrpos('$ARGS', 'gangbang') >= 0:     altdif += rand(temp_dick/4,temp_dick/2)  & agrdif += rand(grange,grange*3/2)
-		if arrpos('$ARGS', 'group') >= 0:        altdif += rand(temp_dick/4,temp_dick/3)  & agrdif += rand(grange*2/3,grange)
-		if arrpos('$ARGS', 'beast') >= 0:        altdif += rand(temp_dick/5,temp_dick/3)  & agrdif += rand(grange/2,grange)
-		if arrpos('$ARGS', 'maso') >= 0:         altdif += rand(temp_dick/6,temp_dick/4)  & agrdif += rand(grange/2,grange*2/3)
-		if arrpos('$ARGS', 'prostitution') >= 0: altdif += rand(temp_dick/7,temp_dick/4)  & agrdif += rand(grange/3,grange/2)
-		if arrpos('$ARGS', 'unknown') >= 0:      altdif += rand(temp_dick/8,temp_dick/5)  & agrdif += rand(grange/4,grange/3)
-		if arrpos('$ARGS', 'bound') >= 0:        altdif += rand(temp_dick/9,temp_dick/5)  & agrdif += rand(grange/5,grange/4)
-		if arrpos('$ARGS', 'sub') >= 0:          altdif += rand(temp_dick/10,temp_dick/6) & agrdif += rand(grange/6,grange/5)
+		if arrpos('$ARGS', 'rape') >= 0:             altdif += rand(temp_dick/7,temp_dick/4)   & agrdif += rand(grange/3,grange/2)
+		if arrpos('$ARGS', 'rough') >= 0:            altdif += rand(temp_dick/10,temp_dick/5)  & agrdif += rand(grange/5,grange/3)
+		if arrpos('$ARGS', 'gangbang') >= 0:         altdif += rand(temp_dick/12,temp_dick/6)  & agrdif += rand(grange/7,grange/5)
+		if arrpos('$ARGS', 'beast') >= 0:            altdif += rand(temp_dick/15,temp_dick/8)  & agrdif += rand(grange/10,grange/7)
+		if pain['asshole'] > rand(30,50):
+			!! if arrpos('$ARGS', 'group') >= 0:        altdif += rand(temp_dick/20,temp_dick/12) & agrdif += rand(grange/15,grange/10)
+			if arrpos('$ARGS', 'maso') >= 0:         altdif += rand(temp_dick/24,temp_dick/16) & agrdif += rand(grange/18,grange/12)
+		end
+		if pain['asshole'] > rand(40,60):
+			if arrpos('$ARGS', 'prostitution') >= 0: altdif += rand(temp_dick/28,temp_dick/20) & agrdif += rand(grange/20,grange/14)
+			!! if arrpos('$ARGS', 'unknown') >= 0:      altdif += rand(temp_dick/32,temp_dick/22) & agrdif += rand(grange/24,grange/17)
+			if arrpos('$ARGS', 'bound') >= 0:        altdif += rand(temp_dick/35,temp_dick/25) & agrdif += rand(grange/28,grange/20)
+			if arrpos('$ARGS', 'sub') >= 0:          altdif += rand(temp_dick/40,temp_dick/30) & agrdif += rand(grange/35,grange/25)
+		end
+		!! increase if already in pain
+		agrdif += iif(rand(pain['asshole']/2, pain['asshole']) > rand(20,30),rand(agrdif/2),0)
+		altdif += iif(rand(pain['asshole']/2, pain['asshole']) > rand(20,30),rand(altdif/2),0)
 		!! calculate the harm
 		agape = iif((agrdif + altdif) > 10*agape,(agrdif + altdif)/10,agape)
 		!! the pain lover the pleasure
 		gs 'pain', (agrdif + altdif)/5*max(1,ARGS[1]/5), 'asshole', 'stretch'
 		stim['act'] = stim['act'] - (agrdif + altdif)
+		!! force cum leak
+		if ARGS[1] > 0 and cumsumass > rand(pcs_ass/2,pcs_ass):
+			cumdectime -= 15+ARGS[1]*2
+			temp_gape = agape
+			agape = max(1, min(4,(agrdif + altdif)/10))
+			gs 'cum_manage', 'cum_decay'
+			agape = temp_gape
+		end
+		if pcs_ass < temp_dick:pcs_ass += 1
+		if pcs_ass*2 < temp_dick:pcs_ass += 1
 	elseif $ARGS[0] = 'anal_finger':
 		orgasm_flag['anal'] = 1
 		count['anal_finger'] = 1
@@ -292,11 +308,10 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 			if agape < 3:agape = 3
 		end
 	elseif $ARGS[0] = 'anal_dildo':
+		pcs_sweat += rand(0,2)*max(1,ARGS[1]/5)
 		orgasm_flag['anal'] = 1
 		count['anal_dildo'] = 1
 		!! the same as for 'anal'
-		if pcs_ass < temp_dick:pcs_ass += 1
-		if pcs_ass*2 < temp_dick:pcs_ass += 1
 		altdif = temp_dick - pcs_ass
 		agrdif = grange - pcs_ass
 		altdif = altdif / (temp_silavag+1)
@@ -312,27 +327,40 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		end
 		if agrdif < 0: agrdif = 0
 		if altdif < 0: altdif = 0
-		!! rough sex always gives pain
-		if arrpos('$ARGS', 'rape') >= 0:         altdif += rand(temp_dick,temp_dick*2)    & agrdif += rand(grange*2,grange*4)
-		if arrpos('$ARGS', 'rough') >= 0:        altdif += rand(temp_dick/3,temp_dick/2)  & agrdif += rand(grange*3/2,grange*2)
-		if arrpos('$ARGS', 'gangbang') >= 0:     altdif += rand(temp_dick/4,temp_dick/2)  & agrdif += rand(grange,grange*3/2)
-		if arrpos('$ARGS', 'group') >= 0:        altdif += rand(temp_dick/4,temp_dick/3)  & agrdif += rand(grange*2/3,grange)
-		if arrpos('$ARGS', 'beast') >= 0:        altdif += rand(temp_dick/5,temp_dick/3)  & agrdif += rand(grange/2,grange)
-		if arrpos('$ARGS', 'maso') >= 0:         altdif += rand(temp_dick/6,temp_dick/4)  & agrdif += rand(grange/2,grange*2/3)
-		if arrpos('$ARGS', 'prostitution') >= 0: altdif += rand(temp_dick/7,temp_dick/4)  & agrdif += rand(grange/3,grange/2)
-		if arrpos('$ARGS', 'unknown') >= 0:      altdif += rand(temp_dick/8,temp_dick/5)  & agrdif += rand(grange/4,grange/3)
-		if arrpos('$ARGS', 'bound') >= 0:        altdif += rand(temp_dick/9,temp_dick/5)  & agrdif += rand(grange/5,grange/4)
-		if arrpos('$ARGS', 'sub') >= 0:          altdif += rand(temp_dick/10,temp_dick/6) & agrdif += rand(grange/6,grange/5)
+		if arrpos('$ARGS', 'rape') >= 0:             altdif += rand(temp_dick/7,temp_dick/4)   & agrdif += rand(grange/3,grange/2)
+		if arrpos('$ARGS', 'rough') >= 0:            altdif += rand(temp_dick/10,temp_dick/5)  & agrdif += rand(grange/5,grange/3)
+		if arrpos('$ARGS', 'gangbang') >= 0:         altdif += rand(temp_dick/12,temp_dick/6)  & agrdif += rand(grange/7,grange/5)
+		if arrpos('$ARGS', 'beast') >= 0:            altdif += rand(temp_dick/15,temp_dick/8)  & agrdif += rand(grange/10,grange/7)
+		if pain['asshole'] > rand(30,50):
+			!! if arrpos('$ARGS', 'group') >= 0:        altdif += rand(temp_dick/20,temp_dick/12) & agrdif += rand(grange/15,grange/10)
+			if arrpos('$ARGS', 'maso') >= 0:         altdif += rand(temp_dick/24,temp_dick/16) & agrdif += rand(grange/18,grange/12)
+		end
+		if pain['asshole'] > rand(40,60):
+			if arrpos('$ARGS', 'prostitution') >= 0: altdif += rand(temp_dick/28,temp_dick/20) & agrdif += rand(grange/20,grange/14)
+			!! if arrpos('$ARGS', 'unknown') >= 0:      altdif += rand(temp_dick/32,temp_dick/22) & agrdif += rand(grange/24,grange/17)
+			if arrpos('$ARGS', 'bound') >= 0:        altdif += rand(temp_dick/35,temp_dick/25) & agrdif += rand(grange/28,grange/20)
+			if arrpos('$ARGS', 'sub') >= 0:          altdif += rand(temp_dick/40,temp_dick/30) & agrdif += rand(grange/35,grange/25)
+		end
+		agrdif += iif(rand(pain['asshole']/2, pain['asshole']) > rand(20,30),rand(agrdif/2),0)
+		altdif += iif(rand(pain['asshole']/2, pain['asshole']) > rand(20,30),rand(altdif/2),0)
 		agape = iif((agrdif + altdif) > 10*agape,(agrdif + altdif)/10,agape)
 		gs 'pain', (agrdif + altdif)/5*max(1,ARGS[1]/5), 'asshole', 'stretch'
 		stim['act'] = stim['act'] - (agrdif + altdif)
+		if ARGS[1] > 0 and cumsumass > rand(pcs_ass/2,pcs_ass):
+			cumdectime -= 15+ARGS[1]*2
+			temp_gape = agape
+			agape = max(1, min(4,(agrdif + altdif)/10))
+			gs 'cum_manage', 'cum_decay'
+			agape = temp_gape
+		end
+		if pcs_ass < temp_dick:pcs_ass += 1
+		if pcs_ass*2 < temp_dick:pcs_ass += 1
 	elseif $ARGS[0] = 'anal_strap':
+		pcs_sweat += rand(1,2)*max(1,ARGS[1]/5)
 		stat['last_sex_day'] = daystart
 		orgasm_flag['anal'] = 1
 		count['anal_strap'] = 1
 		!! the same as for 'anal'
-		if pcs_ass < temp_dick:pcs_ass += 1
-		if pcs_ass*2 < temp_dick:pcs_ass += 1
 		altdif = temp_dick - pcs_ass
 		agrdif = grange - pcs_ass
 		altdif = altdif / (temp_silavag+1)
@@ -348,20 +376,35 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		end
 		if agrdif < 0: agrdif = 0
 		if altdif < 0: altdif = 0
-		!! rough sex always gives pain
-		if arrpos('$ARGS', 'rape') >= 0:         altdif += rand(temp_dick,temp_dick*2)    & agrdif += rand(grange*2,grange*4)
-		if arrpos('$ARGS', 'rough') >= 0:        altdif += rand(temp_dick/3,temp_dick/2)  & agrdif += rand(grange*3/2,grange*2)
-		if arrpos('$ARGS', 'gangbang') >= 0:     altdif += rand(temp_dick/4,temp_dick/2)  & agrdif += rand(grange,grange*3/2)
-		if arrpos('$ARGS', 'group') >= 0:        altdif += rand(temp_dick/4,temp_dick/3)  & agrdif += rand(grange*2/3,grange)
-		if arrpos('$ARGS', 'beast') >= 0:        altdif += rand(temp_dick/5,temp_dick/3)  & agrdif += rand(grange/2,grange)
-		if arrpos('$ARGS', 'maso') >= 0:         altdif += rand(temp_dick/6,temp_dick/4)  & agrdif += rand(grange/2,grange*2/3)
-		if arrpos('$ARGS', 'prostitution') >= 0: altdif += rand(temp_dick/7,temp_dick/4)  & agrdif += rand(grange/3,grange/2)
-		if arrpos('$ARGS', 'unknown') >= 0:      altdif += rand(temp_dick/8,temp_dick/5)  & agrdif += rand(grange/4,grange/3)
-		if arrpos('$ARGS', 'bound') >= 0:        altdif += rand(temp_dick/9,temp_dick/5)  & agrdif += rand(grange/5,grange/4)
-		if arrpos('$ARGS', 'sub') >= 0:          altdif += rand(temp_dick/10,temp_dick/6) & agrdif += rand(grange/6,grange/5)
+		if arrpos('$ARGS', 'rape') >= 0:             altdif += rand(temp_dick/7,temp_dick/4)   & agrdif += rand(grange/3,grange/2)
+		if arrpos('$ARGS', 'rough') >= 0:            altdif += rand(temp_dick/10,temp_dick/5)  & agrdif += rand(grange/5,grange/3)
+		if arrpos('$ARGS', 'gangbang') >= 0:         altdif += rand(temp_dick/12,temp_dick/6)  & agrdif += rand(grange/7,grange/5)
+		if arrpos('$ARGS', 'beast') >= 0:            altdif += rand(temp_dick/15,temp_dick/8)  & agrdif += rand(grange/10,grange/7)
+		if pain['asshole'] > rand(30,50):
+			!! if arrpos('$ARGS', 'group') >= 0:        altdif += rand(temp_dick/20,temp_dick/12) & agrdif += rand(grange/15,grange/10)
+			if arrpos('$ARGS', 'maso') >= 0:         altdif += rand(temp_dick/24,temp_dick/16) & agrdif += rand(grange/18,grange/12)
+		end
+		if pain['asshole'] > rand(40,60):
+			if arrpos('$ARGS', 'prostitution') >= 0: altdif += rand(temp_dick/28,temp_dick/20) & agrdif += rand(grange/20,grange/14)
+			!! if arrpos('$ARGS', 'unknown') >= 0:      altdif += rand(temp_dick/32,temp_dick/22) & agrdif += rand(grange/24,grange/17)
+			if arrpos('$ARGS', 'bound') >= 0:        altdif += rand(temp_dick/35,temp_dick/25) & agrdif += rand(grange/28,grange/20)
+			if arrpos('$ARGS', 'sub') >= 0:          altdif += rand(temp_dick/40,temp_dick/30) & agrdif += rand(grange/35,grange/25)
+		end
+		agrdif += iif(rand(pain['asshole']/2, pain['asshole']) > rand(20,30),rand(agrdif/2),0)
+		altdif += iif(rand(pain['asshole']/2, pain['asshole']) > rand(20,30),rand(altdif/2),0)
 		agape = iif((agrdif + altdif) > 10*agape,(agrdif + altdif)/10,agape)
 		gs 'pain', (agrdif + altdif)/5*max(1,ARGS[1]/5), 'asshole', 'stretch'
 		stim['act'] = stim['act'] - (agrdif + altdif)
+		!! force cum leak
+		if ARGS[1] > 0 and cumsumass > rand(pcs_ass/2,pcs_ass):
+			cumdectime -= 15+ARGS[1]*2
+			temp_gape = agape
+			agape = max(1, min(4,(agrdif + altdif)/10))
+			gs 'cum_manage', 'cum_decay'
+			agape = temp_gape
+		end
+		if pcs_ass < temp_dick:pcs_ass += 1
+		if pcs_ass*2 < temp_dick:pcs_ass += 1
 	elseif $ARGS[0] = 'anal_vibe':
 		orgasm_flag['anal'] = 1
 		count['anal_vibe'] = 1
@@ -375,7 +418,7 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 			stim['act'] = 90
 		end
 	elseif $ARGS[0] = 'vaginal':
-		
+		pcs_sweat += rand(1,3)*max(1,ARGS[1]/5)
 		orgasm_flag['vaginal'] = 1
 		!! pre-cum check
 		if rand(0,120) < ARGS[1]: cumprecheck = 1 & gs 'cum_manage'
@@ -395,8 +438,6 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 			stat['last_man_sex_day'] = daystart
 		end
 		stim['mag'] += 3
-		if pcs_vag < temp_dick:pcs_vag += 1
-		if pcs_vag*2 < temp_dick:pcs_vag += 1
 		!! length and girth abilities of vagina are not separated , but I suppose that they are related
 		!! we can estimate difference in girth and length vaginal_girth_difference and vaginal_lenght_difference - names are shortened
 		vgrdif = grange - pcs_vag
@@ -417,27 +458,45 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		if vgrdif < 0: vgrdif = 0
 		if vltdif < 0: vltdif = 0
 		!! rough sex always gives pain
-		if arrpos('$ARGS', 'rape') >= 0:         vltdif += rand(temp_dick,temp_dick*3/2)   & vgrdif += rand(grange*3/2,grange*2)
-		if arrpos('$ARGS', 'rough') >= 0:        vltdif += rand(temp_dick/5,temp_dick/4)   & vgrdif += rand(grange,grange*3/2)
-		if arrpos('$ARGS', 'gangbang') >= 0:     vltdif += rand(temp_dick/6,temp_dick/5)   & vgrdif += rand(grange/2,grange)
-		if arrpos('$ARGS', 'group') >= 0:        vltdif += rand(temp_dick/7,temp_dick/6)   & vgrdif += rand(grange/3,grange*2/3)
-		if arrpos('$ARGS', 'beast') >= 0:        vltdif += rand(temp_dick/8,temp_dick/7)   & vgrdif += rand(grange/3,grange/2)
-		if arrpos('$ARGS', 'maso') >= 0:         vltdif += rand(temp_dick/9,temp_dick/8)   & vgrdif += rand(grange/4,grange/3)
-		if arrpos('$ARGS', 'prostitution') >= 0: vltdif += rand(temp_dick/10,temp_dick/8)  & vgrdif += rand(grange/5,grange/3)
-		if arrpos('$ARGS', 'unknown') >= 0:      vltdif += rand(temp_dick/10,temp_dick/9)  & vgrdif += rand(grange/5,grange/4)
-		if arrpos('$ARGS', 'bound') >= 0:        vltdif += rand(temp_dick/11,temp_dick/10) & vgrdif += rand(grange/6,grange/5)
-		if arrpos('$ARGS', 'sub') >= 0:          vltdif += rand(temp_dick/14,temp_dick/12) & vgrdif += rand(grange/7,grange/6)
+		if arrpos('$ARGS', 'rape') >= 0:             vltdif += rand(temp_dick/9,temp_dick/6)   & vgrdif += rand(grange/5,grange/3)
+		if arrpos('$ARGS', 'rough') >= 0:            vltdif += rand(temp_dick/12,temp_dick/7)  & vgrdif += rand(grange/7,grange/5)
+		if arrpos('$ARGS', 'gangbang') >= 0:         vltdif += rand(temp_dick/15,temp_dick/9)  & vgrdif += rand(grange/10,grange/7)
+		if arrpos('$ARGS', 'beast') >= 0:            vltdif += rand(temp_dick/18,temp_dick/12) & vgrdif += rand(grange/13,grange/9)
+		if pain['asshole'] > rand(30,50):
+			!! if arrpos('$ARGS', 'group') >= 0:        vltdif += rand(temp_dick/25,temp_dick/15) & vgrdif += rand(grange/18,grange/14)
+			if arrpos('$ARGS', 'maso') >= 0:         vltdif += rand(temp_dick/28,temp_dick/19) & vgrdif += rand(grange/21,grange/17)
+		end
+		if pain['asshole'] > rand(40,60):
+			if arrpos('$ARGS', 'prostitution') >= 0: vltdif += rand(temp_dick/32,temp_dick/25) & vgrdif += rand(grange/24,grange/18)
+			!! if arrpos('$ARGS', 'unknown') >= 0:      vltdif += rand(temp_dick/34,temp_dick/26) & vgrdif += rand(grange/27,grange/22)
+			if arrpos('$ARGS', 'bound') >= 0:        vltdif += rand(temp_dick/38,temp_dick/29) & vgrdif += rand(grange/32,grange/26)
+			if arrpos('$ARGS', 'sub') >= 0:          vltdif += rand(temp_dick/45,temp_dick/35) & vgrdif += rand(grange/40,grange/32)
+		end
+		!! increase if already in pain
+		vgrdif += iif(rand(pain['vaginal']/2, pain['vaginal']) > rand(20,30),rand(vgrdif/2),0)
+		vltdif += iif(rand(pain['vaginal']/2, pain['vaginal']) > rand(20,30),rand(vltdif/2),0)
 		!! calculate the harm
 		vgape = iif((vgrdif + vltdif) > 10*vgape,(vgrdif + vltdif)/10,vgape)
 		!! the pain lover the pleasure
 		gs 'pain', (vgrdif + vltdif)/5*max(1,ARGS[1]/5), 'vaginal', 'stretch'
 		stim['act'] = stim['act'] - (vgrdif + vltdif)
+		!! force cum leak
+		if ARGS[1] > 0 and cumsumvag > rand(pcs_vag/2,pcs_vag):
+			cumdectime -= 15+ARGS[1]*2
+			temp_gape = vgape
+			vgape = max(1, min(4,(vgrdif + vltdif)/10))
+			gs 'cum_manage', 'cum_decay'
+			vgape = temp_gape
+		end
+		if pcs_vag < temp_dick:pcs_vag += 1
+		if pcs_vag*2 < temp_dick:pcs_vag += 1
 	elseif $ARGS[0] = 'vaginal_finger':
 		orgasm_flag['vaginal'] = 1
 		count['vaginal_finger'] = 1
 		stim['mag'] += 1
 		stim['act'] = 80
 	elseif $ARGS[0] = 'vaginal_fist':
+		pcs_sweat += rand(0,1)*max(1,ARGS[1]/5)
 		orgasm_flag['vaginal'] = 1
 		count['vaginal_fist'] = 1
 		stim['act'] = 70
@@ -458,12 +517,11 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 			if vgape < 3:vgape = 3
 		end
 	elseif $ARGS[0] = 'vaginal_dildo':
+		pcs_sweat += rand(0,2)*max(1,ARGS[1]/5)
 		orgasm_flag['vaginal'] = 1
 		count['vaginal_dildo'] = 1
 		stim['mag'] += 1
 		!! the same as for 'vaginal'
-		if pcs_vag < temp_dick:pcs_vag += 1
-		if pcs_vag*2 < temp_dick:pcs_vag += 1
 		vgrdif = grange - pcs_vag
 		vltdif = temp_dick - pcs_vag
 		vltdif = vltdif / (temp_silavag+1)
@@ -474,21 +532,36 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		stim['act'] = 80 - (iif(vltdif>0,vltdif,-vltdif) + iif(vgrdif >0,vgrdif,-vgrdif)) + temp_silavag*8
 		if vgrdif < 0: vgrdif = 0
 		if vltdif < 0: vltdif = 0
-		!! rough sex always gives pain
-		if arrpos('$ARGS', 'rape') >= 0:         vltdif += rand(temp_dick,temp_dick*3/2)   & vgrdif += rand(grange*3/2,grange*2)
-		if arrpos('$ARGS', 'rough') >= 0:        vltdif += rand(temp_dick/5,temp_dick/4)   & vgrdif += rand(grange,grange*3/2)
-		if arrpos('$ARGS', 'gangbang') >= 0:     vltdif += rand(temp_dick/6,temp_dick/5)   & vgrdif += rand(grange/2,grange)
-		if arrpos('$ARGS', 'group') >= 0:        vltdif += rand(temp_dick/7,temp_dick/6)   & vgrdif += rand(grange/3,grange*2/3)
-		if arrpos('$ARGS', 'beast') >= 0:        vltdif += rand(temp_dick/8,temp_dick/7)   & vgrdif += rand(grange/3,grange/2)
-		if arrpos('$ARGS', 'maso') >= 0:         vltdif += rand(temp_dick/9,temp_dick/8)   & vgrdif += rand(grange/4,grange/3)
-		if arrpos('$ARGS', 'prostitution') >= 0: vltdif += rand(temp_dick/10,temp_dick/8)  & vgrdif += rand(grange/5,grange/3)
-		if arrpos('$ARGS', 'unknown') >= 0:      vltdif += rand(temp_dick/10,temp_dick/9)  & vgrdif += rand(grange/5,grange/4)
-		if arrpos('$ARGS', 'bound') >= 0:        vltdif += rand(temp_dick/11,temp_dick/10) & vgrdif += rand(grange/6,grange/5)
-		if arrpos('$ARGS', 'sub') >= 0:          vltdif += rand(temp_dick/14,temp_dick/12) & vgrdif += rand(grange/7,grange/6)
+		if arrpos('$ARGS', 'rape') >= 0:             vltdif += rand(temp_dick/9,temp_dick/6)   & vgrdif += rand(grange/5,grange/3)
+		if arrpos('$ARGS', 'rough') >= 0:            vltdif += rand(temp_dick/12,temp_dick/7)  & vgrdif += rand(grange/7,grange/5)
+		if arrpos('$ARGS', 'gangbang') >= 0:         vltdif += rand(temp_dick/15,temp_dick/9)  & vgrdif += rand(grange/10,grange/7)
+		if arrpos('$ARGS', 'beast') >= 0:            vltdif += rand(temp_dick/18,temp_dick/12) & vgrdif += rand(grange/13,grange/9)
+		if pain['asshole'] > rand(30,50):
+			!! if arrpos('$ARGS', 'group') >= 0:        vltdif += rand(temp_dick/25,temp_dick/15) & vgrdif += rand(grange/18,grange/14)
+			if arrpos('$ARGS', 'maso') >= 0:         vltdif += rand(temp_dick/28,temp_dick/19) & vgrdif += rand(grange/21,grange/17)
+		end
+		if pain['asshole'] > rand(40,60):
+			if arrpos('$ARGS', 'prostitution') >= 0: vltdif += rand(temp_dick/32,temp_dick/25) & vgrdif += rand(grange/24,grange/18)
+			!! if arrpos('$ARGS', 'unknown') >= 0:      vltdif += rand(temp_dick/34,temp_dick/26) & vgrdif += rand(grange/27,grange/22)
+			if arrpos('$ARGS', 'bound') >= 0:        vltdif += rand(temp_dick/38,temp_dick/29) & vgrdif += rand(grange/32,grange/26)
+			if arrpos('$ARGS', 'sub') >= 0:          vltdif += rand(temp_dick/45,temp_dick/35) & vgrdif += rand(grange/40,grange/32)
+		end
+		vgrdif += iif(rand(pain['vaginal']/2, pain['vaginal']) > rand(20,30),rand(vgrdif/2),0)
+		vltdif += iif(rand(pain['vaginal']/2, pain['vaginal']) > rand(20,30),rand(vltdif/2),0)
 		vgape = iif((vgrdif + vltdif) > 10*vgape,(vgrdif + vltdif)/10,vgape)
 		gs 'pain', (vgrdif + vltdif)/5*max(1,ARGS[1]/5), 'vaginal', 'stretch'
 		stim['act'] = stim['act'] - (vgrdif + vltdif)
+		if ARGS[1] > 0 and cumsumvag > rand(pcs_vag/2,pcs_vag):
+			cumdectime -= 15+ARGS[1]*2
+			temp_gape = vgape
+			vgape = max(1, min(4,(vgrdif + vltdif)/10))
+			gs 'cum_manage', 'cum_decay'
+			vgape = temp_gape
+		end
+		if pcs_vag < temp_dick:pcs_vag += 1
+		if pcs_vag*2 < temp_dick:pcs_vag += 1
 	elseif $ARGS[0] = 'vaginal_strap':
+		pcs_sweat += rand(1,2)*max(1,ARGS[1]/5)
 		orgasm_flag['vaginal'] = 1
 		count['vaginal_strap'] = 1
 		if stat['think_virgin'] = 1:
@@ -502,9 +575,6 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 			!! if dont_know_npc_name
 		end
 		stim['mag'] += 1
-		!! virginal capacity increase
-		if pcs_vag < temp_dick:pcs_vag += 1
-		if pcs_vag*2 < temp_dick:pcs_vag += 1
 		!! the same as for 'vaginal'
 		vgrdif = grange - pcs_vag
 		vltdif = temp_dick - pcs_vag
@@ -516,20 +586,34 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		stim['act'] = 80 - (iif(vltdif>0,vltdif,-vltdif) + iif(vgrdif >0,vgrdif,-vgrdif)) + temp_silavag*8
 		if vgrdif < 0: vgrdif = 0
 		if vltdif < 0: vltdif = 0
-		!! rough sex always gives pain
-		if arrpos('$ARGS', 'rape') >= 0:         vltdif += rand(temp_dick,temp_dick*3/2)   & vgrdif += rand(grange*3/2,grange*2)
-		if arrpos('$ARGS', 'rough') >= 0:        vltdif += rand(temp_dick/5,temp_dick/4)   & vgrdif += rand(grange,grange*3/2)
-		if arrpos('$ARGS', 'gangbang') >= 0:     vltdif += rand(temp_dick/6,temp_dick/5)   & vgrdif += rand(grange/2,grange)
-		if arrpos('$ARGS', 'group') >= 0:        vltdif += rand(temp_dick/7,temp_dick/6)   & vgrdif += rand(grange/3,grange*2/3)
-		if arrpos('$ARGS', 'beast') >= 0:        vltdif += rand(temp_dick/8,temp_dick/7)   & vgrdif += rand(grange/3,grange/2)
-		if arrpos('$ARGS', 'maso') >= 0:         vltdif += rand(temp_dick/9,temp_dick/8)   & vgrdif += rand(grange/4,grange/3)
-		if arrpos('$ARGS', 'prostitution') >= 0: vltdif += rand(temp_dick/10,temp_dick/8)  & vgrdif += rand(grange/5,grange/3)
-		if arrpos('$ARGS', 'unknown') >= 0:      vltdif += rand(temp_dick/10,temp_dick/9)  & vgrdif += rand(grange/5,grange/4)
-		if arrpos('$ARGS', 'bound') >= 0:        vltdif += rand(temp_dick/11,temp_dick/10) & vgrdif += rand(grange/6,grange/5)
-		if arrpos('$ARGS', 'sub') >= 0:          vltdif += rand(temp_dick/14,temp_dick/12) & vgrdif += rand(grange/7,grange/6)
+		if arrpos('$ARGS', 'rape') >= 0:             vltdif += rand(temp_dick/9,temp_dick/6)   & vgrdif += rand(grange/5,grange/3)
+		if arrpos('$ARGS', 'rough') >= 0:            vltdif += rand(temp_dick/12,temp_dick/7)  & vgrdif += rand(grange/7,grange/5)
+		if arrpos('$ARGS', 'gangbang') >= 0:         vltdif += rand(temp_dick/15,temp_dick/9)  & vgrdif += rand(grange/10,grange/7)
+		if arrpos('$ARGS', 'beast') >= 0:            vltdif += rand(temp_dick/18,temp_dick/12) & vgrdif += rand(grange/13,grange/9)
+		if pain['asshole'] > rand(30,50):
+			!! if arrpos('$ARGS', 'group') >= 0:        vltdif += rand(temp_dick/25,temp_dick/15) & vgrdif += rand(grange/18,grange/14)
+			if arrpos('$ARGS', 'maso') >= 0:         vltdif += rand(temp_dick/28,temp_dick/19) & vgrdif += rand(grange/21,grange/17)
+		end
+		if pain['asshole'] > rand(40,60):
+			if arrpos('$ARGS', 'prostitution') >= 0: vltdif += rand(temp_dick/32,temp_dick/25) & vgrdif += rand(grange/24,grange/18)
+			!! if arrpos('$ARGS', 'unknown') >= 0:      vltdif += rand(temp_dick/34,temp_dick/26) & vgrdif += rand(grange/27,grange/22)
+			if arrpos('$ARGS', 'bound') >= 0:        vltdif += rand(temp_dick/38,temp_dick/29) & vgrdif += rand(grange/32,grange/26)
+			if arrpos('$ARGS', 'sub') >= 0:          vltdif += rand(temp_dick/45,temp_dick/35) & vgrdif += rand(grange/40,grange/32)
+		end
+		vgrdif += iif(rand(pain['vaginal']/2, pain['vaginal']) > rand(20,30),rand(vgrdif/2),0)
+		vltdif += iif(rand(pain['vaginal']/2, pain['vaginal']) > rand(20,30),rand(vltdif/2),0)
 		vgape = iif((vgrdif + vltdif) > 10*vgape,(vgrdif + vltdif)/10,vgape)
 		gs 'pain', (vgrdif + vltdif)/5*max(1,ARGS[1]/5), 'vaginal', 'stretch'
 		stim['act'] = stim['act'] - (vgrdif + vltdif)
+		if ARGS[1] > 0 and cumsumvag > rand(pcs_vag/2,pcs_vag):
+			cumdectime -= 15+ARGS[1]*2
+			temp_gape = vgape
+			vgape = max(1, min(4,(vgrdif + vltdif)/10))
+			gs 'cum_manage', 'cum_decay'
+			vgape = temp_gape
+		end
+		if pcs_vag < temp_dick:pcs_vag += 1
+		if pcs_vag*2 < temp_dick:pcs_vag += 1
 	elseif $ARGS[0] = 'vaginal_vibe':
 		orgasm_flag['vaginal'] = 1
 		count['vaginal_vibe'] = 1
@@ -548,12 +632,14 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		count['pee'] = 1
 		stim['act'] = 10
 	elseif $ARGS[0] = 'massage_give':
+		pcs_sweat += rand(3,6)*max(1,ARGS[1]/5)
 		count['massage_give'] = 1
 		stim['act'] = 10
 	elseif $ARGS[0] = 'foreplay_give':
 		count['foreplay_give'] = 1
 		stim['act'] = 20
 	elseif $ARGS[0] = 'cuni_give':
+		pcs_sweat += rand(0,1)*max(1,ARGS[1]/5)
 		count['cuni_give'] = 1
 		stim['act'] = 30
 		stim_les = 1
@@ -567,12 +653,14 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		count['anal_fist_give'] = 1
 		stim['act'] = 30
 	elseif $ARGS[0] = 'anal_dildo_give':
+		pcs_sweat += rand(0,1)*max(1,ARGS[1]/5)
 		count['anal_dildo_give'] = 1
 		stim['act'] = 40
 	elseif $ARGS[0] = 'anal_vibe_give':
 		count['anal_vibe_give'] = 1
 		stim['act'] = 40
 	elseif $ARGS[0] = 'anal_strap_give':
+		pcs_sweat += rand(2,4)*max(1,ARGS[1]/5)
 		count['anal_strap_give'] = 1
 		stim['act'] = 40
 	elseif $ARGS[0] = 'vaginal_finger_give':
@@ -588,10 +676,12 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		stim['act'] = 50
 		stim_les = 1
 	elseif $ARGS[0] = 'vaginal_dildo_give':
+		pcs_sweat += rand(0,1)*max(1,ARGS[1]/5)
 		count['vaginal_dildo_give'] = 1
 		stim['act'] = 60
 		stim_les = 1
 	elseif $ARGS[0] = 'vaginal_strap_give':
+		pcs_sweat += rand(2,4)*max(1,ARGS[1]/5)
 		count['vaginal_strap_give'] = 1
 		stim['act'] = 70
 		stim_les = 1
@@ -600,6 +690,7 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		stim['act'] = 60
 		stim_les = 1
 	elseif $ARGS[0] = 'hj':
+		pcs_sweat += rand(0,3)*max(1,ARGS[1]/5)
 		if temp_unaware = 1:
 			count['hidden_hj'] = 1
 		else
@@ -607,6 +698,7 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		end
 		stim['act'] = 25
 	elseif $ARGS[0] = 'bj':
+		pcs_sweat += rand(0,1)*max(1,ARGS[1]/5)
 		if temp_unaware = 1:
 			count['hidden_bj'] = 1
 		else
@@ -614,8 +706,6 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		end
 		stim['act'] = 45
 		if arrpos('$ARGS', 'deepthroat') >= 0:
-			if pcs_throat < temp_dick:pcs_throat += 1
-			if pcs_throat*2 < temp_dick:pcs_throat += 1
 			tgrdif = grange - pcs_throat
 			tltdif = temp_dick - pcs_throat
 			tltdif = tltdif / (temp_silavag+1)
@@ -627,26 +717,31 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 			stim['act'] = 80 - (iif(tltdif>0,tltdif,-tltdif) + iif(tgrdif >0,tgrdif,-tgrdif)) + temp_silavag*8
 			if tgrdif < 0: tgrdif = 0
 			if tltdif < 0: tltdif = 0
-			!! rough sex always gives pain
-			if arrpos('$ARGS', 'rape') >= 0:         tltdif += rand(temp_dick,temp_dick*2)     & tgrdif += rand(grange*2,grange*3)
-			if arrpos('$ARGS', 'rough') >= 0:        tltdif += rand(temp_dick,temp_dick*3/2)   & tgrdif += rand(grange*2/3,grange*2)
-			if arrpos('$ARGS', 'gangbang') >= 0:     tltdif += rand(temp_dick/2,temp_dick)     & tgrdif += rand(grange,grange*2/3)
-			if arrpos('$ARGS', 'group') >= 0:        tltdif += rand(temp_dick/3,temp_dick/2)   & tgrdif += rand(grange*3/2,grange)
-			if arrpos('$ARGS', 'beast') >= 0:        tltdif += rand(temp_dick/5,temp_dick/3)   & tgrdif += rand(grange/2,grange*3/2)
-			if arrpos('$ARGS', 'maso') >= 0:         tltdif += rand(temp_dick/7,temp_dick/4)   & tgrdif += rand(grange/3,grange/2)
-			if arrpos('$ARGS', 'prostitution') >= 0: tltdif += rand(temp_dick/8,temp_dick/5)   & tgrdif += rand(grange/4,grange/3)
-			if arrpos('$ARGS', 'unknown') >= 0:      tltdif += rand(temp_dick/10,temp_dick/7)  & tgrdif += rand(grange/5,grange/4)
-			if arrpos('$ARGS', 'bound') >= 0:        tltdif += rand(temp_dick/11,temp_dick/9)  & tgrdif += rand(grange/6,grange/5)
-			if arrpos('$ARGS', 'sub') >= 0:          tltdif += rand(temp_dick/14,temp_dick/11) & tgrdif += rand(grange/7,grange/6)
+			if arrpos('$ARGS', 'rape') >= 0:             tltdif += rand(temp_dick/8,temp_dick/5)   & tgrdif += rand(grange/4,grange/2)
+			if arrpos('$ARGS', 'rough') >= 0:            tltdif += rand(temp_dick/10,temp_dick/6)  & tgrdif += rand(grange/6,grange/4)
+			if arrpos('$ARGS', 'gangbang') >= 0:         tltdif += rand(temp_dick/13,temp_dick/8)  & tgrdif += rand(grange/8,grange/6)
+			if arrpos('$ARGS', 'beast') >= 0:            tltdif += rand(temp_dick/16,temp_dick/10) & tgrdif += rand(grange/10,grange/8)
+			if pain['asshole'] > rand(30,50):
+				!! if arrpos('$ARGS', 'group') >= 0:        tltdif += rand(temp_dick/23,temp_dick/13) & tgrdif += rand(grange/16,grange/13)
+				if arrpos('$ARGS', 'maso') >= 0:         tltdif += rand(temp_dick/25,temp_dick/16) & tgrdif += rand(grange/19,grange/15)
+			end
+			if pain['asshole'] > rand(40,60):
+				if arrpos('$ARGS', 'prostitution') >= 0: tltdif += rand(temp_dick/30,temp_dick/19) & tgrdif += rand(grange/21,grange/17)
+				!! if arrpos('$ARGS', 'unknown') >= 0:      tltdif += rand(temp_dick/32,temp_dick/23) & tgrdif += rand(grange/24,grange/19)
+				if arrpos('$ARGS', 'bound') >= 0:        tltdif += rand(temp_dick/35,temp_dick/26) & tgrdif += rand(grange/29,grange/23)
+				if arrpos('$ARGS', 'sub') >= 0:          tltdif += rand(temp_dick/38,temp_dick/33) & tgrdif += rand(grange/35,grange/28)
+			end
+			tgrdif += iif(rand(pain['throat']/2, pain['throat']) > rand(20,30),rand(tgrdif/2),0)
+			tltdif += iif(rand(pain['throat']/2, pain['throat']) > rand(20,30),rand(tltdif/2),0)
 			gs 'pain', (tgrdif + tltdif)/5*max(1,ARGS[1]/5), 'throat', 'stretch'
+			if pcs_throat < temp_dick:pcs_throat += 1
+			if pcs_throat*2 < temp_dick:pcs_throat += 1
 		end
 		if pcs_throat*3 < temp_dick:pcs_throat += 1
 	elseif $ARGS[0] = 'dildo_suck':
 		count['dildo_suck'] = 1
 		stim['act'] = 30
 		if arrpos('$ARGS', 'deepthroat') >= 0:
-			if pcs_throat < temp_dick:pcs_throat += 1
-			if pcs_throat*2 < temp_dick:pcs_throat += 1
 			tgrdif = grange - pcs_throat
 			tltdif = temp_dick - pcs_throat
 			tltdif = tltdif / (temp_silavag+1)
@@ -658,21 +753,29 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 			stim['act'] = 80 - (iif(tltdif>0,tltdif,-tltdif) + iif(tgrdif >0,tgrdif,-tgrdif)) + temp_silavag*8
 			if tgrdif < 0: tgrdif = 0
 			if tltdif < 0: tltdif = 0
-			!! rough sex always gives pain
-			if arrpos('$ARGS', 'rape') >= 0:         tltdif += rand(temp_dick,temp_dick*2)     & tgrdif += rand(grange*2,grange*3)
-			if arrpos('$ARGS', 'rough') >= 0:        tltdif += rand(temp_dick,temp_dick*3/2)   & tgrdif += rand(grange*2/3,grange*2)
-			if arrpos('$ARGS', 'gangbang') >= 0:     tltdif += rand(temp_dick/2,temp_dick)     & tgrdif += rand(grange,grange*2/3)
-			if arrpos('$ARGS', 'group') >= 0:        tltdif += rand(temp_dick/3,temp_dick/2)   & tgrdif += rand(grange*3/2,grange)
-			if arrpos('$ARGS', 'beast') >= 0:        tltdif += rand(temp_dick/5,temp_dick/3)   & tgrdif += rand(grange/2,grange*3/2)
-			if arrpos('$ARGS', 'maso') >= 0:         tltdif += rand(temp_dick/7,temp_dick/4)   & tgrdif += rand(grange/3,grange/2)
-			if arrpos('$ARGS', 'prostitution') >= 0: tltdif += rand(temp_dick/8,temp_dick/5)   & tgrdif += rand(grange/4,grange/3)
-			if arrpos('$ARGS', 'unknown') >= 0:      tltdif += rand(temp_dick/10,temp_dick/7)  & tgrdif += rand(grange/5,grange/4)
-			if arrpos('$ARGS', 'bound') >= 0:        tltdif += rand(temp_dick/11,temp_dick/9)  & tgrdif += rand(grange/6,grange/5)
-			if arrpos('$ARGS', 'sub') >= 0:          tltdif += rand(temp_dick/14,temp_dick/11) & tgrdif += rand(grange/7,grange/6)
+			if arrpos('$ARGS', 'rape') >= 0:             tltdif += rand(temp_dick/8,temp_dick/5)   & tgrdif += rand(grange/4,grange/2)
+			if arrpos('$ARGS', 'rough') >= 0:            tltdif += rand(temp_dick/10,temp_dick/6)  & tgrdif += rand(grange/6,grange/4)
+			if arrpos('$ARGS', 'gangbang') >= 0:         tltdif += rand(temp_dick/13,temp_dick/8)  & tgrdif += rand(grange/8,grange/6)
+			if arrpos('$ARGS', 'beast') >= 0:            tltdif += rand(temp_dick/16,temp_dick/10) & tgrdif += rand(grange/10,grange/8)
+			if pain['asshole'] > rand(30,50):
+				!! if arrpos('$ARGS', 'group') >= 0:        tltdif += rand(temp_dick/23,temp_dick/13) & tgrdif += rand(grange/16,grange/13)
+				if arrpos('$ARGS', 'maso') >= 0:         tltdif += rand(temp_dick/25,temp_dick/16) & tgrdif += rand(grange/19,grange/15)
+			end
+			if pain['asshole'] > rand(40,60):
+				if arrpos('$ARGS', 'prostitution') >= 0: tltdif += rand(temp_dick/30,temp_dick/19) & tgrdif += rand(grange/21,grange/17)
+				!! if arrpos('$ARGS', 'unknown') >= 0:      tltdif += rand(temp_dick/32,temp_dick/23) & tgrdif += rand(grange/24,grange/19)
+				if arrpos('$ARGS', 'bound') >= 0:        tltdif += rand(temp_dick/35,temp_dick/26) & tgrdif += rand(grange/29,grange/23)
+				if arrpos('$ARGS', 'sub') >= 0:          tltdif += rand(temp_dick/38,temp_dick/33) & tgrdif += rand(grange/35,grange/28)
+			end
+			tgrdif += iif(rand(pain['throat']/2, pain['throat']) > rand(20,30),rand(tgrdif/2),0)
+			tltdif += iif(rand(pain['throat']/2, pain['throat']) > rand(20,30),rand(tltdif/2),0)
 			gs 'pain', (tgrdif + tltdif)/5*max(1,ARGS[1]/5), 'throat', 'stretch'
+			if pcs_throat < temp_dick:pcs_throat += 1
+			if pcs_throat*2 < temp_dick:pcs_throat += 1
 		end
 		if pcs_throat*3 < temp_dick:pcs_throat += 1
 	elseif $ARGS[0] = 'footjob':
+		pcs_sweat += rand(0,2)*max(1,ARGS[1]/5)
 		if temp_unaware = 1:
 			count['hidden_footjob'] = 1
 		else
@@ -681,6 +784,7 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		stim['act'] = 25
 		stim_foot = 1
 	elseif $ARGS[0] = 'titjob':
+		pcs_sweat += rand(3,5)*max(1,ARGS[1]/5)
 		if temp_unaware = 1:
 			count['hidden_titjob'] = 1
 		else
@@ -689,11 +793,13 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		stim['act'] = 45
 		stim_titjob = 1
 	elseif $ARGS[0] = 'BDSM_give':
+		pcs_sweat += rand(0,3)*max(1,ARGS[1]/5)
 		count['BDSM_give'] = 1
 		stim['act'] = 20
 	elseif $ARGS[0] = 'pee_give':
 		count['pee_give'] = 1
 		stim['act'] = 10
+		last_pee = totminut
 	end
 
 	!! anal acts
@@ -702,18 +808,44 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 			stim['act'] += 20
 		end
 	end
-
-	if arrpos('$ARGS', 'rape') >= 0:         pcs_hairbsh = iif(rand(30, pcs_hairlng)>30,-1,pcs_hairbsh)  & pcs_sweat += rand(0,2)*max(1,ARGS[1]/5)
-	if arrpos('$ARGS', 'rough') >= 0:        pcs_hairbsh = iif(rand(30, pcs_hairlng)>40,-1,pcs_hairbsh)  & pcs_sweat += rand(1,2)*max(1,ARGS[1]/5)
-	if arrpos('$ARGS', 'gangbang') >= 0:     pcs_hairbsh = iif(rand(30, pcs_hairlng)>50,-1,pcs_hairbsh)  & pcs_sweat += rand(2,4)*max(1,ARGS[1]/5)
-	if arrpos('$ARGS', 'group') >= 0:        pcs_hairbsh = iif(rand(30, pcs_hairlng)>75,-1,pcs_hairbsh)  & pcs_sweat += rand(1,3)*max(1,ARGS[1]/5)
-	if arrpos('$ARGS', 'beast') >= 0:        pcs_hairbsh = iif(rand(30, pcs_hairlng)>100,-1,pcs_hairbsh) & pcs_sweat += rand(0,2)*max(1,ARGS[1]/5)
-	if arrpos('$ARGS', 'maso') >= 0:         pcs_hairbsh = iif(rand(30, pcs_hairlng)>125,rand(-1,0),pcs_hairbsh) & pcs_sweat += rand(0,1)*max(1,ARGS[1]/5)
-	if arrpos('$ARGS', 'prostitution') >= 0: pcs_hairbsh = iif(rand(30, pcs_hairlng)>150,rand(-1,0),pcs_hairbsh) & pcs_sweat += rand(0,1)*max(1,ARGS[1]/5)
-	if arrpos('$ARGS', 'unknown') >= 0:      pcs_hairbsh = iif(rand(30, pcs_hairlng)>200,rand(-1,pcs_hairbsh),pcs_hairbsh)
-	if arrpos('$ARGS', 'bound') >= 0:        pcs_hairbsh = iif(rand(30, pcs_hairlng)>250,rand(0,pcs_hairbsh),pcs_hairbsh)
-	if arrpos('$ARGS', 'sub') >= 0:          pcs_hairbsh = iif(rand(30, pcs_hairlng)>300,rand(0,pcs_hairbsh),pcs_hairbsh)
-
+	
+	if pcs_hairbsh >= 0:
+		if arrpos('$ARGS', 'rape') >= 0:          pcs_hairbsh = iif(rand(30, pcs_hairlng)>30,-1,pcs_hairbsh)
+		if arrpos('$ARGS', 'rough') >= 0:         pcs_hairbsh = iif(rand(30, pcs_hairlng)>40,-1,pcs_hairbsh)
+		if arrpos('$ARGS', 'gangbang') >= 0:      pcs_hairbsh = iif(rand(30, pcs_hairlng)>50,-1,pcs_hairbsh)
+		if arrpos('$ARGS', 'group') >= 0:         pcs_hairbsh = iif(rand(30, pcs_hairlng)>70,-1,pcs_hairbsh)
+		if arrpos('$ARGS', 'BDSM') >= 0:          pcs_hairbsh = iif(rand(30, pcs_hairlng)>80,-1,pcs_hairbsh)
+		if arrpos('$ARGS', 'beast') >= 0:         pcs_hairbsh = iif(rand(30, pcs_hairlng)>100,-1,pcs_hairbsh)
+		if arrpos('$ARGS', 'maso') >= 0:          pcs_hairbsh = iif(rand(30, pcs_hairlng)>125,rand(-1,0),pcs_hairbsh)
+		if arrpos('$ARGS', 'prostitution') >= 0:  pcs_hairbsh = iif(rand(30, pcs_hairlng)>150,rand(-1,0),pcs_hairbsh)
+		if arrpos('$ARGS', 'unknown') >= 0:       pcs_hairbsh = iif(rand(30, pcs_hairlng)>200,rand(-1,pcs_hairbsh),pcs_hairbsh)
+		if arrpos('$ARGS', 'anal') >= 0 _ 
+		or arrpos('$ARGS', 'anal_strap') >= 0:    pcs_hairbsh = iif(rand(30, pcs_hairlng)>220,rand(-1,pcs_hairbsh),pcs_hairbsh)
+		if arrpos('$ARGS', 'vaginal') >= 0 _ 
+		or arrpos('$ARGS', 'vaginal_strap') >= 0: pcs_hairbsh = iif(rand(30, pcs_hairlng)>240,rand(-1,pcs_hairbsh),pcs_hairbsh)
+		if arrpos('$ARGS', 'bound') >= 0:         pcs_hairbsh = iif(rand(30, pcs_hairlng)>270,rand(0,pcs_hairbsh),pcs_hairbsh)
+		if arrpos('$ARGS', 'sub') >= 0:           pcs_hairbsh = iif(rand(30, pcs_hairlng)>300,rand(0,pcs_hairbsh),pcs_hairbsh)
+	end
+	if pcs_makeup > 1:
+		if arrpos('$ARGS', 'rape') >= 0:                  pcs_makeup = iif(rand(pcs_makeup, pcs_makupskl/10)<7,0,pcs_makeup)
+		if arrpos('$ARGS', 'rough') >= 0:                 pcs_makeup = iif(rand(pcs_makeup, pcs_makupskl/10)<5,0,pcs_makeup)
+		if arrpos('$ARGS', 'gangbang') >= 0:              pcs_makeup = iif(rand(pcs_makeup, pcs_makupskl/10)<5,0,pcs_makeup)
+		if arrpos('$ARGS', 'beast') >= 0:                 pcs_makeup = iif(rand(pcs_makeup, pcs_makupskl/10)<4,0,pcs_makeup)
+		if (arrpos('$ARGS', 'bj') >= 0 _ 
+		or arrpos('$ARGS', 'cuni_give') >= 0):            pcs_makeup = iif(rand(pcs_makeup, pcs_makupskl/10)<3,rand(0,1),pcs_makeup)
+		if arrpos('$ARGS', 'bj') >= 0 or arrpos('$ARGS', 'deepthroat') >= 0:
+			if arrpos('$ARGS', 'group') >= 0:             pcs_makeup = iif(rand(pcs_makeup, pcs_makupskl/10)<3,0,pcs_makeup)
+			if arrpos('$ARGS', 'BDSM') >= 0:              pcs_makeup = iif(rand(pcs_makeup, pcs_makupskl/10)<3,0,pcs_makeup)
+			if arrpos('$ARGS', 'deepthroat') >= 0:
+				if arrpos('$ARGS', 'maso') >= 0:          pcs_makeup = iif(rand(pcs_makeup, pcs_makupskl/10)<3,0,pcs_makeup)
+				if arrpos('$ARGS', 'prostitution') >= 0:  pcs_makeup = iif(rand(pcs_makeup, pcs_makupskl/10)<4,0,pcs_makeup)
+				if arrpos('$ARGS', 'unknown') >= 0:       pcs_makeup = iif(rand(pcs_makeup, pcs_makupskl/10)<4,0,pcs_makeup)
+				if arrpos('$ARGS', 'bound') >= 0:         pcs_makeup = iif(rand(pcs_makeup, pcs_makupskl/10)<5,0,pcs_makeup)
+				if arrpos('$ARGS', 'sub') >= 0:           pcs_makeup = iif(rand(pcs_makeup, pcs_makupskl/10)<5,0,pcs_makeup)
+			end
+		end
+	end
+	
 	if stim['mag'] > 9: stim['mag'] = 9
 
 	if ARGS[1] > 0: minut += ARGS[1]
@@ -986,6 +1118,7 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 	killvar '$orgasm_txt'
 	killvar '$stim_les'
 	killvar '$stim_foot'
+	killvar 'temp_gape'
 	
 	gs 'nichUtil','onArouse',$ARGS[0]
 	
@@ -1056,7 +1189,15 @@ if $ARGS[0] = 'end':
 		end
 		stat['anal_partners'] += 1
 	end
-	
+
+	if analplugout > 0:
+		if pain['asshole'] > 10:
+			gs 'dinsex', 'after_anal','no_plug'
+		else
+			gs 'dinsex', 'after_anal','pc'
+		end
+	end
+
 	killvar 'anal_slip'
 	killvar 'ar_anal_lube'
 	killvar 'vaginal_slip'

+ 1 - 0
locations/barbershop.qsrc

@@ -158,6 +158,7 @@ elseif barbershop_wrk = 1 and barbershop_wrk_day ! daystart:
 		menu_off = 1
 		minut += 60
 		money += 125
+		gs 'exp_gain', 'cleaning', rand(1,2)
 		barbershop_wrk_day = daystart
 		gs 'stat'
 		'You work diligently and fast. You clean the floor, take out the trash, dust off the shelves and wipe some mirrors and windows. Before you know an hour has passed and you''re 125 <b>₽</b> richer.'

+ 1 - 1
locations/bed_events.qsrc

@@ -148,7 +148,7 @@ if $ARGS[0] = 'rab2':
 	act 'Suck it':
 		*clr & cla
 
-		if analplugIN = 1: analplugIN = 0
+		if analplugIN = 1: analplugIN = 0 & analplugout = 1
 		if pcs_makeup ! 1 and cosmetic_tattoo = 0: pcs_makeup = 0
 
 		'<center><img <<$set_imgh>> src="images/characters/city/nicholas/sex/r1.jpg"></center>'

+ 1 - 1
locations/bedr.qsrc

@@ -131,8 +131,8 @@ if husbandrink = 10 and hour > 20 and hour < 23 and husbanstrapon = 0:
 			husbanstrapon = 1
 			minut += 10
 			'<center><img <<$set_imgh>> src="images/characters/city/husband/sex/h0.jpg"></center>'
-			if analplugin = 1: 'You pull the plug out of you and shove it up his ass.'
 			if analplugin = 0: 'You take an anal plug and put it into his ass.'
+			if analplugin = 1: analplugIN = 0 & analplugout = 0 & 'You pull the plug out of you and shove it up his ass.'
 
 			'<<$husName>> moves, but he doesn''t wake up.'
 

+ 1 - 1
locations/bedr2x.qsrc

@@ -121,8 +121,8 @@ if husbandrink = 10 and hour > 20 and hour < 23 and husbanstrapon = 0:
 			husbanstrapon = 1
 			minut += 10
 			'<center><img <<$set_imgh>> src="images/characters/city/husband/sex/h0.jpg"></center>'
-			if analplugin = 1: 'You get your butt plug out and pull down his pants. You put just a dab of lube on the tip of the plug, then gently insert it into his ass.'
 			if analplugin = 0: 'You take an anal plug and put it into his ass.'
+			if analplugin = 1: analplugIN = 0 & analplugout = 0 & 'You get your butt plug out and pull down his pants. You put just a dab of lube on the tip of the plug, then gently insert it into his ass.'
 			'<<$husName>> moves, but he doesn''t wake up.'
 
 			if mc_inventory['dildo_small'] > 0:

+ 8 - 8
locations/brothel.qsrc

@@ -333,7 +333,7 @@ if $ARGS[0] = 'abducted5':
 end
 
 if $ARGS[0] = 'abducted6':
-	analplugIN = 0
+	analplugIN = 0 & analplugout = 1
 	*nl
 	'<center><video autoplay loop src="images/locations/shared/brothel/pullplugfromass.mp4"></video></center>'
 	*nl
@@ -1641,7 +1641,7 @@ if $ARGS[0] = 'section1_pushplugout':
 	menu_off = 1
 	minut += 1
 	custTime += 1
-	analplugIN = 0
+	analplugIN = 0 & analplugout = 1
 	gs 'pain', 3, 'asshole', 'cramp'
 	gs 'stat'
 
@@ -1706,7 +1706,7 @@ if $ARGS[0] = 'section1_play_stretch':
 	  	gt 'brothel', 'section1_buttplug_stretch'
 	elseif stage = 5:
 	  	stage += 1
-	  	analplugIN = 0
+	  	analplugIN = 0 & analplugout = 1
 	  	gt 'brothel', 'section1_vagfisting'
 	elseif stage = 6:
 	  	stage += 1
@@ -2020,7 +2020,7 @@ if $ARGS[0] = 'section1_finish':
 					'The Client seems to disregard that, as he pounds your pussy even deeper...'
 					'<font color=#<<$pcs_font>>>"Owwwwuuch! Pleaaase no, no, take it ouuuut! Maaaster, pleaaase!"</font>'
 					'Just as you say that the next pound of the Client''s dick pushes out the plug, which falls out down between your bound legs.'
-					analplugIN = 0
+					analplugIN = 0 & analplugout = 1
 					gs 'pain', 2, 'pussy', 'stretch'
 					gs 'stat'
 				else
@@ -2082,7 +2082,7 @@ if $ARGS[0] = 'section1_finish':
 					'<font color=#<<$pcs_font>>>"Owwwwuuch! Pleaaase no, no, take it ouuuut! Maaaster, pleaaase!"</font>'
 					'Just as you say that the next pound of the Client''s dick pushes out the plug, which falls out down between your bound legs.'
 					'The Client seems to disregard that, as he stretches your anus even more with his phallus... Or maybe he does it on purpose!'
-					analplugIN = 0
+					analplugIN = 0 & analplugout = 1
 					gs 'pain', 2, 'anus', 'stretch'
 					gs 'stat'
 				else
@@ -2102,7 +2102,7 @@ if $ARGS[0] = 'section1_finish':
 					'The Client seems to disregard that, as he stretches your anus even more with his phallus...'
 					'<font color=#<<$pcs_font>>>"Owwwwuuch! Pleaaase no, no, take it ouuuut! Maaaster, pleaaase!"</font>'
 					'Just as you say that the next pound of the Client''s dick pushes out the plug, which falls out down between your bound legs.'
-					analplugIN = 0
+					analplugIN = 0 & analplugout = 1
 					gs 'pain', 4, 'anus', 'stretch'
 					gs 'stat'
 				else
@@ -2249,7 +2249,7 @@ if $ARGS[0] = 'section1_end':
 			'<center><video autoplay loop src="images/locations/shared/brothel/pullplugfromass.mp4"></video></center>'
 			'With one hard pull he rips the plug out of your anus, causing your already abused anus additional pain!'
 			'<font color=#<<$pcs_font>>>"Ouuuuchhhhh! You moron, you didn''t even pay for this!"</font>'
-			analplugIN = 0
+			analplugIN = 0 & analplugout = 1
 			gs 'pain', 3, 'asshole', 'stretch'
 			gs 'stat'
 			act 'Yell at him to untie you': gt 'brothel', 'section1_end'
@@ -2274,7 +2274,7 @@ if $ARGS[0] = 'section1_end':
 		'<center><video autoplay loop src="images/locations/shared/brothel/pullplugfromassyourself.mp4"></video></center>'
 		'<font color=#<<$pcs_font>>>Oww... Oww... Owwwch!</font> with a loud wet "pop" the plug finally goes out!'
 		step = 0
-		analplugIN = 0
+		analplugIN = 0 & analplugout = 1
 		gs 'pain', 4, 'asshole', 'stretch'
 		gs 'stat'
 		act 'Throw it away and leave': gt 'brothel', 'brothel_dressingroom', '1'

+ 1 - 1
locations/cardgame_durak.qsrc

@@ -515,7 +515,7 @@ if $ARGS[0] = 'card_game_rough_sex':
 		'"I want your ass next, bitch", <<$boydesc>> says. "Get on your hands and knees, and offer yourself to me."'
 		'You hesitantly do as he says, spreading your buttocks with your hands once you lower yourself to the ground.'
 		if analplugin = 1:
-			analplugin = 0
+			analplugin = 0 & analplugout = 1
 
 			'<<$boydesc>> laughs: "This would only get in the way. Out you go!", and he tugs the plug out of your ass and tosses it aside.'
 		end

+ 5 - 2
locations/city_saunawhore.qsrc

@@ -260,6 +260,7 @@ if $ARGS[0] = 'saunawork':
 			minut += 60
 			clenerSauna = daystart
 			pcs_mood -= 25
+			gs 'exp_gain', 'cleaning', rand(1,3)
 			menu_off = 1
 			gs 'sweat', 'add', 30
 			gs 'stat'
@@ -283,6 +284,7 @@ if $ARGS[0] = 'saunawork':
 			menu_off = 1
 			minut += 60
 			clenerSauna2 = daystart
+			gs 'exp_gain', 'cleaning', rand(1,2)
 			pcs_mood -= 25
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/locations/city/residential/office/clener1.jpg"></center>'
@@ -546,7 +548,7 @@ if $ARGS[0] = 'clientGate':
 end
 
 if $ARGS[0] = 'striptease':
-	if pcs_dancero < 20:pcs_dancero += rand(1,3)
+	gs 'exp_gain', 'dancero', rand(0,1)
 	if pcs_inhib < 40:
 		inhib_exp += rand(2,4)
 	elseif pcs_inhib >= 40 and pcs_inhib < 60:
@@ -561,7 +563,7 @@ if $ARGS[0] = 'striptease':
 end
 
 if $ARGS[0] = 'simplystrip':
-	if pcs_dancero < 10: pcs_dancero += rand(0,2)
+	gs 'exp_gain', 'dancero', rand(0,1)
 	if pcs_inhib < 40:
 		inhib_exp += rand(1,2)
 	elseif pcs_inhib >= 40 and pcs_inhib < 60:
@@ -586,6 +588,7 @@ if $ARGS[0] = 'strippedGate':
 end
 
 if $ARGS[0] = 'nakeddance':
+	gs 'exp_gain', 'dancero', rand(0,1)
 	if pcs_inhib < 40:
 		inhib_exp += rand(3,6)
 	elseif pcs_inhib >= 40 and pcs_inhib < 60:

+ 1 - 0
locations/city_smalloffice.qsrc

@@ -314,6 +314,7 @@ if $ARGS[0] = 'start':
 			menu_off = 1
 			clendayT = daystart
 			minut += 60
+			gs 'exp_gain', 'cleaning', rand(1,3)
 			clenerT += 1
 			pcs_mood -= 25
 			money += 65

+ 1 - 1
locations/cum_cleanup.qsrc

@@ -290,7 +290,7 @@ elseif $ARGS[0] = '':
 				and ((cumspclnt = 10 or cumspclnt = 1 or cumspclnt = 3) or cheatKlisma = 0)):
 					cumsumbod -= sparrvol[i] & cumsumass -= sparrvol[i]
 					sparrslc[i] = 0 & sparrvol[i] = 0
-					analplugin = 0
+					analplugin = 0 & analplugout = 0
 				end
 			else
 				cumsumbod -= sparrvol[i]

+ 13 - 13
locations/dinSex.qsrc

@@ -282,12 +282,11 @@ if $ARGS[0] = 'boy_wants_anal':
 	$bwa_boy = iif($ARGS[1] = '',$boydesc,$ARGS[1])
 	if $bwa_boy = 'lubri': $bwa_boy = $boydesc
 	if analplugin = 1:
+		analplugin = 0 & analplugout = 1
 		if pcs_ass < 16:
 			*p '<<$bwa_boy>> pulls the plug out of your narrow and tight ass, '
-			analplugout = 1
 		else
 			*p '<<$bwa_boy>> pulls the plug out of your ass, '
-			analplugout = 1
 		end
 	end
 	if $ARGS[2] = 'lubri':
@@ -317,12 +316,11 @@ if $ARGS[0] = 'girl_wants_anal':
 	$bwa_girl = iif($ARGS[1] = '',$boydesc,$ARGS[1])
 	if $bwa_girl = 'lubri': $bwa_girl = $boydesc
 	if analplugin = 1:
+		analplugin = 0 & analplugout = 1
 		if pcs_ass < 16:
 			*p '<<$bwa_girl>> pulls the plug out of your narrow and tight ass, '
-			analplugout = 1
 		else
 			*p '<<$bwa_girl>> pulls the plug out of your ass, '
-			analplugout = 1
 		end
 	end
 	if $ARGS[2] = 'lubri':
@@ -344,19 +342,14 @@ end &! --- girl_wants_anal ---
 !! gs 'dinsex', 'after_anal','boy',$boydesc
 if $ARGS[0] = 'after_anal':
 	if analplugout = 1:
+		analplugin = 1
 		if $ARGS[1] = 'boy':
-			analplugin = 1
 			'<<$ARGS[2]>> takes your butt plug and he puts it back into your anus. He grins: "Continue your training"' 
-		end
-		if $ARGS[1] = 'girl':
-			analplugin = 1
+		elseif $ARGS[1] = 'girl':
 			'<<$ARGS[2]>> takes your butt plug and she puts it back into your anus. She grins: "Continue your training"' 
-		end
-		if $ARGS[1] = 'pc':
-			analplugin = 1
+		elseif $ARGS[1] = 'pc':
 			'You take your butt plug and put it back into your anus. You grin: "I have to keep my butt trained"' 
-		end
-		if $ARGS[1] = 'no_plug':
+		elseif $ARGS[1] = 'no_plug' or pain['asshole'] > 10:
 			analplugin = 0
 			'You take your butt plug and put it into your purse. Your anus has to rest for a while now.' 
 		end
@@ -386,6 +379,13 @@ if $ARGS[0] = 'analsex':
 	*nl 'After some time <<$boydesc>> groans and you feel <<$xyr>> cock pulsing inside you '+iif(protect<>1,'and a pleasant warmth filling your ass. ','and you realized that <<$xe>> ejaculated in the <<$tmp>>condom. ')
 	gs 'cum_call','anus',$boy,1, sexcontra
 	if sexcontra = 4:'Pulling out of you and looking at <<$xyr>> dick, <<$boydesc>> said "Hmm, the condom burst."'
+	if analplugout > 0:
+		if pain['asshole'] > 10:
+			gs 'dinsex', 'after_anal','no_plug',$boydesc
+		else
+			gs 'dinsex', 'after_anal','boy',$boydesc
+		end
+	end
 end &! --- analsex ---
 
 !! this procedure calls 'cum_call','',$boy,1

+ 2 - 4
locations/dinSex2.qsrc

@@ -92,8 +92,7 @@ if $ARGS[0] = 'd_analsex_dildo':
 	frost = 0
 	if analplugin = 1:
 		'You pull the plug out of your narrow and tight ass.'
-		analplugin = 0
-		analplugout = 1
+		analplugin = 0 & analplugout = 1
 	end
 	if mc_inventory['lubricant'] = 0:
 		'You have no lube, so you spit on your fingers and use your saliva to lubricate your anus.'
@@ -155,8 +154,7 @@ if $ARGS[0] = 'd_analsex_bottle':
 
 	if analplugin = 1:
 		'You pull the plug out of your narrow and tight ass.'
-		analplugin = 0
-		analplugout = 1
+		analplugin = 0 & analplugout = 1
 	end
 	if mc_inventory['lubricant'] = 0:
 		'You have no lube, so you spit on your fingers and, using saliva, you massage your anus.'

+ 4 - 1
locations/din_bad.qsrc

@@ -193,7 +193,10 @@ if $ARGS[0] = 'd_bag':
 			'Automatically use for vaginal sex: <a href="exec:auto_vag_lube = 0 & gs ''stat'' & gs ''din_bad'', ''d_bag''">Yes</a>'
 		end
 	end
-	if FUNC('Cum_Manage', 'check_private') = 1: dynamic $toymanage
+	if FUNC('Cum_Manage', 'check_private') = 1:
+		dynamic $toymanage
+		if pirsA + pirsB + pirsC + pirsD + pirsE + pirsF + pirsN + pirsG > 0: act 'Manage your piercings': gt 'piercing_management', 'main'
+	end
 	*nl
 	if amphetamine > 0:	'You have <b><<amphetamine>></b> tablets of amphetamine left in your purse. <a href="exec: gs ''drugs'', ''amphetamine'' & gs ''din_bad'', ''d_bag''">Take One</a>'
 	if joint > 0: 'You have enough weed for <b><<joint>></b> joints.'

+ 2 - 2
locations/din_van.qsrc

@@ -968,7 +968,7 @@ $toymanage = {
 			cla
 			*clr
 			minut += 5
-			analplugIN = 0
+			analplugIN = 0 & analplugout = 0
 
 			if pcs_ass < 30:pcs_ass += 1
 
@@ -984,7 +984,7 @@ $toymanage = {
 			cla
 			*clr
 			minut += 5
-			analplugIN = 1
+			analplugIN = 1 & analplugout = 0
 
 			if pcs_ass < 10:pcs_ass += 5
 			if pcs_ass >= 10 and pcs_ass < 20:pcs_ass += rand(1, 2)

+ 57 - 40
locations/exercise.qsrc

@@ -41,7 +41,7 @@ if $ARGS[0] = 'workout':
 			gt $loc, $loc_arg
 		end
 	end
-	if pcs_energy < 20 or pcs_stam < stammax / 5:
+	if 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'
@@ -144,56 +144,73 @@ if $ARGS[0] = 'manual':
 	menu_off = 0
 	cla
 	act 'Return':gt 'exercise', 'workout'
-	if pcs_energy < 20 or pcs_stam < stammax / 5:
+	if pcs_stam < 5 * (10 - sport_clothes_exercise_bonus):
 		'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 mc_inventory['skipping_rope'] > 0 and $loc ! 'meadow':
-			act 'Jump rope for 15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'rope'
-		end
-		if mc_inventory['book_yoga'] > 0:
-			act 'Do yoga for 15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'yoga'
-		end
-		if mc_inventory['hula_hoop'] > 0 and $loc ! 'meadow':
-			act 'Use your hula hoop for 15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'hula'
-		end
-		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 mc_inventory['skipping_rope'] > 0 and $loc ! 'meadow':
-			act 'Jump rope for 30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt  'exercise', 'rope'
+		act 'Do pushups':
+			cla
+			act 'Return':gt 'exercise', 'manual'
+			if pcs_stam >= (15*1 * (10 - sport_clothes_exercise_bonus)) / 2: act '15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'push'
+			if pcs_stam >= (15*2 * (10 - sport_clothes_exercise_bonus)) / 2: act '30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt 'exercise', 'push'
+			if pcs_stam >= (15*3 * (10 - sport_clothes_exercise_bonus)) / 2: act '45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt 'exercise', 'push'
+			if pcs_stam >= (15*4 * (10 - sport_clothes_exercise_bonus)) / 2: act '60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt 'exercise', 'push'
 		end
-		if mc_inventory['book_yoga'] > 0:
-			act 'Do yoga for 30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt  'exercise', 'yoga'
+
+		act 'Do crunches':
+			cla
+			act 'Return':gt 'exercise', 'manual'
+			if pcs_stam >= (15*1 * (10 - sport_clothes_exercise_bonus)) / 2: act '15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'press'
+			if pcs_stam >= (15*2 * (10 - sport_clothes_exercise_bonus)) / 2: act '30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt 'exercise', 'press'
+			if pcs_stam >= (15*3 * (10 - sport_clothes_exercise_bonus)) / 2: act '45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt 'exercise', 'press'
+			if pcs_stam >= (15*4 * (10 - sport_clothes_exercise_bonus)) / 2: act '60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt 'exercise', 'press'
 		end
-		if mc_inventory['hula_hoop'] > 0 and $loc ! 'meadow':
-			act 'Use your hula hoop for 30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt  'exercise', 'hula'
+
+		act 'Do squats':
+			cla
+			act 'Return':gt 'exercise', 'manual'
+			if pcs_stam >= 5*1 * (10 - sport_clothes_exercise_bonus): act '15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'butt'
+			if pcs_stam >= 5*2 * (10 - sport_clothes_exercise_bonus): act '30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt 'exercise', 'butt'
+			if pcs_stam >= 5*3 * (10 - sport_clothes_exercise_bonus): act '45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt 'exercise', 'butt'
+			if pcs_stam >= 5*4 * (10 - sport_clothes_exercise_bonus): act '60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt 'exercise', 'butt'
 		end
-		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 mc_inventory['skipping_rope'] > 0 and $loc ! 'meadow':
-			act 'Jump rope for 45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt  'exercise', 'rope'
+			act 'Jump rope':
+				cla
+				act 'Return':gt 'exercise', 'manual'
+				if pcs_stam >= (15*1 * (10 - sport_clothes_exercise_bonus)) / 2: act '15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'rope'
+				if pcs_stam >= (15*2 * (10 - sport_clothes_exercise_bonus)) / 2: act '30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt  'exercise', 'rope'
+				if pcs_stam >= (15*3 * (10 - sport_clothes_exercise_bonus)) / 2: act '45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt  'exercise', 'rope'
+				if pcs_stam >= (15*4 * (10 - sport_clothes_exercise_bonus)) / 2: act '60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt  'exercise', 'rope'
+			end
 		end
+
 		if mc_inventory['book_yoga'] > 0:
-			act 'Do yoga for 45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt  'exercise', 'yoga'
+			act 'Do yoga':
+				cla
+				act 'Return':gt 'exercise', 'manual'
+				if pcs_stam >= 5*1 * (10 - sport_clothes_exercise_bonus): act '15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'yoga'
+				if pcs_stam >= 5*2 * (10 - sport_clothes_exercise_bonus): act '30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt  'exercise', 'yoga'
+				if pcs_stam >= 5*3 * (10 - sport_clothes_exercise_bonus): act '45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt  'exercise', 'yoga'
+				if pcs_stam >= 5*4 * (10 - sport_clothes_exercise_bonus): act '60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt  'exercise', 'yoga'
+			end
 		end
+
 		if mc_inventory['hula_hoop'] > 0 and $loc ! 'meadow':
-			act 'Use your hula hoop for 45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt  'exercise', 'hula'
-		end
-		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 mc_inventory['skipping_rope'] > 0 and $loc ! 'meadow':
-			act 'Jump rope for 60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt  'exercise', 'rope'
-		end
-		if mc_inventory['book_yoga'] > 0:
-			act 'Do yoga for 60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt  'exercise', 'yoga'
+			act 'Use your hula hoop':
+				cla
+				act 'Return':gt 'exercise', 'manual'
+				if pcs_stam >= 5*1 * (10 - sport_clothes_exercise_bonus): act '15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'hula'
+				if pcs_stam >= 5*2 * (10 - sport_clothes_exercise_bonus): act '30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt  'exercise', 'hula'
+				if pcs_stam >= 5*3 * (10 - sport_clothes_exercise_bonus): act '45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt  'exercise', 'hula'
+				if pcs_stam >= 5*4 * (10 - sport_clothes_exercise_bonus): act '60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt  'exercise', 'hula'
+			end
 		end
-		if mc_inventory['hula_hoop'] > 0 and $loc ! 'meadow':
-			act 'Use your hula hoop for 60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt  'exercise', 'hula'
+
+		if pcs_stam < (15*1 * (10 - sport_clothes_exercise_bonus)) / 2:
+			delact 'Jump rope'
+			delact 'Do crunches'
+			delact 'Do pushups'
 		end
 	end
 end

+ 1 - 0
locations/food.qsrc

@@ -933,6 +933,7 @@ if $ARGS[0] = 'watercooler':
 	cumspclnt = 2
 	gs 'cum_cleanup'
 	gs 'stat'
+	dynamic $fill_bottle
 
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/community/bathroom/waterfountain.jpg"></center>'
 	'You drink some water and feel refreshed.'

+ 64 - 97
locations/foto.qsrc

@@ -178,13 +178,6 @@ if $ARGS[0] = 'studio':
 	*clr & cla
 	killvar '$modelopt'
 
-	if model['spcial_job_day'] ! daystart:
-		model['spcial_job_day'] = daystart
-		if special_model['roll'] < min(fame['city_modelling'], 700) and modelfoto['topless'] > 0 and hour < 15: gt 'foto_events', 'fame'
-		if special_skill_model['roll'] < pcs_mdlng and modelfoto['nip'] > 0: gt 'foto_events', 'skill'
-		if foto['documentary'] >= 95 and $pantyworntype = 'none' and modelfoto['shoots']>= foto['documentary_timer']: gt 'foto_model_documentary', '1st_documentary'
-	end
-
 	minut += 5
 	gs 'stat'
 	gs 'themes', 'indoors'
@@ -233,8 +226,70 @@ if $ARGS[0] = 'studio':
 		gs 'foto', 'wandering_models'
 	end
 
+	if model['status'] = 1: act 'Go to the showers':gt'foto','showers'
+	if model['status'] = 1: act 'Go to your makeup station':gt'foto','makeup'
+	if model['status'] = 1: act 'Talk to a manager':gt'foto','manager_talk'
+	gs 'foto','microcamera_ask'
+	if parkblackmail = 2: act 'Look around for the blackmailer':gt 'foto', 'blackm'
+
+	if model['status'] = 0:
+		gs 'foto', 'hiring_ask'
+	elseif model['status'] = 1:
+		act 'Look for work':
+			delact 'Look for work'
+			*clr
+			menu_off = 1
+			'<center><b><font color="maroon">Floor Manager</font></b></center>'
+			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
+
+			$tmp = iif(rand(2)=1,iif(rand(2)=1,$model['firstname']+' '+$model['lastname'],$model['firstname']),$model['nickname'])
+			if venera > 2:
+				'<<$tmp>>! There is no way anyone is going to want to see pictures of you while your STD is so obvious, you should see a doctor.'
+			elseif func('body_din','pregnancyVisibility') = 1:
+				'"<<$tmp>>! Who knocked you up!? Didn''t we pay you enough to use contraception? Sorry, but we don''t specialize in this type of shots."'
+			elseif pcs_apprnc < 80:
+				'"I''m sorry but you are going to have to work on your appearance if you want to do a shoot."'
+			elseif cumsumbod-cumsumvag-cumsumass > rand(0,5):
+				'"Ugh, <<$tmp>>, what the hell is that?" he looks at you and the cum on you with disgust. "We don''t care what your sexual habits are outside of work, but we''re not shooting Japanese porn here. At least take a shower after getting laid."'
+			elseif pcs_leghair > 3:
+				'"Go shave your legs, we''re not running a nature special on gorillas."'
+			elseif mesec > 0 and isprok = 0:
+				'"What the hell <<$tmp>>!"'
+				'You follow his gaze to see the blood running down your legs.'
+				'"Go wash that off and put a tampon in already! There''s a dispenser in the shower room."'
+			elseif pcs_sweat >= 20:
+				'"You''re all sweaty. Go take a shower before asking for work. And don''t forget to do your makeup after."'
+			elseif pcs_makeup = 0:
+				'"Your makeup is smeared all over your face <<$tmp>>. Go clean up and see the makeup artists first."'
+			elseif pcs_makeup = 1:
+				'"<<$tmp>>, you forget to do your makeup. Hurry up! We don''t have all day."'
+			else
+				cla
+				if model['spcial_job_day'] ! daystart:
+					model['spcial_job_day'] = daystart
+					if special_model['roll'] < min(fame['city_modelling'], 700) and modelfoto['topless'] > 0 and hour < 15: gt 'foto_events', 'fame'
+					if special_skill_model['roll'] < pcs_mdlng and modelfoto['nip'] > 0: gt 'foto_events', 'skill'
+					if foto['documentary'] >= 95 and $pantyworntype = 'none' and modelfoto['shoots']>= foto['documentary_timer']: gt 'foto_model_documentary', '1st_documentary'
+				end
+
+				'"Hello <<$tmp>>. Are you here to work?"'
+				act 'Perform the shoots':
+					if model_job_week >= 2:
+						gt 'foto_practice','start'
+					else
+						gt 'foto_shoot','model'
+					end
+				end
+				if first_fame_event = 2: act 'Ask if there''s special work available': gt'foto_events','special'
+				!!act'Check auditions':gt'foto_events2','auditions'
+				act 'Never mind': gt'foto','studio'
+			end
+			killvar '$tmp'
+		end
+	end
+	
 	if model['status'] = 1:
-		act 'Leave':
+		act 'Leave studio':
 			*clr & cla
 			menu_off = 1
 			if studio_underwear_steal > 0:
@@ -253,96 +308,8 @@ if $ARGS[0] = 'studio':
 			end
 		end
 	elseif model['status'] = 0:
-		act 'Leave': minut += 1 & gt 'city_center'
+		act 'Leave studio': minut += 1 & gt 'city_center'
 	end
-	
-	if model['status'] = 0:
-		gs 'foto', 'hiring_ask'
-	elseif venera < 3:
-		menu_off = 1
-		if pcs_apprnc < 80:
-			*clr & cla
-			'<center><b><font color="maroon">Floor Manager</font></b></center>'
-			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
-			'"I''m sorry but you are going to have to work on your appearance if you want to do a shoot."'
-			gs 'clothing', 'wear_last_worn'
-			gs 'foto', 'underwear'
-			gs 'stat'
-			act 'Leave':gt'foto','studio'
-			exit
-		elseif pcs_sweat >= 20:
-			*clr & cla
-			'<center><b><font color="maroon">Floor Manager</font></b></center>'
-			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
-			'"You''re all sweaty. Go take a shower before asking for work. And don''t forget to do your makeup after."'
-			act'Go to the showers':gt'foto','showers'
-			exit
-		!! elseif $stat_cum_msg ! '':
-		elseif cumsumbod-cumsumvag-cumsumass > rand(0,5):
-			*clr & cla
-			'<center><b><font color="maroon">Floor Manager</font></b></center>'
-			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
-			'"Ugh, <<$pcs_lastname>>, what the hell is that?" he looks at you and the cum on you with disgust. "We don''t care what your sexual habits are outside of work, but we''re not shooting Japanese porn here. At least take a shower after getting laid."'
-			act'Go to the showers':gt'foto','showers'
-			exit
-		elseif pcs_leghair > 3:
-			*clr & cla
-			'<center><b><font color="maroon">Floor Manager</font></b></center>'
-			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
-			'"Go shave your legs, we''re not running a nature special on gorillas."'
-			act'Go to the showers':gt'foto','showers'
-			exit
-		elseif mesec > 0 and isprok = 0:
-			*clr & cla
-			'<center><b><font color="maroon">Floor Manager</font></b></center>'
-			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
-			'"What the hell <<$pcs_lastname>>!"'
-			'You follow his gaze to see the blood running down your legs.'
-			'"Go wash that off and put a tampon in already! There''s a dispenser in the shower room."'
-			act'Go to the showers':gt'foto','showers'
-			exit
-		elseif pcs_makeup = 0:
-			*clr & cla
-			'<center><b><font color="maroon">Floor Manager</font></b></center>'
-			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
-			'"Your makeup is smeared all over your face <<$pcs_lastname>>. Go clean up and see the makeup artists first."'
-			act'Go to the showers':gt'foto','showers'
-			exit
-		else
-			menu_off = 0
-			act 'Ask for work':
-				if model_job_week >= 2:
-					gt 'foto_practice','start'
-				else
-					gt 'foto_shoot','model'
-				end
-			end
-			if first_fame_event = 2:
-				act'Ask if there''s special work available':gt'foto_events','special'
-			end
-		end
-		!!act'Check auditions':gt'foto_events2','auditions'
-	else
-		menu_off = 1
-		cla & *clr
-		'<center><b><font color="maroon">Floor Manager</font></b></center>'
-		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
-		'There is no way anyone is going to want to see pictures of you while your STD is so obvious, you should see a doctor.'
-		gs 'clothing', 'wear_last_worn'
-		gs 'foto', 'underwear'
-		gs 'stat'
-		act'Leave':gt'city_center'
-		exit
-	end
-	if model['status'] = 1:act 'Go to the showers':gt'foto','showers'
-	if model['status'] = 1:act 'Go to your makeup station':gt'foto','makeup'
-	
-	if model['status'] = 1:act'Talk to a manager':gt'foto','manager_talk'
-	
-	
-	gs 'foto','microcamera_ask'
-	
-	if parkblackmail = 2: act 'Look around for the blackmailer':gt 'foto', 'blackm'
 end
 
 if $ARGS[0] = 'bathroom':

+ 10 - 10
locations/foto_events.qsrc

@@ -991,7 +991,7 @@ if $ARGS[0] = 'special':
 	cla & *clr
 	'<center><b><font color="maroon">Photographer</font></b></center>'
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
-	'"Hey!" you call out to one of the studio managers. "Looking for some more work, any special jobs still available today?"'
+	'"I''m looking for some more work, any special jobs still available today?"'
 	act'Return to the main floor':gt'foto','studio'
 	if specialjob1 > 95 or specialjob2 > 95 or specialjob3 > 95 or specialjob4 > 95 or specialjob5 > 95 or specialjob6 > 95 or (specialjob7 > 95 and city_kickboxing >=30 and pcs_inhib >= 45) or (specialjob8 > 95 and city_running >=30 and pcs_inhib >= 50 and month >= 3 and month <=8):
 		'"Sure, we have a few today. Come take a look at the list, tell me if you''re interested in doing something."'
@@ -1489,7 +1489,7 @@ end
 if $ARGS[0] = 'topless1':
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/foto.jpg"></center>'
 	'"<<$model[''firstname'']>>!"'
-	'As you walk out of the changing room you hear someone call your name.'
+	'As you walk out of the room you hear someone call your name.'
 	act'Turn around':
 		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
@@ -1632,7 +1632,7 @@ end
 if $ARGS[0] = 'pool1':
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/foto.jpg"></center>'
 	'"<<$model[''firstname'']>>!"'
-	'As you walk out of the changing room you hear someone call your name.'
+	'As you walk out of the room you hear someone call your name.'
 	act'Turn around':
 		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
@@ -1739,7 +1739,7 @@ end
 if $ARGS[0] = 'tennis':
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/foto.jpg"></center>'
 	'"<<$model[''firstname'']>>!"'
-	'As you walk out of the changing room you hear someone call your name.'
+	'As you walk out of the room you hear someone call your name.'
 	act'Turn around':
 		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
@@ -1844,7 +1844,7 @@ if $ARGS[0] = 'topless2':
 	*clr & cla
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/foto.jpg"></center>'
 	'"<<$model[''firstname'']>>!"'
-	'As you walk out of the changing room you hear someone call your name.'
+	'As you walk out of the room you hear someone call your name.'
 	act'Turn around':
 		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
@@ -1919,7 +1919,7 @@ if $ARGS[0] = 'beach2':
 	*clr & cla
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/foto.jpg"></center>'
 	'"<<$model[''firstname'']>>!"'
-	'As you walk out of the changing room you hear someone call your name.'
+	'As you walk out of the room you hear someone call your name.'
 	act'Turn around':
 		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
@@ -2003,7 +2003,7 @@ if $ARGS[0] = 'pool2':
 	*clr & cla
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/foto.jpg"></center>'
 	'"<<$model[''firstname'']>>!"'
-	'As you walk out of the changing room you hear someone call your name.'
+	'As you walk out of the room you hear someone call your name.'
 	act'Turn around':
 		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
@@ -2071,7 +2071,7 @@ end
 if $ARGS[0] = 'runway1':
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/foto.jpg"></center>'
 	'"<<$model[''firstname'']>>!"'
-	'As you walk out of the changing room you hear someone call your name.'
+	'As you walk out of the room you hear someone call your name.'
 	act'Turn around':
 		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
@@ -2088,7 +2088,7 @@ if $ARGS[0] = 'runway2':
 	*clr & cla
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/foto.jpg"></center>'
 	'"<<$model[''firstname'']>>!"'
-	'As you walk out of the changing room you hear someone call your name.'
+	'As you walk out of the room you hear someone call your name.'
 	act'Turn around':
 		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
@@ -2220,7 +2220,7 @@ if $ARGS[0] = 'wet1':
 	*clr & cla
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/foto.jpg"></center>'
 	'"<<$model[''firstname'']>>!"'
-	'As you walk out of the changing room you hear someone call your name.'
+	'As you walk out of the room you hear someone call your name.'
 	act'Turn around':
 		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'

+ 2 - 2
locations/foto_model_documentary.qsrc

@@ -11,8 +11,8 @@ if $ARGS[0] = '1st_documentary':
 !!	if foto['1st_documentary'] = 1:gt'foto_model_documentary2','2nd_documentary'
 	cla & *clr
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
-	'You step out of the locker room and almost run head first into one of the managers.'
-	'"Woah!" you say, jumping back. "What are you doing going into the girls locker room?"'
+	'You step out of the room and almost run head first into one of the managers.'
+	'"Woah!" you say, jumping back. "What are you doing?"'
 	'"Oh <<$model[''firstname'']>>, glad I caught you before you wandered off somewhere else in the studio. I was just going to see if anyone else showed up today. We''re looking for volunteers to participate in some interviews for a documentary."'
 	'"Documentary?" you ask. "What about?"'
 	'"There''s some people here today who are making a film about models, their lives, and about working here. They want to capture girls working here in their usual working environment so you wouldn''t dressing up or anything, just interviewed as in the studio approved dress code."'

+ 1 - 1
locations/foto_practice.qsrc

@@ -11,7 +11,7 @@ if $ARGS[0] = 'start':
 	'<center><b><font color="maroon">Photographer</font></b></center>'
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
 	if model_job_week >= 2:
-		'"Hello <<$pcs_firstname>>. We''ve already done a paid shoot with you this week, so we can''t do another one. But would you like to get some practice in?"'
+		'"We''ve already done a paid shoot with you this week, so we can''t do another one. But would you like to get some practice in?"'
 	else
 		'"Oh, you want to practice today?"'
 	end

+ 1 - 1
locations/foto_shoot.qsrc

@@ -18,7 +18,7 @@ if $ARGS[0] = 'model':
 	gs 'stat'
 	'<center><b><font color="maroon">Manager</font></b></center>'
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
-	'"Hello <<$model[''firstname'']>>. Are you here to work? What kind of shoot would you like to do today?"'
+	'"What kind of shoot would you like to do today?"'
 	*nl
 !!	'<a href="exec:gs ''shortgs'',''msg'',''There are three types of shoots: Catalog, Fashion, and Glamour. A catalog shoot is any shoot that is meant to appear in a shopping magazine or online catalog. They don''t do much for your fame but the base pay is steady. A fashion shoot is more stylized and though the base pay is not as high, there will be a bonus tip based on your modelling skill and fame. A glamour shoot will always involve nudity or risqué clothing and will typically be erotic in nature. This type of modelling will have good pay with good bonuses based on skill and fame, but also will spread your fame beyond the city far more quickly. If you grew up in a small town outside St. Petersburg, the pictures may reach its populace sooner rather than later.''">Modelling Shoot Guide</a>'
 	'<center><b><font color="blue">Modelling guide</font></b></center>'

+ 2 - 2
locations/gopsex.qsrc

@@ -563,7 +563,7 @@ if $ARGS[0] = 'hide':
 	end &!--- npc_orgasm ---
 	if $ARGS[1] = 'gop_sex_analplugin':
 		if analplugin = 1:
-			analplugin = 0
+			analplugin = 0 & analplugout = 1
 			'"What?! Do you have a buttplug in your ass?" <<$boydesc>> asks in surprise.'
 			'"Aha, you are loosening your anus."'
 			'"That''s great, but it''s in the way right now." He comments and pulls the plug out from your ass.<br>'
@@ -595,7 +595,7 @@ if $ARGS[0] = 'hide':
 !anal tube and lubrication(gangbang):
 	if $ARGS[1] = 'gop_groupsex_analplugin':
 		if analplugin = 1:
-			analplugin = 0
+			analplugin = 0 & analplugout = 1
 			'"What?! Do you have a buttplug in your ass?" '+func('gopsex','hide','gop_name_npc')+' asks in surprise.'
 			'"Aha, you are loosening your anus."'
 			'"That''s great, but it''s in the way right now." He comments and pulls the plug out from your ass.<br>'

+ 1 - 1
locations/gopskver.qsrc

@@ -977,7 +977,7 @@ if $ARGS[0] = 'BjBeerAnal':
 	if pcs_ass > 5: 'You hear a frantic discussion behind you, the guys are trying to figure out who gets to fuck your ass first. Vasily ends up being the lucky one.'
 	if tatupb > 0: 'When he sees the tattoo on your lower back, Vasily pats your ass approvingly: "Nice tramp stamp, whore."'
 	if tatupb = 0: 'Seeing your bare back, Vasily mutters irritably: "A slut such as yourself should really get a tattoo back there... that way, people can recognize you for what you really are."'
-	if analplugin = 1: analplugin = 0 & '"You won''t be needing this!" Vasily grins, and he pulls out your butt plug with a loud pop. He''s quite rough with it, and you grimace at the sudden extrusion.'
+	if analplugin = 1: analplugin = 0 & analplugout = 1 & '"You won''t be needing this!" Vasily grins, and he pulls out your butt plug with a loud pop. He''s quite rough with it, and you grimace at the sudden extrusion.'
 	'Once he thinks you''re ready, Vasily roughly pulls your buttocks to the sides with a grin on his face and looks at your sphincter, before spitting on it.'
 
 	act 'Try to relax your anus':

+ 1 - 1
locations/gschool_sex.qsrc

@@ -570,7 +570,7 @@ if $ARGS[0] = 'rand_sex':
 		act 'He fucks your ass':
 			*clr & cla
 			if analplugin = 1:
-				analplugin = 0
+				analplugin = 0 & analplugout = 1
 				'He plays with your butt plug for a moment before pulling it out. Your anus gapes slightly from being filled for so long. "Don''t worry babe, I''ll be filling that soon enough," he reassures you.'
 			end
 			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/building/sex/boysex_scool4.jpg"></center>'

+ 8 - 16
locations/hourly_events.qsrc

@@ -30,12 +30,9 @@ if insleep = 1:
 		pcs_hydra  -= (8 * amphetamineBonus)
 	end
 
-	pcs_stam  += stammax / 8
-	pcs_sleep -= 4
+	pcs_stam += iif(pcs_sleep > 90, stammax/2, iif(pcs_sleep > 80, stammax/4, stammax/8))
 
-	if alko > 0: 
-		alko -= 1
-	end
+	if alko > 0: alko -= 1
 
 	pcs_willpower_feeder += willpowermax * 4
 	pcs_willpwr += pcs_willpower_feeder / 100
@@ -52,6 +49,7 @@ else
 		pcs_hydra  -= (16 * amphetamineBonus)
 	end
 
+	if hypnoAddict > 0: dynamic $hypnoAddiction
 
 	if InSleepWake <= hour or InSleepWake[1] < daystart: pcs_sleep -= 4
 
@@ -80,14 +78,13 @@ else
 
 
 	if pcs_stam <= 0:
-		pcs_mood -= 6
-		pcs_sleep -= 5
-
-	elseif pcs_stam < stammax / 5:
-		pcs_mood -= 3
+		pcs_mood -= rand(5,10)
+		pcs_sleep -= rand(3,6)
+	elseif pcs_stam < stammax / 5 and stammax > 50:
+		pcs_mood -= rand(2,5)
 	end
 
-	pcs_stam += stammax / 40
+	if pcs_energy > 20: pcs_stam += stammax / max(5, 110-pcs_energy)
 	pcs_willpower_feeder += willpowermax*4/3
 	pcs_willpwr += pcs_willpower_feeder/100
 	pcs_willpower_feeder = pcs_willpower_feeder mod 100
@@ -162,11 +159,6 @@ else
 	end
 end
 
-if hypnoAddict > 0:
-	dynamic $hypnoAddiction
-end
-
-
 !!Mana regen
 pcs_mana += manamax / 20
 

+ 1 - 1
locations/husbSex.qsrc

@@ -341,7 +341,7 @@ if $ARGS[0] = 'anal':
 
 	if analplugin = 1:
 		analpluginbonus = 10
-		analplugin = 0
+		analplugin = 0 & analplugout = 1
 		gs 'boyStat', $HusID
 		sexpartkno = 1
 		spafinloc = 3

+ 2 - 0
locations/kit_din.qsrc

@@ -528,9 +528,11 @@ $fatdel = {
 
 $driwater = {
 	act 'Drink some water (0:01)': gs 'beverage', 'bev_wat'
+	dynamic $fill_bottle
 }
 
 $fill_bottle = {
+	delact 'Fill your water bottle (0:01)'
 	if mc_inventory['refill_bottle'] > 0 and mc_inventory['refill_bottle'] < 4:
 		*nl
 		'You can fill your sports water bottle with filtrated tap water.'

+ 3 - 3
locations/lesbidomhouse.qsrc

@@ -686,7 +686,7 @@ if $ARGS[0] = 'QW5':
 		
 					act 'Lie down on her bed':
 						*clr & cla
-						analplugin = 0
+						analplugin = 0 & analplugout = 1
 						gs 'sweat', 'add', 10
 						MistressAdoration += 1
 						gs'stat'
@@ -812,7 +812,7 @@ if $ARGS[0] = 'QW6':
 
 							act 'Continue':
 								*clr & cla
-								analplugin = 0
+								analplugin = 0 & analplugout = 1
 								vgape = 3
 								gs'stat'
 
@@ -1584,7 +1584,7 @@ if $ARGS[0] = 'QW10b3':
 	if temp = 1:
 		act 'Continue':
 			*clr & cla
-			if analplugin = 1:analplugin = 0
+			if analplugin = 1:analplugin = 0 & analplugout = 1
 			if pcs_ass < 30 and pcs_ass >= 20:pcs_ass += 1 & pcs_horny = 100
 			if pcs_ass < 20 and pcs_ass >= 10:pcs_ass += 2 & agape = 1 & pcs_horny += 50
 			if pcs_ass < 10:pcs_ass += 4 & agape = 2

+ 3 - 3
locations/lesbimistress.qsrc

@@ -340,7 +340,6 @@ if $ARGS[0] = 'severe_4':
 	if pcs_ass < 30 and pcs_ass >= 20:pcs_ass += 2 & agape = 1 & pcs_horny += rand(40,80)
 	if pcs_ass < 20 and pcs_ass >= 10:pcs_ass += 2 & agape = 2 & pcs_horny += rand(20,40)
 	if pcs_ass < 10:pcs_ass += 3 & agape = 3
-	if analplugin = 1:analplugin = 0
 	MistressAdoration -= 1
 	MistressObedience += 2
 	gs'stat'
@@ -350,6 +349,7 @@ if $ARGS[0] = 'severe_4':
 		'"Today I''m going to tie you up, and fuck your ass silly. Sound good?" Mistress asks.'
 		'"Erm..." you begin to reply, but you don''t finish your answer when you see Mistress looking at you with a raised eyebrow. She wasn''t actually asking you, merely telling you.'
 		'"That would only get in the way", Mistress mumbles, as soon as she sees your butt plug. She makes you kneel before her, and deftly pulls it out.'
+		analplugin = 0 & analplugout = 1
 		
 		act 'Continue':
 			cla
@@ -1428,7 +1428,7 @@ if $ARGS[0] = 'treat_3':
 			MistressObedience = 3
 			gs'stat'
 			if analplugin = 1:
-				analplugin = 0
+				analplugin = 0 & analplugout = 1
 				'<center><img <<$set_imgh>> src="images/characters/city/natalya/sex/sub75.jpg"></center>'
 				'Mistress makes you bend over before her, and immediately your butt plug catches her eye.'
 				'She grins: "<<$pcs_nickname>>, you horny minx! Is this a clue? I see how you want to be rewarded! Let''s just get this out of the way first..."'
@@ -1492,7 +1492,6 @@ if $ARGS[0] = 'treat_3':
 			if pcs_ass < 30 and pcs_ass >= 20:pcs_ass += 2 & agape = 2 & pcs_horny += rand(20,40)
 			if pcs_ass < 20 and pcs_ass >= 10:pcs_ass += 2 & agape = 3 
 			if pcs_ass < 10:pcs_ass += 3 & agape = 3
-			if analplugin = 1:analplugin = 0
 			MistressAdoration -= 2
 			MistressObedience -= 2
 			gs'stat'
@@ -1501,6 +1500,7 @@ if $ARGS[0] = 'treat_3':
 				'Mistress makes you bend over before her, and immediately your butt plug catches her eye.'
 				'She smirks: "You''re lucky, slave. I see you were preparing your ass for the punishment it''s about to receive."'
 				'Mistress wastes no time pulling the plug out of your ass, admiring your gape only slowly closing. Then she refocuses on the task at hand, and whispers in your ear: "By the time I''m done with you, that little gape will be a distant memory..."'
+				analplugin = 0 & analplugout = 1
 
 				gs 'arousal', 'anal_dildo', 10, 'sub', 'lesbian'
 				gs 'stat'

+ 1 - 0
locations/pav_clinic.qsrc

@@ -104,6 +104,7 @@ if $ARGS[0] = '':
 				menu_off = 1
 				gpolicleanday = daystart
 				minut += 60
+				gs 'exp_gain', 'cleaning', rand(1,3)
 				pcs_mood -= 15
 				money += 100
 				gs 'sweat', 'add', 10

+ 1 - 1
locations/pav_shared_nestor.qsrc

@@ -260,7 +260,7 @@ if $ARGS[0] = 'nestor_Chat':
 		'PLOPPP... your ass makes a sound as the plug leaves it gaping.'
 		'<font color=#<<$pcs_font>>>"Ouuuch!"</font>'
 		'<font color=#<<$nestor_font>>>"You''re welcome <<$pcs_firstname>>, come again!"</font>'
-		analplugIN = 0
+		analplugIN = 0 & analplugout = 1
 		act 'Continue':chatLvl = 0 & gt 'pav_shared_nestor', 'nestor_Chat'
 	end
 end

+ 1 - 1
locations/pav_shared_oleg.qsrc

@@ -189,7 +189,7 @@ if $ARGS[0] = 'oleg_Chat':
 		'It leaves your ass gaping.'
 		'<font color=#<<$pcs_font>>>"Thank you <<$npc_firstname[$boy]>>!"</font>'
 		'<font color=#<<$oleg_font>>>"You''re welcome <<$pcs_firstname>>, but please be careful next time..."</font>'
-		analplugIN = 0
+		analplugIN = 0 & analplugout = 1
 		act 'Continue':chatLvl = 0 & gt 'pav_shared_oleg', 'oleg_Chat'
 	
 	! pissing kink

+ 3 - 0
locations/pav_train_hall.qsrc

@@ -180,6 +180,7 @@ if $ARGS[0] = 'work':
 			cls
 			cleZalDay = daystart
 			gs 'exercise', 'tier1', 60, 'stren', 'vital'
+			gs 'exp_gain', 'cleaning', rand(0,2)
 			pcs_mood -= 6
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/locations/city/residential/office/clener1.jpg"></center>'
@@ -194,6 +195,7 @@ if $ARGS[0] = 'work':
 			cls
 			cleMTDay = daystart
 			gs 'exercise', 'tier1', 30, 'stren', 'vital'
+			gs 'exp_gain', 'cleaning', rand(0,2)
 			pcs_mood -= 6
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/locations/city/residential/office/clener1.jpg"></center>'
@@ -210,6 +212,7 @@ if $ARGS[0] = 'work':
 			cls
 			cleWTDay = daystart
 			gs 'exercise', 'tier1', 30, 'stren', 'vital'
+			gs 'exp_gain', 'cleaning', rand(0,2)
 			pcs_mood -= 6
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/locations/city/residential/office/clener1.jpg"></center>'

+ 4 - 4
locations/placer_sex.qsrc

@@ -31,7 +31,7 @@ $din_dush  = {
 $din_analplugin_off = {
 	minut += 5
 	analpluginbonus = 10
-	analplugin = 0
+	analplugin = 0 & analplugout = 1
 	gs'stat'
 	*clr
 	'<center><video autoplay loop src="images/locations/pavlovsk/park/sex/placer_sex16.mp4"></video></center>'
@@ -261,7 +261,7 @@ if $args[0] = 'piano':
 						gs 'cum_manage'
 						gs'stat'
 						*clr & cla
-						if analplugin = 1: analplugin = 0
+						if analplugin = 1: analplugin = 0 & analplugout = 1
 						'<center><img <<$set_imgh>> src="images/locations/pavlovsk/park/sex/placer_sex13.jpg"></center>'
 						'<<$boydesc2>> quickly moves up to you and rams his cock inside your pussy, screaming: "I wasn''t done! I was so close!"'
 						'You groan at how roughly he shoved his cock in. Luckily you had done a good job covering his cock with saliva during your blowjob, that could''ve gone a lot worse.'
@@ -1428,7 +1428,7 @@ if $args[0] = 'sleep':
 	InSleep = 1
 
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/park/sex/placer_sex35.jpg"></center>'
-	if analplugIN = 1:analplugIN = 0 & 'Before going to bed, you take out your butt plug and give it a quick wash.'
+	if analplugIN = 1:analplugIN = 0 & analplugout = 0 & 'Before going to bed, you take out your butt plug and give it a quick wash.'
 	if vibratorIN = 1:vibratorIN = 0 & 'Before going to bed, you take out your vibrator and give it a quick wash.'
 	if pcs_makeup > 1:pcs_makeup = 0 & vidageday -= 1 & 'Your make-up got smeared all over your face while you slept. You realize you really should''ve removed it before going to bed, your skin ages much faster if you don''t take good care of it.'
 	if fat > 5 and stringimplant = 1: bodyVars['bust_silicone'] += 1 & fat -= 5
@@ -1517,7 +1517,7 @@ if $args[0] = 'rape':
 						*clr & cla
 						'<center><img <<$set_imgh>> src="images/locations/pavlovsk/park/sex/placer_sex106.jpg"></center>'
 						'He''s not getting the reaction he hoped from you, and pulls out. <<$boydesc2>> tells him: "Warm her ass up too. We''ll all have a turn later, you might as well get a head start."'
-						if analplugin = 1: analplugin = 0 & 'The guys pull out your butt plug without mercy, and it comes out with a loud pop. One of them snorts: "Look at this whore... I bet she was hoping for this all along! Serving all her holes on a silver platter, even prepping the ones that take some time to adjust."'
+						if analplugin = 1: analplugin = 0 & analplugout = 1 & 'The guys pull out your butt plug without mercy, and it comes out with a loud pop. One of them snorts: "Look at this whore... I bet she was hoping for this all along! Serving all her holes on a silver platter, even prepping the ones that take some time to adjust."'
 						'<<$boydesc2>> then turns to you, and puts his finger between your lips. He orders you: "No more biting, bitch. And relax your ass, for your own good... it''s going to hurt a lot more, if you don''t."'
 						'Your spincter was clenched instinctively when you felt the head of his cock press against it, but you realize resisting is pointless. They''ll get what they want from you anyway, before you leave this place. <i>If</i> you leave this place.'
 						'You to your best to relax, as the guy pushes his head past your anus. It feels like they''re driving a red-hot metal rod inside your ass, and it hurts a lot. You groan against <<$boydesc2>>''s finger loudly, tears forming in your eyes.'

+ 2 - 2
locations/pod_ezd.qsrc

@@ -1705,7 +1705,7 @@ if $ARGS[0] = 'sex_ev1':
 			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/stairs/event/sex/sex_ev1_3.jpg"></center>'
 			'You meekly turn your back to the guy and bend over as you were told, he pulls your clothes away until he exposes your bare ass.'
 			if analplugin = 1:
-				analplugin = 0
+				analplugin = 0 & analplugout = 1
 				'He runs his hand over your butt plug for a second, and then pulls it out while he tells his friend: "Dude, she''s got a plug up her butt! This slut likes it in the ass!"'
 			end
 			if mc_inventory['tampons'] =  1:
@@ -1979,7 +1979,7 @@ if $ARGS[0] = 'sex_ev3':
 				'<<$boydesc[1]>> immediately rams his <<dick[1]>>cm <<$dick_girth[1]>> dick in your wet pussy and begins to fuck you roughly. You feel like you''re just a piece of meat to him, but you can''t help but moan in pleasure and feel your pussy getting wetter by the second.'
 				'After a couple minutes or so, he pulls your head back by your hair. "Your pussy is way too loose, slut. I''m going to use your ass now."'
 				if analplugin = 1:
-					analplugin = 0
+					analplugin = 0 & analplugout = 1
 					'He closes his fingers around your butt plug and gives it a few exploratory tugs, before pulling it out slowly. He mutters, "I hope this thing didn''t loosen your ass too much, whore."'
 				end
 				if mc_inventory['lubricant'] > 0:

+ 1 - 1
locations/pod_whore.qsrc

@@ -189,7 +189,7 @@ if $ARGS[0] = 'hide':
 !anal tube and lubrication:
 	if $ARGS[1] = 'pod_whore_analplugin':
 		if analplugin = 1:
-			analplugin = 0
+			analplugin = 0 & analplugout = 1
 			'The guy asks in surprise: "There''s a plug in your ass?"'
 			'You blush and confess: "I like to be prepared..."'
 			'He slowly pulls it out of your ass with a lewd grin: "In that case, you didn''t prepare for nothing. I''ll see to filling that hole again real soon."'

+ 10 - 8
locations/pre_sleep.qsrc

@@ -69,27 +69,29 @@ if $ARGS[0] = 'prepare_sleep':
 	if analplugIN = 1 and vibratorIN = 1:
 		*nl
 		if sleepVars['bedAnal'] = 1 and sleepVars['bedVibrator'] = 1:
-			analplugIN = 0
+			analplugIN = 0 & analplugout = 0
 			vibratorIN = 0
 			gs 'stat'
-			'You remove your butt plug and your vibrator.'
+			'Before going to bed, you take out your butt plug and vibrator and give it a quick wash.'
 		elseif sleepVars['bedAnal'] = 1 and sleepVars['bedVibrator'] = 0:
 			vibratorIN = 0
 			gs 'stat'
-			'You decide to leave your butt plug in, but remove your vibrator.'
+			'Before going to bed, you take out your vibrator and give it a quick wash.'
+			'You decide to leave your butt plug in.'
 		elseif sleepVars['bedAnal'] = 0 and sleepVars['bedVibrator'] = 1:
-			analplugIN = 0
+			analplugIN = 0 & analplugout = 0
 			gs 'stat'
-			'You decide to remove your butt plug, but leave your vibrator in.'
+			'Before going to bed, you take out your butt plug and give it a quick wash.'
+			'You decide to leave your vibrator in.'
 		else
 			'You decide to leave your butt plug and vibrator in.'
 		end
 	elseif analplugIN = 1 and vibratorIN = 0:
 		*nl
 		if sleepVars['bedAnal'] = 1:
-			analplugIN = 0
+			analplugIN = 0 & analplugout = 0
 			gs 'stat'
-			'You remove your butt plug.'
+			'Before going to bed, you take out your butt plug and give it a quick wash.'
 		else
 			*nl
 			'You decide to leave your butt plug in.'
@@ -98,7 +100,7 @@ if $ARGS[0] = 'prepare_sleep':
 		*nl
 		if sleepVars['bedVibrator'] = 1:
 			vibratorIN = 0
-			'You remove your vibrator.'
+			'Before going to bed, you take out your vibrator and give it a quick wash.'
 		else
 			'You decide to leave your vibrator in.'
 		end

+ 3 - 2
locations/pushkin_ballet_res.qsrc

@@ -18,7 +18,8 @@ $default_img_path = 'locations/pushkin/'
 if $ARGS[0] = 'start':
 	*clr & cla
     gs 'shortgs', 'setloc', 'pushkin_ballet_res', $ARGS[0] 
-    gs 'shortgs', 'remove_array_element', 'mod_ballet', 'letter'  !! reset letter
+    !! reset letter
+    gs 'shortgs', 'remove_array_element', 'mod_ballet', 'letter'
     minut += 45
     gs 'stat'
     '<center><h1>Welcome and Introduction</h1></center>'
@@ -331,7 +332,7 @@ if $ARGS[0] = 'radio':
     pcs_sleep -= rand(1,10)
     if ballet_day >= 1 and week ! 7:
         instrmusic_exp += rand(1,3)
-        pcs_perform += rand(1,3) 
+        gs 'exp_gain', 'perform', rand(1,3)
         mod_homework[week] += 1 
         mod_daily_score[week] += 1
     end

+ 1 - 1
locations/sex_ev_reactions.qsrc

@@ -760,7 +760,7 @@ if $ARGS[0] = 'facial_happy_reacts':
 			sex_ev['react'] = 1
 			$sex_ev['facial_pic']
 			'"So, how do I look?" you ask, with a cum glazed smile.'
-			if $npc_abusive[$boy] and rand(0,1) = 1:
+			if npc_abusive[$boy] > 0 and rand(0,1) = 1:
 				'"Like a walking cumdumpster," <<$npc_firstname[$boy]>> snickers.'
 				act'Offended':
 					cla & *clr

+ 3 - 3
locations/sexm.qsrc

@@ -465,12 +465,12 @@ if $ARGS[0] = 'anal':
 
 	if analplugin = 1 :
 		analpluginbonus = 10
-		analplugin = 0
+		analplugin = 0 & analplugout = 1
 
 		if pcs_ass < 16 :
-			*p '<<$loverdesc[lover_number]>> pulls the butt plug out of your narrow and tight ass, '
+			*p ' <<$loverdesc[lover_number]>> pulls the butt plug out of your narrow and tight ass, '
 		elseif pcs_ass >= 16 :
-			*p ' <<$loverdesc[lover_number]>>pulls out your butt plug, '
+			*p ' <<$loverdesc[lover_number]>>pulls out your butt plug, '
 		end
 
 		'and you feel his hard cock resting on your ass.'

+ 1 - 1
locations/sleep.qsrc

@@ -128,7 +128,7 @@ if $ARGS[0] = 'sleep_loop':
 			end
 		end
 
-		if sleepVars['stime'] mod 4 = 0: pcs_sleep += 1
+		if sleepVars['stime'] mod rand(4,5) = 0: pcs_sleep += 1
 
 		if sleepVars['stime'] >= 60:
 			sleepVars['stime'] = 0

+ 1 - 1
locations/sleep_simple.qsrc

@@ -23,7 +23,7 @@ if $ARGS[0] = 'simple':
 
 		if recuperation = 0: pcs_health += 5
 
-		if sleepVars['stime'] mod 4 = 0: pcs_sleep += 1
+		if sleepVars['stime'] mod rand(4,5) = 0: pcs_sleep += 1
 		if sleepVars['stime'] >= 60: sleepVars['stime'] = 0
 		if minut = 60: gs 'stat'
 

+ 6 - 6
locations/stat.qsrc

@@ -207,8 +207,8 @@ elseif pcs_inhib > 100:
 end
 
 healthmax = (pcs_vital * 10 + pcs_stren * 5)
-stammax = (30* (2 * pcs_vital + pcs_agil + pcs_stren) +1000)/ 13
-speed = (2 * (pcs_stren + pcs_agil) + pcs_vital) / 5
+stammax = (30* (2 * pcs_vital + pcs_agil + pcs_stren) +1000)/ 13 - pregchem/10
+speed = (2 * (pcs_stren + pcs_agil) + pcs_vital) / 5 - pregchem/100
 if healthmax < 1: healthmax = 1
 if willpowermax < 50: willpowermax = 50
 if stammax < 1: stammax = 1
@@ -253,10 +253,10 @@ if cumloc[0] = 1 or cumloc[3] = 1 or hypnoAddict = 0:
 	killvar 'missCum'
 elseif missCum > timeTresh:
 	if pcs_horny < 90: pcs_horny = 90
-	if preziktype = 0: mc_inventory['normal_condoms'] = mc_inventory['equipped_condoms']
-	if preziktype = 2: mc_inventory['sabotaged_condoms'] = mc_inventory['equipped_condoms']
-	mc_inventory['equipped_condoms'] = 0
-	preziktype = 1
+	if preziktype = 0 or preziktype = 2:
+		if mc_inventory['normal_condoms'] > 0 and mc_inventory['sabotaged_condoms'] < rand(2,3): dynamic $din_Do_Condom_Counts, 4
+		if preziktype <> 2 and mc_inventory['sabotaged_condoms'] > 0: dynamic $din_Do_Condom_Counts, 3
+	end
 end
 
 !!!!!!!!!!!

+ 1 - 1
locations/succubus.qsrc

@@ -582,7 +582,7 @@ if $args[0] = 'sucwalkinginit':
 			gs 'underwear', 'remove'
 		end
 	end
-	if analplugIN = 1 and sleepVars['bedAnal'] = 1: analplugIN = 0
+	if analplugIN = 1 and sleepVars['bedAnal'] = 1: analplugIN = 0 & analplugout = 0
 	if vibratorIN = 1 and sleepVars['bedVibrator'] = 1: vibratorIN = 0
 
 !!This is the simple method for the base level succubus

+ 6 - 0
locations/vann.qsrc

@@ -97,6 +97,8 @@ if $ARGS[0] = 'brit1':
 					end
 					act 'Come on':
 						*clr & cla
+						gs 'npcgeneratec', 0, 'guy from the uni dorm bathroom', rand(19,45)
+						gs 'boyStat', $npclastgenerated
 						picrand = 74
 						'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/sex/bathroom/brit3.jpg"></center>'
 						'"Well at least you only have to shave your face," you say with a laugh.'
@@ -153,6 +155,8 @@ if $ARGS[0] = 'v2':
 		act 'Offer help (<<will_cost>> Willpower)':
 			*clr & cla
 			gs 'willpower', 'pay', 'self'
+			gs 'npcgeneratec', 0, 'guy from the uni dorm bathroom', rand(19,45)
+			gs 'boyStat', $npclastgenerated
 			picrand = 75
 			'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/sex/bathroom/v3.jpg"></center>'
 			'"Let me help you..." you say sweetly. The guy pauses. "What?" he replies. You walk up to him and slide your hand under his towel, slowly jerking his cock in your hand. The guy relaxes and drops his towel as you drop to your knees and keep stroking his shaft. He begins to moan in pleasure.'
@@ -292,6 +296,8 @@ if $ARGS[0] = 'v4':
 		
 		act 'Agree':
 			*clr & cla
+			gs 'npcgeneratec', 0, 'guy from the uni dorm bathroom', rand(19,45)
+			gs 'boyStat', $npclastgenerated
 			picrand = 76
 			'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/sex/bathroom/v11.jpg"></center>'
 			'You nod, and he immediately strips off his clothes and climbs into the bath with you. He begins to rub your loofah, along with his free hand, over your body, caressing your chest before sliding down to your pussy. His fingers gently caress your pussy, and you shudder and cling to him, his erection grinding between your ass cheeks. He begins to slide up and down, and you lean forward, giving him room to maneuver. However, he doesn''t penetrate you, instead placing his hands on your shoulders and gently pushing you down. You understand what he wants and turn to face him. You lean down and suck on his balls before licking his shaft from base to tip.'

+ 1 - 1
locations/zsoft_gopskverGorSlut.qsrc

@@ -950,7 +950,7 @@ if $ARGS[0] = 'analsex':
 		The boys laugh: "Look at her... she seems like such a sweet and innocent girl, but she''s nothing more than an ordinary butt slut!"
 		Your ''confession'' seems to have done it for him, and his movements are almost immediately speeding up.'
 
-		if analplugin = 1: analplugin = 0 & '"You won''t be needing this!" he grins, and pulls out your butt plug with a loud pop. He''s quite rough with it, and you grimace at the sudden extrusion.'
+		if analplugin = 1: analplugin = 0 & analplugout = 1 & '"You won''t be needing this!" he grins, and pulls out your butt plug with a loud pop. He''s quite rough with it, and you grimace at the sudden extrusion.'
 		'<<$anal_gop_text>>'
 		if tatupb > 0: 'When he sees the tattoo on your lower back, he pats your ass approvingly: "Nice tramp stamp, whore."'
 		gs 'zsoft_gopskverGorSlut', 'hornyparksexanal'