stat.qsrc 29 KB

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