cikl.qsrc 52 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591
  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. !!Updating Katja''s variables.
  544. gs 'katjaHomeTalk', 'cikl'
  545. if npc_rel['A69'] > 60 and rand(0,3) = 0:npc_rel['A69'] -= 1
  546. !!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.
  547. gs 'soniadisco', 'cikl'
  548. dmishaevent = 0
  549. if Gspravka <= 0 and GspravkaT = 1:GspravkaT = 0 & Gspravka = 0
  550. if GspravkaT = 1:Gspravka -= 1
  551. if BurgerQW['IlyQW'] = 2 and BurgerQW['IlyQWPoliceDayCount'] = 30:BurgerQW['IlyQW'] = 3
  552. if BurgerQW['IlyQW'] = 2 and BurgerQW['IlyQWPoliceDayCount'] > 0 and BurgerQW['IlyQWPoliceDayCount'] < 30:BurgerQW['IvanQWPoliceDayCount'] += 1
  553. !!remove degradation for inhibition
  554. inhib_flr = inhib_lvl
  555. gs 'stat_sklattrib', 'daycall'
  556. if dounspell = 1:
  557. if strenbuf > 90:
  558. strenbuf -= 2
  559. elseif strenbuf > 80:
  560. strenbuf -= 1
  561. end
  562. if vitalbuf > 90:
  563. vitalbuf -= 2
  564. elseif vitalbuf > 80:
  565. vitalbuf -= 1
  566. end
  567. if strenbuf > pcs_stren: strenbuf -= 1
  568. if strenbuf < pcs_stren: strenbuf += 1
  569. if vitalbuf > pcs_vital: vitalbuf -= 1
  570. if vitalbuf < pcs_vital: vitalbuf += 1
  571. if agilbuf > pcs_agil: agilbuf -= 1
  572. if agilbuf < pcs_agil: agilbuf += 1
  573. else
  574. gs 'body_shape'
  575. end
  576. if husband > 0 and husbandrink ! 11:husbandrink = rand(0, 10)
  577. !!Pussy_Kats job settings
  578. inWorkYoungShop = 0
  579. if week = 1 and young_shop_work = 100: young_shop_work = 1
  580. if week = 5 and young_shop_work1 = 100: young_shop_work1 = 1
  581. if week = 1 and young_shop_work2 = 100: young_shop_work2 = 1
  582. husbandsexday = 0
  583. borsexkol = 0
  584. givisexday = 0
  585. if shantsr > 0:
  586. pay = shantsr * 5000
  587. karta += pay
  588. shantsr = 0
  589. end
  590. if shantbog > 0:
  591. :shantftb
  592. shantftbgrand = rand(0, 10)
  593. if shantftbgrand > 2:
  594. shantpopala += 1
  595. shantbog -= 1
  596. if shantbog > 0:jump 'shantftb'
  597. elseif shantftbgrand <= 2:
  598. karta += 30000
  599. shantbog -= 1
  600. if shantbog > 0:jump 'shantftb'
  601. end
  602. end
  603. petersexday = 0
  604. klismaday1 = 0
  605. !!ugly duckling start becoming a swan
  606. if uglyduck_flag = 1 and hotcat >= 5:
  607. killvar 'uglyduck_flag'
  608. gs 'npc_relationship', 'socialgroup_setting_boys', 10, 10, 10, 10, 0, 0
  609. grupvalue[1] += 100
  610. old_grupvalue[1] += 100
  611. end
  612. !! Resetting relationships that go over the max
  613. :toptemprel
  614. if temprel < aarraynumber:
  615. temprel +=1
  616. if npc_rel['A'+'<<temprel>>'] > 100:npc_rel['A'+'<<temprel>>'] = 100
  617. jump 'toptemprel'
  618. end
  619. killvar 'temprel'
  620. !!------------------------------------------------------------------------------------------------------------
  621. !! Banking
  622. !!------------------------------------------------------------------------------------------------------------
  623. !!MJ: Add some (daily) interest to the bank account.
  624. !!Not very realistic but won''t make anyone too rich.
  625. if bankAccount = 1:
  626. kartatotal = karta
  627. :kartaloop
  628. if kartatotal > 20000000:
  629. kartacount += 1
  630. largekarta[kartacount] = 20000000
  631. kartatotal -= 20000000
  632. jump 'kartaloop'
  633. else
  634. largekarta[0] = kartatotal
  635. end
  636. if karta >= 2000000:
  637. !! yearly interest of 2.3% recalculated into daily interest = 0.006% daily
  638. intrate = 60
  639. elseif karta >= 0:
  640. !! yearly interest of 1.15% recalculated into daily interest = 0.003% daily
  641. intrate = 30
  642. else
  643. !! yearly overdraft interest of 20% recalculated into daily interest = 0.055% daily
  644. intrate = 550
  645. end
  646. :intloop
  647. if kartacount > 0:
  648. smallmoneypos += (largekarta[kartacount] * intrate)
  649. if smallmoneypos >= 1000000 or smallmoneypos <= -1000000: karta += smallmoneypos / 1000000 & smallmoneypos = smallmoneypos mod 1000000
  650. largekarta[kartacount] = 0
  651. kartacount -= 1
  652. jump 'intloop'
  653. else
  654. smallmoneypos += (largekarta[0] * intrate)
  655. largekarta[0] = 0
  656. if kartacount ! 0: kartacount = 0
  657. end
  658. if smallmoneypos >= 1000000 or smallmoneypos <= -1000000:
  659. karta += smallmoneypos / 1000000
  660. smallmoneypos = smallmoneypos mod 1000000
  661. end
  662. if atmDeposit > 0 and atmDepositDate <= daystart:
  663. karta += atmDeposit
  664. atmDeposit = 0
  665. end
  666. end
  667. !!------------------------------------------------------------------------------------------------------------
  668. !! Payments
  669. !!------------------------------------------------------------------------------------------------------------
  670. if day = 25:
  671. !! meynold payment
  672. if mey_vika['mey_vika_qw'] >= 35 and mey_tamara['help_count'] < 10 and mey_tamara['qw_end'] = 0:
  673. karta += 10000
  674. '<b><font color=green>For your efforts aunt Tamara gave you 10,000 rubles</font></b>'
  675. mey_tamara['help_count'] = 0
  676. elseif mey_vika['mey_vika_qw'] >= 35 and mey_tamara['help_count'] >= 10 and mey_tamara['qw_end'] = 0:
  677. karta += 15000
  678. '<b><font color=green>For your efforts aunt Tamara gave you 15,000 rubles</font></b>'
  679. mey_tamara['help_count'] = 0
  680. end
  681. if BurgerQW['Secretary'] = 1 and BurgerQW['SecretaryTimesWorked'] > 0 and paydaybistrosec = 0:
  682. Pay = BurgerQW['SecretaryTimesWorked'] * 1250
  683. BurgerQW['SecretaryTimesWorked'] = 0
  684. karta += Pay
  685. paydaybistrosec = 1
  686. '<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>'
  687. end
  688. if workKafe = 1 and paydayKafe = 0:
  689. paydayKafe = 1
  690. pay = smenaKafe * 600
  691. karta += pay
  692. smenaKafe = 0
  693. '<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>'
  694. end
  695. if workhosp = 1 and nopaypoly = 0:
  696. pay = smena * 1000
  697. karta += pay
  698. smena = 0
  699. nopaypoly = 1
  700. '<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>'
  701. end
  702. if worksalon = 1 and nopaysalon = 0:
  703. pay = smenaSalon * 1560
  704. karta += pay
  705. smenaSalon = 0
  706. nopaysalon = 1
  707. '<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>'
  708. end
  709. if tanwork = 1 and nopaytanwork = 0:
  710. nopaytanwork = 1
  711. karta += 10000
  712. '<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>'
  713. end
  714. if workSec = 1 and paydaySec = 0:
  715. paydaySec = 1
  716. pay = sekDay * 1500
  717. karta += pay
  718. sekDay = 0
  719. '<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>'
  720. end
  721. if workFabrika = 1:
  722. pay = smenaFabrika * 600
  723. smenaFabrika = 0
  724. karta += pay
  725. '<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>'
  726. end
  727. if husband > 0 and paydayHusb = 0:
  728. paydayHusb = 1
  729. if husbFin = 0:huspay = 20000
  730. if husbFin = 1:huspay = 30000
  731. if husbFin = 2:huspay = 40000
  732. karta += huspay
  733. '<b><font color="green">Your husband has paid <<huspay>> <b>₽</b> into your bank account.</font></b>'
  734. end
  735. if func('uniutil', 'scholarship' , 'is_active') and scholarshipday = 0:
  736. scholarshipday = 1
  737. karta += func('uniutil', 'scholarship', 'get')
  738. '<b><font color="green">You have received '+func('uniutil', 'scholarship', 'get')+' <b>₽</b> from your scholarship.</font></b>'
  739. end
  740. ! Utilities for all apartments.
  741. if (home_owned[1] = 1 or home_owned[1] = 2 or home_owned[4] > 0 or home_owned[5] = 2) and electroday = 0:
  742. gs 'housing', 'util'
  743. if bankAccount = 1 and karta >= elektro:
  744. '<b><font color="green"><<elektro>> <b>₽</b> for utilities, has been automatically deducted from your bank account.</font></b>'
  745. electroday = 1
  746. if elektro >= 2000:
  747. elektro = 2000 + rand(0, 100)
  748. karta -= elektro * hcount_util
  749. end
  750. elseif bankAccount = 1 and karta + bankDebtLimit >= elektro:
  751. '<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>'
  752. electroday = 1
  753. if elektro >= 2000:
  754. elektro = 2000 + rand(0, 100)
  755. karta -= elektro * hcount_util
  756. end
  757. elseif bankAccount = 0 and money >= elektro:
  758. '<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>'
  759. electroday = 1
  760. if elektro >= 2000:
  761. elektro = 2000 + rand(0, 100)
  762. money -= elektro * hcount_util
  763. end
  764. else
  765. '<b><font color="red">Your card was declined during automatic debit of <<elektro>> <b>₽</b>, for automatic utilities payment.</font></b>'
  766. end
  767. end
  768. ! Cable for all apartments
  769. if kabel > 0 and kabelday = 0:
  770. gs 'housing', 'cable'
  771. if bankAccount = 1 and karta >= (300 * hcount_cable):
  772. '<b><font color="green">300 <b>₽</b> has been deducted from your bank account, for you cable TV subscription.</font></b>'
  773. kabelday = 1
  774. karta -= 300 * hcount_cable
  775. elseif bankAccount = 1 and karta + bankDebtLimit >= (300 * hcount_cable):
  776. '<b><font color="green">300 <b>₽</b> has been deducted from your bank account and overdraw facility, for you cable TV subscription.</font></b>'
  777. kabelday = 1
  778. karta -= 300 * hcount_cable
  779. elseif bankAccount = 0 and money >= (300 * hcount_cable):
  780. '<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>'
  781. kabelday = 1
  782. money -= 300 * hcount_cable
  783. else
  784. '<b><font color="red">Your card was declined during automatic debit of 300 <b>₽</b> for cable TV subscription.</font></b>'
  785. end
  786. end
  787. end
  788. if day ! 25:
  789. if paydayHusb = 1:paydayHusb = 0
  790. if workKafe = 1 and paydayKafe = 1:paydayKafe = 0
  791. if workSec = 1 and paydaySec = 1:paydaySec = 0
  792. if (home_owned[1] = 1 or home_owned[4] > 0) and haday = 1:haday = 0
  793. if (home_owned[1] > 0 or home_owned[4] > 0 or home_owned[5] = 2) and electroday = 1:electroday = 0
  794. if (home_owned[1] > 0 or home_owned[4] > 0 or home_owned[5] = 3) and kabel > 0 and kabelday = 1:kabelday = 0
  795. if scholarshipday = 1:scholarshipday = 0
  796. if nopaytanwork = 1:nopaytanwork = 0
  797. if nopaypoly = 1:nopaypoly = 0
  798. if nopaysalon = 1:nopaysalon = 0
  799. if paydaybistrosec = 1:paydaybistrosec = 0
  800. end
  801. if sdaday = day and sdamonth = month and home_owned[1] = 3:
  802. home_owned[1] = 2
  803. '<b><font color="red">Your tenants have moved out and your apartment is now vacant.</font></b>'
  804. !msg 'Your tenants have moved out and your apartment is now vacant.'
  805. end
  806. !!----------------------------------------
  807. !! Rent
  808. !!----------------------------------------
  809. if home_owned[1] = 1 or home_owned[4] > 0:
  810. gs 'housing', 'rent'
  811. ! Rent for the city apartment
  812. if home_owned[1] = 1:
  813. if ArendHouseSL <= 2:
  814. !From bank
  815. if bankAccount = 1 and karta >= home_rent[1]:
  816. '<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>'
  817. karta -= home_rent[1]
  818. ArendHouseSL += ArendHouseSL_due
  819. elseif bankAccount = 1 and karta + bankDebtLimit >= home_rent[1]:
  820. '<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>'
  821. karta -= home_rent[1]
  822. ArendHouseSL += ArendHouseSL_due
  823. elseif bankAccount = 0:
  824. '<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>'
  825. else
  826. nl
  827. '<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>'
  828. end
  829. end
  830. end
  831. ! Rent for the Pushkin apartment
  832. if home_owned[4] > 0:
  833. if ArendHouseSL4 <= 2:
  834. !From bank
  835. if bankAccount = 1 and karta >= home_rent[4]:
  836. '<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>'
  837. karta -= home_rent[4]
  838. ArendHouseSL4 += ArendHouseSL4_due
  839. elseif bankAccount = 1 and karta + bankDebtLimit >= home_rent[4]:
  840. '<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>'
  841. karta -= home_rent[4]
  842. ArendHouseSL4 += ArendHouseSL4_due
  843. elseif bankAccount = 0:
  844. '<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>'
  845. else
  846. nl
  847. '<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>'
  848. end
  849. end
  850. end
  851. end
  852. if home_owned[1] = 1 and ArendHouseSL <= 0: ArendHouseSL = 0 & home_owned[1] = 0
  853. if home_owned[4] > 0 and ArendHouseSL4 <= 0: ArendHouseSL4 = 0 & home_owned[4] = 0
  854. if home_owned[1] = 1: ArendHouseSL -= 1
  855. if home_owned[4] > 0: ArendHouseSL4 -= 1
  856. !!------------------------------------------------------------------------------------------------------------
  857. killvar 'holyday'
  858. killvar 'kanikuli'
  859. killvar 'pcs_ate'
  860. killvar 'pcs_drank'
  861. !! 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
  862. !!sisboyparty
  863. !!-1 - don''t go to the party
  864. !!0 - don''t know about parties
  865. !!1 - knows about the parties
  866. !!2 - agreed to go to the party
  867. !!3 - Missed the party
  868. !!suspension ends
  869. if suspended['day'] = daystart: suspended['on'] = 0
  870. if storyline = 1:
  871. !!Party refresh if you didn''t see sis
  872. if week = 1 and sisboyparty ! 2:
  873. if sisterQW['party'] = -1: sisterQW['party'] = 0
  874. if sisboypartyQW >= 2 and sisboyparty > 0:
  875. sisboyparty_day = daystart + rand(3,5)
  876. end
  877. end
  878. if sisboyparty = 2 and sisboyparty_day + 1 < daystart: sisboyparty = 3
  879. if SchoolAtestat = 0 and SchoolBlock = 0:
  880. if month = 12 and day > 25:
  881. if day < 31:
  882. $holyday = '<b>Winter Break in <<32-day>> days.</b>'
  883. else
  884. $holyday = '<b>Winter Break starts tomorrow.</b>'
  885. end
  886. elseif month = 1 and day <= 15:
  887. kanikuli = 2
  888. if day < 13:
  889. $holyday = '<b>Winter Break.</b>'
  890. elseif day < 15:
  891. $holyday = '<b>Winter Break ends in <<16-day>> days.</b>'
  892. else
  893. $holyday = '<b>Last day of Winter Break.</b>'
  894. end
  895. elseif month = 3 and day > 13:
  896. if day < 19:
  897. $holyday = '<b>Spring Break starts in <<20-day>> days.</b>'
  898. elseif day = 19:
  899. $holyday = '<b>Spring Break starts tomorrow.</b>'
  900. elseif day >= 20 and day <= 26:
  901. kanikuli = 3
  902. if day < 24:
  903. $holyday = '<b>Spring Break.</b>'
  904. elseif day < 26:
  905. $holyday = '<b>Spring Break ends in <<27-day>> days.</b>'
  906. else
  907. $holyday = '<b>Last day of Spring Break.</b>'
  908. end
  909. end
  910. elseif month = 5:
  911. if year = 2017:
  912. if day = 25:
  913. kanikuli = 6
  914. SchoolAtestat = -1
  915. $holyday = '<b>Your graduation is today. Be there by 8:00.</b>'
  916. elseif day = 24:
  917. $holyday = '<b>Your graduation is tomorrow. Be there by 8:00.</b>'
  918. elseif day >= 19:
  919. $holyday = '<b>Your graduation is in <<26-day>> days.</b>'
  920. end
  921. elseif day >= 25:
  922. if day = 31:
  923. $holyday = '<b>Summer Break starts tomorrow.</b>'
  924. else
  925. $holyday = '<b>Summer Break starts in <<32-day>> days.</b>'
  926. end
  927. end
  928. elseif month = 6 or month = 7 or month = 8:
  929. kanikuli = 4
  930. if month = 8 and day >= 25:
  931. if day = 31:
  932. $holyday = '<b>Last day of Summer Break.</b>'
  933. else
  934. $holyday = '<b>Summer Break ends in <<32-day>> days.</b>'
  935. end
  936. else
  937. $holyday = '<b>Summer Break.</b>'
  938. end
  939. !! 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.'
  940. killvar 'first_time_outside_in_cold_weather'
  941. killvar 'first_time_doing_basketball'
  942. killvar 'first_time_spring_football_match'
  943. !! end inc
  944. elseif month = 10 and day >= 29:
  945. $holyday = '<b>Autumn Break starts in <<35-day>> days.</b>'
  946. elseif month = 11:
  947. if day < 3:
  948. $holyday = '<b>Autumn Break starts in <<4-day>> days.</b>'
  949. elseif day = 3:
  950. $holyday = '<b>Autumn Break starts tomorrow.</b>'
  951. elseif day < 6:
  952. kanikuli = 1
  953. $holyday = '<b>Autumn Break.</b>'
  954. elseif day < 11:
  955. kanikuli = 1
  956. $holyday = '<b>Autumn Break ends in <<12-day>> days.</b>'
  957. elseif day = 11:
  958. kanikuli = 1
  959. $holyday = '<b>Last day of Autumn Break.</b>'
  960. end
  961. end
  962. if kanikuli = 0 and week < 6:
  963. if week = 1:
  964. !!The start and end values for i have to be changed if more female schoolgirl npcs are added to the game
  965. i = 11
  966. :hotcat_calc_jump
  967. i += 1
  968. if hotcat_rating['A<<i>>'] = 0: jump 'hotcat_calc_jump'
  969. switch_rand = rand(1,100)
  970. if hotcat_movement['A<<i>>'] = 0 and switch_rand < 21:
  971. hotcat_rating['A<<i>>'] -= 1
  972. hotcat_movement['A<<i>>'] -= 1
  973. elseif hotcat_movement['A<<i>>'] = 0 and switch_rand > 80:
  974. hotcat_rating['A<<i>>'] += 1
  975. hotcat_movement['A<<i>>'] += 1
  976. elseif hotcat_movement['A<<i>>'] = 1 and switch_rand > 40:
  977. hotcat_rating['A<<i>>'] -= 1
  978. hotcat_movement['A<<i>>'] -= 1
  979. elseif hotcat_movement['A<<i>>'] = -1 and switch_rand > 40:
  980. hotcat_rating['A<<i>>'] += 1
  981. hotcat_movement['A<<i>>'] += 1
  982. end
  983. if i < 145: jump 'hotcat_calc_jump'
  984. killvar 'i'
  985. killvar 'switch_rand'
  986. end
  987. !! Resetting the late flag
  988. if late = 1: late = 0
  989. end
  990. !!Social grup changes
  991. !!Change from relatonship with other students.
  992. gs 'gschool_socialchg', 'group_student_rel_change'
  993. !!Decay for the school groups
  994. if grupvalue[1] > 0:
  995. grupvalue[1] -= rand(0,1)
  996. else
  997. grupvalue[1] = 0
  998. end
  999. if grupvalue[2] > 0:
  1000. grupvalue[2] -= rand(0,1)
  1001. else
  1002. grupvalue[2] = 0
  1003. end
  1004. if grupvalue[3] > 0:
  1005. grupvalue[3] -= rand(0,1)
  1006. else
  1007. grupvalue[3] = 0
  1008. end
  1009. if grupvalue[4] > 0:
  1010. grupvalue[4] -= rand(0,1)
  1011. else
  1012. grupvalue[4] = 0
  1013. end
  1014. !!Maximum increase for grupvalues is 10 and max decay is 30
  1015. if oldgrupvalue_set = 0:
  1016. oldgrupvalue_set = 1
  1017. old_grupvalue[1] = grupvalue[1]
  1018. old_grupvalue[2] = grupvalue[2]
  1019. old_grupvalue[3] = grupvalue[3]
  1020. old_grupvalue[4] = grupvalue[4]
  1021. else
  1022. if old_grupvalue[1] + 10 < grupvalue[1]: grupvalue[1] = old_grupvalue[1] + 10
  1023. if old_grupvalue[2] + 10 < grupvalue[2]: grupvalue[2] = old_grupvalue[2] + 10
  1024. if old_grupvalue[3] + 10 < grupvalue[3]: grupvalue[3] = old_grupvalue[3] + 10
  1025. if old_grupvalue[4] + 10 < grupvalue[4]: grupvalue[4] = old_grupvalue[4] + 10
  1026. if old_grupvalue[1] - 30 > grupvalue[1]: grupvalue[1] = old_grupvalue[1] - 30
  1027. if old_grupvalue[2] - 30 > grupvalue[2]: grupvalue[2] = old_grupvalue[2] - 30
  1028. if old_grupvalue[3] - 30 > grupvalue[3]: grupvalue[3] = old_grupvalue[3] - 30
  1029. if old_grupvalue[4] - 30 > grupvalue[4]: grupvalue[4] = old_grupvalue[4] - 30
  1030. end
  1031. !!Limit to max school group values
  1032. if grupvalue[1] > 1000: grupvalue[1] = 1000
  1033. if grupvalue[2] > 1000: grupvalue[2] = 1000
  1034. if grupvalue[3] > 1000: grupvalue[3] = 1000
  1035. if grupvalue[4] > 1000: grupvalue[4] = 1000
  1036. old_grupvalue[1] = grupvalue[1]
  1037. old_grupvalue[2] = grupvalue[2]
  1038. old_grupvalue[3] = grupvalue[3]
  1039. old_grupvalue[4] = grupvalue[4]
  1040. elseif SchoolAtestat = -1:
  1041. if home_owned[2] = 0:
  1042. $holyday = '<b>You missed your graduation. You could pick up your diploma at the school.</b>'
  1043. else
  1044. $holyday = '<b>You missed your graduation. Maybe your mother picked up your diploma.</b>'
  1045. end
  1046. end
  1047. !!Brother''s dick growth as he gets older
  1048. !Commented out till some future time
  1049. !if kolka_dick_day + 30 < daystart and npc_dick['A34'] < 26:
  1050. ! kolka_dick_day = daystart
  1051. ! npc_dick['A34'] += 1
  1052. !end
  1053. !if npc_dick['A34'] < 20 and npc_dick['A34'] > 16:
  1054. ! $npc_thdick['A34'] = 'well proportioned'
  1055. !elseif npc_dick['A34'] >= 20 and npc_dick['A34'] <= 26:
  1056. ! $npc_thdick['A34'] = 'thick'
  1057. !end
  1058. !! Calcualting the increase/decreas of the grade each week.
  1059. gs 'gschool', 'weekly grade update'
  1060. end
  1061. killvar 'natholi'
  1062. if month = 1 and day >= 1 and day <= 8:
  1063. $natholi = 'New Year holidays'
  1064. natholi = 1
  1065. if day = 1:$natholi += ', New Year'
  1066. if day = 7:$natholi += ', Christmas'
  1067. end
  1068. if month = 2 and day = 23:$natholi = 'Defender of Fatherland Day' & natholi = 1
  1069. if month = 3 and day = 8:$natholi = 'Women''s Day' & natholi = 1
  1070. if month = 5 and day = 1:$natholi = 'Spring and Labor Day' & natholi = 1
  1071. if month = 5 and day = 2:$natholi = 'National holiday' & natholi = 1
  1072. if month = 5 and day = 9:$natholi = 'Victory Day' & natholi = 1
  1073. if month = 6 and day = 12:$natholi = 'Russia Day' & natholi = 1
  1074. if month = 6 and day = 13:$natholi = 'National holiday' & natholi = 1
  1075. if month = 11 and day = 4:$natholi = 'Unity Day' & natholi = 1
  1076. if natholi = 1:
  1077. if $holyday ! '': $holyday += '<br>'
  1078. $holyday += $natholi
  1079. end
  1080. !!------------------------------------------------------------------------------------------------------------------------
  1081. !!Setting the the weeks in the university semester and makeing sure that the gades are calculated at the right times
  1082. gs 'uni_lessons', 'cikl'
  1083. !!------------------------------------------------------------------------------------------------------------------------
  1084. if bcream_used >= 1:
  1085. bcream_used = 0
  1086. temp = rand(0,max(nbsize-genbsize+5,5)) / max(nbsize-genbsize,1)
  1087. if temp > 0: temp = 1
  1088. nbsize += temp
  1089. if temp > 0:'Feels like your breasts have grown slightly.'
  1090. end
  1091. if steroid_dose >= 1:
  1092. if lashair < 1:
  1093. pcs_pubes += steroid_dose
  1094. pcs_leghair += steroid_dose
  1095. end
  1096. steroid_dose = 0
  1097. end
  1098. if aphrodisiac_overdose = 1:aphrodisiac_overdose = 0
  1099. if aphrodisiac_timer ! 0:aphrodisiac_timer = 0
  1100. if mentats_dose = 1:
  1101. mentats_dose = 0
  1102. elseif mentats_dose > 1:
  1103. pain['head'] += 20 * mentats_dose
  1104. mentats_dose = 0
  1105. end
  1106. !!Appearance base calculation call
  1107. gs 'body_shape', 'basebeautycalc'
  1108. !! vovan, from 1.2.5
  1109. hunters_check = 0
  1110. mushroom_pickers = 0
  1111. mira_go_river = 0
  1112. forestpicnic = 0
  1113. if Mira_no > 0: Mira_no -= 1
  1114. if Mira_no < 0: Mira_no = 0
  1115. !! new grandparent chore stuff, for 0.8.0
  1116. if gadstay = 1 and lost_girl = 0:
  1117. if daystart > (grandmaQW['last_day_helped'] + 3) and daystart > (grandpaQW['last_day_helped'] + 3):
  1118. if (daystart - grandmaQW['last_day_helped']) <= (daystart - grandpaQW['last_day_helped']):
  1119. '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.'
  1120. else
  1121. '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.'
  1122. end
  1123. grandmaQW['help_amount'] -= 1
  1124. end
  1125. end
  1126. !! disappointing grandma
  1127. if grandmaQW['chore_clean_floor'] = 1 or grandmaQW['chore_clean_floor'] = 2:
  1128. grandmaQW['chore_clean_floor'] = 0
  1129. grandmaQW['disappointment'] = 1
  1130. elseif grandmaQW['chore_wash_clothes'] = 1 or grandmaQW['chore_wash_clothes'] = 2:
  1131. grandmaQW['chore_wash_clothes'] = 0
  1132. grandmaQW['disappointment'] = 1
  1133. elseif grandmaQW['chore_milk_cow'] = 1 or grandmaQW['chore_milk_cow'] = 2:
  1134. grandmaQW['chore_milk_cow'] = 0
  1135. grandmaQW['disappointment'] = 1
  1136. elseif grandmaQW['chore_groceries'] = 1 or grandmaQW['chore_groceries'] = 2:
  1137. grandmaQW['chore_groceries'] = 0
  1138. grandmaQW['disappointment'] = 1
  1139. elseif grandmaQW['chore_can_mushrooms'] = 1 or grandmaQW['chore_can_mushrooms'] = 2:
  1140. grandmaQW['chore_can_mushrooms'] = 0
  1141. grandmaQW['disappointment'] = 1
  1142. elseif grandmaQW['chore_can_berries'] = 1 or grandmaQW['chore_can_berries'] = 2:
  1143. grandmaQW['chore_can_berries'] = 0
  1144. grandmaQW['disappointment'] = 1
  1145. elseif grandmaQW['chore_can_veggies'] = 1 or grandmaQW['chore_can_veggies'] = 2:
  1146. grandmaQW['chore_can_veggies'] = 0
  1147. grandmaQW['disappointment'] = 1
  1148. elseif grandmaQW['chore_feed_chickens'] = 1 or grandmaQW['chore_feed_chickens'] = 2:
  1149. grandmaQW['chore_feed_chickens'] = 0
  1150. grandmaQW['disappointment'] = 1
  1151. elseif grandmaQW['chore_work_in_garden'] = 1 or grandmaQW['chore_work_in_garden'] = 2:
  1152. grandmaQW['chore_work_in_garden'] = 0
  1153. grandmaQW['disappointment'] = 1
  1154. elseif grandmaQW['chore_water_garden'] = 1 or grandmaQW['chore_water_garden'] = 2:
  1155. grandmaQW['chore_water_garden'] = 0
  1156. grandmaQW['disappointment'] = 1
  1157. elseif grandmaQW['chore_collect_strawberries'] = 1 or grandmaQW['chore_collect_strawberries'] = 2:
  1158. grandmaQW['chore_collect_strawberries'] = 0
  1159. grandmaQW['disappointment'] = 1
  1160. elseif grandmaQW['chore_collect_fruit'] = 1 or grandmaQW['chore_collect_fruit'] = 2:
  1161. grandmaQW['chore_collect_fruit'] = 0
  1162. grandmaQW['disappointment'] = 1
  1163. elseif grandmaQW['chore_harvest_garden'] = 1 or grandmaQW['chore_harvest_garden'] = 2:
  1164. grandmaQW['chore_harvest_garden'] = 0
  1165. grandmaQW['disappointment'] = 1
  1166. elseif grandmaQW['chore_gather_mushrooms'] = 1 or grandmaQW['chore_gather_mushrooms'] = 2:
  1167. grandmaQW['chore_gather_mushrooms'] = 0
  1168. grandmaQW['chore_mushroom_quantity'] = 0
  1169. grandmaQW['disappointment'] = 1
  1170. elseif grandmaQW['chore_gather_berries'] = 1 or grandmaQW['chore_gather_berries'] = 2:
  1171. grandmaQW['chore_gather_berries'] = 0
  1172. grandmaQW['chore_berry_quantity'] = 0
  1173. grandmaQW['disappointment'] = 1
  1174. elseif grandmaQW['chore_gather_both'] = 1 or grandmaQW['chore_gather_both'] = 2:
  1175. grandmaQW['chore_gather_both'] = 0
  1176. grandmaQW['chore_mushroom_quantity'] = 0
  1177. grandmaQW['chore_berry_quantity'] = 0
  1178. grandmaQW['disappointment'] = 1
  1179. end
  1180. !! disappointing grandpa
  1181. if grandpaQW['chore_fetch_firewood'] = 1 or grandpaQW['chore_fetch_firewood'] = 2:
  1182. grandpaQW['chore_fetch_firewood'] = 0
  1183. grandpaQW['disappointment'] = 1
  1184. elseif grandpaQW['chore_feed_horse'] = 1 or grandpaQW['chore_feed_horse'] = 2:
  1185. grandpaQW['chore_feed_horse'] = 0
  1186. grandpaQW['disappointment'] = 1
  1187. elseif grandpaQW['chore_feed_cow'] = 1 or grandpaQW['chore_feed_cow'] = 2:
  1188. grandpaQW['chore_feed_cow'] = 0
  1189. grandpaQW['disappointment'] = 1
  1190. elseif grandpaQW['chore_clean_yard'] = 1 or grandpaQW['chore_clean_yard'] = 2:
  1191. grandpaQW['chore_clean_yard'] = 0
  1192. grandpaQW['disappointment'] = 1
  1193. elseif grandpaQW['chore_feed_boar'] = 1 or grandpaQW['chore_feed_boar'] = 2:
  1194. grandpaQW['chore_feed_boar'] = 0
  1195. grandpaQW['disappointment'] = 1
  1196. elseif grandpaQW['chore_bathe_horse'] = 1 or grandpaQW['chore_bathe_horse'] = 2:
  1197. grandpaQW['chore_bathe_horse'] = 0
  1198. grandpaQW['chore_bathe_horse_prog'] = 0
  1199. grandpaQW['disappointment'] = 1
  1200. elseif grandpaQW['chore_brush_horse'] = 1 or grandpaQW['chore_brush_horse'] = 2:
  1201. grandpaQW['chore_brush_horse'] = 0
  1202. grandpaQW['disappointment'] = 1
  1203. elseif grandpaQW['chore_lead_horse_to_field'] = 1 or grandpaQW['chore_lead_horse_to_field'] = 2:
  1204. grandpaQW['chore_lead_horse_to_field'] = 0
  1205. grandpaQW['disappointment'] = 1
  1206. elseif grandpaQW['chore_herd_cattle'] = 1 or grandpaQW['chore_herd_cattle'] = 2:
  1207. grandpaQW['chore_herd_cattle'] = 0
  1208. grandpaQW['disappointment'] = 1
  1209. elseif grandpaQW['chore_lead_cow_to_field'] = 1 or grandpaQW['chore_lead_cow_to_field'] = 2:
  1210. grandpaQW['chore_lead_cow_to_field'] = 0
  1211. grandpaQW['disappointment'] = 1
  1212. elseif grandpaQW['chore_gather_mushrooms'] = 1 or grandpaQW['chore_gather_mushrooms'] = 2:
  1213. grandpaQW['chore_gather_mushrooms'] = 0
  1214. grandpaQW['chore_mushroom_quantity'] = 0
  1215. grandpaQW['disappointment'] = 1
  1216. elseif grandpaQW['chore_gather_berries'] = 1 or grandpaQW['chore_gather_berries'] = 2:
  1217. grandpaQW['chore_gather_berries'] = 0
  1218. grandpaQW['chore_berry_quantity'] = 0
  1219. grandpaQW['disappointment'] = 1
  1220. elseif grandpaQW['chore_gather_both'] = 1 or grandpaQW['chore_gather_both'] = 2:
  1221. grandpaQW['chore_gather_both'] = 0
  1222. grandpaQW['chore_mushroom_quantity'] = 0
  1223. grandpaQW['chore_berry_quantity'] = 0
  1224. grandpaQW['disappointment'] = 1
  1225. elseif grandpaQW['chore_bale_hay'] = 1 or grandpaQW['chore_bale_hay'] = 2:
  1226. grandpaQW['chore_bale_hay'] = 0
  1227. grandpaQW['disappointment'] = 1
  1228. end
  1229. !! grandparents use root cellar
  1230. if boletus_stored > 0: boletus_stored -= rand(0,1)
  1231. if bilberry_stored > 0: bilberry_stored -= rand(0,1)
  1232. if boletus_stored < 0: boletus_stored = 0
  1233. if bilberry_stored < 0: bilberry_stored = 0
  1234. !! end of new grandparent chore stuff, for 0.8.0
  1235. if catout ! 0: catout = 0
  1236. if feedcat ! 0: feedcat = 0
  1237. loc_count = ARRSIZE('$CloLosLoc')
  1238. i = loc_count - 1
  1239. :loopCloLoc
  1240. $CloLoc = $CloLosLoc[i]
  1241. CloLostOn = CloLosDay[$CloLoc]
  1242. if CloLostOn + RAND(7,14) < daystart :
  1243. gs 'clothing', 'recover_lost_clothes', $CloLoc, 2
  1244. end
  1245. i -=1
  1246. if i > -1 :jump 'loopCloLoc'
  1247. if vidageday > 1080: vidageday = 1080
  1248. if blizoruk < 10: blizoruk -= 1
  1249. if blizoruk < 100: blizoruk -= rand(0,1)
  1250. if blizoruk < 0: blizoruk = 0
  1251. !!------------------------------------------------------------------------------------------------------------------------
  1252. !!C and b array cleaning
  1253. if InSleep = 1: gs 'npc','cleanarrays'
  1254. !!------------------------------------------------------------------------------------------------------------
  1255. !!-------------Family schedule variables----------------------------------------------------------------------
  1256. !! 23 = kitchen
  1257. !! 24 = Living room
  1258. !! 25 = bathroom
  1259. !! 26 = Svetas room
  1260. if week = 6:
  1261. momclean1 = rand(23,26)
  1262. else
  1263. momclean1 = rand(23,24)
  1264. end
  1265. if rand(0,1) = 0:
  1266. momclean2 = 23
  1267. else
  1268. momclean2 = 25
  1269. end
  1270. !!-------------Therapist Route schedule variables----------------------------------------------------------------------
  1271. !! 23 = kitchen
  1272. !! 24 = Living room
  1273. !! 25 = bathroom
  1274. !! 26 = Master''s room
  1275. if therapistWantsSlave > 0:
  1276. annaclean1 = rand(23,26)
  1277. end
  1278. !!------------------------------------------------------------------------------------------------------------
  1279. !!---------- School related schedule -------------------------------------------------------------------------
  1280. starlets_on = iif( ( (week = 5 and odd_week = 0) or (week = 1 or week = 3 or week >= 6) ) and natholi = 0,1,0)
  1281. 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)
  1282. if starlets['late_message'] = 1: starlets['late_message'] = 0
  1283. !!------------------------------------------------------------------------------------------------------------
  1284. !!---------- Starlet Content ---------------------------------------------------------------------------------
  1285. if AlbinaQW['StarletsJoined'] > 0 and AlbinaQW['StarletsShutDown'] = 0 and npc_pregtalk['A23'] = 0:
  1286. if starlets_practice = daystart - 1:
  1287. starlets_missed = 1
  1288. starlets_practice = 0
  1289. end
  1290. if starlets_on = 1: starlets_practice = daystart
  1291. end
  1292. if month = 9 and day = 16 and AlbinaQW['ParkRally'] = 0: AlbinaQW['ParkRally'] = 1
  1293. if month = 10 and day = 16 and AlbinaQW['ParkRally'] = 1: AlbinaQW['ParkRally'] = 2
  1294. 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
  1295. !!------------------------------------------------------------------------------------------------------------
  1296. !!-------------Music career related variables and calculations------------------------------------------------
  1297. !! How many hours a day can Sveta perform. It maxes out at 3.
  1298. !! Using the actual skill level, not the one modified by Attributes because that is more realistic for this.
  1299. ml_performance['max_perform_minutes'] = pcs_instrmusic + pcs_vokal
  1300. ml_performance['performed_minutes'] = 0
  1301. !! Checking for missed guitar lesson
  1302. if ml_guitarlesson['nextlesson'] < daystart and ml_guitarlesson['lessonday'] ! 8:
  1303. ml_guitarlesson['lessonday'] = 8
  1304. end
  1305. !! Calculating the fame increase from the uploaded songs and removing ones that do not effect fame anymore to keep the
  1306. !! data at a sane level
  1307. if ml_onlinesongcount > 0:
  1308. i = 0
  1309. j = -1
  1310. :looponlinesongs
  1311. !! this so every song counts only every 7 days and only for a limited number of weeks
  1312. if ml_onlinesong_freshness[i] > 0:
  1313. j += 1
  1314. ml_tempsong_freshness[j] = ml_onlinesong_sfreshness[i]
  1315. ml_tempsong_lastcalcday[j] = ml_onlinesong_lastcalcday[i]
  1316. ml_tempsong_hotcat[j] = ml_onlinesong_hotcat[i]
  1317. ml_tempsong_skilllevel[j] = ml_onlinesong_skilllevel[i]
  1318. ml_tempsong_uploaded[j] = ml_onlinesong_uploaded[i]
  1319. *nl
  1320. if ml_tempsong_lastcalcday[j] <= (daystart - 7) and ml_tempsong_uploaded = 1:
  1321. gs 'fame', 'city', 'music', rand(0, ml_tempsong_freshness[j]/100)
  1322. ml_tempsong_freshness[j] -= 10
  1323. ml_tempsong_lastcalcday[j] = daystart
  1324. end
  1325. end
  1326. i += 1
  1327. if i < ml_onlinesongcount: jump 'looponlinesongs'
  1328. killvar 'ml_onlinesong_freshness'
  1329. killvar 'ml_onlinesong_lastcalcday'
  1330. killvar 'ml_onlinesong_hotcat'
  1331. killvar 'ml_onlinesong_skilllevel'
  1332. killvar 'ml_onlinesong_uploaded'
  1333. i = 0
  1334. if j >= 0:
  1335. :looprebuildsongs
  1336. ml_onlinesong_freshness[i] = ml_tempsong_freshness[i]
  1337. ml_onlinesong_hotcat[i] = ml_tempsong_hotcat[i]
  1338. ml_onlinesong_lastcalcday[i] = ml_tempsong_lastcalcday[i]
  1339. ml_onlinesong_skilllevel[i] = ml_tempsong_skilllevel[i]
  1340. ml_onlinesong_uploaded[i] = ml_tempsong_uploaded[i]
  1341. i += 1
  1342. if i <= j: jump 'looprebuildsongs'
  1343. end
  1344. killvar 'ml_tempsong_freshness'
  1345. killvar 'ml_tempsong_lastcalcday'
  1346. killvar 'ml_tempsong_hotcat'
  1347. killvar 'ml_tempsong_skilllevel'
  1348. killvar 'ml_tempsong_uploaded'
  1349. end
  1350. !! Repertoire quality decay if no practice is done
  1351. if ml_performance['set_lastpracticeday'] ! (daystart-1): repertoire_quality -= 2
  1352. --- cikl ---------------------------------