cikl.qsrc 60 KB

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