arousal.qsrc 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871
  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' - self stimulation
  5. 'porn' - viewing pornographic material
  6. 'voyeur_sex' - watching people have sex
  7. 'voyeur' - observing erotic acts or nudity
  8. 'trib' - rubbing pussy against another pussy
  9. 'massage' - rubbing your body, back, feet, etc. with their hands/arms
  10. 'cuni' - stimulation of your pussy by someones toungue
  11. 'rimming' - stimulation of your anus by someones toungue
  12. 'vaginal' 'vaginal_finger' 'vaginal_fist' 'vaginal_dildo' 'vaginal_strap' 'vaginal_vibe' - stimulation of your vagina with a penis and various others
  13. 'anal' 'anal_finger' 'anal_fist' 'anal_dildo' 'anal_strap' 'anal_vibe' - stimulation of your anus with a penis and various others
  14. 'kiss' - snogging, tonsil tennis, lip locking, etc.
  15. 'BDSM' - receiving candle wax, flogging, leash play, bondage etc
  16. 'pee' - being peed upon
  17. also when giving any of the following:
  18. 'flashlite' - flashing underwear
  19. 'flash' - flashing naked breasts/arse/vagina
  20. 'massage_give' - rubbing their body, back, feet, etc. with your hands/arms
  21. 'cuni_give' - stimulating someones pussy with your toungue
  22. 'rimming_give' - stimulating someones anus with your toungue
  23. 'vaginal_finger_give' 'vaginal_fist_give' 'vaginal_dildo_give' 'vaginal_strap_give' 'vaginal_vibe_give' - stimulating someones vagina in various ways
  24. 'anal_finger_give' 'anal_fist_give' 'anal_dildo_give' 'anal_vibe_give' 'anal_strap_give' - stimulating someones anus in various ways
  25. 'hj' - jerking a guy off with your hand
  26. 'bj' - sucking a guy off
  27. 'titjob' - using boobs to jerk off a guy
  28. 'footjob' - using feet to jerk off a guy
  29. 'BDSM_give' - giving candle wax, flogging, leash play, bondage etc
  30. 'pee_give' - peeing on somone
  31. finally
  32. 'foreplay' - receiving other stuff
  33. 'foreplay_give' - giving other stuff
  34. All acts are from Sveta''s perspective and in cases of both giving and receiving, receiving should be used.
  35. 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.
  36. $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
  37. $ARGS[2] - [8] Are optional but can be upto 7 fetishes involved in the act and can be any of the following:
  38. 'maso' 'bound' 'beast' 'exhibitionism' 'rough' 'prostitution' 'dom' 'sub' 'incest' 'feet' 'lesbian' 'group' 'gangbang' 'humiliation' 'deepthroat' 'unknown' 'gloryhole' 'rape' 'futa'
  39. Format to use: gs 'arousal', 'act', 'duration', 'fetish', 'fetish', 'fetish', 'fetish', 'fetish', 'fetish', 'fetish'
  40. eg: gs 'arousal', 'trib', 10, 'bound', 'sub'
  41. In this case lesbianism is automatically added, much as feet would be applied to 'footjob'
  42. 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.
  43. The lube will remain applied to the orifice in question until 'end' is called. The usage of Svetas lube and checks for her having any must be done in the sex act.
  44. 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!
  45. The lubrication is binded with anal or vaginal action. I think that the best combo is with 'anal_finger' and 'vaginal_finger'
  46. Only call one at a time, if more required, use multiple calls
  47. You can override the orgasm to force or prevent, to do so use:
  48. $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
  49. *$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
  50. $orgasm_or = 'yes' and 'custom' require that the first arousal call is a call that can trigger an orgasm, the following arousal calls can trigger it: masturbate, 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 can trigger
  51. $orgasm_or = 'no' to prevent orgasm, it will remain in place until manually changed, or if end is called.
  52. $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.
  53. }
  54. temp_anal = 0
  55. temp_unaware = 0
  56. !!orgasms restricted to direct stimulation using this flag
  57. orgasm_flag = 0
  58. if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0] ! 'count2':
  59. if strpos($ARGS[2]+$ARGS[3]+$ARGS[4]+$ARGS[5]+$ARGS[6]+ $ARGS[7]+ $ARGS[8],'unaware') > 0:
  60. temp_unaware = 1
  61. end
  62. if mid($ARGS[2],1,4) = 'dick':
  63. temp_dick = dyneval('result='+$ARGS[2])
  64. temp_silavag = dyneval('result=silavag'+mid($ARGS[2],5,len($ARGS[2])-4))
  65. $temp_dick_girth = dyneval('$result=$dick_girth'+mid($ARGS[2],5,len($ARGS[2])-4))
  66. else
  67. temp_dick = dick
  68. temp_silavag = silavag
  69. $temp_dick_girth = $dick_girth
  70. end
  71. 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
  72. grange = dyneval('result=strpos(''skinny slimx well pr thicker thickx massive monstrous'',$ARGS[0])',mid($temp_dick_girth+'x',1,6))/2
  73. !! first let us determine how slippery are pc''s holes
  74. if vaginal_slip < pcs_horny / 10: vaginal_slip = pcs_horny / 10
  75. if strpos($ARGS[2]+$ARGS[3]+$ARGS[4]+$ARGS[5]+$ARGS[6]+ $ARGS[7]+ $ARGS[8],'lube') > 0:
  76. if ar_anal_lube = 0:
  77. if mid($ARGS[0],1,4) = 'anal':
  78. anal_slip = 8
  79. ar_anal_lube = 1
  80. end
  81. end
  82. if ar_vag_lube = 0:
  83. if mid($ARGS[0],1,4) = 'vagi':
  84. vaginal_slip = 8
  85. ar_vag_lube = 1
  86. end
  87. end
  88. end
  89. !! This is to allow a Succubus with the right skill level to handle any size then go back to original size
  90. if succubusflag = 1 and sucskill >= 4:
  91. if mid($ARGS[0],1,4) = 'vagi' and temp_dick ! pcs_vag:
  92. if temp_dick < pcs_vag - 5 or temp_dick > pcs_vag + 5: pcs_mood -= 10
  93. if sucvagorg = 0: sucvagorg = pcs_vag
  94. pcs_vag = temp_dick
  95. end
  96. if mid($ARGS[0],1,4) = 'anal' and temp_dick ! pcs_ass:
  97. if temp_dick < pcs_ass - 5 or temp_dick > pcs_ass + 5: pcs_mood -= 10
  98. if sucanusorg = 0: sucanusorg = pcs_ass
  99. pcs_ass = temp_dick
  100. end
  101. end
  102. !!set a magnitude as a random
  103. stim['mag'] = rand(0,3) + rand(0,3) + rand(0,3)
  104. !!add count and effects due to action
  105. if $ARGS[0] = 'masturbate':
  106. orgasm_flag = 1
  107. count['mast'] = 1
  108. stim['mag'] += 6
  109. stim['act'] = 100
  110. elseif $ARGS[0] = 'porn':
  111. count['porn'] = 1
  112. stim['act'] = 25
  113. elseif $ARGS[0] = 'voyeur':
  114. count['voyeur'] = 1
  115. stim['act'] = 20
  116. elseif $ARGS[0] = 'voyeur_sex':
  117. count['voyeur_sex'] = 1
  118. stim['act'] = 35
  119. elseif $ARGS[0] = 'kiss':
  120. count['kiss'] = 1
  121. stim['act'] = 10
  122. !! elseif $ARGS[0] = 'breasts':
  123. !! stim['act'] = 30
  124. !! !! No idea where else to put this. This is used for breast stimulation which will eventually cause lactation in sveta without her knowledge. If anyone knows a better place for this, please let me know. - milky_boobs.
  125. !! milkedvolume += func('lact_lib','$get_breastmilk', 8, ARGS[1])
  126. elseif $ARGS[0] = 'massage':
  127. count['massage'] = 1
  128. stim['act'] = 25
  129. elseif $ARGS[0] = 'foreplay':
  130. count['foreplay'] = 1
  131. stim['act'] = 20
  132. elseif $ARGS[0] = 'cuni':
  133. orgasm_flag = 1
  134. count['cuni'] = 1
  135. stim['mag'] += 4
  136. stim['act'] = 80
  137. elseif $ARGS[0] = 'rimming':
  138. orgasm_flag = 1
  139. count['rimming'] = 1
  140. stim['act'] = 30
  141. elseif $ARGS[0] = 'trib':
  142. orgasm_flag = 1
  143. count['trib'] = 1
  144. stim['mag'] += 3
  145. stim['act'] = 70
  146. stim_les = 1
  147. elseif $ARGS[0] = 'anal':
  148. orgasm_flag = 1
  149. temp_anal = 1
  150. if temp_unaware = 1:
  151. count['hidden_anal'] = 1
  152. else
  153. count['anal'] = 1
  154. end
  155. if pcs_ass < dick:pcs_ass += 1
  156. if pcs_ass*2 < dick:pcs_ass += 1
  157. !! length and girth abilities of anus are not also separated , but I suppose that they are related although it is not propable
  158. !! we can estimate difference in girth and length anal_girth_difference and anal_lenght_difference - names are shortened
  159. altdif = temp_dick - pcs_ass
  160. agrdif = grange - pcs_ass
  161. !! negative influence of the difference can be reduced by sex skill and also by lubricant
  162. !! I made it as simply as possible so you do not complain about reality, feel free to modify the algorithm
  163. !! when the boy is skilled, he can compensate the difference partly
  164. altdif = altdif / (temp_silavag+1)
  165. agrdif = agrdif *(5/4 - 1/(4 - temp_silavag))
  166. !! when the boy is skilled, he does not harm PC with his long dick
  167. if (temp_silavag = 2) and (altdif > 0): altdif = 0
  168. !! lube can compensate the difference a bit
  169. if -agrdif > anal_slip: agrdif = agrdif + anal_slip else if agrdif < 0: agrdif = 0
  170. if agrdif > anal_slip: agrdif = agrdif - anal_slip else if agrdif > 0: agrdif = 0
  171. stim['act'] = 80 - (iif(altdif>0,altdif,-altdif) + iif(agrdif >0,agrdif,-agrdif)) + temp_silavag*8
  172. !! if the dick is smaller, it cannot harm PC
  173. if agrdif < 0: agrdif = 0
  174. if altdif < 0: altdif = 0
  175. !! calculate the harm
  176. agape = iif((agrdif + altdif) > 10*agape,(agrdif + altdif)/10,agape)
  177. !! the pain lover the pleasure
  178. gs 'pain', (agrdif + altdif)/5 , 'asshole', 'stretch'
  179. stim['act'] = stim['act'] - (agrdif + altdif)
  180. elseif $ARGS[0] = 'anal_finger':
  181. orgasm_flag = 1
  182. temp_anal = 1
  183. count['anal_finger'] = 1
  184. stim['act'] = 40
  185. elseif $ARGS[0] = 'anal_fist':
  186. orgasm_flag = 1
  187. temp_anal = 1
  188. count['anal_fist'] = 1
  189. stim['act'] = 30
  190. if pcs_ass + anal_slip < 30:
  191. pcs_ass = 30
  192. gs 'pain', 4-agape, 'asshole', 'stretch'
  193. if agape < 3:agape = 3
  194. end
  195. elseif $ARGS[0] = 'anal_dildo':
  196. orgasm_flag = 1
  197. temp_anal = 1
  198. count['anal_dildo'] = 1
  199. !! the same as for 'anal'
  200. altdif = temp_dick - pcs_ass
  201. agrdif = grange - pcs_ass
  202. altdif = altdif / (temp_silavag+1)
  203. agrdif = agrdif *(5/4 - 1/(4 - temp_silavag))
  204. if (temp_silavag = 2) and (altdif > 0): altdif = 0
  205. if agrdif > anal_slip: agrdif = agrdif - anal_slip else if agrdif > 0: agrdif = 0
  206. if -agrdif > anal_slip: agrdif = agrdif + anal_slip else if agrdif < 0: agrdif = 0
  207. stim['act'] = 80 - (iif(altdif>0,altdif,-altdif) + iif(agrdif >0,agrdif,-agrdif)) + temp_silavag*8
  208. if agrdif < 0: agrdif = 0
  209. if altdif < 0: altdif = 0
  210. agape = iif((agrdif + altdif) > 10*agape,(agrdif + altdif)/10,agape)
  211. gs 'pain', (agrdif + altdif)/5 , 'asshole', 'stretch'
  212. stim['act'] = stim['act'] - (agrdif + altdif)
  213. elseif $ARGS[0] = 'anal_strap':
  214. orgasm_flag = 1
  215. temp_anal = 1
  216. count['anal_strap'] = 1
  217. !! the same as for 'anal'
  218. altdif = temp_dick - pcs_ass
  219. agrdif = grange - pcs_ass
  220. altdif = altdif / (temp_silavag+1)
  221. agrdif = agrdif *(5/4 - 1/(4 - temp_silavag))
  222. if (temp_silavag = 2) and (altdif > 0): altdif = 0
  223. if agrdif > anal_slip: agrdif = agrdif - anal_slip else if agrdif > 0: agrdif = 0
  224. if -agrdif > anal_slip: agrdif = agrdif + anal_slip else if agrdif < 0: agrdif = 0
  225. stim['act'] = 80 - (iif(altdif>0,altdif,-altdif) + iif(agrdif >0,agrdif,-agrdif)) + temp_silavag*8
  226. if agrdif < 0: agrdif = 0
  227. if altdif < 0: altdif = 0
  228. agape = iif((agrdif + altdif) > 10*agape,(agrdif + altdif)/10,agape)
  229. gs 'pain', (agrdif + altdif)/5 , 'asshole', 'stretch'
  230. stim['act'] = stim['act'] - (agrdif + altdif)
  231. elseif $ARGS[0] = 'anal_vibe':
  232. orgasm_flag = 1
  233. temp_anal = 1
  234. count['anal_vibe'] = 1
  235. stim['mag'] += 1
  236. stim['act'] = 60
  237. elseif $ARGS[0] = 'vaginal':
  238. orgasm_flag = 1
  239. !! pre-cum check
  240. if rand(0,120) < ARGS[1]: cumprecheck = 1 & gs 'cum_manage'
  241. if temp_unaware = 1:
  242. count['hidden_vaginal'] = 1
  243. else
  244. count['vaginal'] = 1
  245. end
  246. stim['mag'] += 3
  247. !! This section deals with pcs_vag if she still thinks she is virgin. There are many instances where virginity is
  248. !! checked via pcs_vag = 0, so for the time being i will not adjust pcs_vag if she believes.
  249. if temp_unaware = 0 or count['vaginal'] > 0:
  250. if pcs_vag < dick:pcs_vag += 1
  251. if pcs_vag*2 < dick:pcs_vag += 1
  252. end
  253. !! length and girth abilities of vagina are not separated , but I suppose that they are related
  254. !! we can estimate difference in girth and length vaginal_girth_difference and vaginal_lenght_difference - names are shortened
  255. vgrdif = grange - pcs_vag
  256. vltdif = temp_dick - pcs_vag
  257. !! negative influence of the difference can be reduced by sex skill and also by PCs horniness, using of a lubricant is not established yet
  258. !! I made it as simply as possible so you do not complain about reality, feel free to modify the algorithm
  259. !! when the boy is skilled, he can compensate the difference partly
  260. vltdif = vltdif / (temp_silavag+1)
  261. vgrdif = vgrdif *(5/4 - 1/(4 - temp_silavag))
  262. !! when the boy is skilled, he does not harm PC with his long dick
  263. if (temp_silavag = 2) and (vltdif > 0): vltdif = 0
  264. !! even PC horniness can compensate the difference
  265. if vgrdif > vaginal_slip: vgrdif = vgrdif - vaginal_slip else if (vgrdif > 0): vgrdif = 0
  266. if -1*vgrdif > vaginal_slip: vgrdif = vgrdif + vaginal_slip else if (vgrdif < 0): vgrdif = 0
  267. stim['act'] = 80 - (iif(vltdif>0,vltdif,-vltdif) + iif(vgrdif >0,vgrdif,-vgrdif)) + temp_silavag*8
  268. !! if the dick is smaller, it cannot harm PC
  269. if vgrdif < 0: vgrdif = 0
  270. if vltdif < 0: vltdif = 0
  271. !! calculate the harm
  272. vgape = iif((vgrdif + vltdif) > 10*vgape,(vgrdif + vltdif)/10,vgape)
  273. !! the pain lover the pleasure
  274. gs 'pain', (vgrdif + vltdif)/5 , 'vaginal', 'stretch'
  275. stim['act'] = stim['act'] - (vgrdif + vltdif)
  276. elseif $ARGS[0] = 'vaginal_finger':
  277. orgasm_flag = 1
  278. count['vaginal_finger'] = 1
  279. stim['mag'] += 1
  280. stim['act'] = 80
  281. elseif $ARGS[0] = 'vaginal_fist':
  282. orgasm_flag = 1
  283. count['vaginal_fist'] = 1
  284. stim['act'] = 70
  285. if pcs_vag + vaginal_slip < 30:
  286. !! same as for 'vaginal'
  287. if temp_unaware = 0 or count['vaginal'] > 0:pcs_vag += 3
  288. gs 'pain', 3 - vgape, 'vaginal', 'stretch'
  289. if vgape < 3:vgape = 3
  290. end
  291. elseif $ARGS[0] = 'vaginal_dildo':
  292. orgasm_flag = 1
  293. count['vaginal_dildo'] = 1
  294. stim['mag'] += 1
  295. !! the same as for 'vaginal'
  296. vgrdif = grange - pcs_vag
  297. vltdif = temp_dick - pcs_vag
  298. vltdif = vltdif / (temp_silavag+1)
  299. vgrdif = vgrdif *(5/4 - 1/(4 - temp_silavag))
  300. if (temp_silavag = 2) and (vltdif > 0): vltdif = 0
  301. if vgrdif > vaginal_slip: vgrdif = vgrdif - vaginal_slip else if (vgrdif > 0): vgrdif = 0
  302. if -1*vgrdif > vaginal_slip: vgrdif = vgrdif + vaginal_slip else if (vgrdif < 0): vgrdif = 0
  303. stim['act'] = 80 - (iif(vltdif>0,vltdif,-vltdif) + iif(vgrdif >0,vgrdif,-vgrdif)) + temp_silavag*8
  304. if vgrdif < 0: vgrdif = 0
  305. if vltdif < 0: vltdif = 0
  306. vgape = iif((vgrdif + vltdif) > 10*vgape,(vgrdif + vltdif)/10,vgape)
  307. gs 'pain', (vgrdif + vltdif)/5 , 'vaginal', 'stretch'
  308. stim['act'] = stim['act'] - (vgrdif + vltdif)
  309. elseif $ARGS[0] = 'vaginal_strap':
  310. orgasm_flag = 1
  311. count['vaginal_strap'] = 1
  312. stim['mag'] += 1
  313. !! virginal capacity increase
  314. if pcs_vag < dick:pcs_vag += 1
  315. if pcs_vag*2 < dick:pcs_vag += 1
  316. !! the same as for 'vaginal'
  317. vgrdif = grange - pcs_vag
  318. vltdif = temp_dick - pcs_vag
  319. vltdif = vltdif / (temp_silavag+1)
  320. vgrdif = vgrdif *(5/4 - 1/(4 - temp_silavag))
  321. if (temp_silavag = 2) and (vltdif > 0): vltdif = 0
  322. if vgrdif > vaginal_slip: vgrdif = vgrdif - vaginal_slip else if (vgrdif > 0): vgrdif = 0
  323. if -1*vgrdif > vaginal_slip: vgrdif = vgrdif + vaginal_slip else if (vgrdif < 0): vgrdif = 0
  324. stim['act'] = 80 - (iif(vltdif>0,vltdif,-vltdif) + iif(vgrdif >0,vgrdif,-vgrdif)) + temp_silavag*8
  325. if vgrdif < 0: vgrdif = 0
  326. if vltdif < 0: vltdif = 0
  327. vgape = iif((vgrdif + vltdif) > 10*vgape,(vgrdif + vltdif)/10,vgape)
  328. gs 'pain', (vgrdif + vltdif)/5 , 'vaginal', 'stretch'
  329. stim['act'] = stim['act'] - (vgrdif + vltdif)
  330. elseif $ARGS[0] = 'vaginal_vibe':
  331. orgasm_flag = 1
  332. count['vaginal_vibe'] = 1
  333. stim['mag'] += 2
  334. stim['act'] = 90
  335. elseif $ARGS[0] = 'flashlite':
  336. count['flashlite'] = 1
  337. stim['act'] = 10
  338. elseif $ARGS[0] = 'flash':
  339. count['flash'] = 1
  340. stim['act'] = 30
  341. elseif $ARGS[0] = 'BDSM':
  342. count['BDSM'] = 1
  343. stim['act'] = 20
  344. elseif $ARGS[0] = 'pee':
  345. count['pee'] = 1
  346. stim['act'] = 10
  347. elseif $ARGS[0] = 'massage_give':
  348. count['massage_give'] = 1
  349. stim['act'] = 10
  350. elseif $ARGS[0] = 'foreplay_give':
  351. count['foreplay_give'] = 1
  352. stim['act'] = 20
  353. elseif $ARGS[0] = 'cuni_give':
  354. count['cuni_give'] = 1
  355. stim['act'] = 30
  356. stim_les = 1
  357. elseif $ARGS[0] = 'rimming_give':
  358. count['rimming_give'] = 1
  359. stim['act'] = 25
  360. elseif $ARGS[0] = 'anal_finger_give':
  361. count['anal_finger_give'] = 1
  362. stim['act'] = 40
  363. elseif $ARGS[0] = 'anal_fist_give':
  364. count['anal_fist_give'] = 1
  365. stim['act'] = 30
  366. elseif $ARGS[0] = 'anal_dildo_give':
  367. count['anal_dildo_give'] = 1
  368. stim['act'] = 40
  369. elseif $ARGS[0] = 'anal_vibe_give':
  370. count['anal_vibe_give'] = 1
  371. stim['act'] = 40
  372. elseif $ARGS[0] = 'anal_strap_give':
  373. count['anal_strap_give'] = 1
  374. stim['act'] = 40
  375. elseif $ARGS[0] = 'vaginal_finger_give':
  376. count['vaginal_finger_give'] = 1
  377. stim['act'] = 60
  378. stim_les = 1
  379. elseif $ARGS[0] = 'vaginal_fist_give':
  380. count['vaginal_fist_give'] = 1
  381. stim['act'] = 50
  382. stim_les = 1
  383. elseif $ARGS[0] = 'vaginal_dildo_give':
  384. count['vaginal_dildo_give'] = 1
  385. stim['act'] = 60
  386. stim_les = 1
  387. elseif $ARGS[0] = 'vaginal_strap_give':
  388. count['vaginal_strap_give'] = 1
  389. stim['act'] = 70
  390. stim_les = 1
  391. elseif $ARGS[0] = 'vaginal_vibe_give':
  392. count['vaginal_vibe_give'] = 1
  393. stim['act'] = 60
  394. stim_les = 1
  395. elseif $ARGS[0] = 'hj':
  396. if temp_unaware = 1:
  397. count['hidden_hj'] = 1
  398. else
  399. count['hj'] = 1
  400. end
  401. stim['act'] = 25
  402. elseif $ARGS[0] = 'bj':
  403. if temp_unaware = 1:
  404. count['hidden_bj'] = 1
  405. else
  406. count['bj'] = 1
  407. end
  408. stim['act'] = 45
  409. if temp_dick > pcs_throat: pcs_throat += 1
  410. elseif $ARGS[0] = 'footjob':
  411. if temp_unaware = 1:
  412. count['hidden_footjob'] = 1
  413. else
  414. count['footjob'] = 1
  415. end
  416. stim['act'] = 25
  417. stim_foot = 1
  418. elseif $ARGS[0] = 'titjob':
  419. if temp_unaware = 1:
  420. count['hidden_titjob'] = 1
  421. else
  422. count['titjob'] = 1
  423. end
  424. stim['act'] = 45
  425. stim_titjob = 1
  426. elseif $ARGS[0] = 'BDSM_give':
  427. count['BDSM_give'] = 1
  428. stim['act'] = 20
  429. elseif $ARGS[0] = 'pee_give':
  430. count['pee_give'] = 1
  431. stim['act'] = 10
  432. end
  433. if stim['mag'] > 9: stim['mag'] = 9
  434. if ARGS[1] > 0: minut += ARGS[1]
  435. stim['time'] = iif(ARGS[1]>0,ARGS[1],-ARGS[1])
  436. !!Adds effects due to sexual perversions
  437. stim['kinkno'] = 0
  438. stim['kink'] = 0
  439. !! Auto adding of lesbian and foot fetishes for acts that must involve them
  440. if stim_les = 1:
  441. stim['kink'] += lesbian['exp']
  442. stim['pref'] += lesbian['pref']
  443. stim['kinkno'] += 1
  444. if temp_unaware = 1:
  445. stim['hidden_lesbian'] = 1
  446. else
  447. stim['lesbian'] = 1
  448. end
  449. end
  450. if stim_foot = 1:
  451. stim['kink'] += feet['exp']
  452. stim['pref'] += feet['pref']
  453. stim['kinkno'] += 1
  454. stim['feet'] = 1
  455. end
  456. if $ARGS[1] ! 'porn' and $ARGS[1] ! 'voyeur':
  457. i = 2
  458. :stimloop
  459. if $ARGS[i] ! '':
  460. !!Skipping lesbian and foot where auto added to avoid duplication
  461. if stim_les = 1 and $ARGS[i] = 'lesbian':i += 1 & jump 'stimloop'
  462. if stim_foot = 1 and $ARGS[i] = 'feet':i += 1 & jump 'stimloop'
  463. if $ARGS[i] = 'bound':
  464. stim['kink'] += bound['exp']
  465. stim['pref'] += bound['pref']
  466. stim['kinkno'] += 1
  467. stim['bound'] = 1
  468. elseif $ARGS[i] = 'beast':
  469. stim['kink'] += beast['exp']
  470. stim['pref'] += beast['pref']
  471. stim['kinkno'] += 1
  472. stim['beast'] = 1
  473. elseif $ARGS[i] = 'exhibitionism':
  474. stim['kink'] += exhibitionism['exp']
  475. stim['pref'] += exhibitionism['pref']
  476. inhib_exp += rand(2,6)
  477. stim['kinkno'] += 1
  478. stim['exhibitionism'] = 1
  479. elseif $ARGS[i] = 'rough':
  480. stim['kink'] += rough['exp']
  481. stim['pref'] += rough['pref']
  482. stim['kinkno'] += 1
  483. stim['rough'] = 1
  484. elseif $ARGS[i] = 'prostitution':
  485. stim['kink'] += prostitution['exp']
  486. stim['pref'] += prostitution['pref']
  487. stim['kinkno'] += 1
  488. if temp_unaware = 1:
  489. stim['hidden_prostitution'] = 1
  490. else
  491. stim['prostitution'] = 1
  492. end
  493. elseif $ARGS[i] = 'dom':
  494. stim['kink'] += dom['exp']
  495. stim['pref'] += dom['pref']
  496. stim['kinkno'] += 1
  497. stim['dom'] = 1
  498. elseif $ARGS[i] = 'sub':
  499. stim['kink'] += sub['exp']
  500. stim['pref'] += sub['pref']
  501. stim['kinkno'] += 1
  502. stim['sub'] = 1
  503. elseif $ARGS[i] = 'incest':
  504. stim['kink'] += incest['exp']
  505. stim['pref'] += incest['pref']
  506. stim['kinkno'] += 1
  507. stim['incest'] = 1
  508. elseif $ARGS[i] = 'feet':
  509. stim['kink'] += feet['exp']
  510. stim['pref'] += feet['pref']
  511. stim['kinkno'] += 1
  512. stim['feet'] = 1
  513. elseif $ARGS[i] = 'lesbian':
  514. stim['kink'] += lesbian['exp']
  515. stim['pref'] += lesbian['pref']
  516. stim['kinkno'] += 1
  517. if temp_unaware = 1:
  518. stim['hidden_lesbian'] = 1
  519. else
  520. stim['lesbian'] = 1
  521. end
  522. elseif $ARGS[i] = 'group':
  523. stim['kink'] += group['exp']
  524. stim['pref'] += group['pref']
  525. stim['kinkno'] += 1
  526. if temp_unaware = 1:
  527. stim['hidden_group'] = 1
  528. else
  529. stim['group'] = 1
  530. end
  531. elseif $ARGS[i] = 'gangbang':
  532. stim['kink'] += gang['exp']
  533. stim['pref'] += gang['pref']
  534. stim['kinkno'] += 1
  535. if temp_unaware = 1:
  536. stim['hidden_gang'] = 1
  537. else
  538. stim['gang'] = 1
  539. end
  540. elseif $ARGS[i] = 'humiliation':
  541. stim['kink'] += humiliation['exp']
  542. stim['pref'] += humiliation['pref']
  543. stim['kinkno'] += 1
  544. stim['humiliation'] = 1
  545. elseif $ARGS[i] = 'maso':
  546. stim['kink'] += maso['exp']
  547. stim['pref'] += maso['pref']
  548. stim['kinkno'] += 1
  549. stim['maso'] = 1
  550. elseif $ARGS[i] = 'deepthroat':
  551. stim['kink'] += deepthroat['exp']
  552. stim['pref'] += deepthroat['pref']
  553. stim['kinkno'] += 1
  554. stim['deepthroat'] = 1
  555. !!unknown is for sex with an unknown partner, this could be a gloryhole or unconscious
  556. elseif $ARGS[i] = 'unknown':
  557. stim['kink'] += unknown['exp']
  558. stim['pref'] += unknown['pref']
  559. stim['kinkno'] += 1
  560. stim['unknown'] = 1
  561. elseif $ARGS[i] = 'gloryhole':
  562. stim['kink'] += gloryhole['exp']
  563. stim['pref'] += gloryhole['pref']
  564. stim['kinkno'] += 1
  565. if temp_unaware = 1:
  566. stim['hidden_gloryhole'] = 1
  567. else
  568. stim['gloryhole'] = 1
  569. end
  570. elseif $ARGS[i] = 'rape':
  571. stim['kink'] += rape['exp']
  572. stim['pref'] += rape['pref']
  573. stim['kinkno'] += 1
  574. rapeday = daystart
  575. if temp_unaware = 1:
  576. stim['hidden_rape'] = 1
  577. else
  578. stim['rape'] = 1
  579. end
  580. elseif $ARGS[i] = 'futa':
  581. stim['kink'] += futa['exp']
  582. stim['pref'] += futa['pref']
  583. stim['kinkno'] += 1
  584. if temp_unaware = 1:
  585. stim['hidden_futa'] = 1
  586. else
  587. stim['futa'] = 1
  588. end
  589. end
  590. i += 1
  591. jump 'stimloop'
  592. end
  593. end
  594. !!Fetishes are divided by total number of fetishes
  595. if stim['kinkno'] ! 0:
  596. stim['kink'] = stim['kink']/stim['kinkno']
  597. stim['pref'] = (stim['pref']/stim['kinkno'])
  598. stim['kinkno'] = 0
  599. end
  600. !!Bonus from fetishes, randomised chance for each level of bonus
  601. if rand(0,100) < stim['kink']:
  602. stim['kink'] = 120
  603. elseif rand(0,80) < stim['kink']:
  604. stim['kink'] = 110
  605. elseif rand(0,60) < stim['kink']:
  606. stim['kink'] = 100
  607. elseif rand(0,40) < stim['kink']:
  608. stim['kink'] = 90
  609. else
  610. stim['kink'] = 80
  611. end
  612. !!arousal calculation
  613. stim['total'] = ((stim['mag']*stim['act']*stim['kink']/100) + stim['pref'])*stim['time'] / 120
  614. !!Reduction in arousal linked to pain, masochism helps to deal with this
  615. if pain['total'] > 0:
  616. if maso['pref'] <= 0 and pain['total'] < 50:
  617. if pain['total'] - (maso['exp'] + 1 / 6) > 0:stim['total'] -= (pain['total'] - (maso['exp'] / 6))
  618. elseif maso['pref'] < 25 and pain['total'] < 55:
  619. stim['total'] += (pain['total'] * maso['exp'] +1 / 400)/60*stim['time']
  620. elseif maso['pref'] < 50 and pain['total'] < 70:
  621. stim['total'] += (pain['total'] * maso['exp'] + 1 / 300)/60*stim['time']
  622. elseif maso['pref'] < 75 and pain['total'] < 85:
  623. stim['total'] += (pain['total'] * maso['exp'] + 1 / 200)/60*stim['time']
  624. elseif maso['pref'] >= 75:
  625. stim['total'] += (pain['total'] * maso['exp'] + 1 / 100)/60*stim['time']
  626. else
  627. stim['total'] = 0
  628. end
  629. end
  630. stim['event'] += stim['total']
  631. pcs_horny += stim['total']
  632. !! This is to allow a Succubus with the right skill level to handle any size then go back to original size
  633. if sucvagorg ! 0 and sucvagorg ! pcs_vag: pcs_vag = sucvagorg & killvar 'sucvagorg'
  634. if sucanusorg ! 0 and sucanusorg ! pcs_ass: pcs_ass = sucanusorg & killvar 'sucanusorg'
  635. !!-------------------Orgasm-------------------
  636. !!This is intended to be hidden and the stats and calculations should not appear in game.
  637. orgasm_buildup += stim['total']
  638. if $orgasm_or ! 'no' and $ARGS[0] ! 'flashlite' and $ARGS[0] ! 'flash' and orgasm_flag ! 0:
  639. if $orgasm_or = 'yes' or $orgasm_or = 'custom':
  640. gs 'orgasm', $ARGS[0]
  641. elseif orgasm_buildup >= 100 and stim['total'] > 10 and rand(1,100) <= 20:
  642. gs 'orgasm', $ARGS[0]
  643. elseif orgasm_buildup >= 150 and stim['total'] > 6 and rand(1,100) <= 50:
  644. gs 'orgasm', $ARGS[0]
  645. elseif orgasm_buildup >= 200 and stim['total'] > 4:
  646. gs 'orgasm', $ARGS[0]
  647. end
  648. end
  649. if $orgasm_or ! 'no' and orgasm_buildup >= 300 and pcs_horny >= 60: gs 'orgasm', $ARGS[0]
  650. killvar 'temp_dick'
  651. killvar 'temp_unaware'
  652. killvar '$orgasm_txt'
  653. killvar '$stim_les'
  654. killvar '$stim_foot'
  655. gs 'nichUtil','onArouse',$ARGS[0]
  656. end
  657. !!-----------------------------------------------
  658. if $ARGS[0] = 'end':
  659. if orgasm_buildup > 350: orgasm_buildup = 350
  660. if orgasm_buildup > 300: orgasm_buildup -= 10
  661. if orgasm_buildup > 200: orgasm_buildup -= 10
  662. if orgasm_buildup > 100: orgasm_buildup -= 10
  663. if stim['lesbian'] = 1: lesbian += 1
  664. if stim['hidden_lesbian'] = 1: hidden_lesbian += 1
  665. if stim['gang'] = 1 or stim['group'] = 1: gang += 1
  666. if stim['hidden_gang'] = 1 or stim['hidden_group'] = 1: hidden_gang += 1
  667. if stim['gloryhole'] = 1: gloryhole += 1
  668. if stim['hidden_gloryhole'] = 1: hidden_gloryhole += 1
  669. if stim['rape'] = 1: rape += 1
  670. if stim['hidden_rape'] = 1: hidden_rape += 1
  671. if stim['futa'] = 1: futa += 1
  672. if stim['hidden_futa'] = 1: hidden_futa += 1
  673. if stim['prostitution'] = 1: slutty += 1
  674. if stim['hidden_prostitution'] = 1: hidden_slutty += 1
  675. killvar 'anal_slip'
  676. killvar 'ar_anal_lube'
  677. killvar 'vagi_slip'
  678. killvar 'ar_vag_lube'
  679. killvar '$orgasm_or'
  680. !!Updating fetish exp for acts carried out and clearing data
  681. gs 'arousal', 'checks', 'maso'
  682. gs 'arousal', 'checks', 'bound'
  683. gs 'arousal', 'checks', 'beast'
  684. gs 'arousal', 'checks', 'exhibitionism'
  685. gs 'arousal', 'checks', 'rough'
  686. gs 'arousal', 'checks', 'prostitution'
  687. gs 'arousal', 'checks', 'hidden_prostitution'
  688. gs 'arousal', 'checks', 'dom'
  689. gs 'arousal', 'checks', 'sub'
  690. gs 'arousal', 'checks', 'incest'
  691. gs 'arousal', 'checks', 'feet'
  692. gs 'arousal', 'checks', 'lesbian'
  693. gs 'arousal', 'checks', 'hidden_lesbian'
  694. gs 'arousal', 'checks', 'group'
  695. gs 'arousal', 'checks', 'hidden_group'
  696. gs 'arousal', 'checks', 'gang'
  697. gs 'arousal', 'checks', 'hidden_gang'
  698. gs 'arousal', 'checks', 'humiliation'
  699. gs 'arousal', 'checks', 'deepthroat'
  700. gs 'arousal', 'checks', 'unknown'
  701. gs 'arousal', 'checks', 'gloryhole'
  702. gs 'arousal', 'checks', 'hidden_gloryhole'
  703. gs 'arousal', 'checks', 'rape'
  704. gs 'arousal', 'checks', 'hidden_rape'
  705. gs 'arousal', 'checks', 'futa'
  706. gs 'arousal', 'checks', 'hidden_futa'
  707. stim['event'] = 0
  708. !!Adding to counts for character stats
  709. gs 'arousal', 'count', 'foreplay'
  710. gs 'arousal', 'count', 'mast'
  711. gs 'arousal', 'count', 'porn'
  712. gs 'arousal', 'count', 'cuni'
  713. gs 'arousal', 'count', 'rimming'
  714. gs 'arousal', 'count', 'trib'
  715. gs 'arousal', 'count', 'anal'
  716. gs 'arousal', 'count', 'hidden_anal'
  717. gs 'arousal', 'count', 'anal_finger'
  718. gs 'arousal', 'count', 'anal_fist'
  719. gs 'arousal', 'count', 'anal_dildo'
  720. gs 'arousal', 'count', 'anal_strap'
  721. gs 'arousal', 'count', 'anal_vibe'
  722. gs 'arousal', 'count', 'vaginal'
  723. gs 'arousal', 'count', 'hidden_vaginal'
  724. gs 'arousal', 'count', 'vaginal_finger'
  725. gs 'arousal', 'count', 'vaginal_fist'
  726. gs 'arousal', 'count', 'vaginal_dildo'
  727. gs 'arousal', 'count', 'vaginal_strap'
  728. gs 'arousal', 'count', 'vaginal_vibe'
  729. gs 'arousal', 'count', 'BDSM'
  730. gs 'arousal', 'count', 'pee'
  731. gs 'arousal', 'count', 'massage'
  732. gs 'arousal', 'count', 'foreplay_give'
  733. gs 'arousal', 'count', 'cuni_give'
  734. gs 'arousal', 'count', 'rimming_give'
  735. gs 'arousal', 'count', 'anal_finger_give'
  736. gs 'arousal', 'count', 'anal_fist_give'
  737. gs 'arousal', 'count', 'anal_dildo_give'
  738. gs 'arousal', 'count', 'anal_vibe_give'
  739. gs 'arousal', 'count', 'anal_strap_give'
  740. gs 'arousal', 'count', 'vaginal_finger_give'
  741. gs 'arousal', 'count', 'vaginal_fist_give'
  742. gs 'arousal', 'count', 'vaginal_dildo_give'
  743. gs 'arousal', 'count', 'vaginal_strap_give'
  744. gs 'arousal', 'count', 'vaginal_vibe_give'
  745. gs 'arousal', 'count', 'hj'
  746. gs 'arousal', 'count', 'hidden_hj'
  747. gs 'arousal', 'count', 'bj'
  748. gs 'arousal', 'count', 'hidden_bj'
  749. gs 'arousal', 'count', 'footjob'
  750. gs 'arousal', 'count', 'hidden_footjob'
  751. gs 'arousal', 'count', 'titjob'
  752. gs 'arousal', 'count', 'hidden_titjob'
  753. gs 'arousal', 'count', 'BDSM_give'
  754. gs 'arousal', 'count', 'pee_give'
  755. gs 'arousal', 'count', 'massage_give'
  756. gs 'arousal', 'count2', 'flashlite'
  757. gs 'arousal', 'count2', 'flash'
  758. gs 'arousal', 'count2', 'voyeur'
  759. gs 'arousal', 'count2', 'voyeur_sex'
  760. !! Thats here because there is currently a variable zoo.
  761. if zoo > beast['exp']: beast['exp'] = zoo
  762. if beast['exp'] > zoo: zoo = beast['exp']
  763. !!
  764. end
  765. if $ARGS[0] = 'count':
  766. if dyneval('RESULT = count[''<<$ARGS[1]>>'']') = 1:
  767. dynamic 'count[''<<$ARGS[1]>>''] = 0'
  768. dynamic 'stat[''<<$ARGS[1]>>''] += 1'
  769. count['flashlite'] = 0
  770. count['flash'] = 0
  771. count['voyeur'] = 0
  772. end
  773. end
  774. if $ARGS[0] = 'count2':
  775. if dyneval('RESULT = count[''<<$ARGS[1]>>'']') = 1:
  776. dynamic 'count[''<<$ARGS[1]>>''] = 0'
  777. dynamic 'stat[''<<$ARGS[1]>>''] += 1'
  778. end
  779. end
  780. if $ARGS[0] = 'checks':
  781. if dyneval('RESULT = stim[''<<$ARGS[1]>>'']') = 1:
  782. dynamic 'stim[''<<$ARGS[1]>>''] = 0'
  783. dynamic '<<$ARGS[1]>>[''exp''] += 1'
  784. end
  785. end
  786. !!The auto lube application
  787. !!to use enter gs 'arousal', 'auto_lube', 'anal' or 'vag'
  788. !!add 'custom' to display a custom or no text by setting $lube_txt, if $lube_txt is '' no text will be displayed
  789. if $ARGS[0] = 'auto_lube':
  790. if $ARGS[1] = 'anal' and auto_anal_lube = 1:
  791. if lubri > 0:
  792. if $ARGS[2] ! 'custom':
  793. 'You rub some lube in and around you anus.'
  794. elseif $lube_txt ! '':
  795. $lube_txt
  796. end
  797. gs 'arousal', 'anal_finger', 1
  798. anal_slip = 8
  799. ar_anal_lube = 1
  800. lubri -= 1
  801. elseif $ARGS[2] ! 'custom' or ($ARGS[2] = 'custom' and $lube_txt ! ''):
  802. 'You do not have any lube left so cannot use it during this sex act.'
  803. end
  804. end
  805. if $ARGS[1] = 'vag' and auto_vag_lube = 1:
  806. if lubri > 0:
  807. if $ARGS[2] ! 'custom':
  808. 'You rub some lube in and around your vagina.'
  809. elseif $lube_txt ! '':
  810. $lube_txt
  811. end
  812. gs 'arousal', 'vaginal_finger', 1
  813. vagi_slip = 8
  814. ar_vag_lube = 1
  815. lubri -= 1
  816. elseif $ARGS[2] ! 'custom' or ($ARGS[2] = 'custom' and $lube_txt ! ''):
  817. 'You do not have any lube left so cannot use it during this sex act.'
  818. end
  819. end
  820. killvar '$lube_txt'
  821. end
  822. --- arousal ---------------------------------