1
0

stat.qsrc 29 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021
  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 MagikDostup = 0: magik_exp = orgasm
  17. if insleep = 0: gs 'stat_sklattrib'
  18. if cheatHealth = 1: dynamic $cheatmenu['std_cure']
  19. if analplay >= 2 and pcs_ass <= 10: pcs_ass += 1 & analplay = 0
  20. if analplay >= 4 and pcs_ass <= 15: pcs_ass += 1 & analplay = 0
  21. if analplay >= 8 and pcs_ass <= 20: pcs_ass += 1 & analplay = 0
  22. !!The following seems to be part of the combat system.
  23. musle[1] = musle
  24. flex[1] = pcs_agil
  25. stamina[1] = pcs_vital * 3
  26. wipo[1] = pcs_sprt
  27. intel[1] = pcs_intel - bimbostupidity
  28. krasota[1] = pcs_apprnc
  29. pcs_hgt[1] = pcs_hgt
  30. salo[1] = salo
  31. fat[1] = fat
  32. Bteh[1] = bteh
  33. Uteh[1] = uteh
  34. Zteh[1] = zteh
  35. !!This is a temporary stop-gap measure for the accomadation skill and will be removed
  36. if succubusflag = 1 and sucskill >= 4:
  37. if pain['throat'] > 0: pain['throat'] = 0 & sucexcess -= 1
  38. if pain['asshole'] > 0: pain['asshole'] = 0 & sucexcess -= 1
  39. if pain['vaginal'] > 0: pain['vaginal'] = 0 & sucexcess -= 1
  40. if vgape > 0: vgape = 0 & vgapetime = 0 & sucexcess -= 1
  41. if agape > 0: agape = 0 & agapetime = 0 & sucexcess -= 1
  42. end
  43. !!mouth cleaning for drinks
  44. if pcs_hydra > hydra_check:
  45. cumspclnt = 2
  46. gs 'cum_cleanup'
  47. end
  48. !!!CHEATS!!!
  49. if cheatWork = 1:work = 0
  50. if cheatWorkKiskis = 1:young_shop_miss = 0
  51. if cheatHapri = 1:pcs_hairbsh = 1
  52. if cheatKlisma = 1:klismaday = daystart & klismaday1 = 1
  53. if cheatNomakeup = 1:
  54. if pcs_makeup = 0: pcs_makeup = 1
  55. end
  56. if cheatNoSweat = 1 and pcs_sweat > 0: pcs_sweat = 0
  57. if cheatNoEat = 1:
  58. if pcs_energy < 35: pcs_energy = 35
  59. end
  60. if cheatNoDrink = 1:
  61. if pcs_hydra < 35: pcs_hydra = 35
  62. end
  63. if cheatNoSleep = 1:
  64. if pcs_sleep < 35: pcs_sleep = 35
  65. end
  66. if cheatBandit = 1 and npc_horny['A66'] < 19: npc_horny['A66'] = 19
  67. if alko > 0 and frost > 0:frost = 0
  68. if StrongNarkota >= 20:
  69. if alko > 0:alko = 0
  70. end
  71. if lernSkill >= 8: intel_exp += 1 & lernSkill = 0
  72. if lern >= 10: intel_exp += 1 & lern = 0
  73. if pav_slut >= 75:KatjaKnowBJ = 1
  74. if pav_slut >= 125 or preg > 0:KatjaKnowSex = 1
  75. shameless = guy + stat['bj'] + stat['anal'] + stat['hj'] + ((slutty + gang) * 2)
  76. moneySUM = money + karta + stolmoney
  77. cumSUM = cumsumbod/40
  78. if husbizvradd > 5:izvratH = 1
  79. if husbharmin > 10:harakHusb = 0
  80. if husband = 0:
  81. husbizvradd = 0
  82. husbharmin = 0
  83. husbandMark = 0
  84. houseslut = 0
  85. end
  86. if SNarkvnesh = 0:SNarkvnesh = 1
  87. if SNarkTimes >= SNarkvnesh * 25:
  88. SNarkvnesh += 1
  89. vidage += 1
  90. end
  91. if gopota >= 20 and gnewQW = 1:gnewQW = 2
  92. if workDisk = 4 and week > 5:workDisk = 1
  93. if workDisk = 3 and week > 5:workDiskAtkPlayer = 1
  94. if bfa < 0: bfa = 0
  95. if pcs_vag > 36: pcs_vag = 36
  96. if pcs_throat > 36: pcs_throat = 36
  97. if pcs_ass > 36: pcs_ass = 36
  98. if NarkImmune = 1:
  99. if narkoman ! 0:narkoman = 0
  100. elseif nark >= 30 and narkoman = 0 and NarkImmune = 0:
  101. narkoman = 1
  102. elseif nark = 0 and narkoman = 1:
  103. narkoman = 0
  104. end
  105. if CheatSlut = 1 or succubusflag = 1:
  106. !!Succubus cannot get pregnant
  107. mesec = 0
  108. FocH = 0
  109. EggRH = 0
  110. Ovulate = 0
  111. fertegg = 0
  112. UnfertEgg = 0
  113. PregChem = 0
  114. preg = 0
  115. LutH = 0
  116. RecovH = 0
  117. babyembryo = 0
  118. cycle = 1
  119. end
  120. if pcs_horny < 50 and cheatHorny = 1: pcs_horny = 50
  121. !!These will be made obsolete with the combat system overhaul
  122. boxing = pcs_jab + pcs_punch + pcs_kick + pcs_def
  123. if boxing > 100: boxing = 100
  124. if MagikDostup = 0:
  125. if pcs_magik > magikhigh:
  126. magikhigh += 1
  127. rikudo += pcs_magik * 100
  128. $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>'
  129. !! This will be replaced when a more advanced physical system is made
  130. if (pcs_magik mod 2 ! 0) and pcs_eyesize < 2: pcs_eyesize += 1
  131. if (pcs_magik mod 2 = 0) and pcs_lashes < 2: pcs_lashes += 1
  132. end
  133. else
  134. !!This is for error catching
  135. killvar 'pcs_magik'
  136. killvar 'rikudo'
  137. killvar 'pcs_splcstng'
  138. end
  139. if pcs_dom < 0: SUB = SUB - pcs_dom & pcs_dom = 0
  140. if SUB < 0: pcs_dom = pcs_dom - SUB & SUB = 0
  141. if pcs_dom > 100: pcs_dom = 100
  142. if SUB > 100: SUB = 100
  143. if SUB >= pcs_dom and pcs_dom > 0:SUB = SUB - pcs_dom & pcs_dom = 0
  144. if pcs_dom >= SUB and SUB > 0:pcs_dom = pcs_dom - SUB & SUB = 0
  145. if pcs_horny < 0: pcs_horny = 0
  146. if pcs_inhib < 0:
  147. pcs_inhib = 0
  148. elseif pcs_inhib > 100:
  149. pcs_inhib = 100
  150. end
  151. healthmax = (pcs_vital * 10 + pcs_stren * 5)
  152. willpowermax = (pcs_intel * 5 + pcs_sprt * 5)
  153. stammax = 5 * (2 * pcs_vital + pcs_agil + pcs_stren) / 2
  154. mannamax = (pcs_intel * pcs_magik) + pcs_magik * 100 + pcs_vital * 10 + rikudo
  155. speed = (2 * (pcs_stren + pcs_agil) + pcs_vital) / 5
  156. if healthmax < 1: healthmax = 1
  157. if willpowermax < 1: willpowermax = 1
  158. if stammax < 1: stammax = 1
  159. if mannamax < 1: mannamax = 1
  160. !pre-calc max value for later display
  161. if fairycurse >= daystart and fairyshoo > 0: pcs_horny = 90
  162. if min_arousal > pcs_horny: pcs_horny = min_arousal
  163. if Enable_lockhorny > 0 and pcs_horny < Enable_lockhorny - 1: pcs_horny = Enable_lockhorny - 1
  164. if pcs_horny < 0: pcs_horny = 0
  165. if pcs_health > healthmax: pcs_health = healthmax
  166. if pcs_willpwr > willpowermax: pcs_willpwr = willpowermax
  167. if pcs_stam > stammax: pcs_stam = stammax
  168. if pcs_manna > mannamax: pcs_manna = mannamax
  169. if pcs_mood > 100: pcs_mood = 100
  170. if hypnoAddict = 1 and pcs_horny < 30:
  171. pcs_horny = 30
  172. elseif hypnoAddict = 2 and pcs_horny < 50:
  173. pcs_horny = 50
  174. end
  175. if cumloc[0] = 1 or cumloc[3] = 1 or hypnoAddict = 0:
  176. killvar 'missCum'
  177. elseif missCum > timeTresh:
  178. if pcs_horny < 90: pcs_horny = 90
  179. if preziktype = 0: prezikcount = prezik
  180. if preziktype = 2: preziksabo = prezik
  181. prezik = 0
  182. preziktype = 1
  183. end
  184. !!!!!!!!!!!
  185. !!!TIME!!!
  186. !!!!!!!!!!!
  187. if nminut ! minut or nhour ! hour:
  188. ! Zero totminut will be at New Years Eve of 2015
  189. ! Years since 2015 in days
  190. totminut = (year - 2015) * 365
  191. ! Days this year
  192. if month > 1 : totminut += 31 & ! Jan
  193. if month > 2 : totminut += 28 & ! Feb
  194. if month > 3 : totminut += 31 & ! Mar
  195. if month > 4 : totminut += 30 & ! Apr
  196. if month > 5 : totminut += 31 & ! May
  197. if month > 6 : totminut += 30 & ! Jun
  198. if month > 7 : totminut += 31 & ! Jul
  199. if month > 8 : totminut += 31 & ! Aug
  200. if month > 9 : totminut += 30 & ! Sep
  201. if month > 10: totminut += 31 & ! Oct
  202. if month > 11: totminut += 30 & ! Nov
  203. if month > 12: totminut += 31 & ! Dec
  204. if month > 13: totminut += 31 & ! Jan rollover sanity check
  205. totminut += day
  206. ! Hours
  207. totminut = totminut * 24 + hour
  208. ! Minutes
  209. totminut = totminut * 60 + minut + sec / 60
  210. nminut = minut
  211. nhour = hour
  212. end
  213. !!painkiller
  214. if pain['killer'] > 0:
  215. if pain['killer'] = 1: pain_timer = totminut - 2
  216. pain['killer'] = totminut - pain_timer
  217. if pain['killer'] >= 243: pain['killer'] = 0
  218. end
  219. ! WD: 'daystart' Should start at 1
  220. if daystart = 0: daystart = 1
  221. !!Gaping of vagina recovery time
  222. if vgape > 0:
  223. if vgapetime = 0: vgapetime = totminut
  224. if (vgapetime + 60) <= totminut:vgape -= 1 & vgapetime = 0
  225. end
  226. !!Gaping of anus recovery time
  227. if agape > 0:
  228. if agapetime = 0: agapetime = totminut
  229. if (agapetime + 90) <= totminut:agape -= 1 & agapetime = 0
  230. end
  231. !!Recovery from spanking - will be superseded by pain system
  232. if spanked > 0:
  233. if spankedtime = 0: spankedtime = totminut
  234. if (spankedtime + 2040) <= totminut:spanked -= 1 & spankedtime = 0
  235. end
  236. !! Orgasmic cooldown
  237. if orgasmic ! 0:
  238. if orgasmic < totminut - 30: orgasmic = 0 & pcs_horny = 0
  239. end
  240. !!!!!!!!!!!!!!! Heels pain and skill gain
  241. !! This compares the player heels skill to the skill required to wear any heels the player
  242. !! currently wears. If the skill needed is greater than the player currently possesses,
  243. !! the pain in the feet increases and the player earns heels skill. If the skill required
  244. !! is lower, the player might still get experience, depending on how much much greater the
  245. !! player skill is.
  246. !! Variables
  247. !! pcs_heels is the main heels skill
  248. !! heels_exp is used when the player gains experience using heels
  249. !! heels_deg is used when the player neglects their heels
  250. !! PShoHeels tracks the height of the heels currently worn
  251. !! heelsminut tracks when the heels skill was last changed
  252. !! heelsRequiredskill substitutes PShoHeels to allow comparison with pcs_heels
  253. !! heelsSkilldiff tracks difference between the players current and skill required by heels
  254. !! Required skill for various heel sizes
  255. !! 1 flats - 0
  256. !! 2 low heel - 5
  257. !! 3 Mid heel - 15
  258. !! 4 High heel - 25
  259. !! 5 ultra high heel - 40
  260. !! 6 fetish heel - 60
  261. !! Only run if at least X minutes have passed since last time
  262. if totminut >= heelsminut + 120:
  263. heelsminut = totminut
  264. !! Only check experience and pain gain and if the player wears heels, flats give nothing
  265. if PShoHeels > 1:
  266. if PShoHeels = 2:
  267. heelsRequiredskill = 5
  268. elseif PShoHeels = 3:
  269. heelsRequiredskill = 15
  270. elseif PShoHeels = 4:
  271. heelsRequiredskill = 25
  272. elseif PShoHeels = 5:
  273. heelsRequiredskill = 40
  274. elseif PShoHeels = 6:
  275. heelsRequiredskill = 60
  276. end
  277. !! stat is called a lot, there should be a limit to how much exp and pain you can accumulate...
  278. !! If the player skill is below the required skill, give heel_exp and apply ache
  279. if pcs_heels < heelsRequiredskill:
  280. heelsSkilldiff = heelsRequiredskill - pcs_heels
  281. if heelsSkilldiff <= 5:
  282. heels_exp += rand(3,6)
  283. if pain['feet'] < 40: gs 'pain', rand(0,1), 'feet', 'ache'
  284. elseif heelsSkilldiff <= 10:
  285. heels_exp += rand(5,9)
  286. if pain['feet'] < 50: gs 'pain', rand(0,2), 'feet', 'ache'
  287. elseif heelsSkilldiff <= 15:
  288. heels_exp += rand(7,12)
  289. if pain['feet'] < 60: gs 'pain', rand(1,3), 'feet', 'ache'
  290. elseif heelsSkilldiff <= 20:
  291. heels_exp += rand(9,15)
  292. if pain['feet'] < 70: gs 'pain', rand(2,4), 'feet', 'ache'
  293. elseif heelsSkilldiff > 20:
  294. heels_exp += rand(12,20)
  295. if pain['feet'] < 80: gs 'pain', rand(3,5), 'feet', 'ache'
  296. end
  297. !! Player skill is equal to or higher than the required skill
  298. !! Maybe have excessive skill result in no gain, or even a degrading skill?
  299. else
  300. heelsSkilldiff = pcs_heels - heelsRequiredskill
  301. if heelsSkilldiff <= 5:
  302. heels_exp += rand(3,6)
  303. elseif heelsSkilldiff <= 10:
  304. heels_exp += rand(2,4)
  305. elseif heelsSkilldiff <= 15:
  306. heels_exp += rand(1,2)
  307. elseif heelsSkilldiff <= 20:
  308. heels_exp += 0
  309. elseif heelsSkilldiff > 20:
  310. heels_deg -= rand(0,1)
  311. end
  312. end
  313. !! If not wearing heels, degrade heels skill
  314. else
  315. heels_deg -= rand(0,1)
  316. end
  317. !!Bimbo shoe check so bonus will be applied
  318. if PShoStyle = 2: bimbosh = 1
  319. if PShoStyle ! 2: bimbosh = 0
  320. end
  321. !!!!!!!!!!!!!!! End heels
  322. if sec >= 60:
  323. :loopsec
  324. minut += 1
  325. sec -= 60
  326. if sec >= 60:jump 'loopsec'
  327. end
  328. if minut >= 60:
  329. :loopmin
  330. hour += 1
  331. minut -= 60
  332. if SbrosNerdism = 1:pcs_nerd = pcs_sprt / 10 - orgasm
  333. if pcs_nerd < 0:pcs_nerd = 0
  334. if obkvsdam > 0:obkvsdam = rand(2, 5)
  335. if scpopt > 1: scpopt = 0
  336. if insleep = 1:
  337. if amphHigh > 0:
  338. pcs_energy -= (4 / amphetamineBonus + succublvl/2)
  339. pcs_hydra -= (8 / amphetamineBonus + succublvl/2)
  340. else
  341. pcs_energy -= (4 * amphetamineBonus + succublvl/2)
  342. pcs_hydra -= (8 * amphetamineBonus + succublvl/2)
  343. end
  344. pcs_stam += stammax / 10
  345. pcs_sleep -= 4
  346. if alko > 0: alko -= 1
  347. else
  348. if amphHigh > 0:
  349. pcs_energy -= (8 / amphetamineBonus + succublvl)
  350. pcs_hydra -= (16 / amphetamineBonus + succublvl)
  351. else
  352. pcs_energy -= (8 * amphetamineBonus + succublvl)
  353. pcs_hydra -= (16 * amphetamineBonus + succublvl)
  354. end
  355. pcs_stam += stammax / 20
  356. pcs_sleep -= 4
  357. end
  358. if pcs_stam > stammax: pcs_stam = stammax
  359. gs 'femcyc'
  360. if hypnoAddict > 0:dynamic $hypnoAddiction
  361. !!manna regen
  362. pcs_manna += mannamax / 20
  363. if alko > 0 and alkoblock = 0:
  364. if alko >= 6:
  365. if pcs_run > 0: run_deg -= 1
  366. if vball_lvl >= 50: vball_deg -= 1
  367. if alko >= 10:
  368. if pcs_stren > 10: stren_deg -= 1
  369. if pcs_vital > 10: vital_deg -= 1
  370. if pcs_intel > 10: intel_deg -= 1
  371. alko -= rand (0,1)
  372. end
  373. end
  374. alko -= rand (0,1)
  375. end
  376. !!!!!!!!!!!!!
  377. !!!Avtoboy!!!
  378. !!!!!!!!!!!!!
  379. if hour >= 8 and hour <= 23 and NPCnum > 10 and insleep = 0:
  380. :markturnirotbort
  381. xf = 0
  382. :markturnirotbortt
  383. xf += 1
  384. turnirFighter[xf] = rand(2, NPCnum)
  385. if xf < 2:jump 'markturnirotbortt'
  386. if turnirFighter[1] = turnirFighter[2]:jump 'markturnirotbort'
  387. a = turnirFighter[1]
  388. i = turnirFighter[2]
  389. NoView = 1
  390. gs 'Autofight'
  391. end
  392. !!!!!!!!!!!!!
  393. if shame > 0:shame -= 1 & pcs_mood -= 5
  394. if smoker >= 20:smokerNeed += 1
  395. if smokerNeed > 10 and InSleep = 0 and pcs_mood > 20:pcs_mood -= pcs_mood / 10
  396. if smokerNeed > 300:smokerNeed = 0 & smoker = 0
  397. if StrongNarkota > 0:pcs_mood -= (40 / StrongNarkota) & StrongNarkota -= 1
  398. if amphWithdrawl >= 5: amphWithdrawl += 1 & pcs_mood -= (amphWithdrawl / 5)
  399. if amphHigh > 0:
  400. if amphWithdrawl < 2: amphWithdrawl = 2
  401. amphetamineBonus = 3
  402. amphHigh -= 4
  403. pcs_mood += (2 * amphHigh)
  404. elseif amphHigh <= 0 and amphWithdrawl = 2:
  405. if amphIntake > 0:
  406. amphIntake -= 1
  407. else
  408. amphWithdrawl = 0
  409. end
  410. amphHigh = 0
  411. amphetamineBonus = 2
  412. pcs_mood -= pcs_mood / 10
  413. elseif amphIntake > 0:
  414. amphWithdrawl += 1
  415. elseif amphHigh = 0 and amphWithdrawl = 0:
  416. amphetamineBonus = 1
  417. end
  418. if amphWithdrawl > 169: amphWithdrawl = 1 & amphetamineBonus = 1 & amphCount = 0
  419. if SLomka > 0 and pcs_mood > 10:SLomka += 1 & pcs_mood -= pcs_mood / 10
  420. if SLomka > 100 and StrongNarkota <= 0:SLomka = 0 & SNarkTimes = 0
  421. if narkoman = 1 and narkday ! daystart:
  422. pcs_health -= 5
  423. pcs_willpwr -= 5
  424. pcs_mood -= 10
  425. end
  426. if $pantyworntype = 'none' and PCloPants > 0 and PCloPanties = 0 and $clothingworntype ! 'nude':mosol += 1
  427. if mosol >= 50: pcs_mood -= 5
  428. if mosol >= 30 and pain['pubic'] < 80: gs 'pain', 1, 'pubic', 'ache'
  429. if pcs_energy > 100:
  430. fat += (pcs_energy - 100) / 4
  431. pcs_energy = 100
  432. elseif pcs_energy <= (10 + vitalbuf / 25) and fat > (2 + vitalbuf / 25):
  433. pcs_energy += 6
  434. fat -= 2
  435. end
  436. if pcs_hydra > 200: pcs_hydra = 200
  437. if mosol > 0:
  438. if $pantyworntype ! 'none' or $clothingworntype = 'nude' or PCloPanties = 1:mosol -= rand(0,1)
  439. end
  440. if pcs_lipbalm > 0:pcs_lipbalm -= 1
  441. if sickstage = 1:sick += 1 & sicktimer += 1
  442. if sickstage = 1 and sicktimer >= 80:sicktimer = 0 & sickstage = 2
  443. if sickstage = 2 and sick > 0:sick -= 1
  444. if sickstage = 2 and sick <= 0:sick = 0 & sickstage = 0
  445. if perkice > 0:perkice -= 1
  446. if frost > 0:frost -= 1
  447. if KGOLpers > 0:
  448. if KGHP < KGHPMAX:KGHP += 10
  449. if KGManna < KGMannaMax:KGManna += 10
  450. end
  451. !! pain[0] = pain['total'] , pain[1] = pain['damage'] , pain[2] = pain['relief']
  452. i = arrsize('pain')
  453. :statpainloop
  454. if i > 0:
  455. i -= 1
  456. pain[i] -= rand(0,1)
  457. if pain[i] < 0: pain[i] = 0
  458. jump 'statpainloop'
  459. end
  460. !! Panty happiness gain
  461. if pcs_mood < 60 and $pantyworntype = 'kats': pcs_mood += 2
  462. if pcs_mood < 60 and $braworntype = 'kats': pcs_mood += 2
  463. !!Arousal adjustments
  464. if ($pantyworntype = 'exhibitionist' and $braworntype = 'exhibitionist') and pcs_horny < 25:
  465. pcs_horny += 10
  466. elseif pcs_horny < 10 and ($pantyworntype = 'exhibitionist' or $braworntype = 'exhibitionist'):
  467. pcs_horny += 5
  468. end
  469. if aphrodisiac_timer >= 1:
  470. if pcs_horny < 80:
  471. pcs_horny = 80
  472. else
  473. pcs_horny += 10
  474. end
  475. aphrodisiac_timer -= 1
  476. end
  477. if $pantyworntype ! 'none' and clit_size >= 25 and pcs_horny < 60:pcs_horny += 20
  478. if insleep = 0:
  479. pcs_sweat += rand(0,1)
  480. if temper >= 20: pcs_sweat += rand(0,1)
  481. end
  482. ! vovan edition, from 1.2.5
  483. if huntersAndreisex > 0: huntersAndreisex -= 1
  484. if huntersSergeisex > 0: huntersSergeisex -= 1
  485. if huntersIgorsex > 0: huntersIgorsex -= 1
  486. if huntslutsex > 0: huntslutsex -= 1
  487. if mira_go_blok > 0: mira_go_blok -= 1
  488. if mira_no_home > 0: mira_no_home -= 1
  489. gs 'traits', 'hourly'
  490. gs 'outdoors', 'weather'
  491. if minut >= 60:jump 'loopmin'
  492. end
  493. if hour >= 24: gs 'cikl'
  494. if minut < 10:
  495. $nilmin = '0'
  496. else
  497. $nilmin = ''
  498. end
  499. if kid > 0:
  500. i = arrsize('yearkid')
  501. :LoopKidAgeCounter
  502. if i >= 0:
  503. if yearkid[i] = year + 1 and monthkid[i] = month and daykid[i] = day: msg'It is <<$kidname[i]>>''s birthday today.'
  504. i -= 1
  505. jump 'LoopKidAgeCounter'
  506. end
  507. end
  508. if pcs_nerd > 0:
  509. if lastreadday = daystart:
  510. !!<font color="green">You are completely healthy shine and a healthy glow.</font>
  511. pcs_mood = 100
  512. SbrosNerdism = 0
  513. $mudnerd = '<font color="green">You are lost in a fantasy after reading a book.</font>'
  514. end
  515. if lastreadday + 1 = daystart:
  516. SbrosNerdism = 0
  517. $mudnerd = '<font color="black">You are a little bored and want to plunge into a book.</font>'
  518. end
  519. if lastreadday + 2 = daystart:
  520. SbrosNerdism = 0
  521. if pcs_mood > 50:pcs_mood -= 10
  522. $mudnerd = '<font color="red">You really want to read something.</font>'
  523. end
  524. if lastreadday + 3 <= daystart:
  525. if pcs_mood > 10:pcs_mood -= 10
  526. SbrosNerdism = 1
  527. $mudnerd = '<font color="red"><b>You have an incredibly strong desire to read!!!</b></font>'
  528. end
  529. else
  530. SbrosNerdism = 0
  531. $mudnerd = ''
  532. end
  533. if bimbolevel > 0:
  534. if bimbowithdrawal = 0:
  535. $bimbostatus = '<font color = #FF1493>You''re, like, super hawt today.</font>'
  536. elseif bimbowithdrawal = 1:
  537. $bimbostatus = '<font color="green">You feel, like, kind of lame today.</font>'
  538. elseif bimbowithdrawal < 4:
  539. $bimbostatus = '<font color="grey">You feel, like, totally lame today.</font>'
  540. elseif bimbowithdrawal < 6:
  541. if pcs_mood > 50: pcs_mood -= 10
  542. $bimbostatus = '<font color="red">You really feel, like, awful today.</font>'
  543. elseif bimbowithdrawal >= 6:
  544. if pcs_mood > 10: pcs_mood -= 10
  545. $bimbostatus= '<font color="red"><b>You feel that, like, horrible today!</b></font>'
  546. end
  547. if bimbowithdrawal > 30:
  548. bimbowithdrawal = 0
  549. bimbo = 0
  550. bimbolevel = 0
  551. $stat_msg += '<BR>You suddenly feel as if your head is clear, instead of filled with pink thoughts.'
  552. end
  553. else
  554. bimbowithdrawal = 0
  555. $bimbostatus = ''
  556. end
  557. !
  558. ! WD: Triggers every 15 minutes if not sleeping
  559. ! Update to remove long iterations on loading saves from previous versions
  560. ! Do Nothing if sleeping, invalid Trig15Minute value or more than 6 hours 16 minute pass
  561. if InSleep ! 0 or Trig15Minute > totminut or (totminut - Trig15Minute) >= 376:
  562. set Trig15Minute = totminut
  563. ! More than 15 minutes since last check
  564. else
  565. if (totminut - Trig15Minute) >= 15:
  566. ! begin Loop
  567. :Trig15MinuteLoop
  568. ! Horny Actions
  569. if pcs_horny > 100:
  570. set Trig15Minute = totminut
  571. else
  572. set Trig15Minute += 15
  573. ! WD: Fix vibrator arousal to trigger every 15 minutes, moved from 'time' location
  574. if vibratorin = 1:pcs_horny += rand(1, 5)
  575. ! WD: Fixed Piecing arousal to trigger every 15 minutes, instead of once per day
  576. if pcs_horny < 70:
  577. hornystat = 0
  578. if pirsF > 0 and pirsF < 10000:hornystat += 1
  579. if pirsG > 0 and pirsG < 10000:hornystat += 1
  580. hornyStat = hornystat * 4
  581. if pirsA > 0 and pirsA < 10000:hornystat += 1
  582. if pirsB > 0 and pirsB < 10000:hornystat += 1
  583. if pirsC > 0 and pirsC < 10000:hornystat += 1
  584. if pirsD > 0 and pirsD < 10000:hornystat += 1
  585. if pirsE > 0 and pirsE < 10000:hornystat += 1
  586. if pirsN > 0 and pirsN < 10000:hornystat += 1
  587. set pcs_horny += hornyStat / 4 + rand(1,4) <= hornyStat mod 4 & ! Apply 1/4 of value on average
  588. end
  589. ! WD: Clothing
  590. if CloStyle = 4 and pcs_horny < 70:set pcs_horny += rand(0, 2)
  591. if (PCloSkirt > 5 or PCloPants > 5) and pcs_horny < 50:set pcs_horny += rand(0, 1)
  592. if PCloTopCut = 4 and pcs_horny < 50:set pcs_horny += rand(0, 1)
  593. end
  594. !!SECTION: Bimbo (15 minute interval update checks)
  595. if bimbolevel = 2:
  596. if pcs_mood < 100:pcs_mood += ((pcs_mood / 100) * (rand(0,1)))
  597. if pcs_horny < 25:pcs_horny = 25
  598. if pcs_horny < 100:pcs_horny += 1
  599. end
  600. if bimbolevel = 3:
  601. if (pcs_mood < 100):pcs_mood += ((pcs_mood / 100) * (rand(0,2)))
  602. if pcs_horny < 50:pcs_horny = 50
  603. if pcs_horny < 100:pcs_horny += 2
  604. end
  605. !! This is the Succubus non-direct injection (pun intented) sex to sexnutrition and the sexnutrition conversion handling
  606. if succubusflag = 1:
  607. if pcs_horny < 50: pcs_horny = 50
  608. if pcs_horny < 100: pcs_horny += succublvl
  609. if succhungry > 0:
  610. pcs_energy -= succhungry * succublvl
  611. pcs_hydra -= succhungry * succublvl
  612. pcs_sleep -= succhungry * succublvl
  613. end
  614. cumres_idx = arrpos('sparrloc',12)
  615. if cumres_idx >= 0 and sparrvol[cumres_idx] > 0:sexnutrition += 4 & gs 'cum_cleanup', 'cleanloc', 12
  616. cumres_idx = arrpos('sparrloc',0)
  617. if cumres_idx >= 0 and cumsumvag > 0:sexnutrition += cumsumvag * 4 & gs 'cum_cleanup', 'cleanloc', 0
  618. if cumres_idx >= 0 and cumsumass > 0:sexnutrition += cumsumass * 4 & gs 'cum_cleanup', 'cleanloc', 3
  619. if arrsize('sparrvol') > 0:
  620. suctempi = -1
  621. :SuccAbsorbLoop
  622. suctempi += 1
  623. if suctempi <= 1 or suctempi = 4 or suctempi >= 8:
  624. if suctempi = 12: jump 'SuccAbsorbLoop'
  625. suctemparr = arrpos('sparrloc',suctempi)
  626. if suctemparr >= 0 and sparrloc[suctemparr] = suctempi and sparrvol[suctemparr] > 0:
  627. sexnutrition += succublvl * 5
  628. cumsumbod -= sparrvol[suctemparr]
  629. succubxp += 2
  630. sucabscum = 1
  631. gs 'cum_cleanup', 'cleandeposit', suctemparr
  632. cumloc[suctempi] = 0
  633. spdirty = 0
  634. cumloc[1] = 0
  635. cumloc[2] = 0
  636. cumloc[4] = 0
  637. cumloc[5] = 0
  638. cumloc[6] = 0
  639. cumloc[7] = 0
  640. cumloc[11] = 0
  641. cumloc[14] = 0
  642. !! debug code $stat_msg += '<BR>Absorb ext <<sexnutrition>>'
  643. end
  644. end
  645. if suctempi < 17:jump 'SuccAbsorbLoop'
  646. end
  647. if suclezsex < lesbian:
  648. sexnutrition += succublvl * 20
  649. suclezsex = lesbian
  650. succubxp += 3
  651. sucabslez = 1
  652. end
  653. if sexnutrition > 0:
  654. if sucskill >= 3 and succublvl >= 2: sexnutrition += (sexnutrition * 2) / 10
  655. if sucabslez = 1 and sucabscum = 1:
  656. $sucabs1 = 'absorbed energy from the woman you had sex with'
  657. $sucabs2 = ' and you '
  658. $sucabs3 = 'absorb the semen in your body'
  659. elseif sucabscum = 1:
  660. $sucabs3 = 'absorb the semen in your body'
  661. elseif sucabslez = 1:
  662. $sucabs1 = 'absorbed energy from the woman you had sex with'
  663. else
  664. !!Debug code
  665. $stat_msg += '<BR>SOMETHING HAPPENED!'
  666. end
  667. $stat_msg += '<BR>You <<$sucabs1>><<$sucabs2>><<$sucabs3>>, gaining nourishment.'
  668. sucabslez = 0 & sucabscum = 0
  669. $sucabs1 = '' & $sucabs2 = '' & $sucabs3 = ''
  670. if (pcs_mood < 100): pcs_mood += ((pcs_mood / 100) * 5)
  671. if pcs_energy > 100: entemp = (pcs_energy - 100)
  672. if sucexcess < 0 and sexnutrition > 20 and pcs_energy > 30:
  673. if sexnutrition - 20 >= (0 - sucexcess) * 2:
  674. sexnutrition += sucexcess * 2
  675. sucexcess = 0
  676. else
  677. sucexcess += (sexnutrition - 20) / 2
  678. sexnutrition = 20
  679. end
  680. end
  681. pcs_energy += sexnutrition / 2
  682. pcs_sleep += sexnutrition / 20
  683. if succhungry > 0: succhungry = 0
  684. sexnutrition = 0
  685. if pcs_energy > 100: sucexcess += (pcs_energy - entemp - 100) & pcs_energy = 100 + entemp & killvar 'entemp'
  686. end
  687. end
  688. !! safeguards to prevent bimbolevel from going above or below its intended limits
  689. if bimbolevel > 3: bimbolevel = 3
  690. if bimbolevel < 0: bimbolevel = 0
  691. ! do loop
  692. if (totminut - Trig15Minute) >= 15:jump 'Trig15MinuteLoop'
  693. end
  694. end
  695. !!!!!!!!!!!!!
  696. !!!ENERGY!!!
  697. !!!!!!!!!!!!!
  698. if succubusflag = 1:
  699. if pcs_energy < 0:
  700. if salo >= 1:
  701. if cheatNoFat = 0: salo -= 2
  702. pcs_energy += 8 + succublvl
  703. else
  704. pcs_energy += 8 + succublvl
  705. sucexcess -= (8 + succublvl) * (6 - succublvl)
  706. end
  707. end
  708. if pcs_health < 0:
  709. pcs_health = 10
  710. sucexcess -= 25 * (9 - succublvl)
  711. end
  712. if pcs_willpwr < 0:
  713. pcs_willpwr = 10
  714. sucexcess -= 20 * (9 - succublvl)
  715. sucpowzeroed = 4
  716. end
  717. end
  718. if pcs_sleep < 0:
  719. pcs_sleep = 0
  720. pcs_mood -= 5
  721. end
  722. if pcs_energy < 0:
  723. pcs_energy = 0
  724. pcs_health -= 5
  725. if salo = 0 and pcs_stren + pcs_vital > 0:
  726. stren_deg -= 1
  727. vital_deg -= 1
  728. pcs_energy += 8
  729. elseif salo = 0 and pcs_stren + pcs_vital <= 0:
  730. if Enable_nogameover = 0 :
  731. over = 3
  732. gt'gameover'
  733. exit
  734. else
  735. $stat_msg += '<BR><font color=red><B>You starved to death, but Cheat Mode keeps you Alive.</B></font>'
  736. salo = 1
  737. end
  738. elseif salo > 0:
  739. if cheatNoFat = 0: salo -= 1
  740. pcs_energy += 8
  741. end
  742. end
  743. if pcs_hydra <= 0:
  744. pcs_hydra = 1
  745. pcs_health -= 5
  746. pcs_willpwr -= 1
  747. end
  748. !!Set hydra_check value
  749. hydra_check = pcs_hydra
  750. if pcs_mood <= 0:
  751. pcs_mood = 1
  752. pcs_health -= 5
  753. pcs_willpwr -= 5
  754. end
  755. if pcs_health < 0:
  756. if Enable_nogameover = 0 :
  757. over = 1
  758. gt'gameover'
  759. exit & !nogameover by illume
  760. else
  761. $stat_msg += '<BR><font color=red><B>You died from injuries, but Cheat Mode keeps you Alive.</B></font>'
  762. pcs_health = 0
  763. end
  764. end
  765. if pcs_willpwr <= 0 :
  766. !this will set willpower to 0 correctly; then check mana =1 for insane-gameover(pcs_willpwr=0&mana=1).
  767. if pcs_mood <= 1:
  768. if Enable_nogameover = 0 :
  769. over = 2
  770. gt'gameover'
  771. exit & !nogameover by illume
  772. else
  773. $stat_msg += '<BR><font color=red><B>You are insane, but Cheat Mode keeps you Alive.</B></font>'
  774. !pcs_mood already checked for >=1 in line 1113 if pcs_mood <= 0, no need to set another one
  775. end
  776. end
  777. pcs_willpwr = 0
  778. end
  779. !!cars-increase/depressed mood after orgasm/rape
  780. if rape > 0 and rape ! rape_count and orgasm = orgasm_count:
  781. pcs_mood = 10
  782. rape_count = rape
  783. elseif orgasm > 0 and orgasm ! orgasm_count:
  784. pcs_mood = 100
  785. orgasm_count = orgasm
  786. elseif rape > 0 and rape ! rape_count and orgasm > 0 and orgasm ! orgasm_count:
  787. pcs_mood = 100
  788. orgasm_count = orgasm
  789. rape_count = rape
  790. end
  791. gs 'body'
  792. !!!!!!!!!!!!!
  793. if pcs_health >= healthmax:
  794. $pcs_health = '<font color="green">You are very healthy.</font>'
  795. elseif pcs_health >= healthmax * 75 / 100:
  796. $pcs_health = '<font color=#0064FF>You are healthy.</font>'
  797. elseif pcs_health >= healthmax * 50 / 100:
  798. $pcs_health = '<font color="brown">You are not healthy.</font>'
  799. elseif pcs_health >= healthmax * 25 / 100:
  800. $pcs_health = '<font color="red">You are sick.</font>'
  801. else
  802. $pcs_health = '<font color="red">You are on the verge of death.</font>'
  803. end
  804. if pcs_willpwr >= willpowermax:
  805. $pcs_willpwr = '<font color="green">Your mind is clear.</font>'
  806. elseif pcs_willpwr >= willpowermax * 75 / 100:
  807. $pcs_willpwr = '<font color=#0064FF>You are mostly clear of mind.</font>'
  808. elseif pcs_willpwr >= willpowermax * 50 / 100:
  809. $pcs_willpwr = '<font color="brown">You are depressed.</font>'
  810. elseif pcs_willpwr >= willpowermax * 25 / 100:
  811. $pcs_willpwr = '<font color="red">You have depression.</font>'
  812. else
  813. $pcs_willpwr = '<font color="red">You are on the verge of madness.</font>'
  814. end
  815. !!Mood
  816. if cheatNoMood = 0:
  817. maxmood = 100 - moodmodifier
  818. if pcs_mood > 100:
  819. pcs_mood = 100
  820. elseif pcs_mood < 0:
  821. pcs_mood = 0
  822. !! 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
  823. end
  824. else
  825. pcs_mood = 100
  826. end
  827. if pcs_mood >= 80:
  828. $pcs_mood = '<font color="green">You are in a great mood.</font>'
  829. elseif pcs_mood >= 60:
  830. $pcs_mood = '<font color=#0064FF>You are in a good mood.</font>'
  831. elseif pcs_mood >= 40:
  832. $pcs_mood = '<font color="brown">You are in an OK mood.</font>'
  833. elseif pcs_mood >= 20:
  834. $pcs_mood = '<font color="orange">You are in a bad mood.</font>'
  835. elseif pcs_mood >= 5:
  836. $pcs_mood = '<font color="red">You are in a terrible mood.</font>'
  837. else
  838. $pcs_mood = '<font color="red">You are really depressed and need to improve your mood.</font>'
  839. end
  840. if pcs_energy >= 80:
  841. $pcs_energy = '<font color="green">You couldn''t eat one more bite.</font>'
  842. elseif pcs_energy >= 40:
  843. $pcs_energy = '<font color=#0064FF>You''re not really hungry, but a small snack would be very welcome.</font>'
  844. elseif pcs_energy >= 8:
  845. $pcs_energy = '<font color="brown">You are hungry.</font>'
  846. else
  847. $pcs_energy = '<font color="red">You are very hungry.</font>'
  848. end
  849. if pcs_hydra >= 80:
  850. $pcs_hydra = '<font color="green">You are not thirsty at all.</font>'
  851. elseif pcs_hydra >= 40:
  852. $pcs_hydra = '<font color=#0064FF>You are slightly thirsty.</font>'
  853. elseif pcs_hydra >= 8:
  854. $pcs_hydra = '<font color="brown">You are thirsty.</font>'
  855. else
  856. $pcs_hydra = '<font color="red">You are very thirsty.</font>'
  857. end
  858. if pcs_sleep >= 80:
  859. $pcs_sleep = '<font color="green">You are well rested.</font>'
  860. elseif pcs_sleep >= 40:
  861. $pcs_sleep = '<font color=#0064FF>You are slightly tired.</font>'
  862. elseif pcs_sleep >= 8:
  863. $pcs_sleep = '<font color="brown">You are tired.</font>'
  864. else
  865. $pcs_sleep = '<font color="red">You are very tired.</font>'
  866. end
  867. 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:
  868. !!absence from work in a factory in Pavlovsk
  869. FabrikaProgul += 1
  870. FabrikaProgulDay = day
  871. end
  872. if hotelroom > 0:
  873. if hotelroom1day = daystart: $stat_msg += '<BR>You have 1 night left on your hotel booking.'
  874. if hotelroom1day < daystart and hour <= 11: $stat_msg += '<BR>Your hotel booking has expired and you cannot return to your room after 11:00'
  875. if hotelroom1day < daystart and hour > 11: hotelroom = 0
  876. end
  877. if hour >= 8 and hour < 14 and week < 6 and StoryLine > 0 and SchoolAtestat = 0 and kanikuli = 0 and schoolProgulDay ! daystart:
  878. !!absence from school
  879. schoolprogul += 1
  880. schoolProgulDay = daystart
  881. end
  882. if cumcondslip <= 0: cumcondslip_deep = 0
  883. if insleep = 0: gs 'stat_display'
  884. --- stat ---------------------------------