1
0

Cum_Manage 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611
  1. # Cum_Manage
  2. !!
  3. !! THIS IS A CORE FILE TO GAME MECHANICS. Please edit CAREFULLY, and leave as many comments as possible!!
  4. !!
  5. !! The comments in this file serve as tutorial to managing cum/sperm during scene writing and game-play. Please read them.
  6. !!
  7. !! spafinloc and cum array naming takes precident over other naming schemes. Always import and export variables by their cum array names
  8. !!
  9. !!------------------------------------------------------------------------------------------------------------
  10. !!
  11. !! Cum Array indices:
  12. !!
  13. !! cumarrnam : Sperm Owner
  14. !! cumarrppt : Sperm Potential Potency (max sperm delivery)
  15. !! cumarrcpt : Sperm Current Potency (current amount of sperm)
  16. !! cumarrdel : Sperm "Delivery" (method of *VAGINAL ONLY* acquisition)
  17. !! cumarrcon : Contraception typ used
  18. !! cumarrage : Sperm age in hours
  19. !! cumarrkno : Did you know/realize who did it?
  20. !!
  21. !!
  22. !!
  23. !! Values of 'cumarrdel' as defined by the cum_arr:
  24. !!
  25. !! cumarrdel = 0 : 'Vaginal intercourse'
  26. !! cumarrdel = 1 : 'From spatter on labia'
  27. !! cumarrdel = 2 : 'From the anal area'
  28. !! cumarrdel = 3 : 'From sperm on clothing'
  29. !! cumarrdel = 4 : 'From sperm on fingers'
  30. !! cumarrdel = 5 : 'From sperm on wipes'
  31. !! cumarrdel = 6 : 'Unknown'
  32. !!
  33. !!
  34. !!
  35. !! Values of 'cumarrcon' as defined by the cum_arr:
  36. !!
  37. !! cumarrcon = 0: 'No contraception used'
  38. !! cumarrcon = 1: 'You lied about being on the pill'
  39. !! cumarrcon = 2: 'You were on the pill'
  40. !! cumarrcon = 3: 'You used a condom'
  41. !! cumarrcon = 4: 'The condom broke'
  42. !! cumarrcon = 5: 'The condom slipped off inside you'
  43. !! cumarrcon = 6: 'The condom was sabotaged by someone else'
  44. !! cumarrcon = 7: 'You sabotaged the condom'
  45. !! cumarrcon = 8: 'Precum had sperm in it'
  46. !! cumarrcon = 9: 'You believe are sterile'
  47. !!
  48. !!
  49. !!
  50. !! Values of 'cumarrkno' as defined by the cum_arr:
  51. !!
  52. !! cumarrkno = -2 : 'You were unaware there was sperm in you'
  53. !! cumarrkno = -1 : 'You do not think that any sperm has gotten into you'
  54. !! cumarrkno = 0 : 'You know somebody got sperm in you, but you don''t know that person'
  55. !! cumarrkno = 1 : 'You know who got sperm in you'
  56. !!
  57. !!
  58. !!
  59. !! Locations to be defined by 'spafinloc'
  60. !!
  61. !! 0 = 'In your Vagina'
  62. !! 1 = 'On your labia'
  63. !! 2 = 'On your panties over your vagina'
  64. !! 3 = 'In your anus'
  65. !! 4 = 'On your butt'
  66. !! 5 = 'On your panties over your butt'
  67. !! 6 = 'On your clothes in your groin area'
  68. !! 7 = 'On your clothes'
  69. !! 8 = 'On your back'
  70. !! 9 = 'On your legs'
  71. !! 10 = 'On your arms'
  72. !! 11 = 'On your face'
  73. !! 12 = 'Inside your mouth'
  74. !! 13 = 'On your hands'
  75. !! 14 = 'On your stomach'
  76. !! 15 = 'On your breasts'
  77. !! 16 = 'In your hair'
  78. !! 17 = 'In a condom in your vagina'
  79. !!
  80. !!
  81. !!
  82. !!------------------------------------------------------------------------------------------------------------
  83. if $ARGS[0] = '':
  84. !!{ Here we define our important variables.}
  85. if sexvolume <= 0: sexvolume = 40
  86. if vibratorIN = 1 and spafinloc = 0 and replace_vib = 0: vibratorIN = 0
  87. if analplugIN = 1 and spafinloc = 3 and replace_analplug = 0: analplugIN = 0
  88. !!{ Set the cum array temp to the current size of the cum array to add a new entry to the end of file. Then checks to see if you are on the pill. If you are and there is no contraception used, it flags this as a "done with pill" act, which means a pregnancy will be a pill failure.}
  89. cumarrtemp = arrsize('$cumarrnam')
  90. if sexcontra = 0 and pillcon > 1000: sexcontra = 2
  91. !{Check for previous deposit, and if it was by the same guy and precum, it sets cumarrtemp back by one}
  92. ! if $cumarrnam[cumarrtemp-1] = $boy and cumarrkno[cumarrtemp-1] = -1:cumarrtemp -= 1 & sexspecpot = cumarrppt[cumarrtemp]
  93. if cumprecheck = 1:
  94. cumarrkno[cumarrtemp] = -1
  95. elseif sexunaware > 0:
  96. cumarrkno[cumarrtemp] = -2
  97. elseif sexpartkno = 1:
  98. cumarrkno[cumarrtemp] = 1
  99. else
  100. cumarrkno[cumarrtemp] = 0
  101. end
  102. cumarrtemp2 = arrsize('sparrvol')
  103. !!{ Check to see if this is flagged as a preejaculate emmission. All vaginal penetrations that flag this as cumprecheck contain preejaculate. Guidelines for calling it: If your boy is likely to have masterbated, had sex, or otherwise encouraged semen to leak out of their urethra in the last 48 hours, they probably have some fertile preejaculate. If in doubt, let it leak. The chances of pregnancy from it are low, and the MC should have been wearing protection.}
  104. if cumprecheck ! 1:
  105. !!{ Here it checks for vaginal deposit.}
  106. if spafinloc <= 0:
  107. !!{ Next it sets the variables in the array. The cumming boys name is first and cum age to 0.
  108. !! The cum delivery location is set to vaginally, and we check to see if this is an unknowing sex act.
  109. !! If it is, it makes it so the MC doesnt know who did it.
  110. !! If the boy has a custom specified potency 'sexspecpot', it flags the potency. Otherwise it sets it to the default.
  111. !! Default potency potential is generated from a random multiplier of sexvolume.
  112. !! Sexvolume defaults to 40 (4 mL), but may be overwritten with 'sexvolume'.}
  113. $cumarrnam[cumarrtemp] = $boy
  114. cumarrage[cumarrtemp] = 0
  115. cumarrdel[cumarrtemp] = 0
  116. if sexspecpot ! 0:
  117. cumarrppt[cumarrtemp] = sexspecpot
  118. else
  119. cumarrppt[cumarrtemp] = sexvolume * rand(250, 300)
  120. end
  121. !!{ Now it sets up the splatter and actual internal cum.
  122. !! First it sets the array to the spatter end of file. Then it checks for riding bareback.
  123. !! If theres a condom, it gives a chance for the condom to fail in general, slip off and remain in the vagina, or break.}
  124. if sexcontra > 2:
  125. if sexcontra = 3:
  126. temprand = rand(0,1000)
  127. dick_wid = 3
  128. if $dick_girth = 'skinny': dick_wid = 2
  129. if $dick_girth = 'slim': dick_wid = 3
  130. if $dick_girth = 'well proportioned': dick_wid = 3
  131. if $dick_girth = 'thicker than average': dick_wid = 4
  132. if $dick_girth = 'thick': dick_wid = 4
  133. if $dick_girth = 'massive': dick_wid = 5
  134. if $dick_girth = 'monstrous': dick_wid = 6
  135. break_thresh = dick_wid * 2
  136. break_thresh -= vagina / 4
  137. break_thresh += dick / 4
  138. slip_thresh = 18 - (dick_wid * 2)
  139. slip_thresh -= (vagina / 2)
  140. slip_thresh -= dick / 4
  141. if break_thresh < 4: break_thresh = 4
  142. if slip_thresh < 1: slip_thresh = 1
  143. break_thresh += slip_thresh
  144. if temprand = 0:
  145. cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp]/4
  146. cumarrcon[cumarrtemp] = 3
  147. elseif temprand < slip_thresh:
  148. cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp]/200
  149. cumarrcon[cumarrtemp] = 5
  150. cumcondslip = 1
  151. cumcondsanb = cumarrtemp
  152. sexcontra = 5
  153. sparrage[cumarrtemp2] = 0
  154. sparrloc[cumarrtemp2] = 17
  155. $sparrnam[cumarrtemp2] = $boy
  156. if sexspecpot ! 0:
  157. sparrppt[cumarrtemp2] = sexspecpot
  158. else
  159. sparrppt[cumarrtemp2] = sexvolume * rand(250, 300)
  160. end
  161. sparrvol[cumarrtemp2] += sexvolume
  162. cumsumbod += sexvolume
  163. cumsumvag += sexvolume
  164. if sexvolume <= 0: sparrvol[cumarrtemp2] += 40 & cumsumbod += 40 & cumsumvag += 40
  165. sparridt[cumarrtemp2] = cumarrkno[cumarrtemp]
  166. sparrslc[cumarrtemp2] = 0
  167. elseif temprand <= break_thresh:
  168. cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp]/2
  169. cumarrcon[cumarrtemp] = 4
  170. sexcontra = 4
  171. sparrage[cumarrtemp2] = 0
  172. sparrloc[cumarrtemp2] = 0
  173. $sparrnam[cumarrtemp2] = $boy
  174. if sexspecpot ! 0:
  175. sparrppt[cumarrtemp2] = sexspecpot
  176. else
  177. sparrppt[cumarrtemp2] = sexvolume * rand(250, 300)
  178. end
  179. sparrvol[cumarrtemp2] += sexvolume
  180. cumsumbod += sexvolume
  181. cumsumvag += sexvolume
  182. if sexvolume <= 0: sparrvol[cumarrtemp2] += 40 & cumsumbod += 40 & cumsumvag += 40
  183. sparridt[cumarrtemp2] = cumarrkno[cumarrtemp]
  184. sparrslc[cumarrtemp2] = 0
  185. else
  186. cumarrcpt[cumarrtemp] += 5
  187. cumarrcon[cumarrtemp] = 3
  188. end
  189. !!{ Next it checks to see if the event is calling specifically for a burst or slipped off condom.
  190. !! It treats them the same as if the condom above had a failure.}
  191. elseif sexcontra = 4:
  192. cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp]/2
  193. cumarrcon[cumarrtemp] = 4
  194. sparrage[cumarrtemp2] = 0
  195. sparrloc[cumarrtemp2] = 0
  196. $sparrnam[cumarrtemp2] = $boy
  197. if sexspecpot ! 0:
  198. sparrppt[cumarrtemp2] = sexspecpot
  199. else
  200. sparrppt[cumarrtemp2] = sexvolume * rand(250, 300)
  201. end
  202. sparrvol[cumarrtemp2] += sexvolume
  203. cumsumbod += sexvolume
  204. cumsumvag += sexvolume
  205. if sexvolume <= 0: sparrvol[cumarrtemp2] += 40 & cumsumbod += 40 & cumsumvag += 40
  206. sparridt[cumarrtemp2] = cumarrkno[cumarrtemp]
  207. sparrslc[cumarrtemp2] = 0
  208. elseif sexcontra = 5:
  209. cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp]/200
  210. cumarrcon[cumarrtemp] = 5
  211. cumcondslip = 1
  212. cumcondsanb = cumarrtemp
  213. sparrage[cumarrtemp2] = 0
  214. sparrloc[cumarrtemp2] = 17
  215. $sparrnam[cumarrtemp2] = $boy
  216. if sexspecpot ! 0:
  217. sparrppt[cumarrtemp2] = sexspecpot
  218. else
  219. sparrppt[cumarrtemp2] = sexvolume * rand(250, 300)
  220. end
  221. sparrvol[cumarrtemp2] += sexvolume
  222. cumsumbod += sexvolume
  223. cumsumvag += sexvolume
  224. if sexvolume <= 0: sparrvol[cumarrtemp2] += 40 & cumsumbod += 40 & cumsumvag += 40
  225. sparridt[cumarrtemp2] = cumarrkno[cumarrtemp]
  226. sparrslc[cumarrtemp2] = 0
  227. !!{ Next, check for sabotaged condoms. First sabotaged by you, then sabotaged by the guy.
  228. !! If they were sabotaged, it acts similar to a condom failure, but worse.}
  229. elseif sexcontra = 6:
  230. cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp]/3
  231. cumarrcon[cumarrtemp] = 6
  232. elseif sexcontra = 7:
  233. cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp]/3
  234. cumarrcon[cumarrtemp] = 7
  235. end
  236. !!{ If you have no protection, you get a nice, full load of semen.}
  237. else
  238. sparrage[cumarrtemp2] = 0
  239. sparrloc[cumarrtemp2] = 0
  240. $sparrnam[cumarrtemp2] = $boy
  241. if sexspecpot ! 0:
  242. sparrppt[cumarrtemp2] = sexspecpot
  243. else
  244. sparrppt[cumarrtemp2] = 10000
  245. end
  246. sparrvol[cumarrtemp2] += sexvolume
  247. cumsumbod += sexvolume
  248. cumsumvag += sexvolume
  249. if sexvolume <= 0: sparrvol[cumarrtemp2] += 40 & cumsumbod += 40 & cumsumvag += 40
  250. sparridt[cumarrtemp2] = cumarrkno[cumarrtemp]
  251. sparrslc[cumarrtemp2] = 0
  252. cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp]/5*4
  253. cumarrcon[cumarrtemp] = sexcontra
  254. end
  255. !!{ If you arent getting it in the vagina, and the boy isnt pumping it into a condom, a spatter is made and applied.
  256. !! If you arent wearing any panties and it was called to hit your panties, it goes directly to your groin.
  257. !! If you are naked and it calls for a clothing strike, it will go to your body instead.}
  258. elseif spafinloc > 0 and sexcontra < 3:
  259. sparrage[cumarrtemp2] = 0
  260. if tanga = 0:
  261. if spafinloc = 2:
  262. spafinloc = 1
  263. elseif spafinloc = 5:
  264. spafinloc = 4
  265. end
  266. end
  267. if $clothingworntype = 'nude':
  268. if spafinloc = 2:
  269. spafinloc = 1
  270. elseif spafinloc = 5:
  271. spafinloc = 4
  272. elseif spafinloc = 6:
  273. if rand(0,1) = 0:
  274. spafinloc = 1
  275. else
  276. spafinloc = 4
  277. end
  278. elseif spafinloc = 7:
  279. if rand(0,1) = 0:
  280. spafinloc = 14
  281. else
  282. spafinloc = 15
  283. end
  284. end
  285. end
  286. sparrloc[cumarrtemp2] = spafinloc
  287. if spafinloc = 12 and swallow >= 10 and rand(0,3) = 0: energy += 2
  288. $sparrnam[cumarrtemp2] = $boy
  289. if sexspecpot ! 0:
  290. sparrppt[cumarrtemp2] = sexspecpot
  291. else
  292. sparrppt[cumarrtemp2] = sexvolume * rand(250, 300)
  293. end
  294. sparrvol[cumarrtemp2] += sexvolume
  295. cumsumbod += sexvolume
  296. if sexvolume <= 0: sparrvol[cumarrtemp2] += 40 & cumsumbod += 40 & cumsumvag += 40
  297. if spafinloc = 3:
  298. cumsumass += sexvolume
  299. if sexvolume <= 0: cumsumass += 40
  300. end
  301. sparridt[cumarrtemp2] = cumarrkno[cumarrtemp]
  302. sparrslc[cumarrtemp2] = 0
  303. end
  304. if cumarrppt[cumarrtemp] < cumarrcpt[cumarrtemp]:cumarrcpt[cumarrtemp] = cumarrppt[cumarrtemp]
  305. sexpartkno = 0
  306. sexunaware = 0
  307. sexspecpot = 0
  308. !!{ And this is the pre ejaculate release talked about above.}
  309. elseif sexcontra < 3 and spafinloc = 0:
  310. $cumarrnam[cumarrtemp] = $boy
  311. if sexspecpot ! 0:
  312. cumarrppt[cumarrtemp] = sexspecpot
  313. else
  314. cumarrppt[cumarrtemp] = sexvolume * rand(250, 300)
  315. end
  316. cumarrage[cumarrtemp] = 0
  317. cumarrdel[cumarrtemp] = 0
  318. cumarrcon[cumarrtemp] = sexcontra
  319. cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp]/12
  320. if cumarrppt[cumarrtemp] < cumarrcpt[cumarrtemp]:cumarrcpt[cumarrtemp] = cumarrppt[cumarrtemp]
  321. end
  322. sexspecpot = 0
  323. cumprecheck = 0
  324. spafinloc = 0
  325. sexvolume = 0
  326. dynamic $din_Update_Condom_Counts
  327. if cumsumass >= 60:
  328. arrmodtmp = arrpos('sparrloc',3)
  329. if sparrslc[arrmodtmp] <= 0: sparrslc[arrmodtmp] += 1
  330. end
  331. if cumsumvag >= 60:
  332. arrmodtmp = arrpos('sparrloc',0)
  333. if sparrslc[arrmodtmp] <= 0: sparrslc[arrmodtmp] += 1
  334. end
  335. end
  336. if $ARGS[0] = 'cumgather':
  337. cloc = ARGS[1]
  338. i = arrpos('sparrloc', cloc)
  339. if i ! -1 and i < arrsize('sparrloc'):
  340. if cloc = 0:
  341. $part = 'pussy'
  342. elseif cloc = 1:
  343. $part = 'pussylips'
  344. elseif cloc = 2 or cloc = 5:
  345. $part = 'your panties'
  346. elseif cloc = 3:
  347. $part = 'anus'
  348. elseif cloc = 4:
  349. $part = 'buttocks'
  350. elseif cloc = 6 or cloc = 7:
  351. $part = 'clothes'
  352. elseif cloc = 8:
  353. $part = 'back'
  354. elseif cloc = 9:
  355. $part = 'legs'
  356. elseif cloc = 10:
  357. $part = 'arms'
  358. elseif cloc = 11:
  359. $part = 'face'
  360. elseif cloc = 14:
  361. $part = 'stomach'
  362. elseif cloc = 15:
  363. $part = 'breasts'
  364. elseif cloc = 16:
  365. $part = 'hair'
  366. else
  367. $part = 'unknown'
  368. end
  369. if salfetka > 0:
  370. salfetka -= 1
  371. minut += 5
  372. 'You use a wipe to clean the sperm from your <<$part>>.'
  373. gs 'cum_cleanup', 'cleanloc', cloc
  374. gs 'stat'
  375. end
  376. end
  377. end
  378. if $ARGS[0] = 'cumeater':
  379. cloc = ARGS[1]
  380. i = arrpos('sparrloc', cloc)
  381. if i ! -1 and i < arrsize('sparrloc'):
  382. spdirtyb = 1
  383. fbreath = 0
  384. vaf += 1
  385. $part = ''
  386. if cloc = 13:
  387. gs 'cum_cleanup', 'cleanloc', cloc
  388. 'You carefully lick the sperm residue from both hands, enjoying the tart taste of semen.'
  389. else
  390. if cloc = 0:
  391. $part = 'pussy'
  392. elseif cloc = 1:
  393. $part = 'pussylips'
  394. elseif cloc = 2 or cloc = 5:
  395. $part = 'your panties'
  396. gs 'cum_cleanup', 'cleanloc', 2
  397. gs 'cum_cleanup', 'cleanloc', 5
  398. elseif cloc = 3:
  399. $part = 'anus'
  400. elseif cloc = 4:
  401. $part = 'buttocks'
  402. elseif cloc = 6 or cloc = 7:
  403. $part = 'clothes'
  404. gs 'cum_cleanup', 'cleanloc', 6
  405. gs 'cum_cleanup', 'cleanloc', 7
  406. elseif cloc = 8:
  407. $part = 'back'
  408. elseif cloc = 9:
  409. $part = 'legs'
  410. elseif cloc = 10:
  411. $part = 'arms'
  412. elseif cloc = 11:
  413. $part = 'face'
  414. elseif cloc = 14:
  415. $part = 'stomach'
  416. elseif cloc = 15:
  417. $part = 'breasts'
  418. elseif cloc = 16:
  419. $part = 'hair'
  420. else
  421. $part = 'unknown'
  422. end
  423. if rand(0, 1) = 0:
  424. 'You collect a handful of sperm from your <<$part>> in your hand and lick it all up, enjoying the tart taste of semen.'
  425. else
  426. 'You collect the sperm from your <<$part>> with your fingers and lick them, enjoying the tart taste of semen.'
  427. end
  428. gs 'cum_cleanup', 'cleanloc', cloc
  429. end
  430. minut += 5
  431. gs 'stat'
  432. end
  433. end
  434. --- Cum_Manage ---------------------------------