cikl.qsrc 60 KB

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