cikl.qsrc 60 KB

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