cikl.qsrc 53 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624
  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) and masseuse['last_worked_day'] ! daystart:
  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. !! Changing the year at new year and making sure February have the correct number of days.
  22. if month > 12:
  23. month = 1
  24. year += 1
  25. if ((year mod 4 = 0) and (year mod 100 ! 0)) or (year mod 400 = 0):
  26. monthsend[2] = 29
  27. else
  28. monthsend[2] = 28
  29. end
  30. end
  31. !!MJ: Dont think that one is needed. But it was in the original loop.
  32. if month < 1: month = 1
  33. $month = $monthName[month]
  34. !! new years party calculation
  35. temp = func('shortgs','dow',year,12,31)
  36. if temp < 6:
  37. nyp_day = 31
  38. elseif temp = 6:
  39. nyp_day = 30
  40. else
  41. nyp_day = 29
  42. end
  43. end
  44. !!MJ: Dont think that one is needed. But it was here already.
  45. if day <= 0:day = 1
  46. ciklNewWeek = 0
  47. if week > 7:
  48. odd_week = iif(odd_week,0,1)
  49. ciklNewWeek = 1
  50. :loopweek
  51. week -= 7
  52. husbandrink = 0
  53. if military = 1:military = 0
  54. if week > 7:jump 'loopweek'
  55. end
  56. gs 'daystart'
  57. !!----------------------------------------------------------------------------
  58. !!Fame call to update all the fame variables
  59. gs 'fame'
  60. !!Cycle stats for Contacts
  61. gs 'telefon', 'DailyStatRefresh', ciklNewWeek
  62. !!moving the porn schedule ahead a day, flaffing for missed shootings, if it even matters
  63. if (film > 0 or pornstack = 1) and pfilmNO = 0 and pfilmSTOP = 0:
  64. if pfilmday[0] > 0: gs 'pornschedule', 'pornmiss'
  65. gs 'pornschedule', 'schedule'
  66. end
  67. !!------------------------------------------------------------------------------------------------------------
  68. !! Job Stuff
  69. !!------------------------------------------------------------------------------------------------------------
  70. !! masseuse paycheck
  71. if masseuse['weeks_pay'] > 0 and week = 5:masseuse['paycheck'] = 1
  72. if masseuse['jobtype'] > 0 and week = 5 and masseuse['weeks_pay'] > 0:
  73. masseuse['payday'] = 1
  74. end
  75. if week = 7 and masseuse['schedule_update'] ! daystart: gs 'masseuse_schedule','schedule_reset'
  76. !!modelling check
  77. if model_week ! (daystart - week) / 7:model_job_week = 0
  78. !!acting strings to set available jobs
  79. if casting = 1:
  80. acting_string1 = rand(10000000000,199999999999)
  81. acting_string2 = rand(10000000000,199999999999)
  82. end
  83. dynamic $hypnoDaychange
  84. !!phone reset for bf
  85. ringA = 0
  86. ringB = 0
  87. ringC = 0
  88. !!Appearance Age
  89. vidageday -= 1
  90. if vidageday <= 0:
  91. vidageday = 360
  92. vidage += 1
  93. end
  94. !!Birthday
  95. age = year - ((pcs_dob - (pcs_dob mod 10000)) / 10000)
  96. if ((month * 100) + day) <= pcs_dob mod 10000: age -= 1
  97. if birthday = day and birthmonth = month and model['age'] > 0:model['age'] += 1
  98. if workDolgDay > 0: workDolgDay -= 1
  99. if QWdogreiqTimer > 0: QWdogreiqTimer -= 1
  100. if husband > 0: husbanday += 1
  101. if husband > 10 and husbanday > 0: husband -= 15
  102. if fingal > 0: fingal -= 1
  103. if husbandMark = 1 and husband <= 10:
  104. husbizvradd = 0
  105. husbharmin = 0
  106. husbandMark = 0
  107. husband = 0
  108. divorced += 1
  109. if KFOnLineReaga > 0:KFOnLineReaga -= 1
  110. '<b><font color="red">Your husband has filed for a divorce.</font></b>'
  111. end
  112. !! after having surgery you will be in recuperation for a few days
  113. if surgeryday ! '':
  114. if daystart - 7 <= surgeryday:
  115. dailyhealthimprov = (daystart - surgeryday) * 50
  116. pcs_health = dailyhealthimprov
  117. recuperation = 1
  118. else
  119. killvar 'recuperation'
  120. killvar 'dailyhealthimprov'
  121. end
  122. end
  123. !!Street events daily reset
  124. streetevent_hour = -2
  125. !!Clothing stock and price randomizers
  126. Clothingstock = rand (0,23)
  127. i = 1
  128. :loopprice
  129. Clothingstock[i] = rand (0,500)
  130. i += 1
  131. if i <= 147:jump 'loopprice'
  132. if dyneval ('RESULT = <<$coatworntype>>_coats_h[<<coatwornnumber>>]') <= 0: $coatworntype = 'none'
  133. !! Abortion and pregnancy recovery resets if finished
  134. if abortionbirthdate ! 0 and daystart - abortionbirthdate > 24: abortionbirthdate = 0
  135. if pregbirthdate ! 0 and daystart - pregbirthdate > 73: pregbirthdate = 0
  136. !!------------------------------------------------------------------------------------------------------------
  137. !! Nympho
  138. !!------------------------------------------------------------------------------------------------------------
  139. !! Reserved for nympho trait
  140. if nymphosex_flag = 1:
  141. end
  142. nymphosex_flag = 0
  143. !!------------------------------------------------------------------------------------------------------------
  144. !! Bimbo
  145. !!------------------------------------------------------------------------------------------------------------
  146. !!bimbo flag set in stat_display if bimbo clothing, shoes and makeup are worn at same time
  147. if succubusflag = 0 and cheatBimbo = 0 and bimbo_flag = 1: bimbo += 1
  148. !!Once bimbolevel is set to 1, must use the withdrawal in stat to return to 0
  149. if bimbo > 0 or bimbolevel > 0:
  150. if bimbo < 10:
  151. if bimbo_flag = 0:
  152. bimbo -= 2
  153. end
  154. elseif bimbo < 20:
  155. bimbolevel = 1
  156. elseif bimbo < 30:
  157. bimbolevel = 2
  158. else
  159. bimbolevel = 3
  160. end
  161. end
  162. if bimbo >= 40: bimbo = 40
  163. !!Bimbo levels. They use custom variables so they won''t permanently change character stats
  164. if bimbolevel = 0: supnatvnesh = 0 & bimbostupidity = 0
  165. if bimbolevel = 1: supnatvnesh = 2 & bimbostupidity = (pcs_intel / 6)
  166. if bimbolevel = 2: supnatvnesh = 4 & bimbostupidity = (pcs_intel / 4)
  167. if bimbolevel = 3: supnatvnesh = 8 & bimbostupidity = (pcs_intel / 3)
  168. !!A Succubus cannot be a Bimbo
  169. if succubusflag = 1:
  170. if bimbolevel > 0 and bimbo > 0: bimbowithdrawal = 40
  171. elseif bimbolevel >= 1:
  172. !!Checks flag and adds withdrawal if 0
  173. if bimbo_flag = 0:
  174. bimbowithdrawal += 1
  175. else
  176. bimbowithdrawal = 0
  177. end
  178. end
  179. if bimbo < 0: bimbo = 0
  180. !! flag reset
  181. bimbo_flag = 0
  182. !!------------------------------------------------------------------------------------------------------------
  183. !! Butt slut
  184. !!------------------------------------------------------------------------------------------------------------
  185. if orgasm_anal > orgasm_anal[1]:
  186. if traits['buttslut_lvl'] > 0: traits['buttslut_exp'] += orgasm_anal - orgasm_anal[1]
  187. else
  188. if traits['buttslut_exp'] > 1: traits['buttslut_exp'] -= 1
  189. end
  190. orgasm_anal[1] = orgasm_anal
  191. if orgasm_anal > 10 and traits['buttslut_lvl'] = 0: traits['buttslut_lvl'] = 1
  192. if traits['buttslut_exp'] >= 15 and traits['buttslut_lvl'] = 1: traits['buttslut_lvl'] = 2 & traits['buttslut_exp'] = 0
  193. if traits['buttslut_exp'] >= 50 and traits['buttslut_lvl'] = 2: traits['buttslut_lvl'] = 3
  194. if traits['buttslut_exp'] <= 0 and traits['buttslut_lvl'] = 3: traits['buttslut_lvl'] = 2 & traits['buttslut_exp'] = 0
  195. !!------------------------------------------------------------------------------------------------------------
  196. !! Exhibitionism
  197. !!------------------------------------------------------------------------------------------------------------
  198. if pcs_exhib > 0 or exhibitionist_lvl > 0:
  199. if pcs_exhib < 10:
  200. pcs_exhib -= 1
  201. elseif pcs_exhib < 50:
  202. exhibitionist_lvl = 1
  203. elseif pcs_exhib < 100 or exhibitionQW < 3:
  204. exhibitionist_lvl = 2
  205. elseif exhibitionQW > 2:
  206. exhibitionist_lvl = 3
  207. end
  208. end
  209. !!Inhibition increases from wearing revealing clothing
  210. if exhibition_outdoors > 0:
  211. if pcs_inhib > 90:
  212. exhibition_outdoors = exhibition_outdoors * 3
  213. elseif pcs_inhib > 75:
  214. exhibition_outdoors = exhibition_outdoors * 5 / 2
  215. elseif pcs_inhib > 60:
  216. exhibition_outdoors = exhibition_outdoors * 2
  217. elseif pcs_inhib > 30:
  218. exhibition_outdoors = exhibition_outdoors * 3 / 2
  219. end
  220. if exhibition_outdoors <= 5:
  221. inhib_exp += rand(3,6)
  222. elseif exhibition_outdoors <= 10:
  223. inhib_exp += rand(5,9)
  224. elseif exhibition_outdoors <= 15:
  225. inhib_exp += rand(7,12)
  226. elseif exhibition_outdoors <= 20:
  227. inhib_exp += rand(9,15)
  228. elseif exhibition_outdoors <= 25:
  229. inhib_exp += rand(12,20)
  230. elseif exhibition_outdoors <= 30:
  231. inhib_exp += rand(16,25)
  232. elseif exhibition_outdoors <= 35:
  233. inhib_exp += rand(20,30)
  234. elseif exhibition_outdoors <= 40:
  235. inhib_exp += rand(25,40)
  236. elseif exhibition_outdoors <= 50:
  237. inhib_exp += rand(35,50)
  238. elseif exhibition_outdoors <= 65:
  239. inhib_exp += rand(50,75)
  240. else
  241. inhib_exp += rand(70,100)
  242. end
  243. end
  244. exhibition_outdoors = 0
  245. !!------------------------------------------------------------------------------------------------------------
  246. !! Succubus Level & hunger calcs
  247. !!------------------------------------------------------------------------------------------------------------
  248. if succubusflag = 1: gs 'succubus','cikl'
  249. !!------------------------------------------------------------------------------------------------------------
  250. if defcurly = 0 and curly > 0:curly -= 1
  251. if defcurly = 1:
  252. if straight > 0: straight -= 1
  253. if straight = 0: curly = 2147483647
  254. end
  255. ! WD: Added daily reduction of braids for Maruda Hair Mod
  256. if hbraids > 0: hbraids -= 1
  257. gs 'sweat', 'add', 2
  258. if pcs_tan > 0: pcs_tan -= 1
  259. if prezikmsg = 2: prezikmsg = 3
  260. gs 'fertility', 'birth_control'
  261. !!------------------------------------------------------------------------------------------------------------
  262. if lashair ! 1:
  263. pcs_leghair += 1
  264. !!Pubic hair growth at 1/2 per night
  265. if pcs_pubes['growth'] > 1:
  266. pcs_pubes['growth'] = 0
  267. pcs_pubes += 1
  268. end
  269. pcs_pubes['growth'] += 1
  270. end
  271. if age < 18 and rand (0,2) = 0 and pcs_leghair > 0: pcs_leghair -= 1
  272. if pcs_breath = 1:pcs_breath = 0
  273. if cheatNoEat = 1 and dounspell = 1:fat += 15
  274. !!Trauma decay
  275. if mood_trauma > 0: mood_trauma -= 1
  276. !!STD check
  277. if SifacOnce = 1:Sifilis += 1
  278. if GerpesOnce = 1:Gerpes += 1
  279. if TriperOnce = 1:
  280. if Triper > 0:
  281. Triper += 1
  282. end
  283. if TriperOral > 0:
  284. TriperOral += 1
  285. end
  286. If TriperOral > 14 and TriperNapr = 0:
  287. if rand(TriperOral,100) > 80:
  288. TriperOral = 0
  289. if Triper = 0:TriperOnce = 0
  290. TriperOralSigns = 0
  291. end
  292. end
  293. end
  294. if KandidozOnce = 1:Kandidoz += 1
  295. Venera = 0
  296. if SifacOnce = 1: Venera += 1
  297. if GerpesOnce = 1: Venera += 1
  298. if TriperOnce = 1: Venera += 1
  299. if pcs_ass > 1 and ashrink > 0 and analplugIN = 0:
  300. if daystart mod(ashrinkdays) = 0: pcs_ass -= ashrink
  301. if pcs_ass < 0: pcs_ass = 0
  302. end
  303. if pcs_vag > 10 and vshrink > 0:
  304. if daystart mod(vshrinkdays) = 0: pcs_vag -= vshrink
  305. if pcs_vag < 0: pcs_vag = 0
  306. end
  307. lipkoef -= rand(0,1)
  308. if lipkoef <= 0: lipkoef = 0
  309. if isprok = 1 or isprokp = 1:
  310. isprok_lastday = 1
  311. else
  312. isprok_lastday = 0
  313. end
  314. if Enable_autotampon = 0 and isprok = 1: isprok = 0 & 'You threw away your used tampon.'
  315. if Enable_autotampon = 0 and isprokp = 1:isprokp = 0 & 'You threw away your used sanitary pad.'
  316. if preg = 1:
  317. pregtime = pregchem / 24
  318. if pregtimes = 0:pregtimes = 1
  319. elseif preg = 2 and pregminut < totminut:
  320. if Enable_nogameover = 0 :
  321. cla
  322. *clr
  323. over = 4
  324. MSG '<center><b>A horrible pain shoots through your body.</b></center>'
  325. xgt 'gameover'
  326. exit
  327. else
  328. MSG'<font color=red><B>You should die for giving birth unprepared, but Cheat Mode keeps you Alive.</B></font>'
  329. pregminut = totminut + 1440
  330. end
  331. elseif preg = 0:
  332. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A14'
  333. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A16'
  334. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A23'
  335. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A28'
  336. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A29'
  337. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A33'
  338. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A34'
  339. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A69'
  340. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A131'
  341. !{killvar 'pregTalkFamily' -- Do not kill this (Abortion talk).}
  342. killvar 'pcs_pregtalk'
  343. killvar 'pregTalk'
  344. killvar 'pregtime'
  345. killvar 'knowpreg'
  346. killvar 'denypreg'
  347. killvar '$wombthfath'
  348. end
  349. !!------------------------------------------------------------------------------------------------------------
  350. !! Arousal
  351. !!------------------------------------------------------------------------------------------------------------
  352. if magikDostup = 0:
  353. if pcs_horny < 100:pcs_horny += pcs_vag
  354. else
  355. if pcs_vag = 0:
  356. razeba = 0
  357. if pcs_horny > 0 and pcs_horny <= 50:pcs_horny -= 10
  358. if pcs_horny > 50:pcs_horny -= 25
  359. elseif pcs_vag > 0:
  360. if pregtimes = 0:
  361. if age < 18:
  362. razeba = 1
  363. if pcs_horny > 0 and pcs_horny <= 50:pcs_horny -= 5
  364. if pcs_horny > 50 and pcs_horny < 80:pcs_horny -= 10
  365. if pcs_horny >= 80:pcs_horny -= 20
  366. elseif age >= 18 and age < 21:
  367. razeba = 2
  368. if pcs_horny > 0 and pcs_horny <= 50:pcs_horny -= 1
  369. if pcs_horny > 50 and pcs_horny < 80:pcs_horny -= 5
  370. if pcs_horny >= 80:pcs_horny -= 10
  371. elseif age >= 21 and age < 25:
  372. razeba = 3
  373. if pcs_horny > 0 and pcs_horny <= 50:pcs_horny += 1
  374. if pcs_horny > 50 and pcs_horny < 80:pcs_horny -= 1
  375. if pcs_horny >= 80:pcs_horny -= 5
  376. elseif age >= 25 and age < 30:
  377. razeba = 4
  378. if pcs_horny > 0 and pcs_horny <= 50:pcs_horny += 5
  379. if pcs_horny > 50 and pcs_horny < 80:pcs_horny += 1
  380. if pcs_horny >= 80:pcs_horny -= 5
  381. elseif age >= 30:
  382. razeba = 5
  383. if pcs_horny > 0 and pcs_horny <= 50:pcs_horny += 10
  384. if pcs_horny > 50 and pcs_horny < 80:pcs_horny += 5
  385. if pcs_horny >= 80:pcs_horny += 1
  386. end
  387. elseif pregtimes > 0:
  388. if preg = 0:
  389. razeba = 5
  390. if pcs_horny > 0 and pcs_horny <= 50:pcs_horny += 10
  391. if pcs_horny > 50 and pcs_horny < 80:pcs_horny += 5
  392. if pcs_horny >= 80:pcs_horny += 1
  393. elseif preg > 0:
  394. razeba = 6
  395. if pcs_horny < 100:pcs_horny += pregchem / 240
  396. end
  397. end
  398. end
  399. end
  400. if pcs_horny < 0:pcs_horny = 0
  401. !!------------------------------------------------------------------------------------------------------------
  402. !reset Natasha Belova''s clothes
  403. if NatbelQW['seethroughwearing'] = 1: NatbelQW['seethroughwearing'] = 0
  404. !!------------------------------------------------------------------------------------------------------------
  405. !counter for Dimka avoidance
  406. if dimaFilm = 1 and dimaRudeBlock = 0:
  407. nodimkaK += 1
  408. DimkaWarnedToday = 0
  409. end
  410. !!------------------------------------------------------------------------------------------------------------
  411. !!Fame degradation
  412. gs 'fame', 'deg'
  413. !!Traits
  414. gs 'traits', 'overnight'
  415. !!------------------------------------------------------------------------------------------------------------
  416. !! Maruda hair mod
  417. !!------------------------------------------------------------------------------------------------------------
  418. !! Max. Hair length 600mm, or 60cm, which should be somewhere in the lower back area.
  419. !! Hair grows 1mm each day, it takes 20 months (1 month = 30 days) to regrow the hair from 0.
  420. if pcs_hairlng < 1001 and hairgrowcht = 0:pcs_hairlng += 1
  421. if pcs_haircol ! nathcol:
  422. dyefade -=1
  423. if dyefade < 0: dyefade = 0
  424. if dyefade > 0 and dyefade < 7: dyevmod = 5
  425. if dyefade = 0: dyevmod = 15
  426. end
  427. !!pubic hair colouring
  428. !! pcs_pubecol = natural colour
  429. !! pcs_pubecol[1] = flag for saveupdate
  430. !! pcs_pubecol[2] = actual colour
  431. !! pcs_pubecol[3] = countdown timer for dye
  432. if pcs_pubecol[2] ! pcs_pubecol:
  433. pcs_pubecol[3] -=1
  434. if pcs_pubecol[3] < 0: pcs_pubecol[3] = 0
  435. if pcs_pubecol[3] = 0: pcs_pubecol[2] = pcs_pubecol
  436. end
  437. if pcs_pubes < 2: pcs_pubecol[2] = pcs_pubecol
  438. if hscrunch > 0:
  439. hscrunchrand = rand(1, 100)
  440. if hscrunchrand <= 8:hscrunch -= 1
  441. end
  442. !!------------------------------------------------------------------------------------------------------------
  443. !! Clothing wear and tear
  444. gs 'starenie'
  445. !!cocaine reduction
  446. if nark > 60:
  447. nark = 60
  448. elseif nark > 30:
  449. nark -= 3
  450. elseif nark > 0:
  451. nark -= 1
  452. end
  453. if pregchem > 240:fat += 1
  454. !!------------------------------------------------------------------------------------------------------------
  455. !! Pain
  456. !!------------------------------------------------------------------------------------------------------------
  457. if pain['head'] > 0:pain['head'] -= rand(1,3)
  458. if pain['hair'] > 0:pain['hair'] -= rand(1,3)
  459. if pain['ears'] > 0:pain['ears'] -= rand(1,3)
  460. if pain['eyebrows'] > 0:pain['eyebrows'] -= rand(1,3)
  461. if pain['eyes'] > 0:pain['eyes'] -= rand(1,3)
  462. if pain['cheeks'] > 0:pain['cheeks'] -= rand(1,3)
  463. if pain['nose'] > 0:pain['nose'] -= rand(1,3)
  464. if pain['mouth'] > 0:pain['mouth'] -= rand(1,3)
  465. if pain['lips'] > 0:pain['lips'] -= rand(1,3)
  466. if pain['tongue'] > 0:pain['tongue'] -= rand(1,3)
  467. if pain['throat'] > 0:pain['throat'] -= rand(1,3)
  468. if pain['neck'] > 0:pain['neck'] -= rand(1,3)
  469. if pain['back'] > 0:pain['back'] -= rand(1,3)
  470. if pain['asscheeks'] > 0:pain['asscheeks'] -= rand(1,3)
  471. if pain['asshole'] > 0:pain['asshole'] -= rand(1,3)
  472. if pain['hips'] > 0:pain['hips'] -= rand(1,3)
  473. if pain['thighs'] > 0:pain['thighs'] -= rand(1,3)
  474. if pain['legL'] > 0:pain['legL'] -= rand(1,3)
  475. if pain['legR'] > 0:pain['legR'] -= rand(1,3)
  476. if pain['feet'] > 0:pain['feet'] -= rand(1,3)
  477. if pain['toes'] > 0:pain['toes'] -= rand(1,3)
  478. if pain['shoulders'] > 0:pain['shoulders'] -= rand(1,3)
  479. if pain['armL'] > 0:pain['armL'] -= rand(1,3)
  480. if pain['armR'] > 0:pain['armR'] -= rand(1,3)
  481. if pain['hands'] > 0:pain['hands'] -= rand(1,3)
  482. if pain['fingers'] > 0:pain['fingers'] -= rand(1,3)
  483. if pain['chest'] > 0:pain['chest'] -= rand(1,3)
  484. if pain['breasts'] > 0:pain['breasts'] -= rand(1,3)
  485. if pain['nipples'] > 0:pain['nipples'] -= rand(1,3)
  486. if pain['ribs'] > 0:pain['ribs'] -= rand(1,3)
  487. if pain['tummy'] > 0:pain['tummy'] -= rand(1,3)
  488. if pain['pubic'] > 0:pain['pubic'] -= rand(1,3)
  489. if pain['vaginal'] > 0:pain['vaginal'] -= rand(1,3)
  490. if pain['labia'] > 0:pain['labia'] -= rand(1,3)
  491. if pain['clitoris'] > 0:pain['clitoris'] -= rand(1,3)
  492. if pain['urethra'] > 0:pain['urethra'] -= rand(1,3)
  493. if pain['cervix'] > 0:pain['cervix'] -= rand(1,3)
  494. if painpub = 2:
  495. if painpubday + 5 < daystart:
  496. $painpub = 'Your vulva is painfully sore.'
  497. painpub = 1
  498. painpubday = daystart
  499. elseif painpubday + 5 >= daystart:
  500. $painpub = 'Your vulva is painfully sore.'
  501. end
  502. elseif painpub = 1:
  503. if painpubday + 5 < daystart:
  504. $painpub = ''
  505. painpub = 0
  506. painpubday = daystart
  507. elseif painpubday + 5 >= daystart:
  508. $painpub = 'Your vulva is a little sore.'
  509. end
  510. end
  511. !!---- Calculation of lash extension degradation and false lash removal
  512. if pcs_lashes > 2:
  513. if lashextensionstyle >= 1:
  514. lashextensionduration -= 1
  515. if lashextensionduration >= 1 and lashextensionduration <= 4:
  516. '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.'
  517. end
  518. if lashextensionduration <= 0:
  519. 'You waited too long to do maintenance on your lash extensions; there''s too little there to notice or work with at this point.'
  520. pcs_lashes = pcs_naturallashes
  521. killvar 'lashextensionstyle'
  522. killvar 'lashextensionduration'
  523. killvar 'lashextensionnew'
  524. end
  525. end
  526. if false_lashes > 0:
  527. false_lashes -= 1
  528. if false_lashes = 0:
  529. 'Your false lashes came off in the night; there''s no recovering them now.'
  530. pcs_lashes = pcs_naturallashes
  531. else
  532. 'Somehow, your lashes managed to stay attached throughout the night. You might be able to get away with wearing them another day straight.'
  533. end
  534. end
  535. end
  536. prezikProver += 1
  537. if pirs_pain_ton > 0:pirs_pain_ton -= 1
  538. if shorthair = 1:
  539. shorthairday += 1
  540. if shorthairday >= 45:shorthairday = 0 & shorthair = 0
  541. end
  542. !!------------------------------------------------------------------------------------------------------------
  543. !!Keeping Christina hating Sveta
  544. gs 'Zvereva_events', 'cikl'
  545. !!Updating Katja''s variables.
  546. gs 'katjaHomeTalk', 'cikl'
  547. if npc_rel['A69'] > 60 and rand(0,3) = 0:npc_rel['A69'] -= 1
  548. !!Making Sonia''s fall progress if the player do not see the scenes at the disco, by making it such that if at a Sunday her fall have not advanced this weekend it will automatically advance.
  549. gs 'soniadisco', 'cikl'
  550. dmishaevent = 0
  551. if Gspravka <= 0 and GspravkaT = 1:GspravkaT = 0 & Gspravka = 0
  552. if GspravkaT = 1:Gspravka -= 1
  553. if BurgerQW['IlyQW'] = 2 and BurgerQW['IlyQWPoliceDayCount'] = 30:BurgerQW['IlyQW'] = 3
  554. if BurgerQW['IlyQW'] = 2 and BurgerQW['IlyQWPoliceDayCount'] > 0 and BurgerQW['IlyQWPoliceDayCount'] < 30:BurgerQW['IvanQWPoliceDayCount'] += 1
  555. !!remove degradation for inhibition
  556. inhib_flr = inhib_lvl
  557. gs 'stat_sklattrib', 'daycall'
  558. if dounspell = 1:
  559. if strenbuf > 90:
  560. strenbuf -= 2
  561. elseif strenbuf > 80:
  562. strenbuf -= 1
  563. end
  564. if vitalbuf > 90:
  565. vitalbuf -= 2
  566. elseif vitalbuf > 80:
  567. vitalbuf -= 1
  568. end
  569. if strenbuf > pcs_stren: strenbuf -= 1
  570. if strenbuf < pcs_stren: strenbuf += 1
  571. if vitalbuf > pcs_vital: vitalbuf -= 1
  572. if vitalbuf < pcs_vital: vitalbuf += 1
  573. if agilbuf > pcs_agil: agilbuf -= 1
  574. if agilbuf < pcs_agil: agilbuf += 1
  575. else
  576. gs 'body_shape'
  577. end
  578. if husband > 0 and husbandrink ! 11:husbandrink = rand(0, 10)
  579. !!Pussy_Kats job settings
  580. inWorkYoungShop = 0
  581. if week = 1 and young_shop_work = 100: young_shop_work = 1
  582. if week = 5 and young_shop_work1 = 100: young_shop_work1 = 1
  583. if week = 1 and young_shop_work2 = 100: young_shop_work2 = 1
  584. husbandsexday = 0
  585. borsexkol = 0
  586. givisexday = 0
  587. if shantsr > 0:
  588. pay = shantsr * 5000
  589. karta += pay
  590. shantsr = 0
  591. end
  592. if shantbog > 0:
  593. :shantftb
  594. shantftbgrand = rand(0, 10)
  595. if shantftbgrand > 2:
  596. shantpopala += 1
  597. shantbog -= 1
  598. if shantbog > 0:jump 'shantftb'
  599. elseif shantftbgrand <= 2:
  600. karta += 30000
  601. shantbog -= 1
  602. if shantbog > 0:jump 'shantftb'
  603. end
  604. end
  605. petersexday = 0
  606. klismaday1 = 0
  607. !!ugly duckling start becoming a swan
  608. if uglyduck_flag = 1 and hotcat >= 5:
  609. killvar 'uglyduck_flag'
  610. gs 'npc_relationship', 'socialgroup_setting_boys', 10, 10, 10, 10, 0, 0
  611. grupvalue[1] += 100
  612. old_grupvalue[1] += 100
  613. end
  614. !! Resetting relationships that go over the max
  615. :toptemprel
  616. if temprel < aarraynumber:
  617. temprel +=1
  618. if npc_rel['A'+'<<temprel>>'] > 100:npc_rel['A'+'<<temprel>>'] = 100
  619. jump 'toptemprel'
  620. end
  621. killvar 'temprel'
  622. !!------------------------------------------------------------------------------------------------------------
  623. !! Banking
  624. !!------------------------------------------------------------------------------------------------------------
  625. !!MJ: Add some (daily) interest to the bank account.
  626. !!Not very realistic but won''t make anyone too rich.
  627. if bankAccount = 1:
  628. kartatotal = karta
  629. :kartaloop
  630. if kartatotal > 20000000:
  631. kartacount += 1
  632. largekarta[kartacount] = 20000000
  633. kartatotal -= 20000000
  634. jump 'kartaloop'
  635. else
  636. largekarta[0] = kartatotal
  637. end
  638. if karta >= 2000000:
  639. !! yearly interest of 2.3% recalculated into daily interest = 0.006% daily
  640. intrate = 60
  641. elseif karta >= 0:
  642. !! yearly interest of 1.15% recalculated into daily interest = 0.003% daily
  643. intrate = 30
  644. else
  645. !! yearly overdraft interest of 20% recalculated into daily interest = 0.055% daily
  646. intrate = 550
  647. end
  648. :intloop
  649. if kartacount > 0:
  650. smallmoneypos += (largekarta[kartacount] * intrate)
  651. if smallmoneypos >= 1000000 or smallmoneypos <= -1000000: karta += smallmoneypos / 1000000 & smallmoneypos = smallmoneypos mod 1000000
  652. largekarta[kartacount] = 0
  653. kartacount -= 1
  654. jump 'intloop'
  655. else
  656. smallmoneypos += (largekarta[0] * intrate)
  657. largekarta[0] = 0
  658. if kartacount ! 0: kartacount = 0
  659. end
  660. if smallmoneypos >= 1000000 or smallmoneypos <= -1000000:
  661. karta += smallmoneypos / 1000000
  662. smallmoneypos = smallmoneypos mod 1000000
  663. end
  664. if atmDeposit > 0 and atmDepositDate <= daystart:
  665. karta += atmDeposit
  666. atmDeposit = 0
  667. end
  668. end
  669. !!------------------------------------------------------------------------------------------------------------
  670. !! Payments
  671. !!------------------------------------------------------------------------------------------------------------
  672. if day = 25:
  673. !! meynold payment
  674. if mey_vika['mey_vika_qw'] >= 35 and mey_tamara['help_count'] < 10 and mey_tamara['qw_end'] = 0:
  675. karta += 10000
  676. '<b><font color=green>For your efforts aunt Tamara gave you 10,000 rubles</font></b>'
  677. mey_tamara['help_count'] = 0
  678. elseif mey_vika['mey_vika_qw'] >= 35 and mey_tamara['help_count'] >= 10 and mey_tamara['qw_end'] = 0:
  679. karta += 15000
  680. '<b><font color=green>For your efforts aunt Tamara gave you 15,000 rubles</font></b>'
  681. mey_tamara['help_count'] = 0
  682. end
  683. if BurgerQW['Secretary'] = 1 and BurgerQW['SecretaryTimesWorked'] > 0 and paydaybistrosec = 0:
  684. Pay = BurgerQW['SecretaryTimesWorked'] * 1250
  685. BurgerQW['SecretaryTimesWorked'] = 0
  686. karta += Pay
  687. paydaybistrosec = 1
  688. '<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>'
  689. end
  690. if workKafe = 1 and paydayKafe = 0:
  691. paydayKafe = 1
  692. pay = smenaKafe * 600
  693. karta += pay
  694. smenaKafe = 0
  695. '<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>'
  696. end
  697. if workhosp = 1 and nopaypoly = 0:
  698. pay = smena * 1000
  699. karta += pay
  700. smena = 0
  701. nopaypoly = 1
  702. '<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>'
  703. end
  704. if worksalon = 1 and nopaysalon = 0:
  705. pay = smenaSalon * 1560
  706. karta += pay
  707. smenaSalon = 0
  708. nopaysalon = 1
  709. '<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>'
  710. end
  711. if tanwork = 1 and nopaytanwork = 0:
  712. nopaytanwork = 1
  713. karta += 10000
  714. '<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>'
  715. end
  716. if workSec = 1 and paydaySec = 0:
  717. paydaySec = 1
  718. pay = sekDay * 1500
  719. karta += pay
  720. sekDay = 0
  721. '<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>'
  722. end
  723. if workFabrika = 1:
  724. pay = smenaFabrika * 600
  725. smenaFabrika = 0
  726. karta += pay
  727. '<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>'
  728. end
  729. if husband > 0 and paydayHusb = 0:
  730. paydayHusb = 1
  731. if husbFin = 0:huspay = 20000
  732. if husbFin = 1:huspay = 30000
  733. if husbFin = 2:huspay = 40000
  734. karta += huspay
  735. '<b><font color="green">Your husband has paid <<huspay>> <b>₽</b> into your bank account.</font></b>'
  736. end
  737. if func('uniutil', 'scholarship' , 'is_active') and scholarshipday = 0:
  738. scholarshipday = 1
  739. karta += func('uniutil', 'scholarship', 'get')
  740. '<b><font color="green">You have received '+func('uniutil', 'scholarship', 'get')+' <b>₽</b> from your scholarship.</font></b>'
  741. end
  742. ! Utilities for all apartments.
  743. if (home_owned[1] = 1 or home_owned[1] = 2 or home_owned[4] > 0 or home_owned[5] = 2) and electroday = 0:
  744. gs 'housing', 'util'
  745. if bankAccount = 1 and karta >= elektro:
  746. '<b><font color="green"><<elektro>> <b>₽</b> for utilities, has been automatically deducted from your bank account.</font></b>'
  747. electroday = 1
  748. if elektro >= 2000:
  749. elektro = 2000 + rand(0, 100)
  750. karta -= elektro * hcount_util
  751. end
  752. elseif bankAccount = 1 and karta + bankDebtLimit >= elektro:
  753. '<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>'
  754. electroday = 1
  755. if elektro >= 2000:
  756. elektro = 2000 + rand(0, 100)
  757. karta -= elektro * hcount_util
  758. end
  759. elseif bankAccount = 0 and money >= elektro:
  760. '<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>'
  761. electroday = 1
  762. if elektro >= 2000:
  763. elektro = 2000 + rand(0, 100)
  764. money -= elektro * hcount_util
  765. end
  766. else
  767. '<b><font color="red">Your card was declined during automatic debit of <<elektro>> <b>₽</b>, for automatic utilities payment.</font></b>'
  768. end
  769. end
  770. ! Cable for all apartments
  771. if kabel > 0 and kabelday = 0:
  772. gs 'housing', 'cable'
  773. if bankAccount = 1 and karta >= (300 * hcount_cable):
  774. '<b><font color="green">300 <b>₽</b> has been deducted from your bank account, for you cable TV subscription.</font></b>'
  775. kabelday = 1
  776. karta -= 300 * hcount_cable
  777. elseif bankAccount = 1 and karta + bankDebtLimit >= (300 * hcount_cable):
  778. '<b><font color="green">300 <b>₽</b> has been deducted from your bank account and overdraw facility, for you cable TV subscription.</font></b>'
  779. kabelday = 1
  780. karta -= 300 * hcount_cable
  781. elseif bankAccount = 0 and money >= (300 * hcount_cable):
  782. '<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>'
  783. kabelday = 1
  784. money -= 300 * hcount_cable
  785. else
  786. '<b><font color="red">Your card was declined during automatic debit of 300 <b>₽</b> for cable TV subscription.</font></b>'
  787. end
  788. end
  789. end
  790. if day ! 25:
  791. if paydayHusb = 1:paydayHusb = 0
  792. if workKafe = 1 and paydayKafe = 1:paydayKafe = 0
  793. if workSec = 1 and paydaySec = 1:paydaySec = 0
  794. if (home_owned[1] = 1 or home_owned[4] > 0) and haday = 1:haday = 0
  795. if (home_owned[1] > 0 or home_owned[4] > 0 or home_owned[5] = 2) and electroday = 1:electroday = 0
  796. if (home_owned[1] > 0 or home_owned[4] > 0 or home_owned[5] = 3) and kabel > 0 and kabelday = 1:kabelday = 0
  797. if scholarshipday = 1:scholarshipday = 0
  798. if nopaytanwork = 1:nopaytanwork = 0
  799. if nopaypoly = 1:nopaypoly = 0
  800. if nopaysalon = 1:nopaysalon = 0
  801. if paydaybistrosec = 1:paydaybistrosec = 0
  802. end
  803. if sdaday = day and sdamonth = month and home_owned[1] = 3:
  804. home_owned[1] = 2
  805. '<b><font color="red">Your tenants have moved out and your apartment is now vacant.</font></b>'
  806. !msg 'Your tenants have moved out and your apartment is now vacant.'
  807. end
  808. !!----------------------------------------
  809. !! Rent
  810. !!----------------------------------------
  811. if home_owned[1] = 1 or home_owned[4] > 0:
  812. gs 'housing', 'rent'
  813. ! Rent for the city apartment
  814. if home_owned[1] = 1:
  815. if ArendHouseSL <= 2:
  816. !From bank
  817. if bankAccount = 1 and karta >= home_rent[1]:
  818. '<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>'
  819. karta -= home_rent[1]
  820. ArendHouseSL += ArendHouseSL_due
  821. elseif bankAccount = 1 and karta + bankDebtLimit >= home_rent[1]:
  822. '<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>'
  823. karta -= home_rent[1]
  824. ArendHouseSL += ArendHouseSL_due
  825. elseif bankAccount = 0:
  826. '<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>'
  827. else
  828. nl
  829. '<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>'
  830. end
  831. end
  832. end
  833. ! Rent for the Pushkin apartment
  834. if home_owned[4] > 0:
  835. if ArendHouseSL4 <= 2:
  836. !From bank
  837. if bankAccount = 1 and karta >= home_rent[4]:
  838. '<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>'
  839. karta -= home_rent[4]
  840. ArendHouseSL4 += ArendHouseSL4_due
  841. elseif bankAccount = 1 and karta + bankDebtLimit >= home_rent[4]:
  842. '<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>'
  843. karta -= home_rent[4]
  844. ArendHouseSL4 += ArendHouseSL4_due
  845. elseif bankAccount = 0:
  846. '<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>'
  847. else
  848. nl
  849. '<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>'
  850. end
  851. end
  852. end
  853. end
  854. if home_owned[1] = 1 and ArendHouseSL <= 0: ArendHouseSL = 0 & home_owned[1] = 0
  855. if home_owned[4] > 0 and ArendHouseSL4 <= 0: ArendHouseSL4 = 0 & home_owned[4] = 0
  856. if home_owned[1] = 1: ArendHouseSL -= 1
  857. if home_owned[4] > 0: ArendHouseSL4 -= 1
  858. !!------------------------------------------------------------------------------------------------------------
  859. killvar 'holyday'
  860. killvar 'kanikuli'
  861. killvar 'pcs_ate'
  862. killvar 'pcs_drank'
  863. !! 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
  864. !!sisboyparty
  865. !!-1 - don''t go to the party
  866. !!0 - don''t know about parties
  867. !!1 - knows about the parties
  868. !!2 - agreed to go to the party
  869. !!3 - Missed the party
  870. !!suspension ends
  871. if suspended['day'] = daystart: suspended['on'] = 0
  872. if storyline = 1:
  873. !!Party refresh if you didn''t see sis
  874. if week = 1 and sisboyparty ! 2:
  875. if sisterQW['party'] = -1: sisterQW['party'] = 0
  876. if sisboypartyQW >= 2 and sisboyparty > 0:
  877. sisboyparty_day = daystart + rand(3,5)
  878. end
  879. end
  880. if sisboyparty = 2 and sisboyparty_day + 1 < daystart: sisboyparty = 3
  881. if SchoolAtestat = 0 and SchoolBlock = 0:
  882. if month = 12 and day > 25:
  883. if day < 31:
  884. $holyday = '<b>Winter Break in <<32-day>> days.</b>'
  885. else
  886. $holyday = '<b>Winter Break starts tomorrow.</b>'
  887. end
  888. elseif month = 1 and day <= 15:
  889. kanikuli = 2
  890. if day < 13:
  891. $holyday = '<b>Winter Break.</b>'
  892. elseif day < 15:
  893. $holyday = '<b>Winter Break ends in <<16-day>> days.</b>'
  894. else
  895. $holyday = '<b>Last day of Winter Break.</b>'
  896. end
  897. elseif month = 3 and day > 13:
  898. if day < 19:
  899. $holyday = '<b>Spring Break starts in <<20-day>> days.</b>'
  900. elseif day = 19:
  901. $holyday = '<b>Spring Break starts tomorrow.</b>'
  902. elseif day >= 20 and day <= 26:
  903. kanikuli = 3
  904. if day < 24:
  905. $holyday = '<b>Spring Break.</b>'
  906. elseif day < 26:
  907. $holyday = '<b>Spring Break ends in <<27-day>> days.</b>'
  908. else
  909. $holyday = '<b>Last day of Spring Break.</b>'
  910. end
  911. end
  912. elseif month = 5:
  913. if year = 2017:
  914. if day = 25:
  915. kanikuli = 6
  916. SchoolAtestat = -1
  917. $holyday = '<b>Your graduation is today. Be there by 8:00.</b>'
  918. elseif day = 24:
  919. $holyday = '<b>Your graduation is tomorrow. Be there by 8:00.</b>'
  920. elseif day >= 19:
  921. $holyday = '<b>Your graduation is in <<26-day>> days.</b>'
  922. end
  923. elseif day >= 25:
  924. if day = 31:
  925. $holyday = '<b>Summer Break starts tomorrow.</b>'
  926. else
  927. $holyday = '<b>Summer Break starts in <<32-day>> days.</b>'
  928. end
  929. end
  930. elseif month = 6 or month = 7 or month = 8:
  931. kanikuli = 4
  932. if month = 8 and day >= 25:
  933. if day = 31:
  934. $holyday = '<b>Last day of Summer Break.</b>'
  935. else
  936. $holyday = '<b>Summer Break ends in <<32-day>> days.</b>'
  937. end
  938. else
  939. $holyday = '<b>Summer Break.</b>'
  940. end
  941. !! start inc 'I put it here because I want to reset these variables during the summer, they are related to cheerleading and it is useful just in case that PC will be part of the team for more than one year.'
  942. killvar 'first_time_outside_in_cold_weather'
  943. killvar 'first_time_doing_basketball'
  944. killvar 'first_time_spring_football_match'
  945. !! end inc
  946. elseif month = 10 and day >= 29:
  947. $holyday = '<b>Autumn Break starts in <<35-day>> days.</b>'
  948. elseif month = 11:
  949. if day < 3:
  950. $holyday = '<b>Autumn Break starts in <<4-day>> days.</b>'
  951. elseif day = 3:
  952. $holyday = '<b>Autumn Break starts tomorrow.</b>'
  953. elseif day < 6:
  954. kanikuli = 1
  955. $holyday = '<b>Autumn Break.</b>'
  956. elseif day < 11:
  957. kanikuli = 1
  958. $holyday = '<b>Autumn Break ends in <<12-day>> days.</b>'
  959. elseif day = 11:
  960. kanikuli = 1
  961. $holyday = '<b>Last day of Autumn Break.</b>'
  962. end
  963. end
  964. if kanikuli = 0 and week < 6:
  965. if week = 1:
  966. !!The start and end values for i have to be changed if more female schoolgirl npcs are added to the game
  967. i = 11
  968. :hotcat_calc_jump
  969. i += 1
  970. if hotcat_rating['A<<i>>'] = 0: jump 'hotcat_calc_jump'
  971. switch_rand = rand(1,100)
  972. if hotcat_movement['A<<i>>'] = 0 and switch_rand < 21:
  973. hotcat_rating['A<<i>>'] -= 1
  974. hotcat_movement['A<<i>>'] -= 1
  975. elseif hotcat_movement['A<<i>>'] = 0 and switch_rand > 80:
  976. hotcat_rating['A<<i>>'] += 1
  977. hotcat_movement['A<<i>>'] += 1
  978. elseif hotcat_movement['A<<i>>'] = 1 and switch_rand > 40:
  979. hotcat_rating['A<<i>>'] -= 1
  980. hotcat_movement['A<<i>>'] -= 1
  981. elseif hotcat_movement['A<<i>>'] = -1 and switch_rand > 40:
  982. hotcat_rating['A<<i>>'] += 1
  983. hotcat_movement['A<<i>>'] += 1
  984. end
  985. if i < 145: jump 'hotcat_calc_jump'
  986. killvar 'i'
  987. killvar 'switch_rand'
  988. end
  989. !! Resetting the late flag
  990. if late = 1: late = 0
  991. end
  992. !!Social grup changes
  993. !!Change from relatonship with other students.
  994. gs 'gschool_socialchg', 'group_student_rel_change'
  995. !!Decay for the school groups
  996. if grupvalue[1] > 0:
  997. grupvalue[1] -= rand(0,1)
  998. else
  999. grupvalue[1] = 0
  1000. end
  1001. if grupvalue[2] > 0:
  1002. grupvalue[2] -= rand(0,1)
  1003. else
  1004. grupvalue[2] = 0
  1005. end
  1006. if grupvalue[3] > 0:
  1007. grupvalue[3] -= rand(0,1)
  1008. else
  1009. grupvalue[3] = 0
  1010. end
  1011. if grupvalue[4] > 0:
  1012. grupvalue[4] -= rand(0,1)
  1013. else
  1014. grupvalue[4] = 0
  1015. end
  1016. !!Maximum increase for grupvalues is 10 and max decay is 30
  1017. if oldgrupvalue_set = 0:
  1018. oldgrupvalue_set = 1
  1019. old_grupvalue[1] = grupvalue[1]
  1020. old_grupvalue[2] = grupvalue[2]
  1021. old_grupvalue[3] = grupvalue[3]
  1022. old_grupvalue[4] = grupvalue[4]
  1023. else
  1024. if old_grupvalue[1] + 10 < grupvalue[1]: grupvalue[1] = old_grupvalue[1] + 10
  1025. if old_grupvalue[2] + 10 < grupvalue[2]: grupvalue[2] = old_grupvalue[2] + 10
  1026. if old_grupvalue[3] + 10 < grupvalue[3]: grupvalue[3] = old_grupvalue[3] + 10
  1027. if old_grupvalue[4] + 10 < grupvalue[4]: grupvalue[4] = old_grupvalue[4] + 10
  1028. if old_grupvalue[1] - 30 > grupvalue[1]: grupvalue[1] = old_grupvalue[1] - 30
  1029. if old_grupvalue[2] - 30 > grupvalue[2]: grupvalue[2] = old_grupvalue[2] - 30
  1030. if old_grupvalue[3] - 30 > grupvalue[3]: grupvalue[3] = old_grupvalue[3] - 30
  1031. if old_grupvalue[4] - 30 > grupvalue[4]: grupvalue[4] = old_grupvalue[4] - 30
  1032. end
  1033. !!Limit to max school group values
  1034. if grupvalue[1] > 1000: grupvalue[1] = 1000
  1035. if grupvalue[2] > 1000: grupvalue[2] = 1000
  1036. if grupvalue[3] > 1000: grupvalue[3] = 1000
  1037. if grupvalue[4] > 1000: grupvalue[4] = 1000
  1038. old_grupvalue[1] = grupvalue[1]
  1039. old_grupvalue[2] = grupvalue[2]
  1040. old_grupvalue[3] = grupvalue[3]
  1041. old_grupvalue[4] = grupvalue[4]
  1042. elseif SchoolAtestat = -1:
  1043. if home_owned[2] = 0:
  1044. $holyday = '<b>You missed your graduation. You could pick up your diploma at the school.</b>'
  1045. else
  1046. $holyday = '<b>You missed your graduation. Maybe your mother picked up your diploma.</b>'
  1047. end
  1048. end
  1049. !!Brother''s dick growth as he gets older
  1050. !Commented out till some future time
  1051. !if kolka_dick_day + 30 < daystart and npc_dick['A34'] < 26:
  1052. ! kolka_dick_day = daystart
  1053. ! npc_dick['A34'] += 1
  1054. !end
  1055. !if npc_dick['A34'] < 20 and npc_dick['A34'] > 16:
  1056. ! $npc_thdick['A34'] = 'well proportioned'
  1057. !elseif npc_dick['A34'] >= 20 and npc_dick['A34'] <= 26:
  1058. ! $npc_thdick['A34'] = 'thick'
  1059. !end
  1060. !! Calcualting the increase/decreas of the grade each week.
  1061. gs 'gschool', 'weekly grade update'
  1062. end
  1063. killvar 'natholi'
  1064. if month = 1 and day >= 1 and day <= 8:
  1065. $natholi = 'New Year holidays'
  1066. natholi = 1
  1067. if day = 1:$natholi += ', New Year'
  1068. if day = 7:$natholi += ', Christmas'
  1069. end
  1070. if month = 2 and day = 23:$natholi = 'Defender of Fatherland Day' & natholi = 1
  1071. if month = 3 and day = 8:$natholi = 'Women''s Day' & natholi = 1
  1072. if month = 5 and day = 1:$natholi = 'Spring and Labor Day' & natholi = 1
  1073. if month = 5 and day = 2:$natholi = 'National holiday' & natholi = 1
  1074. if month = 5 and day = 9:$natholi = 'Victory Day' & natholi = 1
  1075. if month = 6 and day = 12:$natholi = 'Russia Day' & natholi = 1
  1076. if month = 6 and day = 13:$natholi = 'National holiday' & natholi = 1
  1077. if month = 11 and day = 4:$natholi = 'Unity Day' & natholi = 1
  1078. if natholi = 1:
  1079. if $holyday ! '': $holyday += '<br>'
  1080. $holyday += $natholi
  1081. end
  1082. !!------------------------------------------------------------------------------------------------------------------------
  1083. !!Setting the the weeks in the university semester and makeing sure that the gades are calculated at the right times
  1084. gs 'uni_lessons', 'cikl'
  1085. !!------------------------------------------------------------------------------------------------------------------------
  1086. if bcream_used >= 1:
  1087. bcream_used = 0
  1088. temp = rand(0,max(nbsize-genbsize+5,5)) / max(nbsize-genbsize,1)
  1089. if temp > 0: temp = 1
  1090. nbsize += temp
  1091. if temp > 0:'Feels like your breasts have grown slightly.'
  1092. end
  1093. if steroid_dose >= 1:
  1094. if lashair < 1:
  1095. pcs_pubes += steroid_dose
  1096. pcs_leghair += steroid_dose
  1097. end
  1098. steroid_dose = 0
  1099. end
  1100. if aphrodisiac_overdose = 1:aphrodisiac_overdose = 0
  1101. if aphrodisiac_timer ! 0:aphrodisiac_timer = 0
  1102. if mentats_dose = 1:
  1103. mentats_dose = 0
  1104. elseif mentats_dose > 1:
  1105. pain['head'] += 20 * mentats_dose
  1106. mentats_dose = 0
  1107. end
  1108. !!Appearance base calculation call
  1109. gs 'body_shape', 'basebeautycalc'
  1110. !! vovan, from 1.2.5
  1111. hunters_check = 0
  1112. mushroom_pickers = 0
  1113. mira_go_river = 0
  1114. forestpicnic = 0
  1115. if Mira_no > 0: Mira_no -= 1
  1116. if Mira_no < 0: Mira_no = 0
  1117. !! new grandparent chore stuff, for 0.8.0
  1118. if gadstay = 1 and lost_girl = 0:
  1119. if daystart > (grandmaQW['last_day_helped'] + 3) and daystart > (grandpaQW['last_day_helped'] + 3):
  1120. if (daystart - grandmaQW['last_day_helped']) <= (daystart - grandpaQW['last_day_helped']):
  1121. '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.'
  1122. else
  1123. '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.'
  1124. end
  1125. grandmaQW['help_amount'] -= 1
  1126. end
  1127. end
  1128. !! disappointing grandma
  1129. if grandmaQW['chore_clean_floor'] = 1 or grandmaQW['chore_clean_floor'] = 2:
  1130. grandmaQW['chore_clean_floor'] = 0
  1131. grandmaQW['disappointment'] = 1
  1132. elseif grandmaQW['chore_wash_clothes'] = 1 or grandmaQW['chore_wash_clothes'] = 2:
  1133. grandmaQW['chore_wash_clothes'] = 0
  1134. grandmaQW['disappointment'] = 1
  1135. elseif grandmaQW['chore_milk_cow'] = 1 or grandmaQW['chore_milk_cow'] = 2:
  1136. grandmaQW['chore_milk_cow'] = 0
  1137. grandmaQW['disappointment'] = 1
  1138. elseif grandmaQW['chore_groceries'] = 1 or grandmaQW['chore_groceries'] = 2:
  1139. grandmaQW['chore_groceries'] = 0
  1140. grandmaQW['disappointment'] = 1
  1141. elseif grandmaQW['chore_can_mushrooms'] = 1 or grandmaQW['chore_can_mushrooms'] = 2:
  1142. grandmaQW['chore_can_mushrooms'] = 0
  1143. grandmaQW['disappointment'] = 1
  1144. elseif grandmaQW['chore_can_berries'] = 1 or grandmaQW['chore_can_berries'] = 2:
  1145. grandmaQW['chore_can_berries'] = 0
  1146. grandmaQW['disappointment'] = 1
  1147. elseif grandmaQW['chore_can_veggies'] = 1 or grandmaQW['chore_can_veggies'] = 2:
  1148. grandmaQW['chore_can_veggies'] = 0
  1149. grandmaQW['disappointment'] = 1
  1150. elseif grandmaQW['chore_feed_chickens'] = 1 or grandmaQW['chore_feed_chickens'] = 2:
  1151. grandmaQW['chore_feed_chickens'] = 0
  1152. grandmaQW['disappointment'] = 1
  1153. elseif grandmaQW['chore_work_in_garden'] = 1 or grandmaQW['chore_work_in_garden'] = 2:
  1154. grandmaQW['chore_work_in_garden'] = 0
  1155. grandmaQW['disappointment'] = 1
  1156. elseif grandmaQW['chore_water_garden'] = 1 or grandmaQW['chore_water_garden'] = 2:
  1157. grandmaQW['chore_water_garden'] = 0
  1158. grandmaQW['disappointment'] = 1
  1159. elseif grandmaQW['chore_collect_strawberries'] = 1 or grandmaQW['chore_collect_strawberries'] = 2:
  1160. grandmaQW['chore_collect_strawberries'] = 0
  1161. grandmaQW['disappointment'] = 1
  1162. elseif grandmaQW['chore_collect_fruit'] = 1 or grandmaQW['chore_collect_fruit'] = 2:
  1163. grandmaQW['chore_collect_fruit'] = 0
  1164. grandmaQW['disappointment'] = 1
  1165. elseif grandmaQW['chore_harvest_garden'] = 1 or grandmaQW['chore_harvest_garden'] = 2:
  1166. grandmaQW['chore_harvest_garden'] = 0
  1167. grandmaQW['disappointment'] = 1
  1168. elseif grandmaQW['chore_gather_mushrooms'] = 1 or grandmaQW['chore_gather_mushrooms'] = 2:
  1169. grandmaQW['chore_gather_mushrooms'] = 0
  1170. grandmaQW['chore_mushroom_quantity'] = 0
  1171. grandmaQW['disappointment'] = 1
  1172. elseif grandmaQW['chore_gather_berries'] = 1 or grandmaQW['chore_gather_berries'] = 2:
  1173. grandmaQW['chore_gather_berries'] = 0
  1174. grandmaQW['chore_berry_quantity'] = 0
  1175. grandmaQW['disappointment'] = 1
  1176. elseif grandmaQW['chore_gather_both'] = 1 or grandmaQW['chore_gather_both'] = 2:
  1177. grandmaQW['chore_gather_both'] = 0
  1178. grandmaQW['chore_mushroom_quantity'] = 0
  1179. grandmaQW['chore_berry_quantity'] = 0
  1180. grandmaQW['disappointment'] = 1
  1181. end
  1182. !! disappointing grandpa
  1183. if grandpaQW['chore_fetch_firewood'] = 1 or grandpaQW['chore_fetch_firewood'] = 2:
  1184. grandpaQW['chore_fetch_firewood'] = 0
  1185. grandpaQW['disappointment'] = 1
  1186. elseif grandpaQW['chore_feed_horse'] = 1 or grandpaQW['chore_feed_horse'] = 2:
  1187. grandpaQW['chore_feed_horse'] = 0
  1188. grandpaQW['disappointment'] = 1
  1189. elseif grandpaQW['chore_feed_cow'] = 1 or grandpaQW['chore_feed_cow'] = 2:
  1190. grandpaQW['chore_feed_cow'] = 0
  1191. grandpaQW['disappointment'] = 1
  1192. elseif grandpaQW['chore_clean_yard'] = 1 or grandpaQW['chore_clean_yard'] = 2:
  1193. grandpaQW['chore_clean_yard'] = 0
  1194. grandpaQW['disappointment'] = 1
  1195. elseif grandpaQW['chore_feed_boar'] = 1 or grandpaQW['chore_feed_boar'] = 2:
  1196. grandpaQW['chore_feed_boar'] = 0
  1197. grandpaQW['disappointment'] = 1
  1198. elseif grandpaQW['chore_bathe_horse'] = 1 or grandpaQW['chore_bathe_horse'] = 2:
  1199. grandpaQW['chore_bathe_horse'] = 0
  1200. grandpaQW['chore_bathe_horse_prog'] = 0
  1201. grandpaQW['disappointment'] = 1
  1202. elseif grandpaQW['chore_brush_horse'] = 1 or grandpaQW['chore_brush_horse'] = 2:
  1203. grandpaQW['chore_brush_horse'] = 0
  1204. grandpaQW['disappointment'] = 1
  1205. elseif grandpaQW['chore_lead_horse_to_field'] = 1 or grandpaQW['chore_lead_horse_to_field'] = 2:
  1206. grandpaQW['chore_lead_horse_to_field'] = 0
  1207. grandpaQW['disappointment'] = 1
  1208. elseif grandpaQW['chore_herd_cattle'] = 1 or grandpaQW['chore_herd_cattle'] = 2:
  1209. grandpaQW['chore_herd_cattle'] = 0
  1210. grandpaQW['disappointment'] = 1
  1211. elseif grandpaQW['chore_lead_cow_to_field'] = 1 or grandpaQW['chore_lead_cow_to_field'] = 2:
  1212. grandpaQW['chore_lead_cow_to_field'] = 0
  1213. grandpaQW['disappointment'] = 1
  1214. elseif grandpaQW['chore_gather_mushrooms'] = 1 or grandpaQW['chore_gather_mushrooms'] = 2:
  1215. grandpaQW['chore_gather_mushrooms'] = 0
  1216. grandpaQW['chore_mushroom_quantity'] = 0
  1217. grandpaQW['disappointment'] = 1
  1218. elseif grandpaQW['chore_gather_berries'] = 1 or grandpaQW['chore_gather_berries'] = 2:
  1219. grandpaQW['chore_gather_berries'] = 0
  1220. grandpaQW['chore_berry_quantity'] = 0
  1221. grandpaQW['disappointment'] = 1
  1222. elseif grandpaQW['chore_gather_both'] = 1 or grandpaQW['chore_gather_both'] = 2:
  1223. grandpaQW['chore_gather_both'] = 0
  1224. grandpaQW['chore_mushroom_quantity'] = 0
  1225. grandpaQW['chore_berry_quantity'] = 0
  1226. grandpaQW['disappointment'] = 1
  1227. elseif grandpaQW['chore_bale_hay'] = 1 or grandpaQW['chore_bale_hay'] = 2:
  1228. grandpaQW['chore_bale_hay'] = 0
  1229. grandpaQW['disappointment'] = 1
  1230. end
  1231. !! grandparents use root cellar
  1232. if boletus_stored > 0: boletus_stored -= rand(0,1)
  1233. if bilberry_stored > 0: bilberry_stored -= rand(0,1)
  1234. if boletus_stored < 0: boletus_stored = 0
  1235. if bilberry_stored < 0: bilberry_stored = 0
  1236. !! end of new grandparent chore stuff, for 0.8.0
  1237. if catout ! 0: catout = 0
  1238. if feedcat ! 0: feedcat = 0
  1239. loc_count = ARRSIZE('$CloLosLoc')
  1240. i = loc_count - 1
  1241. :loopCloLoc
  1242. $CloLoc = $CloLosLoc[i]
  1243. CloLostOn = CloLosDay[$CloLoc]
  1244. if CloLostOn + RAND(7,14) < daystart :
  1245. gs 'clothing', 'recover_lost_clothes', $CloLoc, 2
  1246. end
  1247. i -=1
  1248. if i > -1 :jump 'loopCloLoc'
  1249. if vidageday > 1080: vidageday = 1080
  1250. if blizoruk < 10: blizoruk -= 1
  1251. if blizoruk < 100: blizoruk -= rand(0,1)
  1252. if blizoruk < 0: blizoruk = 0
  1253. !!------------------------------------------------------------------------------------------------------------------------
  1254. !!C and b array cleaning
  1255. if InSleep = 1: gs 'npc','cleanarrays'
  1256. !!------------------------------------------------------------------------------------------------------------
  1257. !!-------------Family schedule variables----------------------------------------------------------------------
  1258. !! 23 = kitchen
  1259. !! 24 = Living room
  1260. !! 25 = bathroom
  1261. !! 26 = Svetas room
  1262. if week = 6:
  1263. momclean1 = rand(23,26)
  1264. else
  1265. momclean1 = rand(23,24)
  1266. end
  1267. if rand(0,1) = 0:
  1268. momclean2 = 23
  1269. else
  1270. momclean2 = 25
  1271. end
  1272. !!-------------Therapist Route schedule variables----------------------------------------------------------------------
  1273. !! 23 = kitchen
  1274. !! 24 = Living room
  1275. !! 25 = bathroom
  1276. !! 26 = Master''s room
  1277. if therapistWantsSlave > 0:
  1278. annaclean1 = rand(23,26)
  1279. end
  1280. !!------------------------------------------------------------------------------------------------------------
  1281. !!-------------Family Dog----------------------------------------------------------------------
  1282. if $status['dog'] ! 'blocked' and rex['owned'] = 1:
  1283. rex['timer_day'] = daystart
  1284. !!Daily decay
  1285. rex['relationship'] -= 1
  1286. !!Chores
  1287. if cheat['dog_rel'] = 0 and rex['gadukino_day'] ! daystart:
  1288. npc_rel['A29'] -= iif(rex['count_walk'] + rex['count_feed'] = 0, -1, (rex['count_walk'] + rex['count_feed']))
  1289. rex['relationship'] -= iif(rex['count_walk'] + rex['count_feed'] = 0, -1, (rex['count_walk'] + rex['count_feed']))
  1290. end
  1291. rex['count_run'] = 0
  1292. rex['count_walk'] = rex['count_walk_base']
  1293. rex['timer_walk'] = 0
  1294. rex['count_feed'] = rex['count_feed_base']
  1295. rex['timer_feed'] = 0
  1296. if week = 1:
  1297. if cheat['dog_rel'] = 0:
  1298. npc_rel['A29'] -= rex['count_bath']
  1299. rex['relationship'] -= (rex['count_bath'] * 5)
  1300. end
  1301. rex['count_bath'] = rex['count_bath_base']
  1302. end
  1303. end
  1304. !!------------------------------------------------------------------------------------------------------------
  1305. !!---------- School related schedule -------------------------------------------------------------------------
  1306. starlets_on = iif( ( (week = 5 and odd_week = 0) or (week = 1 or week = 3 or week >= 6) ) and natholi = 0,1,0)
  1307. cheerleaders_on = iif( ( (week = 5 and odd_week = 1) or (week = 2 or week = 4) ) and (natholi = 0 and (month >9 or month <6)) ,1,0)
  1308. if starlets['late_message'] = 1: starlets['late_message'] = 0
  1309. !!------------------------------------------------------------------------------------------------------------
  1310. !!---------- Starlet Content ---------------------------------------------------------------------------------
  1311. if AlbinaQW['StarletsJoined'] > 0 and AlbinaQW['StarletsShutDown'] = 0 and npc_pregtalk['A23'] = 0:
  1312. if starlets_practice = daystart - 1:
  1313. starlets_missed = 1
  1314. starlets_practice = 0
  1315. end
  1316. if starlets_on = 1: starlets_practice = daystart
  1317. end
  1318. if month = 9 and day = 16 and AlbinaQW['ParkRally'] = 0: AlbinaQW['ParkRally'] = 1
  1319. if month = 10 and day = 16 and AlbinaQW['ParkRally'] = 1: AlbinaQW['ParkRally'] = 2
  1320. if month = 11 and day = 19 and (AlbinaQW['StarletsJoined'] <= 0 or (AlbinaQW['StarletsJoined'] = 1 and npc_pregtalk['A23'] = 1)) and AlbinaQW['StarletsShutDown'] = 0: AlbinaQW['StarletsShutDown'] = 1
  1321. !!------------------------------------------------------------------------------------------------------------
  1322. !!-------------Music career related variables and calculations------------------------------------------------
  1323. !! How many hours a day can Sveta perform. It maxes out at 3.
  1324. !! Using the actual skill level, not the one modified by Attributes because that is more realistic for this.
  1325. ml_performance['max_perform_minutes'] = pcs_instrmusic + pcs_vokal
  1326. ml_performance['performed_minutes'] = 0
  1327. !! Checking for missed guitar lesson
  1328. if ml_guitarlesson['nextlesson'] < daystart and ml_guitarlesson['lessonday'] ! 8:
  1329. ml_guitarlesson['lessonday'] = 8
  1330. end
  1331. !! Calculating the fame increase from the uploaded songs and removing ones that do not effect fame anymore to keep the
  1332. !! data at a sane level
  1333. if ml_onlinesongcount > 0:
  1334. i = 0
  1335. j = -1
  1336. :looponlinesongs
  1337. !! this so every song counts only every 7 days and only for a limited number of weeks
  1338. if ml_onlinesong_freshness[i] > 0:
  1339. j += 1
  1340. ml_tempsong_freshness[j] = ml_onlinesong_sfreshness[i]
  1341. ml_tempsong_lastcalcday[j] = ml_onlinesong_lastcalcday[i]
  1342. ml_tempsong_hotcat[j] = ml_onlinesong_hotcat[i]
  1343. ml_tempsong_skilllevel[j] = ml_onlinesong_skilllevel[i]
  1344. ml_tempsong_uploaded[j] = ml_onlinesong_uploaded[i]
  1345. *nl
  1346. if ml_tempsong_lastcalcday[j] <= (daystart - 7) and ml_tempsong_uploaded = 1:
  1347. gs 'fame', 'city', 'music', rand(0, ml_tempsong_freshness[j]/100)
  1348. ml_tempsong_freshness[j] -= 10
  1349. ml_tempsong_lastcalcday[j] = daystart
  1350. end
  1351. end
  1352. i += 1
  1353. if i < ml_onlinesongcount: jump 'looponlinesongs'
  1354. killvar 'ml_onlinesong_freshness'
  1355. killvar 'ml_onlinesong_lastcalcday'
  1356. killvar 'ml_onlinesong_hotcat'
  1357. killvar 'ml_onlinesong_skilllevel'
  1358. killvar 'ml_onlinesong_uploaded'
  1359. i = 0
  1360. if j >= 0:
  1361. :looprebuildsongs
  1362. ml_onlinesong_freshness[i] = ml_tempsong_freshness[i]
  1363. ml_onlinesong_hotcat[i] = ml_tempsong_hotcat[i]
  1364. ml_onlinesong_lastcalcday[i] = ml_tempsong_lastcalcday[i]
  1365. ml_onlinesong_skilllevel[i] = ml_tempsong_skilllevel[i]
  1366. ml_onlinesong_uploaded[i] = ml_tempsong_uploaded[i]
  1367. i += 1
  1368. if i <= j: jump 'looprebuildsongs'
  1369. end
  1370. killvar 'ml_tempsong_freshness'
  1371. killvar 'ml_tempsong_lastcalcday'
  1372. killvar 'ml_tempsong_hotcat'
  1373. killvar 'ml_tempsong_skilllevel'
  1374. killvar 'ml_tempsong_uploaded'
  1375. end
  1376. !! Repertoire quality decay if no practice is done
  1377. if ml_performance['set_lastpracticeday'] ! (daystart-1): repertoire_quality -= 2
  1378. --- cikl ---------------------------------