arousal 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617
  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'
  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. The lubrication is binded with anal or vaginal action. I think that the best combo is with 'anal_finger' and 'vaginal_finger'
  18. Only call one at a time, if more required, use multiple calls
  19. You can override the orgasm to force or prevent, to do so use:
  20. $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
  21. *$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
  22. $orgasm_or = 'no' to prevent orgasm, it will remain in place until manually changed, or if end is called.
  23. }
  24. temp_anal = 0
  25. if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0] ! 'count2':
  26. if mid($ARGS[2],1,4) = 'dick':
  27. temp_dick = dyneval('result='+$ARGS[2])
  28. temp_silavag = dyneval('result=silavag'+mid($ARGS[2],5,len($ARGS[2])-4))
  29. $temp_dick_girth = dyneval('$result=$dick_girth'+mid($ARGS[2],5,len($ARGS[2])-4))
  30. else
  31. temp_dick = dick
  32. temp_silavag = silavag
  33. $temp_dick_girth = $dick_girth
  34. end
  35. 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
  36. grange = dyneval('result=strpos(''skinny slimx well pr thicker thickx massive monstrous'',$ARGS[0])',mid($temp_dick_girth+'x',1,6))/2
  37. !! first let us determine how slippery are pc''s holes
  38. if vaginal_slip < pcs_horny / 10: vaginal_slip = pcs_horny / 10
  39. if strpos($ARGS[2]+$ARGS[3]+$ARGS[4]+$ARGS[5]+$ARGS[6]+ $ARGS[7]+ $ARGS[8],'lube') > 0:
  40. if mid($ARGS[0],1,4) = 'anal':
  41. anal_slip += iif(lubri = 0,2,8)
  42. if anal_slip > 10: anal_slip=10
  43. if lubri > 0: lubri -= 1
  44. end
  45. if mid($ARGS[0],1,4) = 'vagi':
  46. vaginal_slip += iif(lubri = 0,2,8)
  47. if vaginal_slip > 12: vaginal_slip=12
  48. if lubri > 0: lubri -= 1
  49. end
  50. end
  51. !! This is to allow a Succubus with the right skill level to handle any size then go back to original size
  52. if succubusflag = 1 and sucskill >= 4:
  53. if temp_dick ! pcs_vag:
  54. if temp_dick < pcs_vag - 5 or temp_dick > pcs_vag + 5: pcs_mood -= 10
  55. if sucvagorg = 0: sucvagorg = pcs_vag
  56. pcs_vag = temp_dick
  57. end
  58. if temp_dick ! pcs_ass:
  59. if temp_dick < pcs_ass - 5 or temp_dick > pcs_ass + 5: pcs_mood -= 10
  60. if sucanusorg = 0: sucanusorg = pcs_ass
  61. pcs_ass = temp_dick
  62. end
  63. end
  64. !!set a magnitude as a random
  65. stim['mag'] = rand(0,3) + rand(0,3) + rand(0,3)
  66. !!add count and effects due to action
  67. if $ARGS[0] = 'masturbate':
  68. count['mast'] = 1
  69. stim['mag'] += 6
  70. stim['act'] = 100
  71. elseif $ARGS[0] = 'porn':
  72. count['porn'] = 1
  73. stim['act'] = 20
  74. elseif $ARGS[0] = 'voyeur':
  75. count['voyeur'] = 1
  76. stim['act'] = 30
  77. elseif $ARGS[0] = 'kiss':
  78. stim['act'] = 10
  79. elseif $ARGS[0] = 'breasts':
  80. stim['act'] = 30
  81. elseif $ARGS[0] = 'massage':
  82. stim['act'] = 25
  83. elseif $ARGS[0] = 'foreplay':
  84. stim['act'] = 20
  85. elseif $ARGS[0] = 'cuni':
  86. count['cuni'] = 1
  87. stim['mag'] += 4
  88. stim['act'] = 80
  89. elseif $ARGS[0] = 'rimming':
  90. count['rimming'] = 1
  91. stim['act'] = 30
  92. elseif $ARGS[0] = 'trib':
  93. count['trib'] = 1
  94. stim['mag'] += 3
  95. stim['act'] = 70
  96. stim_les = 1
  97. elseif $ARGS[0] = 'anal':
  98. temp_anal = 1
  99. count['anal'] = 1
  100. if pcs_ass < dick:pcs_ass += 1
  101. if pcs_ass*2 < dick:pcs_ass += 1
  102. !! length and girth abilities of anus are not also separated , but I suppose that they are related although it is not propable
  103. !! we can estimate difference in girth and length anal_girth_difference and anal_lenght_difference - names are shortened
  104. altdif = temp_dick - pcs_ass
  105. agrdif = grange - pcs_ass
  106. !! negative influence of the difference can be reduced by sex skill and also by lubricant
  107. !! I made it as simply as posible so you do not complain about reality, feel free to modify the algorithm
  108. !! when the boy is skilled, he can compensate the difference partly
  109. altdif = altdif / (temp_silavag+1)
  110. agrdif = agrdif *(5/4 - 1/(4 - temp_silavag))
  111. !! when the boy is skilled, he does not harm PC with his long dick
  112. if (temp_silavag = 2) and (altdif > 0): altdif = 0
  113. !! lube can compensate the difference a bit
  114. if agrdif > anal_slip: agrdif = agrdif - anal_slip else if agrdif > 0: agrdif = 0
  115. if -agrdif > anal_slip: agrdif = agrdif + anal_slip else if agrdif < 0: agrdif = 0
  116. stim['act'] = 80 - (iif(altdif>0,altdif,-altdif) + iif(agrdif >0,agrdif,-agrdif)) + temp_silavag*8
  117. !! if the dick is smaller, it cannot harm PC
  118. if agrdif < 0: agrdif = 0
  119. if altdif < 0: altdif = 0
  120. !! calculate the harm
  121. agape = iif((agrdif + altdif) > 10*agape,(agrdif + altdif)/10,agape)
  122. !! the pain lover the pleasure
  123. gs 'pain', (agrdif + altdif)/5 , 'asshole', 'stretch'
  124. stim['act'] = stim['act'] - (agrdif + altdif)
  125. elseif $ARGS[0] = 'anal_finger':
  126. temp_anal = 1
  127. count['anal_finger'] = 1
  128. stim['act'] = 40
  129. elseif $ARGS[0] = 'anal_fist':
  130. temp_anal = 1
  131. count['anal_fist'] = 1
  132. gs 'pain', 4-agape, 'asshole', 'stretch'
  133. stim['act'] = 30
  134. if pcs_ass > 30:
  135. pcs_ass += 30
  136. if agape < 3:agape = 3
  137. end
  138. elseif $ARGS[0] = 'anal_dildo':
  139. temp_anal = 1
  140. count['anal_dildo'] = 1
  141. !! the same as for 'anal'
  142. altdif = temp_dick - pcs_ass
  143. agrdif = grange - pcs_ass
  144. altdif = altdif / (temp_silavag+1)
  145. agrdif = agrdif *(5/4 - 1/(4 - temp_silavag))
  146. if (temp_silavag = 2) and (altdif > 0): altdif = 0
  147. if agrdif > anal_slip: agrdif = agrdif - anal_slip else if agrdif > 0: agrdif = 0
  148. if -agrdif > anal_slip: agrdif = agrdif + anal_slip else if agrdif < 0: agrdif = 0
  149. stim['act'] = 80 - (iif(altdif>0,altdif,-altdif) + iif(agrdif >0,agrdif,-agrdif)) + temp_silavag*8
  150. if agrdif < 0: agrdif = 0
  151. if altdif < 0: altdif = 0
  152. agape = iif((agrdif + altdif) > 10*agape,(agrdif + altdif)/10,agape)
  153. gs 'pain', (agrdif + altdif)/5 , 'asshole', 'stretch'
  154. stim['act'] = stim['act'] - (agrdif + altdif)
  155. elseif $ARGS[0] = 'anal_strap':
  156. temp_anal = 1
  157. count['anal_strap'] = 1
  158. !! the same as for 'anal'
  159. altdif = temp_dick - pcs_ass
  160. agrdif = grange - pcs_ass
  161. altdif = altdif / (temp_silavag+1)
  162. agrdif = agrdif *(5/4 - 1/(4 - temp_silavag))
  163. if (temp_silavag = 2) and (altdif > 0): altdif = 0
  164. if agrdif > anal_slip: agrdif = agrdif - anal_slip else if agrdif > 0: agrdif = 0
  165. if -agrdif > anal_slip: agrdif = agrdif + anal_slip else if agrdif < 0: agrdif = 0
  166. stim['act'] = 80 - (iif(altdif>0,altdif,-altdif) + iif(agrdif >0,agrdif,-agrdif)) + temp_silavag*8
  167. if agrdif < 0: agrdif = 0
  168. if altdif < 0: altdif = 0
  169. agape = iif((agrdif + altdif) > 10*agape,(agrdif + altdif)/10,agape)
  170. gs 'pain', (agrdif + altdif)/5 , 'asshole', 'stretch'
  171. stim['act'] = stim['act'] - (agrdif + altdif)
  172. elseif $ARGS[0] = 'anal_vibe':
  173. temp_anal = 1
  174. count['anal_vibe'] = 1
  175. stim['mag'] += 1
  176. stim['act'] = 60
  177. elseif $ARGS[0] = 'vaginal':
  178. !! pre-cum check
  179. if rand(0,120) < ARGS[1]: cumprecheck = 1 & gs 'cum_manage'
  180. count['vaginal'] = 1
  181. stim['mag'] += 3
  182. if pcs_vag < dick:pcs_vag += 1
  183. if pcs_vag*2 < dick:pcs_vag += 1
  184. !! length and girth abilities of vagina are not separated , but I suppose that they are related
  185. !! we can estimate difference in girth and length vaginal_girth_difference and vaginal_lenght_difference - names are shortened
  186. vgrdif = grange - pcs_vag
  187. vltdif = temp_dick - pcs_vag
  188. !! negative influence of the difference can be reduced by sex skill and also by PCs horniness, using of a lubricant is not established yet
  189. !! I made it as simply as posible so you do not complain about reality, feel free to modify the algorithm
  190. !! when the boy is skilled, he can compensate the difference partly
  191. vltdif = vltdif / (temp_silavag+1)
  192. vgrdif = vgrdif *(5/4 - 1/(4 - temp_silavag))
  193. !! when the boy is skilled, he does not harm PC with his long dick
  194. if (temp_silavag = 2) and (vltdif > 0): vltdif = 0
  195. !! even PC horniness can compensate the difference
  196. if vgrdif > vaginal_slip: vgrdif = vgrdif - vaginal_slip else if (vgrdif > 0): vgrdif = 0
  197. if -1*vgrdif > vaginal_slip: vgrdif = vgrdif + vaginal_slip else if (vgrdif < 0): vgrdif = 0
  198. stim['act'] = 80 - (iif(vltdif>0,vltdif,-vltdif) + iif(vgrdif >0,vgrdif,-vgrdif)) + temp_silavag*8
  199. !! if the dick is smaller, it cannot harm PC
  200. if vgrdif < 0: vgrdif = 0
  201. if vltdif < 0: vltdif = 0
  202. !! calculate the harm
  203. vgape = iif((vgrdif + vltdif) > 10*vgape,(vgrdif + vltdif)/10,vgape)
  204. !! the pain lover the pleasure
  205. gs 'pain', (vgrdif + vltdif)/5 , 'vaginal', 'stretch'
  206. stim['act'] = stim['act'] - (vgrdif + vltdif)
  207. elseif $ARGS[0] = 'vaginal_finger':
  208. count['vaginal_finger'] = 1
  209. stim['mag'] += 1
  210. stim['act'] = 80
  211. elseif $ARGS[0] = 'vaginal_fist':
  212. count['vaginal_fist'] = 1
  213. stim['act'] = 70
  214. gs 'pain', 3 - vgape, 'vaginal', 'stretch'
  215. if pcs_vag + vaginal_slip < 30:
  216. pcs_vag += 3
  217. if vgape < 3:vgape = 3
  218. end
  219. elseif $ARGS[0] = 'vaginal_dildo':
  220. count['vaginal_dildo'] = 1
  221. stim['mag'] += 1
  222. !! the same as for 'vaginal'
  223. vgrdif = grange - pcs_vag
  224. vltdif = temp_dick - pcs_vag
  225. vltdif = vltdif / (temp_silavag+1)
  226. vgrdif = vgrdif *(5/4 - 1/(4 - temp_silavag))
  227. if (temp_silavag = 2) and (vltdif > 0): vltdif = 0
  228. if vgrdif > vaginal_slip: vgrdif = vgrdif - vaginal_slip else if (vgrdif > 0): vgrdif = 0
  229. if -1*vgrdif > vaginal_slip: vgrdif = vgrdif + vaginal_slip else if (vgrdif < 0): vgrdif = 0
  230. stim['act'] = 80 - (iif(vltdif>0,vltdif,-vltdif) + iif(vgrdif >0,vgrdif,-vgrdif)) + temp_silavag*8
  231. if vgrdif < 0: vgrdif = 0
  232. if vltdif < 0: vltdif = 0
  233. vgape = iif((vgrdif + vltdif) > 10*vgape,(vgrdif + vltdif)/10,vgape)
  234. gs 'pain', (vgrdif + vltdif)/5 , 'vaginal', 'stretch'
  235. stim['act'] = stim['act'] - (vgrdif + vltdif)
  236. elseif $ARGS[0] = 'vaginal_strap':
  237. count['vaginal_strap'] = 1
  238. stim['mag'] += 1
  239. !! the same as for 'vaginal'
  240. vgrdif = grange - pcs_vag
  241. vltdif = temp_dick - pcs_vag
  242. vltdif = vltdif / (temp_silavag+1)
  243. vgrdif = vgrdif *(5/4 - 1/(4 - temp_silavag))
  244. if (temp_silavag = 2) and (vltdif > 0): vltdif = 0
  245. if vgrdif > vaginal_slip: vgrdif = vgrdif - vaginal_slip else if (vgrdif > 0): vgrdif = 0
  246. if -1*vgrdif > vaginal_slip: vgrdif = vgrdif + vaginal_slip else if (vgrdif < 0): vgrdif = 0
  247. stim['act'] = 80 - (iif(vltdif>0,vltdif,-vltdif) + iif(vgrdif >0,vgrdif,-vgrdif)) + temp_silavag*8
  248. if vgrdif < 0: vgrdif = 0
  249. if vltdif < 0: vltdif = 0
  250. vgape = iif((vgrdif + vltdif) > 10*vgape,(vgrdif + vltdif)/10,vgape)
  251. gs 'pain', (vgrdif + vltdif)/5 , 'vaginal', 'stretch'
  252. stim['act'] = stim['act'] - (vgrdif + vltdif)
  253. elseif $ARGS[0] = 'vaginal_vibe':
  254. count['vaginal_vibe'] = 1
  255. stim['mag'] += 2
  256. stim['act'] = 90
  257. elseif $ARGS[0] = 'flashlite':
  258. count['flashlite'] = 1
  259. stim['act'] = 10
  260. elseif $ARGS[0] = 'flash':
  261. count['flash'] = 1
  262. stim['act'] = 30
  263. elseif $ARGS[0] = 'kiss_give':
  264. stim['act'] = 20
  265. elseif $ARGS[0] = 'breasts_give':
  266. stim['act'] = 20
  267. elseif $ARGS[0] = 'massage_give':
  268. stim['act'] = 10
  269. elseif $ARGS[0] = 'foreplay_give':
  270. stim['act'] = 20
  271. elseif $ARGS[0] = 'cuni_give':
  272. count['cuni_give'] = 1
  273. stim['act'] = 30
  274. stim_les = 1
  275. elseif $ARGS[0] = 'rimming_give':
  276. count['rimming_give'] = 1
  277. stim['act'] = 25
  278. elseif $ARGS[0] = 'anal_finger_give':
  279. count['anal_finger_give'] = 1
  280. stim['act'] = 40
  281. elseif $ARGS[0] = 'anal_fist_give':
  282. count['anal_fist_give'] = 1
  283. stim['act'] = 30
  284. elseif $ARGS[0] = 'anal_dildo_give':
  285. count['anal_dildo_give'] = 1
  286. stim['act'] = 40
  287. elseif $ARGS[0] = 'anal_vibe_give':
  288. count['anal_vibe_give'] = 1
  289. stim['act'] = 40
  290. elseif $ARGS[0] = 'anal_strap_give':
  291. count['anal_strap_give'] = 1
  292. stim['act'] = 40
  293. elseif $ARGS[0] = 'vaginal_finger_give':
  294. count['vaginal_finger_give'] = 1
  295. stim['act'] = 60
  296. stim_les = 1
  297. elseif $ARGS[0] = 'vaginal_fist_give':
  298. count['vaginal_fist_give'] = 1
  299. stim['act'] = 50
  300. stim_les = 1
  301. elseif $ARGS[0] = 'vaginal_dildo_give':
  302. count['vaginal_dildo_give'] = 1
  303. stim['act'] = 60
  304. stim_les = 1
  305. elseif $ARGS[0] = 'vaginal_strap_give':
  306. count['vaginal_strap_give'] = 1
  307. stim['act'] = 70
  308. stim_les = 1
  309. elseif $ARGS[0] = 'vaginal_vibe_give':
  310. count['vaginal_vibe_give'] = 1
  311. stim['act'] = 60
  312. stim_les = 1
  313. elseif $ARGS[0] = 'hj':
  314. count['hj'] = 1
  315. stim['act'] = 25
  316. elseif $ARGS[0] = 'bj':
  317. count['bj'] = 1
  318. stim['act'] = 45
  319. if temp_dick > pcs_throat: pcs_throat += 1
  320. stim_foot = 1
  321. elseif $ARGS[0] = 'footjob':
  322. count['footjob'] = 1
  323. stim['act'] = 25
  324. end
  325. if stim['mag'] > 9: stim['mag'] = 9
  326. if ARGS[1] > 0: minut += ARGS[1]
  327. stim['time'] = iif(ARGS[1]>0,ARGS[1],-ARGS[1])
  328. !!Adds effects due to sexual perversions
  329. stim['kinkno'] = 0
  330. stim['kink'] = 0
  331. !! Auto adding of lesbian and foot fetishes for acts that must involve them
  332. if stim_les = 1:
  333. stim['kink'] += lesbian['exp']
  334. stim['pref'] += lesbian['pref']
  335. stim['kinkno'] += 1
  336. stim['lesbian'] = 1
  337. end
  338. if stim_foot = 1:
  339. stim['kink'] += feet['exp']
  340. stim['pref'] += feet['pref']
  341. stim['kinkno'] += 1
  342. stim['feet'] = 1
  343. end
  344. i = 2
  345. :stimloop
  346. if $ARGS[i] ! '':
  347. !!Skipping lesbian and foot where auto added to avoid duplication
  348. if stim_les = 1 and $ARGS[i] = 'lesbian':i += 1 & jump 'stimloop'
  349. if stim_foot = 1 and $ARGS[i] = 'feet':i += 1 & jump 'stimloop'
  350. if $ARGS[i] = 'bound':
  351. stim['kink'] += bondage['exp']
  352. stim['pref'] += bondage['pref']
  353. stim['kinkno'] += 1
  354. stim['bound'] = 1
  355. elseif $ARGS[i] = 'beast':
  356. stim['kink'] += bestiality['exp']
  357. stim['pref'] += bestiality['pref']
  358. stim['kinkno'] += 1
  359. stim['beast'] = 1
  360. elseif $ARGS[i] = 'exhibitionism':
  361. stim['kink'] += exhibitionism['exp']
  362. stim['pref'] += exhibitionism['pref']
  363. exhibition_exp += rand(2,6)
  364. stim['kinkno'] += 1
  365. stim['exhibitionism'] = 1
  366. elseif $ARGS[i] = 'rough':
  367. stim['kink'] += rough['exp']
  368. stim['pref'] += rough['pref']
  369. stim['kinkno'] += 1
  370. stim['rough'] = 1
  371. elseif $ARGS[i] = 'prostitution':
  372. stim['kink'] += prostitution['exp']
  373. stim['pref'] += prostitution['pref']
  374. stim['kinkno'] += 1
  375. stim['prostitution'] = 1
  376. elseif $ARGS[i] = 'dom':
  377. stim['kink'] += dom['exp']
  378. stim['pref'] += pcs_dom
  379. stim['kinkno'] += 1
  380. stim['dom'] = 1
  381. elseif $ARGS[i] = 'sub':
  382. stim['kink'] += sub['exp']
  383. stim['pref'] += sub
  384. stim['kinkno'] += 1
  385. stim['sub'] = 1
  386. elseif $ARGS[i] = 'incest':
  387. stim['kink'] += incest['exp']
  388. stim['pref'] += incest['pref']
  389. stim['kinkno'] += 1
  390. stim['incest'] = 1
  391. elseif $ARGS[i] = 'feet':
  392. stim['kink'] += feet['exp']
  393. stim['pref'] += feet['pref']
  394. stim['kinkno'] += 1
  395. stim['feet'] = 1
  396. elseif $ARGS[i] = 'lesbian':
  397. stim['kink'] += lesbian['exp']
  398. stim['pref'] += lesbian['pref']
  399. stim['kinkno'] += 1
  400. stim['lesbian'] = 1
  401. elseif $ARGS[i] = 'group':
  402. stim['kink'] += group['exp']
  403. stim['pref'] += group['pref']
  404. stim['kinkno'] += 1
  405. stim['group'] = 1
  406. elseif $ARGS[i] = 'gangbang':
  407. stim['kink'] += gangbang['exp']
  408. stim['pref'] += gangbang['pref']
  409. stim['kinkno'] += 1
  410. stim['gangbang'] = 1
  411. elseif $ARGS[i] = 'humiliation':
  412. stim['kink'] += humiliation['exp']
  413. stim['pref'] += humiliation['pref']
  414. stim['kinkno'] += 1
  415. stim['humiliation'] = 1
  416. elseif $ARGS[i] = 'maso':
  417. stim['kink'] += maso['exp']
  418. stim['pref'] += maso['pref']
  419. stim['kinkno'] += 1
  420. stim['maso'] = 1
  421. elseif $ARGS[i] = 'deepthroat':
  422. stim['kink'] += deepthroat['exp']
  423. stim['pref'] += deepthroat['pref']
  424. stim['kinkno'] += 1
  425. stim['deepthroat'] = 1
  426. !!unknown is for sex with an unknown partner, this could be a gloryhole or unconscious
  427. elseif $ARGS[i] = 'unknown':
  428. stim['kink'] += unknown['exp']
  429. stim['pref'] += unknown['pref']
  430. stim['kinkno'] += 1
  431. stim['unknown'] = 1
  432. end
  433. i += 1
  434. jump 'stimloop'
  435. end
  436. !!Fetishes are divided by total number of fetishes
  437. if stim['kinkno'] ! 0:
  438. stim['kink'] = stim['kink']/stim['kinkno']
  439. stim['pref'] = (stim['pref']/stim['kinkno'])
  440. stim['kinkno'] = 0
  441. end
  442. !!Bonus from fetishes, randomised chance for each level of bonus
  443. if rand(0,100) < stim['kink']:
  444. stim['kink'] = 120
  445. elseif rand(0,80) < stim['kink']:
  446. stim['kink'] = 110
  447. elseif rand(0,60) < stim['kink']:
  448. stim['kink'] = 100
  449. elseif rand(0,40) < stim['kink']:
  450. stim['kink'] = 90
  451. else
  452. stim['kink'] = 80
  453. end
  454. !!arousal calculation
  455. stim['total'] = ((stim['mag']*stim['act']*stim['kink']/100) + stim['pref'])*stim['time'] / 120
  456. !!Reduction in arousal linked to pain, masochism helps to deal with this
  457. if pain['total'] > 0:
  458. if maso['pref'] <= 0 and pain['total'] < 50:
  459. if pain['total'] - (maso['exp'] + 1 / 6) > 0:stim['total'] -= (pain['total'] - (maso['exp'] / 6))
  460. elseif maso['pref'] < 25 and pain['total'] < 55:
  461. stim['total'] += (pain['total'] * maso['exp'] +1 / 400)/60*stim['time']
  462. elseif maso['pref'] < 50 and pain['total'] < 70:
  463. stim['total'] += (pain['total'] * maso['exp'] + 1 / 300)/60*stim['time']
  464. elseif maso['pref'] < 75 and pain['total'] < 85:
  465. stim['total'] += (pain['total'] * maso['exp'] + 1 / 200)/60*stim['time']
  466. elseif maso['pref'] >= 75:
  467. stim['total'] += (pain['total'] * maso['exp'] + 1 / 100)/60*stim['time']
  468. else
  469. stim['total'] = 0
  470. end
  471. end
  472. stim['event'] += stim['total']
  473. pcs_horny += stim['total']
  474. !! This is to allow a Succubus with the right skill level to handle any size then go back to original size
  475. if sucvagorg ! 0 and sucvagorg ! pcs_vag: pcs_vag = sucvagorg & killvar 'sucvagorg'
  476. if sucanusorg ! 0 and sucanusorg ! pcs_ass: pcs_ass = sucanusorg & killvar 'sucanusorg'
  477. !!-------------------Orgasm-------------------
  478. !!This is intended to be hidden and the stats and calculations should not appear in game.
  479. orgasm_buildup += stim['total']
  480. if $orgasm_or ! 'no':
  481. if $orgasm_or = 'yes' or $orgasm_or = 'custom':
  482. gs 'orgasm', $ARGS[0]
  483. elseif orgasm_buildup >= 100 and stim['total'] > 10 and rand(1,100) <= 20:
  484. gs 'orgasm', $ARGS[0]
  485. elseif orgasm_buildup >= 150 and stim['total'] > 6 and rand(1,100) <= 50:
  486. gs 'orgasm', $ARGS[0]
  487. elseif orgasm_buildup >= 200 and stim['total'] > 4:
  488. gs 'orgasm', $ARGS[0]
  489. end
  490. end
  491. killvar 'temp_dick'
  492. killvar '$orgasm_txt'
  493. end
  494. !!-----------------------------------------------
  495. if $ARGS[0] = 'end':
  496. if orgasm_buildup > 200: orgasm_buildup -= 10
  497. if orgasm_buildup > 150: orgasm_buildup -= 10
  498. if orgasm_buildup > 100: orgasm_buildup -= 10
  499. if stim['lesbian'] = 1: lesbian += 1
  500. if stim['gang'] = 1 or stim['group'] = 1: gang += 1
  501. killvar '$orgasm_or'
  502. anal_slip = 0
  503. vaginal_slip = 0
  504. !!Updating fetish exp for acts carried out and clearing data
  505. gs 'arousal', 'checks', 'maso'
  506. gs 'arousal', 'checks', 'bound'
  507. gs 'arousal', 'checks', 'beast'
  508. gs 'arousal', 'checks', 'exhibitionism'
  509. gs 'arousal', 'checks', 'rough'
  510. gs 'arousal', 'checks', 'prostitution'
  511. gs 'arousal', 'checks', 'dom'
  512. gs 'arousal', 'checks', 'sub'
  513. gs 'arousal', 'checks', 'incest'
  514. gs 'arousal', 'checks', 'feet'
  515. gs 'arousal', 'checks', 'lesbian'
  516. gs 'arousal', 'checks', 'group'
  517. gs 'arousal', 'checks', 'gangbang'
  518. gs 'arousal', 'checks', 'humiliation'
  519. gs 'arousal', 'checks', 'deepthroat'
  520. gs 'arousal', 'checks', 'unknown'
  521. stim['event'] = 0
  522. !!Adding to counts for character stats
  523. gs 'arousal', 'count', 'mast'
  524. gs 'arousal', 'count', 'porn'
  525. gs 'arousal', 'count', 'cuni'
  526. gs 'arousal', 'count', 'rimming'
  527. gs 'arousal', 'count', 'trib'
  528. gs 'arousal', 'count', 'anal'
  529. gs 'arousal', 'count', 'anal_finger'
  530. gs 'arousal', 'count', 'anal_fist'
  531. gs 'arousal', 'count', 'anal_dildo'
  532. gs 'arousal', 'count', 'anal_strap'
  533. gs 'arousal', 'count', 'anal_vibe'
  534. gs 'arousal', 'count', 'vaginal'
  535. gs 'arousal', 'count', 'vaginal_finger'
  536. gs 'arousal', 'count', 'vaginal_fist'
  537. gs 'arousal', 'count', 'vaginal_dildo'
  538. gs 'arousal', 'count', 'vaginal_strap'
  539. gs 'arousal', 'count', 'vaginal_vibe'
  540. gs 'arousal', 'count', 'cuni_give'
  541. gs 'arousal', 'count', 'rimming_give'
  542. gs 'arousal', 'count', 'anal_finger_give'
  543. gs 'arousal', 'count', 'anal_fist_give'
  544. gs 'arousal', 'count', 'anal_dildo_give'
  545. gs 'arousal', 'count', 'anal_vibe_give'
  546. gs 'arousal', 'count', 'anal_strap_give'
  547. gs 'arousal', 'count', 'vaginal_finger_give'
  548. gs 'arousal', 'count', 'vaginal_fist_give'
  549. gs 'arousal', 'count', 'vaginal_dildo_give'
  550. gs 'arousal', 'count', 'vaginal_strap_give'
  551. gs 'arousal', 'count', 'vaginal_vibe_give'
  552. gs 'arousal', 'count', 'hj'
  553. gs 'arousal', 'count', 'bj'
  554. gs 'arousal', 'count', 'footjob'
  555. gs 'arousal', 'count2', 'flashlite'
  556. gs 'arousal', 'count2', 'flash'
  557. gs 'arousal', 'count2', 'voyeur'
  558. end
  559. if $ARGS[0] = 'count':
  560. if dyneval('RESULT = count[''<<$ARGS[1]>>'']') = 1:
  561. dynamic 'count[''<<$ARGS[1]>>''] = 0'
  562. dynamic 'stat[''<<$ARGS[1]>>''] += 1'
  563. count['flashlite'] = 0
  564. count['flash'] = 0
  565. end
  566. end
  567. if $ARGS[0] = 'count2':
  568. if dyneval('RESULT = count[''<<$ARGS[1]>>'']') = 1:
  569. dynamic 'count[''<<$ARGS[1]>>''] = 0'
  570. dynamic 'stat[''<<$ARGS[1]>>''] += 1'
  571. end
  572. end
  573. if $ARGS[0] = 'checks':
  574. if dyneval('RESULT = stim[''<<$ARGS[1]>>'']') = 1:
  575. dynamic 'stim[''<<$ARGS[1]>>''] = 0'
  576. dynamic '<<$ARGS[1]>>[''exp''] += 1'
  577. end
  578. end
  579. --- arousal ---------------------------------