cikl.qsrc 62 KB

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