femcyc.qsrc 35 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015
  1. # femcyc
  2. !! I have to initialize the variables somewhere, maybe in preCUST?
  3. if Luth_Max = 0: LutH_Max = rand(312,360) & !! 13-15 days including ovulation
  4. if Foch_Max = 0: FocH_Max = rand(312,360) & !! 13-15 days including menstruation
  5. if $ARGS[0] = '':
  6. !{Hourly reduction in semen potency}
  7. !{First it sets the array index to the first index, then it checks to be sure the array tracking the age is less than 144 hours. If it is 144 hours old, it kills that index, which should shift the index up. If it is less than 144 hours old, it sets a current potency drop. The drop is 2x or 3x regularly, but during ovulation it is only 1x, to represent the better environment from fertile cervical mucus.}
  8. !{144 hours was selected due to that being approximately the maximum amount of time sperm is viable in the womb (120 would be more accurate, but there is leeway). PLEASE DO NOT CHANGE IT.}
  9. !{The potency drop may seem small in game-time, but is meant to be a reasonable approximation to real life. Avoid unprotected sex within 5 days of ovulation if you want to mitigate your risk.}
  10. !{the 'rcntorgzm' variable is set to determine whether Sveta has orgasmed within the last hour. If she has, a small potency boost for the guys she has slept with in that hour.}
  11. if rcntorgzm = 1:
  12. if rcntorgzmtmp = 1: rcntorgzm = 0 & rcntorgzmtmp = 0
  13. if rcntorgzmtmp = 0: rcntorgzmtmp = 1
  14. end
  15. cumarr_idx = 0
  16. :cumarrloop
  17. if cumarr_idx < arrsize('$cumarrnam'):
  18. if cumarrcpt[cumarr_idx] > 0 and cumarrage[cumarr_idx] < 144:
  19. if rcntorgzm = 1 and cumarrcpt[cumarr_idx] < cumarrppt[cumarr_idx] and cumarrage[cumarr_idx] < 1: cumarrcpt[cumarr_idx] += cumarrppt[cumarr_idx] / 12
  20. cumpdrop = cumarrcpt[cumarr_idx] / (144 - cumarrage[cumarr_idx])
  21. if cycle ! 2: cumpdrop += cumpdrop * rand(0, 2)
  22. cumarrcpt[cumarr_idx] -= cumpdrop
  23. if cumarrcpt[cumarr_idx] <= 0:
  24. gs 'cum_cleanup', 'cleanwomb', cumarr_idx
  25. else
  26. cumarrage[cumarr_idx] += 1
  27. cumarr_idx += 1
  28. end
  29. else
  30. gs 'cum_cleanup', 'cleanwomb', cumarr_idx
  31. end
  32. jump 'cumarrloop'
  33. end
  34. !!Succubus absorption of sperm in womb
  35. if succubusflag = 1:
  36. if arrsize('cumarrppt') > 0:
  37. succycletmp = 0
  38. :sucvagabs
  39. if cumarrdel[succycletmp] = 0:
  40. if cumarrcpt[succycletmp] > 10000:
  41. sexnutrition += 30 * succublvl
  42. succubxp += 3
  43. elseif cumarrcpt[succycletmp] < 3000 and cumarrcpt[succycletmp] > 1000:
  44. sexnutrition += 5 * succublvl
  45. succubxp += 2
  46. elseif cumarrcpt[succycletmp] =< 1000:
  47. sexnutrition += succublvl
  48. else
  49. sexnutrition += 25 * succublvl
  50. succubxp += 3
  51. end
  52. gs 'cum_cleanup', 'cleanwomb', succycletmp
  53. sucabscum = 1
  54. else
  55. succycletmp += 1
  56. end
  57. if succycletmp < arrsize('cumarrppt'): jump 'sucvagabs'
  58. end
  59. killvar 'succycletmp'
  60. end
  61. cumarrtemp = 0
  62. cumcondslip = 0
  63. cumcondslip_aware = 0
  64. if arrsize('sparrvol') > 0:
  65. :cumspaloop
  66. !!Succubus absorption for internal locations other than womb
  67. if succubusflag = 1:
  68. if sparrloc[cumarrtemp] = 3 or sparrloc[cumarrtemp] = 12:
  69. sexnutrition += 25*succublvl
  70. succubxp += 3
  71. sucabscum = 1
  72. if sparrvol[cumarrtemp] > 0: sparrvol[cumarrtemp] = 0
  73. end
  74. end
  75. !!{if sparrloc[cumarrtemp] = 0 or sparrloc[cumarrtemp] = 3 or sparrloc[cumarrtemp] = 12:
  76. sexnutrition += 30*succublvl
  77. sparrvol[cumarrtemp] -= 30*succublvl
  78. if sparrvol[cumarrtemp] < 0: sexnutrition += sparrvol[cumarrtemp] & sparrvol[cumarrtemp] = 0
  79. end}
  80. !!{ Process spatter until it has volume or is too old in vagina. }
  81. if sparrvol[cumarrtemp] > 0 or (sparrloc[cumarrtemp] = 0 and sparrage[cumarrtemp] < 10):
  82. sparrtmpv = arrsize('$cumarrnam')
  83. if sparrloc[cumarrtemp] = 17:
  84. sparrtmpv = arrpos('cumarrcnt',sparrcnt[cumarrtemp])
  85. if sparrtmpv >= 0:
  86. !!'Found guy id <<sparrtmpv>>'
  87. if sparrage[cumarrtemp] < 4:
  88. cumarrcpt[sparrtmpv] += sparrppt[cumarrtemp]/5
  89. elseif sparrage[cumarrtemp] < 10:
  90. cumarrcpt[sparrtmpv] += sparrppt[cumarrtemp]/30
  91. end
  92. end
  93. elseif sparrloc[cumarrtemp] = 0:
  94. sparrtmpv = arrpos('cumarrcnt',sparrcnt[cumarrtemp])
  95. if sparrtmpv >= 0:
  96. !!'Found guy id' & sparrtmpv
  97. if sparrage[cumarrtemp] < 4:
  98. cumarrcpt[sparrtmpv] += sparrppt[cumarrtemp]/40
  99. elseif sparrage[cumarrtemp] < 10:
  100. cumarrcpt[sparrtmpv] += sparrppt[cumarrtemp]/60
  101. end
  102. end
  103. elseif sparrslc[cumarrtemp] = 1 and sparrage < 5:
  104. if sparrloc[cumarrtemp] = 1:
  105. cumarrcpt[sparrtmpv] = sparrppt[cumarrtemp]*sparrvol[cumarrtemp]/sparrage[cumarrtemp]/1000
  106. cumarrppt[sparrtmpv] = sparrppt[cumarrtemp]
  107. $cumarrnam[sparrtmpv] = $sparrnam[cumarrtemp]
  108. cumarrage[sparrtmpv] = sparrage[cumarrtemp]
  109. cumarrdel[sparrtmpv] = 1
  110. cumarrkno[sparrtmpv] = -1
  111. cumarrcon[sparrtmpv] = 0
  112. cumarrcnt[sparrtmpv] = sparrcnt[cumarrtemp]
  113. end
  114. elseif sparrslc[cumarrtemp] = 3 and sparrage < 5:
  115. if sparrloc[cumarrtemp] = 2:
  116. cumarrcpt[sparrtmpv] = sparrppt[cumarrtemp]*sparrvol[cumarrtemp]/sparrage[cumarrtemp]/1000
  117. cumarrppt[sparrtmpv] = sparrppt[cumarrtemp]
  118. $cumarrnam[sparrtmpv] = $sparrnam[cumarrtemp]
  119. cumarrage[sparrtmpv] = sparrage[cumarrtemp]
  120. cumarrdel[sparrtmpv] = 3
  121. cumarrkno[sparrtmpv] = -1
  122. cumarrcon[sparrtmpv] = 0
  123. cumarrcnt[sparrtmpv] = sparrcnt[cumarrtemp]
  124. elseif sparrloc[cumarrtemp] = 4:
  125. cumarrcpt[sparrtmpv] = sparrppt[cumarrtemp]*sparrvol[cumarrtemp]/sparrage[cumarrtemp]/1000
  126. cumarrppt[sparrtmpv] = sparrppt[cumarrtemp]
  127. $cumarrnam[sparrtmpv] = $sparrnam[cumarrtemp]
  128. cumarrage[sparrtmpv] = sparrage[cumarrtemp]
  129. cumarrdel[sparrtmpv] = 2
  130. cumarrkno[sparrtmpv] = -1
  131. cumarrcon[sparrtmpv] = 0
  132. cumarrcnt[sparrtmpv] = sparrcnt[cumarrtemp]
  133. end
  134. elseif sparrslc[cumarrtemp] = 5 and sparrage < 5:
  135. if sparrloc[cumarrtemp] = 3:
  136. cumarrcpt[sparrtmpv] = sparrppt[cumarrtemp]*sparrvol[cumarrtemp]/sparrage[cumarrtemp]/1000
  137. cumarrppt[sparrtmpv] = sparrppt[cumarrtemp]
  138. $cumarrnam[sparrtmpv] = $sparrnam[cumarrtemp]
  139. cumarrage[sparrtmpv] = sparrage[cumarrtemp]
  140. cumarrdel[sparrtmpv] = 2
  141. cumarrkno[sparrtmpv] = -1
  142. cumarrcon[sparrtmpv] = 0
  143. cumarrcnt[sparrtmpv] = sparrcnt[cumarrtemp]
  144. elseif sparrloc[cumarrtemp] = 5:
  145. cumarrcpt[sparrtmpv] = sparrppt[cumarrtemp]*sparrvol[cumarrtemp]/sparrage[cumarrtemp]/1000
  146. cumarrppt[sparrtmpv] = sparrppt[cumarrtemp]
  147. $cumarrnam[sparrtmpv] = $sparrnam[cumarrtemp]
  148. cumarrage[sparrtmpv] = sparrage[cumarrtemp]
  149. cumarrdel[sparrtmpv] = 3
  150. cumarrkno[sparrtmpv] = -1
  151. cumarrcon[sparrtmpv] = 0
  152. cumarrcnt[sparrtmpv] = sparrcnt[cumarrtemp]
  153. elseif sparrloc[cumarrtemp] = 6:
  154. cumarrcpt[sparrtmpv] = sparrppt[cumarrtemp]*sparrvol[cumarrtemp]/sparrage[cumarrtemp]/1000
  155. cumarrppt[sparrtmpv] = sparrppt[cumarrtemp]
  156. $cumarrnam[sparrtmpv] = $sparrnam[cumarrtemp]
  157. cumarrage[sparrtmpv] = sparrage[cumarrtemp]
  158. cumarrdel[sparrtmpv] = 3
  159. cumarrkno[sparrtmpv] = -1
  160. cumarrcon[sparrtmpv] = 0
  161. cumarrcnt[sparrtmpv] = sparrcnt[cumarrtemp]
  162. end
  163. end
  164. if sparrloc[cumarrtemp] = 0 or sparrloc[cumarrtemp] = 3 or sparrloc[cumarrtemp] = 12:
  165. sparrvol[cumarrtemp] -= sparrage[cumarrtemp]/2
  166. if sparrvol[cumarrtemp] < 0:sparrvol[cumarrtemp] = 0
  167. end
  168. if sparrloc[cumarrtemp] = 0 and cumsumvag > 60: sparrslc[cumarrtemp] = 1
  169. if sparrloc[cumarrtemp] = 3 and cumsumass > 60: sparrslc[cumarrtemp] = 1
  170. if sparrloc[cumarrtemp] = 17:
  171. cumcondslip += 1
  172. if sparridt[cumarrtemp] >= 0:
  173. cumcondslip_aware = 1
  174. end
  175. if sparrage[cumarrtemp] > 48:
  176. cumcondslip_aware = 1
  177. pcs_health -= rand(3,sparrage[cumarrtemp] - 45)
  178. '<br><b><font color="red">You feel nauseous.</font></b>'
  179. end
  180. end
  181. if sparrloc[cumarrtemp] ! 0 and sparrloc[cumarrtemp] ! 3 and sparrloc[cumarrtemp] ! 12 and isprok = 0 and sparrage < 5: sparrslc[cumarrtemp] += 1
  182. sparrage[cumarrtemp] += 1
  183. cumarrtemp += 1
  184. ctemp[0] += sparrvol[cumarrtemp]
  185. if sparrloc[cumarrtemp] = 0: ctemp[1] += sparrvol[cumarrtemp]
  186. if sparrloc[cumarrtemp] = 3: ctemp[2] += sparrvol[cumarrtemp]
  187. else
  188. gs 'cum_cleanup', 'cleandeposit', cumarrtemp
  189. end
  190. if cumarrtemp < arrsize('sparrvol'): jump 'cumspaloop'
  191. cumsumbod = ctemp[0]
  192. cumsumvag = ctemp[1]
  193. cumsumass = ctemp[2]
  194. KILLVAR 'ctemp'
  195. end
  196. if cheat_NoLactation = 1:
  197. gs 'lact_lib','lactate_optout'
  198. end
  199. !! new milkgrowday function.
  200. !! Not lactating yet, but there was milkdemand, meaning someone worked your nipples and breasts.
  201. if lactate = 0 and milkoverdemand >= 0 and prolactinlvl >= 0:
  202. !! Even if Sveta doesn''t massage her breasts or pumps proactively, NPCs will work her breasts eventually. This can cause her to lactate without knowledge.
  203. if rand(1,50) + prolactinlvl >= rand(200,250) and milkinduceday >= 5:
  204. lactateinduced = 0
  205. pcs_knowsaboutlactation = 0
  206. lactate = 1
  207. if func('lact_lib','$calc_lactatemm') > 0: lactatemm = func('lact_lib','$calc_lactatemm')
  208. if prolactinlvl < 200: prolactinlvl = 200
  209. lactaterate = 10*(prolactinlvl/200)
  210. pcs_nips += 2
  211. pumpinggrowth = 0
  212. end
  213. if milkgrowday < daystart:
  214. temp_var = milkoverdemand/200
  215. if temp_var >= 10 and pregtimes <= 0: temp_var = 10
  216. if temp_var >= 50 and pregtimes > 0: temp_var = 50
  217. if temp_var <= 0 and milkoverdemand >0:
  218. prolactinlvl += 1
  219. else
  220. prolactinlvl += temp_var
  221. end
  222. !! if sveta had no kid, milk induction will take a while as her breasts need to change alot.
  223. if prolactinlvl >= 150 and kid <= 0 and pregtimes <= 0:milkinduceday += 1
  224. if prolactinlvl >= 100 and kid <= 0 and pregtimes <= 0 and pain['breasts'] <= 20: pain['breasts'] = 20
  225. !! as long as your tits are not over 11 growth will happen to them. If you do not pump or no pregnancy happens, no growth will happen.
  226. if milkoverdemand = 0 and pregchem = 0 and tits < 11:
  227. temp_var = prolactinlvl - 10
  228. if temp_var <= 0:
  229. prolactinlvl = 0
  230. end
  231. !! if prolactinlvl is sinking too much, the aveoli will deflate and thus the breasts growth is reverted. This only counts for induced lactation. If natural lactation occurs breasts will shrink a bit too, but stay bigger in total.
  232. if prolactinlvl < 100 and total_milkinduce_growth > 0:
  233. nbsize -= total_milkinduce_growth
  234. total_milkinduce_growth = 0
  235. if prolactinlvl > 10:
  236. prolactinlvl -= 10
  237. else
  238. prolactinlvl = 0
  239. end
  240. else
  241. if prolactinlvl > 10:
  242. prolactinlvl -= 10
  243. else
  244. prolactinlvl = 0
  245. end
  246. end
  247. milkoverdemand = 0
  248. milkgrowday = daystart
  249. elseif milkoverdemand > 0 and pregchem = 0 and tits < 11:
  250. !! inducing without ever being pregnant
  251. if prolactinlvl > 100 and kid <= 0:
  252. if total_milkinduce_growth < 8:
  253. total_milkinduce_growth += 1 + pumpinggrowth
  254. nbsize += 1 + pumpinggrowth
  255. pumpinggrowth = 0
  256. else
  257. pumpinggrowth = 0
  258. end
  259. !! inducing after being pregnant
  260. elseif prolactinlvl > 100 and kid > 0:
  261. if total_milkinduce_growth < (total_preg_growth/2):
  262. total_milkinduce_growth += 1 + pumpinggrowth
  263. nbsize += 1 + pumpinggrowth
  264. pumpinggrowth = 0
  265. end
  266. end
  267. milkoverdemand = 0
  268. elseif milkoverdemand >= 0 and pregchem > 0 and tits < 11:
  269. if prolactinlvl > 100 and pregchem < 3000 and kid <= 0:
  270. if total_milkinduce_growth < 8:
  271. total_milkinduce_growth += 1 + pumpinggrowth
  272. nbsize += 1 + pumpinggrowth
  273. pumpinggrowth = 0
  274. else
  275. pumpinggrowth = 0
  276. end
  277. !! first breast growth with first pregnancy
  278. elseif prolactinlvl >= 100 and pregchem >= 2000 and pregchem < 3000 and kid <= 0:
  279. if rand(0,100) > 55:
  280. first_preg_growth += 1
  281. total_preg_growth += 1
  282. if total_preg_growth > total_milkinduce_growth: nbsize += 1
  283. end
  284. !! there is little chance your breast grow additional sizes if you have more kids.
  285. elseif prolactinlvl >= 100 and pregchem >= 2000 and pregchem < 3000 and kid > 0:
  286. if first_preg_growth > total_preg_growth:
  287. total_preg_growth += 1
  288. if total_preg_growth > total_milkinduce_growth: nbsize += 1
  289. else
  290. if rand(0,100) > 95:
  291. total_preg_growth += 1
  292. if total_preg_growth > total_milkinduce_growth: nbsize += 1
  293. end
  294. end
  295. !! inducing after being pregnant
  296. elseif prolactinlvl > 100 and pregchem =< 3000 and kid > 0:
  297. if total_milkinduce_growth < (total_preg_growth/2):
  298. total_milkinduce_growth += 1 + pumpinggrowth
  299. nbsize += 1 + pumpinggrowth
  300. pumpinggrowth = 0
  301. end
  302. end
  303. milkoverdemand = 0
  304. milkgrowday = daystart
  305. end
  306. milkgrowday = daystart
  307. else
  308. milkgrowday = daystart
  309. end
  310. elseif lactate > 0 and milkoverdemand => 0 and prolactinlvl >= 0:
  311. lactatemm = func('lact_lib','$calc_lactatemm')
  312. !! checking if induced or not and if girl went through pregnancy already.
  313. if lactateinduced > 0 and kid <= 0:
  314. if milkgrowday < daystart:
  315. !! first breast growth with first pregnancy
  316. if prolactinlvl >= 100 and pregchem >= 2000 and pregchem < 3000 and kid <= 0:
  317. if rand(0,100) > 55:
  318. first_preg_growth += 1
  319. total_preg_growth += 1
  320. if total_preg_growth > total_milkinduce_growth: nbsize += 1
  321. end
  322. end
  323. if lactatemm > lactatemv and salo > 11:
  324. lactatemv += lactaterate
  325. temp_var = lactaterate/100
  326. if temp_var <= 0: temp_var = 1
  327. pcs_energy -= temp_var
  328. if lactatemv > lactatemm: lactatemv = lactatemm
  329. end
  330. if milkoverdemand > 0 and breastpumped > 0:
  331. !! lactationrate growing, so you make more milk the more demand there was in the day before.
  332. temp_var = prolactinlvl + milkoverdemand/20
  333. if temp_var > 120:
  334. prolactinlvl += milkoverdemand/20
  335. !! uppon reaching a specific limit, the lactationrate will grow slower. Human body limits etc... you know
  336. if lactaterate > 3500:
  337. lactaterate += 5*(prolactinlvl/200)
  338. elseif lactaterate > 6000:
  339. lactaterate += prolactinlvl/200
  340. else
  341. lactaterate += 10*(prolactinlvl/200)
  342. end
  343. prolactinlvl = 100
  344. else
  345. prolactinlvl = 100
  346. end
  347. if pcs_knowsaboutlactation > 0:
  348. 'Your breasts tingle a bit more from milkproduction.'
  349. else
  350. 'Your breasts tingle a bit weirdly.'
  351. end
  352. elseif milkoverdemand = 0 and breastpumped > 0:
  353. prolactinlvl = 100
  354. elseif milkoverdemand = 0 and breastpumped = 0:
  355. if lactaterate > 0 and pregchem >=0:
  356. temp_var = lactaterate/4
  357. if temp_var < 1:temp_var = 0
  358. lactaterate = temp_var
  359. if pcs_knowsaboutlactation > 0:
  360. 'Your breasts tingle a little less from milkproduction.'
  361. else
  362. 'The tingling in your breasts eases down.'
  363. end
  364. elseif lactaterate = 0 and pregchem < 1000:
  365. lactate = 0
  366. lactateinduced = 0
  367. nbsize -= total_milkinduce_growth
  368. milkinduceday = 0
  369. if pcs_knowsaboutlactation > 0:
  370. 'You notice that you stopped lactating.'
  371. else
  372. 'Your breasts feel eased today.'
  373. end
  374. elseif lactaterate = 0 and pregchem >= 1000:
  375. lactaterate = 1
  376. else
  377. lactaterate = 0
  378. end
  379. end
  380. milkgrowday = daystart
  381. milkoverdemand = 0
  382. breastpumped = 0
  383. else
  384. milkgrowday = daystart
  385. if lactatemm >= lactatemv and salo > 11:
  386. if lactaterate > lactaterate_use:
  387. temp_lactaterate = lactaterate_use
  388. else
  389. temp_lactaterate = lactaterate
  390. end
  391. lactatemv += temp_lactaterate
  392. lactaterate_use = lactaterate
  393. if lactatemv > lactatemm:
  394. lactatemv = lactatemm
  395. lact_engorgement += 1
  396. if lact_engorgement > 2: lactatemess += 1
  397. end
  398. end
  399. end
  400. milkgrowday = daystart
  401. else
  402. if milkgrowday < daystart:
  403. if lactatemm > lactatemv and salo > 11:
  404. lactatemv += lactaterate
  405. temp_var = lactaterate/100
  406. if temp_var <= 0: temp_var = 1
  407. pcs_energy -= temp_var
  408. if lactatemv > lactatemm: lactatemv = lactatemm
  409. end
  410. if milkoverdemand > 0 and breastpumped > 0:
  411. !! lactationrate growing, so you make more milk the more demand there was in the day before.
  412. temp_var = prolactinlvl + milkoverdemand/10
  413. if temp_var > rand(150,200):
  414. prolactinlvl += milkoverdemand/20
  415. !! uppon reaching a specific limit, the lactationrate will grow slower. Human body limits etc... you know :D
  416. if lactaterate > 3500:
  417. lactaterate += 5*(prolactinlvl/200)
  418. elseif lactaterate > 6000:
  419. lactaterate += prolactinlvl/200
  420. else
  421. lactaterate += 10*(prolactinlvl/200)
  422. end
  423. prolactinlvl = 100
  424. else
  425. prolactinlvl = 100
  426. end
  427. if pcs_knowsaboutlactation > 0:
  428. 'Your breasts tingle a bit more from milkproduction.'
  429. else
  430. 'Your breasts tingle a bit weirdly.'
  431. end
  432. elseif milkoverdemand = 0 and breastpumped > 0:
  433. prolactinlvl = 100
  434. else
  435. if lactaterate > 0 and pregchem >= 0:
  436. temp_var = lactaterate/8
  437. if temp_var < 1:temp_var = 0
  438. lactaterate = temp_var
  439. milkoverdemand = 0
  440. if pcs_knowsaboutlactation > 0:
  441. 'Your breasts tingle a little less from milkproduction.'
  442. else
  443. 'The tingling in your breasts eases down.'
  444. end
  445. elseif lactaterate = 0 and pregchem < 1000:
  446. lactate = 0
  447. lactateinduced = 0
  448. if total_milkinduce_growth > 0: nbsize -= total_milkinduce_growth
  449. if total_preg_growth > 0:
  450. nbsize -= total_preg_growth
  451. nbsize += first_preg_growth/2
  452. end
  453. total_milkinduce_growth = 0
  454. milkoverdemand = 0
  455. if pcs_knowsaboutlactation > 0:
  456. 'You notice that you stopped lactating.'
  457. else
  458. 'Your breasts feel eased today.'
  459. end
  460. elseif lactaterate = 0 and pregchem >= 1000:
  461. lactaterate = 1
  462. else
  463. lactaterate = 0
  464. end
  465. end
  466. milkgrowday = daystart
  467. milkoverdemand = 0
  468. breastpumped = 0
  469. else
  470. milkgrowday = daystart
  471. if lactatemm >= lactatemv and salo > 11:
  472. if lactaterate > lactaterate_use:
  473. temp_lactaterate = lactaterate_use
  474. else
  475. temp_lactaterate = lactaterate
  476. end
  477. lactatemv += temp_lactaterate
  478. lactaterate_use = lactaterate
  479. if lactatemv > lactatemm:
  480. lactatemv = lactatemm
  481. lact_engorgement += 1
  482. if lact_engorgement > 2: lactatemess += 1
  483. end
  484. end
  485. end
  486. milkgrowday = daystart
  487. end
  488. milkgrowday = daystart
  489. end
  490. if cycle <= 0:
  491. gs 'femcyc', 'cyc0'
  492. elseif cycle = 1:
  493. gs 'femcyc', 'cyc1'
  494. elseif cycle = 2:
  495. gs 'femcyc', 'cyc2'
  496. elseif cycle = 3:
  497. gs 'femcyc', 'cyc3'
  498. elseif cycle = 4:
  499. gs 'femcyc', 'cyc4'
  500. elseif cycle = 5:
  501. gs 'femcyc', 'preg'
  502. end
  503. dynamic $d_cycreport_update
  504. end
  505. !{Menstruation to Follicular. Verifies that the cycle is in the bloody phase. It then checks to see if you are done bleeding. If you are, it starts the Follicular phase. There is a small chance your follcular phase will be anywhere from a day to 3 days short, done by the random release of a boosted EggRH. Otherwise, it just starts it clean.}
  506. if $ARGS[0] = 'cyc0':
  507. if mesec <= 0:
  508. lastmens = daystart
  509. cycle = 1
  510. mesec = 0
  511. if rand(0,1000) = 1000:
  512. EggRH = rand(20,80)
  513. else
  514. EggRH = 0
  515. end
  516. FocH += EggRH
  517. else
  518. mesec -= 1
  519. FocH += 1
  520. end
  521. end
  522. !{Follicular to Ovulation. It checks to see if you are on the Follicular phase. If you are, it checks to see if you are ready to ovulate. If you arent, it increases your ovulation ticker by 1, then gives a random chance to increase it again. Then it checks to see if you have ovarian problems, and if you do, decreases your ovulation ticker. When all that is done, it checks to see if you have any birth control chemical, and if its above a certain amount, it reduces your ovulation ticker.}
  523. if $ARGS[0] = 'cyc1':
  524. FertEgg = 0
  525. if FocH <= FocH_Max:
  526. if pillcon <= 7000: EggRH += 1
  527. if rand(0,9) = 0: EggRH += 1
  528. FocH += 1
  529. temprand = rand(0,9) - sterileov + tempovbonus
  530. if temprand < 0:
  531. EggRH -= 1
  532. elseif temprand > 9:
  533. EggRH += 1
  534. end
  535. else
  536. !! the setting of the max_time can be here although it can be changed in the future
  537. LutH_Max = rand(312,360) & !! 13-15 days including ovulation
  538. !{If you are ready to ovulate, it creates a chance to double ovulate. That chance is increased by your age. Then it does the same for a triple ovulation. Then it sets the ovulation tag, ovulation hour count, and begins a ticker for the life of the eggs.}
  539. Temprand = rand(0,20)
  540. Temprand += age/15
  541. Temprand -= pillcon/1000
  542. if temprand > 20:
  543. EggRH += 205
  544. Temprand = rand(0,20)
  545. Temprand += age/15
  546. if temprand > 20: EggRH += 410
  547. end
  548. FocH = 0
  549. lastovulation = daystart
  550. Ovulate = 24 + rand(0,20)
  551. cycle = 2
  552. ferteggage = 0
  553. end
  554. end
  555. !!{Fertilization.}
  556. if $ARGS[0] = 'cyc2':
  557. can_sz = arrsize('$cumarrnam')
  558. if Ovulate > 0 and can_sz > 0 and UnfertEgg > 0:
  559. KILLVAR 'cumtime'
  560. KILLVAR 'cumfthname'
  561. KILLVAR '$wombpotfath'
  562. $cumfthname[0] = 'unknown'
  563. cumtime[0] = 0
  564. can_idx = 0
  565. cum_total = 0
  566. !!{Compute array of unique fathers known to PC and another two arrays of unique total fathers and their individual sperm totals from all entries in cumarrcpt for that father. Also tally all cum present.}
  567. :FatherCumAnalyze
  568. !! If the current DNA is new (no occurence in the womb array), it is added to the end of $wombDNA array, and added the amount of cum to the end of cumamount array.
  569. !! If exists, just increase the amount of cum in the womb.
  570. !! $wombDNA: sperm in womb potent enough to cause pregnancy
  571. !! wombAmount: how potent is the sperm of a guy
  572. !! $wombName: the name of the NPC
  573. y = arrsize('$wombDNA')
  574. if arrpos('$wombDNA',$npc_dna[$cumarrnam[can_idx]]) = -1:
  575. !! New guy, create place for him at the end of the array, storing his DNA, sperm amount and name
  576. $wombDNA[y] = $npc_dna[$cumarrnam[can_idx]]
  577. wombAmount[y] = cumarrcpt[can_idx]
  578. $wombName[y] = $cumarrnam[can_idx]
  579. else
  580. !! This DNA is in the womb, but does it belong to the same guy?
  581. x = 0
  582. z = 0
  583. :LocalizeLoop
  584. if $wombDNA[x] = $npc_dna[$cumarrnam[can_idx]] and $wombName[x] = $cumarrnam[can_idx]: wombAmount[x] += cumarrcpt[can_idx] & z = 1
  585. if z = 0 and x < (y - 1):x += 1 & jump 'LocalizeLoop'
  586. killvar 'x'
  587. if z = 0:
  588. !! Since the DNA and the stored name does not match at the same time, it means this is a twin situation where the twin is not in array, so put him in
  589. $wombDNA[y] = $npc_dna[$cumarrnam[can_idx]]
  590. $wombName[y] = $cumarrnam[can_idx]
  591. wombAmount[y] = cumarrcpt[can_idx]
  592. end
  593. killvar 'z'
  594. end
  595. killvar 'y'
  596. if cumarrkno[can_idx] = 1 and arrpos('$wombpotfath', $cumarrnam[can_idx]) < 0:$wombpotfath[arrsize('$wombpotfath')] = $cumarrnam[can_idx]
  597. !! If the guy is a known/possible element (PC know about the sex, it was actual sex, condom/pill was not used or condom was broken, etc.), he can be considered as father.
  598. if instr('14570',str(cumarrcon[can_idx])) > 0 and cumarrdel[can_idx] = 0 and cumarrkno[can_idx] >= 0:
  599. !! If guy is recorded already, increase his cumtime, else record him for the first time.
  600. if arrpos('$cumfthname', $cumarrnam[can_idx]) = -1:
  601. $cumfthname[arrsize('$cumfthname')] = $cumarrnam[can_idx]
  602. cumtime[arrsize('$cumfthname')] = 1
  603. else
  604. cumtime[arrpos('$cumfthname', $cumarrnam[can_idx])] += 1
  605. end
  606. end
  607. cum_total += cumarrcpt[can_idx]
  608. if can_idx < can_sz:can_idx += 1 & jump 'FatherCumAnalyze'
  609. !! setting the default believed father if there is no difficult choice or there is no choice
  610. if arrsize('$cumfthname') = 2 and cumtime[0] = 0:
  611. $wombpotfath[0] = $cumfthname[1]
  612. elseif arrsize('$cumfthname') = 1:
  613. $wombpotfath[0] = $cumfthname[0]
  614. end
  615. !!{Create lotto of potential fathers based on each potential fathers sperm as a percentage of the total. The higher percentage of sperm from a given father, the more lotto entries he will have.}
  616. KILLVAR '$cumfathlotto'
  617. cfw_idx = 0
  618. cfw_sz = arrsize('wombAmount')
  619. :FathLottoLoop
  620. if cfw_idx < cfw_sz:
  621. cfl_ct = (wombAmount[cfw_idx] * 100) / cum_total
  622. if cfl_ct < 1: cfl_ct = 1
  623. cfl_idx = arrsize('$cumfathlotto')
  624. :FathLottoAdd
  625. if cfl_ct > 0:
  626. $cumfathlotto[cfl_idx] = $wombName[cfw_idx]
  627. $cumfatherDNA[cfl_idx] = $wombDNA[cfw_idx]
  628. cfl_idx += 1
  629. cfl_ct -= 1
  630. jump 'FathLottoAdd'
  631. end
  632. cfw_idx += 1
  633. jump 'FathLottoLoop'
  634. end
  635. killvar '$wombDNA'
  636. killvar '$wombName'
  637. killvar 'wombAmount'
  638. cfl_sz = arrsize('$cumfathlotto')
  639. egg_idx = 0
  640. egg_sz = UnfertEgg
  641. if cheat_NoPregnancy = 1:egg_idx = egg_sz
  642. :FertLoop
  643. if egg_idx < egg_sz:
  644. !!{fert_thresh is the chance this specific egg is fertilized. Its modified by being on the pill, being sterilized, the brood curse, and so on. If it computes to less than the cum total calculated above, the egg is fertilized by a father randomly drawn from the lotto array.}
  645. fert_thresh = rand(1,250000)
  646. if pillcon < 0: pillcon = 0
  647. !!fert_thresh += pillcon
  648. if steriletu = 1: fert_thresh += fert_thresh*30
  649. if fert_thresh > 0 and broodcurse > 0: fert_thresh = fert_thresh / 2
  650. if fert_thresh <= cum_total:
  651. lotto_idx = rand(0, cfl_sz-1)
  652. UnfertEgg -= 1
  653. FertEgg += 1
  654. nextbaby = arrsize('$ChildFath')
  655. polkid[nextbaby] = rand(0, 1)
  656. $kidname[nextbaby] = 'unborn'
  657. kidage[nextbaby] = 0
  658. daykid[nextbaby] = 0
  659. monthkid[nextbaby] = 0
  660. yearkid[nextbaby] = 0
  661. Babyptype[nextbaby] = 0
  662. $kid_dna[nextbaby] = func('DNA', 'generate', $pcs_dna, $npc_dna[$cumfathlotto[lotto_idx]])
  663. $ChildFath[nextbaby] = $cumfathlotto[lotto_idx]
  664. $ChildFathDNA[nextbaby] = $cumfatherDNA[lotto_idx]
  665. if arrsize('$wombpotfath') = 1:
  666. $ChildThFath[nextbaby] = $wombpotfath[0]
  667. else
  668. $ChildThFath[nextbaby] = 'unknown'
  669. end
  670. hairkid[nextbaby] = rand(0, 3)
  671. eyeskid[nextbaby] = rand(0, 3)
  672. ChildConType[nextbaby] = cumarrcon[nextbaby]
  673. if fertegg > 1:
  674. $childtype[nextbaby] = 'paternal twin'
  675. $childtype[nextbaby-1] = 'paternal twin'
  676. else
  677. $childtype[nextbaby] = ''
  678. end
  679. end
  680. egg_idx += 1
  681. jump 'FertLoop'
  682. end
  683. killvar 'temp'
  684. tempovbonus = 0
  685. end
  686. !!{Ovulation to Luteal. It checks to see if you are on the ovulation cycle. If you are, it checks you for your pillcon. If it is high enough, no egg is released. Under high concentrations of pill chemical, ovulation ticks away quicker. Otherwise, it checks to see if your ovulation hormone is high enough, and if it is it gives you an egg and drops a good chunk down on your ovulation hormone. if its still high, it drops another egg. Then it checks your ovulation hours. If its down to 0, it starts the Luteal phase. Otherwise, it adds an hour to the egg age and reduces the ovulation window by an hour.}
  687. if pillcon > 26000 and rand(0,400) ! 0: EggRH = 0
  688. :OviLoop
  689. If EggRH > ((UnfertEgg + FertEgg) * 150):
  690. UnfertEgg += 1
  691. EggRH -= (200 * UnfertEgg)
  692. jump 'OviLoop'
  693. end
  694. If ovulate <= 0:
  695. cycle = 3
  696. UnfertEgg = 0
  697. end
  698. if fertegg = 1 and ferteggage < 330:
  699. if rand(0,(2000 - age*20)) = 0:
  700. fertegg += 1
  701. nextbaby = arrsize('$ChildFath')
  702. polkid[nextbaby] = polkid[nextbaby-1]
  703. $kidname[nextbaby] = 'unborn'
  704. kidage[nextbaby] = 0
  705. daykid[nextbaby] = 0
  706. monthkid[nextbaby] = 0
  707. yearkid[nextbaby] = 0
  708. Babyptype[nextbaby] = Babyptype[nextbaby-1]
  709. $ChildFath[nextbaby] = $ChildFath[nextbaby-1]
  710. $ChildFathDNA[nextbaby] = $ChildFathDNA[nextbaby-1]
  711. $kid_dna[nextbaby] = $kid_dna[nextbaby-1]
  712. hairkid[nextbaby] = hairkid[nextbaby-1]
  713. eyeskid[nextbaby] = eyeskid[nextbaby-1]
  714. cumarrcon[nextbaby] = cumarrcon[nextbaby-1]
  715. $childtype[nextbaby] = 'identical twin'
  716. $childtype[nextbaby-1] = 'identical twin'
  717. end
  718. end
  719. ferteggage += 1
  720. Ovulate -= 1
  721. LutH += 1
  722. end
  723. !{Luteal to Menstration or Pregnancy. First it verifies this is the Luteal phase. Then it adds an hour to the age of the eggs. Then if there is a fertized egg, it rolls a random chance. if the egg age is low, it checks for risk of an entopic pregnancy. This is increased with older age and if you have a tubal ligation sterilization.}
  724. !{If there is a ectopic pregnancy, it sets the first unborn baby in the array to this. Ectopic pregnancies occur when the fertilized egg implants "too early" after fertlization (and therefore in the fallopian tube). The risk is higher with age, but this is also a common complication with certain forms of birth control, notably tubal ligation. Each egg could be different. It then removes the fertilized egg, adds an embryo, Then it adds some pregnancy hormone if you arent already pregnant, and calls you officially pregnant.}
  725. !{Otherwise, it adds your womb sterility factor to the imp_rand. Then it checks if your imp_rand crosses a threshold for implantation. Younger women implant easier. It then sets the next baby to the next unimplanted baby in your kid array. It registers the kid as a normal pregnancy, removes a fertilized egg and adds an embryo. Then it adds some pregnancy hormone if you arent already pregnant, and calls you officially pregnant.}
  726. if $ARGS[0] = 'cyc3':
  727. if fertegg = 1 and ferteggage < 330:
  728. if rand(0,(2000 - age*20)) = 0:
  729. fertegg += 1
  730. nextbaby = arrsize('$ChildFath')
  731. polkid[nextbaby] = polkid[nextbaby-1]
  732. $kidname[nextbaby] = 'unborn'
  733. kidage[nextbaby] = 0
  734. daykid[nextbaby] = 0
  735. monthkid[nextbaby] = 0
  736. yearkid[nextbaby] = 0
  737. Babyptype[nextbaby] = Babyptype[nextbaby-1]
  738. $ChildFath[nextbaby] = $ChildFath[nextbaby-1]
  739. $ChildFathDNA[nextbaby] = $ChildFathDNA[nextbaby-1]
  740. $kid_dna[nextbaby] = $kid_dna[nextbaby-1]
  741. hairkid[nextbaby] = hairkid[nextbaby-1]
  742. eyeskid[nextbaby] = eyeskid[nextbaby-1]
  743. cumarrcon[nextbaby] = cumarrcon[nextbaby-1]
  744. $childtype[nextbaby] = 'identical twin'
  745. $childtype[nextbaby-1] = 'identical twin'
  746. end
  747. end
  748. ferteggage += 1
  749. implant_idx = 0
  750. implant_sz = arrsize('Babyptype')
  751. :implant_loop
  752. if implant_idx < implant_sz:
  753. if Babyptype[implant_idx] = 0:
  754. imp_rand = rand(0,120000)
  755. if ferteggage < 120 and broodcurse <= 0:
  756. imp_rand += 170
  757. imp_rand -= age * 10
  758. if steriletu = 1: imp_rand -= 200
  759. if imp_rand <= 0:
  760. Babyptype[implant_idx] = 2
  761. FertEgg -= 1
  762. babyembryo += 1
  763. PregChem = rand(10,30)
  764. if preg = 0: preg = 1
  765. implant_day = daystart
  766. implant_hour = hour
  767. end
  768. else
  769. imp_rand += sterilewb
  770. imp_rand -= tempwbbonus
  771. if broodcurse > 0 and ferteggage >= 120: imp_rand = 0
  772. if imp_rand <= (1200 - (age * 7)):
  773. Babyptype[implant_idx] = 1
  774. FertEgg -= 1
  775. babyembryo += 1
  776. PregChem = rand(10,30)
  777. if preg = 0: preg = 1
  778. implant_day = daystart
  779. implant_hour = hour
  780. end
  781. tempwbbonus = 0
  782. end
  783. end
  784. implant_idx += 1
  785. jump 'implant_loop'
  786. end
  787. !!{Then, it progresses the Luteal phase. It checks to see if you are pregnant. If you are, it ends the cycle and sets preg if your Luteal hormone is at the max as well as cleans out any unimplanted eggs. Otherwise, it just progresses pregnancy chemical and Luteal Hormone. If you arent pregnant, it checks your Luteal hormone. If its at the maximum, it adds 3-5 days of bleeding, clears out your unimplanted eggs, and clears out your Luteal hormone, or ends your cycle if you are past your menopausal age. Otherwise it will just progress the Luteal hormone.}
  788. if LutH > LutH_Max:
  789. rej_idx = 0
  790. rej_sz = arrsize('Babyptype')
  791. :lutcycloop
  792. if rej_idx < rej_sz:
  793. if Babyptype[rej_idx] = 0:
  794. KILLVAR 'polkid',tempbabyi
  795. KILLVAR '$kidname',tempbabyi
  796. KILLVAR 'kidage',tempbabyi
  797. KILLVAR 'daykid',tempbabyi
  798. KILLVAR 'monthkid',tempbabyi
  799. KILLVAR 'yearkid',tempbabyi
  800. KILLVAR 'Babyptype',tempbabyi
  801. KILLVAR '$ChildFath',tempbabyi
  802. KILLVAR '$ChildThFath',tempbabyi
  803. KILLVAR 'hairkid',tempbabyi
  804. KILLVAR 'eyeskid',tempbabyi
  805. KILLVAR 'cumarrcon',tempbabyi
  806. FertEgg -= 1
  807. end
  808. rej_idx += 1
  809. jump 'lutcycloop'
  810. end
  811. LutH = 0
  812. if preg = 1:
  813. cycle = 5
  814. elseif menoage <= age:
  815. KILLVAR '$wombpotfath'
  816. killvar '$cumfthname'
  817. killvar '$cumfthusedname'
  818. killvar 'cumtime'
  819. cycle = 6
  820. else
  821. KILLVAR '$wombpotfath'
  822. killvar '$cumfthname'
  823. killvar '$cumfthusedname'
  824. killvar 'cumtime'
  825. !! the setting of the max_time can be here although it can be changed in the future
  826. FocH_Max = rand(312,360) & !! 13-15 days including menstruation
  827. temprand = rand(0,10)
  828. if pillcon >= 38000 or rand(1,24) = 1:
  829. EggRH = 0
  830. cycle = 1
  831. mesec = 0
  832. else
  833. cycle = 0
  834. killvar 'abortionbirthdate'
  835. if cyccustom = 1: daylastperiod = daystart
  836. firstmens = daystart
  837. temprand = rand(0,10)
  838. if temprand = 0 and pillcon < 10000:
  839. mesec = rand(104,136) & !! 120
  840. elseif temprand < 9 and pillcon < 15000:
  841. mesec = rand(76,104) & !! 96
  842. elseif pillcon < 20000:
  843. mesec = rand(52,76) & !! 72
  844. else
  845. mesec = rand(44,52) & !! 48
  846. end
  847. end
  848. end
  849. else
  850. if preg = 1:PregChem += 1+pregspeedcheat
  851. if rand(0,100) < 100: LutH += 1
  852. end
  853. end
  854. !{Recovery to Follicular. It checks to see if you are in the recovery phase after a pregnancy. If you are, it checks to see if you still have recovery hormone. If you dont, it sets you into the follicular phase with a chance of a boosted Egg releasing hormone. Otherwise it decreases your recovery hormone with a chance to decrease it twice.}
  855. if $ARGS[0] = 'cyc4':
  856. if RecovH <= 0:
  857. cycle = 1
  858. if cyccustom = 1:
  859. knowpregloss = 0
  860. knowpregrecover = 0
  861. end
  862. if rand(0,1000) = 1000:
  863. EggRH = rand(20,80)
  864. else
  865. EggRH = 0
  866. end
  867. FocH = EggRH
  868. else
  869. RecovH -= 1
  870. if rand(0,10) = 0: RecovH -= 1
  871. end
  872. end
  873. !{Pregnancy Progression. It checks to see if you are in the pregnancy phase of a cycle. If you are, it progresses your pregnancy chemical. Then it gives a fluxuation of possible due dates. If you cross the due date threshold, you enter labor, marked by preg = 2. Other milestones will also be placed in here, including body deformations. Right now this is mostly an empty placeholder.}
  874. if $ARGS[0] = 'preg':
  875. if fertegg = 1 and ferteggage < 330:
  876. if rand(0,(2000 - age*20)) = 0:
  877. babyembryo += 1
  878. PregChem += rand(10,30)
  879. nextbaby = arrsize('$ChildFath')
  880. polkid[nextbaby] = polkid[nextbaby-1]
  881. $kidname[nextbaby] = 'unborn'
  882. kidage[nextbaby] = 0
  883. daykid[nextbaby] = 0
  884. monthkid[nextbaby] = 0
  885. yearkid[nextbaby] = 0
  886. Babyptype[nextbaby] = Babyptype[nextbaby-1]
  887. $ChildFath[nextbaby] = $ChildFath[nextbaby-1]
  888. hairkid[nextbaby] = hairkid[nextbaby-1]
  889. eyeskid[nextbaby] = eyeskid[nextbaby-1]
  890. cumarrcon[nextbaby] = cumarrcon[nextbaby-1]
  891. $childtype[nextbaby] = 'identical twin'
  892. $childtype[nextbaby-1] = 'identical twin'
  893. end
  894. end
  895. PregChem += (1+pregspeedcheat)
  896. temprand = rand(-400,800)
  897. temprand -= (babyembryo-1)*588
  898. if PregChem > 6573 + temprand and preg ! 2:
  899. 'A sharp pain pierces your abdomen, and you feel something flow down your legs. Your water has broken!'
  900. $cycreport_txt = 'In labour'
  901. arrmodtmp =arrsize('$ChildFath')
  902. arrmodtmp -= (babyembryo+1)
  903. :babyfinalpreploop
  904. if arrmodtmp < arrsize('$ChildFath') and daykid[arrmodtmp] = 0:
  905. daykid[arrmodtmp] = 42
  906. $ChildThFath[arrmodtmp] = $wombthfath
  907. arrmodtmp += 1
  908. jump 'babyfinalpreploop'
  909. end
  910. KILLVAR '$wombpotfath'
  911. KILLVAR '$wombthfath'
  912. preg = 2
  913. pregminut = totminut + 1440
  914. if babyembryo > 1:
  915. 'Your babies are coming...'
  916. else
  917. 'Your baby is coming...'
  918. end
  919. if PregChem < 3885:
  920. 'Way too early!'
  921. elseif PregChem < 5229:
  922. 'Very early!'
  923. elseif PregChem < 6069:
  924. 'Early.'
  925. elseif PregChem > 6959:
  926. 'Late.'
  927. elseif PregChem > 7245:
  928. 'Very Late!'
  929. end
  930. 'You need to get to a clinic.'
  931. end
  932. if PregChem > 3887:
  933. if lactate <= 0:
  934. 'You begin lactating'
  935. lactate = 1
  936. lactatemv = 0
  937. lactatemm = func('lact_lib','$calc_lactatemm')
  938. lacaterate = 10
  939. prolactinlvl = 150
  940. else
  941. if lactate < 1: lactate = 1
  942. end
  943. end
  944. if PregChem > 1000:
  945. if prolactinlvl < 100 and lactate <= 0:
  946. if rand(0,100) > 50:
  947. prolactinlvl +=1
  948. end
  949. end
  950. end
  951. if PregChem > 2203:
  952. if pregchem > 2853 or kid > 0:
  953. if rand(0,7) = 0: dynamic $d_pregmovement
  954. else
  955. if rand(0,500) = 0: dynamic $d_pregmovement
  956. end
  957. end
  958. end
  959. --- femcyc ---------------------------------