arousal 22 KB

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