1
0

lact_lib.qsrc 71 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736
  1. # lact_lib
  2. !! ---- new lactation string index array for all lactation functions ----------
  3. !! lactation['active'] = old "lactate" variable
  4. !! lactation['induced'] = old lactateinduced variable
  5. !! lactation['pc_aware'] = old pcs_knowsaboutlactation variable
  6. !! lactation['lactaterate'] = old lactaterate variable
  7. !! lactation['breastmv'] = old lactatemv variable
  8. !! lactation['breastmm'] = old lactatemm variable
  9. !! lactation['prolactinlvl'] = old prolactinlvl variable
  10. !! lactation['milkedvolume'] = old milkedvolume variable
  11. !! lactation['lactatemess'] = old lactatemess variable
  12. !! lactation['engorgement'] = old lact_engorgement variable
  13. !! ---- old variables ---------------------------------------------------------
  14. !! bottlecounter
  15. !! bp_unbox
  16. !! bp_useable_mbottle
  17. !! bp_useable_sbottle
  18. !! bp_used_mbottle
  19. !! bp_used_sbottle
  20. !! bpbottlem
  21. !! bpbottles
  22. !! breastcounter
  23. !! breastpump
  24. !! breastpumped
  25. !! di_i
  26. !! emb_i
  27. !! energytomilkpump
  28. !! lactaterate_use
  29. !! max_nip_flow_rate
  30. !! max_sucktion_demand
  31. !! mbarrcool
  32. !! mbarrfill
  33. !! mbarrloca
  34. !! mbarrmage
  35. !! mbarrtype
  36. !! milk_demand
  37. !! milkoverdemand
  38. !! nip_flow
  39. !! nip_flow_mod
  40. !! nipple_cream
  41. !! pcs_ask_mward_help
  42. !! pcs_know_mward
  43. !! pcs_knows_electric_pump
  44. !! pcs_massagedherbreasts
  45. !! pcs_usedbreastpumponherself
  46. !! piits_i
  47. !! pump_bottletype
  48. !! pump_stop_brake
  49. !! pump_timestamp
  50. !! pumpinggrowth
  51. !! pumptime
  52. !! pumptime_left
  53. !! pumptype
  54. !! rbc_index
  55. !! reg_bottlem_count
  56. !! reg_bottles_count
  57. !! soreness_mod
  58. !! suck_flow_rate
  59. !! suck_until_pain
  60. !! temp_breastsize
  61. !! temp_lactaterate
  62. !! temp_timestamp
  63. !! temp_var
  64. !! temp_var2
  65. !! ts_i
  66. !! umbc_i
  67. !! usbc_i
  68. !! vmb_i
  69. if $ARGS[0] = 'lactate_optout':
  70. !! func('lact_lib','lactate_optout')
  71. !! use gs 'lact_lib','lactate_optout'
  72. !! Used for switching off all lactation related content
  73. lactation['active'] = 0
  74. prolactinlvl = 0
  75. lactatemess = 0
  76. lact_engorgement = 0
  77. lactatemv = 0
  78. lactatemm = 0
  79. lactaterate = 0
  80. milk_demand = 0
  81. end
  82. if $ARGS[0] = 'view_milk_bottles':
  83. !! func('lact_lib', 'view_milk_bottles', location_id)
  84. !! use gs 'lact_lib','view_milk_bottles', 2
  85. !! locations
  86. !! 0 = lost
  87. !! 1 = in svetas hand
  88. !! 2 = in svetas bag
  89. !! 3 = parent bathroom
  90. !! 4 = parent fridge
  91. !! 5 = Resident Area Appartment Bathroom
  92. !! 6 = Resident Area Appartment Fridge
  93. !! 7 = Grandparents Bathroom
  94. !! 8 = Villa Bathroom
  95. !! 9 = Villa Fridge
  96. !! 10 = Shared Apartment Bathroom
  97. !! 11 = Shared Apartment Fridge
  98. !! Locations are not used yet but are implemented. I will add this on another day.
  99. !! milk bottle array indices
  100. !! mbarrtype: Size of milk bottle. Normal bottles are 150ml and large bottles are 250ml. Values are ml*10
  101. !! mbarrfill: Filled milk volume in the bottle. Values are in ml*10 and can''t surpass mbarrtype
  102. !! mbarrmage: timestamp the milk was pumped.
  103. !! mbarrcool: Is the milk cooled? 0 = no, 1 = normal cooler, 2 = deep freezer
  104. !! $mbarrstat: State of the milk: fresh, normal, old, rancid
  105. !! $mbarrtemp: Temperature of the milk: hot, warm, normal, cold, frozen
  106. !! mbarrloca: Location of the bottle.
  107. *clr
  108. cla
  109. !! Checking for unregistered bottles.
  110. gs 'lact_lib', 'reg_bottle_count'
  111. 'You check the bottles that you store here.<br>'
  112. temp_var = (bpbottlem + bpbottles) - 1
  113. vmb_i = 0
  114. milkedvolume = 0
  115. :vmbloop
  116. if vmb_i <= temp_var:
  117. if mbarrloca[vmb_i] = ARGS[1]:
  118. gs 'lact_lib', 'update_mbottle', vmb_i
  119. if mbarrfill[vmb_i] <=0:
  120. mbarrfill[vmb_i] = 0
  121. '<br><<vmb_i + 1>>. - An empty <<mbarrtype[vmb_i]/10>>ml bottle. You can use it to store your breast milk.'
  122. else
  123. '<br><<vmb_i + 1>>. - A <<mbarrtype[vmb_i]/10>>ml bottle. There is <<mbarrfill[vmb_i]/10>>ml of milk in the bottle. <a href="exec:msg ''<center>You open the bottle and check the milk inside.<br>You can feel the milk is <<$mbarrtemp[vmb_i]>> and it smells <<$mbarrstat[vmb_i]>>.</center>''">Check the content</a>'
  124. milkedvolume += mbarrfill[vmb_i]
  125. !! '| <a href="exec:func(''lact_lib'',''empty_milk_bottle'',''vmb_i'')">Empty the bottle</a>'
  126. end
  127. end
  128. vmb_i += 1
  129. jump 'vmbloop'
  130. end
  131. if milkedvolume > 0:
  132. '<br><a href="exec:gt''lact_lib'',''empty_milk_bottles''">Pour the milk into the sink</a>'
  133. end
  134. act 'Back':gt 'lact_lib', 'bp_milking'
  135. end
  136. !! empty bottle function
  137. if $ARGS[0] = 'empty_milk_bottles':
  138. !! use gt 'lact_lib', 'empty_milk_bottles'
  139. *clr
  140. cla
  141. temp_var = (bpbottlem + bpbottles) - 1
  142. emb_i = 0
  143. :emb_loop
  144. if emb_i <= temp_var:
  145. mbarrfill[emb_i] = 0
  146. mbarrmage[emb_i] = 0
  147. mbarrcool[emb_i] = 0
  148. $mbarrstat[emb_i] = 'none'
  149. $mbarrtemp[emb_i] = 'none'
  150. emb_i += 1
  151. jump 'emb_loop'
  152. end
  153. '<center><img <<$set_imgh>> src="images/pc/body/tits/milk_sink.jpg"></center>'
  154. '<center>You pour all of your collected breast milk into the sink and clean up the bottles.</center>'
  155. minut += temp_var
  156. act 'Finish':menu_off = 0 & gt $loc, $metka
  157. !!gt 'lact_lib','view_milk_bottles',1
  158. end
  159. !! fill a bottle function
  160. if $ARGS[0] = 'fill_milk_bottle':
  161. !! use func('lact_lib','fill_milk_bottle',bottle_id,milk_amount)
  162. !! example func('lact_lib','fill_milk_bottle',3,300)
  163. if ARGS[2] > mbarrtype[ARGS[1]]:
  164. 'ERROR - More milk going into bottle than the bottle can hold.'
  165. else
  166. mbarrfill[ARGS[1]] = ARGS[2]
  167. mbarrmage[ARGS[1]] = func('lact_lib','time_stamp')
  168. mbarrcool[ARGS[1]] = 0
  169. $mbarrstat[ARGS[1]] = 'fresh'
  170. $mbarrtemp[ARGS[1]] = 'warm'
  171. end
  172. end
  173. !! Time Stamp function for milk bottles.
  174. if $ARGS[0] = 'time_stamp':
  175. !! use func('lact_lib','time_stamp')
  176. !! This function creates a time stamp in minutes. It takes the current in game time and converts it to total minutes from year 01.01.0000 to in game now.
  177. !! Used to check breast milk age in bottles. Can be used for other functions if needed.
  178. temp_timestamp = 0
  179. temp_timestamp += year * 365 * 24 * 60
  180. ts_i = 1
  181. if month > 1:
  182. :ts_loop
  183. if (month - 1) => ts_i:
  184. if ts_i = 1 or ts_i = 3 or ts_i = 5 or ts_i = 7 or ts_i = 8 or ts_i = 10 or ts_i = 12:
  185. temp_timestamp += 44640
  186. elseif ts_i = 4 or ts_i = 6 or ts_i = 9 or ts_i = 11:
  187. temp_timestamp += 43200
  188. elseif ts_i = 2:
  189. temp_timestamp += 40320
  190. if (year mod 4) = 0 and (year mod 100) ! 0 or (year mod 400) = 0:
  191. temp_timestamp += 1440
  192. end
  193. end
  194. ts_i += 1
  195. jump 'ts_loop'
  196. end
  197. end
  198. temp_timestamp += (day - 1) * 24 * 60
  199. temp_timestamp += hour * 60
  200. temp_timestamp += minut
  201. result = temp_timestamp
  202. end
  203. !! Update Milk bottle function
  204. if $ARGS[0] = 'update_mbottle':
  205. !! func('lact_lib', 'update_mbottle', bottle_id)
  206. !! use result = func('lact_lib','update_mbottle', '0')
  207. !! this function is used to update milk bottles whenever the milk is pumped or sveta checkes the bottles in her stash.
  208. !! Room temperature. Freshly expressed breast milk can be kept at room temperature for up to six hours. However, use or proper storage within four hours is optimal. If the room is especially warm, the limit is also four hours.
  209. !! Insulated cooler. Freshly expressed breast milk can be stored in an insulated cooler with ice packs for up to one day.
  210. !! Refrigerator. Freshly expressed breast milk can be stored in the back of the refrigerator for up to five days in clean conditions. However, use or freezer storage within three days is optimal.
  211. !! Deep freezer. Freshly expressed breast milk can be stored in the back of a deep freezer for up to 12 months. However, using the frozen milk within six months is optimal.
  212. !! milk bottle array indices
  213. !! mbarrtype: Size of milk bottle. Normal bottles are 150ml and large bottles are 250ml. Values are ml*10
  214. !! mbarrfill: Filled milk volume in the bottle. Values are in ml*10 and can''t surpass mbarrtype
  215. !! mbarrmage: timestamp the milk was pumped.
  216. !! mbarrcool: Is the milk cooled? 0 = no, 1 = normal cooler, 2 = deep freezer
  217. !! $mbarrstat: State of the milk: fresh, normal, old, rancid
  218. !! $mbarrtemp: Temperature of the milk: hot, warm, normal temparture, cold, frozen
  219. !! mbarrloca: Location of the bottle.
  220. if mbarrfill[ARGS[1]] > 0:
  221. if mbarrfill[ARGS[1]] > mbarrtype[ARGS[1]]: mbarrfill[ARGS[1]] = mbarrtype[ARGS[1]]
  222. if mbarrmage[ARGS[1]] <= 0: mbarrmage[ARGS[1]] = func('lact_lib','time_stamp')
  223. if mbarrcool[ARGS[1]] = 0:
  224. if (mbarrmage[ARGS[1]] + 60) >= func('lact_lib','time_stamp'):
  225. $mbarrtemp[ARGS[1]] = 'warm'
  226. $mbarrstat[ARGS[1]] = 'fresh'
  227. elseif (mbarrmage[ARGS[1]] + 60) < func('lact_lib','time_stamp') and (mbarrmage[ARGS[1]] + 360) >= func('lact_lib','time_stamp'):
  228. $mbarrtemp[ARGS[1]] = 'normal temparture'
  229. $mbarrstat[ARGS[1]] = 'normal'
  230. elseif (mbarrmage[ARGS[1]] + 360) < func('lact_lib','time_stamp') and (mbarrmage[ARGS[1]] + 1440) >= func('lact_lib','time_stamp'):
  231. $mbarrtemp[ARGS[1]] = 'normal temparture'
  232. $mbarrstat[ARGS[1]] = 'old'
  233. else
  234. $mbarrtemp[ARGS[1]] = 'normal temparture'
  235. $mbarrstat[ARGS[1]] = 'rancid'
  236. end
  237. elseif mbarrcool[ARGS[1]] = 1:
  238. if (mbarrmage[ARGS[1]] + 1440) >= func('lact_lib','time_stamp'):
  239. $mbarrtemp[ARGS[1]] = 'cold'
  240. $mbarrstat[ARGS[1]] = 'fresh'
  241. elseif (mbarrmage[ARGS[1]] + 1440) < func('lact_lib','time_stamp') and (mbarrmage[ARGS[1]] + 4320) >= func('lact_lib','time_stamp'):
  242. $mbarrtemp[ARGS[1]] = 'cold'
  243. $mbarrstat[ARGS[1]] = 'normal'
  244. elseif (mbarrmage[ARGS[1]] + 4320) < func('lact_lib','time_stamp') and (mbarrmage[ARGS[1]] + 7200) >= func('lact_lib','time_stamp'):
  245. $mbarrtemp[ARGS[1]] = 'cold'
  246. $mbarrstat[ARGS[1]] = 'old'
  247. else
  248. $mbarrtemp[ARGS[1]] = 'cold'
  249. $mbarrstat[ARGS[1]] = 'rancid'
  250. end
  251. elseif mbarrcool[ARGS[1]] = 2:
  252. if (mbarrmage[ARGS[1]] + 10080) >= func('lact_lib','time_stamp'):
  253. $mbarrtemp[ARGS[1]] = 'frozen'
  254. $mbarrstat[ARGS[1]] = 'fresh'
  255. elseif (mbarrmage[ARGS[1]] + 10080) < func('lact_lib','time_stamp') and (mbarrmage[ARGS[1]] + 262080) >= func('lact_lib','time_stamp'):
  256. $mbarrtemp[ARGS[1]] = 'frozen'
  257. $mbarrstat[ARGS[1]] = 'normal'
  258. elseif (mbarrmage[ARGS[1]] + 262080) < func('lact_lib','time_stamp') and (mbarrmage[ARGS[1]] + 525600) >= func('lact_lib','time_stamp'):
  259. $mbarrtemp[ARGS[1]] = 'frozen'
  260. $mbarrstat[ARGS[1]] = 'old'
  261. else
  262. $mbarrtemp[ARGS[1]] = 'frozen'
  263. $mbarrstat[ARGS[1]] = 'rancid'
  264. end
  265. else
  266. $mbarrtemp[ARGS[1]] = 'warm'
  267. $mbarrstat[ARGS[1]] = 'fresh'
  268. end
  269. else
  270. $mbarrtemp[ARGS[1]] = 'none'
  271. $mbarrstat[ARGS[1]] = 'none'
  272. mbarrmage[ARGS[1]] = 0
  273. mbarrfill[ARGS[1]] = 0
  274. end
  275. end
  276. if $ARGS[0] = 'useable_sbottle_count':
  277. !! use result = func('lact_lib','useable_sbottle_count',)
  278. !! function will give you the amount of 150ml bottles that sveta can use at the moment.
  279. usbc_i = 0
  280. bottlecounter = 0
  281. if reg_bottles_count > 0:
  282. :usbc_loop
  283. if usbc_i <= (reg_bottlem_count + reg_bottles_count):
  284. if mbarrtype[usbc_i] = 1500 and mbarrfill[usbc_i] = 0:
  285. bottlecounter += 1
  286. end
  287. usbc_i += 1
  288. jump 'usbc_loop'
  289. end
  290. end
  291. result = bottlecounter
  292. end
  293. if $ARGS[0] = 'useable_mbottle_count':
  294. !! use result = func('lact_lib','useable_mbottle_count')
  295. !! function will give you the amount of 250ml bottles that sveta can use at the moment.
  296. umbc_i = 0
  297. bottlecounter = 0
  298. if reg_bottlem_count > 0:
  299. :umbc_loop
  300. if umbc_i <= (reg_bottlem_count + reg_bottles_count):
  301. if mbarrtype[umbc_i] = 2500 and mbarrfill[umbc_i] = 0:
  302. bottlecounter += 1
  303. end
  304. umbc_i += 1
  305. jump 'umbc_loop'
  306. end
  307. end
  308. result = bottlecounter
  309. end
  310. if $ARGS[0] = '$get_bfat_tissue':
  311. !! func('lact_lib', 'get_bfattissue', npc_nbsize, npc_lactatemm)
  312. !! function to get breast fat tissue amount. Can be used for NPC as well as PC.
  313. !! ARGS[1] = npc_nbsize - the natural bust size of the NPC/PC.
  314. !! ARGS[2] = npc_lactatemm - he lactatemm of the NPC/PC.
  315. !! RESULT = Fat amount in ccm * 10.
  316. !! function for cup size volume in ccm y = 0,0002023*x^3 + 0,029199*x^2 + 4,3791*x + 70
  317. !! x = ((ARGS[1]/5) + 1)*10
  318. !! this function is based on the x figures for pcs_bust size (moving in steps of 5) and the actual cup sizes from a wikipedia table, which can be found here: https://en.wikipedia.org/wiki/Bra_size
  319. !! The function was estimated with excel using a trend line estimation for polynoms of third grade and a y = 0 at 70ccm
  320. !! https://www.ncbi.nlm.nih.gov/pubmed/11936199
  321. !! The percentage of fat volume in the total breast volume varied from 7 to 56% and the percentage of fat weight in the total breast weight varied from 3.6 to 37.6%. This great variability in the respective proportions of fat and glands in the evaluated specimens was not significantly correlated to age and body mass index.
  322. if ARGS[1] > 0:
  323. temp_var = ((ARGS[1]/5) + 1)*10
  324. temp_var2 = (((2023*temp_var*temp_var*temp_var)/10000000)+((29199*temp_var*temp_var)/1000000)+((43791*temp_var)/10000)+70)*10
  325. if temp_var2 > ARGS[2]:
  326. RESULT = temp_var2 - (ARGS[2] + ARGS[2]/50)
  327. elseif temp_var2 = ARGS[2]:
  328. RESULT = 0
  329. else
  330. cls & '<b><font color="red">BAD ARGUMENT CHECK IN <i>$get_bfat_tissue</i>!</font> - Node ARGS[1] - more mammary gland tissue available then total breast tissue.</b>'
  331. end
  332. else
  333. if ARGS[2] > 700:
  334. cls & '<b><font color="red">BAD ARGUMENT CHECK IN <i>$get_bfat_tissue</i>!</font> - Node ARGS[2] - more mammary gland tissue available then total breast tissue.</b>'
  335. else
  336. RESULT = 700
  337. end
  338. end
  339. end
  340. if $ARGS[0] = '$calc_npc_lactatemm_0':
  341. !! func('lact_lib', 'calc_npc_lactatemm_0', npc_glandamount, npc_prodstate, npc_breastage, npc_breastcount)
  342. !! New calc lactatemm function usuable for NPCs. Test function number one.
  343. !! ARGS[1] = npc_glandamount - The glandamount of the npc per breast. Glandamount here is actually the alveoli amount per breast. The value is 4500 to 150000 per breast depending on the genetics or if the npc went through pregnancy already.
  344. !! ARGS[2] = npc_prodstate - The breast production state of the npc. State can be "none", "induced" or "natural".
  345. !! ARGS[3] = npc_breastage - State can be "virgin" or "mature". Virgin in this case means that the breasts did not go through pregnancy changes yet, while mature is a fully developed breast that had all the changes during pregnancy.
  346. !! To determine the breastage, just check if the NPC has gone through pregnancy or not.
  347. !! ARGS[4] = npc_breastcount - The breast count of the NPC. If 0 the result will always be 0. Could be used for amputation events or multiple breasts events.
  348. !! The function will return something even if there is no lactation currently happening. this could be used for special events where sudden lactation is induced with the help of drugs. For example a lactation pill that will cause the NPC to lactate immediately without classical induction or natural growth during pregnancy.
  349. !! RESULT = lactatemm in ml*10
  350. if ARGS[2] = 'none':
  351. if ARGS[3] = 'virgin':
  352. temp_var = 2
  353. elseif ARGS[3] = 'mature':
  354. temp_var = 2
  355. else
  356. cls & '<b><font color="red">BAD ARGUMENT CHECK IN <i>$calc_npc_lactatemm_0</i>!</font> - Node ARGS[2] "none".</b>'
  357. end
  358. elseif ARGS[2] = 'induced':
  359. if ARGS[3] = 'virgin':
  360. temp_var = 20
  361. elseif ARGS[3] = 'mature':
  362. temp_var = 80
  363. else
  364. cls & '<b><font color="red">BAD ARGUMENT CHECK IN <i>$calc_npc_lactatemm_0</i>!</font> - Node ARGS[2] "induced".</b>'
  365. end
  366. elseif ARGS[2] = 'natural':
  367. if ARGS[3] = 'virgin':
  368. temp_var = 20
  369. elseif ARGS[3] = 'mature':
  370. temp_var = 80
  371. else
  372. cls & '<b><font color="red">BAD ARGUMENT CHECK IN <i>$calc_npc_lactatemm_0</i>!</font> - Node ARGS[2] "natural".</b>'
  373. end
  374. else
  375. cls & '<b><font color="red">BAD ARGUMENT CHECK IN <i>$calc_npc_lactatemm_0</i>!</font> - Root Node ARGS[2].</b>'
  376. end
  377. if ARGS[1] <= 0:
  378. RESULT = 0
  379. else
  380. RESULT = (ARGS[1]*temp_var*ARGS[4])/1000
  381. end
  382. end
  383. if $ARGS[0] = '$calc_lactatemm':
  384. !! func('lact_lib', 'calc_lactatemm')
  385. !! No arguments at the moment. Information is taken from the global variables 'nbsize', lactation['active'],'lactation['induced']','kid'.
  386. !! lactatemm should be calculated every day, so if the breasts size is changed naturally the lactatemm will get higher. No change when silicone tits happen. Only natural breast tissue should make milk.
  387. !! Usage: lactatemm = func('lact_lib','$calc_lactatemm')
  388. !! RESULT = lactatemm in ml*10
  389. if lactation['active'] = 0:
  390. RESULT = 0
  391. if breasttype <= 0: breasttype = 1
  392. elseif lactation['active'] >0:
  393. temp_breastsize = 0
  394. temp_breastsize += (nbsize + magicf2b)
  395. temp_var = 0
  396. if breasttype <= 0: breasttype = 1
  397. !! This if needs to be changed later. If the kid is lost during the pregnancy, Sveta may still went through full breast development. If changing something here, please contact milky_boobs in the forums.
  398. if kid <= 0 and breasttype = 0:
  399. temp_var = ((8*temp_breastsize*temp_breastsize)+(37*temp_breastsize))/8
  400. RESULT = temp_var
  401. elseif kid <= 0 and breasttype = 1:
  402. temp_var = ((8*temp_breastsize*temp_breastsize)+(37*temp_breastsize))/4
  403. RESULT = temp_var
  404. elseif kid <= 0 and breasttype = 2:
  405. temp_var = ((8*temp_breastsize*temp_breastsize)+(37*temp_breastsize))/2
  406. RESULT = temp_var
  407. elseif kid <= 0 and breasttype = 3:
  408. temp_var = ((8*temp_breastsize*temp_breastsize)+(37*temp_breastsize))
  409. RESULT = temp_var
  410. else
  411. RESULT = ((8*temp_breastsize*temp_breastsize)+(37*temp_breastsize))
  412. end
  413. else
  414. cls & '<b><font color="red">BAD ARGUMENT CHECK IN <i>$calc_lactatemm</i>!</font></b>'
  415. end
  416. end
  417. if $ARGS[0] = '$get_breastmilk_time':
  418. !! func('lact_lib','$get_breastmilk_time', sucktion_type, milk_demand)
  419. !! ARGS[1] = sucktion_type: the type of sucktion. adult_mouth [0], child_mouth [1], baby_mouth [2], manual_breastpump [3] , electric_breastpump [4], hand_expressing [5], cow milker [6], weak baby_mouth [7], stimulation during sex/sex play [8]
  420. !! ARGS[2] = milk_demand: how much milk is demanded. Warning: Should be ml and not in ml*10 for ease of use. :D
  421. !! RESULT = Time in Minutes
  422. !! Usage: breastmilktimetoget = func('lact_lib','$get_breastmilk_time', 2, 150)
  423. !! This function is just calculating the amount of time needed to get a specific amount of milk from svetas breasts. It is not pumping milk from her or changes anything else.
  424. !! If you want to milk sveta, use get_breastmilk.
  425. if lactation['active'] > 0:
  426. !! 'suck_flow_rate initialized' Base Rate of sucking is 10ml/minute.
  427. if ARGS[1] = 0:
  428. !! 'adult sucking'
  429. suck_flow_rate = 120
  430. elseif ARGS[1] = 1:
  431. !! 'child sucking'
  432. suck_flow_rate = 110
  433. elseif ARGS[1] = 2:
  434. !! 'baby sucking'
  435. suck_flow_rate = 80
  436. elseif ARGS[1] = 3:
  437. !! 'manual_breastpump sucking'
  438. suck_flow_rate = 180
  439. elseif ARGS[1] = 4:
  440. !! 'electric_breastpump sucking'
  441. suck_flow_rate = 400
  442. elseif ARGS[1] = 5:
  443. !! 'hand expression'
  444. suck_flow_rate = 105
  445. elseif ARGS[1] = 6:
  446. !! 'cow milker sucking'
  447. suck_flow_rate = 1000
  448. elseif ARGS[1] = 7:
  449. !! 'weak baby sucking'
  450. suck_flow_rate = 50
  451. temp_var = pcs_mood + ARGS[2]
  452. if temp_var > 100:
  453. pcs_mood = 100
  454. else
  455. pcs_mood += ARGS[2]
  456. end
  457. elseif ARGS[1] = 8:
  458. !! 'manual stimulation during sex/sex play'
  459. suck_flow_rate = 60
  460. else
  461. !! 'suck flow else branch'
  462. suck_flow_rate = 100
  463. end
  464. if pcs_nips > 0:
  465. max_nip_flow_rate = 60
  466. elseif pcs_nips > 20:
  467. max_nip_flow_rate = 80
  468. elseif pcs_nips > 40:
  469. max_nip_flow_rate = 100
  470. elseif pcs_nips > 60:
  471. max_nip_flow_rate = 120
  472. elseif pcs_nips > 80:
  473. max_nip_flow_rate = 140
  474. elseif pcs_nips > 100:
  475. max_nip_flow_rate = 160
  476. else
  477. max_nip_flow_rate = 100
  478. end
  479. if breastcounter > 0:
  480. temp_var = breastcounter/10
  481. soreness_mod += temp_var
  482. if soreness_mod > 20: soreness_mod = 20
  483. if nipple_cream = 1:
  484. soreness_mod += 20
  485. nipple_cream = 0
  486. end
  487. end
  488. nip_flow_mod = 1
  489. temp_var = breastcounter/10
  490. nip_flow_mod += temp_var
  491. if nip_flow > 30: nip_flow_mod = 30
  492. max_nip_flow_rate += nip_flow_mod
  493. if (lactaterate/60) < 1 and lactaterate > 0:
  494. temp_lactaterate = 1
  495. else
  496. temp_lactaterate = lactaterate/60
  497. end
  498. if lactatemv >= (ARGS[2]*10):
  499. if max_nip_flow_rate <= suck_flow_rate:
  500. temp_var = (ARGS[2]*10)/max_nip_flow_rate
  501. else
  502. temp_var = (ARGS[2]*10)/suck_flow_rate
  503. end
  504. RESULT = temp_var
  505. elseif lactatemv > 0 and lactatemv < (ARGS[2]*10):
  506. if max_nip_flow_rate <= suck_flow_rate:
  507. temp_var = lactatemv/max_nip_flow_rate
  508. temp_var2 = (ARGS[2]*10) - lactatemv
  509. if max_nip_flow_rate <= temp_lactaterate:
  510. temp_var += temp_var2/max_nip_flow_rate
  511. else
  512. temp_var += temp_var2/(temp_lactaterate*10)
  513. end
  514. else
  515. temp_var = lactatemv/suck_flow_rate
  516. temp_var2 = (ARGS[2]*10) - lactatemv
  517. if suck_flow_rate <= temp_lactaterate:
  518. temp_var += temp_var2/suck_flow_rate
  519. else
  520. temp_var += temp_var2/(temp_lactaterate*10)
  521. end
  522. end
  523. RESULT = temp_var
  524. elseif lactatemv <=0:
  525. if max_nip_flow_rate <= suck_flow_rate:
  526. if max_nip_flow_rate <= temp_lactaterate:
  527. temp_var = (ARGS[2]*10)/max_nip_flow_rate
  528. else
  529. temp_var = (ARGS[2]*10)/(temp_lactaterate*10)
  530. end
  531. else
  532. if suck_flow_rate <= temp_lactaterate:
  533. temp_var = (ARGS[2]*10)/suck_flow_rate
  534. else
  535. temp_var = (ARGS[2]*10)/(temp_lactaterate*10)
  536. end
  537. end
  538. RESULT = temp_var
  539. else
  540. RESULT = 0
  541. end
  542. else
  543. RESULT = 0
  544. end
  545. end
  546. if $ARGS[0] = '$get_breastmilk':
  547. !! func('lact_lib','$get_breastmilk', sucktion_type, sucktion_time)
  548. !! ARGS[1] = sucktion_type: the type of sucktion. adult_mouth [0], child_mouth [1], baby_mouth [2], manual_breastpump [3] , electric_breastpump [4], hand_expressing [5], cow milker [6], weak baby_mouth [7], stimulation during sex/sex play [8]
  549. !! ARGS[2] = sucktion_time: how many minutes the sucking/pumping takes place
  550. !! Usage: breastmilkvolume = func('lact_lib','$get_breastmilk', 4, 20)
  551. !! RESULT = Milk in ml*10
  552. !! Sveta, someone or something tries to milk Svetas breasts, so the daily variable breastpumped is switched on. This is used for the femcycle. If this is not switched on, possible changes like prolactinlvl etc go down.
  553. breastpumped = 1
  554. if soreness_mod <= 0: soreness_mod = 1
  555. !! what type of sucktion is happening? different sucktion can cause a different demand of breastmilk. Base rate of sucktion is 10ml/minute x 10. So if the sucktion rate is 10ml/min then suck_flow_rate = 100.
  556. if ARGS[1] = 0:
  557. !! 'adult sucking'
  558. suck_flow_rate = 120
  559. temp_var = pcs_mood +(ARGS[2]/8)
  560. if temp_var > 100:
  561. pcs_mood = 100
  562. else
  563. pcs_mood += ARGS[2]/8
  564. end
  565. elseif ARGS[1] = 1:
  566. !! 'child sucking'
  567. suck_flow_rate = 110
  568. temp_var = pcs_mood + (ARGS[2]/2)
  569. if temp_var > 100:
  570. pcs_mood = 100
  571. else
  572. pcs_mood += ARGS[2]/2
  573. end
  574. elseif ARGS[1] = 2:
  575. !! 'baby sucking'
  576. suck_flow_rate = 80
  577. temp_var = pcs_mood + ARGS[2]
  578. if temp_var > 100:
  579. pcs_mood = 100
  580. else
  581. pcs_mood += ARGS[2]
  582. end
  583. elseif ARGS[1] = 3:
  584. !! 'manual_breastpump sucking'
  585. suck_flow_rate = 180
  586. elseif ARGS[1] = 4:
  587. !! 'electric_breastpump sucking'
  588. suck_flow_rate = 400
  589. elseif ARGS[1] = 5:
  590. !! 'hand expression'
  591. suck_flow_rate = 105
  592. elseif ARGS[1] = 6:
  593. !! 'cow milker sucking'
  594. suck_flow_rate = 1000
  595. elseif ARGS[1] = 7:
  596. !! 'weak baby sucking'
  597. suck_flow_rate = 50
  598. temp_var = pcs_mood + ARGS[2]
  599. if temp_var > 100:
  600. pcs_mood = 100
  601. else
  602. pcs_mood += ARGS[2]
  603. end
  604. elseif ARGS[1] = 8:
  605. !! 'manual stimulation during sex/sex play'
  606. suck_flow_rate = 60
  607. else
  608. !! 'suck flow else branch'
  609. suck_flow_rate = 100
  610. end
  611. !! If you pump and work your breast more, soreness will decrease after pumping. This can also decline if your breasts arent worked for a longer time.
  612. if breastcounter > 0:
  613. temp_var = breastcounter/10
  614. soreness_mod += temp_var
  615. if soreness_mod > 30: soreness_mod = 30
  616. if nipple_cream = 1:
  617. soreness_mod += 20
  618. nipple_cream = 0
  619. end
  620. end
  621. !! If Sveta is not lactating we still need to do some actions. This is handled in here. Nipple pain + breast pain are applied as well as stamina is used.
  622. if lactation['active']<= 0:
  623. if milkoverdemand <= 0: milkoverdemand = 0
  624. pump_stop_brake = 0
  625. !! This is how much milk demand is applied to the breasts. In this function it is needed to calculate the nipple pain and breast pain.
  626. max_sucktion_demand = suck_flow_rate*ARGS[2]
  627. if pain['nipples'] <= 60:
  628. suck_until_pain = (((60 - pain['nipples'])*soreness_mod)*10)/(suck_flow_rate/18)
  629. end
  630. temp_var = pain['nipples'] + max_sucktion_demand/(soreness_mod*100)
  631. if temp_var > 60:
  632. pain['nipples'] = 65
  633. pump_stop_brake = 1
  634. pumptime = suck_until_pain
  635. max_sucktion_demand = suck_flow_rate*pumptime
  636. else
  637. pain['nipples'] += max_sucktion_demand/(soreness_mod*100)
  638. end
  639. temp_var = pain['breasts'] + max_sucktion_demand/10000
  640. if temp_var > 20:
  641. pain['breasts'] = 25
  642. else
  643. pain['breasts'] += max_sucktion_demand/10000
  644. end
  645. !! Pumping breasts is exhausting even if no milk comes. Pumping will impact the stamina of Sveta if she is not lactating.
  646. temp_var = pcs_stam - max_sucktion_demand/300
  647. if temp_var < 0:
  648. pcs_stam = 0
  649. !! energy usage flag on.
  650. energytomilkpump = 1
  651. pcs_sweat += pumptime/30
  652. else
  653. pcs_stam -= max_sucktion_demand/300
  654. pcs_sweat += pumptime/30
  655. !! energy usage flag on.
  656. energytomilkpump = 1
  657. end
  658. if pumptime < 10:
  659. breastcounter += 1
  660. else
  661. breastcounter += pumptime/10
  662. end
  663. milkoverdemand += max_sucktion_demand
  664. RESULT = 0
  665. elseif lactation['active'] > 0:
  666. !! How much milk can go through the nipple. Base rate is 10ml/minute (100) when sucktion is applied to the nipple. If the demand is higher than the nipple can push through, nipple soreness will happen more quickly.
  667. if pcs_nips > 0:
  668. max_nip_flow_rate = 60
  669. elseif pcs_nips > 20:
  670. max_nip_flow_rate = 80
  671. elseif pcs_nips > 40:
  672. max_nip_flow_rate = 100
  673. elseif pcs_nips > 60:
  674. max_nip_flow_rate = 120
  675. elseif pcs_nips > 80:
  676. max_nip_flow_rate = 140
  677. elseif pcs_nips > 100:
  678. max_nip_flow_rate = 160
  679. else
  680. max_nip_flow_rate = 100
  681. end
  682. !! If you pump more, more milk will be able to flow out, disregarding nipplesize. Svetas nipples will get used to have milk stream through them, grows and drops with the breastcounter.
  683. nip_flow_mod = 1
  684. nip_flow_mod += breastcounter
  685. if nip_flow > 400: nip_flow_mod = 400
  686. max_nip_flow_rate += nip_flow_mod
  687. !! How much milk demand is applied to the breasts.
  688. max_sucktion_demand = suck_flow_rate*ARGS[2]
  689. !! We want to know if we can just suck out what is already stored or if additional milk production is needed to go through the whole pumping/sucking.
  690. !! If we only need 20ml from a 100ml storage, we would only substract 20ml, leaving 80ml inside the breasts.
  691. !! Also lets make sure we start at zero from the stuff we get from Sveta.
  692. milkedvolume = 0
  693. !! Case: Enough milk in Svetas breasts, covering the demand
  694. if lactatemv >= max_sucktion_demand:
  695. !! Checking if svetas nipple flow is enough to serve the demand. If yes - get the demand; If no - get what she is able to give us.
  696. if max_nip_flow_rate >= suck_flow_rate:
  697. milkedvolume = max_sucktion_demand
  698. lactatemv -= max_sucktion_demand
  699. else:
  700. milkedvolume = max_nip_flow_rate*ARGS[2]
  701. lactatemv -= milkedvolume
  702. end
  703. !! Case: Not enough milk in Svetas breasts.
  704. elseif lactatemv < max_sucktion_demand:
  705. !! We have two sub cases in this one. Sveta has no lactatemv and Sveta has not enough lactatemv. This means she has to produce more milk, but first we need to know how much is needed.
  706. !! temp_var will be the amount of milk Sveta has to produce to serve the demand. pump time left is the time left after lactatemv is drained.
  707. if lactatemv <= 0:
  708. temp_var = max_sucktion_demand
  709. pumptime_left = ARGS[2]
  710. else
  711. temp_var = max_sucktion_demand - lactatemv
  712. if max_nip_flow_rate >= suck_flow_rate:
  713. pumptime_left = ARGS[2] - (lactatemv/suck_flow_rate)
  714. else
  715. pumptime_left = ARGS[2] - (lactatemv/max_nip_flow_rate)
  716. end
  717. if pumptime_left < 0: pumptime_left = 0
  718. end
  719. !! Now we know how much time we have and how much demand we have. Time to check if Sveta can do it.
  720. !! For the case, that svetas milk flow is not big enough pumptime left will be 0, therefore this is handled here.
  721. if pumptime_left >0:
  722. if max_nip_flow_rate >= suck_flow_rate:
  723. !! the lactaterate is per hour, so it is possible that lactaterate will end up being zero when devided by 60. therefore everything here is multiplied by 100.
  724. if (suck_flow_rate*100) <= ((lactaterate*100)/60):
  725. milkedvolume += suck_flow_rate*pumptime_left
  726. else
  727. milkedvolume += ((((lactaterate*100)/60)*pumptime_left)/100)
  728. breastcounter += 2
  729. end
  730. else
  731. !! Same here as above.
  732. if (max_nip_flow_rate*100) <= ((lactaterate*100)/60):
  733. milkedvolume += max_nip_flow_rate*pumptime_left
  734. breastcounter += 2
  735. else
  736. milkedvolume += ((((lactaterate*100)/60)*pumptime_left)/100)
  737. breastcounter += 2
  738. end
  739. end
  740. !! Produced milk needs to be subtracted from the hourly lactate rate, so femcycle is only adding the milk that was not produced yet in the next hour
  741. if pumptime_left > 60:
  742. if ((pumptime_left*100)/60) > 100:
  743. lactaterate_use -= ((((lactaterate*100)/60)*(pumptime_left mod 60))/100)
  744. else
  745. lactaterate_use = lactaterate
  746. end
  747. else
  748. if lactaterate >= lactaterate_use:
  749. lactaterate_use -= milkedvolume
  750. else
  751. lactaterate_use = lactaterate
  752. end
  753. end
  754. if lactaterate_use <= 0: lactaterate_use = 0
  755. !! Sveta had to make milk, so she needs to use some of her body resources to make the milk.
  756. if milkedvolume > 0:
  757. !! energy usage flag on. Can be used in events to show that sveta is getting hungry or thirsty
  758. energytomilkpump = 1
  759. pcs_stam -= max_sucktion_demand/300
  760. if pcs_stam <= 0: pcs_stam = 0
  761. pcs_sweat += pumptime/30
  762. pcs_hydra -= milkedvolume/120
  763. if pcs_hydra < 1: pcs_hydra = 1
  764. pcs_energy -= milkedvolume/1200
  765. end
  766. end
  767. !! Now we check if sveta was able to make it or not. If not we have milk overdemand which will be used in femcycle to make her produce more milk next day.
  768. if temp_var > milkedvolume:
  769. milkoverdemand += (temp_var - milkedvolume)
  770. end
  771. !! time to add the pumped lactatemv to the milkedvolume and empty lactatemv.
  772. milkedvolume += lactatemv
  773. lactatemv = 0
  774. !! Here we have nipple and breastpain. The idea is - if there is more sucktion than the nipples can take more pain is applied. If the breasts make less milk then demanded pain to the breasts is applied.
  775. !! Else - there will only be nipple pain.
  776. if max_nip_flow_rate < suck_flow_rate:
  777. temp_var = pain['nipples'] + ((suck_flow_rate - max_nip_flow_rate)*100*ARGS[2])/2000 - (soreness_mod*ARGS[2])*15
  778. if temp_var >= 60:
  779. pain['nipples'] = 65
  780. elseif temp_var <= 0:
  781. pain['nipples'] += 1
  782. else
  783. pain['nipples'] += (((suck_flow_rate - max_nip_flow_rate)*100*ARGS[2])/2000 - (soreness_mod*ARGS[2])*15)
  784. end
  785. else
  786. if ARGS[2] < 10:
  787. pain['nipples'] += 1
  788. elseif ARGS[2] >= 10 and soreness_mod > ARGS[2]:
  789. pain['nipples'] += 1
  790. else
  791. pain['nipples'] += (ARGS[2]/10 - soreness_mod/10)
  792. end
  793. end
  794. if max_nip_flow_rate >= suck_flow_rate:
  795. if (suck_flow_rate*100) > ((lactaterate*100)/60):
  796. temp_var = pain['breasts'] + (((suck_flow_rate*100)-((lactaterate*100)/60))*pumptime_left)/1000
  797. if temp_var > 20:
  798. pain['breasts'] = 20
  799. else
  800. pain['breasts'] += (((suck_flow_rate*100)-((lactaterate*100)/60))*pumptime_left)/1000
  801. end
  802. end
  803. else
  804. if (max_nip_flow_rate*100) > ((lactaterate*100)/60):
  805. temp_var = pain['breasts'] + (((max_nip_flow_rate*100)-((lactaterate*100)/60))*pumptime_left)/1000
  806. if temp_var > 20:
  807. pain['breasts'] = 20
  808. else
  809. pain['breasts'] += (((max_nip_flow_rate*100)-((lactaterate*100)/60))*pumptime_left)/1000
  810. end
  811. end
  812. end
  813. end
  814. if pumptime < 10:
  815. breastcounter += 1
  816. else
  817. breastcounter += pumptime/10
  818. end
  819. !! Done - Result is the milked volume.
  820. RESULT = milkedvolume
  821. end
  822. end
  823. !! bp_milking - breast pump milking
  824. !! use href="exec:gt ''lact_lib'',''bp_milking''"
  825. if $ARGS[0] = 'bp_milking':
  826. pumptime = 0
  827. pumptype = 0
  828. gs 'lact_lib', 'reg_bottle_count'
  829. if pump_bottletype < 1500: pump_bottletype = 1500
  830. if $location_type ! 'bathroom' and pcs_inhib < 30:
  831. 'You aren''t confident enough to do that here.'
  832. act 'Finish': menu_off = 0 & gt $loc, $metka
  833. elseif bp_unbox <= 0:
  834. 'You need to unbox your breast pump first.'
  835. act 'Finish': menu_off = 0 & gt $loc, $metka
  836. elseif bp_unbox = 1 and ($location_type = 'bathroom' or $location_type = 'private'):
  837. gt 'lact_lib', 'bp_unbox_event'
  838. else
  839. *clr
  840. cla
  841. '<center><img <<$set_imgh>> src="images/pc/body/tits/breast_pump.jpg"></center>'
  842. 'How long do you want to pump your breasts with the manual breast pump?'
  843. if func('lact_lib','useable_sbottle_count') > 0 and func('lact_lib','useable_mbottle_count') > 0:
  844. if func('lact_lib','useable_sbottle_count') > 0 and pump_bottletype = 1500:
  845. 'Current bottle size in use: &gt;150ml | <a href="exec:pump_bottletype = 2500 & gt ''lact_lib'', ''bp_milking''">250ml</a>'
  846. elseif func('lact_lib','useable_mbottle_count') > 0:
  847. pump_bottletype = 2500
  848. 'Current bottle size in use <a href="exec:pump_bottletype = 1500 & gt ''lact_lib'', ''bp_milking''">150ml</a> | &gt;250ml'
  849. else
  850. 'this should not end up here - got to tfg forums.'
  851. end
  852. elseif func('lact_lib','useable_sbottle_count') > 0 and func('lact_lib','useable_mbottle_count') <= 0:
  853. pump_bottletype = 1500
  854. 'You currently use a 150ml bottle on your breast pump.'
  855. elseif func('lact_lib','useable_sbottle_count') <= 0 and func('lact_lib','useable_mbottle_count') > 0:
  856. pump_bottletype = 2500
  857. 'You currently use a 250ml bottle on your breast pump.'
  858. else
  859. 'You have no bottles left to use. Please empty bottles or buy new ones in the pharmacy.'
  860. end
  861. if (bpbottlem + bpbottles) = 1:
  862. 'You have one bottle. You can check it <a href="exec:gs ''lact_lib'',''view_milk_bottles'', 1">here</a>'
  863. elseif (bpbottlem + bpbottles) > 1:
  864. 'You have <<bpbottlem + bpbottles>> bottles. You can check them <a href="exec:gs ''lact_lib'',''view_milk_bottles'', 1">here</a>'
  865. end
  866. if lactatemv > 0 and (func('lact_lib','useable_sbottle_count') > 0 or func('lact_lib','useable_mbottle_count') > 0):
  867. pumptime = (func('lact_lib','$get_breastmilk_time', 3, (lactatemv/10)))
  868. if pumptime > 5:
  869. pumptime -= 2
  870. end
  871. if pumptime > 60:
  872. act 'Pump until breasts are empty':
  873. *clr
  874. cla
  875. minut += 2
  876. 'As you prepare for pumping you weight your breasts in your hands. You feel that your breasts carry a large amount of milk and pumping will probably take a long time.'
  877. 'Getting relieve for your breasts with the manual breast pump will probably take at least <<pumptime>> minutes.'
  878. if pcs_know_mward <= 0:
  879. 'You consider visiting a hospital to get help or buying a better breastpump.'
  880. pcs_ask_mward_help = 1
  881. pcs_knows_electric_pump = 1
  882. end
  883. 'Do you want to continue?'
  884. act 'Don''t pump':gt $loc, $metka
  885. act 'Continue':
  886. gt 'lact_lib', 'milking'
  887. end
  888. end
  889. elseif pumptime <= 0:
  890. act 'Pump until breasts are empty':
  891. *clr
  892. cla
  893. minut += 2
  894. 'As you prepare for pumping you weight your breasts in your hands. Your breasts feel really empty. There is no need to pump now.'
  895. act 'Don''t pump':gt $loc, $metka
  896. act 'back':gt 'lact_lib', 'bp_milking'
  897. end
  898. else
  899. act 'Pump until breasts are empty':
  900. pumptime = func('lact_lib','$get_breastmilk_time', 3, (lactatemv/10))
  901. if pumptime > 5:
  902. pumptime -= 2
  903. end
  904. gt 'lact_lib', 'milking'
  905. end
  906. end
  907. end
  908. if (func('lact_lib','useable_sbottle_count') > 0 or func('lact_lib','useable_mbottle_count') > 0):
  909. act '15 Minutes':
  910. pumptime = 15
  911. gt 'lact_lib', 'milking'
  912. end
  913. act '30 Minutes':
  914. pumptime = 30
  915. gt 'lact_lib', 'milking'
  916. end
  917. act 'Custom':
  918. pumptime = input ("How long do you plan to pump your breasts? (Not more than 60 minutes)")
  919. if pumptime <= 0 or pumptime > 60:
  920. minut += 2
  921. act 'Don''t pump':menu_off = 0 & gt $loc, $metka
  922. act 'back':gt 'lact_lib', 'bp_milking'
  923. elseif pumptime > 0 and pumptime <= 60:
  924. gt 'lact_lib', 'milking'
  925. end
  926. end
  927. end
  928. if lactation['active'] > 0 and pcs_knowsaboutlactation > 0:
  929. act 'Manually milk your breasts': gt 'lact_lib','man_milking'
  930. else
  931. act 'Massage your breasts': gt 'lact_lib','man_milking'
  932. end
  933. act 'Don''t pump':menu_off = 0 & gt $loc, $metka
  934. end
  935. end
  936. !! man_milking - manual (with hands) milking
  937. !! use href="exec:gt ''lact_lib'',''man_milking''"
  938. !! for manual milk expression in bathrooms etc. please use this function.
  939. if $ARGS[0] = 'massage':
  940. if breastcounter <= 0:
  941. temp_var = 50
  942. else
  943. temp_var = (50/breastcounter)
  944. end
  945. if (($location_type ! 'bathroom' and pcs_inhib >= 30) or $location_type = 'bathroom' and breastpump = 0) and pcs_horny >= temp_var:
  946. if lactation['active'] > 0 and pcs_knowsaboutlactation > 0:
  947. act 'Milk your breasts': gt 'lact_lib','man_milking'
  948. else
  949. act 'Massage your breasts': gt 'lact_lib','man_milking'
  950. end
  951. end
  952. end
  953. if $ARGS[0] = 'man_milking':
  954. pumptime = 0
  955. *clr
  956. cla
  957. gs 'lact_lib', 'reg_bottle_count'
  958. if lactation['active'] > 0 and pcs_knowsaboutlactation > 0:
  959. 'How long do you want to milk your breasts?'
  960. else
  961. 'How long do you want to massage your breasts?'
  962. end
  963. if lactatemv > 0:
  964. pumptime = (func('lact_lib','$get_breastmilk_time', 5, (lactatemv/10)))
  965. if pumptime > 60:
  966. act 'Express until breasts are empty':
  967. *clr
  968. cla
  969. minut += 2
  970. 'You prepare yourself and weight your breasts in your hands. You feel that your breasts carry a large amount of milk and manually expressing it will probably take a long time.'
  971. 'Getting relieve for your breasts with manual expression will probably take at least <<pumptime>> minutes.'
  972. if breastpump <= 0 and bp_unbox <= 1:
  973. 'You should consider buying a breastpump'
  974. elseif breastpump = 1 and bp_unbox <= 1 and pain['nipples'] <= 60:
  975. 'You should consider using your breastpump.'
  976. else
  977. 'You should consider the use of a breastpump.'
  978. end
  979. 'Do you want to continue?'
  980. act 'Don''t express':menu_off = 0 & gt $loc, $metka
  981. act 'Express your milk':
  982. gt 'lact_lib', 'hand_milking'
  983. end
  984. end
  985. elseif pumptime <= 0:
  986. act 'Express milk until breasts are empty':
  987. *clr
  988. cla
  989. minut += 2
  990. 'As you prepare yourself you feel your breasts in your hands. Your breasts feel really empty. There is no need to express now.'
  991. act 'Don''t express milk':menu_off = 0 & gt $loc, $metka
  992. act 'back':gt 'lact_lib', 'man_milking'
  993. end
  994. else
  995. act 'Express until breasts are empty':
  996. pumptime = func('lact_lib','$get_breastmilk_time', 5, (lactatemv/10))
  997. gt 'lact_lib', 'hand_milking'
  998. end
  999. end
  1000. end
  1001. act '5 Minutes':
  1002. pumptime = 5
  1003. gt 'lact_lib', 'hand_milking'
  1004. end
  1005. act '10 Minutes':
  1006. pumptime = 10
  1007. gt 'lact_lib', 'hand_milking'
  1008. end
  1009. act 'Custom':
  1010. if lactation['active'] > 0 and pcs_knowsaboutlactation > 0:
  1011. pumptime = input ("How long do you plan to milk your breasts? (Not more than 60 minutes)")
  1012. else
  1013. pumptime = input ("How long do you plan to massage your breasts? (Not more than 60 minutes)")
  1014. end
  1015. if pumptime <= 0 or pumptime > 60:
  1016. minut += 2
  1017. if lactation['active'] > 0 and pcs_knowsaboutlactation > 0:
  1018. act 'Don''t express':gt $loc, $metka
  1019. else
  1020. act 'Don''t massage':gt $loc, $metka
  1021. end
  1022. act 'back':gt 'lact_lib', 'man_milking'
  1023. elseif pumptime > 0 and pumptime <= 60:
  1024. gt 'lact_lib', 'hand_milking'
  1025. end
  1026. end
  1027. if lactation['active'] > 0 and pcs_knowsaboutlactation > 0:
  1028. act 'Don''t express':menu_off = 0 & gt $loc, $metka
  1029. else
  1030. act 'Don''t massage':menu_off = 0 & gt $loc, $metka
  1031. end
  1032. end
  1033. if $ARGS[0] = 'bp_unbox_event':
  1034. if bp_unbox <= 0:
  1035. *clr
  1036. cla
  1037. minut += 5
  1038. if $location_type = 'bathroom':
  1039. 'You push down the toilet seat to sit down and slowly start to unbox your newly aquirred breast pump.'
  1040. elseif $location_type = 'private' and $locclass = 'bedr':
  1041. 'You sit down on your bed and slowly start to unbox your newly aquirred breast pump.'
  1042. elseif $location_type = 'private':
  1043. 'You sit down and slowly start to unbox your newly aquirred breast pump.'
  1044. end
  1045. if kid <= 0 and preg <= 0 and pregtimes <= 0 and pregchem <= 0 and bp_unbox <= 0:
  1046. 'While examining it, you think about why you bought it in the first place. You are not pregnant nor do you have a kid that needs breast milk.'
  1047. if lactation['active'] <= 0:
  1048. 'Your breasts haven''t got any milk in them too, so it seems this pump is a bit useless.'
  1049. else
  1050. 'At least it can help to get the milk out of your breasts.'
  1051. end
  1052. end
  1053. if $location_type = 'private':
  1054. '<center><img <<$set_imgh>> src="images/pc/body/tits/pump_unboxing.jpg"></center>'
  1055. elseif $location_type = 'bathroom':
  1056. '<center><img <<$set_imgh>> src="images/pc/body/tits/pump_unboxing_bath.jpg"></center>'
  1057. else
  1058. '<center><img <<$set_imgh>> src="images/pc/body/tits/pump_unboxing_bath.jpg"></center>'
  1059. end
  1060. !! creating first 150ml bottle
  1061. bpbottles += 1
  1062. gs 'lact_lib', 'reg_bottle_count'
  1063. !! Actions
  1064. if (pcs_inhib > 40 and $location_type = 'private') or $location_type = 'bathroom':
  1065. act 'Try out how it works':
  1066. *clr
  1067. cla
  1068. 'You pull up your top to release your breasts'
  1069. '<br><center><img <<$set_imgh>> src="images/pc/body/tits/t<<tits>>.jpg"></center><br>'
  1070. 'Your fingers glide around the sucktion cup of the breast pump, while your other hand holds the pump.'
  1071. 'Making sure that no one is around, you lift the breast pump to your left breast. The cold cone feels uncomfortable on your nipple.'
  1072. milkedvolume = func('lact_lib','$get_breastmilk', 3, 1)
  1073. minut += 1
  1074. bp_unbox = 2
  1075. if lactation['active'] > 0 and milkedvolume > 0:
  1076. if milkedvolume <= 50:
  1077. 'You start to squeeze the bulb. Your nipple is sucked into the cone, getting elongated a bit. It feels weird at first and you release the lever, the sucktion on your nipple goes away and the nipple retracts.'
  1078. 'With your hand you squeeze down again, your nipple sucked in again. You go on, and start to rythmically squeeze it. The pump starts to draw milk from your breast.'
  1079. 'You go on for a minute and then detach the pump. You collected some milk, but it is just a small puddle in the bottle.'
  1080. '<br><center><img <<$set_imgh>> src="images/pc/body/tits/pump_milkdrops.jpg"></center>'
  1081. elseif milkedvolume > 50 and milkedvolume <= 1500:
  1082. 'You start to squeeze the bulb. Your nipple is sucked into the cone, getting elongated a bit. It feels weird at first and you release the lever, the sucktion on your nipple goes away and the nipple retracts.'
  1083. 'With your hand you squeeze down again, your nipple sucked in again. You go on, and start to rythmically squeeze it. The pump starts to draw milk from your breast.'
  1084. 'You go on for a minute and then detach the pump. You collected <<milkedvolume/10>>ml of your breastmilk.'
  1085. '<br><center><img <<$set_imgh>> src="images/pc/body/tits/pump_half.jpg"></center>'
  1086. else
  1087. 'You start to squeeze the bulb. Your nipple is sucked into the cone, getting elongated a bit. It feels weird at first and you release the lever, the sucktion on your nipple goes away and the nipple retracts.'
  1088. 'With your hand you squeeze down again, your nipple sucked in again. You go on, and start to rythmically squeeze it. The pump starts to draw milk from your breast.'
  1089. 'You go on for a minute and then detach the pump. You easily filed the breast pump bottle with your breast milk just with this little pumping.'
  1090. '<br><center><img <<$set_imgh>> src="images/pc/body/tits/pump_full.jpg"></center>'
  1091. end
  1092. 'You nod at the breast pump, thinking it will come in handy.'
  1093. elseif lactation['active'] > 0 and milkedvolume <= 0:
  1094. 'You start to squeeze the bulb. Your nipple is sucked into the cone, getting elongated a bit. It feels weird at first and you release the lever, the sucktion on your nipple goes away and the nipple retracts.'
  1095. 'With your hand you squeeze down again, your nipple sucked in again. You go on, and start to rythmically squeeze it.'
  1096. 'You go on for a minute and then detach the pump. You collected some milk, but it is just a small puddle in the bottle.'
  1097. '<br><center><img <<$set_imgh>> src="images/pc/body/tits/pump_milkdrops.jpg"></center>'
  1098. else
  1099. 'You start to squeeze the bulb. Your nipple is sucked into the cone, getting elongated a bit. It feels weird at first and you release the lever, the sucktion on your nipple goes away and the nipple retracts.'
  1100. 'With your hand you squeeze down again, your nipple sucked in again. You go on, and start to rythmically squeeze it.'
  1101. 'You go on for a minute and then detach the pump. As expected no milk was collected in the bottle.'
  1102. '<br><center><img <<$set_imgh>> src="images/pc/body/tits/breast_pump.jpg"></center>'
  1103. end
  1104. if lactation['active'] > 0 and pain['nipples'] < 60 and pcs_knowsaboutlactation <= 0:
  1105. if pcs_usedbreastpumponherself > 0 and pcs_massagedherbreasts <= 0:
  1106. 'You are surprised to see that you are lactating!'
  1107. lactation['induced'] = 1
  1108. elseif pcs_usedbreastpumponherself <= 0 and pcs_massagedherbreasts > 0:
  1109. 'Regularily massaging your breasts probably made you lactate!<br>'
  1110. lactation['induced'] = 1
  1111. elseif pcs_usedbreastpumponherself > 0 and pcs_massagedherbreasts > 0:
  1112. 'All that pumping and massaging your breasts probably caused you to lactate!<br>'
  1113. lactation['induced'] = 1
  1114. else
  1115. 'To your surprise it is milk. You started lactating!<br>'
  1116. if thinkpreg = 1 or knowpreg = 1:
  1117. 'This is probably happening because you are pregnant.'
  1118. else
  1119. 'You should have this checked out by a doctor. You could be pregnant.'
  1120. end
  1121. lactation['induced'] = 0
  1122. end
  1123. pcs_knowsaboutlactation = 1
  1124. end
  1125. act 'continue':
  1126. *clr
  1127. cla
  1128. if milkedvolume > 50 and $location_type = 'private':
  1129. 'You look at the milk in the bottle and then around the room. Having no idea what to do with the excess milk, you look at it and suddenly sip it down.'
  1130. 'It is your milk, so it should be okay to drink it.'
  1131. '<center><img <<$set_imgh>> src="images/pc/body/tits/milk_drink.jpg"></center>'
  1132. '<center>The milk is still warm from your breasts.</center>'
  1133. pcs_health += milkedvolume/400
  1134. pcs_energy += milkedvolume/500
  1135. if pcs_hydra >= 100:
  1136. pcs_hydra += milkedvolume/200
  1137. else
  1138. pcs_hydra += milkedvolume/100
  1139. end
  1140. minut += ((milkedvolume/1000) + 3)
  1141. act 'Finish': menu_off = 0 & gt $loc, $metka
  1142. else
  1143. 'You clean up your pump and cover your breasts again.'
  1144. act 'Finish': menu_off = 0 & gt $loc, $metka
  1145. end
  1146. end
  1147. bp_unbox = 2
  1148. end
  1149. end
  1150. act 'Don''t try it here':
  1151. *clr
  1152. cla
  1153. 'You look around you, not feeling to comfortable to use the breast pump here.'
  1154. bp_unbox = 1
  1155. act 'Finish': menu_off = 0 & gt $loc, $metka
  1156. end
  1157. elseif bp_unbox = 1:
  1158. if $location_type = 'private' and pcs_inhib < 40:
  1159. 'You can''t do this here'
  1160. act 'Finish': menu_off = 0 & gt $loc, $metka
  1161. else
  1162. 'You pull up your top to release your breasts'
  1163. '<br><center><img <<$set_imgh>> src="images/pc/body/tits/t<<tits>>.jpg"></center><br>'
  1164. 'Your fingers glide around the sucktion cup of the breast pump, while your other hand holds the pump.'
  1165. 'Making sure that no one is around, you lift the breast pump to your left breast. The cold cone feels uncomfortable on your nipple.'
  1166. milkedvolume = func('lact_lib','$get_breastmilk', 3, 1)
  1167. minut += 1
  1168. bp_unbox = 2
  1169. if lactation['active'] > 0 and milkedvolume > 0:
  1170. if milkedvolume <= 50:
  1171. 'You start to squeeze the bulb. Your nipple is sucked into the cone, getting elongated a bit. It feels weird at first and you release the lever, the sucktion on your nipple goes away and the nipple retracts.'
  1172. 'With your hand you squeeze down again, your nipple sucked in again. You go on, and start to rythmically squeeze it. The pump starts to draw milk from your breast.'
  1173. 'You go on for a minute and then detach the pump. You collected some milk, but it is just a small puddle in the bottle.'
  1174. '<br><center><img <<$set_imgh>> src="images/pc/body/tits/pump_milkdrops.jpg"></center>'
  1175. elseif milkedvolume > 50 and milkedvolume <= 1500:
  1176. 'You start to squeeze the bulb. Your nipple is sucked into the cone, getting elongated a bit. It feels weird at first and you release the lever, the sucktion on your nipple goes away and the nipple retracts.'
  1177. 'With your hand you squeeze down again, your nipple sucked in again. You go on, and start to rythmically squeeze it. The pump starts to draw milk from your breast.'
  1178. 'You go on for a minute and then detach the pump. You collected <<milkedvolume/10>>ml of your breastmilk.'
  1179. '<br><center><img <<$set_imgh>> src="images/pc/body/tits/pump_half.jpg"></center>'
  1180. else
  1181. 'You start to squeeze the bulb. Your nipple is sucked into the cone, getting elongated a bit. It feels weird at first and you release the lever, the sucktion on your nipple goes away and the nipple retracts.'
  1182. 'With your hand you squeeze down again, your nipple sucked in again. You go on, and start to rythmically squeeze it. The pump starts to draw milk from your breast.'
  1183. 'You go on for a minute and then detach the pump. You easily filed the breast pump bottle with your breast milk just with this little pumping.'
  1184. '<br><center><img <<$set_imgh>> src="images/pc/body/tits/pump_full.jpg"></center>'
  1185. end
  1186. 'You nod at the breast pump, thinking it will come in handy.'
  1187. elseif lactation['active'] > 0 and milkedvolume <= 0:
  1188. 'You start to squeeze the bulb. Your nipple is sucked into the cone, getting elongated a bit. It feels weird at first and you release the lever, the sucktion on your nipple goes away and the nipple retracts.'
  1189. 'With your hand you squeeze down again, your nipple sucked in again. You go on, and start to rythmically squeeze it.'
  1190. 'You go on for a minute and then detach the pump. You collected some milk, but it is just a small puddle in the bottle.'
  1191. '<br><center><img <<$set_imgh>> src="images/pc/body/tits/pump_milkdrops.jpg"></center>'
  1192. else
  1193. 'You start to squeeze the bulb. Your nipple is sucked into the cone, getting elongated a bit. It feels weird at first and you release the lever, the sucktion on your nipple goes away and the nipple retracts.'
  1194. 'With your hand you squeeze down again, your nipple sucked in again. You go on, and start to rythmically squeeze it.'
  1195. 'You go on for a minute and then detach the pump. As expected no milk was collected in the bottle.'
  1196. '<br><center><img <<$set_imgh>> src="images/pc/body/tits/breast_pump.jpg"></center>'
  1197. end
  1198. act 'continue':
  1199. *clr
  1200. cla
  1201. if milkedvolume > 50 and $location_type = 'private':
  1202. 'You look at the milk in the bottle and then around the room. Having no idea what to do with the excess milk, you look at it and suddenly sip it down.'
  1203. 'It is your milk, so it should be okay to drink it.'
  1204. '<center><img <<$set_imgh>> src="images/pc/body/tits/milk_drink.jpg"></center>'
  1205. '<center>The milk is still warm from your breasts.</center>'
  1206. pcs_health += milkedvolume/400
  1207. pcs_energy += milkedvolume/500
  1208. if pcs_hydra >= 100:
  1209. pcs_hydra += milkedvolume/200
  1210. else
  1211. pcs_hydra += milkedvolume/100
  1212. end
  1213. minut += ((milkedvolume/1000) + 3)
  1214. act 'Finish': menu_off = 0 & gt $loc, $metka
  1215. else
  1216. 'You clean up your pump and cover your breasts again.'
  1217. act 'Finish': menu_off = 0 & gt $loc, $metka
  1218. end
  1219. end
  1220. end
  1221. elseif bp_unbox >= 2:
  1222. *clr
  1223. cla
  1224. 'You unboxed your breast pump already.'
  1225. act 'Finish': menu_off = 0 & gt $loc, $metka
  1226. end
  1227. end
  1228. if $ARGS[0] = 'reg_bottle_count':
  1229. if reg_bottles_count <= 0: reg_bottles_count = 0
  1230. if reg_bottlem_count <= 0: reg_bottlem_count = 0
  1231. if (reg_bottlem_count + reg_bottles_count) < (bpbottlem + bpbottles):
  1232. :rbc_loop
  1233. rbc_index = (reg_bottlem_count + reg_bottles_count) - 1
  1234. if (bpbottles - reg_bottles_count) > 0:
  1235. reg_bottles_count += 1
  1236. rbc_index = (reg_bottlem_count + reg_bottles_count) - 1
  1237. mbarrtype[rbc_index] = 1500
  1238. mbarrfill[rbc_index] = 0
  1239. mbarrmage[rbc_index] = 0
  1240. mbarrcool[rbc_index] = 0
  1241. $mbarrstat[rbc_index] = 'none'
  1242. $mbarrtemp[rbc_index] = 'none'
  1243. mbarrloca[rbc_index] = 1
  1244. jump 'rbc_loop'
  1245. end
  1246. if (bpbottlem - reg_bottlem_count) > 0:
  1247. reg_bottlem_count += 1
  1248. rbc_index = (reg_bottlem_count + reg_bottles_count) - 1
  1249. mbarrtype[rbc_index] = 2500
  1250. mbarrfill[rbc_index] = 0
  1251. mbarrmage[rbc_index] = 0
  1252. mbarrcool[rbc_index] = 0
  1253. $mbarrstat[rbc_index] = 'none'
  1254. $mbarrtemp[rbc_index] = 'none'
  1255. mbarrloca[rbc_index] = 1
  1256. jump 'rbc_loop'
  1257. end
  1258. end
  1259. end
  1260. !! milking
  1261. !! never use directly. Always use bp_milking, man_milking or sex_milking
  1262. if $ARGS[0] = 'milking':
  1263. gs 'lact_lib', 'reg_bottle_count'
  1264. if lactation['active'] > 0 and pain['nipples'] < 60:
  1265. milkedvolume = func('lact_lib','$get_breastmilk', 3, pumptime)
  1266. !!act 'Finish':menu_off = 0 & gt $loc, $metka
  1267. bp_used_mbottle = 0
  1268. bp_used_sbottle = 0
  1269. bp_useable_sbottle = func('lact_lib','useable_sbottle_count')
  1270. bp_useable_mbottle = func('lact_lib','useable_mbottle_count')
  1271. pump_timestamp = func('lact_lib','time_stamp')
  1272. '<center><img <<$set_imgh>> src="images/pc/body/tits/pump_lactating.jpg"></center>'
  1273. if pumptime > 1:
  1274. 'You attach the pump to your breast and start rythmically squeezing the bulb for <<pumptime>> minutes.'
  1275. else
  1276. 'You attach the pump to your breast and start rythmically squeezing the bulb for one minute.'
  1277. end
  1278. if milkedvolume > pump_bottletype and (bp_useable_sbottle*1500 + bp_useable_mbottle*2500) = pump_bottletype:
  1279. 'During pumping you have to empty the collecting bottle as it filled up with your milk.'
  1280. 'You give it a few more pumps and detach the pump.<br>You filled the bottle with <<pump_bottletype/10>>ml of your milk.'
  1281. 'To collect all your pumped milk you should probably check if the pharmacy has additional bottles for your breast pump.'
  1282. if (bp_useable_sbottle - bp_used_sbottle) > 0:
  1283. bottlecounter = 0
  1284. :sbottle_loneloop
  1285. if bottlecounter < (bpbottlem + bpbottles) and milkedvolume > 1500:
  1286. if mbarrtype[bottlecounter] = 1500 and mbarrfill[bottlecounter] = 0:
  1287. func('lact_lib','fill_milk_bottle',bottlecounter,1500)
  1288. jump 'bottlefull_loopbreak'
  1289. end
  1290. bottlecounter += 1
  1291. jump 'sbottle_loneloop'
  1292. end
  1293. elseif (bp_useable_mbottle - bp_used_mbottle) > 0 and milkedvolume > 2500:
  1294. bottlecounter = 0
  1295. :mbottle_loneloop
  1296. if bottlecounter < (bpbottlem + bpbottles):
  1297. if mbarrtype[bottlecounter] = 2500 and mbarrfill[bottlecounter] = 0:
  1298. func('lact_lib','fill_milk_bottle',bottlecounter,2500)
  1299. jump 'bottlefull_loopbreak'
  1300. end
  1301. bottlecounter += 1
  1302. jump 'mbottle_loneloop'
  1303. end
  1304. else
  1305. 'unhandled case - you shouldn''t end up here. Please report this in the bug section of Girl Life in the tfg-forums.'
  1306. 'first fork case'
  1307. 'bp_used_mbottle: <<bp_used_mbottle>>'
  1308. 'bp_used_sbottle: <<bp_used_sbottle>>'
  1309. 'milkedvolume: <<milkedvolume>>'
  1310. 'pump_bottletype: <<pump_bottletype>>'
  1311. 'bp_useable_sbottle: <<bp_useable_sbottle>>'
  1312. 'bp_useable_mbottle: <<bp_useable_mbottle>>'
  1313. end
  1314. :bottlefull_loopbreak
  1315. elseif milkedvolume > pump_bottletype and (bp_useable_sbottle*1500 + bp_useable_mbottle*2500) > pump_bottletype:
  1316. !! Checking which bottletype is used and filling those bottles up before the other type is used.
  1317. :sbottleloop
  1318. if pump_bottletype < 2500 and milkedvolume >= 1500 and bp_used_sbottle < bp_useable_sbottle:
  1319. bp_used_sbottle += 1
  1320. milkedvolume -= 1500
  1321. bottlecounter = 0
  1322. :sbottle_searchloop
  1323. if bottlecounter < (bpbottlem + bpbottles):
  1324. if mbarrtype[bottlecounter] = 1500 and mbarrfill[bottlecounter] = 0:
  1325. func('lact_lib','fill_milk_bottle',bottlecounter,1500)
  1326. jump 'sbottle_searchloopbreak'
  1327. end
  1328. bottlecounter += 1
  1329. jump 'sbottle_searchloop'
  1330. end
  1331. :sbottle_searchloopbreak
  1332. jump 'sbottleloop'
  1333. end
  1334. :mbottleloop
  1335. if pump_bottletype >= 2500 and milkedvolume >= 2500 and bp_used_mbottle < bp_useable_mbottle:
  1336. bp_used_mbottle += 1
  1337. milkedvolume -= 2500
  1338. bottlecounter = 0
  1339. :mbottle_searchloop
  1340. if bottlecounter < (bpbottlem + bpbottles):
  1341. if mbarrtype[bottlecounter] = 2500 and mbarrfill[bottlecounter] = 0:
  1342. func('lact_lib','fill_milk_bottle',bottlecounter,2500)
  1343. jump 'mbottle_searchloopbreak'
  1344. end
  1345. bottlecounter += 1
  1346. jump 'mbottle_searchloop'
  1347. end
  1348. :mbottle_searchloopbreak
  1349. jump 'mbottleloop'
  1350. end
  1351. !! Checking for the milkedvolume and if there are bottles left. if yes - use these bottles
  1352. if milkedvolume > 0 and (((bp_useable_mbottle - bp_used_mbottle) > 0) or ((bp_useable_sbottle - bp_used_sbottle) > 0)):
  1353. :altfill01
  1354. if pump_bottletype < 2500 and milkedvolume >= 2500 and bp_used_mbottle < bp_useable_mbottle:
  1355. bp_used_mbottle += 1
  1356. milkedvolume -= 2500
  1357. bottlecounter = 0
  1358. :sbottle_altsearchloop
  1359. if bottlecounter < (bpbottlem + bpbottles):
  1360. if mbarrtype[bottlecounter] = 2500 and mbarrfill[bottlecounter] = 0:
  1361. func('lact_lib','fill_milk_bottle',bottlecounter,2500)
  1362. jump 'sbottle_altsearchloopbreak'
  1363. end
  1364. bottlecounter += 1
  1365. jump 'sbottle_altsearchloop'
  1366. end
  1367. :sbottle_altsearchloopbreak
  1368. jump 'altfill01'
  1369. end
  1370. :altfill02
  1371. if pump_bottletype >= 2500 and milkedvolume >= 1500 and bp_used_sbottle < bp_useable_sbottle:
  1372. bp_used_sbottle += 1
  1373. milkedvolume -= 1500
  1374. bottlecounter = 0
  1375. :mbottle_altsearchloop
  1376. if bottlecounter < (bpbottlem + bpbottles):
  1377. if mbarrtype[bottlecounter] = 1500 and mbarrfill[bottlecounter] = 0:
  1378. func('lact_lib','fill_milk_bottle',bottlecounter,1500)
  1379. jump 'mbottle_altsearchloopbreak'
  1380. end
  1381. bottlecounter += 1
  1382. jump 'mbottle_altsearchloop'
  1383. end
  1384. :mbottle_altsearchloopbreak
  1385. jump 'altfill02'
  1386. end
  1387. end
  1388. !! by this point all bottles should have been used up. Everything else needs to end up in the drain.
  1389. if milkedvolume > 0 and bp_useable_mbottle = bp_used_mbottle and bp_useable_sbottle = bp_used_sbottle:
  1390. 'During pumping you have to switch the collecting bottle as it filled up with your milk. Unfortunately you don''t have enough bottles to collect all your milk.'
  1391. 'You had to pour <<milkedvolume/10>>ml of your breast milk into the sink.'
  1392. milkedvolume = ((bp_used_mbottle*2500) + (bp_used_sbottle*1500))
  1393. elseif milkedvolume > 0 and milkedvolume < 1500 and (bp_useable_sbottle - bp_used_sbottle) > 0:
  1394. 'During pumping you have to switch the collecting bottle as it filled up with your milk.'
  1395. elseif milkedvolume > 0 and milkedvolume < 2500 and milkedvolume > 1500 and (bp_useable_mbottle - bp_used_mbottle) > 0:
  1396. 'During pumping you have to switch the collecting bottle as it filled up with your milk.'
  1397. else
  1398. 'During pumping you have to switch the collecting bottle as it filled up with your milk.'
  1399. end
  1400. if bp_used_mbottle >= 1 or bp_used_sbottle >= 1:
  1401. '<center><img <<$set_imgh>> src="images/pc/body/tits/bottles_full.jpg"></center>'
  1402. if milkedvolume = ((bp_used_mbottle*2500) + (bp_used_sbottle*1500)):
  1403. 'You pumped <<milkedvolume/10>>ml of milk from your breasts, collecting it in:'
  1404. if bp_useable_sbottle = 1:
  1405. 'One 150ml bottle'
  1406. elseif bp_used_sbottle > 1:
  1407. '<<bp_used_sbottle>> x 150ml bottles'
  1408. end
  1409. if bp_used_mbottle = 1:
  1410. 'One 250ml bottle'
  1411. elseif bp_used_mbottle > 1:
  1412. '<<bp_used_mbottle>> x 250ml bottles'
  1413. end
  1414. else
  1415. 'You pumped <<((bp_used_mbottle*2500)+(bp_used_sbottle*1500)+milkedvolume)/10>>ml of milk from your breasts collecting it in:'
  1416. if bp_used_sbottle = 1:
  1417. 'One 150ml bottle'
  1418. elseif bp_used_sbottle > 1:
  1419. '<<bp_used_sbottle>> x 150ml bottles'
  1420. end
  1421. if bp_used_mbottle = 1:
  1422. 'One 250ml bottle'
  1423. elseif bp_used_mbottle > 1:
  1424. '<<bp_used_mbottle>> x 250ml bottles'
  1425. end
  1426. if (bp_useable_sbottle - bp_used_sbottle) > 0 and milkedvolume <= 1500:
  1427. bottlecounter = 0
  1428. :sbottle_restsearchloop
  1429. if bottlecounter < (bpbottlem + bpbottles):
  1430. if mbarrtype[bottlecounter] = 1500 and mbarrfill[bottlecounter] = 0:
  1431. func('lact_lib','fill_milk_bottle',bottlecounter,milkedvolume)
  1432. jump 'sbottlefilled_break'
  1433. end
  1434. bottlecounter += 1
  1435. jump 'sbottle_restsearchloop'
  1436. end
  1437. :sbottlefilled_break
  1438. 'You also stored <<milkedvolume/10>>ml of breast milk in a 150ml bottle.'
  1439. elseif (bp_useable_mbottle - bp_used_mbottle) > 0 and milkedvolume <= 2500:
  1440. bottlecounter = 0
  1441. :mbottle_restsearchloop
  1442. if bottlecounter < (bpbottlem + bpbottles):
  1443. if mbarrtype[bottlecounter] = 2500 and mbarrfill[bottlecounter] = 0:
  1444. func('lact_lib','fill_milk_bottle',bottlecounter,milkedvolume)
  1445. jump 'mbottlefilled_break'
  1446. end
  1447. bottlecounter += 1
  1448. jump 'mbottle_restsearchloop'
  1449. end
  1450. :mbottlefilled_break
  1451. 'You also stored <<milkedvolume/10>>ml of breast milk in a 250ml bottle.'
  1452. else
  1453. 'unhandled case - you shouldn''t end up here. Please report this in the bug section of Girl Life in the tfg-forums.'
  1454. 'second fork case'
  1455. 'bp_used_mbottle: <<bp_used_mbottle>>'
  1456. 'bp_used_sbottle: <<bp_used_sbottle>>'
  1457. 'milkedvolume: <<milkedvolume>>'
  1458. 'pump_bottletype: <<pump_bottletype>>'
  1459. 'bp_useable_sbottle: <<bp_useable_sbottle>>'
  1460. 'bp_useable_mbottle: <<bp_useable_mbottle>>'
  1461. end
  1462. milkedvolume += bp_used_mbottle*2500 + bp_used_sbottle*1500
  1463. end
  1464. else
  1465. 'unhandled case - you shouldn''t end up here. Please report this in the bug section of Girl Life in the tfg-forums.'
  1466. 'third fork case'
  1467. 'bp_used_mbottle: <<bp_used_mbottle>>'
  1468. 'bp_used_sbottle: <<bp_used_sbottle>>'
  1469. 'milkedvolume: <<milkedvolume>>'
  1470. 'pump_bottletype: <<pump_bottletype>>'
  1471. 'bpbottles: <<bpbottles>>'
  1472. 'bpbottlem: <<bpbottlem>>'
  1473. end
  1474. else
  1475. 'You give it a few more pumps and detach the pump.<br>You filled the bottle with <<milkedvolume/10>>ml of your milk.'
  1476. if (bp_useable_sbottle - bp_used_sbottle) > 0 and milkedvolume <= 1500:
  1477. bottlecounter = 0
  1478. :single_sbottle_searchloop
  1479. if bottlecounter < (bpbottlem + bpbottles):
  1480. if mbarrtype[bottlecounter] = 1500 and mbarrfill[bottlecounter] = 0:
  1481. func('lact_lib','fill_milk_bottle',bottlecounter,milkedvolume)
  1482. jump 'single_sbottlefilled_break'
  1483. end
  1484. bottlecounter += 1
  1485. jump 'single_sbottle_searchloop'
  1486. end
  1487. :single_sbottlefilled_break
  1488. elseif (bp_useable_mbottle - bp_used_mbottle) > 0 and milkedvolume <= 2500:
  1489. bottlecounter = 0
  1490. :single_mbottle_searchloop
  1491. if bottlecounter < (bpbottlem + bpbottles):
  1492. if mbarrtype[bottlecounter] = 2500 and mbarrfill[bottlecounter] = 0:
  1493. func('lact_lib','fill_milk_bottle',bottlecounter,milkedvolume)
  1494. jump 'single_mbottlefilled_break'
  1495. end
  1496. bottlecounter += 1
  1497. jump 'single_mbottle_searchloop'
  1498. end
  1499. :single_mbottlefilled_break
  1500. else
  1501. 'unhandled case - you shouldn''t end up here. Please report this in the bug section of Girl Life in the tfg-forums.'
  1502. 'second fork case'
  1503. 'bp_used_mbottle: <<bp_used_mbottle>>'
  1504. 'bp_used_sbottle: <<bp_used_sbottle>>'
  1505. 'milkedvolume: <<milkedvolume>>'
  1506. 'pump_bottletype: <<pump_bottletype>>'
  1507. 'bp_useable_sbottle: <<bp_useable_sbottle>>'
  1508. 'bp_useable_mbottle: <<bp_useable_mbottle>>'
  1509. end
  1510. milkedvolume += bp_used_mbottle*2500 + bp_used_sbottle*1500
  1511. end
  1512. breastcounter += 1
  1513. if energytomilkpump > 0 and pcs_energy = 0:
  1514. '<br>During pumping you feel really hungry, producing breast milk seems to be more exhausing then thought.'
  1515. energytomilkpump = 0
  1516. elseif energytomilkpump > 0:
  1517. '<br>You feel a bit thirsty after pumping.'
  1518. energytomilkpump = 0
  1519. end
  1520. if bcream_used = 1:
  1521. pcs_nips += rand(0,2)
  1522. bcream_used = 0
  1523. end
  1524. minut += pumptime
  1525. elseif lactation['active'] > 0 and pain['nipples'] < 60 and pcs_knowsaboutlactation <= 0:
  1526. '<center><img <<$set_imgh>> src="images/pc/body/tits/pump_milkdrops.jpg"></center>'
  1527. if pcs_usedbreastpumponherself > 0 and pcs_massagedherbreasts <= 0:
  1528. 'As usual, you attach the pump, but after a few pumps white liquid suddenly starts flowing from your nipples.<br>Using the breast pump regularily probably made you lactate!'
  1529. lactation['induced'] = 1
  1530. elseif pcs_usedbreastpumponherself <= 0 and pcs_massagedherbreasts > 0:
  1531. 'You attach the pump but after a few pumps white liquid suddenly comes from your nipples. Regularily massaging your breasts probably made you lactate!<br>'
  1532. lactation['induced'] = 1
  1533. elseif pcs_usedbreastpumponherself > 0 and pcs_massagedherbreasts > 0:
  1534. 'You attach the pump but after a few pumps white liquid suddenly comes from your nipples. All that pumping and massaging your breasts probably caused you to lactate!<br>'
  1535. lactation['induced'] = 1
  1536. else
  1537. 'You attach the pump and give it a few pumps. To your surprise white liquid suddenly comes from your nipples. You started lactating!<br>'
  1538. if thinkpreg = 1 or knowpreg = 1:
  1539. 'This is probably happening because you are pregnant.'
  1540. else
  1541. 'You should have this checked out by a doctor. You could be pregnant.'
  1542. end
  1543. lactation['induced'] = 0
  1544. end
  1545. pcs_usedbreastpumponherself = 0
  1546. pcs_massagedherbreasts = 0
  1547. pcs_knowsaboutlactation = 1
  1548. elseif lactation['active'] = 0 and pain['nipples'] < 60:
  1549. milkedvolume = func('lact_lib','$get_breastmilk', 3, pumptime)
  1550. pcs_usedbreastpumponherself += 1
  1551. '<center><img <<$set_imgh>> src="images/pc/body/tits/t<<tits>>.jpg"></center>'
  1552. if breastcounter < 100:
  1553. 'You attach the pump to your nipples and start squeezing the bulb. The vacuum feels uncomfortable on your nipples.'
  1554. elseif breastcounter >= 100 and breastcounter < 200:
  1555. 'You attach the pump to your nipples and start squeezing the bulb. You are used to the vacuum on your nipples.'
  1556. else
  1557. 'You attach the pump to your nipples and start squeezing the bulb. The vacuum feels good on your nipples.'
  1558. end
  1559. if prolactinlvl > 100: 'A few droplets of liquid come out of your nipples but it is not milk.'
  1560. breastcounter += 1
  1561. if pump_stop_brake = 1:
  1562. 'During pumping your nipples start to hurt extremely. You have to stop after <<pumptime>> minutes, because you couldn''t go on.'
  1563. end
  1564. if prolactinlvl > 100:
  1565. if rand(0,10) > 9:
  1566. pumpinggrowth += 1
  1567. end
  1568. 'After finishing, your breasts feel weirdly engorged.'
  1569. end
  1570. if bcream_used = 1:
  1571. pcs_nips += rand(0,2)
  1572. bcream_used = 0
  1573. end
  1574. minut += pumptime
  1575. else
  1576. 'Your nipples feel too sore to use the pump right now.'
  1577. end
  1578. if milkedvolume > 0:
  1579. lact_engorgement = 0
  1580. lactatemess = 0
  1581. act 'Pour it into the sink':
  1582. *clr
  1583. cla
  1584. piits_i = 0
  1585. :piits_emptyloop
  1586. if piits_i < (bpbottlem + bpbottles):
  1587. if mbarrmage[piits_i] = (pump_timestamp):mbarrfill[piits_i] = 0
  1588. piits_i += 1
  1589. jump 'piits_emptyloop'
  1590. end
  1591. if milkedvolume > 1500 and bpbottles <= 1:
  1592. '<center><img <<$set_imgh>> src="images/pc/body/tits/milk_sink.jpg"></center>'
  1593. '<center>You pour 150ml of your breast milk into the sink and clean up your breastpump.</center>'
  1594. else
  1595. '<center><img <<$set_imgh>> src="images/pc/body/tits/milk_sink.jpg"></center>'
  1596. '<center>You pour <<milkedvolume/10>>ml of your breast milk into the sink and clean up your breastpump.</center>'
  1597. end
  1598. minut += ((milkedvolume/1500) + 3)
  1599. act 'Finish':
  1600. milkedvolume = 0
  1601. menu_off = 0 & gt $loc, $metka
  1602. end
  1603. end
  1604. act 'Leave it here':
  1605. *clr
  1606. cla
  1607. 'You screw the cap onto the bottle and put it away.'
  1608. act 'Finish':
  1609. milkedvolume = 0
  1610. menu_off = 0 & gt $loc, $metka
  1611. end
  1612. end
  1613. if pcs_hydra < 100:
  1614. act 'Drink it':
  1615. *clr
  1616. cla
  1617. '<center><img <<$set_imgh>> src="images/pc/body/tits/milk_drink.jpg"></center>'
  1618. '<center>You drink your own breast milk and clean up your breastpump.</center>'
  1619. '<center>The milk is still warm from your breasts.</center>'
  1620. di_i = 0
  1621. :di_emptyloop
  1622. if di_i < (bpbottlem + bpbottles):
  1623. if mbarrmage[di_i] = (pump_timestamp):mbarrfill[di_i] = 0
  1624. di_i += 1
  1625. jump 'di_emptyloop'
  1626. end
  1627. pcs_health += milkedvolume/400
  1628. pcs_energy += milkedvolume/500
  1629. if pcs_hydra >= 100:
  1630. pcs_hydra += milkedvolume/200
  1631. else
  1632. pcs_hydra += milkedvolume/100
  1633. end
  1634. minut += ((milkedvolume/1000) + 3)
  1635. act 'Finish':
  1636. milkedvolume = 0
  1637. menu_off = 0 & gt $loc, $metka
  1638. end
  1639. end
  1640. end
  1641. else
  1642. act 'Finish':menu_off = 0 & gt $loc, $metka
  1643. end
  1644. end
  1645. !! engorged_morning
  1646. !! use href="exec:gt ''lact_lib'',''engorged_morning''"
  1647. if $ARGS[0] = 'engorged_morning':
  1648. minut += 5
  1649. '<center><img <<$set_imgh>> src="images/pc/body/tits/lactate_start.jpg"></center>'
  1650. 'You wake up and your breasts hurt. As you look down, you can see that you have a heavy letdown. You should pump your breasts as soon as possible.'
  1651. act 'Finish':menu_off = 0 & gt $loc, $metka
  1652. end
  1653. if $ARGS[0] = 'hand_milking':
  1654. *clr
  1655. cla
  1656. if lactation['active'] > 0 and pain['nipples'] <= 60 and pcs_knowsaboutlactation > 0:
  1657. 'You start to massage your breasts, your fingers gliding down your breasts skin, over the areolas. Your fingers pressing down into the areola, stretching it forwards to your nipple.'
  1658. 'Several small streams of your milk start to jet out of your nipples.'
  1659. 'You go on for <<pumptime>> minutes until you stop. You clean yourself up and everything else that got wet from your milk.<br>'
  1660. '<center><video autoplay loop src="images/pc/body/tits/bathroom_milking.mp4"></video></center>'
  1661. milkedvolume = func('lact_lib','$get_breastmilk', 5, pumptime)
  1662. minut += pumptime
  1663. elseif lactation['active'] > 0 and pain['nipples'] < 60 and pcs_knowsaboutlactation <= 0:
  1664. '<center><img <<$set_imgh>> src="images/pc/body/tits/lactate_start.jpg"></center>'
  1665. if pcs_usedbreastpumponherself > 0 and pcs_massagedherbreasts <= 0:
  1666. 'You start to massage your breasts, your fingers gliding down your breasts skin, over the areolas. Your fingers pressing down into the areola, stretching it forwards to your nipple. After a few squeezes white liquid suddenly starts flowing from your nipples.<br>Using the breast pump regularily probably made you lactate!'
  1667. lactation['induced'] = 1
  1668. elseif pcs_usedbreastpumponherself <= 0 and pcs_massagedherbreasts > 0:
  1669. 'You start to massage your breasts, your fingers gliding down your breasts skin, over the areolas. Your fingers pressing down into the areola, stretching it forwards to your nipple. After a few squeezes white liquid suddenly starts flowing from your nipples. Regularily massaging your breasts probably made you lactate!<br>'
  1670. lactation['induced'] = 1
  1671. elseif pcs_usedbreastpumponherself > 0 and pcs_massagedherbreasts > 0:
  1672. 'You start to massage your breasts, your fingers gliding down your breasts skin, over the areolas. Your fingers pressing down into the areola, stretching it forwards to your nipple. After a few squeezes white liquid suddenly starts flowing from your nipples. All that pumping and massaging your breasts probably caused you to lactate!<br>'
  1673. lactation['induced'] = 1
  1674. else
  1675. 'You start to massage your breasts, your fingers gliding down your breasts skin, over the areolas. Your fingers pressing down into the areola, stretching it forwards to your nipple. To your surprise white liquid suddenly starts flowing from your nipples. You started lactating!<br>'
  1676. if thinkpreg = 1 or knowpreg = 1:
  1677. 'This is probably happening because you are pregnant.'
  1678. else
  1679. 'You should have this checked out by a doctor. You could be pregnant.'
  1680. end
  1681. lactation['induced'] = 0
  1682. end
  1683. pcs_usedbreastpumponherself = 0
  1684. pcs_massagedherbreasts = 0
  1685. pcs_knowsaboutlactation = 1
  1686. elseif lactation['active'] = 0 and pain['nipples'] <= 60:
  1687. pcs_massagedherbreasts += 0
  1688. 'You start to massage your breasts, your fingers gliding down your breasts skin, over the areolas. Your fingers pressing down into the areola, stretching it forwards to your nipple,'
  1689. 'kneading your breasts as well.'
  1690. '<center><video autoplay loop src="images/pc/body/tits/bathroom_massage.mp4"></video></center>'
  1691. milkedvolume = func('lact_lib','$get_breastmilk', 5, pumptime)
  1692. minut += pumptime
  1693. else
  1694. 'Your nipples are too sore to hand massage right now.'
  1695. end
  1696. act 'Finish':menu_off = 0 & gt $loc, $metka
  1697. end
  1698. --- lact_lib ---------------------------------