Explorar o código

[fixed] sex pain calculations

Lusticon hai 4 meses
pai
achega
7af1564a67
Modificáronse 3 ficheiros con 127 adicións e 88 borrados
  1. 85 51
      locations/arousal.qsrc
  2. 37 37
      locations/cikl.qsrc
  3. 5 0
      locations/cum_cleanup.qsrc

+ 85 - 51
locations/arousal.qsrc

@@ -104,25 +104,27 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		grdif = (ARGS[4] - ARGS[0])/2
 		ltdif = (ARGS[3] - ARGS[0])/4
 		!! painful intercourse compensated with lube
-		if pain_coeff > 0:
+		if pain_coeff > rand(0,3):
 			grdif += rand(pain_coeff/max(1,ARGS[1]/2), pain_coeff/max(1,ARGS[1]))
 			ltdif += rand(pain_coeff/max(1,ARGS[1]/2), pain_coeff/max(1,ARGS[1]))
 		end
 		!! in pain compensated by skill
-		if ARGS[2] > 0:
+		if ARGS[2] > rand(2,5):
 			grdif += rand(ARGS[2]/max(1,ARGS[5]*4), ARGS[2]/max(1,ARGS[5]*2))
 			ltdif += rand(ARGS[2]/max(1,ARGS[5]*4), ARGS[2]/max(1,ARGS[5]*2))
 		end
 		!! if there is any discomfort, check intercourse duration, compensated by skill
-		if stim_time > 0:
+		if stim_time > 1:
 			if grdif > rand(ARGS[5]*2): grdif += rand(stim_time/(max(1,ARGS[5])*10), stim_time/(max(1,ARGS[5])*5))
 			if ltdif > rand(ARGS[5]*2): ltdif += rand(stim_time/(max(1,ARGS[5])*10), stim_time/(max(1,ARGS[5])*5))
 		end
 		!! lube can compensate the difference a bit, or make it worse if there is no lube at all
 		if ARGS[1] > 0:
-			grdif -= rand(ARGS[1]/2, ARGS[1])
+			grdif -= rand(ARGS[1], ARGS[1]*2)
+			ltdif -= rand(ARGS[1]/2, ARGS[1])
 		else
-			grdif += max(rand(ARGS[3], ARGS[4]), rand(grdif/2, grdif))
+			grdif += max(1, rand(grdif/4, grdif/2))/max(1,ARGS[5]+1)
+			ltdif += max(1, rand(ltdif/6, ltdif/4))/max(1,ARGS[5]+1)
 		end
 		!! when skilled, it does not harm PC
 		if ARGS[5] > 0 and ltdif > 0: ltdif /= ARGS[5]
@@ -146,36 +148,53 @@ 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 arrpos('$ARGS', 'prostitution') >= 0: temp_silavag = rand(0,1)
+	if arrpos('$ARGS', 'gangbang') >= 0: temp_silavag = rand(0,2)
 	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 arrpos('$ARGS', 'spit') >= 0:
-		if mid($ARGS[0],1,4) = 'anal':
-			anal_slip = 4
+	!! cum slippery
+	if cumloc[0] > 0: vaginal_slip += rand(cumvol[0]/10, cumvol[0]/5)
+	if cumloc[3] > 0: anal_slip += rand(cumvol[3]/15, cumvol[3]/10)
+	if mid($ARGS[0],1,4) = 'anal' and anal_slip < 8 + pain['asshole']/2 - pcs_ass:
+		if arrpos('$ARGS', 'spit') >= 0: anal_slip += 4
+		if arrpos('$ARGS', 'lube') >= 0 and ar_anal_lube = 0: anal_slip += 8 & ar_anal_lube = 1
+		if auto_anal_lube = 1 and anal_slip < 8 + pain['asshole']/2 - pcs_ass:
+			if  arrpos('$ARGS', 'anal_finger') < 0 _ 
+			and arrpos('$ARGS', 'rape') < 0 _ 
+			and arrpos('$ARGS', 'gangbang') < 0 _ 
+			and arrpos('$ARGS', 'rough') < 0 _ 
+			and arrpos('$ARGS', 'beast') < 0 _ 
+			and arrpos('$ARGS', 'BDSM') < 0 _ 
+			and arrpos('$ARGS', 'bound') < 0 _ 
+			and arrpos('$ARGS', 'humiliation') < 0:
+				gs 'arousal', 'auto_lube', 'anal'
+			end
 		end
-		if mid($ARGS[0],1,4) = 'vagi':
-			vaginal_slip = 4
+		!! an old variable that is still in use somewhere
+		if anal_slip <> lubonus and lubonus > 0:
+			anal_slip += lubonus
+			lubonus = anal_slip
 		end
 	end
-	if arrpos('$ARGS', 'lube') >= 0:
-		if ar_anal_lube = 0:
-			if mid($ARGS[0],1,4) = 'anal':
-				anal_slip = 8
-				ar_anal_lube = 1
-			end
-		end
-		if ar_vag_lube = 0:
-			if mid($ARGS[0],1,4) = 'vagi':
-				vaginal_slip = 8
-				ar_vag_lube = 1
+	if mid($ARGS[0],1,4) = 'vagi' and vaginal_slip < 8 + pain['vaginal']/2 - pcs_vag:
+		if arrpos('$ARGS', 'spit') >= 0: vaginal_slip += 4
+		if arrpos('$ARGS', 'lube') >= 0 and ar_vag_lube = 0: vaginal_slip += 8 & ar_vag_lube = 1
+		if auto_vag_lube = 1 and vaginal_slip < 8 + pain['vaginal']/2 - pcs_vag:
+			if  arrpos('$ARGS', 'vaginal_finger') < 0 _ 
+			and arrpos('$ARGS', 'rape') < 0 _ 
+			and arrpos('$ARGS', 'gangbang') < 0 _ 
+			and arrpos('$ARGS', 'rough') < 0 _ 
+			and arrpos('$ARGS', 'beast') < 0 _ 
+			and arrpos('$ARGS', 'BDSM') < 0 _ 
+			and arrpos('$ARGS', 'bound') < 0 _ 
+			and arrpos('$ARGS', 'humiliation') < 0:
+				gs 'arousal', 'auto_lube', 'vag'
 			end
 		end
 	end
-	!! cum slippery
-	if cumloc[0] > 0: vaginal_slip += rand(cumvol[0]/10, cumvol[0]/5)
-	if cumloc[3] > 0: anal_slip += rand(cumvol[3]/15, cumvol[3]/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:
@@ -195,16 +214,16 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 
 !! set up pain coefficient
 	pain_coeff = 0
-	if arrpos('$ARGS', 'rape') >= 0:         pain_coeff += 40
-	if arrpos('$ARGS', 'gangbang') >= 0:     pain_coeff += 30
-	if arrpos('$ARGS', 'rough') >= 0:        pain_coeff += 25
-	if arrpos('$ARGS', 'beast') >= 0:        pain_coeff += 20
-	if arrpos('$ARGS', 'BDSM') >= 0:         pain_coeff += 10
-	if arrpos('$ARGS', 'maso') >= 0:         pain_coeff += 7
-	if arrpos('$ARGS', 'bound') >= 0:        pain_coeff += 3
-	if arrpos('$ARGS', 'sub') >= 0:          pain_coeff += 2
-	if arrpos('$ARGS', 'prostitution') >= 0: pain_coeff += rand(0,5)
-	if arrpos('$ARGS', 'unknown') >= 0:      pain_coeff += rand(0,2)
+	if arrpos('$ARGS', 'rape') >= 0:         pain_coeff += rand(25,40)
+	if arrpos('$ARGS', 'gangbang') >= 0:     pain_coeff += rand(15,20)
+	if arrpos('$ARGS', 'beast') >= 0:        pain_coeff += rand(10,15)
+	if arrpos('$ARGS', 'rough') >= 0:        pain_coeff += rand(5,10)
+	if arrpos('$ARGS', 'BDSM') >= 0:         pain_coeff += rand(4,6)
+	if arrpos('$ARGS', 'maso') >= 0:         pain_coeff += rand(3,5)
+	if arrpos('$ARGS', 'bound') >= 0:        pain_coeff += rand(2,4)
+	if arrpos('$ARGS', 'sub') >= 0:          pain_coeff += rand(1,2)
+	if arrpos('$ARGS', 'prostitution') >= 0: pain_coeff += max(0, rand(-2,2))
+	if arrpos('$ARGS', 'unknown') >= 0:      pain_coeff += max(0, rand(-3,1))
 
 !!add count and effects due to action
 	if $ARGS[0] = 'clit_finger':
@@ -303,12 +322,14 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		end
 		dynamic $get_hole_pain, pcs_ass, anal_slip, pain['asshole'], rand(15,20), rand(35,40), rand(0,2)
 		stim['act'] -= grdif + ltdif
-		agape = min(4, iif((grdif + ltdif) > 3*agape,(grdif + ltdif)/3,agape))
 		gs 'pain', grdif+ltdif, 'asshole', 'stretch'
+		if grdif + ltdif > agape*2 + pcs_ass/2: agape += 1
 		pcs_ass += 1
 	elseif $ARGS[0] = 'self_fisting_anal':
 		orgasm_flag['anal'] = 1
 		count['self_fisting_anal'] = 1
+		!! add lube from saliva
+		if anal_slip < max(1, pcs_hydra/20): anal_slip = max(1, pcs_hydra/20)
 		stim['act'] = 30
 		if pcs_traits['buttslut_lvl'] = 1:
 			stim['act'] = 50
@@ -317,8 +338,8 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		end
 		dynamic $get_hole_pain, pcs_ass, anal_slip, pain['asshole'], rand(10,15), rand(30,35), 2
 		stim['act'] -= grdif + ltdif
-		agape = min(4, iif((grdif + ltdif) > 3*agape,(grdif + ltdif)/3,agape))
 		gs 'pain', grdif+ltdif, 'asshole', 'stretch'
+		if grdif + ltdif > agape*2 + pcs_ass/2: agape += 1
 		pcs_ass += 1
 	elseif $ARGS[0] = 'anal_vibe':
 		orgasm_flag['anal'] = 1
@@ -348,10 +369,10 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		end
 		dynamic $get_hole_pain, pcs_ass, anal_slip, pain['asshole'], temp_dick, grange, temp_silavag
 		stim['act'] = 80 - grdif + ltdif + temp_silavag*8
-		!! calculate the harm
-		agape = min(4, iif((grdif + ltdif) > 5*agape,(grdif + ltdif)/5, agape))
 		!! the pain lover the pleasure
 		gs 'pain', grdif + ltdif, 'asshole', 'stretch'
+		!! calculate the harm
+		if grdif + ltdif > agape*2 + pcs_ass/2: agape += 1
 		!! force cum leak
 		if ARGS[1] > 0 and cumvol[3] > rand(pcs_ass/2,pcs_ass): gs 'cum_manage', 'cum_decay', ((temp_dick+grange)/2)*max(1,stim_time/5)
 		if pcs_ass < temp_dick:pcs_ass += 1
@@ -368,8 +389,8 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		elseif pcs_traits['buttslut_lvl'] >= 2:
 			stim['mag'] += 1
 		end
-		agape = min(4, iif((grdif + ltdif) > 5*agape,(grdif + ltdif)/5, agape))
 		gs 'pain', grdif + ltdif, 'asshole', 'stretch'
+		if grdif + ltdif > agape*2 + pcs_ass/2: agape += 1
 		if ARGS[1] > 0 and cumvol[3] > rand(pcs_ass/2,pcs_ass): gs 'cum_manage', 'cum_decay', ((temp_dick+grange)/2)*max(1,stim_time/5)
 		if pcs_ass < temp_dick:pcs_ass += 1
 		if pcs_ass*2 < temp_dick:pcs_ass += 1
@@ -386,8 +407,8 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		!! the same as for 'anal'
 		dynamic $get_hole_pain, pcs_ass, anal_slip, pain['asshole'], temp_dick, grange, temp_silavag
 		stim['act'] = 80 - grdif + ltdif + temp_silavag*8
-		agape = min(4, iif((grdif + ltdif) > 5*agape,(grdif + ltdif)/5, agape))
 		gs 'pain', grdif + ltdif, 'asshole', 'stretch'
+		if grdif + ltdif > agape*2 + pcs_ass/2: agape += 1
 		!! force cum leak
 		if ARGS[1] > 0 and cumvol[3] > rand(pcs_ass/2,pcs_ass): gs 'cum_manage', 'cum_decay', ((temp_dick+grange)/2)*max(1,stim_time/5)
 		if pcs_ass < temp_dick:pcs_ass += 1
@@ -405,19 +426,21 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		stim['act'] = 70
 		dynamic $get_hole_pain, pcs_vag, vaginal_slip, pain['vaginal'], rand(15,20), rand(35,40), rand(0,2)
 		stim['act'] -= grdif + ltdif
-		vgape = min(4, iif((grdif + ltdif) > 3*vgape,(grdif + ltdif)/3,vgape))
 		gs 'pain', grdif+ltdif, 'vaginal', 'stretch'
 		gs 'pain', rand(grdif), 'labia', 'stretch'
+		if grdif + ltdif > vgape*2 + pcs_vag/2: vgape += 1
 		pcs_vag += 1
 	elseif $ARGS[0] = 'self_fisting':
 		orgasm_flag['vaginal'] = 1
 		count['self_fisting'] = 1
+		!! add lube from saliva
+		if vaginal_slip < max(1, pcs_hydra/20): vaginal_slip = max(1, pcs_hydra/20)
 		stim['act'] = 70
 		dynamic $get_hole_pain, pcs_vag, vaginal_slip, pain['vaginal'], rand(10,15), rand(30,35), 2
 		stim['act'] -= grdif + ltdif
-		vgape = min(4, iif((grdif + ltdif) > 3*vgape,(grdif + ltdif)/3,vgape))
 		gs 'pain', grdif+ltdif, 'vaginal', 'stretch'
 		gs 'pain', rand(grdif), 'labia', 'stretch'
+		if grdif + ltdif > vgape*2 + pcs_vag/2: vgape += 1
 		pcs_vag += 1
 	elseif $ARGS[0] = 'vaginal_vibe':
 		orgasm_flag['vaginal'] = 1
@@ -427,6 +450,8 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 	elseif $ARGS[0] = 'vaginal':
 		pcs_sweat += rand(1,3)*max(1,stim_time/5)
 		orgasm_flag['vaginal'] = 1
+		!! add anal lube from vaginal juices
+		if anal_slip < max(1, vaginal_slip/2): anal_slip = max(1, vaginal_slip/rand(2,3))
 		!! pre-cum check
 		if rand(0,120) < ARGS[1]: cumprecheck = 1 & gs 'cum_manage'
 		if temp_unaware = 1:
@@ -446,13 +471,13 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		stim['mag'] += 3
 		dynamic $get_hole_pain, pcs_vag, vaginal_slip, pain['vaginal'], temp_dick, grange, temp_silavag
 		stim['act'] = 80 - grdif + ltdif + temp_silavag*8
-		!! calculate the harm
-		vgape = min(4, iif((grdif + ltdif) > 3*vgape,(grdif + ltdif)/3,vgape))
 		!! the pain lover the pleasure
 		gs 'pain', grdif+ltdif, 'vaginal', 'stretch'
 		if temp_dick/max(1, temp_silavag) > rand(pcs_vag/2,pcs_vag): gs 'pain', rand(ltdif), 'cervix', 'shock'
 		if grange/max(1, temp_silavag)    > rand(pcs_vag/2,pcs_vag): gs 'pain', rand(grdif), 'labia', 'stretch'
-		if pain_coeff > 0:gs 'pain', rand(pain_coeff)/5, 'clitoris', 'hit'
+		if pain_coeff > 0: gs 'pain', rand(pain_coeff)/5, 'clitoris', 'hit'
+		!! calculate the harm
+		if grdif + ltdif > vgape*2 + pcs_vag/2: vgape += 1
 		!! force cum leak
 		if ARGS[1] > 0 and cumvol[0] > rand(pcs_vag/2,pcs_vag): gs 'cum_manage', 'cum_decay', ((temp_dick+grange)/2)*max(1,stim_time/5)
 		if pcs_vag < temp_dick:pcs_vag += 1
@@ -463,13 +488,14 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		count['vaginal_dildo'] = 1
 		stim['mag'] += 1
 		!! the same as for 'vaginal'
+		if anal_slip < max(1, vaginal_slip/2): anal_slip = max(1, vaginal_slip/rand(2,3))
 		dynamic $get_hole_pain, pcs_vag, vaginal_slip, pain['vaginal'], temp_dick, grange, temp_silavag
 		stim['act'] = 80 - grdif + ltdif + temp_silavag*8
-		vgape = min(4, iif((grdif + ltdif) > 3*vgape,(grdif + ltdif)/3,vgape))
 		gs 'pain', grdif + ltdif, 'vaginal', 'stretch'
 		if temp_dick/max(1, temp_silavag) > rand(pcs_vag/2,pcs_vag): gs 'pain', rand(ltdif), 'cervix', 'shock'
 		if grange/max(1, temp_silavag)    > rand(pcs_vag/2,pcs_vag): gs 'pain', rand(grdif), 'labia', 'stretch'
 		if ARGS[1] > 0 and cumvol[0] > rand(pcs_vag/2,pcs_vag): gs 'cum_manage', 'cum_decay', ((temp_dick+grange)/2)*max(1,stim_time/5)
+		if grdif + ltdif > vgape*2 + pcs_vag/2: vgape += 1
 		if pcs_vag < temp_dick:pcs_vag += 1
 		if pcs_vag*2 < temp_dick:pcs_vag += 1
 	elseif $ARGS[0] = 'vaginal_strap':
@@ -486,12 +512,13 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		end
 		stim['mag'] += 1
 		!! the same as for 'vaginal'
+		if anal_slip < max(1, vaginal_slip/2): anal_slip = max(1, vaginal_slip/rand(2,3))
 		dynamic $get_hole_pain, pcs_vag, vaginal_slip, pain['vaginal'], temp_dick, grange, temp_silavag
 		stim['act'] = 80 - grdif + ltdif + temp_silavag*8
-		vgape = min(4, iif((grdif + ltdif) > 3*vgape,(grdif + ltdif)/3,vgape))
 		gs 'pain', grdif + ltdif, 'vaginal', 'stretch'
 		if temp_dick/max(1, temp_silavag) > rand(pcs_vag/2,pcs_vag): gs 'pain', rand(ltdif), 'cervix', 'shock'
 		if grange/max(1, temp_silavag)    > rand(pcs_vag/2,pcs_vag): gs 'pain', rand(grdif), 'labia', 'stretch'
+		if grdif + ltdif > vgape*2 + pcs_vag/2: vgape += 1
 		if ARGS[1] > 0 and cumvol[0] > rand(pcs_vag/2,pcs_vag): gs 'cum_manage', 'cum_decay', ((temp_dick+grange)/2)*max(1,stim_time/5)
 		if pcs_vag < temp_dick:pcs_vag += 1
 		if pcs_vag*2 < temp_dick:pcs_vag += 1
@@ -575,6 +602,9 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		stim['act'] = 25
 	elseif $ARGS[0] = 'bj':
 		pcs_sweat += rand(0,1)*max(1,stim_time/5)
+		!! add lube from saliva
+		if anal_slip < max(1, pcs_hydra/20): anal_slip += max(1, pcs_hydra/20)
+		if vaginal_slip < max(1, pcs_hydra/20): vaginal_slip += max(1, pcs_hydra/20)
 		if temp_unaware = 1:
 			count['hidden_bj'] = 1
 		else
@@ -603,6 +633,9 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 	elseif $ARGS[0] = 'dildo_suck':
 		count['dildo_suck'] = 1
 		stim['act'] = 30
+		!! add lube from saliva
+		if anal_slip < max(1, pcs_hydra/20): anal_slip += max(1, pcs_hydra/20)
+		if vaginal_slip < max(1, pcs_hydra/20): vaginal_slip += max(1, pcs_hydra/20)
 		if pain_coeff > 0:gs 'pain', rand(pain_coeff), 'mouth', 'stretch'
 		if pcs_lipbalm > 0:
 			pcs_lipbalm = max(0, pcs_lipbalm - 1*max(1,stim_time/5))
@@ -1054,6 +1087,7 @@ if $ARGS[0] = 'end':
 		end
 	end
 
+	killvar 'lubonus'
 	killvar 'anal_slip'
 	killvar 'ar_anal_lube'
 	killvar 'vaginal_slip'
@@ -1186,7 +1220,7 @@ end
 !!to use enter gs 'arousal', 'auto_lube', 'anal' or 'vag'
 !!add 'custom' to display a custom or no text by setting $lube_txt, if $lube_txt is '' no text will be displayed
 if $ARGS[0] = 'auto_lube':
-	if $ARGS[1] = 'anal' and auto_anal_lube = 1:
+	if $ARGS[1] = 'anal' and auto_anal_lube = 1 and anal_slip < 8 + pain['asshole']/2 - pcs_ass:
 		if mc_inventory['lubricant'] > 0:
 			if $ARGS[2] ! 'custom': 
 				'You rub some lube in and around your anus.'
@@ -1194,14 +1228,14 @@ if $ARGS[0] = 'auto_lube':
 				$lube_txt
 			end
 			gs 'arousal', 'anal_finger', 1
-			anal_slip = 8
+			anal_slip += 8
 			ar_anal_lube = 1
 			mc_inventory['lubricant'] -= 1
 		elseif $ARGS[2] ! 'custom' or ($ARGS[2] = 'custom' and $lube_txt ! ''):
 			'You do not have any lube left so cannot use it during this sex act.'
 		end
 	end
-	if $ARGS[1] = 'vag' and auto_vag_lube = 1:
+	if $ARGS[1] = 'vag' and auto_vag_lube = 1 and vaginal_slip < 8 + pain['vaginal']/2 - pcs_vag:
 		if mc_inventory['lubricant'] > 0:
 			if $ARGS[2] ! 'custom': 
 				'You rub some lube in and around your vagina.'
@@ -1209,7 +1243,7 @@ if $ARGS[0] = 'auto_lube':
 				$lube_txt
 			end
 			gs 'arousal', 'vaginal_finger', 1
-			vaginal_slip = 8
+			vaginal_slip += 8
 			ar_vag_lube = 1
 			mc_inventory['lubricant'] -= 1
 		elseif $ARGS[2] ! 'custom' or ($ARGS[2] = 'custom' and $lube_txt ! ''):

+ 37 - 37
locations/cikl.qsrc

@@ -579,43 +579,43 @@ if pregchem > 240:fat += 1
 !!	Pain
 !!------------------------------------------------------------------------------------------------------------
 
-if pain['head'] > 0:pain['head'] -= rand(1,3)
-if pain['hair'] > 0:pain['hair'] -= rand(1,3)
-if pain['ears'] > 0:pain['ears'] -= rand(1,3)
-if pain['eyebrows'] > 0:pain['eyebrows'] -= rand(1,3)
-if pain['eyes'] > 0:pain['eyes'] -= rand(1,3)
-if pain['cheeks'] > 0:pain['cheeks'] -= rand(1,3)
-if pain['nose'] > 0:pain['nose'] -= rand(1,3)
-if pain['mouth'] > 0:pain['mouth'] -= rand(1,3)
-if pain['lips'] > 0:pain['lips'] -= rand(1,3)
-if pain['tongue'] > 0:pain['tongue'] -= rand(1,3)
-if pain['throat'] > 0:pain['throat'] -= rand(1,3)
-if pain['neck'] > 0:pain['neck'] -= rand(1,3)
-if pain['back'] > 0:pain['back'] -= rand(1,3)
-if pain['asscheeks'] > 0:pain['asscheeks'] -= rand(1,3)
-if pain['asshole'] > 0:pain['asshole'] -= rand(1,3)
-if pain['hips'] > 0:pain['hips'] -= rand(1,3)
-if pain['thighs'] > 0:pain['thighs'] -= rand(1,3)
-if pain['legL'] > 0:pain['legL'] -= rand(1,3)
-if pain['legR'] > 0:pain['legR'] -= rand(1,3)
-if pain['feet'] > 0:pain['feet'] -= rand(1,3)
-if pain['toes'] > 0:pain['toes'] -= rand(1,3)
-if pain['shoulders'] > 0:pain['shoulders'] -= rand(1,3)
-if pain['armL'] > 0:pain['armL'] -= rand(1,3)
-if pain['armR'] > 0:pain['armR'] -= rand(1,3)
-if pain['hands'] > 0:pain['hands'] -= rand(1,3)
-if pain['fingers'] > 0:pain['fingers'] -= rand(1,3)
-if pain['chest'] > 0:pain['chest'] -= rand(1,3)
-if pain['breasts'] > 0:pain['breasts'] -= rand(1,3)
-if pain['nipples'] > 0:pain['nipples'] -= rand(1,3)
-if pain['ribs'] > 0:pain['ribs'] -= rand(1,3)
-if pain['tummy'] > 0:pain['tummy'] -= rand(1,3)
-if pain['pubic'] > 0:pain['pubic'] -= rand(1,3)
-if pain['vaginal'] > 0:pain['vaginal'] -= rand(1,3)
-if pain['labia'] > 0:pain['labia'] -= rand(1,3)
-if pain['clitoris'] > 0:pain['clitoris'] -= rand(1,3)
-if pain['urethra'] > 0:pain['urethra'] -= rand(1,3)
-if pain['cervix'] > 0:pain['cervix'] -= rand(1,3)
+if pain['head'] > 0:     pain['head']      -= max(rand(1,3), rand(pain['head']      /2))
+if pain['hair'] > 0:     pain['hair']      -= max(rand(1,3), rand(pain['hair']      /2))
+if pain['ears'] > 0:     pain['ears']      -= max(rand(1,3), rand(pain['ears']      /2))
+if pain['eyebrows'] > 0: pain['eyebrows']  -= max(rand(1,3), rand(pain['eyebrows']  /2))
+if pain['eyes'] > 0:     pain['eyes']      -= max(rand(1,3), rand(pain['eyes']      /2))
+if pain['cheeks'] > 0:   pain['cheeks']    -= max(rand(1,3), rand(pain['cheeks']    /2))
+if pain['nose'] > 0:     pain['nose']      -= max(rand(1,3), rand(pain['nose']      /2))
+if pain['mouth'] > 0:    pain['mouth']     -= max(rand(1,3), rand(pain['mouth']     /2))
+if pain['lips'] > 0:     pain['lips']      -= max(rand(1,3), rand(pain['lips']      /2))
+if pain['tongue'] > 0:   pain['tongue']    -= max(rand(1,3), rand(pain['tongue']    /2))
+if pain['throat'] > 0:   pain['throat']    -= max(rand(1,3), rand(pain['throat']    /2))
+if pain['neck'] > 0:     pain['neck']      -= max(rand(1,3), rand(pain['neck']      /2))
+if pain['back'] > 0:     pain['back']      -= max(rand(1,3), rand(pain['back']      /2))
+if pain['asscheeks'] > 0:pain['asscheeks'] -= max(rand(1,3), rand(pain['asscheeks'] /2))
+if pain['asshole'] > 0:  pain['asshole']   -= max(rand(1,3), rand(pain['asshole']   /2))
+if pain['hips'] > 0:     pain['hips']      -= max(rand(1,3), rand(pain['hips']      /2))
+if pain['thighs'] > 0:   pain['thighs']    -= max(rand(1,3), rand(pain['thighs']    /2))
+if pain['legL'] > 0:     pain['legL']      -= max(rand(1,3), rand(pain['legL']      /2))
+if pain['legR'] > 0:     pain['legR']      -= max(rand(1,3), rand(pain['legR']      /2))
+if pain['feet'] > 0:     pain['feet']      -= max(rand(1,3), rand(pain['feet']      /2))
+if pain['toes'] > 0:     pain['toes']      -= max(rand(1,3), rand(pain['toes']      /2))
+if pain['shoulders'] > 0:pain['shoulders'] -= max(rand(1,3), rand(pain['shoulders'] /2))
+if pain['armL'] > 0:     pain['armL']      -= max(rand(1,3), rand(pain['armL']      /2))
+if pain['armR'] > 0:     pain['armR']      -= max(rand(1,3), rand(pain['armR']      /2))
+if pain['hands'] > 0:    pain['hands']     -= max(rand(1,3), rand(pain['hands']     /2))
+if pain['fingers'] > 0:  pain['fingers']   -= max(rand(1,3), rand(pain['fingers']   /2))
+if pain['chest'] > 0:    pain['chest']     -= max(rand(1,3), rand(pain['chest']     /2))
+if pain['breasts'] > 0:  pain['breasts']   -= max(rand(1,3), rand(pain['breasts']   /2))
+if pain['nipples'] > 0:  pain['nipples']   -= max(rand(1,3), rand(pain['nipples']   /2))
+if pain['ribs'] > 0:     pain['ribs']      -= max(rand(1,3), rand(pain['ribs']      /2))
+if pain['tummy'] > 0:    pain['tummy']     -= max(rand(1,3), rand(pain['tummy']     /2))
+if pain['pubic'] > 0:    pain['pubic']     -= max(rand(1,3), rand(pain['pubic']     /2))
+if pain['vaginal'] > 0:  pain['vaginal']   -= max(rand(1,3), rand(pain['vaginal']   /2))
+if pain['labia'] > 0:    pain['labia']     -= max(rand(1,3), rand(pain['labia']     /2))
+if pain['clitoris'] > 0: pain['clitoris']  -= max(rand(1,3), rand(pain['clitoris']  /2))
+if pain['urethra'] > 0:  pain['urethra']   -= max(rand(1,3), rand(pain['urethra']   /2))
+if pain['cervix'] > 0:   pain['cervix']    -= max(rand(1,3), rand(pain['cervix']    /2))
 
 if painpub = 2:
 	if painpubday + 5 < daystart:

+ 5 - 0
locations/cum_cleanup.qsrc

@@ -328,6 +328,11 @@ elseif $ARGS[0] = '':
 	killvar 'deresidue'
 	killvar 'tmp'
 	killvar 'i'
+	killvar 'lubonus'
+	killvar 'anal_slip'
+	killvar 'vaginal_slip'
+	killvar 'ar_anal_lube'
+	killvar 'ar_vag_lube'
 	if cumsumvag > 0: cum_vol['vagina'] = cumsumvag & cumvol[0] = cumsumvag & cum_loc['vagina'] = 1 & cumloc[0] = 1
 	if cumsumass > 0: cum_vol['anus'] = cumsumass   & cumvol[3] = cumsumass & cum_loc['anus'] = 1   & cumloc[3] = 1