Browse Source

[fixed] arousal over use workaround

Lusticon 3 months ago
parent
commit
70a5ab3166
1 changed files with 40 additions and 31 deletions
  1. 40 31
      locations/arousal.qsrc

+ 40 - 31
locations/arousal.qsrc

@@ -87,6 +87,13 @@ temp_unaware = 0
 temp_text = 0
 !!orgasms restricted to direct stimulation using this flag
 killvar 'orgasm_flag'
+!!workaround over use
+if $ARGS[0] ! 'auto_lube' and $arousal_overcall ! $ARGS[0]+$ARGS[2]+$ARGS[3]+$ARGS[4]+$ARGS[5]+$ARGS[6]+$ARGS[7]+$ARGS[8]:
+	killvar 'arousal_overcall'
+elseif arousal_overcall = 0:
+	$arousal_overcall = $ARGS[0]+$ARGS[2]+$ARGS[3]+$ARGS[4]+$ARGS[5]+$ARGS[6]+$ARGS[7]+$ARGS[8]
+	arousal_overcall = 1
+end
 
 if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0] ! 'count2':
 
@@ -208,39 +215,41 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		!! length and girth abilities of hole are not also separated
 		!! but I suppose that they are related although it is not propable
 		!! we can estimate difference in girth and length
-		grdif = (ARGS[4] - ARGS[0])/2
-		ltdif = (ARGS[3] - ARGS[0])/4
-		!! painful intercourse
-		if pain_coeff > rand(0,2):
-			grdif += rand(pain_coeff/2, pain_coeff)
-			ltdif += rand(pain_coeff/2, pain_coeff)
-		end
-		!! in pain, compensated with lube
-		if ARGS[2] > 0:
-			if ARGS[2] > rand(ARGS[1]/2, ARGS[1]): grdif += rand(ARGS[2] / max(1,ARGS[1]/2), ARGS[2] / max(1,ARGS[1]/4))
-			if ARGS[2] > rand(ARGS[1]/2, ARGS[1]): ltdif += rand(ARGS[2] / max(1,ARGS[1]/2), ARGS[2] / max(1,ARGS[1]/4))
-		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])
-			ltdif -= rand(ARGS[1]/4, ARGS[1]/2)
-		else
-			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]+1
-		!! if there is any discomfort, check intercourse duration, compensated by skill
-		if stim_time > 1:
-			if grdif > rand(stim_time): grdif += rand(stim_time / (max(1,ARGS[5])*5), stim_time / (max(1,ARGS[5])*3))
-			if ltdif > rand(stim_time): ltdif += rand(stim_time / (max(1,ARGS[5])*5), stim_time / (max(1,ARGS[5])*3))
-		end
+		if arousal_overcall = 0:
+			grdif = (ARGS[4] - ARGS[0])/2
+			ltdif = (ARGS[3] - ARGS[0])/4
+			!! painful intercourse
+			if pain_coeff > rand(0,2):
+				grdif += rand(pain_coeff/2, pain_coeff)
+				ltdif += rand(pain_coeff/2, pain_coeff)
+			end
+			!! in pain, compensated with lube
+			if ARGS[2] > 0:
+				if ARGS[2] > rand(ARGS[1]/2, ARGS[1]): grdif += rand(ARGS[2] / max(1,ARGS[1]/2), ARGS[2] / max(1,ARGS[1]/4))
+				if ARGS[2] > rand(ARGS[1]/2, ARGS[1]): ltdif += rand(ARGS[2] / max(1,ARGS[1]/2), ARGS[2] / max(1,ARGS[1]/4))
+			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])
+				ltdif -= rand(ARGS[1]/4, ARGS[1]/2)
+			else
+				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]+1
+			!! if there is any discomfort, check intercourse duration, compensated by skill
+			if stim_time > 1:
+				if grdif > rand(stim_time): grdif += rand(stim_time / (max(1,ARGS[5])*5), stim_time / (max(1,ARGS[5])*3))
+				if ltdif > rand(stim_time): ltdif += rand(stim_time / (max(1,ARGS[5])*5), stim_time / (max(1,ARGS[5])*3))
+			end
 
-		!! min\max
-		grdif = max(0, grdif / max(1, (ARGS[0]/6)))
-		ltdif = max(0, ltdif / max(1, (ARGS[0]/6)))
+			!! min\max
+			grdif = max(0, grdif / max(1, (ARGS[0]/6)))
+			ltdif = max(0, ltdif / max(1, (ARGS[0]/6)))
 
-		!{ 'hole size <<ARGS[0]>>; length: <<ARGS[3]>>; grange: <<ARGS[4]>>; hole slippery: <<ARGS[1]>>; current pain: <<ARGS[2]>>; stim_time: <<stim_time>>; skill: <<ARGS[5]>>; grdif: <<grdif>>; ltdif: <<ltdif>>' }
+			!{ 'hole size <<ARGS[0]>>; length: <<ARGS[3]>>; grange: <<ARGS[4]>>; hole slippery: <<ARGS[1]>>; current pain: <<ARGS[2]>>; stim_time: <<stim_time>>; skill: <<ARGS[5]>>; grdif: <<grdif>>; ltdif: <<ltdif>>' }
+		end
 	}
 
 !!add count and effects due to action