arousal 22 KB

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