femcyc 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504
  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 200 hours. If it is 200 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. cumarrtemp = 0
  13. :cummarrpdloop1
  14. :cummarrpdloop2
  15. if cumarrage[cumarrtemp] < 190 and cumarrcpt[cumarrtemp] > 0:
  16. if rcntorgzm = 1 and cumarrcpt[cumarrtemp] < cumarrppt[cumarrtemp] and cumarrage[cumarrtemp] < 1 and cumarrcon[cumarrtemp]: cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp] / 12
  17. CumPDrop = cumarrcpt[cumarrtemp] / (200 - cumarrage[cumarrtemp])
  18. if ovulate <= 0:
  19. Temprand = rand(0,3)
  20. if temprand <= 0:
  21. CumPDrop = CumPDrop*3
  22. elseif temprand = 1:
  23. CumPDrop = CumPDrop*2
  24. end
  25. end
  26. cumarrcpt[cumarrtemp] -= CumPDrop
  27. cumarrage[cumarrtemp] += 1
  28. cumarrtemp += 1
  29. arrmodtmp = arrsize('$cumarrnam')
  30. if arrmodtmp > cumarrtemp: jump 'cummarrpdloop1'
  31. else
  32. KILLVAR 'cumarrcpt',cumarrtemp
  33. KILLVAR 'cumarrppt',cumarrtemp
  34. KILLVAR '$cumarrnam',cumarrtemp
  35. KILLVAR 'cumarrage',cumarrtemp
  36. KILLVAR 'cumarrdel',cumarrtemp
  37. KILLVAR 'cumarrkno',cumarrtemp
  38. KILLVAR 'cumarrcon',cumarrtemp
  39. arrmodtmp = arrsize('$cumarrnam')
  40. if arrmodtmp > cumarrtemp: jump 'cummarrpdloop2'
  41. end
  42. cumarrtemp = 0
  43. if arrsize('sparrvol') > 0:
  44. :cumspaloop
  45. !!Succubus absorption (not yet active)
  46. !{if sparrloc[cumarrtemp] = 0 or sparrloc[cumarrtemp] = 3 or sparrloc[cumarrtemp] = 12:
  47. sexnutrition += 30*succublvl
  48. sparrvol[cumarrtemp] -= 30*succublvl
  49. if sparrvol[cumarrtemp] < 0: sexnutrition += sparrvol[cumarrtemp] & sparrvol[cumarrtemp] = 0
  50. end}
  51. if sparrvol[cumarrtemp] > 0:
  52. sparrtmpv = arrsize('$cumarrnam')
  53. if sparrloc[cumarrtemp] = 17:
  54. sparrtmpv = arrpos('$cumarrnam',$sparrnam[cumarrtemp])
  55. if sparrage[cumarrtemp] < 4:
  56. cumarrcpt[sparrtmpv] += sparrppt[cumarrtemp]/5
  57. elseif sparrage[cumarrtemp] < 10:
  58. cumarrcpt[sparrtmpv] += sparrppt[cumarrtemp]/30
  59. end
  60. elseif sparrloc[cumarrtemp] = 0:
  61. sparrtmpv = arrpos('$cumarrnam',$sparrnam[cumarrtemp])
  62. if sparrage[cumarrtemp] < 4:
  63. cumarrcpt[sparrtmpv] += sparrppt[cumarrtemp]/40
  64. elseif sparrage[cumarrtemp] < 10:
  65. cumarrcpt[sparrtmpv] += sparrppt[cumarrtemp]/60
  66. end
  67. elseif sparrslc[cumarrtemp] = 1 and sparrage < 5:
  68. if sparrloc[cumarrtemp] = 1:
  69. cumarrcpt[sparrtmpv] = sparrppt[cumarrtemp]/1000*sparrage[cumarrtemp]/sparrvol[cumarrtemp]
  70. cumarrppt[sparrtmpv] = sparrppt[cumarrtemp]
  71. $cumarrnam[sparrtmpv] = $sparrnam[cumarrtemp]
  72. cumarrage[sparrtmpv] = sparrage[cumarrtemp]
  73. cumarrdel[sparrtmpv] = 1
  74. cumarrkno[sparrtmpv] = 0
  75. cumarrcon[sparrtmpv] = 0
  76. end
  77. elseif sparrslc[cumarrtemp] = 3 and sparrage < 5:
  78. if sparrloc[cumarrtemp] = 2:
  79. cumarrcpt[sparrtmpv] = sparrppt[cumarrtemp]/1000*sparrage[cumarrtemp]/sparrvol[cumarrtemp]
  80. cumarrppt[sparrtmpv] = sparrppt[cumarrtemp]
  81. $cumarrnam[sparrtmpv] = $sparrnam[cumarrtemp]
  82. cumarrage[sparrtmpv] = sparrage[cumarrtemp]
  83. cumarrdel[sparrtmpv] = 3
  84. cumarrkno[sparrtmpv] = 0
  85. cumarrcon[sparrtmpv] = 0
  86. elseif sparrloc[cumarrtemp] = 4:
  87. cumarrcpt[sparrtmpv] = sparrppt[cumarrtemp]/1000*sparrage[cumarrtemp]/sparrvol[cumarrtemp]
  88. cumarrppt[sparrtmpv] = sparrppt[cumarrtemp]
  89. $cumarrnam[sparrtmpv] = $sparrnam[cumarrtemp]
  90. cumarrage[sparrtmpv] = sparrage[cumarrtemp]
  91. cumarrdel[sparrtmpv] = 2
  92. cumarrkno[sparrtmpv] = 0
  93. cumarrcon[sparrtmpv] = 0
  94. end
  95. elseif sparrslc[cumarrtemp] = 5 and sparrage < 5:
  96. if sparrloc[cumarrtemp] = 3:
  97. cumarrcpt[sparrtmpv] = sparrppt[cumarrtemp]/1000*sparrage[cumarrtemp]/sparrvol[cumarrtemp]
  98. cumarrppt[sparrtmpv] = sparrppt[cumarrtemp]
  99. $cumarrnam[sparrtmpv] = $sparrnam[cumarrtemp]
  100. cumarrage[sparrtmpv] = sparrage[cumarrtemp]
  101. cumarrdel[sparrtmpv] = 2
  102. cumarrkno[sparrtmpv] = 0
  103. cumarrcon[sparrtmpv] = 0
  104. elseif sparrloc[cumarrtemp] = 5:
  105. cumarrcpt[sparrtmpv] = sparrppt[cumarrtemp]/1000*sparrage[cumarrtemp]/sparrvol[cumarrtemp]
  106. cumarrppt[sparrtmpv] = sparrppt[cumarrtemp]
  107. $cumarrnam[sparrtmpv] = $sparrnam[cumarrtemp]
  108. cumarrage[sparrtmpv] = sparrage[cumarrtemp]
  109. cumarrdel[sparrtmpv] = 3
  110. cumarrkno[sparrtmpv] = 0
  111. cumarrcon[sparrtmpv] = 0
  112. elseif sparrloc[cumarrtemp] = 6:
  113. cumarrcpt[sparrtmpv] = sparrppt[cumarrtemp]/1000*sparrage[cumarrtemp]/sparrvol[cumarrtemp]
  114. cumarrppt[sparrtmpv] = sparrppt[cumarrtemp]
  115. $cumarrnam[sparrtmpv] = $sparrnam[cumarrtemp]
  116. cumarrage[sparrtmpv] = sparrage[cumarrtemp]
  117. cumarrdel[sparrtmpv] = 3
  118. cumarrkno[sparrtmpv] = 0
  119. cumarrcon[sparrtmpv] = 0
  120. end
  121. end
  122. if sparrloc[cumarrtemp] = 0 or sparrloc[cumarrtemp] = 3 or sparrloc[cumarrtemp] = 12:sparrvol[cumarrtemp] -= sparrage[cumarrtemp]/2
  123. if sparrloc[cumarrtemp] = 0 and cumsumvag > 60: sparrslc = 1
  124. if sparrloc[cumarrtemp] = 3 and cumsumass > 60: sparrslc = 1
  125. if sparrloc[cumarrtemp] = 17 and sparrage[cumarrtemp] > 48:
  126. cumcondslip = 1
  127. health -= 3
  128. 'You feel nauseous.'
  129. if rand(0,5) < 5: health -= 2
  130. else
  131. cumcondslip = 0
  132. end
  133. if sparrloc[cumarrtemp] ! 0 and sparrloc[cumarrtemp] ! 3 and sparrloc[cumarrtemp] ! 12 and isprok = 0 and sparrage < 5: sparrslc[cumarrtemp] += 1
  134. sparrage[cumarrtemp] += 1
  135. cumarrtemp += 1
  136. ctemp += sparrvol[cumarrtemp]
  137. if sparrloc[cumarrtemp] = 0: ctemp[1] += sparrvol[cumarrtemp]
  138. if sparrloc[cumarrtemp] = 3: ctemp[2] += sparrvol[cumarrtemp]
  139. else
  140. KILLVAR 'spafinloc',cumarrtemp
  141. KILLVAR 'sparrage',cumarrtemp
  142. KILLVAR 'sparrloc',cumarrtemp
  143. KILLVAR '$sparrnam',cumarrtemp
  144. KILLVAR 'sparrppt',cumarrtemp
  145. KILLVAR 'sparridt',cumarrtemp
  146. KILLVAR 'sparrvol',cumarrtemp
  147. KILLVAR 'sparrslc',cumarrtemp
  148. end
  149. if cumarrtemp < arrsize('sparrvol'): jump 'cumspaloop'
  150. cumsumbod = ctemp
  151. cumsumvag = ctemp[1]
  152. cumsumass = ctemp[2]
  153. end
  154. if lactate > 0:
  155. if lactatemv <= 0:
  156. lactatemv = 0
  157. if lactatemm < titK*4 and milkgrowday < daystart:
  158. lactatemm += 1
  159. lactatemv += 1
  160. bgrowday = daystart
  161. elseif milkgrowday < daystart:
  162. if rand(0,30) = 0: titK += 1
  163. milkgrowday = daystart
  164. end
  165. elseif lactatemv < lactatemm:
  166. lactatemv += lactatemm/20
  167. elseif lactatemv = lactatemm and milkgrowday < daystart:
  168. milkgrowday = daystart
  169. lactatemm -= 1
  170. lactatemv -= 1
  171. if rand(0,90) = 0: titK -= 1
  172. elseif lactatemv > lactatemm:
  173. lactatemv = lactatemm
  174. end
  175. end
  176. if cycle <= 0:
  177. gs 'femcyc', 'cyc0'
  178. elseif cycle = 1:
  179. gs 'femcyc', 'cyc1'
  180. elseif cycle = 2:
  181. gs 'femcyc', 'cyc2'
  182. elseif cycle = 3:
  183. gs 'femcyc', 'cyc3'
  184. elseif cycle = 4:
  185. gs 'femcyc', 'cyc4'
  186. elseif cycle = 5:
  187. gs 'femcyc', 'preg'
  188. end
  189. dynamic $d_cycreport_update
  190. end
  191. !{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.}
  192. if $ARGS[0] = 'cyc0':
  193. if mesec <= 0:
  194. cycle = 1
  195. mesec = 0
  196. if rand(0,1000) = 1000:
  197. EggRH = rand(20,80)
  198. else
  199. EggRH = 0
  200. end
  201. FocH = EggRH
  202. else
  203. mesec -= 1
  204. end
  205. end
  206. !{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.}
  207. if $ARGS[0] = 'cyc1':
  208. if FocH <= 150:
  209. EggRH +=1
  210. FocH +=1
  211. if rand(0,1) = 1: EggRH += 1
  212. temprand = rand(0,1000)
  213. temprand -= sterileov
  214. temprand += tempovbonus
  215. if temprand <= 0: EggRH -= 1
  216. if pillcon > 7000: EggRH -= 1
  217. else
  218. !{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.}
  219. Temprand = rand(0,20)
  220. Temprand += age/15
  221. Temprand -= pillcon/1000
  222. if temprand > 20:
  223. EggRH += 205
  224. Temprand = rand(0,20)
  225. Temprand += age/15
  226. if temprand > 20: EggRH += 410
  227. end
  228. FocH = 0
  229. Ovulate = 24 + rand(0,20)
  230. cycle = 2
  231. ferteggage = 0
  232. end
  233. end
  234. !{Fertilization. It checks if you are ovulating and that there is cum in the cum array. Then it sets a random flag with a chance of 25*10000. (1 in 25 chance.) It then overlays that chance with the concentration of pill chemical in your blood, initializing it if it is in the negatives for some reason. It begins at the beginning of the cum array, and starts the processing. The check should be done with the same number. It is checking the oldest first. Their sperm should already be in the best position, even though it is unhealty by comparison. Then it moves down to the fresher stuff. The first sperm to have the potency above the threshold gets to fertilize. So a custom potency of a million is a sure pregnancy.}
  235. if $ARGS[0] = 'cyc2':
  236. arrmodtmp = arrsize('$cumarrnam')
  237. if Ovulate > 0 and arrmodtmp > 0:
  238. temp = UnFertEgg
  239. if temp > 0: temp[1] = 1
  240. :cumloop
  241. if temp[1] > 0:
  242. Temprand = rand(1,250000)
  243. if pillcon < 0: pillcon = 0
  244. Temprand += pillcon
  245. if steriletu = 1: Temprand += Temprand*30
  246. if temprand > 0 and broodcurse > 0: Temprand = Temprand / 2
  247. cumarrtemp = 0
  248. temp[1] = 0
  249. end
  250. !{Here it verifies there is unfertilized eggs. If there are, it checks the current index potency against the current threshold. If it fails, it goes up one in the index, checks to verify it hasnt reached the end, then starts a new check. if it succeeds, it checks to see if it is a second or greater part of a litter, if it isnt, then it cleans up the array containing a list of the potential fathers, then sets the list to contain people your MC should know are potential fathers for the baby. It does this by evaluating the cum array, the potential fathers variable. It does this independently of the main loop evaluating the array for pregnancy.}
  251. if temp > 0:
  252. if TempRand < cumarrcpt[cumarrtemp] and UnfertEgg > 0:
  253. if fertegg = 0:
  254. KILLVAR '$wombpotfath'
  255. $wombthfath = 'Unknown'
  256. $wombpotfath[0] = 'Unknown'
  257. FathpotAdd = 1
  258. Fathpotcheck = 0
  259. arrmodtmp = arrsize('$cumarrnam')
  260. :potfathaddloop
  261. if arrmodtmp > Fathpotcheck:
  262. if cumarrkno[Fathpotcheck] = 1:
  263. $wombpotfath[Fathpotadd] = $cumarrnam[Fathpotcheck]
  264. Fathpotadd += 1
  265. end
  266. Fathpotcheck += 1
  267. jump 'potfathaddloop'
  268. end
  269. end
  270. !{It adds a fertilized egg, removes an unfertilized egg, then sets the array index checker to the size of the array of children you have to make sure it is adding to the end of the file. It then sets a temporary flag to determine the sex of your baby. 0 is a girl. Then it calls the babys name unborn. It clears the variable for the age, sets the real fathers name to the name stored in the cum array, then sets the person you think is the father of this baby to "unknown". It then sets a random hair color and random eye color. This was used in the old system in a variable that wasnt ever called from the best of my ability to find. Then it flags the child based on what kind of contraception failed when it was concieved. Useful in several ways.}
  271. FertEgg += 1
  272. UnfertEgg -= 1
  273. Nextbaby = arrsize('$ChildFath')
  274. Temppolkid = rand(0,1)
  275. polkid[nextbaby] = Temppolkid
  276. $kidname[nextbaby] = 'unborn'
  277. kidage[nextbaby] = 0
  278. daykid[nextbaby] = 0
  279. monthkid[nextbaby] = 0
  280. yearkid[nextbaby] = 0
  281. Babyptype[nextbaby] = 0
  282. $ChildFath[nextbaby] = $cumarrnam[cumarrtemp]
  283. $ChildThFath[nextbaby] = 'Unknown'
  284. hairkid[nextbaby] = rand(0, 3)
  285. eyeskid[nextbaby] = rand(0, 3)
  286. ChildConType = cumarrcon[nextbaby]
  287. cumarrtemp = arrmodtmp
  288. else
  289. cumarrtemp += 1
  290. end
  291. if cumarrtemp >= arrmodtmp:
  292. temp -= 1
  293. temp[1] = 1
  294. end
  295. jump 'cumloop'
  296. else
  297. killvar 'temp'
  298. tempovbonus = 0
  299. end
  300. end
  301. !{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.}
  302. if pillcon > 26000:
  303. if rand(0,400) ! 1: EggRH = 0
  304. ovulate -= 2
  305. end
  306. :OviLoop
  307. If EggRH > (UnfertEgg * 150):
  308. Unfertegg += 1
  309. EggRH -= (200*UnfertEgg)
  310. jump 'OviLoop'
  311. end
  312. If ovulate <= 0:
  313. cycle = 3
  314. UnfertEgg = 0
  315. end
  316. ferteggage += 1
  317. Ovulate -= 1
  318. end
  319. !{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.}
  320. if $ARGS[0] = 'cyc3':
  321. ferteggage += 1
  322. if FertEgg >= 1:
  323. temprand = rand(0,100000)
  324. if ferteggage < 120 and broodcurse <= 0:
  325. temprand += 170
  326. temprand -= age*10
  327. if steriletu = 1: temprand -= 200
  328. !{if there is a entopic pregnancy, it sets the first unborn baby in the array to this. 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.}
  329. if temprand <= 0:
  330. tempbabyi = ARRPOS('Babyptype',0)
  331. Babyptype[tempbabyi] = 2
  332. FertEgg -= 1
  333. BabyEmbryo += 1
  334. PregChem = rand(0,30)
  335. if preg = 0: preg = 1
  336. end
  337. else
  338. !{Otherwise, it adds your womb sterilie factor to the temprand. Then it checks if your temprand 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.}
  339. temprand += sterilewb
  340. temprand -= tempwbbonus
  341. if broodcurse > 0 and ferteggage >= 120: Temprand = 0
  342. if temprand <= (1200-(Age*7)):
  343. tempbabyi = ARRPOS('Babyptype',0)
  344. Babyptype[tempbabyi] = 1
  345. FertEgg -= 1
  346. BabyEmbryo += 1
  347. PregChem += rand(0,30)
  348. if preg = 0: preg = 1
  349. end
  350. tempwbbonus = 0
  351. end
  352. end
  353. !{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.}
  354. if LutH > 300:
  355. :lutcycloop
  356. if fertegg > 0:
  357. tempbabyi = ARRPOS('Babyptype',0)
  358. KILLVAR 'polkid',tempbabyi
  359. KILLVAR '$kidname',tempbabyi
  360. KILLVAR 'kidage',tempbabyi
  361. KILLVAR 'daykid',tempbabyi
  362. KILLVAR 'monthkid',tempbabyi
  363. KILLVAR 'yearkid',tempbabyi
  364. KILLVAR 'Babyptype',tempbabyi
  365. KILLVAR '$ChildFath',tempbabyi
  366. KILLVAR '$ChildThFath',tempbabyi
  367. KILLVAR 'hairkid',tempbabyi
  368. KILLVAR 'eyeskid',tempbabyi
  369. KILLVAR 'cumarrcon',tempbabyi
  370. fertegg -= 1
  371. jump 'lutcycloop'
  372. end
  373. LutH = 0
  374. if preg = 1:
  375. cycle = 5
  376. elseif menoage <= age:
  377. KILLVAR '$wombpotfath'
  378. cycle = 6
  379. else
  380. KILLVAR '$wombpotfath'
  381. temprand = rand(0,10)
  382. if pillcon < 30000 or temprand = 0:
  383. cycle = 0
  384. if cyccustom = 1: daylastperiod = daystart
  385. temprand = rand(0,10)
  386. if temprand = 0:
  387. mesec = 120
  388. elseif temprand < 9:
  389. mesec = 96
  390. else
  391. mesec = 72
  392. end
  393. else
  394. FocH = 0
  395. EggRH = 0
  396. cycle = 1
  397. mesec = 0
  398. end
  399. end
  400. else
  401. if preg = 1:PregChem += 1
  402. if rand(0,100) < 100: LutH += 1
  403. end
  404. end
  405. !{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.}
  406. if $ARGS[0] = 'cyc4':
  407. if RecovH <= 0:
  408. cycle = 1
  409. if cyccustom = 1:
  410. knowpregloss = 0
  411. knowpregrecover = 0
  412. end
  413. if rand(0,1000) = 1000:
  414. EggRH = rand(20,80)
  415. else
  416. EggRH = 0
  417. end
  418. FocH = EggRH
  419. else
  420. RecovH -= 1
  421. if rand(0,10) = 0: RecovH -= 1
  422. end
  423. end
  424. !{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.}
  425. if $ARGS[0] = 'preg':
  426. PregChem += 1
  427. temprand = rand(-400,800)
  428. temprand -= (babyembryo-1)*588
  429. if PregChem > 6573 + temprand and preg ! 2:
  430. 'A sharp pain pierces your abdomen, and you feel something flow down your legs. Your water has broken!'
  431. $cycreport_txt = 'In labour'
  432. arrmodtmp =arrsize('$ChildFath')
  433. arrmodtmp -= (babyembryo+1)
  434. :babyfinalpreploop
  435. if arrmodtmp < arrsize('$ChildFath') and daykid[arrmodtmp] = 0:
  436. daykid[arrmodtmp] = 42
  437. $ChildThFath[arrmodtmp] = $wombthfath
  438. arrmodtmp += 1
  439. jump 'babyfinalpreploop'
  440. end
  441. KILLVAR '$wombpotfath'
  442. KILLVAR '$wombthfath'
  443. preg = 2
  444. if babyembryo > 1:
  445. 'Your babies are coming...'
  446. else
  447. 'Your baby is coming...'
  448. end
  449. if PregChem < 3885:
  450. 'Way too early!'
  451. elseif PregChem < 5229:
  452. 'Very early!'
  453. elseif PregChem < 6069:
  454. 'Early.'
  455. elseif PregChem > 6959:
  456. 'Late.'
  457. elseif PregChem > 7245:
  458. 'Very Late!'
  459. end
  460. 'You need to get to a clinic.'
  461. end
  462. if PregChem > 3887:
  463. if lactate <= 0:
  464. 'You begin lactating'
  465. lactate = 1
  466. lactatemv = 0
  467. lactatemm = 10
  468. else
  469. if lactate < 1: lactate = 1
  470. end
  471. end
  472. if PregChem > 2203:
  473. if pregchem > 2853 or kid > 0:
  474. if rand(0,7) = 0: dynamic $d_pregmovement
  475. else
  476. if rand(0,500) = 0: dynamic $d_pregmovement
  477. end
  478. end
  479. end
  480. --- femcyc ---------------------------------