stat.qsrc 30 KB

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