arousal.qsrc 26 KB

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