1
0

stat.qsrc 29 KB

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