stat.qsrc 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020
  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 = 239 & gs''daystart'' & gs''stat''">end of August</a> or <a href="exec:daystart_start = 153 & gs''daystart'' & gs''stat''">beginning of June</a>?'
  11. exit
  12. end
  13. $BACKIMAGE = ''
  14. view
  15. rand1 = rand(0,100)
  16. $stat_msg=''
  17. if daystage = 1:
  18. $daystage['desc'] = 'dawn'
  19. elseif daystage = 2:
  20. $daystage['desc'] = 'mid_day'
  21. elseif daystage = 3:
  22. $daystage['desc'] = 'sunset'
  23. elseif daystage = 4:
  24. $daystage['desc'] = 'early_night'
  25. elseif daystage = 5:
  26. $daystage['desc'] = 'mid_night'
  27. elseif daystage = 6:
  28. $daystage['desc'] = 'pre_dawn'
  29. end
  30. if $start_type[1] ! 'nomagic': magik_exp = orgasm + magik_adj
  31. if insleep = 0: gs 'stat_sklattrib'
  32. if cheatHealth = 1: dynamic $cheatmenu['std_cure']
  33. if InfWillpwer = 1: pcs_willpwr = willpowermax
  34. if stat['vaginal'] = 0 and stat['vaginal_fist'] = 0 and stat['vaginal_dildo'] = 0 and stat['vaginal_strap'] = 0:
  35. stat['think_virgin'] = 1
  36. else
  37. stat['think_virgin'] = 0
  38. end
  39. 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
  40. !!This is a temporary stop-gap measure for the accomadation skill and will be removed
  41. if succubusflag = 1 and sucskill >= 4:
  42. if pain['throat'] > 0: pain['throat'] = 0 & sucexcess -= 1
  43. if pain['asshole'] > 0: pain['asshole'] = 0 & sucexcess -= 1
  44. if pain['vaginal'] > 0: pain['vaginal'] = 0 & sucexcess -= 1
  45. if vgape > 0: vgape = 0 & vgapetime = 0 & sucexcess -= 1
  46. if agape > 0: agape = 0 & agapetime = 0 & sucexcess -= 1
  47. end
  48. !!mouth cleaning for drinks
  49. if pcs_hydra > hydra_check:
  50. cumspclnt = 2
  51. gs 'cum_cleanup'
  52. end
  53. !!cosmetic tattoo
  54. if cosmetic_tattoo > 0:
  55. if pcs_makeup ! (cosmetic_tattoo+1): pcs_makeup = (cosmetic_tattoo+1)
  56. end
  57. !!!CHEATS!!!
  58. if cheatWork = 1:work = 0
  59. if cheatWorkKiskis = 1:young_shop_miss = 0
  60. if cheatHapri = 1:pcs_hairbsh = 1
  61. ! Moved from cheats to settings under 'Enema realism'
  62. if cheatKlisma = 0:klismaday = daystart & klismaday1 = 1
  63. if cheatNomakeup = 1 and cosmetic_tattoo = 0:
  64. if pcs_makeup = 0: pcs_makeup = 1
  65. end
  66. if cheatNoSweat = 1 and pcs_sweat > 0: pcs_sweat = 0
  67. if cheatNoEat = 1:
  68. if pcs_energy < 60: pcs_energy = 60
  69. end
  70. if cheatShaveLegs = 1:
  71. if pcs_leghair > 0: pcs_leghair = 0
  72. end
  73. if cheatNoDrink = 1:
  74. if pcs_hydra < 60: pcs_hydra = 60
  75. end
  76. if cheatNoSleep = 1:
  77. if pcs_sleep < 35: pcs_sleep = 35
  78. end
  79. if cheatBandit = 1 and npc_horny['A66'] < 19: npc_horny['A66'] = 19
  80. if alko > 0 and frost > 0: frost = 0
  81. if lernSkill >= 8: gs 'exp_gain', 'intel', 1 & lernSkill = 0
  82. if lern >= 10: gs 'exp_gain', 'intel', 1 & lern = 0
  83. shameless = guy + stat['bj'] + stat['anal'] + stat['hj'] + ((slutty + gang) * 2)
  84. moneySUM = money + karta + stolmoney
  85. cumSUM = cumsumbod/40
  86. if husbizvradd > 5:izvratH = 1
  87. if husbharmin > 10:harakHusb = 0
  88. if husband = 0:
  89. husbizvradd = 0
  90. husbharmin = 0
  91. husbandMark = 0
  92. houseslut = 0
  93. end
  94. if food_loc > 0 and $food_loc <> $loc: killvar 'food_loc'
  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 cheatSlut = 1 or succubusflag = 1:
  103. !!Succubus cannot get pregnant
  104. mesec = 0
  105. FocH = 0
  106. EggRH = 0
  107. Ovulate = 0
  108. fertegg = 0
  109. UnfertEgg = 0
  110. PregChem = 0
  111. preg = 0
  112. LutH = 0
  113. RecovH = 0
  114. babyembryo = 0
  115. cycle = 1
  116. end
  117. if succubusflag = 1 and succublvl > 2 and rape > rape_count:
  118. !!High Level Succubus cannot get raped
  119. orgasm += 1
  120. rape = rape_count
  121. pcs_mood = 100
  122. end
  123. if pcs_horny < 50 and cheatHorny = 1: pcs_horny = 50
  124. manamax = (pcs_intel * pcs_magik) + pcs_magik * 100 + pcs_vital * 10 + rikudo
  125. !! Set the massage displayed each time the magik attribute is increased.
  126. if $start_type[1] ! 'nomagic':
  127. if pcs_magik > magikhigh:
  128. magikhigh = pcs_magik
  129. rikudo += pcs_magik * 100
  130. $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>'
  131. !! This will be replaced when a more advanced physical system is made
  132. if (pcs_magik mod 2 ! 0) and pcs_eyesize < 2: pcs_eyesize += 1
  133. if (pcs_magik mod 2 = 0) and pcs_lashes < 2: pcs_lashes += 1
  134. end
  135. else
  136. !!This is for error catching but also broke manamax calc which is why its now above this
  137. killvar 'pcs_magik'
  138. killvar 'rikudo'
  139. killvar 'pcs_splcstng'
  140. end
  141. if pcs_dom < 0: SUB = SUB - pcs_dom & pcs_dom = 0
  142. if SUB < 0: pcs_dom = pcs_dom - SUB & SUB = 0
  143. if pcs_dom > 100: pcs_dom = 100
  144. if SUB > 100: SUB = 100
  145. if SUB >= pcs_dom and pcs_dom > 0:SUB = SUB - pcs_dom & pcs_dom = 0
  146. if pcs_dom >= SUB and SUB > 0:pcs_dom = pcs_dom - SUB & SUB = 0
  147. if pcs_horny < 0: pcs_horny = 0
  148. if pcs_inhib < 0:
  149. pcs_inhib = 0
  150. elseif pcs_inhib > 100:
  151. pcs_inhib = 100
  152. end
  153. healthmax = (pcs_vital * 10 + pcs_stren * 5)
  154. stammax = (30* (2 * pcs_vital + pcs_agil + pcs_stren) +1000)/ 13 - pregchem/10
  155. speed = (2 * (pcs_stren + pcs_agil) + pcs_vital) / 5 - pregchem/100
  156. if healthmax < 1: healthmax = 1
  157. if willpowermax < 50: willpowermax = 50
  158. if stammax < 1: stammax = 1
  159. if manamax < 1: manamax = 1
  160. !pre-calc max value for later display
  161. if fairycurse >= daystart and fairyshoo > 0: pcs_horny = 90
  162. if min_arousal > pcs_horny: pcs_horny = min_arousal
  163. if Enable_lockhorny > 0 and pcs_horny < Enable_lockhorny - 1: pcs_horny = Enable_lockhorny - 1
  164. if pcs_horny < 0: pcs_horny = 0
  165. if pcs_health > healthmax: pcs_health = healthmax
  166. if pcs_willpwr > willpowermax: pcs_willpwr = willpowermax
  167. if pcs_stam > stammax: pcs_stam = stammax
  168. if pcs_mana > manamax: pcs_mana = manamax
  169. if pcs_mood > 100: pcs_mood = 100
  170. !!set hair flow free
  171. if hbraids > 5 and pcs_hairbsh = 0: hbraids -= rand(3,5) & pcs_hairbsh = 1
  172. if pcs_hairbsh <= 0:
  173. if hscrunchw <> 0: hscrunchw = 0
  174. if hpingripw <> 0: hpingripw = 0
  175. if hpigtail <> 0: hpigtail = 0
  176. if hbraids <> 0: hbraids = 0
  177. end
  178. !!Add mood_trauma to events to lower max mood for a period of time
  179. if mood_trauma > 0:
  180. mood_max_calc = 100 - (mood_trauma * 5)
  181. mood_max = max(10, mood_max_calc)
  182. if pcs_mood > mood_max: pcs_mood = mood_max
  183. killvar 'mood_max_calc'
  184. elseif mood_trauma < 0:
  185. mood_trauma = 0
  186. end
  187. if hypnoAddict = 1 and pcs_horny < 30:
  188. pcs_horny = 30
  189. elseif hypnoAddict = 2 and pcs_horny < 50:
  190. pcs_horny = 50
  191. end
  192. if cumloc[0] = 1 or cumloc[3] = 1 or hypnoAddict = 0:
  193. killvar 'missCum'
  194. elseif missCum > timeTresh:
  195. if pcs_horny < 90: pcs_horny = 90
  196. if preziktype = 0 or preziktype = 2:
  197. if mc_inventory['normal_condoms'] > 0 and mc_inventory['sabotaged_condoms'] < rand(2,3): dynamic $din_Do_Condom_Counts, 4
  198. if preziktype <> 2 and mc_inventory['sabotaged_condoms'] > 0: dynamic $din_Do_Condom_Counts, 3
  199. end
  200. end
  201. !!!!!!!!!!!
  202. !!!TIME!!!
  203. !!!!!!!!!!!
  204. !! total amount of minutes since the start of the game
  205. if nminut ! minut or nhour ! hour:
  206. prevtotmin = totminut
  207. ! sync totminut with daystart
  208. totminut = daystart - 1
  209. ! Hours
  210. totminut = totminut * 24 + hour
  211. ! Minutes
  212. totminut = totminut * 60 + minut
  213. nminut = minut
  214. nhour = hour
  215. end
  216. ! Execute time based spells
  217. gs 'spellTimer', prevtotmin, totminut
  218. ! Determine Incoming Telephone Calls
  219. gs 'telefon', 'IncomingCheck', prevtotmin, totminut
  220. !! deodorant
  221. if deodorant_on = 1 and totminut > deodorant_time: gs 'sweat', 'remove_deo'
  222. !!painkiller
  223. if pain['killer'] > 0:
  224. if pain['killer'] = 1: pain_timer = totminut - 2
  225. pain['killer'] = totminut - pain_timer
  226. if pain['killer'] >= 243: pain['killer'] = 0
  227. end
  228. ! WD: 'daystart' Should start at 1
  229. if daystart = 0: daystart = 1
  230. !!Gaping of vagina recovery time
  231. !! [1] stored gape value
  232. !! [3] timer
  233. !! [4] time between each reduction in gape
  234. if agape[4] = 0: agape[4] = 10
  235. if vgape[4] = 0: vgape[4] = 10
  236. if vgape > vgape[1]:
  237. vgape[3] = totminut
  238. vgape[1] = vgape
  239. elseif vgape > 0:
  240. if (totminut - vgape[3])/vgape[4] >= 1: vgape -= 1
  241. vgape[1] = vgape
  242. else
  243. vgape[3] = 0
  244. end
  245. !!Gaping of anus recovery time
  246. if agape > agape[1]:
  247. agape[3] = totminut
  248. agape[1] = agape
  249. elseif agape > 0:
  250. if (totminut - agape[3])/agape[4] >= 1: agape -= 1
  251. if agape = 0: agape[3] = 0
  252. agape[1] = agape
  253. else
  254. agape[3] = 0
  255. end
  256. !!Recovery from spanking - will be superseded by pain system
  257. if spanked > 0:
  258. if spankedtime = 0: spankedtime = totminut
  259. if (spankedtime + 2040) <= totminut:spanked -= 1 & spankedtime = 0
  260. elseif spankedtime ! 0:
  261. killvar 'spankedtime'
  262. end
  263. !! Orgasmic cooldown
  264. if orgasmic ! 0:
  265. if orgasmic < totminut - 30: orgasmic = 0 & pcs_horny = 0
  266. end
  267. !!!!!!!!!!!!!!! Heels pain and skill gain
  268. !! This compares the player heels skill to the skill required to wear any heels the player
  269. !! currently wears. If the skill needed is greater than the player currently possesses,
  270. !! the pain in the feet increases and the player earns heels skill. If the skill required
  271. !! is lower, the player might still get experience, depending on how much greater the
  272. !! player skill is.
  273. !! Variables
  274. !! pcs_heels is the main heels skill
  275. !! heels_exp is used when the player gains experience using heels
  276. !! heels_deg is used when the player neglects their heels
  277. !! PShoHeels tracks the height of the heels currently worn
  278. !! heelsminut tracks when the heels skill was last changed
  279. !! heelsRequiredskill substitutes PShoHeels to allow comparison with pcs_heels
  280. !! heelsSkilldiff tracks difference between the players current and skill required by heels
  281. !! Required skill for various heel sizes
  282. !! 1 flats - 0
  283. !! 2 low heel - 5
  284. !! 3 Mid heel - 15
  285. !! 4 High heel - 25
  286. !! 5 ultra high heel - 40
  287. !! 6 fetish heel - 60
  288. !! Only run if at least X minutes have passed since last time
  289. if heelsminut > totminut: heelsminut = totminut & !! fix for time cheat
  290. if totminut >= heelsminut + 30:
  291. killvar 'tmp'
  292. heelstime = totminut-heelsminut
  293. heelsminut = totminut
  294. !! Only check experience and pain gain and if the player wears heels, flats give nothing
  295. if PShoHeels > 1:
  296. if PShoHeels = 2:
  297. heelsRequiredskill = 5
  298. elseif PShoHeels = 3:
  299. heelsRequiredskill = 15
  300. elseif PShoHeels = 4:
  301. heelsRequiredskill = 25
  302. elseif PShoHeels = 5:
  303. heelsRequiredskill = 40
  304. elseif PShoHeels = 6:
  305. heelsRequiredskill = 60
  306. end
  307. !! stat is called a lot, there should be a limit to how much exp and pain you can accumulate...
  308. !! If the player skill is below the required skill, give heel_exp and apply ache
  309. if pcs_heels < heelsRequiredskill:
  310. heelsSkilldiff = heelsRequiredskill - pcs_heels
  311. if heelsSkilldiff <= 5:
  312. tmp = rand(min(3,heelstime/30),min(6,heelstime/15))
  313. if pain['feet'] < 40: gs 'pain', rand(heelstime/30,heelstime/15), 'feet', 'ache'
  314. elseif heelsSkilldiff <= 10:
  315. tmp = rand(min(5,heelstime/20),min(9,heelstime/10))
  316. if pain['feet'] < 50: gs 'pain', rand(heelstime/25,heelstime/12), 'feet', 'ache'
  317. elseif heelsSkilldiff <= 15:
  318. tmp = rand(min(7,heelstime/15),min(12,heelstime/8))
  319. if pain['feet'] < 60: gs 'pain', rand(heelstime/20,heelstime/10), 'feet', 'ache'
  320. elseif heelsSkilldiff <= 20:
  321. tmp = rand(min(9,heelstime/10),min(15,heelstime/5))
  322. if pain['feet'] < 70: gs 'pain', rand(heelstime/15,heelstime/8), 'feet', 'ache'
  323. else
  324. tmp = rand(min(12,heelstime/5),min(20,heelstime/2))
  325. if pain['feet'] < 80: gs 'pain', rand(heelstime/10,heelstime/5), 'feet', 'ache'
  326. end
  327. !! Player skill is equal to or higher than the required skill
  328. !! Maybe have excessive skill result in no gain, or even a degrading skill?
  329. else
  330. heelsSkilldiff = pcs_heels - heelsRequiredskill
  331. gs 'pain', max(0, rand(heelstime/10,heelstime/5) - heelsSkilldiff), 'feet', 'ache'
  332. if heelsSkilldiff <= 5:
  333. tmp = rand(-2,0) + rand(min(8,heelstime/6),min(12,heelstime/3))
  334. elseif heelsSkilldiff <= 10:
  335. tmp = rand(-3,0) + rand(min(6,heelstime/10),min(9,heelstime/5))
  336. elseif heelsSkilldiff <= 15:
  337. tmp = rand(-4,0) + rand(min(5,heelstime/15),min(7,heelstime/10))
  338. elseif heelsSkilldiff <= 20:
  339. tmp = rand(-5,0) + rand(min(4,heelstime/20),min(6,heelstime/15))
  340. else
  341. tmp = rand(-6,0) + rand(min(3,heelstime/30),min(4,heelstime/20))
  342. end
  343. end
  344. !! If not wearing heels, degrade heels skill
  345. else
  346. tmp = rand(heelstime/30,heelstime/15)*-1
  347. end
  348. if tmp > 0:
  349. gs 'exp_gain', 'heels', tmp
  350. elseif tmp < 0:
  351. heels_deg += tmp
  352. end
  353. killvar 'tmp'
  354. killvar 'heelstime'
  355. killvar 'heelsSkilldiff'
  356. killvar 'heelsRequiredskill'
  357. end
  358. !!!!!!!!!!!!!!! End heels
  359. !! Hourly Changes
  360. if minut >= 60:
  361. :loopmin
  362. hour += 1
  363. minut -= 60
  364. gs 'hourly_events'
  365. if minut >= 60:jump 'loopmin'
  366. end
  367. !! End of Hourly Changes
  368. if hour >= 24: gs 'cikl'
  369. if minut < 10:
  370. $nilmin = '0'
  371. else
  372. $nilmin = ''
  373. end
  374. if kid > 0:
  375. i = arrsize('yearkid')
  376. :LoopKidAgeCounter
  377. if i >= 0:
  378. if yearkid[i] = year + 1 and monthkid[i] = month and daykid[i] = day: msg'It is <<$kidname[i]>>''s birthday today.'
  379. i -= 1
  380. jump 'LoopKidAgeCounter'
  381. end
  382. end
  383. if bimbolevel > 0:
  384. if bimbowithdrawal = 0:
  385. $bimbostatus = '<font color = #FF1493>You''re, like, super hawt today.</font>'
  386. $bimbo_tooltip = 'You''re, like, super hawt today.'
  387. elseif bimbowithdrawal = 1:
  388. $bimbostatus = '<font color="green">You feel, like, kind of lame today.</font>'
  389. $bimbo_tooltip = 'You feel, like, kind of lame today.'
  390. elseif bimbowithdrawal < 4:
  391. $bimbostatus = '<font color="grey">You feel, like, totally lame today.</font>'
  392. $bimbo_tooltip = 'You feel, like, totally lame today.'
  393. elseif bimbowithdrawal < 6:
  394. if pcs_mood > 50: pcs_mood -= 10
  395. $bimbostatus = '<font color="red">You really feel, like, awful today.</font>'
  396. $bimbo_tooltip = 'You really feel, like, awful today.'
  397. elseif bimbowithdrawal >= 6:
  398. if pcs_mood > 10: pcs_mood -= 10
  399. $bimbostatus= '<font color="red"><b>You feel that, like, horrible today!</b></font>'
  400. $bimbo_tooltip = 'You feel that, like, horrible today!'
  401. end
  402. else
  403. bimbowithdrawal = 0
  404. $bimbostatus = ''
  405. end
  406. !
  407. ! WD: Triggers every 15 minutes if not sleeping
  408. ! Update to remove long iterations on loading saves from previous versions
  409. ! Do Nothing if sleeping, invalid Trig15Minute value or more than 6 hours 16 minute pass
  410. if InSleep ! 0 or Trig15Minute > totminut or (totminut - Trig15Minute) >= 376:
  411. set Trig15Minute = totminut
  412. ! More than 15 minutes since last check
  413. else
  414. if (totminut - Trig15Minute) >= 15:
  415. ! begin Loop
  416. :Trig15MinuteLoop
  417. ! Horny Actions
  418. if pcs_horny > 100:
  419. set Trig15Minute = totminut
  420. else
  421. set Trig15Minute += 15
  422. ! WD: Fix vibrator arousal to trigger every 15 minutes, moved from 'time' location
  423. if vibratorin = 1:pcs_horny += rand(1, 5)
  424. ! WD: Fixed Piecing arousal to trigger every 15 minutes, instead of once per day
  425. if pcs_horny < 70:
  426. hornystat = 0
  427. if pirsF > 0 and pirsF < 10000:hornystat += 1
  428. if pirsG > 0 and pirsG < 10000:hornystat += 1
  429. hornyStat = hornystat * 4
  430. if pirsA > 0 and pirsA < 10000:hornystat += 1
  431. if pirsB > 0 and pirsB < 10000:hornystat += 1
  432. if pirsC > 0 and pirsC < 10000:hornystat += 1
  433. if pirsD > 0 and pirsD < 10000:hornystat += 1
  434. if pirsE > 0 and pirsE < 10000:hornystat += 1
  435. if pirsN > 0 and pirsN < 10000:hornystat += 1
  436. set pcs_horny += hornyStat / 4 + rand(1,4) <= hornyStat mod 4 & ! Apply 1/4 of value on average
  437. end
  438. ! WD: Clothing
  439. if CloStyle = 4 and pcs_horny < 70:set pcs_horny += rand(0, 2)
  440. if (PCloSkirt > 5 or PCloPants > 5) and pcs_horny < 50:set pcs_horny += rand(0, 1)
  441. if PCloTopCut = 4 and pcs_horny < 50:set pcs_horny += rand(0, 1)
  442. end
  443. !!SECTION: Bimbo (15 minute interval update checks)
  444. if bimbolevel > 0:
  445. if (pcs_mood < 100): pcs_mood += (pcs_mood / 100) * max(0, (rand(bimbowithdrawal*-1,bimbolevel)))
  446. if pcs_horny < max(0, 30 - bimbowithdrawal * bimbolevel): pcs_horny = max(0, 30 - bimbowithdrawal * bimbolevel)
  447. if pcs_horny < 100: pcs_horny += max(0, rand(bimbowithdrawal/-2, bimbolevel))
  448. end
  449. !!SECTION: Commando trait (15 minute interval update checks)
  450. if $clothingworntype ! 'nude':
  451. if $pantyworntype = 'none':
  452. !! Addition to trait exp/lvls
  453. if pcs_traits['commando_lvl'] = 0:
  454. if PCloSkirt > 0:
  455. pcs_traits['commando_exp'] += 2
  456. else
  457. pcs_traits['commando_exp'] += 1
  458. end
  459. if pcs_traits['commando_exp'] >= 1000:
  460. pcs_traits['commando_exp'] = 50
  461. pcs_traits['commando_lvl'] = 1
  462. msg'You have gained the Commando trait! You have become accustomed to the idea you don''t have to wear panties all the time and can now comfortably wear skirts without panties. Pants are still a little itchy though...'
  463. end
  464. elseif pcs_traits['commando_lvl'] = 1:
  465. pcs_traits['commando_exp'] += 2
  466. if pcs_traits['commando_exp'] >= 1000:
  467. pcs_traits['commando_exp'] = 50
  468. pcs_traits['commando_lvl'] = 2
  469. msg'You have gained the 2nd level of the Commando trait! You have become very comfortable without panties and the raw insides of your pants no longer irritate your pussy.'
  470. end
  471. elseif pcs_traits['commando_lvl'] = 2:
  472. mosol = 0
  473. pcs_traits['commando_exp'] += 2
  474. if pcs_traits['commando_exp'] >= 1000:
  475. pcs_traits['commando_exp'] = 500
  476. pcs_traits['commando_lvl'] = 3
  477. msg'You have gained the 3rd level of the Commando trait! You have become so accustomed to going commando that any kind of underwear over your hips just feels <i>wrong</i>. You suffer mood penalties while wearing panties.'
  478. end
  479. elseif pcs_traits['commando_lvl'] = 3:
  480. pcs_traits['commando_exp'] += 1
  481. end
  482. elseif pcs_traits['commando_lvl'] > 0:
  483. !!Reduction from exp/lvls
  484. if pcs_traits['commando_lvl'] = 3:
  485. pcs_traits['commando_exp'] -= 1
  486. pcs_mood -= 1
  487. if pcs_traits['commando_exp'] <= 0:
  488. pcs_traits['commando_exp'] = 500
  489. pcs_traits['commando_lvl'] = 2
  490. msg'You have lost the 3rd level of the Commando trait! You are now only comfortable not wearing panties and will not suffer irritation from wearing pants while going commando.'
  491. end
  492. else
  493. pcs_traits['commando_exp'] -= 1
  494. if pcs_traits['commando_exp'] <= -0:
  495. pcs_traits['commando_exp'] = 900
  496. pcs_traits['commando_lvl'] -= 1
  497. end
  498. end
  499. end
  500. !!{
  501. if $braworntype = 'none':
  502. end}
  503. end
  504. !! This is the Succubus non-direct injection (pun intented) sex to sexnutrition and the sexnutrition conversion handling
  505. if succubusflag = 1:
  506. if hypnoAddict > 0: dynamic $RestTherapyVariables
  507. if pcs_horny < 50: pcs_horny = 50
  508. if pcs_horny < 100: pcs_horny += succublvl
  509. if succhungry > 0:
  510. pcs_energy -= succhungry * succublvl
  511. pcs_hydra -= succhungry * succublvl
  512. pcs_sleep -= succhungry * succublvl
  513. end
  514. if arrsize('sparrvol') > 0:
  515. suctempi = -1
  516. :SuccAbsorbLoop
  517. suctempi += 1
  518. if suctempi <= 1 or suctempi = 3 or suctempi = 4 or suctempi >= 8:
  519. suctemparr = arrpos('sparrloc',suctempi)
  520. if suctemparr >= 0 and sparrloc[suctemparr] = suctempi and sparrvol[suctemparr] > 0:
  521. scfeed = succublvl + rand(1,4)
  522. sexnutrition += 30 * scfeed
  523. succubxp += 5
  524. cumsumbod -= sparrvol[suctemparr]
  525. ! msg "we've got xp!" + sparrloc[suctemparr]
  526. sucabscum = 1
  527. gs 'cum_cleanup', 'cleandeposit', suctemparr
  528. cumloc[suctempi] = 0
  529. !debug code $stat_msg += '<BR>Absorb ext <<sexnutrition>>'
  530. end
  531. end
  532. if suctempi < 17:jump 'SuccAbsorbLoop'
  533. cumspclnt = 20 & gs 'cum_cleanup'
  534. end
  535. if suclezsex < lesbian:
  536. sexnutrition += succublvl * 20
  537. suclezsex = lesbian
  538. succubxp += 5
  539. sucabslez = 1
  540. end
  541. if sexnutrition > 0:
  542. if sucskill >= 3 and succublvl >= 2: sexnutrition += (sexnutrition * 2) / 10
  543. if sucabslez = 1 and sucabscum = 1:
  544. $sucabs1 = 'absorbed energy from the woman you had sex with'
  545. $sucabs2 = ' and you '
  546. $sucabs3 = 'absorb the semen in your body'
  547. elseif sucabscum = 1:
  548. $sucabs3 = 'absorb the semen in your body'
  549. elseif sucabslez = 1:
  550. $sucabs1 = 'absorbed energy from the woman you had sex with'
  551. else
  552. !!Debug code
  553. $stat_msg += '<BR>SOMETHING HAPPENED!'
  554. end
  555. $stat_msg += '<BR>You <<$sucabs1>><<$sucabs2>><<$sucabs3>>, gaining nourishment.'
  556. sucabslez = 0 & sucabscum = 0
  557. $sucabs1 = '' & $sucabs2 = '' & $sucabs3 = ''
  558. if (pcs_mood < 100): pcs_mood += ((pcs_mood / 100) * 5)
  559. if pcs_energy > 100: entemp = (pcs_energy - 100)
  560. if sucexcess < 0 and sexnutrition > 20 and pcs_energy > 30:
  561. if sexnutrition - 20 >= (0 - sucexcess) * 2:
  562. sexnutrition += sucexcess * 2
  563. sucexcess = 0
  564. else
  565. sucexcess += (sexnutrition - 20) / 2
  566. sexnutrition = 20
  567. end
  568. end
  569. pcs_energy += sexnutrition / 2
  570. pcs_hydra += sexnutrition
  571. pcs_sleep += sexnutrition / 20
  572. if succhungry > 0: succhungry = 0
  573. sexnutrition = 0
  574. if pcs_energy > 100: sucexcess += (pcs_energy - entemp - 100) & pcs_energy = 100 + entemp & killvar 'entemp'
  575. end
  576. end
  577. !! safeguards to prevent bimbolevel from going above or below its intended limits
  578. if bimbolevel > 3: bimbolevel = 3
  579. if bimbolevel < 0: bimbolevel = 0
  580. ! do loop
  581. if (totminut - Trig15Minute) >= 15:jump 'Trig15MinuteLoop'
  582. end
  583. end
  584. !!!!!!!!!!!!!
  585. !!!ENERGY!!!
  586. !!!!!!!!!!!!!
  587. if succubusflag = 1:
  588. if pcs_energy < 0:
  589. if fat >= 1:
  590. if cheatNoFat = 0: fat -= 2
  591. pcs_energy += 8 + succublvl
  592. else
  593. pcs_energy += 8 + succublvl
  594. sucexcess -= (8 + succublvl) * (6 - succublvl)
  595. end
  596. end
  597. if pcs_health < 0:
  598. pcs_health = 10
  599. sucexcess -= 25 * (9 - succublvl)
  600. end
  601. if pcs_willpwr < 0:
  602. pcs_willpwr = 10
  603. sucexcess -= 20 * (9 - succublvl)
  604. sucpowzeroed = 4
  605. end
  606. end
  607. if pcs_sleep < 0:
  608. pcs_sleep = 0
  609. pcs_mood -= 5
  610. end
  611. if pcs_energy < 0:
  612. pcs_energy = 0
  613. pcs_health -= 5
  614. if pcs_mass['body'] = 0 and pcs_stren + pcs_vital > 0:
  615. stren_deg -= 1
  616. vital_deg -= 1
  617. pcs_energy += 8
  618. elseif pcs_mass['body'] = 0 and pcs_stren + pcs_vital <= 0:
  619. if Enable_nogameover = 0 :
  620. over = 3
  621. if $loc ! 'gameover': gt 'gameover'
  622. exit
  623. else
  624. $stat_msg += '<BR><font color=red><B>You starved to death, but Cheat Mode keeps you Alive.</B></font>'
  625. fat = 1
  626. end
  627. elseif pcs_mass['body'] > 0:
  628. if cheatNoFat = 0: fat -= 1
  629. pcs_energy += 8
  630. end
  631. end
  632. if pcs_hydra <= 0:
  633. pcs_hydra = 1
  634. pcs_health -= 5
  635. end
  636. !!Set hydra_check value
  637. hydra_check = pcs_hydra
  638. if pcs_mood <= 0:
  639. pcs_mood = 1
  640. pcs_health -= 5
  641. end
  642. if pcs_health < 0:
  643. if Enable_nogameover = 0 :
  644. over = 1
  645. if $loc ! 'gameover': gt 'gameover'
  646. exit & !nogameover by illume
  647. else
  648. $stat_msg += '<BR><font color=red><B>You died from injuries, but Cheat Mode keeps you Alive.</B></font>'
  649. pcs_health = 0
  650. end
  651. end
  652. if pcs_willpwr <= 0 :
  653. !this will set willpower to 0 correctly; then check mana =1 for insane-gameover(pcs_willpwr=0&mana=1).
  654. if pcs_mood <= 1:
  655. if Enable_nogameover = 0 :
  656. over = 2
  657. if $loc ! 'gameover': gt 'gameover'
  658. exit & !nogameover by illume
  659. else
  660. $stat_msg += '<BR><font color=red><B>You are insane, but Cheat Mode keeps you Alive.</B></font>'
  661. !pcs_mood already checked for >=1 in line 1113 if pcs_mood <= 0, no need to set another one
  662. end
  663. end
  664. pcs_willpwr = 0
  665. end
  666. !!cars-increase/depressed mood after orgasm/rape
  667. if rape > 0 and rape ! rape_count and orgasm = orgasm_count:
  668. pcs_mood = 10
  669. rape_count = rape
  670. rape_day = daystart
  671. elseif orgasm > 0 and orgasm ! orgasm_count:
  672. pcs_mood = 100
  673. orgasm_count = orgasm
  674. elseif rape > 0 and rape ! rape_count and orgasm > 0 and orgasm ! orgasm_count:
  675. pcs_mood = 100
  676. orgasm_count = orgasm
  677. rape_count = rape
  678. rape_day = daystart
  679. end
  680. !! Drug stats
  681. gs 'drugs', 'heroin', 'stat'
  682. gs 'drugs', 'alcohol', 'stat'
  683. gs 'drugs', 'cocaine', 'stat'
  684. gs 'drugs', 'amphetamine', 'stat'
  685. !!Health, Willpower, Auto Birth Control pregnancy check
  686. gs 'body', 'RegularUpdate'
  687. gs 'body', 'Update_Appearance'
  688. if pcs_health >= healthmax:
  689. $pcs_health = '<font color="green">You are very healthy.</font>'
  690. elseif pcs_health >= healthmax * 75 / 100:
  691. $pcs_health = '<font color=#0064FF>You are healthy.</font>'
  692. elseif pcs_health >= healthmax * 50 / 100:
  693. $pcs_health = '<font color="brown">You are not healthy.</font>'
  694. elseif pcs_health >= healthmax * 25 / 100:
  695. $pcs_health = '<font color="red">You are sick.</font>'
  696. else
  697. $pcs_health = '<font color="red">You are on the verge of death.</font>'
  698. end
  699. if pcs_willpwr >= willpowermax:
  700. $pcs_willpwr = '<font color="green">You feel in charge of your actions.</font>'
  701. elseif pcs_willpwr >= willpowermax * 75 / 100:
  702. $pcs_willpwr = '<font color=#0064FF>You are mostly in control.</font>'
  703. elseif pcs_willpwr >= willpowermax * 50 / 100:
  704. $pcs_willpwr = '<font color="brown">You might have to make some concessions.</font>'
  705. elseif pcs_willpwr >= willpowermax * 25 / 100:
  706. $pcs_willpwr = '<font color="red">You will have to toe the line.</font>'
  707. else
  708. $pcs_willpwr = '<font color="red">You are completely at other people''s mercy.</font>'
  709. end
  710. !!stop auto birth control pill taking if the player believes they are pregnant or are pregnant
  711. if thinkpreg = 1 or knowpreg = 1:
  712. if tabletkicheck = 1: tabletkicheck = 0
  713. if birth_control['remind_hour'] > 0:
  714. birth_control['remind_hour'] = 0
  715. if birth_control['remind_icon'] = 1: birth_control['remind_icon'] = 0
  716. end
  717. elseif birth_control['remind_hour'] > 0 and hour >= birth_control['remind_hour'] and hour <= birth_control['remind_hour'] + 1 and tabletkiday ! daystart:
  718. birth_control['remind_icon'] = 1
  719. else
  720. birth_control['remind_icon'] = 0
  721. end
  722. if tabletkicheck = 1 and tabletkichday < daystart and birth_control['auto_hour'] > 0 and hour >= birth_control['auto_hour'] and hour <= birth_control['auto_hour'] + 1 and InSleep = 0 and menu_off = 0 and $location_type ! 'event' and $location_type ! 'event_outdoors':
  723. gs 'fertility', 'auto_pill'
  724. end
  725. !! detected change in pillcon
  726. if pillcon ! birth_control['old_pillcon'] or pillcon2 ! birth_control['old_pillcon2']: gs 'fertility', 'update'
  727. gs 'cum_manage', 'cum_decay'
  728. !!Mood
  729. if cheatNoMood = 0:
  730. maxmood = 100 - moodmodifier
  731. if pcs_mood > 100:
  732. pcs_mood = 100
  733. elseif pcs_mood < 0:
  734. pcs_mood = 0
  735. !! 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
  736. end
  737. else
  738. pcs_mood = 100
  739. mood_trauma = 0
  740. end
  741. if Gerpes >= 3 or Sifilis >= 21 or Triper > 2:
  742. $msg_extra = ' it is being reduced due to an STD'
  743. else
  744. killvar '$msg_extra'
  745. end
  746. if pcs_mood >= 80:
  747. $pcs_mood = '<font color="green">You are in a great mood<<$msg_extra>>.</font>'
  748. elseif pcs_mood >= 60:
  749. $pcs_mood = '<font color=#0064FF>You are in a good mood<<$msg_extra>>.</font>'
  750. elseif pcs_mood >= 40:
  751. $pcs_mood = '<font color="brown">You are in an OK mood<<$msg_extra>>.</font>'
  752. elseif pcs_mood >= 20:
  753. $pcs_mood = '<font color="orange">You are in a bad mood<<$msg_extra>>.</font>'
  754. elseif pcs_mood >= 5:
  755. $pcs_mood = '<font color="red">You are in a terrible mood<<$msg_extra>>.</font>'
  756. else
  757. $pcs_mood = '<font color="red">You are really depressed and need to improve your mood<<$msg_extra>>.</font>'
  758. end
  759. if pcs_energy >= 80:
  760. $pcs_energy = '<font color="green">You couldn''t eat one more bite.</font>'
  761. elseif pcs_energy >= 40:
  762. $pcs_energy = '<font color=#0064FF>You''re not really hungry, but a small snack would be very welcome.</font>'
  763. elseif pcs_energy >= 8:
  764. $pcs_energy = '<font color="brown">You are hungry.</font>'
  765. else
  766. $pcs_energy = '<font color="red">You are very hungry.</font>'
  767. end
  768. if pcs_hydra >= 80:
  769. $pcs_hydra = '<font color="green">You are not thirsty at all.</font>'
  770. elseif pcs_hydra >= 40:
  771. $pcs_hydra = '<font color=#0064FF>You are slightly thirsty.</font>'
  772. elseif pcs_hydra >= 8:
  773. $pcs_hydra = '<font color="brown">You are thirsty.</font>'
  774. else
  775. $pcs_hydra = '<font color="red">You are very thirsty.</font>'
  776. end
  777. if pcs_sleep >= 80:
  778. $pcs_sleep = '<font color="green">You are well rested.</font>'
  779. elseif pcs_sleep >= 40:
  780. $pcs_sleep = '<font color=#0064FF>You are slightly tired.</font>'
  781. elseif pcs_sleep >= 8:
  782. $pcs_sleep = '<font color="brown">You are tired.</font>'
  783. else
  784. $pcs_sleep = '<font color="red">You are very tired.</font>'
  785. end
  786. 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:
  787. !!absence from work in a factory in Pavlovsk
  788. FabrikaProgul += 1
  789. FabrikaProgulDay = day
  790. end
  791. if hotelRoom['pav_hotel'] > 0:
  792. if hotelRoomDays['pav_hotel'] - 1 = daystart:
  793. $stat_msg += '<BR>You have 1 night left on your Pavlosk hotel booking.'
  794. elseif hotelRoomDays['pav_hotel'] = daystart and hour < 11:
  795. $stat_msg += '<BR>Your room at the Pavlosk hotel has check out today at 11:00'
  796. elseif hotelRoomDays['pav_hotel'] = daystart:
  797. hotelRoom['pav_hotel'] = 0
  798. end
  799. end
  800. if hotelRoom['city_hotel'] > 0:
  801. if hotelRoomDays['city_hotel'] - 1 = daystart:
  802. $stat_msg += '<BR>You have 1 night left on your St Petersburg hotel booking.'
  803. elseif hotelRoomDays['city_hotel'] = daystart and hour < 11:
  804. $stat_msg += '<BR>Your room at the St Petersburg hotel has check out today at 11:00'
  805. elseif hotelRoomDays['city_hotel'] = daystart:
  806. hotelRoom['city_hotel'] = 0
  807. end
  808. end
  809. if hour >= 8 and hour < 14 and week < 6 and mid($start_type,1,2) = 'sg' and SchoolAtestat = 0 and kanikuli = 0 and schoolProgulDay ! daystart:
  810. !!absence from school
  811. schoolprogul += 1
  812. schoolProgulDay = daystart
  813. end
  814. if cumcondslip <= 0: cumcondslip_deep = 0
  815. !!Sex stat update
  816. stat['mast'] += mastr & mastr = 0
  817. stat['hj'] += hj & hj = 0
  818. stat['bj'] += bj & bj = 0
  819. stat['vaginal'] += sex & sex = 0
  820. stat['anal'] += anal & anal = 0
  821. stat['cuni'] += kuni & kuni = 0
  822. stat['anal_strap_give'] += pegging & pegging = 0
  823. !!Pain calculation
  824. gs 'pain', 'calc'
  825. pain['relief'] = 0
  826. gs 'drugs', 'pain_relief'
  827. if pain['relief'] ! 0:
  828. if (pain['total'] / pain['relief']) > 0:
  829. pain['total'] = pain['total'] / pain['relief']
  830. elseif pain['total'] > 0:
  831. pain['total'] = 0
  832. end
  833. end
  834. if pain['total'] > 80:
  835. if (pcs_health * 5) >= healthmax: pcs_health = pcs_health * 20 / 100
  836. if (pcs_mood * 5) >= 100: pcs_mood = pcs_mood * 20 / 100
  837. elseif pain['total'] > 60:
  838. if (pcs_health * 5 / 2) >= healthmax: pcs_health = pcs_health * 40 / 100
  839. if (pcs_mood * 5 / 2) >= 100: pcs_mood = pcs_mood * 40 / 100
  840. elseif pain['total'] > 40:
  841. if (pcs_health * 5 / 3) >= healthmax: pcs_health = pcs_health * 60 / 100
  842. if (pcs_mood * 5 / 3) >= 100: pcs_mood = pcs_mood * 60 / 100
  843. elseif pain['total'] > 20:
  844. if (pcs_health * 5 / 4) >= healthmax: pcs_health = pcs_health * 80 / 100
  845. if (pcs_mood * 5 / 4) >= 100: pcs_mood = pcs_mood * 80 / 100
  846. elseif pain['total'] > 0:
  847. if (pcs_health * 10 / 9) >= healthmax: pcs_health = pcs_health * 90 / 100
  848. if (pcs_mood * 10 / 9) >= 100: pcs_mood = pcs_mood * 90 / 100
  849. end
  850. !!--------------------------pain calculation end--------------------------------
  851. !!update skills and attributes to pcs_ from there _lvl values plus adjustments based on condition
  852. gs 'stat_sklattrib_lvlset'
  853. !!Sleep variable cap
  854. if pcs_sleep > 100: pcs_sleep = 100
  855. if insleep = 0: gs 'stat_display'
  856. gs 'family_schedule'
  857. !!--------------------------Job Checks For Icons--------------------------------
  858. if (acting['shoot_day'] = daystart and actress_cast = 1) or (audition['day'] = daystart):
  859. acting['icon'] = 1
  860. else
  861. acting['icon'] = 0
  862. end
  863. if model_job_week < 2 and model['status'] = 1:
  864. model['icon'] = 1
  865. else
  866. model['icon'] = 0
  867. end
  868. if pfilmday[0] > 0:
  869. pornstar['icon'] = 1
  870. else
  871. pornstar['icon'] = 0
  872. end
  873. if hypnoSchedule = 1:
  874. if therapist_weekly_block = 0 and week = 4 and therapistday ! daystart and remindedtherapyday ! daystart:
  875. if menu_off = 0 and workDolg = 0:
  876. if (hour >= 18 and (minut > 45 or hour >= 19)) _
  877. and (hour < 20 and (minut < 15 or hour < 19)):
  878. gs 'therapist_reminder'
  879. end
  880. end
  881. end
  882. end
  883. !!--------------------------Booty Call SMSs--------------------------------
  884. if arrsize('$FuckBuddy') > 0 and hour > 1: gs 'booty_call', 'SMS raiser'
  885. --- stat ---------------------------------