cikl.qsrc 66 KB

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