stat.qsrc 41 KB

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