arousal.qsrc 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737
  1. # arousal
  2. !!{For checking arousal and when applicable triggering orgasms.
  3. $ARGS[0] the action causing arousal can be when receiving any of the following:
  4. 'masturbate' 'porn' 'voyeur' 'kiss' 'breasts' 'massage' 'foreplay' 'cuni' 'rimming' 'trib' 'anal' 'anal_finger' 'anal_fist' 'anal_dildo' 'anal_strap' 'anal_vibe' 'vaginal' 'vaginal_finger' 'vaginal_fist' 'vaginal_dildo' 'vaginal_strap' 'vaginal_vibe'
  5. also when giving any of the following:
  6. 'flashlite' 'flash' 'kiss_give' 'breasts_give' 'massage_give' 'foreplay_give' 'cuni_give' 'rimming_give' 'anal_finger_give' 'anal_fist_give' 'anal_dildo_give' 'anal_vibe_give' 'anal_strap_give'
  7. 'vaginal_finger_give' 'vaginal_fist_give' 'vaginal_dildo_give' 'vaginal_strap_give' 'vaginal_vibe_give' 'hj' 'bj' 'footjob'
  8. All acts are from Sveta''s perspective and in cases of both giving and receiving, receiving should be used.
  9. ARGS[1] for time taken in minutes - it is use partly for arousal calculation and partly for moving time ahead. If you want to calculate just the arousal and do not move time (simultaneous stimulation), use negative value.
  10. $ARGS[2] can be used for passing the name of boys dick variable .. 'dick' is default, which belong to $boy, else can be passed 'dick1' .. 'dick4' or 'dick[i]' along the boys parameters activation
  11. $ARGS[2] - [8] Are optional but can be upto 7 fetishes involved in the act and can be any of the following:
  12. 'maso' 'bound' 'beast' 'exhibitionism' 'rough' 'prostitution' 'dom' 'sub' 'incest' 'feet' 'lesbian' 'group' 'gangbang' 'humiliation' 'deepthroat' 'unknown' 'gloryhole' 'rape' 'futa'
  13. Format to use: gs 'arousal', 'act', 'duration', 'fetish', 'fetish', 'fetish', 'fetish', 'fetish', 'fetish', 'fetish'
  14. eg: gs 'arousal', 'trib', 10, 'bound', 'sub'
  15. In this case lesbianism is automatically added, much as feet would be applied to 'footjob'
  16. Lubrication - if one of the arguments $ARGS[2] - [8] is set to 'lube', it supposes that it is used some kind of lubricant - preferably from PCs supply of lube.
  17. Unaware - if one of the arguments $ARGS[2] - [8] is set to 'unaware', Sveta is not aware of this Sexact. Sveta will never know she had Sex!
  18. The lubrication is binded with anal or vaginal action. I think that the best combo is with 'anal_finger' and 'vaginal_finger'
  19. Only call one at a time, if more required, use multiple calls
  20. You can override the orgasm to force or prevent, to do so use:
  21. $orgasm_or = 'yes' to force orgasm, it will reset in orgasm call so if you want to force it again, you have to enter it again
  22. *$orgasm_or = 'custom' to force orgasm and use custom text set as $orgasm_txt - *you can just add the text and call with 'yes' this is old method
  23. $orgasm_or = 'no' to prevent orgasm, it will remain in place until manually changed, or if end is called.
  24. $orgasm_txt is used to add custom text that will be called if Sveta orgasms in the next arousal call. It will remain until cleared or orgasm so you must clear it if not forcing orgasm and don''t want it to be used on next orgasm.
  25. }
  26. temp_anal = 0
  27. temp_unaware = 0
  28. if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0] ! 'count2':
  29. if strpos($ARGS[2]+$ARGS[3]+$ARGS[4]+$ARGS[5]+$ARGS[6]+ $ARGS[7]+ $ARGS[8],'unaware') > 0:
  30. temp_unaware = 1
  31. end
  32. if mid($ARGS[2],1,4) = 'dick':
  33. temp_dick = dyneval('result='+$ARGS[2])
  34. temp_silavag = dyneval('result=silavag'+mid($ARGS[2],5,len($ARGS[2])-4))
  35. $temp_dick_girth = dyneval('$result=$dick_girth'+mid($ARGS[2],5,len($ARGS[2])-4))
  36. else
  37. temp_dick = dick
  38. temp_silavag = silavag
  39. $temp_dick_girth = $dick_girth
  40. end
  41. 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
  42. grange = dyneval('result=strpos(''skinny slimx well pr thicker thickx massive monstrous'',$ARGS[0])',mid($temp_dick_girth+'x',1,6))/2
  43. !! first let us determine how slippery are pc''s holes
  44. if vaginal_slip < pcs_horny / 10: vaginal_slip = pcs_horny / 10
  45. if strpos($ARGS[2]+$ARGS[3]+$ARGS[4]+$ARGS[5]+$ARGS[6]+ $ARGS[7]+ $ARGS[8],'lube') > 0:
  46. if mid($ARGS[0],1,4) = 'anal':
  47. anal_slip += iif(lubri = 0,2,8)
  48. if anal_slip > 10: anal_slip=10
  49. if lubri > 0: lubri -= 1
  50. end
  51. if mid($ARGS[0],1,4) = 'vagi':
  52. vaginal_slip += iif(lubri = 0,2,8)
  53. if vaginal_slip > 12: vaginal_slip=12
  54. if lubri > 0: lubri -= 1
  55. end
  56. end
  57. !! This is to allow a Succubus with the right skill level to handle any size then go back to original size
  58. if succubusflag = 1 and sucskill >= 4:
  59. if mid($ARGS[0],1,4) = 'vagi' and temp_dick ! pcs_vag:
  60. if temp_dick < pcs_vag - 5 or temp_dick > pcs_vag + 5: pcs_mood -= 10
  61. if sucvagorg = 0: sucvagorg = pcs_vag
  62. pcs_vag = temp_dick
  63. end
  64. if mid($ARGS[0],1,4) = 'anal' and temp_dick ! pcs_ass:
  65. if temp_dick < pcs_ass - 5 or temp_dick > pcs_ass + 5: pcs_mood -= 10
  66. if sucanusorg = 0: sucanusorg = pcs_ass
  67. pcs_ass = temp_dick
  68. end
  69. end
  70. !!set a magnitude as a random
  71. stim['mag'] = rand(0,3) + rand(0,3) + rand(0,3)
  72. !!add count and effects due to action
  73. if $ARGS[0] = 'masturbate':
  74. count['mast'] = 1
  75. stim['mag'] += 6
  76. stim['act'] = 100
  77. elseif $ARGS[0] = 'porn':
  78. count['porn'] = 1
  79. stim['act'] = 20
  80. elseif $ARGS[0] = 'voyeur':
  81. count['voyeur'] = 1
  82. stim['act'] = 30
  83. elseif $ARGS[0] = 'kiss':
  84. stim['act'] = 10
  85. elseif $ARGS[0] = 'breasts':
  86. stim['act'] = 30
  87. !! 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.
  88. milkedvolume += func('lact_lib','$get_breastmilk', 8, ARGS[1])
  89. elseif $ARGS[0] = 'massage':
  90. stim['act'] = 25
  91. elseif $ARGS[0] = 'foreplay':
  92. stim['act'] = 20
  93. elseif $ARGS[0] = 'cuni':
  94. count['cuni'] = 1
  95. stim['mag'] += 4
  96. stim['act'] = 80
  97. elseif $ARGS[0] = 'rimming':
  98. count['rimming'] = 1
  99. stim['act'] = 30
  100. elseif $ARGS[0] = 'trib':
  101. count['trib'] = 1
  102. stim['mag'] += 3
  103. stim['act'] = 70
  104. stim_les = 1
  105. elseif $ARGS[0] = 'anal':
  106. temp_anal = 1
  107. if temp_unaware = 1:
  108. count['hidden_anal'] = 1
  109. else
  110. count['anal'] = 1
  111. end
  112. if pcs_ass < dick:pcs_ass += 1
  113. if pcs_ass*2 < dick:pcs_ass += 1
  114. !! length and girth abilities of anus are not also separated , but I suppose that they are related although it is not propable
  115. !! we can estimate difference in girth and length anal_girth_difference and anal_lenght_difference - names are shortened
  116. altdif = temp_dick - pcs_ass
  117. agrdif = grange - pcs_ass
  118. !! negative influence of the difference can be reduced by sex skill and also by lubricant
  119. !! I made it as simply as posible so you do not complain about reality, feel free to modify the algorithm
  120. !! when the boy is skilled, he can compensate the difference partly
  121. altdif = altdif / (temp_silavag+1)
  122. agrdif = agrdif *(5/4 - 1/(4 - temp_silavag))
  123. !! when the boy is skilled, he does not harm PC with his long dick
  124. if (temp_silavag = 2) and (altdif > 0): altdif = 0
  125. !! lube can compensate the difference a bit
  126. if agrdif > anal_slip: agrdif = agrdif - anal_slip else if agrdif > 0: agrdif = 0
  127. if -agrdif > anal_slip: agrdif = agrdif + anal_slip else if agrdif < 0: agrdif = 0
  128. stim['act'] = 80 - (iif(altdif>0,altdif,-altdif) + iif(agrdif >0,agrdif,-agrdif)) + temp_silavag*8
  129. !! if the dick is smaller, it cannot harm PC
  130. if agrdif < 0: agrdif = 0
  131. if altdif < 0: altdif = 0
  132. !! calculate the harm
  133. agape = iif((agrdif + altdif) > 10*agape,(agrdif + altdif)/10,agape)
  134. !! the pain lover the pleasure
  135. gs 'pain', (agrdif + altdif)/5 , 'asshole', 'stretch'
  136. stim['act'] = stim['act'] - (agrdif + altdif)
  137. elseif $ARGS[0] = 'anal_finger':
  138. temp_anal = 1
  139. count['anal_finger'] = 1
  140. stim['act'] = 40
  141. elseif $ARGS[0] = 'anal_fist':
  142. temp_anal = 1
  143. count['anal_fist'] = 1
  144. gs 'pain', 4-agape, 'asshole', 'stretch'
  145. stim['act'] = 30
  146. if pcs_ass > 30:
  147. pcs_ass += 30
  148. if agape < 3:agape = 3
  149. end
  150. elseif $ARGS[0] = 'anal_dildo':
  151. temp_anal = 1
  152. count['anal_dildo'] = 1
  153. !! the same as for 'anal'
  154. altdif = temp_dick - pcs_ass
  155. agrdif = grange - pcs_ass
  156. altdif = altdif / (temp_silavag+1)
  157. agrdif = agrdif *(5/4 - 1/(4 - temp_silavag))
  158. if (temp_silavag = 2) and (altdif > 0): altdif = 0
  159. if agrdif > anal_slip: agrdif = agrdif - anal_slip else if agrdif > 0: agrdif = 0
  160. if -agrdif > anal_slip: agrdif = agrdif + anal_slip else if agrdif < 0: agrdif = 0
  161. stim['act'] = 80 - (iif(altdif>0,altdif,-altdif) + iif(agrdif >0,agrdif,-agrdif)) + temp_silavag*8
  162. if agrdif < 0: agrdif = 0
  163. if altdif < 0: altdif = 0
  164. agape = iif((agrdif + altdif) > 10*agape,(agrdif + altdif)/10,agape)
  165. gs 'pain', (agrdif + altdif)/5 , 'asshole', 'stretch'
  166. stim['act'] = stim['act'] - (agrdif + altdif)
  167. elseif $ARGS[0] = 'anal_strap':
  168. temp_anal = 1
  169. count['anal_strap'] = 1
  170. !! the same as for 'anal'
  171. altdif = temp_dick - pcs_ass
  172. agrdif = grange - pcs_ass
  173. altdif = altdif / (temp_silavag+1)
  174. agrdif = agrdif *(5/4 - 1/(4 - temp_silavag))
  175. if (temp_silavag = 2) and (altdif > 0): altdif = 0
  176. if agrdif > anal_slip: agrdif = agrdif - anal_slip else if agrdif > 0: agrdif = 0
  177. if -agrdif > anal_slip: agrdif = agrdif + anal_slip else if agrdif < 0: agrdif = 0
  178. stim['act'] = 80 - (iif(altdif>0,altdif,-altdif) + iif(agrdif >0,agrdif,-agrdif)) + temp_silavag*8
  179. if agrdif < 0: agrdif = 0
  180. if altdif < 0: altdif = 0
  181. agape = iif((agrdif + altdif) > 10*agape,(agrdif + altdif)/10,agape)
  182. gs 'pain', (agrdif + altdif)/5 , 'asshole', 'stretch'
  183. stim['act'] = stim['act'] - (agrdif + altdif)
  184. elseif $ARGS[0] = 'anal_vibe':
  185. temp_anal = 1
  186. count['anal_vibe'] = 1
  187. stim['mag'] += 1
  188. stim['act'] = 60
  189. elseif $ARGS[0] = 'vaginal':
  190. !! pre-cum check
  191. if rand(0,120) < ARGS[1]: cumprecheck = 1 & gs 'cum_manage'
  192. if temp_unaware = 1:
  193. count['hidden_vaginal'] = 1
  194. else
  195. count['vaginal'] = 1
  196. end
  197. stim['mag'] += 3
  198. !! This section deals with pcs_vag if she still thinks she is virgin. There are many instances where virginity is
  199. !! checked via pcs_vag = 0, so for the time being i will not adjust pcs_vag if she believes.
  200. if temp_unaware = 0 or count['vaginal'] > 0:
  201. if pcs_vag < dick:pcs_vag += 1
  202. if pcs_vag*2 < dick:pcs_vag += 1
  203. end
  204. !! length and girth abilities of vagina are not separated , but I suppose that they are related
  205. !! we can estimate difference in girth and length vaginal_girth_difference and vaginal_lenght_difference - names are shortened
  206. vgrdif = grange - pcs_vag
  207. vltdif = temp_dick - pcs_vag
  208. !! negative influence of the difference can be reduced by sex skill and also by PCs horniness, using of a lubricant is not established yet
  209. !! I made it as simply as posible so you do not complain about reality, feel free to modify the algorithm
  210. !! when the boy is skilled, he can compensate the difference partly
  211. vltdif = vltdif / (temp_silavag+1)
  212. vgrdif = vgrdif *(5/4 - 1/(4 - temp_silavag))
  213. !! when the boy is skilled, he does not harm PC with his long dick
  214. if (temp_silavag = 2) and (vltdif > 0): vltdif = 0
  215. !! even PC horniness can compensate the difference
  216. if vgrdif > vaginal_slip: vgrdif = vgrdif - vaginal_slip else if (vgrdif > 0): vgrdif = 0
  217. if -1*vgrdif > vaginal_slip: vgrdif = vgrdif + vaginal_slip else if (vgrdif < 0): vgrdif = 0
  218. stim['act'] = 80 - (iif(vltdif>0,vltdif,-vltdif) + iif(vgrdif >0,vgrdif,-vgrdif)) + temp_silavag*8
  219. !! if the dick is smaller, it cannot harm PC
  220. if vgrdif < 0: vgrdif = 0
  221. if vltdif < 0: vltdif = 0
  222. !! calculate the harm
  223. vgape = iif((vgrdif + vltdif) > 10*vgape,(vgrdif + vltdif)/10,vgape)
  224. !! the pain lover the pleasure
  225. gs 'pain', (vgrdif + vltdif)/5 , 'vaginal', 'stretch'
  226. stim['act'] = stim['act'] - (vgrdif + vltdif)
  227. elseif $ARGS[0] = 'vaginal_finger':
  228. count['vaginal_finger'] = 1
  229. stim['mag'] += 1
  230. stim['act'] = 80
  231. elseif $ARGS[0] = 'vaginal_fist':
  232. count['vaginal_fist'] = 1
  233. stim['act'] = 70
  234. gs 'pain', 3 - vgape, 'vaginal', 'stretch'
  235. if pcs_vag + vaginal_slip < 30:
  236. !! same as for 'vaginal'
  237. if temp_unaware = 0 or count['vaginal'] > 0:pcs_vag += 3
  238. if vgape < 3:vgape = 3
  239. end
  240. elseif $ARGS[0] = 'vaginal_dildo':
  241. count['vaginal_dildo'] = 1
  242. stim['mag'] += 1
  243. !! the same as for 'vaginal'
  244. vgrdif = grange - pcs_vag
  245. vltdif = temp_dick - pcs_vag
  246. vltdif = vltdif / (temp_silavag+1)
  247. vgrdif = vgrdif *(5/4 - 1/(4 - temp_silavag))
  248. if (temp_silavag = 2) and (vltdif > 0): vltdif = 0
  249. if vgrdif > vaginal_slip: vgrdif = vgrdif - vaginal_slip else if (vgrdif > 0): vgrdif = 0
  250. if -1*vgrdif > vaginal_slip: vgrdif = vgrdif + vaginal_slip else if (vgrdif < 0): vgrdif = 0
  251. stim['act'] = 80 - (iif(vltdif>0,vltdif,-vltdif) + iif(vgrdif >0,vgrdif,-vgrdif)) + temp_silavag*8
  252. if vgrdif < 0: vgrdif = 0
  253. if vltdif < 0: vltdif = 0
  254. vgape = iif((vgrdif + vltdif) > 10*vgape,(vgrdif + vltdif)/10,vgape)
  255. gs 'pain', (vgrdif + vltdif)/5 , 'vaginal', 'stretch'
  256. stim['act'] = stim['act'] - (vgrdif + vltdif)
  257. elseif $ARGS[0] = 'vaginal_strap':
  258. count['vaginal_strap'] = 1
  259. stim['mag'] += 1
  260. !! virginal capacity increase
  261. if pcs_vag < dick:pcs_vag += 1
  262. if pcs_vag*2 < dick:pcs_vag += 1
  263. !! the same as for 'vaginal'
  264. vgrdif = grange - pcs_vag
  265. vltdif = temp_dick - pcs_vag
  266. vltdif = vltdif / (temp_silavag+1)
  267. vgrdif = vgrdif *(5/4 - 1/(4 - temp_silavag))
  268. if (temp_silavag = 2) and (vltdif > 0): vltdif = 0
  269. if vgrdif > vaginal_slip: vgrdif = vgrdif - vaginal_slip else if (vgrdif > 0): vgrdif = 0
  270. if -1*vgrdif > vaginal_slip: vgrdif = vgrdif + vaginal_slip else if (vgrdif < 0): vgrdif = 0
  271. stim['act'] = 80 - (iif(vltdif>0,vltdif,-vltdif) + iif(vgrdif >0,vgrdif,-vgrdif)) + temp_silavag*8
  272. if vgrdif < 0: vgrdif = 0
  273. if vltdif < 0: vltdif = 0
  274. vgape = iif((vgrdif + vltdif) > 10*vgape,(vgrdif + vltdif)/10,vgape)
  275. gs 'pain', (vgrdif + vltdif)/5 , 'vaginal', 'stretch'
  276. stim['act'] = stim['act'] - (vgrdif + vltdif)
  277. elseif $ARGS[0] = 'vaginal_vibe':
  278. count['vaginal_vibe'] = 1
  279. stim['mag'] += 2
  280. stim['act'] = 90
  281. elseif $ARGS[0] = 'flashlite':
  282. count['flashlite'] = 1
  283. stim['act'] = 10
  284. elseif $ARGS[0] = 'flash':
  285. count['flash'] = 1
  286. stim['act'] = 30
  287. elseif $ARGS[0] = 'kiss_give':
  288. stim['act'] = 20
  289. elseif $ARGS[0] = 'breasts_give':
  290. stim['act'] = 20
  291. elseif $ARGS[0] = 'massage_give':
  292. stim['act'] = 10
  293. elseif $ARGS[0] = 'foreplay_give':
  294. stim['act'] = 20
  295. elseif $ARGS[0] = 'cuni_give':
  296. count['cuni_give'] = 1
  297. stim['act'] = 30
  298. stim_les = 1
  299. elseif $ARGS[0] = 'rimming_give':
  300. count['rimming_give'] = 1
  301. stim['act'] = 25
  302. elseif $ARGS[0] = 'anal_finger_give':
  303. count['anal_finger_give'] = 1
  304. stim['act'] = 40
  305. elseif $ARGS[0] = 'anal_fist_give':
  306. count['anal_fist_give'] = 1
  307. stim['act'] = 30
  308. elseif $ARGS[0] = 'anal_dildo_give':
  309. count['anal_dildo_give'] = 1
  310. stim['act'] = 40
  311. elseif $ARGS[0] = 'anal_vibe_give':
  312. count['anal_vibe_give'] = 1
  313. stim['act'] = 40
  314. elseif $ARGS[0] = 'anal_strap_give':
  315. count['anal_strap_give'] = 1
  316. stim['act'] = 40
  317. elseif $ARGS[0] = 'vaginal_finger_give':
  318. count['vaginal_finger_give'] = 1
  319. stim['act'] = 60
  320. stim_les = 1
  321. elseif $ARGS[0] = 'vaginal_fist_give':
  322. count['vaginal_fist_give'] = 1
  323. stim['act'] = 50
  324. stim_les = 1
  325. elseif $ARGS[0] = 'vaginal_dildo_give':
  326. count['vaginal_dildo_give'] = 1
  327. stim['act'] = 60
  328. stim_les = 1
  329. elseif $ARGS[0] = 'vaginal_strap_give':
  330. count['vaginal_strap_give'] = 1
  331. stim['act'] = 70
  332. stim_les = 1
  333. elseif $ARGS[0] = 'vaginal_vibe_give':
  334. count['vaginal_vibe_give'] = 1
  335. stim['act'] = 60
  336. stim_les = 1
  337. elseif $ARGS[0] = 'hj':
  338. if temp_unaware = 1:
  339. count['hidden_hj'] = 1
  340. else
  341. count['hj'] = 1
  342. end
  343. stim['act'] = 25
  344. elseif $ARGS[0] = 'bj':
  345. if temp_unaware = 1:
  346. count['hidden_bj'] = 1
  347. else
  348. count['bj'] = 1
  349. end
  350. stim['act'] = 45
  351. if temp_dick > pcs_throat: pcs_throat += 1
  352. elseif $ARGS[0] = 'footjob':
  353. if temp_unaware = 1:
  354. count['hidden_footjob'] = 1
  355. else
  356. count['footjob'] = 1
  357. end
  358. stim['act'] = 25
  359. stim_foot = 1
  360. end
  361. if stim['mag'] > 9: stim['mag'] = 9
  362. if ARGS[1] > 0: minut += ARGS[1]
  363. stim['time'] = iif(ARGS[1]>0,ARGS[1],-ARGS[1])
  364. !!Adds effects due to sexual perversions
  365. stim['kinkno'] = 0
  366. stim['kink'] = 0
  367. !! Auto adding of lesbian and foot fetishes for acts that must involve them
  368. if stim_les = 1:
  369. stim['kink'] += lesbian['exp']
  370. stim['pref'] += lesbian['pref']
  371. stim['kinkno'] += 1
  372. if temp_unaware = 1:
  373. stim['hidden_lesbian'] = 1
  374. else
  375. stim['lesbian'] = 1
  376. end
  377. end
  378. if stim_foot = 1:
  379. stim['kink'] += feet['exp']
  380. stim['pref'] += feet['pref']
  381. stim['kinkno'] += 1
  382. stim['feet'] = 1
  383. end
  384. i = 2
  385. :stimloop
  386. if $ARGS[i] ! '':
  387. !!Skipping lesbian and foot where auto added to avoid duplication
  388. if stim_les = 1 and $ARGS[i] = 'lesbian':i += 1 & jump 'stimloop'
  389. if stim_foot = 1 and $ARGS[i] = 'feet':i += 1 & jump 'stimloop'
  390. if $ARGS[i] = 'bound':
  391. stim['kink'] += bondage['exp']
  392. stim['pref'] += bondage['pref']
  393. stim['kinkno'] += 1
  394. stim['bound'] = 1
  395. elseif $ARGS[i] = 'beast':
  396. stim['kink'] += bestiality['exp']
  397. stim['pref'] += bestiality['pref']
  398. stim['kinkno'] += 1
  399. stim['beast'] = 1
  400. elseif $ARGS[i] = 'exhibitionism':
  401. stim['kink'] += exhibitionism['exp']
  402. stim['pref'] += exhibitionism['pref']
  403. inhib_exp += rand(2,6)
  404. stim['kinkno'] += 1
  405. stim['exhibitionism'] = 1
  406. elseif $ARGS[i] = 'rough':
  407. stim['kink'] += rough['exp']
  408. stim['pref'] += rough['pref']
  409. stim['kinkno'] += 1
  410. stim['rough'] = 1
  411. elseif $ARGS[i] = 'prostitution':
  412. stim['kink'] += prostitution['exp']
  413. stim['pref'] += prostitution['pref']
  414. stim['kinkno'] += 1
  415. if temp_unaware = 1:
  416. stim['hidden_prostitution'] = 1
  417. else
  418. stim['prostitution'] = 1
  419. end
  420. elseif $ARGS[i] = 'dom':
  421. stim['kink'] += dom['exp']
  422. stim['pref'] += pcs_dom
  423. stim['kinkno'] += 1
  424. stim['dom'] = 1
  425. elseif $ARGS[i] = 'sub':
  426. stim['kink'] += sub['exp']
  427. stim['pref'] += sub
  428. stim['kinkno'] += 1
  429. stim['sub'] = 1
  430. elseif $ARGS[i] = 'incest':
  431. stim['kink'] += incest['exp']
  432. stim['pref'] += incest['pref']
  433. stim['kinkno'] += 1
  434. stim['incest'] = 1
  435. elseif $ARGS[i] = 'feet':
  436. stim['kink'] += feet['exp']
  437. stim['pref'] += feet['pref']
  438. stim['kinkno'] += 1
  439. stim['feet'] = 1
  440. elseif $ARGS[i] = 'lesbian':
  441. stim['kink'] += lesbian['exp']
  442. stim['pref'] += lesbian['pref']
  443. stim['kinkno'] += 1
  444. if temp_unaware = 1:
  445. stim['hidden_lesbian'] = 1
  446. else
  447. stim['lesbian'] = 1
  448. end
  449. elseif $ARGS[i] = 'group':
  450. stim['kink'] += group['exp']
  451. stim['pref'] += group['pref']
  452. stim['kinkno'] += 1
  453. if temp_unaware = 1:
  454. stim['hidden_group'] = 1
  455. else
  456. stim['group'] = 1
  457. end
  458. elseif $ARGS[i] = 'gangbang':
  459. stim['kink'] += gangbang['exp']
  460. stim['pref'] += gangbang['pref']
  461. stim['kinkno'] += 1
  462. if temp_unaware = 1:
  463. stim['hidden_gang'] = 1
  464. else
  465. stim['gang'] = 1
  466. end
  467. elseif $ARGS[i] = 'humiliation':
  468. stim['kink'] += humiliation['exp']
  469. stim['pref'] += humiliation['pref']
  470. stim['kinkno'] += 1
  471. stim['humiliation'] = 1
  472. elseif $ARGS[i] = 'maso':
  473. stim['kink'] += maso['exp']
  474. stim['pref'] += maso['pref']
  475. stim['kinkno'] += 1
  476. stim['maso'] = 1
  477. elseif $ARGS[i] = 'deepthroat':
  478. stim['kink'] += deepthroat['exp']
  479. stim['pref'] += deepthroat['pref']
  480. stim['kinkno'] += 1
  481. stim['deepthroat'] = 1
  482. !!unknown is for sex with an unknown partner, this could be a gloryhole or unconscious
  483. elseif $ARGS[i] = 'unknown':
  484. stim['kink'] += unknown['exp']
  485. stim['pref'] += unknown['pref']
  486. stim['kinkno'] += 1
  487. stim['unknown'] = 1
  488. elseif $ARGS[i] = 'gloryhole':
  489. stim['kink'] += gloryhole['exp']
  490. stim['pref'] += gloryhole['pref']
  491. stim['kinkno'] += 1
  492. if temp_unaware = 1:
  493. stim['hidden_gloryhole'] = 1
  494. else
  495. stim['gloryhole'] = 1
  496. end
  497. elseif $ARGS[i] = 'rape':
  498. stim['kink'] += rape['exp']
  499. stim['pref'] += rape['pref']
  500. stim['kinkno'] += 1
  501. if temp_unaware = 1:
  502. stim['hidden_rape'] = 1
  503. else
  504. stim['rape'] = 1
  505. end
  506. elseif $ARGS[i] = 'futa':
  507. stim['kink'] += futa['exp']
  508. stim['pref'] += futa['pref']
  509. stim['kinkno'] += 1
  510. if temp_unaware = 1:
  511. stim['hidden_futa'] = 1
  512. else
  513. stim['futa'] = 1
  514. end
  515. end
  516. i += 1
  517. jump 'stimloop'
  518. end
  519. !!Fetishes are divided by total number of fetishes
  520. if stim['kinkno'] ! 0:
  521. stim['kink'] = stim['kink']/stim['kinkno']
  522. stim['pref'] = (stim['pref']/stim['kinkno'])
  523. stim['kinkno'] = 0
  524. end
  525. !!Bonus from fetishes, randomised chance for each level of bonus
  526. if rand(0,100) < stim['kink']:
  527. stim['kink'] = 120
  528. elseif rand(0,80) < stim['kink']:
  529. stim['kink'] = 110
  530. elseif rand(0,60) < stim['kink']:
  531. stim['kink'] = 100
  532. elseif rand(0,40) < stim['kink']:
  533. stim['kink'] = 90
  534. else
  535. stim['kink'] = 80
  536. end
  537. !!arousal calculation
  538. stim['total'] = ((stim['mag']*stim['act']*stim['kink']/100) + stim['pref'])*stim['time'] / 120
  539. !!Reduction in arousal linked to pain, masochism helps to deal with this
  540. if pain['total'] > 0:
  541. if maso['pref'] <= 0 and pain['total'] < 50:
  542. if pain['total'] - (maso['exp'] + 1 / 6) > 0:stim['total'] -= (pain['total'] - (maso['exp'] / 6))
  543. elseif maso['pref'] < 25 and pain['total'] < 55:
  544. stim['total'] += (pain['total'] * maso['exp'] +1 / 400)/60*stim['time']
  545. elseif maso['pref'] < 50 and pain['total'] < 70:
  546. stim['total'] += (pain['total'] * maso['exp'] + 1 / 300)/60*stim['time']
  547. elseif maso['pref'] < 75 and pain['total'] < 85:
  548. stim['total'] += (pain['total'] * maso['exp'] + 1 / 200)/60*stim['time']
  549. elseif maso['pref'] >= 75:
  550. stim['total'] += (pain['total'] * maso['exp'] + 1 / 100)/60*stim['time']
  551. else
  552. stim['total'] = 0
  553. end
  554. end
  555. stim['event'] += stim['total']
  556. pcs_horny += stim['total']
  557. !! This is to allow a Succubus with the right skill level to handle any size then go back to original size
  558. if sucvagorg ! 0 and sucvagorg ! pcs_vag: pcs_vag = sucvagorg & killvar 'sucvagorg'
  559. if sucanusorg ! 0 and sucanusorg ! pcs_ass: pcs_ass = sucanusorg & killvar 'sucanusorg'
  560. !!-------------------Orgasm-------------------
  561. !!This is intended to be hidden and the stats and calculations should not appear in game.
  562. orgasm_buildup += stim['total']
  563. if $orgasm_or ! 'no' and $ARGS[0] ! 'flashlite' and $ARGS[0] ! 'flash':
  564. if $orgasm_or = 'yes' or $orgasm_or = 'custom':
  565. gs 'orgasm', $ARGS[0]
  566. elseif orgasm_buildup >= 100 and stim['total'] > 10 and rand(1,100) <= 20:
  567. gs 'orgasm', $ARGS[0]
  568. elseif orgasm_buildup >= 150 and stim['total'] > 6 and rand(1,100) <= 50:
  569. gs 'orgasm', $ARGS[0]
  570. elseif orgasm_buildup >= 200 and stim['total'] > 4:
  571. gs 'orgasm', $ARGS[0]
  572. end
  573. end
  574. killvar 'temp_dick'
  575. killvar 'temp_unaware'
  576. killvar '$orgasm_txt'
  577. killvar '$stim_les'
  578. killvar '$stim_foot'
  579. end
  580. !!-----------------------------------------------
  581. if $ARGS[0] = 'end':
  582. if orgasm_buildup > 250: orgasm_buildup = 250
  583. if orgasm_buildup > 200: orgasm_buildup -= 10
  584. if orgasm_buildup > 150: orgasm_buildup -= 10
  585. if orgasm_buildup > 100: orgasm_buildup -= 10
  586. if stim['lesbian'] = 1: lesbian += 1
  587. if stim['hidden_lesbian'] = 1: hidden_lesbian += 1
  588. if stim['gang'] = 1 or stim['group'] = 1: gang += 1
  589. if stim['hidden_gang'] = 1 or stim['hidden_group'] = 1: hidden_gang += 1
  590. if stim['gloryhole'] = 1: gloryhole += 1
  591. if stim['hidden_gloryhole'] = 1: hidden_gloryhole += 1
  592. if stim['rape'] = 1: rape += 1
  593. if stim['hidden_rape'] = 1: hidden_rape += 1
  594. if stim['futa'] = 1: futa += 1
  595. if stim['hidden_futa'] = 1: hidden_futa += 1
  596. if stim['prostitution'] = 1: slutty += 1
  597. if stim['hidden_prostitution'] = 1: hidden_slutty += 1
  598. killvar '$orgasm_or'
  599. anal_slip = 0
  600. vaginal_slip = 0
  601. !!Updating fetish exp for acts carried out and clearing data
  602. gs 'arousal', 'checks', 'maso'
  603. gs 'arousal', 'checks', 'bound'
  604. gs 'arousal', 'checks', 'beast'
  605. gs 'arousal', 'checks', 'exhibitionism'
  606. gs 'arousal', 'checks', 'rough'
  607. gs 'arousal', 'checks', 'prostitution'
  608. gs 'arousal', 'checks', 'hidden_prostitution'
  609. gs 'arousal', 'checks', 'dom'
  610. gs 'arousal', 'checks', 'sub'
  611. gs 'arousal', 'checks', 'incest'
  612. gs 'arousal', 'checks', 'feet'
  613. gs 'arousal', 'checks', 'lesbian'
  614. gs 'arousal', 'checks', 'hidden_lesbian'
  615. gs 'arousal', 'checks', 'group'
  616. gs 'arousal', 'checks', 'hidden_group'
  617. gs 'arousal', 'checks', 'gang'
  618. gs 'arousal', 'checks', 'hidden_gang'
  619. gs 'arousal', 'checks', 'humiliation'
  620. gs 'arousal', 'checks', 'deepthroat'
  621. gs 'arousal', 'checks', 'unknown'
  622. gs 'arousal', 'checks', 'gloryhole'
  623. gs 'arousal', 'checks', 'hidden_gloryhole'
  624. gs 'arousal', 'checks', 'rape'
  625. gs 'arousal', 'checks', 'hidden_rape'
  626. gs 'arousal', 'checks', 'futa'
  627. gs 'arousal', 'checks', 'hidden_futa'
  628. stim['event'] = 0
  629. !!Adding to counts for character stats
  630. gs 'arousal', 'count', 'mast'
  631. gs 'arousal', 'count', 'porn'
  632. gs 'arousal', 'count', 'cuni'
  633. gs 'arousal', 'count', 'rimming'
  634. gs 'arousal', 'count', 'trib'
  635. gs 'arousal', 'count', 'anal'
  636. gs 'arousal', 'count', 'hidden_anal'
  637. gs 'arousal', 'count', 'anal_finger'
  638. gs 'arousal', 'count', 'anal_fist'
  639. gs 'arousal', 'count', 'anal_dildo'
  640. gs 'arousal', 'count', 'anal_strap'
  641. gs 'arousal', 'count', 'anal_vibe'
  642. gs 'arousal', 'count', 'vaginal'
  643. gs 'arousal', 'count', 'hidden_vaginal'
  644. gs 'arousal', 'count', 'vaginal_finger'
  645. gs 'arousal', 'count', 'vaginal_fist'
  646. gs 'arousal', 'count', 'vaginal_dildo'
  647. gs 'arousal', 'count', 'vaginal_strap'
  648. gs 'arousal', 'count', 'vaginal_vibe'
  649. gs 'arousal', 'count', 'cuni_give'
  650. gs 'arousal', 'count', 'rimming_give'
  651. gs 'arousal', 'count', 'anal_finger_give'
  652. gs 'arousal', 'count', 'anal_fist_give'
  653. gs 'arousal', 'count', 'anal_dildo_give'
  654. gs 'arousal', 'count', 'anal_vibe_give'
  655. gs 'arousal', 'count', 'anal_strap_give'
  656. gs 'arousal', 'count', 'vaginal_finger_give'
  657. gs 'arousal', 'count', 'vaginal_fist_give'
  658. gs 'arousal', 'count', 'vaginal_dildo_give'
  659. gs 'arousal', 'count', 'vaginal_strap_give'
  660. gs 'arousal', 'count', 'vaginal_vibe_give'
  661. gs 'arousal', 'count', 'hj'
  662. gs 'arousal', 'count', 'bj'
  663. gs 'arousal', 'count', 'hidden_hj'
  664. gs 'arousal', 'count', 'hidden_bj'
  665. gs 'arousal', 'count', 'footjob'
  666. gs 'arousal', 'count', 'hidden_footjob'
  667. gs 'arousal', 'count2', 'flashlite'
  668. gs 'arousal', 'count2', 'flash'
  669. gs 'arousal', 'count2', 'voyeur'
  670. !! Thats here because there is currently a variable zoo.
  671. if zoo > stat['beast']: stat['beast']= zoo
  672. if stat['beast'] > zoo: zoo = stat['beast']
  673. !!
  674. end
  675. if $ARGS[0] = 'count':
  676. if dyneval('RESULT = count[''<<$ARGS[1]>>'']') = 1:
  677. dynamic 'count[''<<$ARGS[1]>>''] = 0'
  678. dynamic 'stat[''<<$ARGS[1]>>''] += 1'
  679. count['flashlite'] = 0
  680. count['flash'] = 0
  681. end
  682. end
  683. if $ARGS[0] = 'count2':
  684. if dyneval('RESULT = count[''<<$ARGS[1]>>'']') = 1:
  685. dynamic 'count[''<<$ARGS[1]>>''] = 0'
  686. dynamic 'stat[''<<$ARGS[1]>>''] += 1'
  687. end
  688. end
  689. if $ARGS[0] = 'checks':
  690. if dyneval('RESULT = stim[''<<$ARGS[1]>>'']') = 1:
  691. dynamic 'stim[''<<$ARGS[1]>>''] = 0'
  692. dynamic '<<$ARGS[1]>>[''exp''] += 1'
  693. end
  694. end
  695. --- arousal ---------------------------------