hourly_events.qsrc 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324
  1. # hourly_events
  2. !!===========================================================================!!
  3. !! !!
  4. !! Hourly events. !!
  5. !! !!
  6. !!===========================================================================!!
  7. if pcs_nerd > 0:
  8. if daystart = lastreadday:
  9. !!<font color="green">You are completely healthy shine and a healthy glow.</font>
  10. if pcs_mood < 90: pcs_mood += rand(5,10)
  11. $mudnerd = '<font color="green">You are lost in a fantasy after reading a book.</font>'
  12. elseif daystart = lastreadday + 1:
  13. $mudnerd = '<font color="black">You are a little bored and want to plunge into a book.</font>'
  14. elseif daystart = lastreadday + 2:
  15. if pcs_mood > 50: pcs_mood -= rand(5,10)
  16. $mudnerd = '<font color="red">You really want to read something.</font>'
  17. elseif daystart => lastreadday + 3:
  18. if pcs_mood > 10: pcs_mood -= rand(5,10)
  19. $mudnerd = '<font color="red"><b>You have an incredibly strong desire to read!!!</b></font>'
  20. pcs_nerd = max(0, pcs_nerd / 10 - stat['body_count'])
  21. end
  22. end
  23. if pcs_nerd <= 0:
  24. killvar 'pcs_nerd'
  25. killvar '$mudnerd'
  26. end
  27. if obkvsdam > 0: obkvsdam = rand(2, 5)
  28. if scpopt > 1: scpopt = 0
  29. if insleep = 1:
  30. pcs_energy -= (succublvl / 2)
  31. pcs_hydra -= (succublvl / 2)
  32. pcs_stam += iif(pcs_sleep > 90, stammax/2, iif(pcs_sleep > 80, stammax/4, stammax/8))
  33. if alko > 0: alko -= 1
  34. pcs_willpower_feeder += willpowermax * 4
  35. pcs_willpwr += pcs_willpower_feeder / 100
  36. pcs_willpower_feeder = pcs_willpower_feeder mod 100
  37. else
  38. pcs_energy -= succublvl
  39. pcs_hydra -= succublvl
  40. if hypnoAddict > 0: dynamic $hypnoAddiction
  41. if SleepVars['no_sleep_loss'] = 0:
  42. pcs_sleep -= 5
  43. else
  44. SleepVars['no_sleep_loss'] = 0
  45. end
  46. if pcs_sleep <= 0 and succublvl = 0:
  47. pcs_condition['lack_of_sleep'] += 2
  48. if pcs_mood_effects['slpredcheck'] = 1: pcs_mood -= 5
  49. pcs_mood_effects['slpredcheck'] = 1
  50. else
  51. pcs_mood_effects['slpredcheck'] = 0
  52. end
  53. if pcs_energy <= 0:
  54. if pcs_mood_effects['nrgredcheck'] = 1: pcs_mood -= 5
  55. pcs_mood_effects['nrgredcheck'] = 1
  56. else
  57. pcs_mood_effects['nrgredcheck'] = 0
  58. end
  59. if pcs_hydra <= 0:
  60. if pcs_mood_effects['hydredcheck'] = 1: pcs_mood -= 5
  61. pcs_mood_effects['hydredcheck'] = 1
  62. else
  63. pcs_mood_effects['hydredcheck'] = 0
  64. end
  65. if pcs_stam <= 0:
  66. pcs_mood -= rand(5,10)
  67. pcs_sleep -= rand(3,6)
  68. elseif pcs_stam < stammax / 5 and stammax > 50:
  69. pcs_mood -= rand(2,5)
  70. end
  71. if hypnoHair > 0 and pcs_mood > 50:
  72. if pcs_pubes > 3: pcs_mood -= rand(2, 5)
  73. if pcs_leghair > 3: pcs_mood -= rand(2, 5)
  74. end
  75. if pcs_energy > 20: pcs_stam += stammax / max(5, 110-pcs_energy)
  76. pcs_willpower_feeder += willpowermax*4/3
  77. pcs_willpwr += pcs_willpower_feeder/100
  78. pcs_willpower_feeder = pcs_willpower_feeder mod 100
  79. end
  80. gs 'drugs', 'hourly_events'
  81. !!=======================================================!!
  82. !! !!Willpower!! !!
  83. !!=======================================================!!
  84. if pcs_willpwr > willpowermax: pcs_willpwr = willpowermax
  85. if pcs_mood <= 20: will_counter -= 2
  86. if willpowermax > 100:
  87. if pcs_willpwr < 25: will_counter -= 1
  88. else
  89. if pcs_willpwr < willpowermax/4: will_counter -= 1
  90. end
  91. if will_counter <= -10:
  92. willpowermax -= 1
  93. will_counter = 0
  94. end
  95. if pcs_stam > stammax: pcs_stam = stammax
  96. !!=======================================================!!
  97. gs 'femcyc'
  98. if Insleep = 0 and pcs_period['period_warning'] = 0 and placebopart > 0 and LutH > 0 and knowpreg = 0:
  99. pcs_period['period_warning'] = 1
  100. msg'Your stomach suddenly twinges, muscles contracting so tightly that they start to cramp. It seems your period is on its way.'
  101. elseif pcs_period['period_warning'] = 1 and LutH_Max-LutH <= 2:
  102. pcs_period['period_warning'] = 2
  103. if isprok = 1:
  104. msg'Your stomach twinges again. Another cramp of pain. It must mean your period is about to start. Good thing you''re already put a tampon in.'
  105. elseif $location_type = 'private' and isprokp = 1:
  106. msg'Your stomach twinges again. Another cramp of pain. You''re pretty sure you know what''s happening but take advantage of the privacy pull down your panties anyways to confirm; Yup. Your pad is already spotting, which must mean your period is imminent. Good thing you''re already prepared.'
  107. elseif $location_type = 'private' and $pantyworntype ! 'none':
  108. msg'Your stomach twinges again. Another cramp of pain. You''re pretty sure you know what''s happening but take advantage of the privacy pull down your panties anyways to confirm; Yup. Your underwear is already spotting. Your period is imminent.'
  109. else
  110. msg'Your stomach twinges again. Another cramp of pain. It must mean your period is about to start. You really need to get a tampon in there ASAP.'
  111. end
  112. elseif mesec > 0:
  113. pcs_period['period_warning'] = 0
  114. end
  115. !! code to trigger vomitting based on morning sickness, hangovers, or just plain bad luck
  116. if Insleep = 0:
  117. vomit['daily_check'] = 0
  118. !!if Insleep = 1:
  119. else
  120. if vomit['daily_check'] = 0:
  121. vomit['daily_check'] = 1
  122. if alko > 4:
  123. vomit['hangover'] = 1
  124. elseif pregchem > 600 and pregchem < 2160 and rand(1,4) = 4:
  125. vomit['morning_sick'] = 1
  126. elseif rand(1,100) = 100:
  127. vomit['unlucky'] = 1
  128. end
  129. end
  130. end
  131. !!Mana regen
  132. pcs_mana += manamax / 20
  133. if alko > 0 and alkoblock = 0:
  134. if alko >= 6:
  135. if pcs_run > 0: run_deg -= 1
  136. if vball_lvl >= 50: vball_deg -= 1
  137. if alko >= 10:
  138. if pcs_stren > 10: stren_deg -= 1
  139. if pcs_vital > 10: vital_deg -= 1
  140. if pcs_intel > 10: intel_deg -= 1
  141. alko -= rand (0,1)
  142. end
  143. end
  144. alko -= rand (0,1)
  145. elseif alko < 0:
  146. alko = 0
  147. end
  148. if shame > 0:
  149. shame -= 1
  150. pcs_mood -= 5
  151. end
  152. if $pantyworntype = 'none' and PCloPants > 0 and PCloPanties = 0 and $clothingworntype ! 'nude' and pcs_traits['commando_lvl'] < 2:
  153. !! mosol += (2 - pcs_traits['commando_lvl'])
  154. if pcs_traits['commando_lvl'] < 1:
  155. mosol += 2
  156. elseif pcs_traits['commando_lvl'] = 1:
  157. mosol += 1
  158. end
  159. if mosol >= 100: pcs_mood -= 5
  160. if mosol >= 60 and pain['pubic'] < 80: gs 'pain', 1, 'pubic', 'ache'
  161. end
  162. if pcs_energy > 100:
  163. fat += (pcs_energy - 100) / 4
  164. pcs_energy = 100
  165. elseif pcs_energy <= (10 + vitalbuf / 25) and fat > (2 + vitalbuf / 25):
  166. fat -= 2
  167. pcs_energy += 6
  168. end
  169. if pcs_hydra > 200: pcs_hydra = 200
  170. if mosol > 0:
  171. if $pantyworntype ! 'none' or $clothingworntype = 'nude' or PCloPanties > 0:
  172. mosol -= rand(0,1)
  173. end
  174. end
  175. if pcs_lipbalm > 0: pcs_lipbalm -= 1
  176. if sickstage = 1:
  177. sick += 1
  178. sicktimer += 1
  179. if sicktimer >= 80:
  180. sickstage = 2
  181. sicktimer = 0
  182. end
  183. end
  184. if sickstage = 2:
  185. if sick > 0: sick -= 1
  186. if sick <= 0:
  187. sick = 0
  188. sickstage = 0
  189. end
  190. end
  191. !!STDs which hurt mod
  192. if Gerpes >= 3 or Sifilis >= 21 or Triper > 2 and pcs_mood >= 15:
  193. pcs_mood -= 5
  194. end
  195. if perkice > 0: perkice -= 1
  196. if frost > 0: frost -= 1
  197. if KGOLpers > 0:
  198. if KGHP < KGHPMAX: KGHP += 10
  199. if KGMana < KGManaMax: KGMana += 10
  200. end
  201. !! Panty happiness gain
  202. if pcs_mood < 60 and $pantyworntype = 'cats': pcs_mood += 2
  203. if pcs_mood < 60 and $braworntype = 'cats': pcs_mood += 2
  204. !!Arousal adjustments
  205. if (PanThinness >= 5 and BraThinness >= 5) and pcs_horny < 25:
  206. pcs_horny += 10
  207. elseif pcs_horny < 10 and (PanThinness >= 5 or BraThinness >= 5):
  208. pcs_horny += 5
  209. end
  210. if $pantyworntype ! 'none' and clit_size >= 25 and pcs_horny < 60:
  211. pcs_horny += 20
  212. end
  213. if insleep = 0:
  214. gs 'sweat', 'add', rand(0,1)
  215. if temper >= 20: gs 'sweat', 'add', rand(0,1)
  216. end
  217. ! Leg and pubes hair growth
  218. if lashair = 1:
  219. pcs_bubes = 0
  220. pcs_leghair = 0
  221. gs 'body_desc', 'pube_desc_update'
  222. else
  223. !! if jungle_jane trait is active, growth speed is doubled
  224. if totminut > stat['leg_hair_growth_timer'] + iif(pcs_traits['jungle_jane'] = 0, 1440, 720):
  225. stat['leg_hair_growth_timer'] = totminut
  226. pcs_leghair += 1
  227. end
  228. if totminut > stat['pube_growth_timer'] + iif(pcs_traits['jungle_jane'] = 0, 2880, 1440):
  229. stat['pube_growth_timer'] = totminut
  230. pcs_pubes += 1
  231. end
  232. !!Pubic hair growth at 1/2 per night
  233. gs 'body_desc', 'pube_desc_update'
  234. end
  235. ! vovan edition, from 1.2.5
  236. if huntersAndreisex > 0: huntersAndreisex -= 1
  237. if huntersSergeisex > 0: huntersSergeisex -= 1
  238. if huntersIgorsex > 0: huntersIgorsex -= 1
  239. if huntslutsex > 0: huntslutsex -= 1
  240. if MiraVars['follow_time'] > 0:
  241. MiraVars['follow_time'] -= 1
  242. end
  243. if npc_drunk['A60'] > 0 and locat['A60'] ! 42: npc_drunk['A60'] -= 1
  244. gs 'traits', 'hourly'
  245. gs 'katja_procedural', 'hourly'
  246. if (hour mod 2) = 0: gs 'outdoors', 'weather'
  247. --- hourly_events ---------------------------------