3
0

cikl.qsrc 43 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376
  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 = day in this month
  16. !! week = day in the week. 1 == Monday
  17. !! hour = Full hour in this day
  18. day += 1
  19. week += 1
  20. hour -= 24
  21. if day > monthsEnd[month]:
  22. day -= monthsEnd[month]
  23. month += 1
  24. !! Changing the year at new year and making sure February have the correct number of days.
  25. if month > 12:
  26. month = 1
  27. year += 1
  28. if ((year mod 4 = 0) and (year mod 100 ! 0)) or (year mod 400 = 0):
  29. monthsend[2] = 29
  30. else
  31. monthsend[2] = 28
  32. end
  33. end
  34. !!MJ: Don''t think that one is needed. But it was in the original loop.
  35. if month < 1: month = 1
  36. $month = $monthName[month]
  37. !! new years party calculation
  38. temp = func('shortgs','dow',year,12,31)
  39. if temp < 6:
  40. nyp_day = 31
  41. elseif temp = 6:
  42. nyp_day = 30
  43. else
  44. nyp_day = 29
  45. end
  46. end
  47. !!MJ: Don''t think that one is needed. But it was here already.
  48. if day <= 0:day = 1
  49. ciklNewWeek = 0
  50. if week > 7:
  51. odd_week = iif(odd_week,0,1)
  52. ciklNewWeek = 1
  53. :loopweek
  54. week -= 7
  55. husbandrink = 0
  56. if military = 1:military = 0
  57. if week > 7:jump 'loopweek'
  58. end
  59. gs 'daystart'
  60. gs 'yearstart'
  61. gs 'emp_functions', 'evt_day_suffix'
  62. $stat_day_suffix = $date_suffix
  63. killvar '$date_suffix'
  64. !!----------------------------------------------------------------------------
  65. !!Fame call to update all the fame variables
  66. gs 'fame'
  67. !!Cycle stats for Contacts
  68. gs 'telefon', 'DailyStatRefresh', ciklNewWeek
  69. !!moving the porn schedule ahead a day, flaffing for missed shootings, if it even matters
  70. if (film > 0 or pornstack = 1) and pfilmNO = 0 and pfilmSTOP = 0:
  71. if pfilmday[0] > 0: gs 'pornschedule', 'pornmiss'
  72. gs 'pornschedule', 'schedule'
  73. end
  74. !! set the time when the SMS will be send
  75. gs 'booty_call', 'scheduler'
  76. booty_call_time['daystart'] = daystart
  77. !!------------------------------------------------------------------------------------------------------------
  78. !! Job Stuff
  79. !!------------------------------------------------------------------------------------------------------------
  80. !! masseuse paycheck
  81. if masseuse['weeks_pay'] > 0 and week = 5:masseuse['paycheck'] = 1
  82. if masseuse['jobtype'] > 0 and week = 5 and masseuse['weeks_pay'] > 0:
  83. masseuse['payday'] = 1
  84. end
  85. if week = 7 and masseuse['schedule_update'] ! daystart: gs 'masseuse_schedule','schedule_reset'
  86. !!modelling check
  87. if model_week ! (daystart - week) / 7 and model['status'] > 0: model_job_week = 0
  88. !!acting strings to set available jobs
  89. if casting = 1:
  90. acting_string1 = rand(10000000,199999999)
  91. acting_string2 = rand(10000000,199999999)
  92. end
  93. !! terminate tour gide job when its off season
  94. if emp_job_status[1] = 1 and month < 6 and month > 8:
  95. if work = 1: work = 0
  96. emp_job_status[1] = 4
  97. end
  98. dynamic $hypnoDaychange
  99. !!phone reset for bf
  100. ringA = 0
  101. ringB = 0
  102. ringC = 0
  103. !!Appearance Age
  104. vidageday -= 1
  105. if vidageday <= 0:
  106. vidageday = 360
  107. vidage += 1
  108. end
  109. !!Birthday
  110. age = year - ((pcs_dob - (pcs_dob mod 10000)) / 10000)
  111. if ((month * 100) + day) <= pcs_dob mod 10000: age -= 1
  112. if birthday = day and birthmonth = month and model['age'] > 0:model['age'] += 1
  113. if workDolgDay > 0: workDolgDay -= 1
  114. if QWdogreiqTimer > 0: QWdogreiqTimer -= 1
  115. if husband > 0: husbanday += 1
  116. if husband > 10 and husbanday > 0: husband -= 15
  117. if fingal > 0: fingal -= 1
  118. if husbandMark = 1 and husband <= 10:
  119. husbizvradd = 0
  120. husbharmin = 0
  121. husbandMark = 0
  122. husband = 0
  123. divorced += 1
  124. if KFOnLineReaga > 0:KFOnLineReaga -= 1
  125. '<b><font color="red">Your husband has filed for a divorce.</font></b>'
  126. end
  127. !! after having surgery you will be in recuperation for a few days
  128. if surgeryday ! '':
  129. if daystart - 7 <= surgeryday:
  130. dailyhealthimprov = (daystart - surgeryday) * 50
  131. pcs_health = dailyhealthimprov
  132. recuperation = 1
  133. else
  134. killvar 'recuperation'
  135. killvar 'dailyhealthimprov'
  136. end
  137. end
  138. !!Street events daily reset
  139. streetevent_hour = -2
  140. !!Clothing stock and price randomizers
  141. Clothingstock = rand (0,23)
  142. i = 1
  143. :loopprice
  144. Clothingstock[i] = rand (0,500)
  145. i += 1
  146. if i <= 147:jump 'loopprice'
  147. if dyneval ('RESULT = <<$coatworntype>>_coats_h[<<coatwornnumber>>]') <= 0: $coatworntype = 'none'
  148. !! Abortion and pregnancy recovery resets if finished
  149. if abortionbirthdate ! 0 and daystart - abortionbirthdate > 24: abortionbirthdate = 0
  150. if pregbirthdate ! 0 and daystart - pregbirthdate > 73: pregbirthdate = 0
  151. !!------------------------------------------------------------------------------------------------------------
  152. !! Nympho
  153. !!------------------------------------------------------------------------------------------------------------
  154. !! Reserved for nympho trait
  155. if nymphosex_flag = 1:
  156. end
  157. nymphosex_flag = 0
  158. !!------------------------------------------------------------------------------------------------------------
  159. !! Bimbo
  160. !!------------------------------------------------------------------------------------------------------------
  161. !!bimbo flag set in stat_display if bimbo clothing, shoes and makeup are worn at same time
  162. if succubusflag = 0 or CheatBimbo2 = 1:
  163. if cheatBimbo = 0 and bimbo_flag = 1:
  164. bimbo += 1
  165. end
  166. end
  167. !!Once bimbolevel is set to 1, must use the withdrawal in stat to return to 0
  168. if bimbo > 0 or bimbolevel > 0:
  169. if bimbo < 10:
  170. if bimbo_flag = 0:
  171. bimbo -= 2
  172. end
  173. elseif bimbo < 20:
  174. bimbolevel = 1
  175. elseif bimbo < 30:
  176. bimbolevel = 2
  177. else
  178. bimbolevel = 3
  179. end
  180. end
  181. if bimbo >= 40: bimbo = 40
  182. !!Bimbo levels. They use custom variables so they won''t permanently change character stats
  183. if bimbolevel = 0: supnatvnesh = 0 & bimbostupidity = 0
  184. if CheatBimbo2 = 0:
  185. if bimbolevel = 1: supnatvnesh = 2 & bimbostupidity = (pcs_intel / 6)
  186. if bimbolevel = 2: supnatvnesh = 2 & bimbostupidity = (pcs_intel / 4)
  187. if bimbolevel = 3: supnatvnesh = 4 & bimbostupidity = (pcs_intel / 3)
  188. elseif CheatBimbo2 = 1:
  189. if bimbolevel = 1: supnatvnesh = 2 & bimbostupidity = 0
  190. if bimbolevel = 2: supnatvnesh = 2 & bimbostupidity = 0
  191. if bimbolevel = 3: supnatvnesh = 4 & bimbostupidity = 0
  192. end
  193. !!A Succubus cannot be a Bimbo
  194. if succubusflag = 1 and CheatBimbo3 = 0:
  195. if bimbolevel > 0 and bimbo > 0: bimbowithdrawal = 40
  196. elseif bimbolevel >= 1:
  197. !!Checks flag and adds withdrawal if 0
  198. if bimbo_flag = 0:
  199. bimbowithdrawal += 1
  200. else
  201. bimbowithdrawal = 0
  202. end
  203. end
  204. if bimbo < 0: bimbo = 0
  205. !! flag reset
  206. bimbo_flag = 0
  207. !!------------------------------------------------------------------------------------------------------------
  208. !! Butt slut
  209. !!------------------------------------------------------------------------------------------------------------
  210. if orgasm_anal > orgasm_anal[1]:
  211. if pcs_traits['buttslut_lvl'] > 0: pcs_traits['buttslut_exp'] += orgasm_anal - orgasm_anal[1]
  212. else
  213. if pcs_traits['buttslut_exp'] > 1: pcs_traits['buttslut_exp'] -= 1
  214. end
  215. orgasm_anal[1] = orgasm_anal
  216. if orgasm_anal > 10 and pcs_traits['buttslut_lvl'] = 0: pcs_traits['buttslut_lvl'] = 1
  217. if pcs_traits['buttslut_exp'] >= 15 and pcs_traits['buttslut_lvl'] = 1: pcs_traits['buttslut_lvl'] = 2 & pcs_traits['buttslut_exp'] = 0
  218. if pcs_traits['buttslut_exp'] >= 50 and pcs_traits['buttslut_lvl'] = 2: pcs_traits['buttslut_lvl'] = 3
  219. if pcs_traits['buttslut_exp'] <= 0 and pcs_traits['buttslut_lvl'] = 3: pcs_traits['buttslut_lvl'] = 2 & pcs_traits['buttslut_exp'] = 0
  220. !!------------------------------------------------------------------------------------------------------------
  221. !! Exhibitionism
  222. !!------------------------------------------------------------------------------------------------------------
  223. if pcs_exhib > 0 or exhibitionist_lvl > 0:
  224. if pcs_exhib < 10:
  225. pcs_exhib -= 1
  226. elseif pcs_exhib < 50:
  227. exhibitionist_lvl = 1
  228. elseif pcs_exhib < 100 or exhibitionQW < 3:
  229. exhibitionist_lvl = 2
  230. elseif exhibitionQW > 2:
  231. exhibitionist_lvl = 3
  232. end
  233. end
  234. !!Inhibition increases from wearing revealing clothing
  235. if exhibition_outdoors > 0:
  236. if pcs_inhib > 90:
  237. exhibition_outdoors = exhibition_outdoors * 3
  238. elseif pcs_inhib > 75:
  239. exhibition_outdoors = exhibition_outdoors * 5 / 2
  240. elseif pcs_inhib > 60:
  241. exhibition_outdoors = exhibition_outdoors * 2
  242. elseif pcs_inhib > 30:
  243. exhibition_outdoors = exhibition_outdoors * 3 / 2
  244. end
  245. if exhibition_outdoors <= 5:
  246. inhib_exp += rand(3,6)
  247. elseif exhibition_outdoors <= 10:
  248. inhib_exp += rand(5,9)
  249. elseif exhibition_outdoors <= 15:
  250. inhib_exp += rand(7,12)
  251. elseif exhibition_outdoors <= 20:
  252. inhib_exp += rand(9,15)
  253. elseif exhibition_outdoors <= 25:
  254. inhib_exp += rand(12,20)
  255. elseif exhibition_outdoors <= 30:
  256. inhib_exp += rand(16,25)
  257. elseif exhibition_outdoors <= 35:
  258. inhib_exp += rand(20,30)
  259. elseif exhibition_outdoors <= 40:
  260. inhib_exp += rand(25,40)
  261. elseif exhibition_outdoors <= 50:
  262. inhib_exp += rand(35,50)
  263. elseif exhibition_outdoors <= 65:
  264. inhib_exp += rand(50,75)
  265. else
  266. inhib_exp += rand(70,100)
  267. end
  268. end
  269. exhibition_outdoors = 0
  270. !!------------------------------------------------------------------------------------------------------------
  271. !! Everything is new again
  272. !!------------------------------------------------------------------------------------------------------------
  273. !!Trait ''Everything is new again'', gained from the sg_tg start
  274. !! starts at 84 and decreases by 1 every day, when reaches 0 the trait will get disabled
  275. if pcs_traits['new_again'] > 0: pcs_traits['new_again'] -= 1
  276. !!------------------------------------------------------------------------------------------------------------
  277. !! Succubus Level & hunger calcs
  278. !!------------------------------------------------------------------------------------------------------------
  279. if succubusflag = 1: gs 'succubus','cikl'
  280. !!------------------------------------------------------------------------------------------------------------
  281. if defcurly = 0 and curly > 0:curly -= 1
  282. if defcurly = 1:
  283. if straight > 0: straight -= 1
  284. if straight = 0: curly = 2147483647
  285. end
  286. gs 'sweat', 'add', 2
  287. if pcs_tan > 0: pcs_tan -= 1
  288. if prezikmsg = 2: prezikmsg = 3
  289. gs 'fertility', 'daily_update'
  290. !!------------------------------------------------------------------------------------------------------------
  291. if pcs_breath = 1:pcs_breath = 0
  292. if cheatNoEat = 1 and dounspell = 1:fat += 15
  293. !!Trauma decay
  294. if mood_trauma > 0: mood_trauma -= 1
  295. !!STD check
  296. if SifacOnce = 1:Sifilis += 1
  297. if GerpesOnce = 1:Gerpes += 1
  298. if TriperOnce = 1:
  299. if Triper > 0:
  300. Triper += 1
  301. end
  302. if TriperOral > 0:
  303. TriperOral += 1
  304. end
  305. If TriperOral > 14 and TriperNapr = 0:
  306. if rand(TriperOral,100) > 80:
  307. TriperOral = 0
  308. if Triper = 0:TriperOnce = 0
  309. TriperOralSigns = 0
  310. end
  311. end
  312. end
  313. if KandidozOnce = 1:Kandidoz += 1
  314. Venera = 0
  315. if SifacOnce = 1: Venera += 1
  316. if GerpesOnce = 1: Venera += 1
  317. if TriperOnce = 1: Venera += 1
  318. !! Fail safe
  319. if ashrinkdays = 0: ashrinkdays = 6
  320. if vshrinkdays = 0: vshrinkdays = 6
  321. if pcs_ass > 1 and ashrink > 0 and analplugIN = 0:
  322. if daystart mod(ashrinkdays) = 0: pcs_ass -= ashrink
  323. if pcs_ass < 0: pcs_ass = 0
  324. end
  325. if pcs_vag > 10 and vshrink > 0:
  326. if daystart mod(vshrinkdays) = 0: pcs_vag -= vshrink
  327. if pcs_vag < 0: pcs_vag = 0
  328. end
  329. lipkoef -= rand(0,1)
  330. if lipkoef <= 0: lipkoef = 0
  331. if isprok = 1 or isprokp = 1:
  332. isprok_lastday = 1
  333. else
  334. isprok_lastday = 0
  335. end
  336. if Enable_auto_tampons = 0 and isprok = 1: isprok = 0 & 'You threw away your used tampon.'
  337. if Enable_auto_tampons = 0 and isprokp = 1:isprokp = 0 & 'You threw away your used sanitary pad.'
  338. if lactation['nipgrowth'] > 0:
  339. tmp = rand(0,2)
  340. pcs_nips -= tmp
  341. lactation['nipgrowth'] -= tmp
  342. killvar 'tmp'
  343. elseif lactation['nipgrowth'] < 0:
  344. lactation['nipgrowth'] = 0
  345. end
  346. if preg = 1:
  347. pregtime = pregchem / 24
  348. if pregtimes = 0:pregtimes = 1
  349. elseif preg = 2 and pregminut < totminut:
  350. if Enable_nogameover = 0 :
  351. cla
  352. *clr
  353. over = 4
  354. MSG '<center><b>A horrible pain shoots through your body.</b></center>'
  355. xgt 'gameover'
  356. exit
  357. else
  358. MSG'<font color=red><B>You should die for giving birth unprepared, but Cheat Mode keeps you Alive.</B></font>'
  359. pregminut = totminut + 1440
  360. end
  361. elseif preg = 0:
  362. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A14'
  363. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A16'
  364. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A23'
  365. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A28'
  366. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A29'
  367. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A33'
  368. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A34'
  369. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A69'
  370. gs 'shortgs', 'remove_array_element', 'npc_pregtalk','A131'
  371. !{killvar 'pregTalkFamily' -- Do not kill this (Abortion talk).}
  372. killvar 'pcs_pregtalk'
  373. killvar 'pregTalk'
  374. killvar 'pregtime'
  375. killvar 'knowpreg'
  376. killvar 'denypreg'
  377. killvar '$wombthfath'
  378. end
  379. !!------------------------------------------------------------------------------------------------------------
  380. !! Arousal
  381. !!------------------------------------------------------------------------------------------------------------
  382. if $start_subtype ! 'nomagic':
  383. if pcs_horny < 100:pcs_horny += pcs_vag
  384. else
  385. if stat['think_virgin'] = 1:
  386. razeba = 0
  387. if pcs_horny > 0 and pcs_horny <= 50:pcs_horny -= 10
  388. if pcs_horny > 50:pcs_horny -= 25
  389. elseif stat['think_virgin'] = 0:
  390. if pregtimes = 0:
  391. if age < 18:
  392. razeba = 1
  393. if pcs_horny > 0 and pcs_horny <= 50:pcs_horny -= 5
  394. if pcs_horny > 50 and pcs_horny < 80:pcs_horny -= 10
  395. if pcs_horny >= 80:pcs_horny -= 20
  396. elseif age >= 18 and age < 21:
  397. razeba = 2
  398. if pcs_horny > 0 and pcs_horny <= 50:pcs_horny -= 1
  399. if pcs_horny > 50 and pcs_horny < 80:pcs_horny -= 5
  400. if pcs_horny >= 80:pcs_horny -= 10
  401. elseif age >= 21 and age < 25:
  402. razeba = 3
  403. if pcs_horny > 0 and pcs_horny <= 50:pcs_horny += 1
  404. if pcs_horny > 50 and pcs_horny < 80:pcs_horny -= 1
  405. if pcs_horny >= 80:pcs_horny -= 5
  406. elseif age >= 25 and age < 30:
  407. razeba = 4
  408. if pcs_horny > 0 and pcs_horny <= 50:pcs_horny += 5
  409. if pcs_horny > 50 and pcs_horny < 80:pcs_horny += 1
  410. if pcs_horny >= 80:pcs_horny -= 5
  411. elseif age >= 30:
  412. razeba = 5
  413. if pcs_horny > 0 and pcs_horny <= 50:pcs_horny += 10
  414. if pcs_horny > 50 and pcs_horny < 80:pcs_horny += 5
  415. if pcs_horny >= 80:pcs_horny += 1
  416. end
  417. elseif pregtimes > 0:
  418. if preg = 0:
  419. razeba = 5
  420. if pcs_horny > 0 and pcs_horny <= 50:pcs_horny += 10
  421. if pcs_horny > 50 and pcs_horny < 80:pcs_horny += 5
  422. if pcs_horny >= 80:pcs_horny += 1
  423. elseif preg > 0:
  424. razeba = 6
  425. if pcs_horny < 100:pcs_horny += pregchem / 240
  426. end
  427. end
  428. end
  429. end
  430. if pcs_horny < 0:pcs_horny = 0
  431. !!------------------------------------------------------------------------------------------------------------
  432. !reset Natasha Belova''s clothes
  433. if NatbelQW['seethroughwearing'] = 1: NatbelQW['seethroughwearing'] = 0
  434. !!------------------------------------------------------------------------------------------------------------
  435. !counter for Dimka avoidance
  436. if dimaFilm = 1 and dimaRudeBlock = 0:
  437. nodimkaK += 1
  438. DimkaWarnedToday = 0
  439. end
  440. !!------------------------------------------------------------------------------------------------------------
  441. !!Fame degradation
  442. gs 'fame', 'deg'
  443. !!Traits
  444. gs 'traits', 'overnight'
  445. !!------------------------------------------------------------------------------------------------------------
  446. !! Clothing wear and tear
  447. gs 'starenie'
  448. !!cocaine reduction
  449. if nark > 60:
  450. nark = 60
  451. elseif nark > 30:
  452. nark -= 3
  453. elseif nark > 0:
  454. nark -= 1
  455. end
  456. if pregchem > 240:fat += 1
  457. !!------------------------------------------------------------------------------------------------------------
  458. !! Pain
  459. !!------------------------------------------------------------------------------------------------------------
  460. if pain['head'] > 0: pain['head'] -= max(rand(1,3), rand(pain['head'] /2))
  461. if pain['hair'] > 0: pain['hair'] -= max(rand(1,3), rand(pain['hair'] /2))
  462. if pain['ears'] > 0: pain['ears'] -= max(rand(1,3), rand(pain['ears'] /2))
  463. if pain['eyebrows'] > 0: pain['eyebrows'] -= max(rand(1,3), rand(pain['eyebrows'] /2))
  464. if pain['eyes'] > 0: pain['eyes'] -= max(rand(1,3), rand(pain['eyes'] /2))
  465. if pain['cheeks'] > 0: pain['cheeks'] -= max(rand(1,3), rand(pain['cheeks'] /2))
  466. if pain['nose'] > 0: pain['nose'] -= max(rand(1,3), rand(pain['nose'] /2))
  467. if pain['mouth'] > 0: pain['mouth'] -= max(rand(1,3), rand(pain['mouth'] /2))
  468. if pain['lips'] > 0: pain['lips'] -= max(rand(1,3), rand(pain['lips'] /2))
  469. if pain['tongue'] > 0: pain['tongue'] -= max(rand(1,3), rand(pain['tongue'] /2))
  470. if pain['throat'] > 0: pain['throat'] -= max(rand(1,3), rand(pain['throat'] /2))
  471. if pain['neck'] > 0: pain['neck'] -= max(rand(1,3), rand(pain['neck'] /2))
  472. if pain['back'] > 0: pain['back'] -= max(rand(1,3), rand(pain['back'] /2))
  473. if pain['asscheeks'] > 0:pain['asscheeks'] -= max(rand(1,3), rand(pain['asscheeks'] /2))
  474. if pain['asshole'] > 0: pain['asshole'] -= max(rand(1,3), rand(pain['asshole'] /2))
  475. if pain['hips'] > 0: pain['hips'] -= max(rand(1,3), rand(pain['hips'] /2))
  476. if pain['thighs'] > 0: pain['thighs'] -= max(rand(1,3), rand(pain['thighs'] /2))
  477. if pain['legL'] > 0: pain['legL'] -= max(rand(1,3), rand(pain['legL'] /2))
  478. if pain['legR'] > 0: pain['legR'] -= max(rand(1,3), rand(pain['legR'] /2))
  479. if pain['feet'] > 0: pain['feet'] -= max(rand(1,3), rand(pain['feet'] /2))
  480. if pain['toes'] > 0: pain['toes'] -= max(rand(1,3), rand(pain['toes'] /2))
  481. if pain['shoulders'] > 0:pain['shoulders'] -= max(rand(1,3), rand(pain['shoulders'] /2))
  482. if pain['armL'] > 0: pain['armL'] -= max(rand(1,3), rand(pain['armL'] /2))
  483. if pain['armR'] > 0: pain['armR'] -= max(rand(1,3), rand(pain['armR'] /2))
  484. if pain['hands'] > 0: pain['hands'] -= max(rand(1,3), rand(pain['hands'] /2))
  485. if pain['fingers'] > 0: pain['fingers'] -= max(rand(1,3), rand(pain['fingers'] /2))
  486. if pain['chest'] > 0: pain['chest'] -= max(rand(1,3), rand(pain['chest'] /2))
  487. if pain['breasts'] > 0: pain['breasts'] -= max(rand(1,3), rand(pain['breasts'] /2))
  488. if pain['nipples'] > 0: pain['nipples'] -= max(rand(1,3), rand(pain['nipples'] /2))
  489. if pain['ribs'] > 0: pain['ribs'] -= max(rand(1,3), rand(pain['ribs'] /2))
  490. if pain['tummy'] > 0: pain['tummy'] -= max(rand(1,3), rand(pain['tummy'] /2))
  491. if pain['pubic'] > 0: pain['pubic'] -= max(rand(1,3), rand(pain['pubic'] /2))
  492. if pain['vaginal'] > 0: pain['vaginal'] -= max(rand(1,3), rand(pain['vaginal'] /2))
  493. if pain['labia'] > 0: pain['labia'] -= max(rand(1,3), rand(pain['labia'] /2))
  494. if pain['clitoris'] > 0: pain['clitoris'] -= max(rand(1,3), rand(pain['clitoris'] /2))
  495. if pain['urethra'] > 0: pain['urethra'] -= max(rand(1,3), rand(pain['urethra'] /2))
  496. if pain['cervix'] > 0: pain['cervix'] -= max(rand(1,3), rand(pain['cervix'] /2))
  497. if painpub = 2:
  498. if painpubday + 5 < daystart:
  499. $painpub = 'Your vulva is painfully sore.'
  500. painpub = 1
  501. painpubday = daystart
  502. elseif painpubday + 5 >= daystart:
  503. $painpub = 'Your vulva is painfully sore.'
  504. end
  505. elseif painpub = 1:
  506. if painpubday + 5 < daystart:
  507. $painpub = ''
  508. painpub = 0
  509. painpubday = daystart
  510. elseif painpubday + 5 >= daystart:
  511. $painpub = 'Your vulva is a little sore.'
  512. end
  513. end
  514. prezikProver += 1
  515. if pirs_pain_ton > 0:pirs_pain_ton -= 1
  516. if shorthair = 1:
  517. shorthairday += 1
  518. if shorthairday >= 45:shorthairday = 0 & shorthair = 0
  519. end
  520. !!------------------------------------------------------------------------------------------------------------
  521. !!Resetting the counter for relationship modifications that are limited in how many time a day they can be applied.
  522. killvar 'npc_rel_daily'
  523. !!Resetting the counters for npc reactions after certain time periods have passed.
  524. gs 'npc_reactions', 'cikl'
  525. !! Setting the day for nerd game nights
  526. gs 'nerd_game_night', 'cikl'
  527. !!Keeping Christina hating Sveta
  528. gs 'Zvereva_events', 'cikl'
  529. !!Albina hates gopniks while at school
  530. if SchoolAtestat = 0 and grupTipe = 4 and AlbinaQW['Friends'] ! 2 and npc_rel['A23'] > 20:
  531. gs 'npc_relationship', 'set', 'A23', 20
  532. end
  533. !!if Vitek''s ex he never forgives her
  534. if kotovLoveQW = -1:
  535. gs 'npc_relationship', 'set', 'A9', 0
  536. end
  537. !!Updating Katja''s variables.
  538. gs 'katja_procedural', 'cikl'
  539. if npc_rel['A69'] > 60 and rand(0,3) = 0:npc_rel['A69'] -= 1
  540. !!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.
  541. gs 'soniadisco', 'cikl'
  542. dmishaevent = 0
  543. if Gspravka <= 0 and GspravkaT = 1:GspravkaT = 0 & Gspravka = 0
  544. if GspravkaT = 1:Gspravka -= 1
  545. if BurgerQW['IlyQW'] = 2 and BurgerQW['IlyQWPoliceDayCount'] > 0 and BurgerQW['IlyQWPoliceDayCount'] < 30:
  546. BurgerQW['IlyQWPoliceDayCount'] += 1
  547. elseif BurgerQW['IlyQW'] = 2 and BurgerQW['IlyQWPoliceDayCount'] = 30:
  548. BurgerQW['IlyQW'] = 3
  549. end
  550. !!Remove degradation for inhibition
  551. inhib_flr = inhib_lvl
  552. gs 'stat_sklattrib', 'daycall'
  553. !Update body measurements and base appearnce
  554. gs 'body', 'DailyUpdate'
  555. if husband > 0 and husbandrink ! 11:husbandrink = rand(0, 10)
  556. !!Pussy_Kats job settings
  557. inWorkYoungShop = 0
  558. if week = 1 and young_shop_work = 100: young_shop_work = 1
  559. if week = 5 and young_shop_work1 = 100: young_shop_work1 = 1
  560. if week = 1 and young_shop_work2 = 100: young_shop_work2 = 1
  561. husbandsexday = 0
  562. borsexkol = 0
  563. givisexday = 0
  564. if shantsr > 0:
  565. pay = shantsr * 5000
  566. karta += pay
  567. shantsr = 0
  568. end
  569. if shantbog > 0:
  570. :shantftb
  571. shantftbgrand = rand(0, 10)
  572. if shantftbgrand > 2:
  573. shantpopala += 1
  574. shantbog -= 1
  575. if shantbog > 0:jump 'shantftb'
  576. elseif shantftbgrand <= 2:
  577. karta += 30000
  578. shantbog -= 1
  579. if shantbog > 0:jump 'shantftb'
  580. end
  581. end
  582. petersexday = 0
  583. if cheatKlisma = 0:
  584. klismaday = daystart
  585. klismaday1 = 1
  586. else
  587. klismaday1 = 0
  588. end
  589. !!ugly duckling start becoming a swan
  590. if uglyduck_flag = 1 and hotcat >= 5:
  591. killvar 'uglyduck_flag'
  592. gs 'npc_relationship', 'socialgroup_setting_boys', 10, 10, 10, 10, 0, 0
  593. grupvalue[1] += 100
  594. old_grupvalue[1] += 100
  595. end
  596. !! Resetting relationships that go over the max
  597. :toptemprel
  598. if temprel < aarraynumber:
  599. temprel +=1
  600. if npc_rel['A'+'<<temprel>>'] > 100:npc_rel['A'+'<<temprel>>'] = 100
  601. jump 'toptemprel'
  602. end
  603. killvar 'temprel'
  604. gs 'bank', 'cikl'
  605. killvar 'holyday'
  606. killvar 'kanikuli'
  607. killvar 'pcs_ate'
  608. killvar 'pcs_drank'
  609. !! 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
  610. !!sisboyparty
  611. !!-1 - don''t go to the party
  612. !!0 - don''t know about parties
  613. !!1 - knows about the parties
  614. !!2 - agreed to go to the party
  615. !!3 - Missed the party
  616. !!Suspension ends
  617. if suspended['day'] = daystart: suspended['on'] = 0
  618. if mid($start_type, 1, 2) = 'sg':
  619. !!Party refresh if you didn''t see sis
  620. if week = 1 and sisboyparty ! 2:
  621. if sisterQW['party'] = -1: sisterQW['party'] = 0
  622. if sisboypartyQW >= 2 and sisboyparty > 0:
  623. sisboyparty_day = daystart + rand(3,5)
  624. end
  625. end
  626. if sisboyparty = 2 and sisboyparty_day + 1 < daystart: sisboyparty = 3
  627. if SchoolAtestat = 0 and SchoolBlock = 0:
  628. if month = 12 and day > 25:
  629. if day < 31:
  630. $holyday = '<b>Winter Break in <<32-day>> days.</b>'
  631. else
  632. $holyday = '<b>Winter Break starts tomorrow.</b>'
  633. end
  634. elseif month = 1 and day <= 15:
  635. kanikuli = 2
  636. if day < 13:
  637. $holyday = '<b>Winter Break.</b>'
  638. elseif day < 15:
  639. $holyday = '<b>Winter Break ends in <<16-day>> days.</b>'
  640. else
  641. $holyday = '<b>Last day of Winter Break.</b>'
  642. end
  643. elseif month = 3 and day > 13:
  644. if day < 19:
  645. $holyday = '<b>Spring Break starts in <<20-day>> days.</b>'
  646. elseif day = 19:
  647. $holyday = '<b>Spring Break starts tomorrow.</b>'
  648. elseif day >= 20 and day <= 26:
  649. kanikuli = 3
  650. if day < 24:
  651. $holyday = '<b>Spring Break.</b>'
  652. elseif day < 26:
  653. $holyday = '<b>Spring Break ends in <<27-day>> days.</b>'
  654. else
  655. $holyday = '<b>Last day of Spring Break.</b>'
  656. end
  657. end
  658. elseif month = 5:
  659. if year = 2017:
  660. if day = 26:
  661. kanikuli = 6
  662. SchoolAtestat = -1
  663. lernHome = 0
  664. $holyday = '<b>Your graduation is today. Be there by 8:00.</b>'
  665. elseif day = 25:
  666. $holyday = '<b>Your graduation is tomorrow. Be there by 8:00.</b>'
  667. elseif day >= 19:
  668. $holyday = '<b>Your graduation is in <<26-day>> days.</b>'
  669. end
  670. elseif day >= 25:
  671. if day = 31:
  672. $holyday = '<b>Summer Break starts tomorrow.</b>'
  673. else
  674. $holyday = '<b>Summer Break starts in <<32-day>> days.</b>'
  675. end
  676. end
  677. elseif month = 6 or month = 7 or month = 8:
  678. kanikuli = 4
  679. if month = 8 and day >= 25:
  680. if day = 31:
  681. $holyday = '<b>Last day of Summer Break.</b>'
  682. else
  683. $holyday = '<b>Summer Break ends in <<32-day>> days.</b>'
  684. end
  685. else
  686. $holyday = '<b>Summer Break.</b>'
  687. end
  688. !! 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.'
  689. killvar 'first_time_outside_in_cold_weather'
  690. killvar 'first_time_doing_basketball'
  691. killvar 'first_time_spring_football_match'
  692. !! end inc
  693. elseif month = 10 and day >= 29:
  694. $holyday = '<b>Autumn Break starts in <<35-day>> days.</b>'
  695. elseif month = 11:
  696. if day < 3:
  697. $holyday = '<b>Autumn Break starts in <<4-day>> days.</b>'
  698. elseif day = 3:
  699. $holyday = '<b>Autumn Break starts tomorrow.</b>'
  700. elseif day < 6:
  701. kanikuli = 1
  702. $holyday = '<b>Autumn Break.</b>'
  703. elseif day < 11:
  704. kanikuli = 1
  705. $holyday = '<b>Autumn Break ends in <<12-day>> days.</b>'
  706. elseif day = 11:
  707. kanikuli = 1
  708. $holyday = '<b>Last day of Autumn Break.</b>'
  709. end
  710. end
  711. if isSchoolHoliday = 0 and week < 6:
  712. if week = 1:
  713. !!The start and end values for i have to be changed if more female schoolgirl npcs are added to the game
  714. i = 11
  715. :hotcat_calc_jump
  716. i += 1
  717. if hotcat_rating['A<<i>>'] = 0 and i < 145: jump 'hotcat_calc_jump'
  718. switch_rand = rand(1,100)
  719. if hotcat_movement['A<<i>>'] = 0 and switch_rand < 21:
  720. hotcat_rating['A<<i>>'] -= 1
  721. hotcat_movement['A<<i>>'] -= 1
  722. elseif hotcat_movement['A<<i>>'] = 0 and switch_rand > 80:
  723. hotcat_rating['A<<i>>'] += 1
  724. hotcat_movement['A<<i>>'] += 1
  725. elseif hotcat_movement['A<<i>>'] = 1 and switch_rand > 40:
  726. hotcat_rating['A<<i>>'] -= 1
  727. hotcat_movement['A<<i>>'] -= 1
  728. elseif hotcat_movement['A<<i>>'] = -1 and switch_rand > 40:
  729. hotcat_rating['A<<i>>'] += 1
  730. hotcat_movement['A<<i>>'] += 1
  731. end
  732. if i < 145: jump 'hotcat_calc_jump'
  733. killvar 'i'
  734. killvar 'switch_rand'
  735. end
  736. !! Resetting the late flag
  737. if late = 1: late = 0
  738. end
  739. !!Social grup changes
  740. !!Change from relatonship with other students.
  741. gs 'gschool_socialchg', 'group_student_rel_change'
  742. !!Decay for the school groups
  743. if grupvalue[1] > 0:
  744. grupvalue[1] -= rand(0,1)
  745. else
  746. grupvalue[1] = 0
  747. end
  748. if grupvalue[2] > 0:
  749. grupvalue[2] -= rand(0,1)
  750. else
  751. grupvalue[2] = 0
  752. end
  753. if grupvalue[3] > 0:
  754. grupvalue[3] -= rand(0,1)
  755. else
  756. grupvalue[3] = 0
  757. end
  758. if grupvalue[4] > 0:
  759. grupvalue[4] -= rand(0,1)
  760. else
  761. grupvalue[4] = 0
  762. end
  763. !!Maximum increase for grupvalues is 10 and max decay is 30
  764. if oldgrupvalue_set = 0:
  765. oldgrupvalue_set = 1
  766. old_grupvalue[1] = grupvalue[1]
  767. old_grupvalue[2] = grupvalue[2]
  768. old_grupvalue[3] = grupvalue[3]
  769. old_grupvalue[4] = grupvalue[4]
  770. else
  771. if old_grupvalue[1] + 10 < grupvalue[1]: grupvalue[1] = old_grupvalue[1] + 10
  772. if old_grupvalue[2] + 10 < grupvalue[2]: grupvalue[2] = old_grupvalue[2] + 10
  773. if old_grupvalue[3] + 10 < grupvalue[3]: grupvalue[3] = old_grupvalue[3] + 10
  774. if old_grupvalue[4] + 10 < grupvalue[4]: grupvalue[4] = old_grupvalue[4] + 10
  775. if old_grupvalue[1] - 30 > grupvalue[1]: grupvalue[1] = old_grupvalue[1] - 30
  776. if old_grupvalue[2] - 30 > grupvalue[2]: grupvalue[2] = old_grupvalue[2] - 30
  777. if old_grupvalue[3] - 30 > grupvalue[3]: grupvalue[3] = old_grupvalue[3] - 30
  778. if old_grupvalue[4] - 30 > grupvalue[4]: grupvalue[4] = old_grupvalue[4] - 30
  779. end
  780. !!Limit to max school group values
  781. if grupvalue[1] > 1000: grupvalue[1] = 1000
  782. if grupvalue[2] > 1000: grupvalue[2] = 1000
  783. if grupvalue[3] > 1000: grupvalue[3] = 1000
  784. if grupvalue[4] > 1000: grupvalue[4] = 1000
  785. old_grupvalue[1] = grupvalue[1]
  786. old_grupvalue[2] = grupvalue[2]
  787. old_grupvalue[3] = grupvalue[3]
  788. old_grupvalue[4] = grupvalue[4]
  789. elseif SchoolAtestat = -1:
  790. if func('homes_properties', 'has_access', 'parents_home') = 0:
  791. $holyday = '<b>You missed your graduation. You could pick up your diploma at the school.</b>'
  792. else
  793. $holyday = '<b>You missed your graduation. Maybe your mother picked up your diploma.</b>'
  794. end
  795. end
  796. !!Brother''s dick growth as he gets older
  797. !Commented out till some future time
  798. !if kolka_dick_day + 30 < daystart and npc_dick['A34'] < 26:
  799. ! kolka_dick_day = daystart
  800. ! npc_dick['A34'] += 1
  801. !end
  802. !if npc_dick['A34'] < 20 and npc_dick['A34'] > 16:
  803. ! $npc_thdick['A34'] = 'well proportioned'
  804. !elseif npc_dick['A34'] >= 20 and npc_dick['A34'] <= 26:
  805. ! $npc_thdick['A34'] = 'thick'
  806. !end
  807. !! Calcualting the increase/decreas of the grade each week.
  808. gs 'gschool', 'weekly grade update'
  809. end
  810. killvar 'natholi'
  811. if month = 1 and day >= 1 and day <= 8:
  812. $natholi = 'New Year holidays'
  813. natholi = 1
  814. if day = 1:$natholi += ', New Year'
  815. if day = 7:$natholi += ', Christmas'
  816. end
  817. if month = 2 and day = 23:$natholi = 'Defender of Fatherland Day' & natholi = 1
  818. if month = 3 and day = 8:$natholi = 'Women''s Day' & natholi = 1
  819. if month = 5 and day = 1:$natholi = 'Spring and Labor Day' & natholi = 1
  820. if month = 5 and day = 2:$natholi = 'National holiday' & natholi = 1
  821. if month = 5 and day = 9:$natholi = 'Victory Day' & natholi = 1
  822. if month = 6 and day = 12:$natholi = 'Russia Day' & natholi = 1
  823. if month = 6 and day = 13:$natholi = 'National holiday' & natholi = 1
  824. if month = 11 and day = 4:$natholi = 'Unity Day' & natholi = 1
  825. if natholi = 1:
  826. if $holyday ! '': $holyday += '<br>'
  827. $holyday += $natholi
  828. end
  829. !! Anushka''s band is on tour from Thursday 01-06 until Saturday 19-08. Blame Nutluck
  830. if year = 2017 and ( month = 6 or month = 7 or (month = 8 and day < 19) ):
  831. gopnikbandQW['on_tour'] = 1
  832. else
  833. gopnikbandQW['on_tour'] = 0
  834. end
  835. !!------------------------------------------------------------------------------------------------------------------------
  836. !!Setting the weeks in the university semester and making sure that the gades are calculated at the right times
  837. gs 'uni_lessons', 'cikl'
  838. !!------------------------------------------------------------------------------------------------------------------------
  839. !!resetting moisturizer so it can be used in the morning regardless
  840. moisturiser_time = totminut
  841. !!same with chaffing cream
  842. mosal_time = totminut
  843. !!resetting last_pee to counteract time cheat
  844. !!also, the first thing you do in the morning is visiting your porcelain friend, no?
  845. killvar 'last_pee'
  846. if aphrodisiac_overdose = 1: aphrodisiac_overdose = 0
  847. if aphrodisiac_timer ! 0: aphrodisiac_timer = 0
  848. if mentats_dose = 1:
  849. mentats_dose = 0
  850. elseif mentats_dose > 1:
  851. pain['head'] += 20 * mentats_dose
  852. mentats_dose = 0
  853. end
  854. gs 'gaddvor','cikl'
  855. loc_count = ARRSIZE('$CloLosLoc')
  856. i = loc_count - 1
  857. :loopCloLoc
  858. $CloLoc = $CloLosLoc[i]
  859. CloLostOn = CloLosDay[$CloLoc]
  860. if CloLostOn + RAND(7,14) < daystart :
  861. gs 'clothing', 'recover_lost_clothes', $CloLoc, 2
  862. end
  863. i -=1
  864. if i > -1 :jump 'loopCloLoc'
  865. if vidageday > 1080: vidageday = 1080
  866. if blizoruk < 10: blizoruk -= 1
  867. if blizoruk < 100: blizoruk -= rand(0,1)
  868. if blizoruk < 0: blizoruk = 0
  869. !!------------------------------------------------------------------------------------------------------------------------
  870. !!C and B array cleaning
  871. if insleep = 1: gs 'npc','cleanarrays'
  872. !!------------------------------------------------------------------------------------------------------------
  873. !!-------------Therapist Route schedule variables----------------------------------------------------------------------
  874. !! 23 = kitchen
  875. !! 24 = Living room
  876. !! 25 = bathroom
  877. !! 26 = Master''s room
  878. if therapistWantsSlave > 0:
  879. annaclean1 = rand(23,26)
  880. end
  881. killvar 'therapistFuckedPussyScene'
  882. !!------------------------------------------------------------------------------------------------------------
  883. !!-------------Family Dog----------------------------------------------------------------------
  884. if $status['dog'] ! 'blocked' and rex['owned'] = 1:
  885. rex['timer_day'] = daystart
  886. !!Daily decay
  887. rex['relationship'] -= 1
  888. !!Chores
  889. if cheat['dog_rel'] = 0 and rex['gadukino_day'] ! daystart:
  890. npc_rel['A29'] -= iif(rex['count_walk'] + rex['count_feed'] = 0, -1, (rex['count_walk'] + rex['count_feed']))
  891. rex['relationship'] -= iif(rex['count_walk'] + rex['count_feed'] = 0, -1, (rex['count_walk'] + rex['count_feed']))
  892. end
  893. rex['count_run'] = 0
  894. rex['count_walk'] = rex['count_walk_base']
  895. rex['timer_walk'] = 0
  896. rex['count_feed'] = rex['count_feed_base']
  897. rex['timer_feed'] = 0
  898. if week = 1:
  899. if cheat['dog_rel'] = 0:
  900. npc_rel['A29'] -= rex['count_bath']
  901. rex['relationship'] -= (rex['count_bath'] * 5)
  902. end
  903. rex['count_bath'] = rex['count_bath_base']
  904. end
  905. end
  906. !!------------------------------------------------------------------------------------------------------------
  907. !!---------- School related schedule -------------------------------------------------------------------------
  908. starlets_on = iif( ( (week = 5 and odd_week = 0) or (week = 1 or week = 3 or week >= 6) ) and natholi = 0,1,0)
  909. 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)
  910. if starlets['late_message'] = 1: starlets['late_message'] = 0
  911. !!------------------------------------------------------------------------------------------------------------
  912. !!---------- Starlet Content ---------------------------------------------------------------------------------
  913. if AlbinaQW['StarletsJoined'] > 0 and AlbinaQW['StarletsShutDown'] = 0 and npc_pregtalk['A23'] = 0:
  914. if starlets_practice = daystart - 1:
  915. starlets_missed = 1
  916. starlets_practice = 0
  917. end
  918. if starlets_on = 1: starlets_practice = daystart
  919. end
  920. if month = 9 and day = 16 and AlbinaQW['ParkRally'] = 0: AlbinaQW['ParkRally'] = 1
  921. if month = 10 and day = 16 and AlbinaQW['ParkRally'] = 1: AlbinaQW['ParkRally'] = 2
  922. 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
  923. !!------------------------------------------------------------------------------------------------------------
  924. !!-------------Music career related variables and calculations------------------------------------------------
  925. !! Setting Del Parco initial variables
  926. if daystart < 2:
  927. ml_delparcoQW['Stage'] = 0
  928. ml_delparcoQW['Zariyah Trust'] = 50
  929. end
  930. !! How many hours a day can Sveta perform. It maxes out at 3.
  931. !! Using the actual skill level, not the one modified by Attributes because that is more realistic for this.
  932. ml_performance['max_perform_minutes'] = pcs_instrmusic + pcs_vokal
  933. ml_performance['performed_minutes'] = 0
  934. !! Checking for missed guitar lesson
  935. if ml_guitarlesson['nextlesson'] < daystart and ml_guitarlesson['lessonday'] ! 8:
  936. ml_guitarlesson['lessonday'] = 8
  937. end
  938. !! Calculating the fame increase from the uploaded songs and removing ones that do not effect fame anymore to keep the
  939. !! data at a sane level
  940. if ml_onlinesongcount > 0:
  941. i = 0
  942. j = -1
  943. :looponlinesongs
  944. !! this so every song counts only every 7 days and only for a limited number of weeks
  945. if ml_onlinesong_freshness[i] > 0:
  946. j += 1
  947. ml_tempsong_freshness[j] = ml_onlinesong_freshness[i]
  948. ml_tempsong_lastcalcday[j] = ml_onlinesong_lastcalcday[i]
  949. ml_tempsong_hotcat[j] = ml_onlinesong_hotcat[i]
  950. ml_tempsong_skilllevel[j] = ml_onlinesong_skilllevel[i]
  951. ml_tempsong_uploaded[j] = ml_onlinesong_uploaded[i]
  952. if ml_tempsong_lastcalcday[j] <= (daystart - 7) and ml_tempsong_uploaded = 1:
  953. gs 'fame', 'city', 'music', rand(0, ml_tempsong_freshness[j]/100)
  954. ml_tempsong_freshness[j] -= 10
  955. ml_tempsong_lastcalcday[j] = daystart
  956. end
  957. end
  958. i += 1
  959. if i < ml_onlinesongcount: jump 'looponlinesongs'
  960. killvar 'ml_onlinesong_freshness'
  961. killvar 'ml_onlinesong_lastcalcday'
  962. killvar 'ml_onlinesong_hotcat'
  963. killvar 'ml_onlinesong_skilllevel'
  964. killvar 'ml_onlinesong_uploaded'
  965. i = 0
  966. if j >= 0:
  967. :looprebuildsongs
  968. ml_onlinesong_freshness[i] = ml_tempsong_freshness[i]
  969. ml_onlinesong_hotcat[i] = ml_tempsong_hotcat[i]
  970. ml_onlinesong_lastcalcday[i] = ml_tempsong_lastcalcday[i]
  971. ml_onlinesong_skilllevel[i] = ml_tempsong_skilllevel[i]
  972. ml_onlinesong_uploaded[i] = ml_tempsong_uploaded[i]
  973. i += 1
  974. if i <= j: jump 'looprebuildsongs'
  975. end
  976. killvar 'ml_tempsong_freshness'
  977. killvar 'ml_tempsong_lastcalcday'
  978. killvar 'ml_tempsong_hotcat'
  979. killvar 'ml_tempsong_skilllevel'
  980. killvar 'ml_tempsong_uploaded'
  981. end
  982. !! Repertoire quality decay if no practice is done
  983. if ml_performance['set_lastpracticeday'] ! (daystart-1): repertoire_quality -= 2
  984. !!------------- Prostitution - WLife integration related stuff ------------------------------------------------
  985. !! Check if people will start to seek Sveta randomly for services, based on her reputation
  986. gs 'prostitution_functions', 'check_for_wlife'
  987. gs 'prostitution_functions', 'update_prostitution_locations'
  988. prostitute['earnings_day'] = 0
  989. prostitute['customer_day'] = 0
  990. !!------------- Property and Home Related daily, nonfinancial checks ------------------------------------------
  991. !! Moves time for the rented properties
  992. gs 'homes_properties', 'progress_property_rent_time'
  993. !!------------- Check for Daily Events for event generator, sets evt_chk variable ------------------------------------------
  994. gs 'emp_functions', 'evt_day_chk'
  995. !!----------------------------------------------------------------------
  996. !!---------------------------- WEEKLY RESET ----------------------------
  997. !!----------------------------------------------------------------------
  998. if week = 1:
  999. !! Reset used car dealership offers
  1000. killvar 'used_car'
  1001. !! Reset therapist schedule
  1002. killvar 'therapist_weekly_block'
  1003. end
  1004. !!------------- Advance book loan debt ------------------------------------------
  1005. if $lib_book_loaned ! '': lib_debt += 50
  1006. !!------------- Preliminary npc_uni_eduTipe ------------------------------------------
  1007. !!
  1008. !!npc_uni_eduType = '', 'professor', 'teaching_studies', 'business_studies', 'science_studies', 'fashion_studies'
  1009. !! 'nursing_studies', 'psychology_studies', 'programming_studies', 'other_studies'
  1010. !!
  1011. !!Will eventually need to be moved to the npcstatic and npcstaticdefault files for eternal uni npcs
  1012. !!To specific event checks for pav_uni npcs
  1013. !!And to the various starts.
  1014. !!This should be migrated to npcstaticx and eventually schedule
  1015. if set_npc_uni_eduType = 0:
  1016. set_npc_uni_eduType = 1
  1017. npc_uni_active['A77'] = 1
  1018. npc_uni_active['A82'] = 1
  1019. npc_uni_active['A83'] = 1
  1020. npc_uni_active['A84'] = 1
  1021. npc_uni_active['A209'] = 1
  1022. npc_uni_active['A220'] = 1
  1023. npc_uni_active['A242'] = 1
  1024. npc_uni_active['A243'] = 1
  1025. npc_uni_active['A244'] = 1
  1026. npc_uni_active['A245'] = 1
  1027. npc_uni_active['A246'] = 1
  1028. npc_uni_active['A247'] = 1
  1029. end
  1030. !! This should eventually be migrated to schedule
  1031. if set_pav_npc_uni_active = 0 and yearstart = 2 and month >= 8 and day >= 28:
  1032. set_pav_npc_uni_active = 1
  1033. npc_uni_active['A1'] = 1
  1034. npc_uni_active['A2'] = 1
  1035. npc_uni_active['A4'] = 1
  1036. npc_uni_active['A7'] = 1
  1037. npc_uni_active['A12'] = 1
  1038. npc_uni_active['A13'] = 1
  1039. npc_uni_active['A14'] = 1
  1040. npc_uni_active['A15'] = 1
  1041. npc_uni_active['A16'] = 1
  1042. npc_uni_active['A17'] = 1
  1043. npc_uni_active['A18'] = 1
  1044. npc_uni_active['A19'] = 1
  1045. npc_uni_active['A22'] = 1
  1046. npc_uni_active['A23'] = 1
  1047. npc_uni_active['A25'] = 1
  1048. npc_uni_active['A139'] = 1
  1049. npc_uni_active['A140'] = 1
  1050. npc_uni_active['A142'] = 1
  1051. npc_uni_active['A144'] = 1
  1052. npc_uni_active['A146'] = 1
  1053. npc_uni_active['A147'] = 1
  1054. npc_uni_active['A149'] = 1
  1055. npc_uni_active['A152'] = 1
  1056. npc_uni_active['A153'] = 1
  1057. npc_uni_active['A155'] = 1
  1058. npc_uni_active['A159'] = 1
  1059. npc_uni_active['A165'] = 1
  1060. end
  1061. !!------------- Advance will counter ------------------------------------------
  1062. if will_counter >= 20: will_counter -= 20 & willpowermax += 1
  1063. !!-----------------webcam follower loss due to inactivity ------------------------------------------
  1064. if camwhore = 1:
  1065. if cam_daystart < daystart:
  1066. engagementFactor = 1 + (CamBonus / 100)
  1067. popularityFactor = webpopular / 1000
  1068. if regviewReset < 3:
  1069. if regview >= 500:
  1070. FollowersLost = rand(regview / (100 * engagementFactor), regview / (50 * engagementFactor)) + popularityFactor
  1071. else
  1072. FollowersLost = rand(1, 3) + popularityFactor
  1073. end
  1074. cam_daystart = daystart + max(1, 3 - (CamBonus / 50))
  1075. else
  1076. if regview >= 300:
  1077. FollowersLost = rand(regview / (80 * engagementFactor), regview / (40 * engagementFactor)) + popularityFactor
  1078. else
  1079. FollowersLost = rand(2, 6) + popularityFactor
  1080. end
  1081. cam_daystart = daystart + max(1, 2 - (CamBonus / 50))
  1082. end
  1083. regviewReset += 1
  1084. FollowersLost = func('shortgs', 'clamp', FollowersLost, 0, regview)
  1085. totFollowersLost += FollowersLost
  1086. regview -= FollowersLost
  1087. killvar 'FollowersLost'
  1088. end
  1089. end
  1090. !!---------------Keeping track of missing court appearances-----------------------------
  1091. if arrsize('policeQW_courthearing_dates') > 0 and daystart > policeQW_courthearing_dates[0]:
  1092. policeQW['missed_court_dates'] += 1
  1093. policeQW['tot_court_dates_missed'] += 1
  1094. !! Might need code to throw a message with 'You''ve missed your court hearing or something'
  1095. policeQW_courtletter_dates[] = daystart + rand(3, 6)
  1096. $policeQW_courtletter_subjects[] = 'missed_court_<<$policeQW_courthearing_subjects[0]>>'
  1097. killvar 'policeQW_courthearing_dates', 0
  1098. killvar 'policeQW_courthearing_subjects', 0
  1099. end
  1100. if policeQW['fine_deadline'] > 0:
  1101. if daystart > policeQW['fine_deadline'] - 8:
  1102. policeQW_courtletter_dates[] = daystart
  1103. $policeQW_courtletter_subjects[] = 'fine'
  1104. elseif daystart > policeQW['fine_deadline']:
  1105. policeQW['missed_fine_deadlines'] += 1
  1106. policeQW['tot_fines_deadlines_missed'] += 1
  1107. !! Might need code to throw a message with 'you''ve failed to pay your fine on time.'
  1108. policeQW_courtletter_dates[] = daystart + rand(3, 6)
  1109. $policeQW_courtletter_subjects[] = 'missed_fine'
  1110. end
  1111. end
  1112. if arrsize('policeQW_courtletter_dates') > 1:
  1113. gs 'shortgs', 'coupled_array_sort', 'policeQW_courtletter_dates', '$policeQW_courtletter_subjects'
  1114. end
  1115. if arrsize('policeQW_courthearing_dates') > 1:
  1116. gs 'shortgs', 'coupled_array_sort', 'policeQW_courthearing_dates', '$policeQW_courthearing_subjects'
  1117. end
  1118. --- cikl ---------------------------------