arousal.qsrc 31 KB

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