1
0

stat.qsrc 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350
  1. # stat
  2. !!This is error catching to prevent stat from running too early
  3. if opPRE > 0: exit
  4. if Enable_Android = 0:
  5. clr
  6. !only clear status and renew object in non-Android mode
  7. gs 'obj_din', 'old'
  8. end
  9. if daystart_start < 100:
  10. pl '<BR>Did you start at the <a href="exec:daystart_start = 241 & gs''daystart'' & gs''stat''">end of August</a> or <a href="exec:daystart_start = 152 & gs''daystart'' & gs''stat''">beginning of June</a>?'
  11. exit
  12. end
  13. view
  14. rand1 = rand(0,100)
  15. $stat_msg=''
  16. if $start_type[1] ! 'nomagic': magik_exp = orgasm
  17. if insleep = 0: gs 'stat_sklattrib'
  18. if cheatHealth = 1: dynamic $cheatmenu['std_cure']
  19. if stat['vaginal'] = 0 and stat['vaginal_fist'] = 0 and stat['vaginal_dildo'] = 0 and stat['vaginal_strap'] = 0:
  20. stat['think_virgin'] = 1
  21. else
  22. stat['think_virgin'] = 0
  23. end
  24. if (analplay >= 2 and pcs_ass <= 10) or (analplay >= 4 and pcs_ass <= 15) or (analplay >= 8 and pcs_ass <= 20): pcs_ass += 1 & analplay = 0
  25. !!This is a temporary stop-gap measure for the accomadation skill and will be removed
  26. if succubusflag = 1 and sucskill >= 4:
  27. if pain['throat'] > 0: pain['throat'] = 0 & sucexcess -= 1
  28. if pain['asshole'] > 0: pain['asshole'] = 0 & sucexcess -= 1
  29. if pain['vaginal'] > 0: pain['vaginal'] = 0 & sucexcess -= 1
  30. if vgape > 0: vgape = 0 & vgapetime = 0 & sucexcess -= 1
  31. if agape > 0: agape = 0 & agapetime = 0 & sucexcess -= 1
  32. end
  33. !!mouth cleaning for drinks
  34. if pcs_hydra > hydra_check:
  35. cumspclnt = 2
  36. gs 'cum_cleanup'
  37. end
  38. !!cosmetic tattoo
  39. if cosmetic_tattoo > 0:
  40. if pcs_makeup ! (cosmetic_tattoo+1): pcs_makeup = (cosmetic_tattoo+1)
  41. end
  42. !!!CHEATS!!!
  43. if cheatWork = 1:work = 0
  44. if cheatWorkKiskis = 1:young_shop_miss = 0
  45. if cheatHapri = 1:pcs_hairbsh = 1
  46. ! Moved from cheats to settings under 'Enema realism'
  47. if cheatKlisma = 0:klismaday = daystart & klismaday1 = 1
  48. if cheatNomakeup = 1 and cosmetic_tattoo = 0:
  49. if pcs_makeup = 0: pcs_makeup = 1
  50. end
  51. if cheatNoSweat = 1 and pcs_sweat > 0: pcs_sweat = 0
  52. if cheatNoEat = 1:
  53. if pcs_energy < 60: pcs_energy = 60
  54. end
  55. if cheatShaveLegs = 1:
  56. if pcs_leghair > 0: pcs_leghair = 0
  57. end
  58. if cheatNoDrink = 1:
  59. if pcs_hydra < 60: pcs_hydra = 60
  60. end
  61. if cheatNoSleep = 1:
  62. if pcs_sleep < 35: pcs_sleep = 35
  63. end
  64. if cheatBandit = 1 and npc_horny['A66'] < 19: npc_horny['A66'] = 19
  65. if alko > 0 and frost > 0:frost = 0
  66. if StrongNarkota >= 20:
  67. if alko > 0:alko = 0
  68. end
  69. if lernSkill >= 8: gs 'exp_gain', 'intel', 1 & lernSkill = 0
  70. if lern >= 10: gs 'exp_gain', 'intel', 1 & lern = 0
  71. !! Katja learning about you sexual experience from other sources because you are a slut.
  72. if fame['pav_slut'] >= 150 and stat['bj'] > 0 and katjaQW['knows_BJ'] ! 1: katjaQW['knows_BJ'] = 1
  73. if fame['pav_slut'] >= 250 or preg > 0 and stat['vaginal'] > 0 and katjaQW['knows_sex'] ! 1: katjaQW['knows_sex'] = 1
  74. shameless = guy + stat['bj'] + stat['anal'] + stat['hj'] + ((slutty + gang) * 2)
  75. moneySUM = money + karta + stolmoney
  76. cumSUM = cumsumbod/40
  77. if husbizvradd > 5:izvratH = 1
  78. if husbharmin > 10:harakHusb = 0
  79. if husband = 0:
  80. husbizvradd = 0
  81. husbharmin = 0
  82. husbandMark = 0
  83. houseslut = 0
  84. end
  85. if SNarkvnesh = 0:SNarkvnesh = 1
  86. if SNarkTimes >= SNarkvnesh * 25:
  87. SNarkvnesh += 1
  88. vidage += 1
  89. end
  90. if gopota >= 20 and gnewQW = 1:gnewQW = 2
  91. if workDisk = 4 and week > 5:workDisk = 1
  92. if workDisk = 3 and week > 5:workDiskAtkPlayer = 1
  93. if bfa < 0: bfa = 0
  94. if pcs_vag > 36: pcs_vag = 36
  95. if pcs_throat > 36: pcs_throat = 36
  96. if pcs_ass > 36: pcs_ass = 36
  97. if NarkImmune = 1:
  98. if narkoman ! 0:narkoman = 0
  99. elseif nark >= 30 and narkoman = 0 and NarkImmune = 0:
  100. narkoman = 1
  101. elseif nark = 0 and narkoman = 1:
  102. narkoman = 0
  103. end
  104. if cheatSlut = 1 or succubusflag = 1:
  105. !!Succubus cannot get pregnant
  106. mesec = 0
  107. FocH = 0
  108. EggRH = 0
  109. Ovulate = 0
  110. fertegg = 0
  111. UnfertEgg = 0
  112. PregChem = 0
  113. preg = 0
  114. LutH = 0
  115. RecovH = 0
  116. babyembryo = 0
  117. cycle = 1
  118. end
  119. if succubusflag = 1 and succublvl > 2 and rape > rape_count:
  120. !!High Level Succubus cannot get raped
  121. orgasm += 1
  122. rape = rape_count
  123. pcs_mood = 100
  124. end
  125. if pcs_horny < 50 and cheatHorny = 1: pcs_horny = 50
  126. !!These will be made obsolete with the combat system overhaul
  127. boxing = pcs_jab + pcs_punch + pcs_kick + pcs_def
  128. if boxing > 100: boxing = 100
  129. manamax = (pcs_intel * pcs_magik) + pcs_magik * 100 + pcs_vital * 10 + rikudo
  130. !! Set the massage displayed each time the magik attribute is increased.
  131. if $start_type[1] ! 'nomagic':
  132. if pcs_magik > magikhigh:
  133. magikhigh = pcs_magik
  134. rikudo += pcs_magik * 100
  135. $stat_msg += '<BR><b>You feel like a strength has been revealed within you, and you gush with magic, lifting you to a new energy level.</b>'
  136. !! This will be replaced when a more advanced physical system is made
  137. if (pcs_magik mod 2 ! 0) and pcs_eyesize < 2: pcs_eyesize += 1
  138. if (pcs_magik mod 2 = 0) and pcs_lashes < 2: pcs_lashes += 1
  139. end
  140. else
  141. !!This is for error catching but also broke manamax calc which is why its now above this
  142. killvar 'pcs_magik'
  143. killvar 'rikudo'
  144. killvar 'pcs_splcstng'
  145. end
  146. if pcs_dom < 0: SUB = SUB - pcs_dom & pcs_dom = 0
  147. if SUB < 0: pcs_dom = pcs_dom - SUB & SUB = 0
  148. if pcs_dom > 100: pcs_dom = 100
  149. if SUB > 100: SUB = 100
  150. if SUB >= pcs_dom and pcs_dom > 0:SUB = SUB - pcs_dom & pcs_dom = 0
  151. if pcs_dom >= SUB and SUB > 0:pcs_dom = pcs_dom - SUB & SUB = 0
  152. if pcs_horny < 0: pcs_horny = 0
  153. if pcs_inhib < 0:
  154. pcs_inhib = 0
  155. elseif pcs_inhib > 100:
  156. pcs_inhib = 100
  157. end
  158. healthmax = (pcs_vital * 10 + pcs_stren * 5)
  159. stammax = 5 * (2 * pcs_vital + pcs_agil + pcs_stren) / 2
  160. speed = (2 * (pcs_stren + pcs_agil) + pcs_vital) / 5
  161. if healthmax < 1: healthmax = 1
  162. if willpowermax < 50: willpowermax = 50
  163. if stammax < 1: stammax = 1
  164. if manamax < 1: manamax = 1
  165. !pre-calc max value for later display
  166. if fairycurse >= daystart and fairyshoo > 0: pcs_horny = 90
  167. if min_arousal > pcs_horny: pcs_horny = min_arousal
  168. if Enable_lockhorny > 0 and pcs_horny < Enable_lockhorny - 1: pcs_horny = Enable_lockhorny - 1
  169. if pcs_horny < 0: pcs_horny = 0
  170. if pcs_health > healthmax: pcs_health = healthmax
  171. if pcs_willpwr > willpowermax: pcs_willpwr = willpowermax
  172. if pcs_stam > stammax: pcs_stam = stammax
  173. if pcs_mana > manamax: pcs_mana = manamax
  174. if pcs_mood > 100: pcs_mood = 100
  175. !!Add mood_trauma to events to lower max mood for a period of time
  176. if mood_trauma > 0:
  177. mood_max_calc = 100 - (mood_trauma * 5)
  178. mood_max = max(10, mood_max_calc)
  179. if pcs_mood > mood_max: pcs_mood = mood_max
  180. killvar 'mood_max_calc'
  181. elseif mood_trauma < 0:
  182. mood_trauma = 0
  183. end
  184. if hypnoAddict = 1 and pcs_horny < 30:
  185. pcs_horny = 30
  186. elseif hypnoAddict = 2 and pcs_horny < 50:
  187. pcs_horny = 50
  188. end
  189. if cumloc[0] = 1 or cumloc[3] = 1 or hypnoAddict = 0:
  190. killvar 'missCum'
  191. elseif missCum > timeTresh:
  192. if pcs_horny < 90: pcs_horny = 90
  193. if preziktype = 0: prezikcount = prezik
  194. if preziktype = 2: preziksabo = prezik
  195. prezik = 0
  196. preziktype = 1
  197. end
  198. !!!!!!!!!!!
  199. !!!TIME!!!
  200. !!!!!!!!!!!
  201. if nminut ! minut or nhour ! hour:
  202. ! Zero totminut will be at New Years Eve of 2015
  203. prevtotmin = totminut
  204. ! Years since 2015 in days
  205. totminut = (year - 2015) * 365
  206. ! Days this year
  207. if month > 1 : totminut += 31 & ! Jan
  208. if month > 2 : totminut += 28 & ! Feb
  209. if month > 3 : totminut += 31 & ! Mar
  210. if month > 4 : totminut += 30 & ! Apr
  211. if month > 5 : totminut += 31 & ! May
  212. if month > 6 : totminut += 30 & ! Jun
  213. if month > 7 : totminut += 31 & ! Jul
  214. if month > 8 : totminut += 31 & ! Aug
  215. if month > 9 : totminut += 30 & ! Sep
  216. if month > 10: totminut += 31 & ! Oct
  217. if month > 11: totminut += 30 & ! Nov
  218. if month > 12: totminut += 31 & ! Dec
  219. if month > 13: totminut += 31 & ! Jan rollover sanity check
  220. totminut += day
  221. ! Hours
  222. totminut = totminut * 24 + hour
  223. ! Minutes
  224. totminut = totminut * 60 + minut + sec / 60
  225. nminut = minut
  226. nhour = hour
  227. end
  228. ! Execute time based spells
  229. gs 'spellTimer', prevtotmin, totminut
  230. ! Determine Incoming Telephone Calls
  231. gs 'telefon', 'IncomingCheck', prevtotmin, totminut
  232. !! deodorant
  233. if deodorant_on = 1 and totminut > deodorant_time: gs 'sweat', 'remove_deo'
  234. !!painkiller
  235. if pain['killer'] > 0:
  236. if pain['killer'] = 1: pain_timer = totminut - 2
  237. pain['killer'] = totminut - pain_timer
  238. if pain['killer'] >= 243: pain['killer'] = 0
  239. end
  240. ! WD: 'daystart' Should start at 1
  241. if daystart = 0: daystart = 1
  242. !!Gaping of vagina recovery time
  243. !! [1] stored gape value
  244. !! [3] timer
  245. !! [4] time between each reduction in gape
  246. if agape[4] = 0: agape[4] = 10
  247. if vgape[4] = 0: vgape[4] = 10
  248. if vgape > vgape[1]:
  249. vgape[3] = totminut
  250. vgape[1] = vgape
  251. elseif vgape > 0:
  252. if (totminut - vgape[3])/vgape[4] >= 1: vgape -= 1
  253. vgape[1] = vgape
  254. else
  255. vgape[3] = 0
  256. end
  257. !!Gaping of anus recovery time
  258. if agape > agape[1]:
  259. agape[3] = totminut
  260. agape[1] = agape
  261. elseif agape > 0:
  262. if (totminut - agape[3])/agape[4] >= 1: agape -= 1
  263. if agape = 0: agape[3] = 0
  264. agape[1] = agape
  265. else
  266. agape[3] = 0
  267. end
  268. !!Recovery from spanking - will be superseded by pain system
  269. if spanked > 0:
  270. if spankedtime = 0: spankedtime = totminut
  271. if (spankedtime + 2040) <= totminut:spanked -= 1 & spankedtime = 0
  272. elseif spankedtime ! 0:
  273. killvar 'spankedtime'
  274. end
  275. !! Orgasmic cooldown
  276. if orgasmic ! 0:
  277. if orgasmic < totminut - 30: orgasmic = 0 & pcs_horny = 0
  278. end
  279. !!!!!!!!!!!!!!! Heels pain and skill gain
  280. !! This compares the player heels skill to the skill required to wear any heels the player
  281. !! currently wears. If the skill needed is greater than the player currently possesses,
  282. !! the pain in the feet increases and the player earns heels skill. If the skill required
  283. !! is lower, the player might still get experience, depending on how much greater the
  284. !! player skill is.
  285. !! Variables
  286. !! pcs_heels is the main heels skill
  287. !! heels_exp is used when the player gains experience using heels
  288. !! heels_deg is used when the player neglects their heels
  289. !! PShoHeels tracks the height of the heels currently worn
  290. !! heelsminut tracks when the heels skill was last changed
  291. !! heelsRequiredskill substitutes PShoHeels to allow comparison with pcs_heels
  292. !! heelsSkilldiff tracks difference between the players current and skill required by heels
  293. !! Required skill for various heel sizes
  294. !! 1 flats - 0
  295. !! 2 low heel - 5
  296. !! 3 Mid heel - 15
  297. !! 4 High heel - 25
  298. !! 5 ultra high heel - 40
  299. !! 6 fetish heel - 60
  300. !! Only run if at least X minutes have passed since last time
  301. if totminut >= heelsminut + 120:
  302. heelsminut = totminut
  303. !! Only check experience and pain gain and if the player wears heels, flats give nothing
  304. if PShoHeels > 1:
  305. if PShoHeels = 2:
  306. heelsRequiredskill = 5
  307. elseif PShoHeels = 3:
  308. heelsRequiredskill = 15
  309. elseif PShoHeels = 4:
  310. heelsRequiredskill = 25
  311. elseif PShoHeels = 5:
  312. heelsRequiredskill = 40
  313. elseif PShoHeels = 6:
  314. heelsRequiredskill = 60
  315. end
  316. !! stat is called a lot, there should be a limit to how much exp and pain you can accumulate...
  317. !! If the player skill is below the required skill, give heel_exp and apply ache
  318. if pcs_heels < heelsRequiredskill:
  319. heelsSkilldiff = heelsRequiredskill - pcs_heels
  320. if heelsSkilldiff <= 5:
  321. gs 'exp_gain', 'heels', rand(3,6)
  322. if pain['feet'] < 40: gs 'pain', rand(0,1), 'feet', 'ache'
  323. elseif heelsSkilldiff <= 10:
  324. gs 'exp_gain', 'heels', rand(5,9)
  325. if pain['feet'] < 50: gs 'pain', rand(0,2), 'feet', 'ache'
  326. elseif heelsSkilldiff <= 15:
  327. gs 'exp_gain', 'heels', rand(7,12)
  328. if pain['feet'] < 60: gs 'pain', rand(1,3), 'feet', 'ache'
  329. elseif heelsSkilldiff <= 20:
  330. gs 'exp_gain', 'heels', rand(9,15)
  331. if pain['feet'] < 70: gs 'pain', rand(2,4), 'feet', 'ache'
  332. elseif heelsSkilldiff > 20:
  333. gs 'exp_gain', 'heels', rand(12,20)
  334. if pain['feet'] < 80: gs 'pain', rand(3,5), 'feet', 'ache'
  335. end
  336. !! Player skill is equal to or higher than the required skill
  337. !! Maybe have excessive skill result in no gain, or even a degrading skill?
  338. else
  339. heelsSkilldiff = pcs_heels - heelsRequiredskill
  340. if heelsSkilldiff <= 5:
  341. gs 'exp_gain', 'heels', rand(3,6)
  342. elseif heelsSkilldiff <= 10:
  343. gs 'exp_gain', 'heels', rand(2,4)
  344. elseif heelsSkilldiff <= 15:
  345. gs 'exp_gain', 'heels', rand(1,2)
  346. elseif heelsSkilldiff <= 20:
  347. gs 'exp_gain', 'heels', 0
  348. elseif heelsSkilldiff > 20:
  349. heels_deg -= rand(0,1)
  350. end
  351. end
  352. !! If not wearing heels, degrade heels skill
  353. else
  354. heels_deg -= rand(0,1)
  355. end
  356. end
  357. !!!!!!!!!!!!!!! End heels
  358. if sec >= 60:
  359. :loopsec
  360. minut += 1
  361. sec -= 60
  362. if sec >= 60:jump 'loopsec'
  363. end
  364. !! Hourly Changes
  365. if minut >= 60:
  366. :loopmin
  367. hour += 1
  368. minut -= 60
  369. if SbrosNerdism = 1 and orgasm ! 10:
  370. pcs_nerd = pcs_sprt / 10 - orgasm
  371. elseif sbrosnerdism = 1 and orgasm = 10:
  372. pcs_nerd = pcs_sprt / 9 - orgasm
  373. end
  374. if pcs_nerd < 0:pcs_nerd = 0
  375. if obkvsdam > 0:obkvsdam = rand(2, 5)
  376. if scpopt > 1: scpopt = 0
  377. if insleep = 1:
  378. if amphHigh > 0:
  379. pcs_energy -= (4 / amphetamineBonus + succublvl/2)
  380. pcs_hydra -= (8 / amphetamineBonus + succublvl/2)
  381. else
  382. pcs_energy -= (4 * amphetamineBonus + succublvl/2)
  383. pcs_hydra -= (8 * amphetamineBonus + succublvl/2)
  384. end
  385. pcs_stam += stammax / 10
  386. pcs_sleep -= 4
  387. if alko > 0: alko -= 1
  388. pcs_willpower_feeder += willpowermax*4
  389. pcs_willpwr += pcs_willpower_feeder/100
  390. pcs_willpower_feeder = pcs_willpower_feeder mod 100
  391. else
  392. if amphHigh > 0:
  393. pcs_energy -= (8 / amphetamineBonus + succublvl)
  394. pcs_hydra -= (16 / amphetamineBonus + succublvl)
  395. else
  396. pcs_energy -= (8 * amphetamineBonus + succublvl)
  397. pcs_hydra -= (16 * amphetamineBonus + succublvl)
  398. end
  399. pcs_stam += stammax / 20
  400. if InSleepWake <= hour or InSleepWake[1] < daystart:
  401. pcs_sleep -= 4
  402. end
  403. if pcs_sleep <= 0:
  404. pcs_condition['lack_of_sleep'] += 2
  405. if pcs_mood['slpredcheck'] = 1:
  406. pcs_mood -= 5
  407. end
  408. pcs_mood['slpredcheck'] = 1
  409. else
  410. pcs_mood['slpredcheck'] = 0
  411. end
  412. if pcs_energy = 0:
  413. if pcs_mood['nrgredcheck'] = 1:
  414. pcs_mood -= 5
  415. end
  416. pcs_mood['nrgredcheck'] = 1
  417. else
  418. pcs_mood['nrgredcheck'] = 0
  419. end
  420. if pcs_hydra = 0:
  421. if pcs_mood['hydredcheck'] = 1:
  422. pcs_mood -= 5
  423. end
  424. pcs_mood['hydredcheck'] = 1
  425. else
  426. pcs_mood['hydredcheck'] = 0
  427. end
  428. pcs_willpower_feeder += willpowermax*4/3
  429. pcs_willpwr += pcs_willpower_feeder/100
  430. pcs_willpower_feeder = pcs_willpower_feeder mod 100
  431. end
  432. !!willpower
  433. if pcs_willpwr > willpowermax: pcs_willpwr = willpowermax
  434. if pcs_mood <= 20: will_counter -= 2
  435. if willpowermax > 100:
  436. if pcs_willpwr < 25: will_counter -= 1
  437. else
  438. if pcs_willpwr < willpowermax/4: will_counter -= 1
  439. end
  440. if will_counter <= -10: willpowermax -= 1 & will_counter = 0
  441. if pcs_stam > stammax: pcs_stam = stammax
  442. gs 'femcyc'
  443. if Insleep = 0 and period['cramp'] = 0 and placebopart > 0 and LutH > 0 and knowpreg = 0:
  444. period['cramp'] = 1
  445. msg'Your stomach suddenly twinges, muscles tightening with involuntarily contractions, causing you to nearly double over in pain. With a grimace, you realize it''s probably a sign your period is going to start soon.'
  446. elseif mesec > 0:
  447. period['cramp'] = 0
  448. end
  449. !! code to trigger vomitting based on morning sickness, hangovers, or just plain bad luck
  450. if Insleep = 0:
  451. vomit['daily_check'] = 0
  452. end
  453. if Insleep = 1:
  454. if vomit['daily_check'] = 0:
  455. vomit['daily_check'] = 1
  456. if alko > 4:
  457. vomit['hangover'] = 1
  458. elseif pregchem > 600 and pregchem < 2160 and rand(1,4) = 4:
  459. vomit['morning_sick'] = 1
  460. elseif rand(1,100) = 100:
  461. vomit['unlucky'] = 1
  462. end
  463. end
  464. end
  465. if hypnoAddict > 0:dynamic $hypnoAddiction
  466. !!mana regen
  467. pcs_mana += manamax / 20
  468. if alko > 0 and alkoblock = 0:
  469. if alko >= 6:
  470. if pcs_run > 0: run_deg -= 1
  471. if vball_lvl >= 50: vball_deg -= 1
  472. if alko >= 10:
  473. if pcs_stren > 10: stren_deg -= 1
  474. if pcs_vital > 10: vital_deg -= 1
  475. if pcs_intel > 10: intel_deg -= 1
  476. alko -= rand (0,1)
  477. end
  478. end
  479. alko -= rand (0,1)
  480. elseif alko < 0:
  481. alko = 0
  482. end
  483. if shame > 0:shame -= 1 & pcs_mood -= 5
  484. if smoker >= 20 and NarkImmune = 0: smokerNeed += 1
  485. if smokerNeed > 10 and InSleep = 0 and pcs_mood > 20 and NarkImmune = 0: pcs_mood -= pcs_mood / 10
  486. if smokerNeed > 300:smokerNeed = 0 & smoker = 0
  487. if StrongNarkota > 0:pcs_mood -= (40 / StrongNarkota) & StrongNarkota -= 1
  488. if amphWithdrawl >= 5: amphWithdrawl += 1 & pcs_mood -= (amphWithdrawl / 5)
  489. if amphHigh > 0:
  490. if amphWithdrawl < 2: amphWithdrawl = 2
  491. amphetamineBonus = 3
  492. amphHigh -= 4
  493. pcs_mood += (2 * amphHigh)
  494. elseif amphHigh <= 0 and amphWithdrawl = 2:
  495. if amphIntake > 0:
  496. amphIntake -= 1
  497. else
  498. amphWithdrawl = 0
  499. end
  500. amphHigh = 0
  501. amphetamineBonus = 2
  502. pcs_mood -= pcs_mood / 10
  503. elseif amphIntake > 0:
  504. amphWithdrawl += 1
  505. elseif amphHigh = 0 and amphWithdrawl = 0:
  506. amphetamineBonus = 1
  507. end
  508. if amphWithdrawl > 169: amphWithdrawl = 1 & amphetamineBonus = 1 & amphCount = 0
  509. if SLomka > 0 and pcs_mood > 10:SLomka += 1 & pcs_mood -= pcs_mood / 10
  510. if SLomka > 100 and StrongNarkota <= 0:SLomka = 0 & SNarkTimes = 0
  511. if jointhigh > 0: jointhigh -= 1
  512. if narkoman = 1 and narkday ! daystart:
  513. pcs_health -= 5
  514. if pcs_mood > 40:
  515. pcs_mood -= 40
  516. else
  517. pcs_mood = 5
  518. end
  519. end
  520. if $pantyworntype = 'none' and PCloPants > 0 and PCloPanties = 0 and $clothingworntype ! 'nude' and pcs_traits['commando_lvl'] < 2:
  521. if pcs_traits['commando_lvl'] < 1:
  522. mosol += 2
  523. elseif pcs_traits['commando_lvl'] = 1:
  524. mosol += 1
  525. end
  526. if mosol >= 100: pcs_mood -= 5
  527. if mosol >= 60 and pain['pubic'] < 80: gs 'pain', 1, 'pubic', 'ache'
  528. end
  529. if pcs_energy > 100:
  530. fat += (pcs_energy - 100) / 4
  531. pcs_energy = 100
  532. elseif pcs_energy <= (10 + vitalbuf / 25) and fat > (2 + vitalbuf / 25):
  533. pcs_energy += 6
  534. fat -= 2
  535. end
  536. if pcs_hydra > 200: pcs_hydra = 200
  537. if mosol > 0:
  538. if $pantyworntype ! 'none' or $clothingworntype = 'nude' or PCloPanties = 1:mosol -= rand(0,1)
  539. end
  540. if pcs_lipbalm > 0:pcs_lipbalm -= 1
  541. if sickstage = 1:sick += 1 & sicktimer += 1
  542. if sickstage = 1 and sicktimer >= 80:sicktimer = 0 & sickstage = 2
  543. if sickstage = 2 and sick > 0:sick -= 1
  544. if sickstage = 2 and sick <= 0:sick = 0 & sickstage = 0
  545. if perkice > 0:perkice -= 1
  546. if frost > 0:frost -= 1
  547. if KGOLpers > 0:
  548. if KGHP < KGHPMAX:KGHP += 10
  549. if KGMana < KGManaMax:KGMana += 10
  550. end
  551. !! pain[0] = pain['total'] , pain[1] = pain['damage'] , pain[2] = pain['relief']
  552. i = arrsize('pain')
  553. :statpainloop
  554. if i > 0:
  555. i -= 1
  556. pain[i] -= rand(0,1)
  557. if pain[i] < 0: pain[i] = 0
  558. jump 'statpainloop'
  559. end
  560. !! Panty happiness gain
  561. if pcs_mood < 60 and $pantyworntype = 'cats': pcs_mood += 2
  562. if pcs_mood < 60 and $braworntype = 'cats': pcs_mood += 2
  563. !!Arousal adjustments
  564. if ($pantyworntype = 'salacious' and $braworntype = 'salacious') and pcs_horny < 25:
  565. pcs_horny += 10
  566. elseif pcs_horny < 10 and ($pantyworntype = 'salacious' or $braworntype = 'salacious'):
  567. pcs_horny += 5
  568. end
  569. if aphrodisiac_timer >= 1:
  570. if pcs_horny < 80:
  571. pcs_horny = 80
  572. else
  573. pcs_horny += 10
  574. end
  575. aphrodisiac_timer -= 1
  576. end
  577. if $pantyworntype ! 'none' and clit_size >= 25 and pcs_horny < 60:pcs_horny += 20
  578. if insleep = 0:
  579. gs 'sweat', 'add', rand(0,1)
  580. if temper >= 20: gs 'sweat', 'add', rand(0,1)
  581. end
  582. ! vovan edition, from 1.2.5
  583. if huntersAndreisex > 0: huntersAndreisex -= 1
  584. if huntersSergeisex > 0: huntersSergeisex -= 1
  585. if huntersIgorsex > 0: huntersIgorsex -= 1
  586. if huntslutsex > 0: huntslutsex -= 1
  587. if mira_go_blok > 0: mira_go_blok -= 1
  588. if mira_no_home > 0: mira_no_home -= 1
  589. gs 'traits', 'hourly'
  590. if (hour mod 2) = 0: gs 'outdoors', 'weather'
  591. !! I do not think that this should be here, but I put it here temporaly - rachels
  592. !! generate SMS for nerd games
  593. if rand(0,2) = 0 and hour > 10 and hour < 16 and week = 1 and yearstart = 1 and grupTipe = 3 and nerd_game['invite_day'] < daystart: gs 'nerd_game_night', 'summer_invite_sms', 'Add SMS'
  594. if rand(0,2) = 0 and hour > 10 and hour < 16 and week = 1 and yearstart > 1 and nerd_game['fixed_uni_day'] = 0 and nerd_game['stage'] > 0 and nerd_game['invite_day'] < daystart: gs 'nerd_game_night', 'summer2_invite_sms', 'Add SMS'
  595. if minut >= 60:jump 'loopmin'
  596. end
  597. !! End of Hourly Changes
  598. if hour >= 24: gs 'cikl'
  599. if minut < 10:
  600. $nilmin = '0'
  601. else
  602. $nilmin = ''
  603. end
  604. if kid > 0:
  605. i = arrsize('yearkid')
  606. :LoopKidAgeCounter
  607. if i >= 0:
  608. if yearkid[i] = year + 1 and monthkid[i] = month and daykid[i] = day: msg'It is <<$kidname[i]>>''s birthday today.'
  609. i -= 1
  610. jump 'LoopKidAgeCounter'
  611. end
  612. end
  613. if pcs_nerd > 0:
  614. if lastreadday = daystart:
  615. !!<font color="green">You are completely healthy shine and a healthy glow.</font>
  616. pcs_mood = 100
  617. SbrosNerdism = 0
  618. $mudnerd = '<font color="green">You are lost in a fantasy after reading a book.</font>'
  619. end
  620. if lastreadday + 1 = daystart:
  621. SbrosNerdism = 0
  622. $mudnerd = '<font color="black">You are a little bored and want to plunge into a book.</font>'
  623. end
  624. if lastreadday + 2 = daystart:
  625. SbrosNerdism = 0
  626. if pcs_mood > 50:pcs_mood -= 10
  627. $mudnerd = '<font color="red">You really want to read something.</font>'
  628. end
  629. if lastreadday + 3 <= daystart:
  630. if pcs_mood > 10:pcs_mood -= 10
  631. SbrosNerdism = 1
  632. $mudnerd = '<font color="red"><b>You have an incredibly strong desire to read!!!</b></font>'
  633. end
  634. else
  635. SbrosNerdism = 0
  636. $mudnerd = ''
  637. end
  638. if bimbolevel > 0:
  639. if bimbowithdrawal = 0:
  640. $bimbostatus = '<font color = #FF1493>You''re, like, super hawt today.</font>'
  641. $bimbo_tooltip = 'You''re, like, super hawt today.'
  642. elseif bimbowithdrawal = 1:
  643. $bimbostatus = '<font color="green">You feel, like, kind of lame today.</font>'
  644. $bimbo_tooltip = 'You feel, like, kind of lame today.'
  645. elseif bimbowithdrawal < 4:
  646. $bimbostatus = '<font color="grey">You feel, like, totally lame today.</font>'
  647. $bimbo_tooltip = 'You feel, like, totally lame today.'
  648. elseif bimbowithdrawal < 6:
  649. if pcs_mood > 50: pcs_mood -= 10
  650. $bimbostatus = '<font color="red">You really feel, like, awful today.</font>'
  651. $bimbo_tooltip = 'You really feel, like, awful today.'
  652. elseif bimbowithdrawal >= 6:
  653. if pcs_mood > 10: pcs_mood -= 10
  654. $bimbostatus= '<font color="red"><b>You feel that, like, horrible today!</b></font>'
  655. $bimbo_tooltip = 'You feel that, like, horrible today!'
  656. end
  657. else
  658. bimbowithdrawal = 0
  659. $bimbostatus = ''
  660. end
  661. !
  662. ! WD: Triggers every 15 minutes if not sleeping
  663. ! Update to remove long iterations on loading saves from previous versions
  664. ! Do Nothing if sleeping, invalid Trig15Minute value or more than 6 hours 16 minute pass
  665. if InSleep ! 0 or Trig15Minute > totminut or (totminut - Trig15Minute) >= 376:
  666. set Trig15Minute = totminut
  667. ! More than 15 minutes since last check
  668. else
  669. if (totminut - Trig15Minute) >= 15:
  670. ! begin Loop
  671. :Trig15MinuteLoop
  672. ! Horny Actions
  673. if pcs_horny > 100:
  674. set Trig15Minute = totminut
  675. else
  676. set Trig15Minute += 15
  677. ! WD: Fix vibrator arousal to trigger every 15 minutes, moved from 'time' location
  678. if vibratorin = 1:pcs_horny += rand(1, 5)
  679. ! WD: Fixed Piecing arousal to trigger every 15 minutes, instead of once per day
  680. if pcs_horny < 70:
  681. hornystat = 0
  682. if pirsF > 0 and pirsF < 10000:hornystat += 1
  683. if pirsG > 0 and pirsG < 10000:hornystat += 1
  684. hornyStat = hornystat * 4
  685. if pirsA > 0 and pirsA < 10000:hornystat += 1
  686. if pirsB > 0 and pirsB < 10000:hornystat += 1
  687. if pirsC > 0 and pirsC < 10000:hornystat += 1
  688. if pirsD > 0 and pirsD < 10000:hornystat += 1
  689. if pirsE > 0 and pirsE < 10000:hornystat += 1
  690. if pirsN > 0 and pirsN < 10000:hornystat += 1
  691. set pcs_horny += hornyStat / 4 + rand(1,4) <= hornyStat mod 4 & ! Apply 1/4 of value on average
  692. end
  693. ! WD: Clothing
  694. if CloStyle = 4 and pcs_horny < 70:set pcs_horny += rand(0, 2)
  695. if (PCloSkirt > 5 or PCloPants > 5) and pcs_horny < 50:set pcs_horny += rand(0, 1)
  696. if PCloTopCut = 4 and pcs_horny < 50:set pcs_horny += rand(0, 1)
  697. end
  698. !!SECTION: Bimbo (15 minute interval update checks)
  699. if bimbolevel = 2:
  700. if pcs_mood < 100:pcs_mood += ((pcs_mood / 100) * (rand(0,1)))
  701. if pcs_horny < 25:pcs_horny = 25
  702. if pcs_horny < 100:pcs_horny += 1
  703. end
  704. if bimbolevel = 3:
  705. if (pcs_mood < 100):pcs_mood += ((pcs_mood / 100) * (rand(0,2)))
  706. if pcs_horny < 50:pcs_horny = 50
  707. if pcs_horny < 100:pcs_horny += 2
  708. end
  709. !!SECTION: Commando trait (15 minute interval update checks)
  710. if $clothingworntype ! 'nude':
  711. if $pantyworntype = 'none':
  712. !! Addition to trait exp/lvls
  713. if pcs_traits['commando_lvl'] = 0:
  714. if PCloSkirt > 0:
  715. pcs_traits['commando_exp'] += 2
  716. else
  717. pcs_traits['commando_exp'] += 1
  718. end
  719. if pcs_traits['commando_exp'] >= 1000:
  720. pcs_traits['commando_exp'] = 50
  721. pcs_traits['commando_lvl'] = 1
  722. msg'You have gained the Commando trait! You have become accustomed to the idea you don''t have to wear panties all the time and can now comfortably wear skirts without panties. Pants are still a little itchy though...'
  723. end
  724. elseif pcs_traits['commando_lvl'] = 1:
  725. pcs_traits['commando_exp'] += 2
  726. if pcs_traits['commando_exp'] >= 1000:
  727. pcs_traits['commando_exp'] = 50
  728. pcs_traits['commando_lvl'] = 2
  729. msg'You have gained the 2nd level of the Commando trait! You have become very comfortable without panties and the raw insides of your pants no longer irritate your pussy.'
  730. end
  731. elseif pcs_traits['commando_lvl'] = 2:
  732. mosol = 0
  733. pcs_traits['commando_exp'] += 2
  734. if pcs_traits['commando_exp'] >= 1000:
  735. pcs_traits['commando_exp'] = 500
  736. pcs_traits['commando_lvl'] = 3
  737. msg'You have gained the 3rd level of the Commando trait! You have become so accustomed to going commando that any kind of underwear over your hips just feels <i>wrong</i>. You suffer mood penalties while wearing panties.'
  738. end
  739. elseif pcs_traits['commando_lvl'] = 3:
  740. pcs_traits['commando_exp'] += 1
  741. end
  742. elseif pcs_traits['commando_lvl'] > 0:
  743. !!Reduction from exp/lvls
  744. if pcs_traits['commando_lvl'] = 3:
  745. pcs_traits['commando_exp'] -= 1
  746. pcs_mood -= 1
  747. if pcs_traits['commando_exp'] <= 0:
  748. pcs_traits['commando_exp'] = 500
  749. pcs_traits['commando_lvl'] = 2
  750. msg'You have lost the 3rd level of the Commando trait! You are now only comfortable not wearing panties and will not suffer irritation from wearing pants while going commando.'
  751. end
  752. else
  753. pcs_traits['commando_exp'] -= 1
  754. if pcs_traits['commando_exp'] <= -0:
  755. pcs_traits['commando_exp'] = 900
  756. pcs_traits['commando_lvl'] -= 1
  757. end
  758. end
  759. end
  760. !!{
  761. if $braworntype = 'none':
  762. end}
  763. end
  764. !! This is the Succubus non-direct injection (pun intented) sex to sexnutrition and the sexnutrition conversion handling
  765. if succubusflag = 1:
  766. if hypnoAddict > 0: dynamic $RestTherapyVariables
  767. if pcs_horny < 50: pcs_horny = 50
  768. if pcs_horny < 100: pcs_horny += succublvl
  769. if succhungry > 0:
  770. pcs_energy -= succhungry * succublvl
  771. pcs_hydra -= succhungry * succublvl
  772. pcs_sleep -= succhungry * succublvl
  773. end
  774. if arrsize('sparrvol') > 0:
  775. suctempi = -1
  776. :SuccAbsorbLoop
  777. suctempi += 1
  778. if suctempi <= 1 or suctempi = 3 or suctempi = 4 or suctempi >= 8:
  779. suctemparr = arrpos('sparrloc',suctempi)
  780. if suctemparr >= 0 and sparrloc[suctemparr] = suctempi and sparrvol[suctemparr] > 0:
  781. scfeed = succublvl + rand(1,4)
  782. sexnutrition += 30 * scfeed
  783. succubxp += 5
  784. cumsumbod -= sparrvol[suctemparr]
  785. ! msg "we've got xp!" + sparrloc[suctemparr]
  786. sucabscum = 1
  787. gs 'cum_cleanup', 'cleandeposit', suctemparr
  788. cumloc[suctempi] = 0
  789. spdirty = 0
  790. !debug code $stat_msg += '<BR>Absorb ext <<sexnutrition>>'
  791. end
  792. end
  793. if suctempi < 17:jump 'SuccAbsorbLoop'
  794. cumloc[0] = 0
  795. cumloc[1] = 0
  796. cumloc[2] = 0
  797. cumloc[3] = 0
  798. cumloc[4] = 0
  799. cumloc[5] = 0
  800. cumloc[6] = 0
  801. cumloc[7] = 0
  802. cumloc[8] = 0
  803. cumloc[9] = 0
  804. cumloc[10] = 0
  805. cumloc[11] = 0
  806. cumloc[12] = 0
  807. cumloc[13] = 0
  808. cumloc[14] = 0
  809. cumloc[15] = 0
  810. cumloc[16] = 0
  811. cumloc[17] = 0
  812. end
  813. if suclezsex < lesbian:
  814. sexnutrition += succublvl * 20
  815. suclezsex = lesbian
  816. succubxp += 5
  817. sucabslez = 1
  818. end
  819. if sexnutrition > 0:
  820. if sucskill >= 3 and succublvl >= 2: sexnutrition += (sexnutrition * 2) / 10
  821. if sucabslez = 1 and sucabscum = 1:
  822. $sucabs1 = 'absorbed energy from the woman you had sex with'
  823. $sucabs2 = ' and you '
  824. $sucabs3 = 'absorb the semen in your body'
  825. elseif sucabscum = 1:
  826. $sucabs3 = 'absorb the semen in your body'
  827. elseif sucabslez = 1:
  828. $sucabs1 = 'absorbed energy from the woman you had sex with'
  829. else
  830. !!Debug code
  831. $stat_msg += '<BR>SOMETHING HAPPENED!'
  832. end
  833. $stat_msg += '<BR>You <<$sucabs1>><<$sucabs2>><<$sucabs3>>, gaining nourishment.'
  834. sucabslez = 0 & sucabscum = 0
  835. $sucabs1 = '' & $sucabs2 = '' & $sucabs3 = ''
  836. if (pcs_mood < 100): pcs_mood += ((pcs_mood / 100) * 5)
  837. if pcs_energy > 100: entemp = (pcs_energy - 100)
  838. if sucexcess < 0 and sexnutrition > 20 and pcs_energy > 30:
  839. if sexnutrition - 20 >= (0 - sucexcess) * 2:
  840. sexnutrition += sucexcess * 2
  841. sucexcess = 0
  842. else
  843. sucexcess += (sexnutrition - 20) / 2
  844. sexnutrition = 20
  845. end
  846. end
  847. pcs_energy += sexnutrition / 2
  848. pcs_hydra += sexnutrition
  849. pcs_sleep += sexnutrition / 20
  850. if succhungry > 0: succhungry = 0
  851. sexnutrition = 0
  852. if pcs_energy > 100: sucexcess += (pcs_energy - entemp - 100) & pcs_energy = 100 + entemp & killvar 'entemp'
  853. end
  854. end
  855. !! safeguards to prevent bimbolevel from going above or below its intended limits
  856. if bimbolevel > 3: bimbolevel = 3
  857. if bimbolevel < 0: bimbolevel = 0
  858. ! do loop
  859. if (totminut - Trig15Minute) >= 15:jump 'Trig15MinuteLoop'
  860. end
  861. end
  862. !!!!!!!!!!!!!
  863. !!!ENERGY!!!
  864. !!!!!!!!!!!!!
  865. if succubusflag = 1:
  866. if pcs_energy < 0:
  867. if fat >= 1:
  868. if cheatNoFat = 0: fat -= 2
  869. pcs_energy += 8 + succublvl
  870. else
  871. pcs_energy += 8 + succublvl
  872. sucexcess -= (8 + succublvl) * (6 - succublvl)
  873. end
  874. end
  875. if pcs_health < 0:
  876. pcs_health = 10
  877. sucexcess -= 25 * (9 - succublvl)
  878. end
  879. if pcs_willpwr < 0:
  880. pcs_willpwr = 10
  881. sucexcess -= 20 * (9 - succublvl)
  882. sucpowzeroed = 4
  883. end
  884. end
  885. if pcs_sleep < 0:
  886. pcs_sleep = 0
  887. pcs_mood -= 5
  888. end
  889. if pcs_energy < 0:
  890. pcs_energy = 0
  891. pcs_health -= 5
  892. if salo = 0 and pcs_stren + pcs_vital > 0:
  893. stren_deg -= 1
  894. vital_deg -= 1
  895. pcs_energy += 8
  896. elseif salo = 0 and pcs_stren + pcs_vital <= 0:
  897. if Enable_nogameover = 0 :
  898. over = 3
  899. if $loc ! 'gameover': gt 'gameover'
  900. exit
  901. else
  902. $stat_msg += '<BR><font color=red><B>You starved to death, but Cheat Mode keeps you Alive.</B></font>'
  903. fat = 1
  904. end
  905. elseif salo > 0:
  906. if cheatNoFat = 0: fat -= 1
  907. pcs_energy += 8
  908. end
  909. end
  910. if pcs_hydra <= 0:
  911. pcs_hydra = 1
  912. pcs_health -= 5
  913. end
  914. !!Set hydra_check value
  915. hydra_check = pcs_hydra
  916. if pcs_mood <= 0:
  917. pcs_mood = 1
  918. pcs_health -= 5
  919. end
  920. if pcs_health < 0:
  921. if Enable_nogameover = 0 :
  922. over = 1
  923. if $loc ! 'gameover': gt 'gameover'
  924. exit & !nogameover by illume
  925. else
  926. $stat_msg += '<BR><font color=red><B>You died from injuries, but Cheat Mode keeps you Alive.</B></font>'
  927. pcs_health = 0
  928. end
  929. end
  930. if pcs_willpwr <= 0 :
  931. !this will set willpower to 0 correctly; then check mana =1 for insane-gameover(pcs_willpwr=0&mana=1).
  932. if pcs_mood <= 1:
  933. if Enable_nogameover = 0 :
  934. over = 2
  935. if $loc ! 'gameover': gt 'gameover'
  936. exit & !nogameover by illume
  937. else
  938. $stat_msg += '<BR><font color=red><B>You are insane, but Cheat Mode keeps you Alive.</B></font>'
  939. !pcs_mood already checked for >=1 in line 1113 if pcs_mood <= 0, no need to set another one
  940. end
  941. end
  942. pcs_willpwr = 0
  943. end
  944. !!cars-increase/depressed mood after orgasm/rape
  945. if rape > 0 and rape ! rape_count and orgasm = orgasm_count:
  946. pcs_mood = 10
  947. rape_count = rape
  948. elseif orgasm > 0 and orgasm ! orgasm_count:
  949. pcs_mood = 100
  950. orgasm_count = orgasm
  951. elseif rape > 0 and rape ! rape_count and orgasm > 0 and orgasm ! orgasm_count:
  952. pcs_mood = 100
  953. orgasm_count = orgasm
  954. rape_count = rape
  955. end
  956. !! Drug stats
  957. if StrongNarkota <= 0:
  958. if SNarkTimes >= 3 and SLomka = 0:SLomka = 1
  959. end
  960. if amphCount > 3 and amphHigh <= 0:
  961. addictChance = rand(1,10)
  962. if addictChance > 8:
  963. amphWithdrawl = 2
  964. end
  965. end
  966. if StrongNarkota > 0:
  967. if SLomka > 0:SLomka = 0
  968. pcs_mood = 100
  969. end
  970. !!Health, Willpower, Auto Birth Control pregnancy check
  971. gs 'body', 'RegularUpdate'
  972. gs 'AppearanceSystem'
  973. gs 'body_desc'
  974. if pcs_health >= healthmax:
  975. $pcs_health = '<font color="green">You are very healthy.</font>'
  976. elseif pcs_health >= healthmax * 75 / 100:
  977. $pcs_health = '<font color=#0064FF>You are healthy.</font>'
  978. elseif pcs_health >= healthmax * 50 / 100:
  979. $pcs_health = '<font color="brown">You are not healthy.</font>'
  980. elseif pcs_health >= healthmax * 25 / 100:
  981. $pcs_health = '<font color="red">You are sick.</font>'
  982. else
  983. $pcs_health = '<font color="red">You are on the verge of death.</font>'
  984. end
  985. if pcs_willpwr >= willpowermax:
  986. $pcs_willpwr = '<font color="green">You feel in charge of your actions.</font>'
  987. elseif pcs_willpwr >= willpowermax * 75 / 100:
  988. $pcs_willpwr = '<font color=#0064FF>You are mostly in control.</font>'
  989. elseif pcs_willpwr >= willpowermax * 50 / 100:
  990. $pcs_willpwr = '<font color="brown">You might have to make some concessions.</font>'
  991. elseif pcs_willpwr >= willpowermax * 25 / 100:
  992. $pcs_willpwr = '<font color="red">You will have to toe the line.</font>'
  993. else
  994. $pcs_willpwr = '<font color="red">You are completely at other people''s mercy.</font>'
  995. end
  996. !!stop auto birth control pill taking if the player believes they are pregnant or are pregnant
  997. if (thinkpreg = 1 or knowpreg = 1) and tabletkicheck = 1: tabletkicheck = 0
  998. if birth_control['remind_hour'] > 0 and hour >= birth_control['remind_hour'] and hour <= birth_control['remind_hour'] + 1 and tabletkiday ! daystart:
  999. birth_control['remind_icon'] = 1
  1000. else
  1001. birth_control['remind_icon'] = 0
  1002. end
  1003. !!Mood
  1004. if cheatNoMood = 0:
  1005. maxmood = 100 - moodmodifier
  1006. if pcs_mood > 100:
  1007. pcs_mood = 100
  1008. elseif pcs_mood < 0:
  1009. pcs_mood = 0
  1010. !! Asylum: basically this means clinically insane, like court-ordered committed, saliva dripping, blubbering... Ordinarily irreversible at this stage meaning Game Over, but cheat can help
  1011. end
  1012. else
  1013. pcs_mood = 100
  1014. mood_trauma = 0
  1015. end
  1016. if pcs_mood >= 80:
  1017. $pcs_mood = '<font color="green">You are in a great mood.</font>'
  1018. elseif pcs_mood >= 60:
  1019. $pcs_mood = '<font color=#0064FF>You are in a good mood.</font>'
  1020. elseif pcs_mood >= 40:
  1021. $pcs_mood = '<font color="brown">You are in an OK mood.</font>'
  1022. elseif pcs_mood >= 20:
  1023. $pcs_mood = '<font color="orange">You are in a bad mood.</font>'
  1024. elseif pcs_mood >= 5:
  1025. $pcs_mood = '<font color="red">You are in a terrible mood.</font>'
  1026. else
  1027. $pcs_mood = '<font color="red">You are really depressed and need to improve your mood.</font>'
  1028. end
  1029. if pcs_energy >= 80:
  1030. $pcs_energy = '<font color="green">You couldn''t eat one more bite.</font>'
  1031. elseif pcs_energy >= 40:
  1032. $pcs_energy = '<font color=#0064FF>You''re not really hungry, but a small snack would be very welcome.</font>'
  1033. elseif pcs_energy >= 8:
  1034. $pcs_energy = '<font color="brown">You are hungry.</font>'
  1035. else
  1036. $pcs_energy = '<font color="red">You are very hungry.</font>'
  1037. end
  1038. if pcs_hydra >= 80:
  1039. $pcs_hydra = '<font color="green">You are not thirsty at all.</font>'
  1040. elseif pcs_hydra >= 40:
  1041. $pcs_hydra = '<font color=#0064FF>You are slightly thirsty.</font>'
  1042. elseif pcs_hydra >= 8:
  1043. $pcs_hydra = '<font color="brown">You are thirsty.</font>'
  1044. else
  1045. $pcs_hydra = '<font color="red">You are very thirsty.</font>'
  1046. end
  1047. if pcs_sleep >= 80:
  1048. $pcs_sleep = '<font color="green">You are well rested.</font>'
  1049. elseif pcs_sleep >= 40:
  1050. $pcs_sleep = '<font color=#0064FF>You are slightly tired.</font>'
  1051. elseif pcs_sleep >= 8:
  1052. $pcs_sleep = '<font color="brown">You are tired.</font>'
  1053. else
  1054. $pcs_sleep = '<font color="red">You are very tired.</font>'
  1055. end
  1056. if workFabrika = 1 and week => 1 and week <= 5 and hour > 8 and age => 16 and age < 18 and FabrikaProgulDay ! day or workFabrika = 1 and week => 1 and week <= 5 and hour > 16 and age > 18 and FabrikaProgulDay ! day:
  1057. !!absence from work in a factory in Pavlovsk
  1058. FabrikaProgul += 1
  1059. FabrikaProgulDay = day
  1060. end
  1061. if hotelRoom['pav_hotel'] > 0:
  1062. if hotelRoomDays['pav_hotel'] - 1 = daystart:
  1063. $stat_msg += '<BR>You have 1 night left on your pav hotel booking.'
  1064. elseif hotelRoomDays['pav_hotel'] = daystart and hour < 11:
  1065. $stat_msg += '<BR>Your room at the Pavlosk hotel has check out today at 11:00'
  1066. elseif hotelRoomDays['pav_hotel'] = daystart:
  1067. hotelRoom['pav_hotel'] = 0
  1068. end
  1069. end
  1070. if hotelRoom['city_hotel'] > 0:
  1071. if hotelRoomDays['city_hotel'] - 1 = daystart:
  1072. $stat_msg += '<BR>You have 1 night left on your pav hotel booking.'
  1073. elseif hotelRoomDays['city_hotel'] = daystart and hour < 11:
  1074. $stat_msg += '<BR>Your room at the St Petersburg hotel has check out today at 11:00'
  1075. elseif hotelRoomDays['city_hotel'] = daystart:
  1076. hotelRoom['city_hotel'] = 0
  1077. end
  1078. end
  1079. if hour >= 8 and hour < 14 and week < 6 and mid($start_type,1,2) = 'sg' and SchoolAtestat = 0 and kanikuli = 0 and schoolProgulDay ! daystart:
  1080. !!absence from school
  1081. schoolprogul += 1
  1082. schoolProgulDay = daystart
  1083. end
  1084. if cumcondslip <= 0: cumcondslip_deep = 0
  1085. !!Sex stat update
  1086. stat['mast'] += mastr & mastr = 0
  1087. stat['hj'] += hj & hj = 0
  1088. stat['bj'] += bj & bj = 0
  1089. stat['vaginal'] += sex & sex = 0
  1090. stat['anal'] += anal & anal = 0
  1091. stat['cuni'] += kuni & kuni = 0
  1092. stat['anal_strap_give'] += pegging & pegging = 0
  1093. !!Pain calculation
  1094. paintmp1 = func('shortgs','modul',pain['head'],pain['hair'],pain['ears'],pain['eyebrows'],pain['eyes'],pain['cheeks'],pain['nose'],pain['mouth'])
  1095. paintmp2 = func('shortgs','modul',pain['tummy'],pain['pubic'],pain['vaginal'],pain['labia'],pain['clitoris'],pain['urethra'],pain['cervix'],pain['lips'])
  1096. paintmp3 = func('shortgs','modul',pain['throat'],pain['asscheeks'],pain['asshole'],pain['hips'],pain['thighs'],pain['legL'],pain['legR'],pain['feet'])
  1097. paintmp4 = func('shortgs','modul',pain['toes'],pain['shoulders'],pain['armL'],pain['armR'],pain['hands'],pain['fingers'],pain['chest'],pain['breasts'])
  1098. paintmp5 = func('shortgs','modul',pain['tongue'],pain['neck'],pain['back'],pain['nipples'],pain['ribs'],vgape * 8, agape * 10,spanked * 24)
  1099. pain['total'] = func('shortgs','modul',paintmp1,paintmp2,paintmp3,paintmp4,paintmp5)
  1100. if pain['total'] > 100: pain['total'] = 100
  1101. pain['damage'] = pain['total']
  1102. pain['relief'] = 0
  1103. if alko > 9:
  1104. pain['relief'] = 70
  1105. elseif alko > 6:
  1106. pain['relief'] = 40
  1107. elseif alko > 3:
  1108. pain['relief'] = 15
  1109. end
  1110. if StrongNarkota > 0:
  1111. pain['relief'] = 90
  1112. elseif nark > 0:
  1113. pain['relief'] = 60
  1114. elseif pain['killer'] > 12 and alko <= 9:
  1115. pain['relief'] = 50
  1116. end
  1117. if pain['relief'] ! 0:
  1118. if (pain['total'] / pain['relief']) > 0:
  1119. pain['total'] = pain['total'] / pain['relief']
  1120. elseif pain['total'] > 0:
  1121. pain['total'] = 0
  1122. end
  1123. end
  1124. if pain['total'] > 80:
  1125. if (pcs_health * 5) >= healthmax: pcs_health = pcs_health * 20 / 100
  1126. if (pcs_mood * 5) >= 100: pcs_mood = pcs_mood * 20 / 100
  1127. elseif pain['total'] > 60:
  1128. if (pcs_health * 5 / 2) >= healthmax: pcs_health = pcs_health * 40 / 100
  1129. if (pcs_mood * 5 / 2) >= 100: pcs_mood = pcs_mood * 40 / 100
  1130. elseif pain['total'] > 40:
  1131. if (pcs_health * 5 / 3) >= healthmax: pcs_health = pcs_health * 60 / 100
  1132. if (pcs_mood * 5 / 3) >= 100: pcs_mood = pcs_mood * 60 / 100
  1133. elseif pain['total'] > 20:
  1134. if (pcs_health * 5 / 4) >= healthmax: pcs_health = pcs_health * 80 / 100
  1135. if (pcs_mood * 5 / 4) >= 100: pcs_mood = pcs_mood * 80 / 100
  1136. elseif pain['total'] > 0:
  1137. if (pcs_health * 10 / 9) >= healthmax: pcs_health = pcs_health * 90 / 100
  1138. if (pcs_mood * 10 / 9) >= 100: pcs_mood = pcs_mood * 90 / 100
  1139. end
  1140. !!--------------------------pain calculation end--------------------------------
  1141. !!update skills and attributes to pcs_ from there _lvl values plus adjustments based on condition
  1142. gs 'stat_sklattrib_lvlset'
  1143. !!Sleep variable cap
  1144. if pcs_sleep > 100: pcs_sleep = 100
  1145. if insleep = 0: gs 'stat_display'
  1146. gs 'family_schedule'
  1147. !!--------------------------Job Checks For Icons--------------------------------
  1148. if (acting['shoot_day'] = daystart and actress_cast = 1) or (audition['day'] = daystart):
  1149. acting['icon'] = 1
  1150. else
  1151. acting['icon'] = 0
  1152. end
  1153. if model_job_week < 2 and model['status'] = 1:
  1154. model['icon'] = 1
  1155. else
  1156. model['icon'] = 0
  1157. end
  1158. if pfilmday[0] > 0:
  1159. pornstar['icon'] = 1
  1160. else
  1161. pornstar['icon'] = 0
  1162. end
  1163. if therapistday ! daystart and remindedtherapyday ! daystart and hypnoSchedule = 1 and (hour >= 18 and (minut > 45 or hour >= 19)) and (hour < 20 and (minut < 15 or hour < 19)) and menu_off = 0:
  1164. remindedtherapyday = daystart
  1165. gt 'therapist_reminder'
  1166. end
  1167. !!--------------------------Booty Call SMSs--------------------------------
  1168. if arrsize('$FuckBuddy') > 0 and hour > 1: gs 'booty_call', 'SMS raiser'
  1169. --- stat ---------------------------------