cikl.qsrc 61 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957
  1. # cikl
  2. !!------------------------------------------------------------------------------------------------------------
  3. !! Masseuse Job (MUST COME BEFORE DAY CHANGES)
  4. !!------------------------------------------------------------------------------------------------------------
  5. if masseuse['jobtype'] < 1:
  6. masseuse['<<week>>_shift_1'] = 0
  7. masseuse['<<week>>_shift_2'] = 0
  8. masseuse['<<week>>_shift_3'] = 0
  9. end
  10. if masseuse['jobtype'] > 0 and week = 5 and masseuse['weeks_pay'] > 0:
  11. masseuse['payday'] = 1
  12. end
  13. if masseuse['<<week>>_shift_1'] ! 0 or masseuse['<<week>>_shift_2'] ! 0 or masseuse['<<week>>_shift_3'] ! 0:
  14. masseuse['missed_shift2'] = 1
  15. end
  16. !!----------------------------------------------------------------------------
  17. !! Time calculations
  18. day += 1
  19. week += 1
  20. hour -= 24
  21. if day > monthsEnd[month]:
  22. day -= monthsEnd[month]
  23. month += 1
  24. if month > 12: month = 1 & year += 1
  25. !!MJ: Dont think that one is needed. But it was in the original loop.
  26. if month < 1: month = 1
  27. $month = $monthName[month]
  28. !! new years party calculation
  29. temp = func('shortgs','dow',year,12,31)
  30. if temp < 6:
  31. nyp_day = 31
  32. elseif temp = 6:
  33. nyp_day = 30
  34. else
  35. nyp_day = 29
  36. end
  37. end
  38. !!MJ: Dont think that one is needed. But it was here already.
  39. if day <= 0:day = 1
  40. ciklNewWeek = 0
  41. if week > 7:
  42. odd_week = iif(odd_week,0,1)
  43. ciklNewWeek = 1
  44. :loopweek
  45. week -= 7
  46. husbandrink = 0
  47. if military = 1:military = 0
  48. if week > 7:jump 'loopweek'
  49. end
  50. gs 'daystart'
  51. !!----------------------------------------------------------------------------
  52. !!Fame call to update all the fame variables
  53. gs 'fame'
  54. !!Cycle stats for Contacts
  55. gs 'telefon', 'DailyStatRefresh', ciklNewWeek
  56. !!moving the porn schedule ahead a day, flaffing for missed shootings, if it even matters
  57. if (film > 0 or pornstack = 1) and pfilmNO = 0 and pfilmSTOP = 0:
  58. if pfilmday[0] > 0: gs 'pornschedule', 'pornmiss'
  59. gs 'pornschedule', 'schedule'
  60. end
  61. !!------------------------------------------------------------------------------------------------------------
  62. !! Job Stuff
  63. !!------------------------------------------------------------------------------------------------------------
  64. !! masseuse paycheck
  65. if masseuse['weeks_pay'] > 0 and week = 5:masseuse['paycheck'] = 1
  66. !!modelling check
  67. if model_week ! (daystart - week) / 7:model_job_week = 0
  68. !!acting strings to set available jobs
  69. if casting = 1:
  70. acting_string1 = rand(10000000000,199999999999)
  71. acting_string2 = rand(10000000000,199999999999)
  72. end
  73. dynamic $hypnoDaychange
  74. !!phone reset for bf
  75. ringA = 0
  76. ringB = 0
  77. ringC = 0
  78. !!Appearance Age
  79. vidageday -= 1
  80. if vidageday <= 0:
  81. vidageday = 360
  82. vidage += 1
  83. end
  84. !!Birthday
  85. age = year - ((pcs_dob - (pcs_dob mod 10000)) / 10000)
  86. if ((month * 100) + day) <= pcs_dob mod 10000: age -= 1
  87. if birthday = day and birthmonth = month and model['age'] > 0:model['age'] += 1
  88. if workDolgDay > 0: workDolgDay -= 1
  89. if QWdogreiqTimer > 0: QWdogreiqTimer -= 1
  90. if husband > 0: husbanday += 1
  91. if husband > 10 and husbanday > 0: husband -= 15
  92. if fingal > 0: fingal -= 1
  93. if husbandMark = 1 and husband <= 10:
  94. husbizvradd = 0
  95. husbharmin = 0
  96. husbandMark = 0
  97. husband = 0
  98. divorced += 1
  99. if KFOnLineReaga > 0:KFOnLineReaga -= 1
  100. '<b><font color="red">Your husband has filed for a divorce.</font></b>'
  101. end
  102. if katjaPreg = 0 and month >= 2 and year > 2016: katjaPreg = 1
  103. !! after having surgery you will be in recuperation for a few days
  104. if surgeryday ! '':
  105. if daystart - 7 <= surgeryday:
  106. dailyhealthimprov = (daystart - surgeryday) * 50
  107. pcs_health = dailyhealthimprov
  108. recuperation = 1
  109. else
  110. killvar 'recuperation'
  111. killvar 'dailyhealthimprov'
  112. end
  113. end
  114. !!Street events daily reset
  115. streetevent_hour = -2
  116. !!Clothing stock and price randomizers
  117. Clothingstock = rand (0,23)
  118. i = 1
  119. :loopprice
  120. Clothingstock[i] = rand (0,500)
  121. i += 1
  122. if i <= 147:jump 'loopprice'
  123. if coatH[defaultcoat] <= 0: defaultcoat = 0
  124. !! Abortion and pregnancy recovery resets if finished
  125. if abortionbirthdate ! 0 and daystart - abortionbirthdate > 24: abortionbirthdate = 0
  126. if pregbirthdate ! 0 and daystart - pregbirthdate > 73: pregbirthdate = 0
  127. !!------------------------------------------------------------------------------------------------------------
  128. !! Bimbo
  129. !!------------------------------------------------------------------------------------------------------------
  130. !!Bonus from clothing and shoes
  131. if succubusflag = 0 and cheatBimbo = 0:
  132. if bimbocl = 1:
  133. bimbo_tracker += 2
  134. end
  135. if bimbosh = 1:
  136. bimbo_tracker += 1
  137. end
  138. end
  139. bimbocl = 0
  140. !!bimbo_tracker is also filled by sex scenes and that figure is added to bimbo score
  141. if cheatBimbo = 0: bimbo += bimbo_tracker
  142. !!Once bimbolevel is set to 1, must use the withdrawal in stat to return to 0
  143. if bimbo > 0 or bimbolevel > 0:
  144. if bimbo < 10:
  145. bimbo -= 1
  146. elseif bimbo < 20:
  147. bimbolevel = 1
  148. elseif bimbo < 30:
  149. bimbolevel = 2
  150. else
  151. bimbolevel = 3
  152. end
  153. end
  154. if bimbo >= 40: bimbo = 40
  155. !!Bimbo levels. They use custom variables so they won''t permanently change character stats
  156. if bimbolevel = 0: supnatvnesh = 0 & bimbostupidity = 0
  157. if bimbolevel = 1: supnatvnesh = 2 & bimbostupidity = (pcs_intel / 6)
  158. if bimbolevel = 2: supnatvnesh = 4 & bimbostupidity = (pcs_intel / 4)
  159. if bimbolevel = 3: supnatvnesh = 8 & bimbostupidity = (pcs_intel / 3)
  160. !!A Succubus cannot be a Bimbo
  161. if succubusflag = 1:
  162. if bimbolevel > 0 and bimbo > 0: bimbowithdrawal = 40
  163. elseif bimbolevel >= 1:
  164. !!Checks how often sex has occured in the last 24 hours and for drops in bimbo score, for calculating withdrawal
  165. if 4 > bimbo_tracker:
  166. bimbowithdrawal += 1
  167. else
  168. bimbowithdrawal = 0
  169. end
  170. end
  171. if bimbo < 0: bimbo = 0
  172. bimbo_tracker = 0
  173. !!------------------------------------------------------------------------------------------------------------
  174. !! Exhibitionism
  175. !!------------------------------------------------------------------------------------------------------------
  176. if pcs_exhib > 0 or exhibitionist_lvl > 0:
  177. if pcs_exhib < 10:
  178. pcs_exhib -= 1
  179. elseif pcs_exhib < 50:
  180. exhibitionist_lvl = 1
  181. elseif pcs_exhib < 100 or exhibitionQW < 3:
  182. exhibitionist_lvl = 2
  183. elseif exhibitionQW > 2:
  184. exhibitionist_lvl = 3
  185. end
  186. end
  187. !!Inhibition increases from wearing revealing clothing
  188. if exhibition_outdoors > 0:
  189. if pcs_inhib > 90:
  190. exhibition_outdoors = exhibition_outdoors * 3
  191. elseif pcs_inhib > 75:
  192. exhibition_outdoors = exhibition_outdoors * 5 / 2
  193. elseif pcs_inhib > 60:
  194. exhibition_outdoors = exhibition_outdoors * 2
  195. elseif pcs_inhib > 30:
  196. exhibition_outdoors = exhibition_outdoors * 3 / 2
  197. end
  198. if exhibition_outdoors <= 5:
  199. inhib_exp += rand(3,6)
  200. elseif exhibition_outdoors <= 10:
  201. inhib_exp += rand(5,9)
  202. elseif exhibition_outdoors <= 15:
  203. inhib_exp += rand(7,12)
  204. elseif exhibition_outdoors <= 20:
  205. inhib_exp += rand(9,15)
  206. elseif exhibition_outdoors <= 25:
  207. inhib_exp += rand(12,20)
  208. elseif exhibition_outdoors <= 30:
  209. inhib_exp += rand(16,25)
  210. elseif exhibition_outdoors <= 35:
  211. inhib_exp += rand(20,30)
  212. elseif exhibition_outdoors <= 40:
  213. inhib_exp += rand(25,40)
  214. elseif exhibition_outdoors <= 50:
  215. inhib_exp += rand(35,50)
  216. elseif exhibition_outdoors <= 65:
  217. inhib_exp += rand(50,75)
  218. else
  219. inhib_exp += rand(70,100)
  220. end
  221. end
  222. exhibition_outdoors = 0
  223. !!------------------------------------------------------------------------------------------------------------
  224. !! Succubus
  225. !!------------------------------------------------------------------------------------------------------------
  226. !!Succubus Level & hunger calcs
  227. if succubusflag = 1:
  228. cheatHealth = 1
  229. dynamic $cheatmenu['std_cure']
  230. !! Hunger handling
  231. if sucxpsnapshot >= succubxp: succhungry += 1
  232. sucxpsnapshot = succubxp
  233. if succubxp < 0: succubxp = 0
  234. !! Level handling
  235. if succubxp < 60:
  236. succublvl = 1
  237. $sucself1 = 'that feeling'
  238. sucstorecap = 0
  239. if bimbolevel <= 0: supnatvnesh = 1
  240. elseif succubxp < 150:
  241. succublvl = 2
  242. $sucself1 = 'the power'
  243. sucstorecap = 0
  244. if bimbolevel <= 0: supnatvnesh = 3
  245. elseif succubxp < 270:
  246. succublvl = 3
  247. $sucself1 = 'your other self'
  248. sucstorecap = 100
  249. if bimbolevel <= 0: supnatvnesh = 6
  250. else
  251. succublvl = 4
  252. $sucself1 = 'your true self'
  253. sucstorecap = 200
  254. if bimbolevel <= 0: supnatvnesh = 10
  255. end
  256. if sucskill >= 2 and succublvl >= 2: sucstorecap += 100
  257. if sucskill >= 3 and succublvl >= 2: sucstorecap += (sucstorecap * 2) / 10
  258. if stren_muta < (succublvl - 1): stren_muta = (succublvl - 1)
  259. if agil_muta < (succublvl - 1): agil_muta = (succublvl - 1)
  260. if vital_muta < (succublvl - 1): vital_muta = (succublvl - 1)
  261. if intel_muta < (succublvl - 1): intel_muta = (succublvl - 1)
  262. if react_muta < (succublvl - 1): react_muta = (succublvl - 1)
  263. if sprt_muta < (succublvl - 1): sprt_muta = (succublvl - 1)
  264. if chrsm_muta < (succublvl - 1): chrsm_muta = (succublvl - 1)
  265. if prcptn_muta < (succublvl - 1): prcptn_muta = (succublvl - 1)
  266. if (sucexcess >= 100 and (sucskill < 2 or succhungry > -2)) or (sucexcess >= 100 + sucstorecap and sucskill >= 2):
  267. if pcs_stren < 250: stren_exp += 20 & sucexcess -= 10
  268. if pcs_agil < 250: agil_exp += 20 & sucexcess -= 10
  269. if pcs_vital < 250: vital_exp += 20 & sucexcess -= 10
  270. if pcs_intel < 250: intel_exp += 20 & sucexcess -= 10
  271. if pcs_react < 250: react_exp += 20 & sucexcess -= 10
  272. if pcs_sprt < 250: sprt_exp += 20 & sucexcess -= 10
  273. if pcs_chrsm < 250: chrsm_exp += 20 & sucexcess -= 10
  274. if pcs_prcptn < 250: prcptn_exp += 20 & sucexcess -= 10
  275. if succhungry > (0 - 2 - succublvl): succhungry -= 1 & sucexcess -= 10
  276. if pcs_skin < 100: pcs_skin += 1 & sucexcess -= 2
  277. !! This is to drive the Succubus vidage into the max appearance range
  278. if vidageday < 720 and vidage >= 28: vidageday += 4 & sucexcess -= 4
  279. if vidageday > 0 and vidage <= 20: vidageday -= 4 & sucexcess -= 4
  280. if vidageday >= 720 and vidage > 28:
  281. vidageday -= 360
  282. vidage -= 1
  283. end
  284. if sucexcess > sucstorecap: sucexcess = sucstorecap
  285. elseif sucexcess < 0 and succhungry < 0:
  286. succhungry += 1
  287. if (0 - sucexcess) < (10 * succublvl):
  288. sucexcess = 0
  289. else
  290. sucexcess += (10 * succublvl)
  291. end
  292. end
  293. if sucexcess < 0: sucpowzeroed += 1
  294. if sucexcess >= 0 and sucpowzeroed > 0: sucpowzeroed -= 1
  295. !! This is so a Succubus always moves toward a default vaginal and anal size when she has the accomadation ability
  296. if sucskill >= 4:
  297. if pcs_vag - 2 >= 13:
  298. pcs_vag -= 2
  299. elseif pcs_vag + 2 <= 13:
  300. pcs_vag += 2
  301. end
  302. if pcs_ass - 2 >= 8:
  303. pcs_ass -= 2
  304. elseif pcs_ass + 2 <= 8:
  305. pcs_ass += 2
  306. end
  307. end
  308. end
  309. !!------------------------------------------------------------------------------------------------------------
  310. if defcurly = 0 and curly > 0:curly -= 1
  311. if defcurly = 1:
  312. if straight > 0: straight -= 1
  313. if straight = 0: curly = 2147483647
  314. end
  315. ! WD: Added daily reduction of braids for Maruda Hair Mod
  316. if hbraids > 0: hbraids -= 1
  317. gs 'sweat', 'add', 2
  318. if pcs_tan > 0: pcs_tan -= 1
  319. if prezikmsg = 2: prezikmsg = 3
  320. !!------------------------------------------------------------------------------------------------------------
  321. !! Birth control
  322. !!------------------------------------------------------------------------------------------------------------
  323. !! Birth Control Management variables
  324. !!
  325. !! tabletkimm : The modifier for the current mood of the MC.
  326. !! tabletkiap : Autopill factor affecting the liklihood you took your pill as you should have
  327. !! tabletkipt : Pill Dicipline Take increase
  328. !! tabletkipi : Pill Dicipline Dont take increase
  329. !! tabletkicpd : Current MC Pill Dicipline
  330. !! tabletkichday : Current day that the Birth Control is being evaluated for
  331. !! tabletkicheck : If the birth control from shot (2) or pill (1)
  332. !! tabletki : How many packages of Birth Control Pills there are
  333. !! tabletkiold : Total number packages of expired pills
  334. !! tabletkifake : Total number packages of fake/counterfeit pills
  335. !! tabletkirej : Total number packages of factory rejected pills
  336. !! tabletkifert : Total number packages of subsituted fertility pills
  337. !! tabletkisug : Total number packages of sugar pills
  338. !! pillsleft : Total number packages of pills in current package
  339. !! tabletkishot : The flag for being on the Birth Control shot.
  340. !! pillcon : The number for the current birth control chemical level.
  341. !! pilldays : The number of consecutive days (you believe) you have taken your pill
  342. if Luth > (LutH_Max-75) and placebopart <= 0: placebopart = 8
  343. placebopart -= 1
  344. if tabletkishot <= 0: pillcon -= 1000 & pillcon2 -= 1000
  345. if pillcon < 0: pillcon = 0
  346. if pillcon2 < 0: pillcon2 = 0
  347. if tabletkicheck = 2:
  348. if tabletkishot ! 0:
  349. !!cycle = 1
  350. mesec = 0
  351. if rand(0,1000) = 1000:
  352. EggRH = rand(20,80)
  353. else
  354. EggRH = 0
  355. end
  356. FocH = EggRH
  357. end
  358. if tabletkishot <= 0:
  359. pillcon -= 29000
  360. pillcon2 -= 29000
  361. if tabletkishot < 0: tabletkishot = 0
  362. end
  363. if shotdays = -8:
  364. tabletkicheck = 0
  365. shotdue = 0
  366. 'Your birth control shot is no longer protecting you.'
  367. elseif shotdays <= 0:
  368. if shotdays = 0:
  369. shotdue = 7
  370. else
  371. shotdue -= 1
  372. end
  373. 'The chemicals regulating your fertility cycle are wearing off, you need to get your shot in <<shotdue>> days.'
  374. elseif shotdays > 1 and shotdays < 5:
  375. 'You are due for a birth control shot soon if you do not get one, you might get pregnant.'
  376. elseif shotdays = 1:
  377. 'Your birth control shot is due for renewal tomorrow.'
  378. end
  379. if shotdays > -100:shotdays -=1
  380. if tabletkishot > 0:tabletkishot -= 1
  381. end
  382. !! birth_control['implant_status']
  383. !! 0: No implant
  384. !! 3: Implant (more than 30 days left)
  385. !! 2: Implant (less than 30 days left)
  386. !! 1: Empty implant
  387. if birth_control['implant_status'] > 1:
  388. pcs_skin += rand(0,1)
  389. pillcon += ((pillcon + 15000) / 25) + 4000
  390. if pillcon > 40000: pillcon = 40000
  391. pillcon2 += ((pillcon2 + 15000) / 25) + 4000
  392. if pillcon2 > 40000: pillcon2 = 40000
  393. birth_control['implant_timer'] -= 1
  394. if (birth_control['implant_timer'] - 1090) > 0:
  395. gs 'pain', '<<(birth_control[''implant_timer''] - 1090)*2>>', 'armL', 'ache'
  396. elseif birth_control['implant_timer'] > 0 and birth_control['implant_timer'] < 30:
  397. birth_control['implant_status'] = 2
  398. 'Your birth control implant is only good for <<birth_control[''implant_timer'']>> more'+iif(birth_control['implant_timer'] = 1, 'day.', 'days.')
  399. elseif birth_control['implant_timer'] < 0:
  400. birth_control['implant_status'] = 1
  401. 'You should renew or remove your birth control implant.'
  402. end
  403. elseif birth_control['implant_status'] = 1:
  404. 'You should renew or remove your birth control implant.'
  405. end
  406. tabletkipd += tabletkipi
  407. tabletkipi = 0
  408. tabletkipt = 0
  409. if tabletkicheck = 1:
  410. if tabletki = 0 and pillsleft[ptype] = 0:
  411. tabletkicheck = 0
  412. 'You are out of birth control pills.'
  413. tabletkipi = -5
  414. elseif tabletki = 0 and pillsleft[ptype] = 28:
  415. 'You have just opened your last package of birth control pills. You need to buy more.'
  416. elseif tabletki = 0 and pillsleft[ptype] <= 5:
  417. 'You are running out of birth control pills, you only have a few left.'
  418. end
  419. end
  420. if tabletkicheck = 1 and tabletkichday < daystart:
  421. tabletkichday = daystart
  422. tabletkimm = (100*(pcs_willpwr / willpowermax)) + pcs_mood
  423. if pcs_sleep < 10:
  424. tabletkimm -= (100- (pcs_sleep * 10))
  425. end
  426. if pcs_willpwr < willpowermax / 4:
  427. tabletkimm = tabletkimm / 4
  428. elseif pcs_mood < 10:
  429. tabletkimm = tabletkimm / 2
  430. end
  431. tabletkiap = tabletkimm
  432. tabletkiap += (pcs_intel * 4) + (pcs_sprt * 2) + (age * 3)
  433. tabletkiap -= ((kid * 30) + (abort * 2) - (tabletkipd * ((60 - age) / 10)))
  434. temprand = rand(0,(200 + (tabletkimm - ((100 - pcs_sprt) * 3))))
  435. tabletkiap += temprand
  436. if tabletkiap < 300:
  437. if tabletkipd > -10:
  438. if pcs_willpwr < willpowermax / 4:
  439. pilldaychk = 0
  440. 'You stare at your package of birth control pills, you know you should take one but you can''t quite work up enough effort to care.'
  441. elseif pcs_mood < 10:
  442. pilldaychk = 0
  443. 'You stare at your package of birth control pills, but you don''t open it.'
  444. elseif pcs_sleep < 10:
  445. pilldaychk = 0
  446. 'You fumble with your birth control pills, trying to get a pill out. You finally give up too tired to manage it.'
  447. else
  448. pilldaychk = 0
  449. 'You just realized you forgot to take your birth control pill today.'
  450. end
  451. end
  452. tabletkipt = 2
  453. tabletkipi = -4
  454. else
  455. if tabletkiap < 350:
  456. temprand = rand(0,5)
  457. else
  458. temprand = rand(0,1000)
  459. end
  460. if temprand = 0:
  461. temprand = rand(0,1)
  462. if temprand = 0:
  463. gs 'din_bad','takepill'
  464. tabletkipt = -2
  465. tabletkipi = 1
  466. else
  467. tabletkipt = 3
  468. tabletkipi = -3
  469. end
  470. if tabletkipd > -10:
  471. pilldaychk = 0
  472. 'You find yourself holding the bottle of birth control pills, you cannot remember if you took one or not.'
  473. end
  474. if tabletkipd > 0:
  475. if rand(0,9) = 0:
  476. if tabletkipt < 0:
  477. pilldaychk = 0
  478. 'You don''t think you have taken your pill today.'
  479. else
  480. pilldaychk = 1
  481. 'You think you have taken your pill today.'
  482. end
  483. else
  484. if tabletkipt > 0:
  485. pilldaychk = 0
  486. 'You don''t think you have taken your pill today.'
  487. else
  488. pilldaychk = 1
  489. 'You think you have taken your pill today.'
  490. end
  491. end
  492. end
  493. else
  494. 'You take your birth control pill for the day.'
  495. pilldaychk = 1
  496. gs 'din_bad','takepill'
  497. if rand(0,7) = 0 and tabletkiday >= (daystart - 1): tabletkipd += 1
  498. tabletkiday = daystart
  499. tabletkipt = 0
  500. tabletkipi = 0
  501. end
  502. end
  503. elseif tabletkicheck = 0:
  504. if tabletkiday >= (daystart - 1) and tabletkipt = 0 and rand(0,7) = 0: tabletkipt = 1
  505. if pillcon > 0 and tabletkipi = 0 and rand(0,3) = 0 and (tabletkiday + 15) > daystart = 0: tabletkipi = -1
  506. end
  507. if pilldaychk = 1:
  508. pilldays += 1
  509. else
  510. pilldays -= 1
  511. end
  512. pilldaychk = 0
  513. if pilldays > 18: pilldays = 18
  514. if pilldays < 0: pilldays = 0
  515. if pillcon > 38000:
  516. birth_control['safe'] = 1
  517. else
  518. birth_control['safe'] = 0
  519. end
  520. if pillcon2 > 38000:
  521. birth_control['think_safe'] = 1
  522. else
  523. birth_control['think_safe'] = 0
  524. end
  525. $MenCal[] = $str(cycle)
  526. if ArrSize('$MenCal') = 60: killvar '$MenCal',0
  527. !!------------------------------------------------------------------------------------------------------------
  528. if lashair ! 1:
  529. pcs_leghair += 1
  530. !!Pubic hair growth at 1/2 per night
  531. if pcs_pubes['growth'] > 1:
  532. pcs_pubes['growth'] = 0
  533. pcs_pubes += 1
  534. end
  535. pcs_pubes['growth'] += 1
  536. end
  537. if age < 18 and rand (0,2) = 0 and pcs_leghair > 0: pcs_leghair -= 1
  538. if pcs_breath = 1:pcs_breath = 0
  539. if cheatNoEat = 1 and dounspell = 1:fat += 15
  540. !!Trauma decay
  541. if mood_trauma > 0: mood_trauma -= 1
  542. !!STD check
  543. if SifacOnce = 1:Sifilis += 1
  544. if GerpesOnce = 1:Gerpes += 1
  545. if TriperOnce = 1:
  546. if Triper > 0:
  547. Triper += 1
  548. end
  549. if TriperOral > 0:
  550. TriperOral += 1
  551. end
  552. If TriperOral > 14 and TriperNapr = 0:
  553. if rand(TriperOral,100) > 80:
  554. TriperOral = 0
  555. if Triper = 0:TriperOnce = 0
  556. TriperOralSigns = 0
  557. end
  558. end
  559. end
  560. if KandidozOnce = 1:Kandidoz += 1
  561. Venera = 0
  562. if SifacOnce = 1: Venera += 1
  563. if GerpesOnce = 1: Venera += 1
  564. if TriperOnce = 1: Venera += 1
  565. if pcs_ass > 1 and ashrink > 0 and analplugIN = 0:
  566. if anusK < 0:anusK = 0
  567. if anusK < ashrinkdays:anusK += 1
  568. if anusK >= ashrinkdays:pcs_ass -= ashrink & anusK = 0
  569. if pcs_ass < 0: pcs_ass = 0
  570. end
  571. if pcs_vag > 10 and vshrink > 0:
  572. if vaginaK < 0:vaginaK = 0
  573. if vaginaK < vshrinkdays:vaginaK += 1
  574. if vaginaK >= vshrinkdays:vaginaK = 0 & pcs_vag -= vshrink
  575. end
  576. lipkoef -= rand(0,1)
  577. if lipkoef <= 0: lipkoef = 0
  578. if isprok = 1 or isprokp = 1:
  579. isprok_lastday = 1
  580. else
  581. isprok_lastday = 0
  582. end
  583. if Enable_autotampon = 0 and isprok = 1: isprok = 0 & 'You threw away your used tampon.'
  584. if Enable_autotampon = 0 and isprokp = 1:isprokp = 0 & 'You threw away your used sanitary pad.'
  585. if preg = 1:
  586. pregtime = pregchem / 24
  587. if pregtimes = 0:pregtimes = 1
  588. elseif preg = 2 and pregminut < totminut:
  589. if Enable_nogameover = 0 :
  590. cla
  591. *clr
  592. over = 4
  593. MSG '<center><b>A horrible pain shoots through your body.</b></center>'
  594. xgt 'gameover'
  595. exit
  596. else
  597. MSG'<font color=red><B>You should die for giving birth unprepared, but Cheat Mode keeps you Alive.</B></font>'
  598. pregminut = totminut + 1440
  599. end
  600. elseif preg = 0:
  601. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A14'
  602. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A16'
  603. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A23'
  604. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A28'
  605. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A29'
  606. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A33'
  607. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A34'
  608. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A69'
  609. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A131'
  610. !{killvar 'pregTalkFamily' -- Do not kill this (Abortion talk).}
  611. killvar 'pcs_pregtalk'
  612. killvar 'pregTalk'
  613. killvar 'pregtime'
  614. killvar 'knowpreg'
  615. killvar 'denypreg'
  616. killvar '$wombthfath'
  617. end
  618. !!------------------------------------------------------------------------------------------------------------
  619. !! Arousal
  620. !!------------------------------------------------------------------------------------------------------------
  621. if magikDostup = 0:
  622. if pcs_horny < 100:pcs_horny += pcs_vag
  623. else
  624. if pcs_vag = 0:
  625. razeba = 0
  626. if pcs_horny > 0 and pcs_horny <= 50:pcs_horny -= 10
  627. if pcs_horny > 50:pcs_horny -= 25
  628. elseif pcs_vag > 0:
  629. if pregtimes = 0:
  630. if age < 18:
  631. razeba = 1
  632. if pcs_horny > 0 and pcs_horny <= 50:pcs_horny -= 5
  633. if pcs_horny > 50 and pcs_horny < 80:pcs_horny -= 10
  634. if pcs_horny >= 80:pcs_horny -= 20
  635. elseif age >= 18 and age < 21:
  636. razeba = 2
  637. if pcs_horny > 0 and pcs_horny <= 50:pcs_horny -= 1
  638. if pcs_horny > 50 and pcs_horny < 80:pcs_horny -= 5
  639. if pcs_horny >= 80:pcs_horny -= 10
  640. elseif age >= 21 and age < 25:
  641. razeba = 3
  642. if pcs_horny > 0 and pcs_horny <= 50:pcs_horny += 1
  643. if pcs_horny > 50 and pcs_horny < 80:pcs_horny -= 1
  644. if pcs_horny >= 80:pcs_horny -= 5
  645. elseif age >= 25 and age < 30:
  646. razeba = 4
  647. if pcs_horny > 0 and pcs_horny <= 50:pcs_horny += 5
  648. if pcs_horny > 50 and pcs_horny < 80:pcs_horny += 1
  649. if pcs_horny >= 80:pcs_horny -= 5
  650. elseif age >= 30:
  651. razeba = 5
  652. if pcs_horny > 0 and pcs_horny <= 50:pcs_horny += 10
  653. if pcs_horny > 50 and pcs_horny < 80:pcs_horny += 5
  654. if pcs_horny >= 80:pcs_horny += 1
  655. end
  656. elseif pregtimes > 0:
  657. if preg = 0:
  658. razeba = 5
  659. if pcs_horny > 0 and pcs_horny <= 50:pcs_horny += 10
  660. if pcs_horny > 50 and pcs_horny < 80:pcs_horny += 5
  661. if pcs_horny >= 80:pcs_horny += 1
  662. elseif preg > 0:
  663. razeba = 6
  664. if pcs_horny < 100:pcs_horny += pregchem / 240
  665. end
  666. end
  667. end
  668. end
  669. if pcs_horny < 0:pcs_horny = 0
  670. !!------------------------------------------------------------------------------------------------------------
  671. !reset Natasha Belova''s clothes
  672. if NatbelQW['seethroughwearing'] = 1: NatbelQW['seethroughwearing'] = 0
  673. !!------------------------------------------------------------------------------------------------------------
  674. !counter for Dimka avoidance
  675. if dimaFilm = 1 and dimaRudeBlock = 0:
  676. nodimkaK += 1
  677. DimkaWarnedToday = 0
  678. end
  679. !!------------------------------------------------------------------------------------------------------------
  680. !!Fame degradation
  681. gs 'fame', 'deg'
  682. !!Traits
  683. gs 'traits', 'overnight'
  684. !!------------------------------------------------------------------------------------------------------------
  685. !! Maruda hair mod
  686. !!------------------------------------------------------------------------------------------------------------
  687. !! Max. Hair length 600mm, or 60cm, which should be somewhere in the lower back area.
  688. !! Hair grows 1mm each day, it takes 20 months (1 month = 30 days) to regrow the hair from 0.
  689. if pcs_hairlng < 1001 and hairgrowcht = 0:pcs_hairlng += 1
  690. if pcs_haircol ! nathcol:
  691. dyefade -=1
  692. if dyefade < 0: dyefade = 0
  693. if dyefade > 0 and dyefade < 7: dyevmod = 5
  694. if dyefade = 0: dyevmod = 15
  695. end
  696. !!pubic hair colouring
  697. !! pcs_pubecol = natural colour
  698. !! pcs_pubecol[1] = flag for saveupdate
  699. !! pcs_pubecol[2] = actual colour
  700. !! pcs_pubecol[3] = countdown timer for dye
  701. if pcs_pubecol[2] ! pcs_pubecol:
  702. pcs_pubecol[3] -=1
  703. if pcs_pubecol[3] < 0: pcs_pubecol[3] = 0
  704. if pcs_pubecol[3] = 0: pcs_pubecol[2] = pcs_pubecol
  705. end
  706. if pcs_pubes < 2: pcs_pubecol[2] = pcs_pubecol
  707. if hscrunch > 0:
  708. hscrunchrand = rand(1, 100)
  709. if hscrunchrand <= 8:hscrunch -= 1
  710. end
  711. !!------------------------------------------------------------------------------------------------------------
  712. !! Clothing wear and tear
  713. gs 'starenie'
  714. !!cocaine reduction
  715. if nark > 60:
  716. nark = 60
  717. elseif nark > 30:
  718. nark -= 3
  719. elseif nark > 0:
  720. nark -= 1
  721. end
  722. if pregchem > 240:fat += 1
  723. !!------------------------------------------------------------------------------------------------------------
  724. !! Pain
  725. !!------------------------------------------------------------------------------------------------------------
  726. if pain['head'] > 0:pain['head'] -= rand(1,3)
  727. if pain['hair'] > 0:pain['hair'] -= rand(1,3)
  728. if pain['ears'] > 0:pain['ears'] -= rand(1,3)
  729. if pain['eyebrows'] > 0:pain['eyebrows'] -= rand(1,3)
  730. if pain['eyes'] > 0:pain['eyes'] -= rand(1,3)
  731. if pain['cheeks'] > 0:pain['cheeks'] -= rand(1,3)
  732. if pain['nose'] > 0:pain['nose'] -= rand(1,3)
  733. if pain['mouth'] > 0:pain['mouth'] -= rand(1,3)
  734. if pain['lips'] > 0:pain['lips'] -= rand(1,3)
  735. if pain['tongue'] > 0:pain['tongue'] -= rand(1,3)
  736. if pain['throat'] > 0:pain['throat'] -= rand(1,3)
  737. if pain['neck'] > 0:pain['neck'] -= rand(1,3)
  738. if pain['back'] > 0:pain['back'] -= rand(1,3)
  739. if pain['asscheeks'] > 0:pain['asscheeks'] -= rand(1,3)
  740. if pain['asshole'] > 0:pain['asshole'] -= rand(1,3)
  741. if pain['hips'] > 0:pain['hips'] -= rand(1,3)
  742. if pain['thighs'] > 0:pain['thighs'] -= rand(1,3)
  743. if pain['legL'] > 0:pain['legL'] -= rand(1,3)
  744. if pain['legR'] > 0:pain['legR'] -= rand(1,3)
  745. if pain['feet'] > 0:pain['feet'] -= rand(1,3)
  746. if pain['toes'] > 0:pain['toes'] -= rand(1,3)
  747. if pain['shoulders'] > 0:pain['shoulders'] -= rand(1,3)
  748. if pain['armL'] > 0:pain['armL'] -= rand(1,3)
  749. if pain['armR'] > 0:pain['armR'] -= rand(1,3)
  750. if pain['hands'] > 0:pain['hands'] -= rand(1,3)
  751. if pain['fingers'] > 0:pain['fingers'] -= rand(1,3)
  752. if pain['chest'] > 0:pain['chest'] -= rand(1,3)
  753. if pain['breasts'] > 0:pain['breasts'] -= rand(1,3)
  754. if pain['nipples'] > 0:pain['nipples'] -= rand(1,3)
  755. if pain['ribs'] > 0:pain['ribs'] -= rand(1,3)
  756. if pain['tummy'] > 0:pain['tummy'] -= rand(1,3)
  757. if pain['pubic'] > 0:pain['pubic'] -= rand(1,3)
  758. if pain['vaginal'] > 0:pain['vaginal'] -= rand(1,3)
  759. if pain['labia'] > 0:pain['labia'] -= rand(1,3)
  760. if pain['clitoris'] > 0:pain['clitoris'] -= rand(1,3)
  761. if pain['urethra'] > 0:pain['urethra'] -= rand(1,3)
  762. if pain['cervix'] > 0:pain['cervix'] -= rand(1,3)
  763. if painpub = 2:
  764. if painpubday + 5 < daystart:
  765. $painpub = 'Your vulva is painfully sore.'
  766. painpub = 1
  767. painpubday = daystart
  768. elseif painpubday + 5 >= daystart:
  769. $painpub = 'Your vulva is painfully sore.'
  770. end
  771. elseif painpub = 1:
  772. if painpubday + 5 < daystart:
  773. $painpub = ''
  774. painpub = 0
  775. painpubday = daystart
  776. elseif painpubday + 5 >= daystart:
  777. $painpub = 'Your vulva is a little sore.'
  778. end
  779. end
  780. !!---- Calculation of lash extension degradation and false lash removal
  781. if pcs_lashes > 2:
  782. if lashextensionstyle >= 1:
  783. lashextensionduration -= 1
  784. if lashextensionduration >= 1 and lashextensionduration <= 4:
  785. 'It''s time for you to do your maintenance on your lash extensions; you should go to the salon or you risk growing them all out.'
  786. end
  787. if lashextensionduration <= 0:
  788. 'You waited too long to do maintenance on your lash extensions; there''s too little there to notice or work with at this point.'
  789. pcs_lashes = pcs_naturallashes
  790. killvar 'lashextensionstyle'
  791. killvar 'lashextensionduration'
  792. killvar 'lashextensionnew'
  793. end
  794. end
  795. if false_lashes > 0:
  796. false_lashes -= 1
  797. if false_lashes = 0:
  798. 'Your false lashes came off in the night; there''s no recovering them now.'
  799. pcs_lashes = pcs_naturallashes
  800. else
  801. 'Somehow, your lashes managed to stay attached throughout the night. You might be able to get away with wearing them another day straight.'
  802. end
  803. end
  804. end
  805. prezikProver += 1
  806. if pirs_pain_ton > 0:pirs_pain_ton -= 1
  807. if shorthair = 1:
  808. shorthairday += 1
  809. if shorthairday >= 45:shorthairday = 0 & shorthair = 0
  810. end
  811. !!------------------------------------------------------------------------------------------------------------
  812. if KatjaOTN > 0:
  813. if KatjaHorny > 0 and KatjaLust < 40:KatjaHorny -= rand(1, 3)
  814. if KatjaLust >= 40:KatjaHorny += rand(1, 3)
  815. if KatjaHorny < 0:KatjaHorny = 0
  816. if KatjaHorny >= 100:KatjaHorny = 0 & KatjaMastr += 1 & KatjaLust += 1
  817. end
  818. if npc_rel['A69'] > 60 and rand(0,3) = 0:npc_rel['A69'] -= 1
  819. !!Counter for dimka/igor date
  820. if igor_DimaNos = 2 or igor_DimaNos = 3: $igor_DimaNos_day += 1
  821. if kanikuli = 0:pcs_grades -= 1
  822. dmishaevent = 0
  823. if Gspravka <= 0 and GspravkaT = 1:GspravkaT = 0 & Gspravka = 0
  824. if GspravkaT = 1:Gspravka -= 1
  825. if BurgerQW['IvanQW'] = 2 and BurgerQW['IvanQWPoliceDayCount'] = 30:BurgerQW['IvanQW'] = 3
  826. if BurgerQW['IvanQW'] = 2 and BurgerQW['IvanQWPoliceDayCount'] > 0 and BurgerQW['IvanQWPoliceDayCount'] < 30:BurgerQW['IvanQWPoliceDayCount'] += 1
  827. !!remove degradation for inhibition
  828. inhib_flr = inhib_lvl
  829. gs 'stat_sklattrib', 'daycall'
  830. if dounspell = 1:
  831. if strenbuf > 90:
  832. strenbuf -= 2
  833. elseif strenbuf > 80:
  834. strenbuf -= 1
  835. end
  836. if vitalbuf > 90:
  837. vitalbuf -= 2
  838. elseif vitalbuf > 80:
  839. vitalbuf -= 1
  840. end
  841. if strenbuf > pcs_stren: strenbuf -= 1
  842. if strenbuf < pcs_stren: strenbuf += 1
  843. if vitalbuf > pcs_vital: vitalbuf -= 1
  844. if vitalbuf < pcs_vital: vitalbuf += 1
  845. if agilbuf > pcs_agil: agilbuf -= 1
  846. if agilbuf < pcs_agil: agilbuf += 1
  847. else
  848. gs 'body_shape'
  849. end
  850. if husband > 0 and husbandrink ! 11:husbandrink = rand(0, 10)
  851. !!Pussy_Kats job settings
  852. inWorkYoungShop = 0
  853. if week = 1 and young_shop_work = 100: young_shop_work = 1
  854. if week = 5 and young_shop_work1 = 100: young_shop_work1 = 1
  855. if week = 1 and young_shop_work2 = 100: young_shop_work2 = 1
  856. husbandsexday = 0
  857. borsexkol = 0
  858. givisexday = 0
  859. if shantsr > 0:
  860. pay = shantsr * 5000
  861. karta += pay
  862. shantsr = 0
  863. end
  864. if shantbog > 0:
  865. :shantftb
  866. shantftbgrand = rand(0, 10)
  867. if shantftbgrand > 2:
  868. shantpopala += 1
  869. shantbog -= 1
  870. if shantbog > 0:jump 'shantftb'
  871. elseif shantftbgrand <= 2:
  872. karta += 30000
  873. shantbog -= 1
  874. if shantbog > 0:jump 'shantftb'
  875. end
  876. end
  877. petersexday = 0
  878. klismaday1 = 0
  879. !! Resetting relationships that go over the max
  880. :toptemprel
  881. if temprel < aarraynumber:
  882. temprel +=1
  883. if npc_rel['A'+'<<temprel>>'] > 100:npc_rel['A'+'<<temprel>>'] = 100
  884. jump 'toptemprel'
  885. end
  886. killvar 'temprel'
  887. !!------------------------------------------------------------------------------------------------------------
  888. !! Banking
  889. !!------------------------------------------------------------------------------------------------------------
  890. !!MJ: Add some (daily) interest to the bank account.
  891. !!Not very realistic but won''t make anyone too rich.
  892. if bankAccount = 1:
  893. kartatotal = karta
  894. :kartaloop
  895. if kartatotal > 20000000:
  896. kartacount += 1
  897. largekarta[kartacount] = 20000000
  898. kartatotal -= 20000000
  899. jump 'kartaloop'
  900. else
  901. largekarta[0] = kartatotal
  902. end
  903. if karta >= 2000000:
  904. !! yearly interest of 2.3% recalculated into daily interest = 0.006% daily
  905. intrate = 60
  906. elseif karta >= 0:
  907. !! yearly interest of 1.15% recalculated into daily interest = 0.003% daily
  908. intrate = 30
  909. else
  910. !! yearly overdraft interest of 20% recalculated into daily interest = 0.055% daily
  911. intrate = 550
  912. end
  913. :intloop
  914. if kartacount > 0:
  915. smallmoneypos += (largekarta[kartacount] * intrate)
  916. if smallmoneypos >= 1000000 or smallmoneypos <= -1000000: karta += smallmoneypos / 1000000 & smallmoneypos = smallmoneypos mod 1000000
  917. largekarta[kartacount] = 0
  918. kartacount -= 1
  919. jump 'intloop'
  920. else
  921. smallmoneypos += (largekarta[0] * intrate)
  922. largekarta[0] = 0
  923. if kartacount ! 0: kartacount = 0
  924. end
  925. if smallmoneypos >= 1000000 or smallmoneypos <= -1000000:
  926. karta += smallmoneypos / 1000000
  927. smallmoneypos = smallmoneypos mod 1000000
  928. end
  929. if atmDeposit > 0 and atmDepositDate <= daystart:
  930. karta += atmDeposit
  931. atmDeposit = 0
  932. end
  933. end
  934. !!------------------------------------------------------------------------------------------------------------
  935. !! Payments
  936. !!------------------------------------------------------------------------------------------------------------
  937. if day = 25:
  938. !! meynold payment
  939. if mey_vika['mey_vika_qw'] >= 35 and mey_tamara['help_count'] < 10 and mey_tamara['qw_end'] = 0:
  940. karta += 10000
  941. '<b><font color=green>For your efforts aunt Tamara gave you 10,000 rubles</font></b>'
  942. mey_tamara['help_count'] = 0
  943. elseif mey_vika['mey_vika_qw'] >= 35 and mey_tamara['help_count'] >= 10 and mey_tamara['qw_end'] = 0:
  944. karta += 15000
  945. '<b><font color=green>For your efforts aunt Tamara gave you 15,000 rubles</font></b>'
  946. mey_tamara['help_count'] = 0
  947. end
  948. if BurgerQW['Secretary'] = 1 and BurgerQW['SecretaryTimesWorked'] > 0 and paydaybistrosec = 0:
  949. Pay = BurgerQW['SecretaryTimesWorked'] * 1250
  950. BurgerQW['SecretaryTimesWorked'] = 0
  951. karta += Pay
  952. paydaybistrosec = 1
  953. '<b><font color="green">Your salary of <<pay>> <b>₽</b> has been paid into your bank account for your job as a secretary.</font></b>'
  954. end
  955. if workKafe = 1 and paydayKafe = 0:
  956. paydayKafe = 1
  957. pay = smenaKafe * 600
  958. karta += pay
  959. smenaKafe = 0
  960. '<b><font color="green">Your salary of <<pay>> <b>₽</b> has been paid into your bank account for your job as a waitress in a cafe.</font></b>'
  961. end
  962. if workhosp = 1 and nopaypoly = 0:
  963. pay = smena * 1000
  964. karta += pay
  965. smena = 0
  966. nopaypoly = 1
  967. '<b><font color="green">Your salary of <<pay>> <b>₽</b> has been paid into your bank account for your work in the clinic.</font></b>'
  968. end
  969. if worksalon = 1 and nopaysalon = 0:
  970. pay = smenaSalon * 1560
  971. karta += pay
  972. smenaSalon = 0
  973. nopaysalon = 1
  974. '<b><font color="green">Your salary of <<pay>> <b>₽</b> has been paid into your bank account for your work in a beauty salon.</font></b>'
  975. end
  976. if tanwork = 1 and nopaytanwork = 0:
  977. nopaytanwork = 1
  978. karta += 10000
  979. '<b><font color="green">Your salary of 10,000 <b>₽</b> has been paid into your bank account for your work as a house maid.</font></b>'
  980. end
  981. if workSec = 1 and paydaySec = 0:
  982. paydaySec = 1
  983. pay = sekDay * 800
  984. if officebestslut >= 3:pay += 10000
  985. karta += pay
  986. sekDay = 0
  987. '<b><font color="green">Your salary of <<pay>> <b>₽</b> has been paid into your bank account for your job as a secretary.</font></b>'
  988. end
  989. if workFabrika = 1:
  990. pay = smenaFabrika * 600
  991. smenaFabrika = 0
  992. karta += pay
  993. '<b><font color="green">Your salary of <<pay>> <b>₽</b> has been paid into your bank account for your job at the garment factory.</font></b>'
  994. end
  995. if husband > 0 and paydayHusb = 0:
  996. paydayHusb = 1
  997. if husbFin = 0:huspay = 20000
  998. if husbFin = 1:huspay = 30000
  999. if husbFin = 2:huspay = 40000
  1000. karta += huspay
  1001. '<b><font color="green">Your husband has paid <<huspay>> <b>₽</b> into your bank account.</font></b>'
  1002. end
  1003. if func('uniutil', 'scholarship' , 'is_active') and scholarshipday = 0:
  1004. scholarshipday = 1
  1005. karta += func('uniutil', 'scholarship', 'get')
  1006. '<b><font color="green">You have received '+func('uniutil', 'scholarship', 'get')+' <b>₽</b> from your scholarship.</font></b>'
  1007. end
  1008. ! Utilities for all apartments.
  1009. if (home_owned[1] = 1 or home_owned[1] = 2 or home_owned[4] > 0 or home_owned[5] = 2) and electroday = 0:
  1010. gs 'housing', 'util'
  1011. if bankAccount = 1 and karta >= elektro:
  1012. '<b><font color="green"><<elektro>> <b>₽</b> for utilities, has been automatically deducted from your bank account.</font></b>'
  1013. electroday = 1
  1014. if elektro >= 2000:
  1015. elektro = 2000 + rand(0, 100)
  1016. karta -= elektro * hcount_util
  1017. end
  1018. elseif bankAccount = 1 and karta + bankDebtLimit >= elektro:
  1019. '<b><font color="green"><<elektro>> <b>₽</b> for utilities, has been automatically deducted from your bank account and overdraw facility. Please contact your bank.</font></b>'
  1020. electroday = 1
  1021. if elektro >= 2000:
  1022. elektro = 2000 + rand(0, 100)
  1023. karta -= elektro * hcount_util
  1024. end
  1025. elseif bankAccount = 0 and money >= elektro:
  1026. '<b><font color="red">You currently do not have a bank account setup for automatic utilities payments. <<elektro>> <b>₽</b> has been deducted from your cash holdings.</font></b>'
  1027. electroday = 1
  1028. if elektro >= 2000:
  1029. elektro = 2000 + rand(0, 100)
  1030. money -= elektro * hcount_util
  1031. end
  1032. else
  1033. '<b><font color="red">Your card was declined during automatic debit of <<elektro>> <b>₽</b>, for automatic utilities payment.</font></b>'
  1034. end
  1035. end
  1036. ! Cable for all apartments
  1037. if kabel > 0 and kabelday = 0:
  1038. gs 'housing', 'cable'
  1039. if bankAccount = 1 and karta >= (300 * hcount_cable):
  1040. '<b><font color="green">300 <b>₽</b> has been deducted from your bank account, for you cable TV subscription.</font></b>'
  1041. kabelday = 1
  1042. karta -= 300 * hcount_cable
  1043. elseif bankAccount = 1 and karta + bankDebtLimit >= (300 * hcount_cable):
  1044. '<b><font color="green">300 <b>₽</b> has been deducted from your bank account and overdraw facility, for you cable TV subscription.</font></b>'
  1045. kabelday = 1
  1046. karta -= 300 * hcount_cable
  1047. elseif bankAccount = 0 and money >= (300 * hcount_cable):
  1048. '<b><font color="red">You currently do not have a bank account setup for automatic payment of your cable TV subscription. 300 <b>₽</b> has been deducted from your cash holdings.</font></b>'
  1049. kabelday = 1
  1050. money -= 300 * hcount_cable
  1051. else
  1052. '<b><font color="red">Your card was declined during automatic debit of 300 <b>₽</b> for cable TV subscription.</font></b>'
  1053. end
  1054. end
  1055. end
  1056. if day ! 25:
  1057. if paydayHusb = 1:paydayHusb = 0
  1058. if workKafe = 1 and paydayKafe = 1:paydayKafe = 0
  1059. if workSec = 1 and paydaySec = 1:paydaySec = 0
  1060. if (home_owned[1] = 1 or home_owned[4] > 0) and haday = 1:haday = 0
  1061. if (home_owned[1] > 0 or home_owned[4] > 0 or home_owned[5] = 2) and electroday = 1:electroday = 0
  1062. if (home_owned[1] > 0 or home_owned[4] > 0 or home_owned[5] = 3) and kabel > 0 and kabelday = 1:kabelday = 0
  1063. if scholarshipday = 1:scholarshipday = 0
  1064. if nopaytanwork = 1:nopaytanwork = 0
  1065. if nopaypoly = 1:nopaypoly = 0
  1066. if nopaysalon = 1:nopaysalon = 0
  1067. if paydaybistrosec = 1:paydaybistrosec = 0
  1068. end
  1069. if sdaday = day and sdamonth = month and home_owned[1] = 3:
  1070. home_owned[1] = 2
  1071. '<b><font color="red">Your tenants have moved out and your apartment is now vacant.</font></b>'
  1072. !msg 'Your tenants have moved out and your apartment is now vacant.'
  1073. end
  1074. !!----------------------------------------
  1075. !! Rent
  1076. !!----------------------------------------
  1077. if home_owned[1] = 1 or home_owned[4] > 0:
  1078. gs 'housing', 'rent'
  1079. ! Rent for the city apartment
  1080. if home_owned[1] = 1:
  1081. if ArendHouseSL <= 2:
  1082. !From bank
  1083. if bankAccount = 1 and karta >= home_rent[1]:
  1084. '<b><font color="green">Your rent payment of <<home_rent[1]>> <b>₽</b> for your city apartment, has automatically been deducted from your bank account.</font></b>'
  1085. karta -= home_rent[1]
  1086. ArendHouseSL += ArendHouseSL_due
  1087. elseif bankAccount = 1 and karta + bankDebtLimit >= home_rent[1]:
  1088. '<b><font color="green">Your rent payment of <<home_rent[1]>> <b>₽</b> for your city apartment, has automatically been deducted from your bank account and overdraw facility. Please contact your bank regarding your overdraw repayment.</font></b>'
  1089. karta -= home_rent[1]
  1090. ArendHouseSL += ArendHouseSL_due
  1091. elseif bankAccount = 0:
  1092. '<b><font color="red">You currently do not have a bank account setup for automatic rent deduction of <<home_rent[1]>> <b>₽</b> for your city apartment. To avoid eviction, please make manual payment as soon as possible.</font></b>'
  1093. else
  1094. nl
  1095. '<b><b><font color="red">Your card was declined during automatic rent deduction of <<home_rent[1]>> <b>₽</b> for your city apartment. To avoid eviction, please rectify as soon as possible.</font></b>'
  1096. end
  1097. end
  1098. end
  1099. ! Rent for the Pushkin apartment
  1100. if home_owned[4] > 0:
  1101. if ArendHouseSL4 <= 2:
  1102. !From bank
  1103. if bankAccount = 1 and karta >= home_rent[4]:
  1104. '<b><font color="green">Your rent payment of <<home_rent[4]>> <b>₽</b> for your Pushkin apartment, has automatically been deducted from your bank account.</font></b>'
  1105. karta -= home_rent[4]
  1106. ArendHouseSL4 += ArendHouseSL4_due
  1107. elseif bankAccount = 1 and karta + bankDebtLimit >= home_rent[4]:
  1108. '<b><font color="green">Your rent payment of <<home_rent[4]>> <b>₽</b> for your Pushkin apartment, has automatically been deducted from your bank account and overdraw facility. Please contact your bank regarding your overdraw repayment.</font></b>'
  1109. karta -= home_rent[4]
  1110. ArendHouseSL4 += ArendHouseSL4_due
  1111. elseif bankAccount = 0:
  1112. '<b><font color="red">You currently do not have a bank account setup for automatic rent deduction of <<home_rent[4]>> <b>₽</b> for your Pushkin apartment. To avoid eviction, please make manual payment as soon as possible.</font></b>'
  1113. else
  1114. nl
  1115. '<b><b><font color="red">Your card was declined during automatic rent deduction of <<home_rent[4]>> <b>₽</b> for your Pushkin apartment. To avoid eviction, please rectify as soon as possible.</font></b>'
  1116. end
  1117. end
  1118. end
  1119. end
  1120. if home_owned[1] = 1 and ArendHouseSL <= 0: ArendHouseSL = 0 & home_owned[1] = 0
  1121. if home_owned[4] > 0 and ArendHouseSL4 <= 0: ArendHouseSL4 = 0 & home_owned[4] = 0
  1122. if home_owned[1] = 1: ArendHouseSL -= 1
  1123. if home_owned[4] > 0: ArendHouseSL4 -= 1
  1124. !!------------------------------------------------------------------------------------------------------------
  1125. killvar 'holyday'
  1126. killvar 'kanikuli'
  1127. killvar 'pcs_ate'
  1128. killvar 'pcs_drank'
  1129. !! THIS IS THE OLD SYSTEM. Only keeping this in while it''s still in use as reference for the old variables, otherwise THESE VALUES ARE NOT THE CORRECT ONES FOR NEW VARIABLES
  1130. !!sisboyparty
  1131. !!-1 - don''t go to the party
  1132. !!0 - don''t know about parties
  1133. !!1 - knows about the parties
  1134. !!2 - agreed to go to the party
  1135. !!3 - Missed the party
  1136. if storyline = 1:
  1137. !!Party refresh if you didn''t see sis
  1138. if week = 1 and sisboyparty ! 2:
  1139. if sisterQW['party'] = -1: sisterQW['party'] = 0
  1140. if sisboypartyQW >= 2 and sisboyparty > 0:
  1141. sisboyparty_day = daystart + rand(3,5)
  1142. end
  1143. end
  1144. if sisboyparty = 2 and sisboyparty_day + 1 < daystart: sisboyparty = 3
  1145. if SchoolAtestat = 0 and SchoolBlock = 0:
  1146. if month = 12 and day > 25:
  1147. if day < 31:
  1148. $holyday = '<b>Winter Break in <<32-day>> days.</b>'
  1149. else
  1150. $holyday = '<b>Winter Break starts tomorrow.</b>'
  1151. end
  1152. elseif month = 1 and day <= 15:
  1153. kanikuli = 2
  1154. if day < 13:
  1155. $holyday = '<b>Winter Break.</b>'
  1156. elseif day < 15:
  1157. $holyday = '<b>Winter Break ends in <<16-day>> days.</b>'
  1158. else
  1159. $holyday = '<b>Last day of Winter Break.</b>'
  1160. end
  1161. elseif month = 3 and day > 13:
  1162. if day < 19:
  1163. $holyday = '<b>Spring Break starts in <<20-day>> days.</b>'
  1164. elseif day = 19:
  1165. $holyday = '<b>Spring Break starts tomorrow.</b>'
  1166. elseif day >= 20 and day <= 26:
  1167. kanikuli = 3
  1168. if day < 24:
  1169. $holyday = '<b>Spring Break.</b>'
  1170. elseif day < 26:
  1171. $holyday = '<b>Spring Break ends in <<27-day>> days.</b>'
  1172. else
  1173. $holyday = '<b>Last day of Spring Break.</b>'
  1174. end
  1175. end
  1176. elseif month = 5:
  1177. if year = 2017:
  1178. if day = 25:
  1179. kanikuli = 6
  1180. SchoolAtestat = -1
  1181. $holyday = '<b>Your graduation is today. Be there by 8:00.</b>'
  1182. elseif day = 24:
  1183. $holyday = '<b>Your graduation is tomorrow. Be there by 8:00.</b>'
  1184. elseif day >= 19:
  1185. $holyday = '<b>Your graduation is in <<26-day>> days.</b>'
  1186. end
  1187. elseif day >= 25:
  1188. if day = 31:
  1189. $holyday = '<b>Summer Break starts tomorrow.</b>'
  1190. else
  1191. $holyday = '<b>Summer Break starts in <<32-day>> days.</b>'
  1192. end
  1193. end
  1194. elseif month = 6 or month = 7 or month = 8:
  1195. kanikuli = 4
  1196. if month = 8 and day >= 25:
  1197. if day = 31:
  1198. $holyday = '<b>Last day of Summer Break.</b>'
  1199. else
  1200. $holyday = '<b>Summer Break ends in <<32-day>> days.</b>'
  1201. end
  1202. else
  1203. $holyday = '<b>Summer Break.</b>'
  1204. end
  1205. !! start inc 'I put it here because I want to reset these variables during the summer, they are related to cheerleading and it is useful just in case that PC will be part of the team for more than one year.'
  1206. killvar 'first_time_outside_in_cold_weather'
  1207. killvar 'first_time_doing_basketball'
  1208. killvar 'first_time_spring_football_match'
  1209. !! end inc
  1210. elseif month = 10 and day >= 29:
  1211. $holyday = '<b>Autumn Break starts in <<35-day>> days.</b>'
  1212. elseif month = 11:
  1213. if day < 3:
  1214. $holyday = '<b>Autumn Break starts in <<4-day>> days.</b>'
  1215. elseif day = 3:
  1216. $holyday = '<b>Autumn Break starts tomorrow.</b>'
  1217. elseif day < 6:
  1218. kanikuli = 1
  1219. $holyday = '<b>Autumn Break.</b>'
  1220. elseif day < 11:
  1221. kanikuli = 1
  1222. $holyday = '<b>Autumn Break ends in <<12-day>> days.</b>'
  1223. elseif day = 11:
  1224. kanikuli = 1
  1225. $holyday = '<b>Last day of Autumn Break.</b>'
  1226. end
  1227. end
  1228. if kanikuli = 0 and week < 6:
  1229. if week = 1:
  1230. !!The start and end values for i have to be changed if more female schoolgirl npcs are added to the game
  1231. i = 11
  1232. :hotcat_calc_jump
  1233. i += 1
  1234. if hotcat_rating['A<<i>>'] = 0: jump 'hotcat_calc_jump'
  1235. switch_rand = rand(1,100)
  1236. if hotcat_movement['A<<i>>'] = 0 and switch_rand < 21:
  1237. hotcat_rating['A<<i>>'] -= 1
  1238. hotcat_movement['A<<i>>'] -= 1
  1239. elseif hotcat_movement['A<<i>>'] = 0 and switch_rand > 80:
  1240. hotcat_rating['A<<i>>'] += 1
  1241. hotcat_movement['A<<i>>'] += 1
  1242. elseif hotcat_movement['A<<i>>'] = 1 and switch_rand > 40:
  1243. hotcat_rating['A<<i>>'] -= 1
  1244. hotcat_movement['A<<i>>'] -= 1
  1245. elseif hotcat_movement['A<<i>>'] = -1 and switch_rand > 40:
  1246. hotcat_rating['A<<i>>'] += 1
  1247. hotcat_movement['A<<i>>'] += 1
  1248. end
  1249. if i < 145: jump 'hotcat_calc_jump'
  1250. killvar 'i'
  1251. killvar 'switch_rand'
  1252. end
  1253. !! Resetting the late flag
  1254. if late = 1: late = 0
  1255. !!Maximum increase for grupvalues is 7/8
  1256. if oldgrupvalue_set = 0:
  1257. oldgrupvalue_set = 1
  1258. old_grupvalue[1] = grupvalue[1]
  1259. old_grupvalue[2] = grupvalue[2]
  1260. old_grupvalue[3] = grupvalue[3]
  1261. old_grupvalue[4] = grupvalue[4]
  1262. else
  1263. if old_grupvalue[1] + 8 < grupvalue[1]: grupvalue[1] = old_grupvalue[1] + 8
  1264. if old_grupvalue[2] + 8 < grupvalue[2]: grupvalue[2] = old_grupvalue[2] + 8
  1265. if old_grupvalue[3] + 8 < grupvalue[3]: grupvalue[3] = old_grupvalue[3] + 8
  1266. if old_grupvalue[4] + 8 < grupvalue[4]: grupvalue[4] = old_grupvalue[4] + 8
  1267. end
  1268. !!Limit to max school group values
  1269. if grupvalue[1] > 1000: grupvalue[1] = 1000
  1270. if grupvalue[2] > 1000: grupvalue[2] = 1000
  1271. if grupvalue[3] > 1000: grupvalue[3] = 1000
  1272. if grupvalue[4] > 1000: grupvalue[4] = 1000
  1273. !!Decay for the school groups
  1274. if grupvalue[1] > 0:
  1275. grupvalue[1] -= rand(0,1)
  1276. else
  1277. grupvalue[1] = 0
  1278. end
  1279. if grupvalue[2] > 0:
  1280. grupvalue[2] -= rand(0,1)
  1281. else
  1282. grupvalue[2] = 0
  1283. end
  1284. if grupvalue[3] > 0:
  1285. grupvalue[3] -= rand(0,1)
  1286. else
  1287. grupvalue[3] = 0
  1288. end
  1289. if grupvalue[4] > 0:
  1290. grupvalue[4] -= rand(0,1)
  1291. else
  1292. grupvalue[4] = 0
  1293. end
  1294. old_grupvalue[1] = grupvalue[1]
  1295. old_grupvalue[2] = grupvalue[2]
  1296. old_grupvalue[3] = grupvalue[3]
  1297. old_grupvalue[4] = grupvalue[4]
  1298. end
  1299. elseif SchoolAtestat = -1:
  1300. if home_owned[2] = 0:
  1301. $holyday = '<b>You missed your graduation. You could pick up your diploma at the school.</b>'
  1302. else
  1303. $holyday = '<b>You missed your graduation. Maybe your mother picked up your diploma.</b>'
  1304. end
  1305. end
  1306. !!Brother''s dick growth as he gets older
  1307. !Commented out till some future time
  1308. !if kolka_dick_day + 30 < daystart and npc_dick['A34'] < 26:
  1309. ! kolka_dick_day = daystart
  1310. ! npc_dick['A34'] += 1
  1311. !end
  1312. !if npc_dick['A34'] < 20 and npc_dick['A34'] > 16:
  1313. ! $npc_thdick['A34'] = 'well proportioned'
  1314. !elseif npc_dick['A34'] >= 20 and npc_dick['A34'] <= 26:
  1315. ! $npc_thdick['A34'] = 'thick'
  1316. !end
  1317. end
  1318. killvar 'natholi'
  1319. if month = 1 and day >= 1 and day <= 8:
  1320. $natholi = 'New Year holidays'
  1321. natholi = 1
  1322. if day = 1:$natholi += ', New Year'
  1323. if day = 7:$natholi += ', Christmas'
  1324. end
  1325. if month = 2 and day = 23:$natholi = 'Defender of Fatherland Day' & natholi = 1
  1326. if month = 3 and day = 8:$natholi = 'Women''s Day' & natholi = 1
  1327. if month = 5 and day = 1:$natholi = 'Spring and Labor Day' & natholi = 1
  1328. if month = 5 and day = 2:$natholi = 'National holiday' & natholi = 1
  1329. if month = 5 and day = 9:$natholi = 'Victory Day' & natholi = 1
  1330. if month = 6 and day = 12:$natholi = 'Russia Day' & natholi = 1
  1331. if month = 6 and day = 13:$natholi = 'National holiday' & natholi = 1
  1332. if month = 11 and day = 4:$natholi = 'Unity Day' & natholi = 1
  1333. if natholi = 1:
  1334. if $holyday ! '': $holyday += '<br>'
  1335. $holyday += $natholi
  1336. end
  1337. if bcream_used >= 1:
  1338. bcream_used = 0
  1339. temp = rand(0,max(nbsize-genbsize+5,5)) / max(nbsize-genbsize,1)
  1340. if temp > 0: temp = 1
  1341. nbsize += temp
  1342. if temp > 0:'Feels like your breasts have grown slightly.'
  1343. end
  1344. if steroid_dose >= 1:
  1345. if lashair < 1:
  1346. pcs_pubes += steroid_dose
  1347. pcs_leghair += steroid_dose
  1348. end
  1349. steroid_dose = 0
  1350. end
  1351. if aphrodisiac_overdose = 1:aphrodisiac_overdose = 0
  1352. if aphrodisiac_timer ! 0:aphrodisiac_timer = 0
  1353. if mentats_dose = 1:
  1354. mentats_dose = 0
  1355. elseif mentats_dose > 1:
  1356. pain['head'] += 20 * mentats_dose
  1357. mentats_dose = 0
  1358. end
  1359. !!Appearance base calculation call
  1360. gs 'body_shape', 'basebeautycalc'
  1361. !! vovan, from 1.2.5
  1362. hunters_check = 0
  1363. mushroom_pickers = 0
  1364. mira_go_river = 0
  1365. forestpicnic = 0
  1366. if Mira_no > 0: Mira_no -= 1
  1367. if Mira_no < 0: Mira_no = 0
  1368. !! new grandparent chore stuff, for 0.8.0
  1369. if gadstay = 1 and lost_girl = 0:
  1370. if daystart > (grandmaQW['last_day_helped'] + 3) and daystart > (grandpaQW['last_day_helped'] + 3):
  1371. if (daystart - grandmaQW['last_day_helped']) <= (daystart - grandpaQW['last_day_helped']):
  1372. 'You haven''t helped your grandparents with any chores in <<daystart - grandmaQW[''last_day_helped'']>> days. You should help out more regularly to stay on your grandparents'' good side.'
  1373. else
  1374. 'You haven''t helped your grandparents with any chores in <<daystart - grandpaQW[''last_day_helped'']>> days. You should help out more regularly to stay on your grandparents'' good side.'
  1375. end
  1376. grandmaQW['help_amount'] -= 1
  1377. end
  1378. end
  1379. !! disappointing grandma
  1380. if grandmaQW['chore_clean_floor'] = 1 or grandmaQW['chore_clean_floor'] = 2:
  1381. grandmaQW['chore_clean_floor'] = 0
  1382. grandmaQW['disappointment'] = 1
  1383. elseif grandmaQW['chore_wash_clothes'] = 1 or grandmaQW['chore_wash_clothes'] = 2:
  1384. grandmaQW['chore_wash_clothes'] = 0
  1385. grandmaQW['disappointment'] = 1
  1386. elseif grandmaQW['chore_milk_cow'] = 1 or grandmaQW['chore_milk_cow'] = 2:
  1387. grandmaQW['chore_milk_cow'] = 0
  1388. grandmaQW['disappointment'] = 1
  1389. elseif grandmaQW['chore_groceries'] = 1 or grandmaQW['chore_groceries'] = 2:
  1390. grandmaQW['chore_groceries'] = 0
  1391. grandmaQW['disappointment'] = 1
  1392. elseif grandmaQW['chore_can_mushrooms'] = 1 or grandmaQW['chore_can_mushrooms'] = 2:
  1393. grandmaQW['chore_can_mushrooms'] = 0
  1394. grandmaQW['disappointment'] = 1
  1395. elseif grandmaQW['chore_can_berries'] = 1 or grandmaQW['chore_can_berries'] = 2:
  1396. grandmaQW['chore_can_berries'] = 0
  1397. grandmaQW['disappointment'] = 1
  1398. elseif grandmaQW['chore_can_veggies'] = 1 or grandmaQW['chore_can_veggies'] = 2:
  1399. grandmaQW['chore_can_veggies'] = 0
  1400. grandmaQW['disappointment'] = 1
  1401. elseif grandmaQW['chore_feed_chickens'] = 1 or grandmaQW['chore_feed_chickens'] = 2:
  1402. grandmaQW['chore_feed_chickens'] = 0
  1403. grandmaQW['disappointment'] = 1
  1404. elseif grandmaQW['chore_work_in_garden'] = 1 or grandmaQW['chore_work_in_garden'] = 2:
  1405. grandmaQW['chore_work_in_garden'] = 0
  1406. grandmaQW['disappointment'] = 1
  1407. elseif grandmaQW['chore_water_garden'] = 1 or grandmaQW['chore_water_garden'] = 2:
  1408. grandmaQW['chore_water_garden'] = 0
  1409. grandmaQW['disappointment'] = 1
  1410. elseif grandmaQW['chore_collect_strawberries'] = 1 or grandmaQW['chore_collect_strawberries'] = 2:
  1411. grandmaQW['chore_collect_strawberries'] = 0
  1412. grandmaQW['disappointment'] = 1
  1413. elseif grandmaQW['chore_collect_fruit'] = 1 or grandmaQW['chore_collect_fruit'] = 2:
  1414. grandmaQW['chore_collect_fruit'] = 0
  1415. grandmaQW['disappointment'] = 1
  1416. elseif grandmaQW['chore_harvest_garden'] = 1 or grandmaQW['chore_harvest_garden'] = 2:
  1417. grandmaQW['chore_harvest_garden'] = 0
  1418. grandmaQW['disappointment'] = 1
  1419. elseif grandmaQW['chore_gather_mushrooms'] = 1 or grandmaQW['chore_gather_mushrooms'] = 2:
  1420. grandmaQW['chore_gather_mushrooms'] = 0
  1421. grandmaQW['chore_mushroom_quantity'] = 0
  1422. grandmaQW['disappointment'] = 1
  1423. elseif grandmaQW['chore_gather_berries'] = 1 or grandmaQW['chore_gather_berries'] = 2:
  1424. grandmaQW['chore_gather_berries'] = 0
  1425. grandmaQW['chore_berry_quantity'] = 0
  1426. grandmaQW['disappointment'] = 1
  1427. elseif grandmaQW['chore_gather_both'] = 1 or grandmaQW['chore_gather_both'] = 2:
  1428. grandmaQW['chore_gather_both'] = 0
  1429. grandmaQW['chore_mushroom_quantity'] = 0
  1430. grandmaQW['chore_berry_quantity'] = 0
  1431. grandmaQW['disappointment'] = 1
  1432. end
  1433. !! disappointing grandpa
  1434. if grandpaQW['chore_fetch_firewood'] = 1 or grandpaQW['chore_fetch_firewood'] = 2:
  1435. grandpaQW['chore_fetch_firewood'] = 0
  1436. grandpaQW['disappointment'] = 1
  1437. elseif grandpaQW['chore_feed_horse'] = 1 or grandpaQW['chore_feed_horse'] = 2:
  1438. grandpaQW['chore_feed_horse'] = 0
  1439. grandpaQW['disappointment'] = 1
  1440. elseif grandpaQW['chore_feed_cow'] = 1 or grandpaQW['chore_feed_cow'] = 2:
  1441. grandpaQW['chore_feed_cow'] = 0
  1442. grandpaQW['disappointment'] = 1
  1443. elseif grandpaQW['chore_clean_yard'] = 1 or grandpaQW['chore_clean_yard'] = 2:
  1444. grandpaQW['chore_clean_yard'] = 0
  1445. grandpaQW['disappointment'] = 1
  1446. elseif grandpaQW['chore_feed_boar'] = 1 or grandpaQW['chore_feed_boar'] = 2:
  1447. grandpaQW['chore_feed_boar'] = 0
  1448. grandpaQW['disappointment'] = 1
  1449. elseif grandpaQW['chore_bathe_horse'] = 1 or grandpaQW['chore_bathe_horse'] = 2:
  1450. grandpaQW['chore_bathe_horse'] = 0
  1451. grandpaQW['chore_bathe_horse_prog'] = 0
  1452. grandpaQW['disappointment'] = 1
  1453. elseif grandpaQW['chore_brush_horse'] = 1 or grandpaQW['chore_brush_horse'] = 2:
  1454. grandpaQW['chore_brush_horse'] = 0
  1455. grandpaQW['disappointment'] = 1
  1456. elseif grandpaQW['chore_lead_horse_to_field'] = 1 or grandpaQW['chore_lead_horse_to_field'] = 2:
  1457. grandpaQW['chore_lead_horse_to_field'] = 0
  1458. grandpaQW['disappointment'] = 1
  1459. elseif grandpaQW['chore_herd_cattle'] = 1 or grandpaQW['chore_herd_cattle'] = 2:
  1460. grandpaQW['chore_herd_cattle'] = 0
  1461. grandpaQW['disappointment'] = 1
  1462. elseif grandpaQW['chore_lead_cow_to_field'] = 1 or grandpaQW['chore_lead_cow_to_field'] = 2:
  1463. grandpaQW['chore_lead_cow_to_field'] = 0
  1464. grandpaQW['disappointment'] = 1
  1465. elseif grandpaQW['chore_gather_mushrooms'] = 1 or grandpaQW['chore_gather_mushrooms'] = 2:
  1466. grandpaQW['chore_gather_mushrooms'] = 0
  1467. grandpaQW['chore_mushroom_quantity'] = 0
  1468. grandpaQW['disappointment'] = 1
  1469. elseif grandpaQW['chore_gather_berries'] = 1 or grandpaQW['chore_gather_berries'] = 2:
  1470. grandpaQW['chore_gather_berries'] = 0
  1471. grandpaQW['chore_berry_quantity'] = 0
  1472. grandpaQW['disappointment'] = 1
  1473. elseif grandpaQW['chore_gather_both'] = 1 or grandpaQW['chore_gather_both'] = 2:
  1474. grandpaQW['chore_gather_both'] = 0
  1475. grandpaQW['chore_mushroom_quantity'] = 0
  1476. grandpaQW['chore_berry_quantity'] = 0
  1477. grandpaQW['disappointment'] = 1
  1478. elseif grandpaQW['chore_bale_hay'] = 1 or grandpaQW['chore_bale_hay'] = 2:
  1479. grandpaQW['chore_bale_hay'] = 0
  1480. grandpaQW['disappointment'] = 1
  1481. end
  1482. !! grandparents use root cellar
  1483. if boletus_stored > 0: boletus_stored -= rand(0,1)
  1484. if bilberry_stored > 0: bilberry_stored -= rand(0,1)
  1485. if boletus_stored < 0: boletus_stored = 0
  1486. if bilberry_stored < 0: bilberry_stored = 0
  1487. !! end of new grandparent chore stuff, for 0.8.0
  1488. if catout ! 0: catout = 0
  1489. if feedcat ! 0: feedcat = 0
  1490. loc_count = ARRSIZE('$CloLosLoc')
  1491. i = loc_count - 1
  1492. :loopCloLoc
  1493. $CloLoc = $CloLosLoc[i]
  1494. CloLostOn = CloLosDay[$CloLoc]
  1495. if CloLostOn + RAND(7,14) < daystart :
  1496. gs 'clothing', 'recover_lost_clothes', $CloLoc, 2
  1497. end
  1498. i -=1
  1499. if i > -1 :jump 'loopCloLoc'
  1500. if vidageday > 1080: vidageday = 1080
  1501. if blizoruk < 10: blizoruk -= 1
  1502. if blizoruk < 100: blizoruk -= rand(0,1)
  1503. if blizoruk < 0: blizoruk = 0
  1504. !!------------------------------------------------------------------------------------------------------------------------
  1505. !!array cleaning moving potential fathers from C to B array and cleaning C array
  1506. !First look is there any cum in the womb,when womb is empty random genereted npc record are cleaningare deleted
  1507. ! mid($npclastgenerated[0],2,9) number of the last random created npcs
  1508. norandomdads = 1
  1509. !checking if Sveta have children or babies
  1510. if arrsize('$ChildFath') > 0:
  1511. !Yes she have... cheking if random NPC is the dady
  1512. !'Sveta have <<$ChildFath>> children'
  1513. childtmp = 0
  1514. :childloop
  1515. if mid($ChildFath[childtmp],1,1) = 'C':
  1516. !yes child is from random genereted npc
  1517. norandomdads = 0
  1518. else
  1519. !child is not from random genereted npc
  1520. childtmp += 1
  1521. if childtmp < arrsize('$ChildFath'): jump 'childloop'
  1522. end
  1523. end
  1524. number = 0
  1525. !checking if there is some cum in womb.
  1526. if arrsize('$cumarrnam') > 0:
  1527. !there is cum in womb
  1528. :cleaning_records_cum
  1529. $tmp = 'C' + '<<number>>'
  1530. cum_number = 0
  1531. :cumloop
  1532. !look if cum in womb is from random created npc
  1533. if($tmp = $cumarrnam[cum_number]):
  1534. !'cum from <<$tmp>> is in the womb'
  1535. number +=1
  1536. if number < mid($npclastgenerated[0],2,9): jump 'cleaning_records_cum'
  1537. else
  1538. cum_number += 1
  1539. if cum_number < arrsize('$cumarrnam'):
  1540. jump 'cumloop'
  1541. else
  1542. !'no cum in woomb from <<$tmp>>'
  1543. if norandomdads = 1:
  1544. !no random dads
  1545. If npc_pers[$tmp] ! '': gs 'npccleanc',$tmp
  1546. else
  1547. !some children are from random genereted npc
  1548. !checking if selected npc is a dady
  1549. childtmp = 0
  1550. :childloop3
  1551. if $ChildFath[childtmp] = $tmp:
  1552. !selected npc is father of the child, he will stay in record or now
  1553. !moving npc from C array to B array,
  1554. gs 'npcpreservec',$tmp
  1555. number += 1
  1556. if number < mid($npclastgenerated[0],2,9): jump 'cleaning_records_cum'
  1557. else
  1558. !child is not from random genereted npc
  1559. childtmp += 1
  1560. if childtmp < arrsize('$ChildFath'):
  1561. jump 'childloop3'
  1562. else
  1563. !children are not from seleted random npc, we are cleaning his redords
  1564. gs 'npccleanc',$tmp
  1565. number += 1
  1566. if number < mid($npclastgenerated[0],2,9): jump 'cleaning_records_cum'
  1567. end
  1568. end
  1569. end
  1570. end
  1571. end
  1572. else
  1573. !there is no cum in womb, cleaning random created npc redords
  1574. if norandomdads = 0:
  1575. :cleaning_with_babies
  1576. $tmp = 'C' + '<<number>>'
  1577. !cheking if random NPC is the dady
  1578. childtmp2 = 0
  1579. :childloop2
  1580. if $ChildFath[childtmp2] = $tmp:
  1581. !selected random NPC is dady selected child
  1582. gs 'npcpreservec', $tmp
  1583. number +=1
  1584. if number < mid($npclastgenerated[0],2,9): jump 'cleaning_with_babies'
  1585. else
  1586. !selected random NPC is not dady selected child
  1587. childtmp2 += 1
  1588. if childtmp2 < arrsize('$ChildFath'):
  1589. jump 'childloop2'
  1590. else
  1591. !selected random npc is not any child dady
  1592. gs 'npccleanc',$tmp
  1593. number += 1
  1594. if number < mid($npclastgenerated[0],2,9): jump 'cleaning_with_babies'
  1595. end
  1596. end
  1597. else
  1598. !she have no children or babies, and no cum freom random npc
  1599. !'cleaning random NPC records'
  1600. :cleaning_no_babies
  1601. $tmp = 'C' + '<<number>>'
  1602. !'clining <<$tmp>>'
  1603. gs 'npccleanc',$tmp
  1604. number += 1
  1605. if number < mid($npclastgenerated[0],2,9): jump 'cleaning_no_babies'
  1606. end
  1607. end
  1608. killvar '$tmp'
  1609. killvar 'number'
  1610. killvar 'childtmp2'
  1611. killvar 'childtmp'
  1612. killvar 'norandomdads'
  1613. !!------------------------------------------------------------------------------------------------------------
  1614. !!-------------Family schedule variables----------------------------------------------------------------------
  1615. !! 23 = kitchen
  1616. !! 24 = Living room
  1617. !! 25 = bathroom
  1618. !! 26 = Svetas room
  1619. if week = 6:
  1620. momclean1 = rand(23,26)
  1621. else
  1622. momclean1 = rand(23,24)
  1623. end
  1624. if rand(0,1) = 0:
  1625. momclean2 = 23
  1626. else
  1627. momclean2 = 25
  1628. end
  1629. !!------------------------------------------------------------------------------------------------------------
  1630. !!---------- School related schedule -------------------------------------------------------------------------
  1631. starlets_on = iif( ( (week = 5 and odd_week = 0) or (week = 1 or week = 3 or week >= 6) ) and natholi = 0,1,0)
  1632. cheerleaders_on = iif( ( (week = 5 and odd_week = 1) or (week = 2 or week = 4) ) and (natholi = 0 and (month >9 or month <6)) ,1,0)
  1633. !!------------------------------------------------------------------------------------------------------------
  1634. !!-------------Music career related variables and calculations------------------------------------------------
  1635. !! How many hours a day can Sveta perform. It maxes out at 3.
  1636. !! Using the actual skill level, not the one modified by Attributes because that is more realistic for this.
  1637. ml_performance['max_perform_minutes'] = pcs_instrmusic + pcs_vokal
  1638. ml_performance['performed_minutes'] = 0
  1639. !! Checking for missed guitar lesson
  1640. if ml_guitarlesson['nextlesson'] < daystart and ml_guitarlesson['lessonday'] ! 8:
  1641. ml_guitarlesson['lessonday'] = 8
  1642. end
  1643. !! Calculating the fame increase from the uploaded songs and removing ones that do not effect fame anymore to keep the
  1644. !! data at a sane level
  1645. if ml_onlinesongcount > 0:
  1646. i = 0
  1647. j = -1
  1648. :looponlinesongs
  1649. !! this so every song counts only every 7 days and only for a limited number of weeks
  1650. if ml_onlinesong_freshness[i] > 0:
  1651. j += 1
  1652. ml_tempsong_freshness[j] = ml_onlinesong_sfreshness[i]
  1653. ml_tempsong_lastcalcday[j] = ml_onlinesong_lastcalcday[i]
  1654. ml_tempsong_hotcat[j] = ml_onlinesong_hotcat[i]
  1655. ml_tempsong_skilllevel[j] = ml_onlinesong_skilllevel[i]
  1656. ml_tempsong_uploaded[j] = ml_onlinesong_uploaded[i]
  1657. *nl
  1658. if ml_tempsong_lastcalcday[j] <= (daystart - 7) and ml_tempsong_uploaded = 1:
  1659. pav_music += rand(0, ml_tempsong_freshness[j]/50)
  1660. city_music += rand(0, ml_tempsong_freshness[j]/100)
  1661. ml_tempsong_freshness[j] -= 10
  1662. ml_tempsong_lastcalcday[j] = daystart
  1663. end
  1664. end
  1665. i += 1
  1666. if i < ml_onlinesongcount: jump 'looponlinesongs'
  1667. killvar 'ml_onlinesong_freshness'
  1668. killvar 'ml_onlinesong_lastcalcday'
  1669. killvar 'ml_onlinesong_hotcat'
  1670. killvar 'ml_onlinesong_skilllevel'
  1671. killvar 'ml_onlinesong_uploaded'
  1672. i = 0
  1673. if j >= 0:
  1674. :looprebuildsongs
  1675. ml_onlinesong_freshness[i] = ml_tempsong_freshness[i]
  1676. ml_onlinesong_hotcat[i] = ml_tempsong_hotcat[i]
  1677. ml_onlinesong_lastcalcday[i] = ml_tempsong_lastcalcday[i]
  1678. ml_onlinesong_skilllevel[i] = ml_tempsong_skilllevel[i]
  1679. ml_onlinesong_uploaded[i] = ml_tempsong_uploaded[i]
  1680. i += 1
  1681. if i <= j: jump 'looprebuildsongs'
  1682. end
  1683. killvar 'ml_tempsong_freshness'
  1684. killvar 'ml_tempsong_lastcalcday'
  1685. killvar 'ml_tempsong_hotcat'
  1686. killvar 'ml_tempsong_skilllevel'
  1687. killvar 'ml_tempsong_uploaded'
  1688. end
  1689. !! Repertoire quality decay if no practice is done
  1690. if ml_performance['set_lastpracticeday'] ! (daystart-1): repertoire_quality -= 2
  1691. --- cikl ---------------------------------