1
0

cikl.qsrc 61 KB

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