1
1

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