femcyc 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580
  1. # femcyc
  2. if $ARGS[0] = '':
  3. !{Hourly reduction in semen potency}
  4. !{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 200 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.}
  5. if rcntorgzm = 1:
  6. if rcntorgzmtmp = 1: rcntorgzm = 0 & rcntorgzmtmp = 0
  7. if rcntorgzmtmp = 0: rcntorgzmtmp = 1
  8. end
  9. ctemp = 0
  10. ctemp[1] = 0
  11. ctemp[2] = 0
  12. cumarr_idx = 0
  13. :cumarrloop
  14. if cumarr_idx < arrsize('$cumarrnam'):
  15. if cumarrcpt[cumarr_idx] > 0 and cumarrage[cumarr_idx] < 64:
  16. cumpdrop = cumarrppt[cumarr_idx] * (cumarrage[cumarr_idx] / 10)
  17. if cumpdrop < 10: cumpdrop = 10
  18. cumpdrop += cumpdrop * rand(0, 2)
  19. cumarrcpt[cumarr_idx] -= cumpdrop
  20. cumarrage[cumarr_idx] += 1
  21. else
  22. KILLVAR 'cumarrcpt',cumarr_idx
  23. KILLVAR 'cumarrppt',cumarr_idx
  24. KILLVAR '$cumarrnam',cumarr_idx
  25. KILLVAR 'cumarrage',cumarr_idx
  26. KILLVAR 'cumarrdel',cumarr_idx
  27. KILLVAR 'cumarrkno',cumarr_idx
  28. KILLVAR 'cumarrcon',cumarrte_idx
  29. end
  30. cumarr_idx += 1
  31. jump 'cumarrloop'
  32. end
  33. !!Succubus absorption of sperm in womb
  34. if succubusflag = 1:
  35. if arrsize('cumarrppt') > 0:
  36. succycletmp = 0
  37. :sucvagabs
  38. if cumarrdel[succycletmp] = 0:
  39. if cumarrcpt[succycletmp] > 10000:
  40. sexnutrition += 30 * succublvl
  41. succubxp += 3
  42. elseif cumarrcpt[succycletmp] < 3000 and cumarrcpt[succycletmp] > 1000:
  43. sexnutrition += 5 * succublvl
  44. succubxp += 2
  45. elseif cumarrcpt[succycletmp] =< 1000:
  46. sexnutrition += succublvl
  47. else
  48. sexnutrition += 25 * succublvl
  49. succubxp += 3
  50. end
  51. KILLVAR 'cumarrcpt', succycletmp
  52. KILLVAR 'cumarrppt', succycletmp
  53. KILLVAR '$cumarrnam', succycletmp
  54. KILLVAR 'cumarrage', succycletmp
  55. KILLVAR 'cumarrdel', succycletmp
  56. KILLVAR 'cumarrkno', succycletmp
  57. KILLVAR 'cumarrcon', succycletmp
  58. sucabscum = 1
  59. end
  60. succycletmp += 1
  61. if succycletmp < arrsize('cumarrppt'): jump 'sucvagabs'
  62. end
  63. killvar 'succycletmp'
  64. end
  65. cumarr_idx = 0
  66. if arrsize('sparrvol') > 0:
  67. :cumspaloop
  68. !!Succubus absorption for internal locations other than womb
  69. if succubusflag = 1:
  70. if sparrloc[cumarr_idx] = 3 or sparrloc[cumarr_idx] = 12:
  71. sexnutrition += 25*succublvl
  72. succubxp += 3
  73. sucabscum = 1
  74. if sparrvol[cumarr_idx] > 0: sparrvol[cumarr_idx] = 0
  75. end
  76. end
  77. !!{if sparrloc[cumarr_idx] = 0 or sparrloc[cumarr_idx] = 3 or sparrloc[cumarr_idx] = 12:
  78. sexnutrition += 30*succublvl
  79. sparrvol[cumarr_idx] -= 30*succublvl
  80. if sparrvol[cumarr_idx] < 0: sexnutrition += sparrvol[cumarr_idx] & sparrvol[cumarr_idx] = 0
  81. end}
  82. if sparrvol[cumarr_idx] > 0:
  83. sparrtmpv = arrsize('$cumarrnam')
  84. if sparrloc[cumarr_idx] = 17:
  85. sparrtmpv = arrpos('$cumarrnam',$sparrnam[cumarr_idx])
  86. if sparrage[cumarr_idx] < 4:
  87. cumarrcpt[sparrtmpv] += sparrppt[cumarr_idx]/5
  88. elseif sparrage[cumarr_idx] < 10:
  89. cumarrcpt[sparrtmpv] += sparrppt[cumarr_idx]/30
  90. end
  91. elseif sparrloc[cumarr_idx] = 0:
  92. sparrtmpv = arrpos('$cumarrnam',$sparrnam[cumarr_idx])
  93. if sparrage[cumarr_idx] < 4:
  94. cumarrcpt[sparrtmpv] += sparrppt[cumarr_idx]/40
  95. elseif sparrage[cumarr_idx] < 10:
  96. cumarrcpt[sparrtmpv] += sparrppt[cumarr_idx]/60
  97. end
  98. elseif sparrslc[cumarr_idx] = 1 and sparrage < 5:
  99. if sparrloc[cumarr_idx] = 1:
  100. cumarrcpt[sparrtmpv] = sparrppt[cumarr_idx]/1000*sparrage[cumarr_idx]/sparrvol[cumarr_idx]
  101. cumarrppt[sparrtmpv] = sparrppt[cumarr_idx]
  102. $cumarrnam[sparrtmpv] = $sparrnam[cumarr_idx]
  103. cumarrage[sparrtmpv] = sparrage[cumarr_idx]
  104. cumarrdel[sparrtmpv] = 1
  105. cumarrkno[sparrtmpv] = 0
  106. cumarrcon[sparrtmpv] = 0
  107. end
  108. elseif sparrslc[cumarr_idx] = 3 and sparrage < 5:
  109. if sparrloc[cumarr_idx] = 2:
  110. cumarrcpt[sparrtmpv] = sparrppt[cumarr_idx]/1000*sparrage[cumarr_idx]/sparrvol[cumarr_idx]
  111. cumarrppt[sparrtmpv] = sparrppt[cumarr_idx]
  112. $cumarrnam[sparrtmpv] = $sparrnam[cumarr_idx]
  113. cumarrage[sparrtmpv] = sparrage[cumarr_idx]
  114. cumarrdel[sparrtmpv] = 3
  115. cumarrkno[sparrtmpv] = 0
  116. cumarrcon[sparrtmpv] = 0
  117. elseif sparrloc[cumarr_idx] = 4:
  118. cumarrcpt[sparrtmpv] = sparrppt[cumarr_idx]/1000*sparrage[cumarr_idx]/sparrvol[cumarr_idx]
  119. cumarrppt[sparrtmpv] = sparrppt[cumarr_idx]
  120. $cumarrnam[sparrtmpv] = $sparrnam[cumarr_idx]
  121. cumarrage[sparrtmpv] = sparrage[cumarr_idx]
  122. cumarrdel[sparrtmpv] = 2
  123. cumarrkno[sparrtmpv] = 0
  124. cumarrcon[sparrtmpv] = 0
  125. end
  126. elseif sparrslc[cumarr_idx] = 5 and sparrage < 5:
  127. if sparrloc[cumarr_idx] = 3:
  128. cumarrcpt[sparrtmpv] = sparrppt[cumarr_idx]/1000*sparrage[cumarr_idx]/sparrvol[cumarr_idx]
  129. cumarrppt[sparrtmpv] = sparrppt[cumarr_idx]
  130. $cumarrnam[sparrtmpv] = $sparrnam[cumarr_idx]
  131. cumarrage[sparrtmpv] = sparrage[cumarr_idx]
  132. cumarrdel[sparrtmpv] = 2
  133. cumarrkno[sparrtmpv] = 0
  134. cumarrcon[sparrtmpv] = 0
  135. elseif sparrloc[cumarr_idx] = 5:
  136. cumarrcpt[sparrtmpv] = sparrppt[cumarr_idx]/1000*sparrage[cumarr_idx]/sparrvol[cumarr_idx]
  137. cumarrppt[sparrtmpv] = sparrppt[cumarr_idx]
  138. $cumarrnam[sparrtmpv] = $sparrnam[cumarr_idx]
  139. cumarrage[sparrtmpv] = sparrage[cumarr_idx]
  140. cumarrdel[sparrtmpv] = 3
  141. cumarrkno[sparrtmpv] = 0
  142. cumarrcon[sparrtmpv] = 0
  143. elseif sparrloc[cumarr_idx] = 6:
  144. cumarrcpt[sparrtmpv] = sparrppt[cumarr_idx]/1000*sparrage[cumarr_idx]/sparrvol[cumarr_idx]
  145. cumarrppt[sparrtmpv] = sparrppt[cumarr_idx]
  146. $cumarrnam[sparrtmpv] = $sparrnam[cumarr_idx]
  147. cumarrage[sparrtmpv] = sparrage[cumarr_idx]
  148. cumarrdel[sparrtmpv] = 3
  149. cumarrkno[sparrtmpv] = 0
  150. cumarrcon[sparrtmpv] = 0
  151. end
  152. end
  153. if sparrloc[cumarr_idx] = 0 or sparrloc[cumarr_idx] = 3 or sparrloc[cumarr_idx] = 12:sparrvol[cumarr_idx] -= sparrage[cumarr_idx]/2
  154. if sparrloc[cumarr_idx] = 0 and cumsumvag > 60: sparrslc = 1
  155. if sparrloc[cumarr_idx] = 3 and cumsumass > 60: sparrslc = 1
  156. if sparrloc[cumarr_idx] = 17 and sparrage[cumarr_idx] > 48:
  157. cumcondslip = 1
  158. health -= 3
  159. 'You feel nauseous.'
  160. if rand(0,5) < 5: health -= 2
  161. else
  162. cumcondslip = 0
  163. end
  164. if sparrloc[cumarr_idx] ! 0 and sparrloc[cumarr_idx] ! 3 and sparrloc[cumarr_idx] ! 12 and isprok = 0 and sparrage < 5: sparrslc[cumarr_idx] += 1
  165. sparrage[cumarr_idx] += 1
  166. cumarr_idx += 1
  167. ctemp += sparrvol[cumarr_idx]
  168. if sparrloc[cumarr_idx] = 0: ctemp[1] += sparrvol[cumarr_idx]
  169. if sparrloc[cumarr_idx] = 3: ctemp[2] += sparrvol[cumarr_idx]
  170. else
  171. KILLVAR 'spafinloc',cumarr_idx
  172. KILLVAR 'sparrage',cumarr_idx
  173. KILLVAR 'sparrloc',cumarr_idx
  174. KILLVAR '$sparrnam',cumarr_idx
  175. KILLVAR 'sparrppt',cumarr_idx
  176. KILLVAR 'sparridt',cumarr_idx
  177. KILLVAR 'sparrvol',cumarr_idx
  178. KILLVAR 'sparrslc',cumarr_idx
  179. end
  180. if cumarr_idx < arrsize('sparrvol'): jump 'cumspaloop'
  181. cumsumbod = ctemp
  182. cumsumvag = ctemp[1]
  183. cumsumass = ctemp[2]
  184. end
  185. if lactate > 0:
  186. if lactatemv <= 0:
  187. lactatemv = 0
  188. if lactatemm < titK*4 and milkgrowday < daystart:
  189. lactatemm += 1
  190. lactatemv += 1
  191. bgrowday = daystart
  192. elseif milkgrowday < daystart:
  193. if rand(0,30) = 0: titK += 1
  194. milkgrowday = daystart
  195. lactatemv += 1
  196. end
  197. elseif lactatemv < lactatemm:
  198. lactatemv += lactatemm/20
  199. elseif lactatemv = lactatemm and milkgrowday < daystart:
  200. milkgrowday = daystart
  201. lactatemm -= 1
  202. lactatemv -= 1
  203. if rand(0,90) = 0: titK -= 1
  204. elseif lactatemv > lactatemm:
  205. lactatemv = lactatemm
  206. end
  207. end
  208. if cycle <= 0:
  209. gs 'femcyc', 'cyc0'
  210. elseif cycle = 1:
  211. gs 'femcyc', 'cyc1'
  212. elseif cycle = 2:
  213. gs 'femcyc', 'cyc2'
  214. elseif cycle = 3:
  215. gs 'femcyc', 'cyc3'
  216. elseif cycle = 4:
  217. gs 'femcyc', 'cyc4'
  218. elseif cycle = 5:
  219. gs 'femcyc', 'preg'
  220. end
  221. dynamic $d_cycreport_update
  222. end
  223. !{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.}
  224. if $ARGS[0] = 'cyc0':
  225. if mesec <= 0:
  226. cycle = 1
  227. mesec = 0
  228. if rand(0,1000) = 1000:
  229. EggRH = rand(20,80)
  230. else
  231. EggRH = 0
  232. end
  233. FocH = EggRH
  234. else
  235. mesec -= 1
  236. end
  237. end
  238. !{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.}
  239. if $ARGS[0] = 'cyc1':
  240. if FocH <= 150:
  241. EggRH +=1
  242. FocH +=1
  243. if rand(0,1) = 1: EggRH += 1
  244. temprand = rand(0,1000)
  245. temprand -= sterileov
  246. temprand += tempovbonus
  247. if temprand <= 0: EggRH -= 1
  248. if pillcon > 7000: EggRH -= 1
  249. else
  250. !{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.}
  251. Temprand = rand(0,20)
  252. Temprand += age/15
  253. Temprand -= pillcon/1000
  254. if temprand > 20:
  255. EggRH += 205
  256. Temprand = rand(0,20)
  257. Temprand += age/15
  258. if temprand > 20: EggRH += 410
  259. end
  260. FocH = 0
  261. Ovulate = 24 + rand(0,20)
  262. cycle = 2
  263. ferteggage = 0
  264. end
  265. end
  266. !!{Fertilization.}
  267. if $ARGS[0] = 'cyc2':
  268. can_sz = arrsize('$cumarrnam')
  269. if Ovulate > 0 and can_sz > 0 and UnfertEgg > 0:
  270. KILLVAR 'cumfathwght'
  271. KILLVAR '$cumfathnames'
  272. KILLVAR 'cumtime'
  273. can_idx = 0
  274. cum_total = 0
  275. !!{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.}
  276. :FatherCumAnalyze
  277. if can_idx < can_sz:
  278. if cumarrkno[can_idx] = 1:
  279. if Enable_Android = 0:
  280. wpf_in = arrpos(0, '$wombpotfath', $cumarrnam[can_idx])
  281. else
  282. wpf_in = arrpos('$wombpotfath', $cumarrnam[can_idx])
  283. end
  284. if wpf_in < 0:
  285. wpf_sz = arrsize('$wombpotfath')
  286. $wombpotfath[wpf_sz] = $cumarrnam[can_idx]
  287. cumtime[wpf_sz] += 1
  288. end
  289. end
  290. if cumarrkno[can_idx] >= 0:cum_totaltime += 1
  291. if Enable_Android = 0:
  292. cfn_in = arrpos(0, '$cumfathnames', $cumarrnam[can_idx])
  293. else
  294. cfn_in = arrpos('$cumfathnames', $cumarrnam[can_idx])
  295. end
  296. cfw_sz = arrsize('cumfathwght')
  297. if cfn_in < 0:
  298. cumfathwght[cfw_sz] = cumarrcpt[can_idx]
  299. $cumfathnames[cfw_sz] = $cumarrnam[can_idx]
  300. else
  301. cumfathwght[cfw_in] += cumarrcpt[can_idx]
  302. end
  303. cum_total += cumarrcpt[can_idx]
  304. can_idx += 1
  305. jump 'FatherCumAnalyze'
  306. end
  307. wpf_sz = arrsize('$wombpotfath')
  308. if Enable_Android = 0:
  309. if wpf_sz ! 1 and arrpos(0, '$wombpotfath', 'Unknown') < 0: $wombpotfath[wpf_sz] = 'Unknown'
  310. else
  311. if wpf_sz ! 1 and arrpos('$wombpotfath', 'Unknown') < 0: $wombpotfath[wpf_sz] = 'Unknown'
  312. end
  313. !!{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.}
  314. KILLVAR '$cumfathlotto'
  315. cfw_idx = 0
  316. cfw_sz = arrsize('cumfathwght')
  317. :FathLottoLoop
  318. if cfw_idx < cfw_sz:
  319. cfl_ct = (cumfathwght[cfw_idx] * 100) / cum_total
  320. if cfl_ct < 1: cfl_ct = 1
  321. cfl_idx = arrsize('$cumfathlotto')
  322. :FathLottoAdd
  323. if cfl_ct > 0:
  324. $cumfathlotto[cfl_idx] = $cumfathnames[cfw_idx]
  325. cfl_idx += 1
  326. cfl_ct -= 1
  327. jump 'FathLottoAdd'
  328. end
  329. cfw_idx += 1
  330. jump 'FathLottoLoop'
  331. end
  332. cfl_sz = arrsize('$cumfathlotto')
  333. egg_idx = 0
  334. egg_sz = UnfertEgg
  335. :FertLoop
  336. if egg_idx < egg_sz:
  337. !!{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.}
  338. fert_thresh = rand(1,250000)
  339. if pillcon < 0: pillcon = 0
  340. fert_thresh += pillcon
  341. if steriletu = 1: fert_thresh += fert_thresh*30
  342. if fert_thresh > 0 and broodcurse > 0: fert_thresh = fert_thresh / 2
  343. if fert_thresh <= cum_total:
  344. lotto_idx = rand(0, cfl_sz-1)
  345. UnfertEgg -= 1
  346. FertEgg += 1
  347. nextbaby = arrsize('$ChildFath')
  348. polkid[nextbaby] = rand(0, 1)
  349. $kidname[nextbaby] = 'unborn'
  350. kidage[nextbaby] = 0
  351. daykid[nextbaby] = 0
  352. monthkid[nextbaby] = 0
  353. yearkid[nextbaby] = 0
  354. Babyptype[nextbaby] = 0
  355. $ChildFath[nextbaby] = $cumfathlotto[lotto_idx]
  356. if arrsize('$wombpotfath') = 1:
  357. $ChildThFath[nextbaby] = $wombpotfath[0]
  358. else
  359. $ChildThFath[nextbaby] = 'Unknown'
  360. end
  361. hairkid[nextbaby] = rand(0, 3)
  362. eyeskid[nextbaby] = rand(0, 3)
  363. ChildConType = cumarrcon[nextbaby]
  364. end
  365. egg_idx += 1
  366. jump 'FertLoop'
  367. end
  368. killvar 'temp'
  369. tempovbonus = 0
  370. end
  371. !!{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.}
  372. if pillcon > 26000:
  373. if rand(0,400) ! 1: EggRH = 0
  374. ovulate -= 2
  375. end
  376. :OviLoop
  377. If EggRH > ((UnfertEgg + FertEgg) * 150):
  378. UnfertEgg += 1
  379. EggRH -= (200*UnfertEgg)
  380. jump 'OviLoop'
  381. end
  382. If ovulate <= 0:
  383. cycle = 3
  384. UnfertEgg = 0
  385. end
  386. ferteggage += 1
  387. Ovulate -= 1
  388. end
  389. !{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.}
  390. if $ARGS[0] = 'cyc3':
  391. ferteggage += 1
  392. implant_idx = 0
  393. implant_sz = arrsize('Babyptype')
  394. :implant_loop
  395. if implant_idx < implant_sz:
  396. if Babyptype[implant_idx] = 0:
  397. imp_thresh = (100 - (age + sterilewb))
  398. if broodcurse ! 0: imp_thresh *= 2
  399. imp_rand = rand(0, 120000)
  400. if imp_rand < imp_thresh:
  401. implant_day = daystart
  402. implant_hour = hour
  403. !{Egg implanted}
  404. ent_thresh = age + (sterilewb * 5)
  405. if broodcurse ! 0: ent_thresh = 0
  406. if rand(0, 10000) < ent_thresh:
  407. Babyptype[implant_idx] = 2
  408. else:
  409. Babyptype[implant_idx] = 1
  410. end
  411. FertEgg -= 1
  412. end
  413. end
  414. implant_idx += 1
  415. jump 'implant_loop'
  416. end
  417. !!{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.}
  418. if LutH > 300:
  419. rej_idx = 0
  420. rej_sz = arrsize('Babyptype')
  421. :lutcycloop
  422. if rej_idx < rej_sz:
  423. if Babyptype[rej_idx] = 0:
  424. KILLVAR 'polkid',tempbabyi
  425. KILLVAR '$kidname',tempbabyi
  426. KILLVAR 'kidage',tempbabyi
  427. KILLVAR 'daykid',tempbabyi
  428. KILLVAR 'monthkid',tempbabyi
  429. KILLVAR 'yearkid',tempbabyi
  430. KILLVAR 'Babyptype',tempbabyi
  431. KILLVAR '$ChildFath',tempbabyi
  432. KILLVAR '$ChildThFath',tempbabyi
  433. KILLVAR 'hairkid',tempbabyi
  434. KILLVAR 'eyeskid',tempbabyi
  435. KILLVAR 'cumarrcon',tempbabyi
  436. end
  437. rej_idx += 1
  438. jump 'lutcycloop'
  439. end
  440. LutH = 0
  441. if preg = 1:
  442. cycle = 5
  443. elseif menoage <= age:
  444. KILLVAR '$wombpotfath'
  445. cycle = 6
  446. else
  447. KILLVAR '$wombpotfath'
  448. temprand = rand(0,10)
  449. if pillcon < 30000 or temprand = 0:
  450. cycle = 0
  451. if cyccustom = 1: daylastperiod = daystart
  452. temprand = rand(0,10)
  453. if temprand = 0:
  454. mesec = 120
  455. elseif temprand < 9:
  456. mesec = 96
  457. else
  458. mesec = 72
  459. end
  460. else
  461. FocH = 0
  462. EggRH = 0
  463. cycle = 1
  464. mesec = 0
  465. end
  466. end
  467. else
  468. if preg = 1:PregChem += 1
  469. if rand(0,100) < 100: LutH += 1
  470. end
  471. end
  472. !{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.}
  473. if $ARGS[0] = 'cyc4':
  474. if RecovH <= 0:
  475. cycle = 1
  476. if cyccustom = 1:
  477. knowpregloss = 0
  478. knowpregrecover = 0
  479. end
  480. if rand(0,1000) = 1000:
  481. EggRH = rand(20,80)
  482. else
  483. EggRH = 0
  484. end
  485. FocH = EggRH
  486. else
  487. RecovH -= 1
  488. if rand(0,10) = 0: RecovH -= 1
  489. end
  490. end
  491. !{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.}
  492. if $ARGS[0] = 'preg':
  493. PregChem += 1
  494. temprand = rand(-400,800)
  495. temprand -= (babyembryo-1)*588
  496. if PregChem > 6573 + temprand and preg ! 2:
  497. 'A sharp pain pierces your abdomen, and you feel something flow down your legs. Your water has broken!'
  498. $cycreport_txt = 'In labour'
  499. arrmodtmp =arrsize('$ChildFath')
  500. arrmodtmp -= (babyembryo+1)
  501. :babyfinalpreploop
  502. if arrmodtmp < arrsize('$ChildFath') and daykid[arrmodtmp] = 0:
  503. daykid[arrmodtmp] = 42
  504. $ChildThFath[arrmodtmp] = $wombthfath
  505. arrmodtmp += 1
  506. jump 'babyfinalpreploop'
  507. end
  508. KILLVAR '$wombpotfath'
  509. KILLVAR '$wombthfath'
  510. preg = 2
  511. if babyembryo > 1:
  512. 'Your babies are coming...'
  513. else
  514. 'Your baby is coming...'
  515. end
  516. if PregChem < 3885:
  517. 'Way too early!'
  518. elseif PregChem < 5229:
  519. 'Very early!'
  520. elseif PregChem < 6069:
  521. 'Early.'
  522. elseif PregChem > 6959:
  523. 'Late.'
  524. elseif PregChem > 7245:
  525. 'Very Late!'
  526. end
  527. 'You need to get to a clinic.'
  528. end
  529. if PregChem > 3887:
  530. if lactate <= 0:
  531. 'You begin lactating'
  532. lactate = 1
  533. lactatemv = 0
  534. lactatemm = 10
  535. else
  536. if lactate < 1: lactate = 1
  537. end
  538. end
  539. if PregChem > 2203:
  540. if pregchem > 2853 or kid > 0:
  541. if rand(0,7) = 0: dynamic $d_pregmovement
  542. else
  543. if rand(0,500) = 0: dynamic $d_pregmovement
  544. end
  545. end
  546. end
  547. --- femcyc ---------------------------------