nichUtil.qsrc 40 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087
  1. # nichUtil
  2. !! Used variables-
  3. !! Prefix- nich
  4. !! nichWork- 0= does not work for nicholas and never has, 1=has agreed to work for Nicholas but has not introduced herself yet, 2= currently works for nicholas, 3= quit job in good faith and could get hired again, 4= quit job in bad faith or got thrown out and nicholas is blocked
  5. !! nichWorkState- 0= sample days, 1= fully employed
  6. !! nichPerformance- ranging from 0 (fired) to 100 (best)
  7. !! nichHired- the day Sveta was hired
  8. !! nichVacationFrom- the first free day if Sveta gets some time off
  9. !! nichVactionTil- the last free day if Sveta gets some time off (=nichVacationFrom if she has one free day)
  10. !! nichLastWorkDay- the last day Sveta was in the appartment... needed because otherwise the player could avoid work performance checks by just not showing up here
  11. !! nichOutfitState- 0=not wearing an appropriate outfit, 1=wearing an appropriate outfit
  12. !! nichSalaryBase
  13. !! nichSalaryNext
  14. !! nichSalaryOutstanding
  15. !! nichPregnancy: 0: Nicholas has not noticed that you are pregnant
  16. !! 1: Nicholas has noticed you being pregnant
  17. if $ARGS[0] = '' or $ARGS[0] = 'start':
  18. 'This page should never appear. Please report this bug including a description of how you got here.'
  19. elseif $ARGS[0] = 'debug':
  20. if $ARGS[1] = 'debugToggle':
  21. nichDebug = 1 - nichDebug
  22. elseif $ARGS[1] = 'galaTrainingToggle':
  23. nichGalaTraining = 1 - nichGalaTraining
  24. elseif $ARGS[1] = 'chore':
  25. if $ARGS[3] = 'min':
  26. nichChoreState[ARGS[2]] = 0
  27. elseif $ARGS[3] = '1':
  28. nichChoreState[ARGS[2]] += 1
  29. elseif $ARGS[3] = '5':
  30. nichChoreState[ARGS[2]] += 5
  31. end
  32. elseif $ARGS[1] = 'evaluation':
  33. if $ARGS[2] = 'silent':
  34. gs 'nichNicholas','evaluation', 'silent'
  35. end
  36. elseif $ARGS[1] = 'shortcut':
  37. if $ARGS[2] = 'meetTanya':
  38. !! abonement is a var from fit
  39. gs 'nichUtil','clearVars'
  40. abonement = 30
  41. nichWork = 0
  42. nichTanyaRelationship = 0
  43. nichTanyaRelationshipState = 0
  44. nichTanyaRelationshipBreakup = 0
  45. nichTanyaFuckCounter = 0
  46. gt 'fit','start'
  47. elseif $ARGS[2] = 'getHired':
  48. nichWork = 0
  49. nichTanyaRelationship = 1
  50. nichTanyaRelationshipState = 10
  51. nichTanyaRelationshipBreakup = 0
  52. nichJobRefused = 0
  53. nichTanyaFuckCounter = 6
  54. hour = 16
  55. gt 'city_center'
  56. elseif $ARGS[2] = 'tanyaDate100':
  57. nichWork = 2
  58. nichTanyaRelationship = 1
  59. nichTanyaRelationshipState = 10
  60. nichTanyaRelationshipBreakup = 0
  61. nichTanyaFuckCounter = 6
  62. nichTanyaDominance = 30
  63. nichTanyaStrapon = 0
  64. nichGalaKnowsPT = 0
  65. hour = 16
  66. $loc = 'nichBedroomTanja'
  67. gt 'nichTanya','bedroomTanya'
  68. elseif $ARGS[2] = 'nichGentleclubE1':
  69. nichWork = 2
  70. minut = 0
  71. hour = 18
  72. nichGentleclubDayE1 = daystart
  73. nichGentleclubE1 = 1
  74. gt 'nichApartment'
  75. elseif $ARGS[2] = 'galaContract':
  76. nichGalaTraining = 1
  77. nichGalaTrainCounter = 5
  78. nichWork = 2
  79. nichGalaContractActive = 0
  80. nichGalaContract = 0
  81. minut = 0
  82. hour = 18
  83. gt 'nichApartment'
  84. end
  85. end
  86. '<center><b>Nicholas'' Apartment Storyline Debug</b></center>'
  87. '<i><b>Debug mode</b>: display debug messages and force random events to fire as often as possible</i>'
  88. if nichDebug = 1:
  89. 'Debug mode: <a href="exec: gt ''nichUtil'', ''debug'', ''debugToggle''">Enabled</a>'
  90. else
  91. 'Debug mode: <a href="exec: gt ''nichUtil'', ''debug'', ''debugToggle''">Disabled</a>'
  92. end
  93. *nl
  94. '<i><b>Shortcuts</b></i>'
  95. '<i>The following options will set and change a whole bunch of variables and might transport you to another place. Important: every shortcut has been created with a debug scenario in mind and won''t set/reset every storyline-variable. Expect weird behavior.</i>'
  96. '<a href="exec: gt ''nichUtil'', ''debug'',''shortcut'',''meetTanya''">Meet Tanya</a>: Sets you up to meet Tanya. Go to the dressing room. She is the ''cute girl''. Meeting her has a random chance unless you have activated debug mode.'
  97. '<a href="exec: gt ''nichUtil'', ''debug'',''shortcut'',''getHired''">Get hired</a>: You visited Tanya often enough for her to offer you the job as the live-in maid.'
  98. '<a href="exec: gt ''nichUtil'', ''debug'',''shortcut'',''tanyaDate100''">Tanya Special Date 1</a>: Tanya became somewhat dominant. Ask her for a date and let her decide where to go.'
  99. '<a href="exec: gt ''nichUtil'', ''debug'',''shortcut'',''nichGentleclubE1''">Nicholas Club Event 1</a>: Nicholas has a special guest over. Meet him at his study.'
  100. '<a href="exec: gt ''nichUtil'', ''debug'',''shortcut'',''galaContract''">Gala Contract</a>: Gala offers a special contract. Meet her in the living room.'
  101. *nl
  102. '<i><b>Job performance</b></i>'
  103. 'Overall performance (higher=better): <<nichPerformance>>'
  104. '<a href="exec: gt ''nichUtil'', ''debug'', ''evaluation'', ''silent''">Get silent performance evaluation</a>'
  105. '<a href="exec: gt ''nichNicholas'', ''evaluation''">Get detailed performance evaluation</a>'
  106. *nl
  107. '<i><b>Chore state</b>: higher numbers are worse</i>'
  108. 'Hallway: <<nichChoreState[0]>> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 0, ''min''">min</a> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 0, ''1''">+1</a> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 0, ''5''">+5</a>'
  109. 'Guest cloakroom: <<nichChoreState[1]>> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 1, ''min''">min</a> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 1, ''1''">+1</a> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 1, ''5''">+5</a>'
  110. 'Maid bedroom: <<nichChoreState[2]>> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 2, ''min''">min</a> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 2, ''1''">+1</a> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 2, ''5''">+5</a>'
  111. 'Maid bathroom: <<nichChoreState[3]>> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 3, ''min''">min</a> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 3, ''1''">+1</a> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 3, ''5''">+5</a>'
  112. 'Laundry: <<nichChoreState[4]>> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 4, ''min''">min</a> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 4, ''1''">+1</a> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 4, ''5''">+5</a>'
  113. 'Tanya bedroom: <<nichChoreState[5]>> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 5, ''min''">min</a> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 5, ''1''">+1</a> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 5, ''5''">+5</a>'
  114. 'Master bathroom: <<nichChoreState[6]>> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 6, ''min''">min</a> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 6, ''1''">+1</a> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 6, ''5''">+5</a>'
  115. 'Master bedroom: <<nichChoreState[7]>> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 7, ''min''">min</a> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 7, ''1''">+1</a> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 7, ''5''">+5</a>'
  116. 'Living room: <<nichChoreState[8]>> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 8, ''min''">min</a> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 8, ''1''">+1</a> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 8, ''5''">+5</a>'
  117. 'Kitchen: <<nichChoreState[9]>> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 9, ''min''">min</a> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 9, ''1''">+1</a> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 9, ''5''">+5</a>'
  118. 'Study: <<nichChoreState[10]>> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 10, ''min''">min</a> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 10, ''1''">+1</a> <a href="exec: gt ''nichUtil'', ''debug'', ''chore'', 10, ''5''">+5</a>'
  119. *nl
  120. '<i><b>NPCs</b></i>'
  121. 'The following settings are meant for debugging only. Touching them will influence the intended progression in the story.'
  122. '<b>Gala</b>'
  123. if nichGalaTraining = 1:
  124. 'Gala Training: <a href="exec: gt ''nichUtil'', ''debug'', ''galaTrainingToggle''">Enabled</a>'
  125. else
  126. 'Gala Training: <a href="exec: gt ''nichUtil'', ''debug'', ''galaTrainingToggle''">Disabled</a>'
  127. end
  128. '<b>Tanya</b>'
  129. 'Set relationship to:'
  130. '-<a href="exec: nichTanyaRelationship = 0 & nichTanyaRelationshipState = 0 & gt ''nichUtil'', ''debug''">Not together (and never have been)</a>'
  131. '-<a href="exec: nichTanyaRelationship = 0 & nichTanyaRelationshipState = 1000 & gt ''nichUtil'', ''debug''">Not together (you broke up)</a>'
  132. '-<a href="exec: nichTanyaRelationship = 0 & nichTanyaRelationshipState = 1010 & gt ''nichUtil'', ''debug''">Not together (Tanya broke up)</a>'
  133. '-<a href="exec: nichTanyaRelationship = 1 & nichTanyaRelationshipState = 10 & gt ''nichUtil'', ''debug''">Casually dating</a>'
  134. '-<a href="exec: nichTanyaRelationship = 1 & nichTanyaRelationshipState = 20 & gt ''nichUtil'', ''debug''">In a relationship</a>'
  135. 'You fucked Tanya <<nichTanyaFuckCounter>> times'
  136. 'The last time you fucked Tanya was '+(daystart-nichTanyaFuckLast)+' days ago'
  137. 'Tanya has a dominance of <<nichTanyaDominance>> (range: -100 - 100)'
  138. act 'DEBUG: New Workday': gs 'nichUtil', 'startWorkday'
  139. act 'Back': gt $menu_loc, $menu_arg
  140. elseif $ARGS[0] = 'startWorkday':
  141. !! Sveta has free Wednesdays.
  142. if nichWorkState > 0 and week = 3 and nichVactionTil < daystart:
  143. nichVactionTil = daystart
  144. end
  145. nichMissedWorkdays = daystart - nichLastWorkDay - 1
  146. if nickHired + 1 = daystart:
  147. !! this is the first workday ever
  148. nichMissedWorkdays = 0
  149. elseif nichVactionTil + 1 = daystart:
  150. !! this is the first day Sveta has to work after a vacation... maybe work piled up?
  151. nichMissedWorkdays = nichMissedWorkdays - nichVactionTil + nichVacationFrom -1
  152. elseif nichVactionTil >= daystart and nichVacationFrom <= daystart:
  153. !! Sveta does not have to work today
  154. nichMissedWorkdays = nichVacationFrom - nichLastWorkDay - 1
  155. end
  156. if nichMissedWorkdays > 0:
  157. !!Sveta has missed a workday... very bad
  158. nichPerformance -= 40 * nichMissedWorkdays
  159. if nichPerformance <= 0:
  160. nichNote = 1
  161. !!'You see a note hanging at the door to your room.'
  162. !!'"<<$pcs_nichname>>, you missed work. This is unacceptable. Take your stuff and leave. You are fired. -Nicholas"'
  163. !!'You see all your belongings standing in front of the door prepared for your departure.'
  164. !!gt 'nichUtil', 'fired'
  165. else
  166. nichNote = 2
  167. !!'You see a note hanging at the door to your room.'
  168. !!'"<<$pcs_nichname>>, you missed work. This is unacceptable. I expect this not to happen again. -Nicholas"'
  169. end
  170. elseif daystart > nichEvaluationLastReq and nichEvaluationLast < nichEvaluationLastReq:
  171. !! Sveta has missed her last evaluation
  172. !! Perform silent evaluation right now
  173. gs 'nichNicholas','evaluation', 'silent'
  174. !! Dont forget that this evaluation was for yesterday
  175. nichEvaluationLast = daystart - 1
  176. nichPerformance -= 20
  177. if nichPerformance <= 0:
  178. nichNote = 11
  179. !!'You see a note hanging at the door to your room.'
  180. !!'"<<$pcs_nichname>>, you missed your last evaluation. This is unacceptable. Take your stuff and leave. You are fired. -Nicholas"'
  181. !!'You see all your belongings standing in front of the door prepared for your departure.'
  182. !!gt 'nichUtil', 'fired'
  183. else
  184. nichNote = 12
  185. !!'You see a note hanging at the door to your room.'
  186. !!'"<<$pcs_nichname>>, you missed your last evaluation. This is unacceptable. I expect this not to happen again. -Nicholas"'
  187. end
  188. end
  189. nichLastWorkDay = daystart
  190. if nichWorkState > 0:
  191. nichEvaluationLastReq = 0
  192. elseif nichVactionTil >= daystart and nichVacationFrom <= daystart:
  193. nichEvaluationLastReq = daystart + 1
  194. else
  195. nichEvaluationLastReq = daystart
  196. end
  197. !! 0: hallway
  198. nichChoreState[0] += 5
  199. !! 1: guest bathroom
  200. nichChoreState[1] += 5
  201. !! 2: servant bedroom
  202. nichChoreState[2] += 5
  203. !! 3: servant bathroom
  204. nichChoreState[3] += 5
  205. !! 4: laundry
  206. nichChoreState[4] += 5
  207. !! 5: tanya bedroom, if nichTanyaRoom = 1 she will clean it herself
  208. if nichTanyaRoom = 0:
  209. nichChoreState[5] += 5
  210. end
  211. !! 6: master bathroom
  212. nichChoreState[6] += 5
  213. !! 7: master bedroom
  214. nichChoreState[7] += 5
  215. !! 8: living room
  216. nichChoreState[8] += 5
  217. !! 9: kitchen
  218. nichChoreState[9] += 5
  219. !!10: study
  220. nichChoreState[10] += 5
  221. !! Salary
  222. !! Sveta can collect it from a letter in her room
  223. if day = 1:
  224. nichSalaryOutstanding += nichSalaryNext
  225. nichSalaryNext = nichSalaryBase
  226. end
  227. !! NPC behaviour
  228. !! Gala will give up talking smack about Sveta after 5 days
  229. if nichGalaOpponent >= 10 and nichGalaOpponent < 20 and daystart > nichGalaOpponentDay + 5:
  230. nichGalaOpponent = 20
  231. elseif nichGalaOpponent = 30:
  232. nichGalaOpponent = 31
  233. end
  234. !! get rid of all variables concerning Nicholas except for nichWork
  235. elseif $ARGS[0] = 'clearVars':
  236. !!System vars
  237. !!Do not kill nichDebug
  238. killvar 'nichRand'
  239. killvar '$nichTempPic'
  240. killvar '$nichTemp'
  241. !!Work vars
  242. !!Do not kill nichWork
  243. killvar 'nichWorkState'
  244. killvar 'nichNote'
  245. killvar 'nichLastWorkDay'
  246. killvar 'nichMissedWorkdays'
  247. killvar 'nichAfterBFEvent'
  248. killvar 'nichEvaluationLast'
  249. killvar 'nichEvaluationLastReq'
  250. killvar 'nichHotelReferral'
  251. killvar 'nickHired'
  252. killvar 'nichHireMode'
  253. killvar 'nichJobRefused'
  254. killvar 'nichJobRefusedTReact'
  255. killvar 'nichPerformance'
  256. killvar 'nichSalaryNext'
  257. killvar 'nichCleanAppropriate'
  258. killvar 'nichOutfitState'
  259. !!NPC vars
  260. killvar 'nichKnowsCook'
  261. killvar 'nichCookPresent'
  262. killvar '$nichGalaAct'
  263. killvar '$nichNichAct'
  264. killvar '$nichTanyAct'
  265. killvar 'nichGalaPresent'
  266. killvar 'nichNichPresent'
  267. killvar 'nichTanyPresent'
  268. killvar 'nichGalaKnowsPT'
  269. killvar 'nichGalaOpinion'
  270. killvar 'nichGalaOpponent'
  271. killvar 'nichGalaOpponentDay'
  272. killvar 'nichGalaTraining'
  273. killvar 'nichGalaTrainCounter'
  274. killvar 'nichGalaTrainLast'
  275. killvar 'nichFlirtCounter'
  276. killvar 'nichFlirtLast'
  277. killvar 'nichNTRelation'
  278. killvar 'nichSex'
  279. !!Do not kill nichTanyaUni
  280. !!Do not kill Tanyas fuck vars since Sveta might meet her after leaving her job
  281. killvar 'nichTanyaSpyLast'
  282. killvar 'nichTanyaSpyCounter'
  283. elseif $ARGS[0] = 'fired':
  284. 'It takes you a few moments to process what just happened:'
  285. 'You have just been fired. And kind of lost your home, too.'
  286. home_owned[7] = 0
  287. nichWork = 4
  288. work = 0
  289. gs 'nichUtil', 'clearVars'
  290. act 'Take your belongings and leave the apartment':gt 'city_center'
  291. end
  292. !! initializes variables when hired, might mess everything up if called at any other time
  293. if $ARGS[0] = 'hired':
  294. home_owned[7] = 1
  295. nichWork = 2
  296. nichWorkState = 0
  297. nichPerformance = 45
  298. nickHired = daystart
  299. !!Todo: check the following
  300. nichVacationFrom = daystart
  301. nichVactionTil = daystart
  302. nichLastWorkDay = daystart
  303. nichEvaluationLast = daystart
  304. nichEvaluationLastReq = daystart
  305. nichMaidBathG = 0
  306. nichMaidLaundry = 0
  307. nichMaidDishes = 0
  308. nichMaidGroceries = 0
  309. nichMaidHallway = 0
  310. nichMaidLivingDust = 0
  311. nichMaidLivingFloor = 0
  312. nichMaidLivingItems = 0
  313. nichMaidLivingWindows = 0
  314. nichLastInspepection = -1
  315. nichChoreState[0] = 0
  316. nichSalaryBase = 10000
  317. $npc_nickname['A52'] = 'Master '+$npc_firstname['A52']
  318. end
  319. if $ARGS[0] = 'onLoad':
  320. gs 'nichUtil','updateVars'
  321. if $loc = 'tanapartment' or $loc = 'tanhouse' or $loc = 'tanhousezal' or $loc = 'tanhozspal' or $loc = 'tankitchen' or $loc = 'tanNicholas' or $loc = 'tanroom' or $loc = 'tanspalnya' or $loc = 'tanvanr':
  322. $loc = 'nichApartment'
  323. $loc_arg = ''
  324. gt 'nichUtil','updateNotice'
  325. end
  326. end
  327. !!
  328. if $ARGS[0] = 'updateVars':
  329. if nichTanyaOpinion > 0:
  330. nichTanyaKnown = 1
  331. if nichTanyaOpinion = 1:
  332. nichTanyaRelationship = 1
  333. nichTanyaRelationshipState = 10
  334. elseif nichTanyaOpinion = 10:
  335. nichTanyaRelationship = 1
  336. nichTanyaRelationshipState = 20
  337. elseif nichTanyaOpinion = 20:
  338. nichTanyaRelationship = 1
  339. nichTanyaRelationshipState = 10
  340. elseif nichTanyaOpinion = 30:
  341. nichTanyaRelationship = 0
  342. nichTanyaRelationshipState = 1010
  343. end
  344. killvar 'nichTanyaOpinion'
  345. end
  346. end
  347. !! convert the old vars to the new system
  348. if $ARGS[0] = 'convert':
  349. killvar 'MaidWorkDay'
  350. killvar 'MaidWork'
  351. killvar 'TanHallClean'
  352. killvar 'TanRoomClean'
  353. killvar 'TanBathClean'
  354. killvar 'TanMasterClean'
  355. killvar 'TanLivingClean'
  356. killvar 'TanMaidRoomClean'
  357. killvar 'TanKitchenClean'
  358. killvar 'TanMadeBreakfast'
  359. killvar 'tanwork'
  360. killvar 'tan_work_rep'
  361. killvar 'tan_work_evaluation'
  362. end
  363. if $ARGS[0] = 'updateNotice':
  364. '<b><font color = red>Update Notice</font></b>'
  365. 'It appears as if you are currently the live-in maid of Nicholas.'
  366. *nl
  367. 'This story-line has changed drastically in the last updates.'
  368. *nl
  369. 'Please select one option:'
  370. '1. Start over: You can play the whole story-line all over again as if it has never happened.'
  371. '2. Stay hired: You will stay the maid of Nicholas and your job performance will be translated to the new system. You will be in a sexual relationship with Tanya.'
  372. gs 'nichUtil','convert'
  373. act 'Start over':
  374. gt $loc, $loc_arg
  375. end
  376. act 'Stay hired':
  377. gs 'nichUtil', 'hired'
  378. nichPerformance = max(tan_work_rep * 5,10)
  379. nichTanyaRelationship = 1
  380. nichTanyaRelationshipState = 10
  381. nichTanyaRelationshipBreakup = 0
  382. gt $loc, $loc_arg
  383. end
  384. end
  385. if $ARGS[0] = 'checkOutfit':
  386. if $clothingworntype = 'gm_uniform':
  387. nichOutfitState = 1
  388. else
  389. nichOutfitState = 0
  390. end
  391. end
  392. !! Creates the actions for cleaning rooms
  393. !! DEPRECATED
  394. if $ARGS[0] = 'cleanOptions':
  395. $nichTempPic = func('nichUtil','cleanPic',$nichChoreType,$nichChoreLoc)
  396. if nichOutfitState = 0:
  397. '<b><font color = red>You have to change into an appropriate outfit before cleaning up.</font></b>'
  398. elseif nichChoreState[nichChoreID] > 0:
  399. act '(<<nichtTimeQuick>> minutes) Clean quickly':
  400. *clr & cla
  401. '<center><img <<$set_imgh>> src="<<$nichTempPic>>"></center>'
  402. minut += nichtTimeQuick
  403. nichChoreState[nichChoreID] = 0
  404. cleaning_exp += rand (0,1)
  405. gs'stat'
  406. act 'Finish':
  407. gt $loc, 'return'
  408. end
  409. end
  410. act '(<<nichTimeNormal>> minutes) Clean normally':
  411. *clr & cla
  412. '<center><img <<$set_imgh>> src="<<$nichTempPic>>"></center>'
  413. minut += nichTimeNormal
  414. nichChoreState[nichChoreID] = 0
  415. cleaning_exp += rand (1,3)
  416. act 'Finish':
  417. gt $loc, 'return'
  418. end
  419. end
  420. act '(<<nichTimeDiligently>> minutes) Clean diligently':
  421. *clr & cla
  422. '<center><img <<$set_imgh>> src="<<$nichTempPic>>"></center>'
  423. minut += nichTimeDiligently
  424. nichChoreState[nichChoreID] = 0
  425. cleaning_exp += rand (1,5)
  426. act 'Finish':
  427. gt $loc, 'return'
  428. end
  429. end
  430. end
  431. act 'Don''t clean':
  432. gt $loc, 'return'
  433. end
  434. end
  435. !! Returns the path to a picture of a maid cleaning something. If there are more than one pictures matching the citeria one of them is chosen at random.
  436. !! Arguments:
  437. !! 1 (required): What to clean/do (bed, floor, furniture,bath,kitchen)
  438. !! 2 (optional): Where (servant (=bedroom servant), living, kitchen, hallway, masterbath, study, bathGuest)
  439. !! 3 (optional): How to clean (quickly, normally, diligently)
  440. if $ARGS[0] = 'cleanPic':
  441. killvar '$nichTempPic'
  442. if $ARGS[1] = 'bed':
  443. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid7.jpg'
  444. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid21.jpg'
  445. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid31.jpg'
  446. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid79.jpg'
  447. if $ARGS[2] = 'servant' or $ARGS[2] = 'tanya':
  448. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid27.jpg'
  449. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid34.jpg'
  450. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid71.jpg'
  451. elseif $ARGS[2] = 'master':
  452. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid56.jpg'
  453. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid79.jpg'
  454. end
  455. elseif $ARGS[1] = 'floor':
  456. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid5.jpg'
  457. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid9.jpg'
  458. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid15.jpg'
  459. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid16.jpg'
  460. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid58.jpg'
  461. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid60.jpg'
  462. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid61.jpg'
  463. elseif $ARGS[1] = 'bath':
  464. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid26.jpg'
  465. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid35.jpg'
  466. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid80.jpg'
  467. elseif $ARGS[1] = 'kitchen':
  468. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid19.jpg'
  469. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid23.jpg'
  470. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid24.jpg'
  471. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid38.jpg'
  472. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid52.jpg'
  473. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid66.jpg'
  474. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid67.jpg'
  475. elseif $ARGS[1] = 'furniture':
  476. if $ARGS[2] = 'living':
  477. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid0.jpg'
  478. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid4.jpg'
  479. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid41.jpg'
  480. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid59.jpg'
  481. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid70.jpg'
  482. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid73.jpg'
  483. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid74.jpg'
  484. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid76.jpg'
  485. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid78.jpg'
  486. elseif $ARGS[2] = 'study':
  487. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid30.jpg'
  488. end
  489. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid8.jpg'
  490. elseif $ARGS[1] = 'laundry':
  491. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid12.jpg'
  492. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid13.jpg'
  493. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid25.jpg'
  494. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid49.jpg'
  495. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid54.jpg'
  496. $nichTempPic[ARRSIZE('$nichTempPic')] = 'maid69.jpg'
  497. end
  498. if ARRSIZE('$nichTempPic') = 0:
  499. !!generic fallback in case no matching picture was found
  500. $RESULT = 'images/pc/activities/maidCleaning/maid0.jpg'
  501. else
  502. $RESULT = 'images/pc/activities/maidCleaning/'+$nichTempPic[rand(0,ARRSIZE('$nichTempPic')-1)]
  503. end
  504. if nichDebug = 1: 'Debug: Picture '+$RESULT
  505. !!killvar 'nichTemp'
  506. killvar '$nichTempPic'
  507. end
  508. !! Returns the path to a picture of Tanya.
  509. !! Arguments:
  510. !! 1 (required): General activity ("idle" for something not sex-related, "sexL" for lesbian sex, "sexH" for sex with a man)
  511. !! 2 (required for sex): Specific activity (prefix a: Tanya acts, prefix p: Tanya gets acted upon; "")
  512. !! 3 (optional): Partner for sex-options (0 or unset: PC, 1: PC and ignore PC appearance)
  513. if $ARGS[0] = 'tanyaPic':
  514. gs 'nichUtil','updatePcHair'
  515. $nichTempFolder = 'images/characters/city/tanya/'
  516. if $ARGS[1] = 'idle':
  517. $RESULT = $nichTempFolder + 'idle/idle'+rand(0,5)+'.jpg'
  518. end
  519. if $ARGS[1] = 'cuddle':
  520. $RESULT = $nichTempFolder + 'sex/cuddle'+rand(0,4)+'.jpg'
  521. end
  522. if $ARGS[1] = 'sexL' or $ARGS[1] = 'sexH':
  523. !! Pictures which work for both lesbian and heterosexual sex
  524. if $ARGS[2] = 'after':
  525. !! pictures of Tanya relaxing after sex
  526. $RESULT = $nichTempFolder + 'sex/relax'+rand(0,5)+'.jpg'
  527. elseif $ARGS[2] = 'pose':
  528. $RESULT = $nichTempFolder + 'sex/pose'+rand(0,1)+'.jpg'
  529. elseif $ARGS[2] = 'undress':
  530. $RESULT = $nichTempFolder + 'sex/undress'+rand(0,3)+'.jpg'
  531. end
  532. end
  533. if $ARGS[1] = 'sexL':
  534. if $ARGS[2] = 'kiss':
  535. $RESULT = $nichTempFolder + 'sexL/kiss/kiss'+rand(0,5)+'.jpg'
  536. elseif $ARGS[2] = 'aeatout':
  537. $RESULT = $nichTempFolder + 'sexL/aeatout/aeatout'+rand(0,3)+'.jpg'
  538. elseif $ARGS[2] = 'peatout':
  539. $RESULT = $nichTempFolder + 'sexL/peatout/peatout'+rand(0,6)+'.jpg'
  540. elseif $ARGS[2] = 'arimjob':
  541. $RESULT = $nichTempFolder + 'sexL/arimjob/arimjob'+rand(0,3)+'.jpg'
  542. elseif $ARGS[2] = 'primjob':
  543. $RESULT = $nichTempFolder + 'sexL/primjob/primjob'+rand(0,2)+'.jpg'
  544. elseif $ARGS[2] = 'astrapon':
  545. $RESULT = $nichTempFolder + 'sexL/astrapon/astrapon'+rand(0,5)+'.jpg'
  546. elseif $ARGS[2] = 'pstrapon':
  547. $RESULT = $nichTempFolder + 'sexL/pstrapon/pstrapon'+rand(0,3)+'.jpg'
  548. elseif $ARGS[2] = 'psovaginal':
  549. $RESULT = $nichTempFolder + 'sexL/pstrapon/pstrapon'+rand(0,3)+'.jpg'
  550. end
  551. elseif $ARGS[1] = 'sexH':
  552. if $ARGS[2] = 'spy':
  553. if $ARGS[3] = '' or $ARGS[3] = 'nicholas':
  554. $RESULT = $nichTempFolder + 'sexNich/nich'+rand(0,5)+'.jpg'
  555. elseif $ARGS[3] = 'bf1':
  556. $RESULT = $nichTempFolder + 'sexBf/bf1/sex'+rand(0,4)+'.jpg'
  557. elseif $ARGS[3] = 'bf2':
  558. $RESULT = $nichTempFolder + 'sexBf/bf2/sex'+rand(0,2)+'.jpg'
  559. end
  560. end
  561. end
  562. killvar '$nichTempFolder'
  563. end
  564. !! sets nichPCHair to:
  565. !! 0 if PC has brown, dark red or black hair (any natural color which is not blonde)
  566. !! 1 if PC is blonde
  567. !! 2 if PC has any other hair color
  568. if $ARGS[0] = 'updatePcHair':
  569. if pcs_haircol = 3:
  570. nichPCHair = 1
  571. elseif pcs_haircol > 3:
  572. nichPCHair = 2
  573. else
  574. nichPCHair = 0
  575. end
  576. end
  577. if $ARGS[0] = 'npcActivityAdd':
  578. $nichNpcActArr[ARRSIZE('$nichNpcActArr')] = $ARGS[1]
  579. nichNpcActTime[ARRSIZE('nichNpcActTime')] = ARGS[2]*60 + ARGS[3]
  580. end
  581. !! The activity the NPC is currently doing at a given time.
  582. !! The times are read as up to but not including.
  583. !! If you add an activity:
  584. !! 1. Add it here and make sure activities stay in chronological order.
  585. !! 2. Add the activity to the function whereis
  586. !! 3. Add the activity to the the description of the corresponding character (e.g. nichNicholas)
  587. !! 4. Add the activity to the corresponding location (if its inside the appartment)
  588. if $ARGS[0] = 'npcActivity':
  589. if $ARGS[1] = 'nicholas':
  590. !!Morning routine
  591. if week <= 5:
  592. gs 'nichUtil', 'npcActivityAdd', 'sleep', 6 , 45
  593. gs 'nichUtil', 'npcActivityAdd', 'bathMorning', 7 , 15
  594. gs 'nichUtil', 'npcActivityAdd', 'study', 7 , 45
  595. gs 'nichUtil', 'npcActivityAdd', 'breakfast', 8 , 30
  596. else
  597. gs 'nichUtil', 'npcActivityAdd', 'sleep', 7 , 45
  598. gs 'nichUtil', 'npcActivityAdd', 'bathMorning', 8 , 15
  599. gs 'nichUtil', 'npcActivityAdd', 'study', 8 , 45
  600. gs 'nichUtil', 'npcActivityAdd', 'breakfast', 9 , 30
  601. end
  602. !!day avtivity
  603. if week <= 4:
  604. gs 'nichUtil', 'npcActivityAdd', 'leaveWork', 8 , 35
  605. gs 'nichUtil', 'npcActivityAdd', 'work', 18 , 0
  606. gs 'nichUtil', 'npcActivityAdd', 'returnWork', 18 , 05
  607. elseif week = 5:
  608. gs 'nichUtil', 'npcActivityAdd', 'leaveWork', 8 , 35
  609. gs 'nichUtil', 'npcActivityAdd', 'work', 16 , 0
  610. gs 'nichUtil', 'npcActivityAdd', 'returnWork', 16 , 05
  611. elseif week = 6:
  612. gs 'nichUtil', 'npcActivityAdd', 'leaveShopping', 9 , 35
  613. gs 'nichUtil', 'npcActivityAdd', 'shopping', 16 , 0
  614. gs 'nichUtil', 'npcActivityAdd', 'returnShopping', 16 , 05
  615. else
  616. gs 'nichUtil', 'npcActivityAdd', 'living', 16 , 0
  617. end
  618. !!evening
  619. if nichGentleclubDayE1 = daystart:
  620. !!Nicholas has an important guest in his study and stays there all evening
  621. gs 'nichUtil', 'npcActivityAdd', 'study', 22 , 30
  622. gs 'nichUtil', 'npcActivityAdd', 'bathEvening', 22 , 45
  623. gs 'nichUtil', 'npcActivityAdd', 'sleep', 24 , 0
  624. elseif week <= 4:
  625. gs 'nichUtil', 'npcActivityAdd', 'dinner', 18 , 30
  626. gs 'nichUtil', 'npcActivityAdd', 'study', 20 , 30
  627. if week = 1:
  628. gs 'nichUtil', 'npcActivityAdd', 'study', 22 , 0
  629. elseif week = 2 or week = 4:
  630. if nichNTRelation < 10:
  631. gs 'nichUtil', 'npcActivityAdd', 'tanya', 22 , 0
  632. else
  633. gs 'nichUtil', 'npcActivityAdd', 'study', 22 , 0
  634. end
  635. elseif week = 3:
  636. gs 'nichUtil', 'npcActivityAdd', 'living', 22 , 0
  637. end
  638. gs 'nichUtil', 'npcActivityAdd', 'bathEvening', 22 , 15
  639. gs 'nichUtil', 'npcActivityAdd', 'sleep', 24 , 0
  640. elseif week = 5 or week = 6:
  641. gs 'nichUtil', 'npcActivityAdd', 'study', 18 , 0
  642. gs 'nichUtil', 'npcActivityAdd', 'bathClub', 18 , 30
  643. gs 'nichUtil', 'npcActivityAdd', 'leaveClub', 18 , 35
  644. gs 'nichUtil', 'npcActivityAdd', 'club', 23 , 45
  645. gs 'nichUtil', 'npcActivityAdd', 'returnClub', 23 , 50
  646. gs 'nichUtil', 'npcActivityAdd', 'sleep', 24 , 0
  647. else
  648. gs 'nichUtil', 'npcActivityAdd', 'study', 18 , 0
  649. gs 'nichUtil', 'npcActivityAdd', 'dinner', 18 , 30
  650. gs 'nichUtil', 'npcActivityAdd', 'gala', 21 , 30
  651. gs 'nichUtil', 'npcActivityAdd', 'bathEvening', 21 , 45
  652. gs 'nichUtil', 'npcActivityAdd', 'sleep', 24 , 0
  653. end
  654. elseif $ARGS[1] = 'gala':
  655. if nichGalaDisabled = 1:
  656. gs 'nichUtil', 'npcActivityAdd', 'vanished', 24 , 0
  657. else
  658. !!Morning routine
  659. if week <= 5:
  660. gs 'nichUtil', 'npcActivityAdd', 'sleep', 6 , 45
  661. !! gala will wake up the same time Nicholas does (->alarm clock) but she will wait for him to be finished in bath before she goes there
  662. gs 'nichUtil', 'npcActivityAdd', 'snooze', 7 , 15
  663. !! Gala is in bath while Nicholas is in his study
  664. gs 'nichUtil', 'npcActivityAdd', 'bathMorning', 7 , 45
  665. !! note: breakfast time should be the same for all three characters
  666. gs 'nichUtil', 'npcActivityAdd', 'breakfast', 8 , 30
  667. else
  668. gs 'nichUtil', 'npcActivityAdd', 'sleep', 7 , 45
  669. gs 'nichUtil', 'npcActivityAdd', 'snooze', 8 , 15
  670. gs 'nichUtil', 'npcActivityAdd', 'bathMorning', 8 , 45
  671. gs 'nichUtil', 'npcActivityAdd', 'breakfast', 9 , 30
  672. end
  673. !! daily activity
  674. if week = 1 or week = 3:
  675. gs 'nichUtil', 'npcActivityAdd', 'living', 18 , 05
  676. elseif week = 2:
  677. !! Gala goes to spa on Tuesdays
  678. gs 'nichUtil', 'npcActivityAdd', 'living', 9 , 0
  679. gs 'nichUtil', 'npcActivityAdd', 'leaveSpa', 9 , 5
  680. gs 'nichUtil', 'npcActivityAdd', 'spa', 15 , 30
  681. gs 'nichUtil', 'npcActivityAdd', 'returnSpa', 15 , 35
  682. gs 'nichUtil', 'npcActivityAdd', 'living', 18 , 05
  683. elseif week = 4:
  684. !! Gala visits a friend on Thursdays
  685. gs 'nichUtil', 'npcActivityAdd', 'living', 9 , 0
  686. gs 'nichUtil', 'npcActivityAdd', 'leaveFriend', 9 , 5
  687. gs 'nichUtil', 'npcActivityAdd', 'friend', 17 , 30
  688. gs 'nichUtil', 'npcActivityAdd', 'returnFriend', 17 , 35
  689. gs 'nichUtil', 'npcActivityAdd', 'living', 18 , 05
  690. elseif week = 5:
  691. !! TODO: Friday plans
  692. gs 'nichUtil', 'npcActivityAdd', 'living', 18 , 05
  693. elseif week = 6:
  694. !! TODO: Saturday plans
  695. gs 'nichUtil', 'npcActivityAdd', 'living', 18 , 05
  696. else
  697. !! TODO: Sunday plans
  698. gs 'nichUtil', 'npcActivityAdd', 'living', 18 , 0
  699. end
  700. !!evening
  701. if week <= 4:
  702. !! dinner has to be the same time for all three characters
  703. gs 'nichUtil', 'npcActivityAdd', 'dinner', 18 , 30
  704. gs 'nichUtil', 'npcActivityAdd', 'living', 20 , 30
  705. gs 'nichUtil', 'npcActivityAdd', 'bathEvening', 22 , 15
  706. gs 'nichUtil', 'npcActivityAdd', 'sleep', 24 , 0
  707. elseif week = 5 or week = 6:
  708. !! Gala will prepare herself for the club in the bedroom
  709. !! she will accompany Nicholas there, so their times have to be the same
  710. gs 'nichUtil', 'npcActivityAdd', 'prepareClub', 18 , 30
  711. gs 'nichUtil', 'npcActivityAdd', 'leaveClub', 18 , 35
  712. gs 'nichUtil', 'npcActivityAdd', 'club', 23 , 45
  713. gs 'nichUtil', 'npcActivityAdd', 'returnClub', 23 , 50
  714. gs 'nichUtil', 'npcActivityAdd', 'sleep', 24 , 0
  715. else
  716. gs 'nichUtil', 'npcActivityAdd', 'dinner', 18 , 30
  717. !! Nicholas will do her at this time, so she must have the corresponding entry
  718. gs 'nichUtil', 'npcActivityAdd', 'nicholas', 21 , 30
  719. gs 'nichUtil', 'npcActivityAdd', 'bathEvening', 21 , 45
  720. gs 'nichUtil', 'npcActivityAdd', 'sleep', 24 , 0
  721. end
  722. end
  723. elseif $ARGS[1] = 'tanya':
  724. !!Morning routine
  725. if week <= 5:
  726. gs 'nichUtil', 'npcActivityAdd', 'sleep', 7 , 45
  727. !! note: breakfast time should be the same for all three characters
  728. gs 'nichUtil', 'npcActivityAdd', 'breakfast', 8 , 30
  729. gs 'nichUtil', 'npcActivityAdd', 'bathMorning', 9 , 15
  730. elseif week = 6:
  731. !! Tanya will go to a club on Friday evening and return on Saturday morning
  732. gs 'nichUtil', 'npcActivityAdd', 'club', 2 , 30
  733. gs 'nichUtil', 'npcActivityAdd', 'returnClub', 2 , 35
  734. gs 'nichUtil', 'npcActivityAdd', 'sleep', 8 , 45
  735. !! note: breakfast time should be the same for all three characters
  736. gs 'nichUtil', 'npcActivityAdd', 'breakfast', 9 , 30
  737. gs 'nichUtil', 'npcActivityAdd', 'bathMorning', 10 , 15
  738. else
  739. gs 'nichUtil', 'npcActivityAdd', 'sleep', 8 , 45
  740. !! note: breakfast time should be the same for all three characters
  741. gs 'nichUtil', 'npcActivityAdd', 'breakfast', 9 , 30
  742. gs 'nichUtil', 'npcActivityAdd', 'bathMorning', 10 , 15
  743. end
  744. !! TODO: daily activities
  745. !! Tanya will go to university from 10:15-14:00
  746. if nichTanyaUni >= 100 and nichTanyaUniStart ! daystart:
  747. if week <= 5:
  748. gs 'nichUtil', 'npcActivityAdd', 'leaveUni', 10 , 20
  749. gs 'nichUtil', 'npcActivityAdd', 'uni', 14 , 0
  750. if week = 2 or week = 5:
  751. gs 'nichUtil', 'npcActivityAdd', 'returnUni', 14 , 5
  752. end
  753. end
  754. else
  755. if week = 1:
  756. gs 'nichUtil', 'npcActivityAdd', 'tanya', 13 , 55
  757. gs 'nichUtil', 'npcActivityAdd', 'leaveBallet', 14 , 0
  758. elseif week = 3:
  759. gs 'nichUtil', 'npcActivityAdd', 'tanya', 12 , 0
  760. gs 'nichUtil', 'npcActivityAdd', 'leaveFriend', 12 , 5
  761. elseif week = 4:
  762. gs 'nichUtil', 'npcActivityAdd', 'tanya', 12 , 0
  763. gs 'nichUtil', 'npcActivityAdd', 'leaveShopping', 12 , 5
  764. end
  765. end
  766. if week = 1:
  767. gs 'nichUtil', 'npcActivityAdd', 'ballet', 16 , 30
  768. gs 'nichUtil', 'npcActivityAdd', 'returnBallet', 16 , 35
  769. elseif week = 3:
  770. gs 'nichUtil', 'npcActivityAdd', 'friend', 17 , 0
  771. gs 'nichUtil', 'npcActivityAdd', 'returnFriend', 17 , 5
  772. elseif week = 4:
  773. gs 'nichUtil', 'npcActivityAdd', 'shopping', 16 , 15
  774. gs 'nichUtil', 'npcActivityAdd', 'returnShopping', 16 , 20
  775. end
  776. gs 'nichUtil', 'npcActivityAdd', 'tanya', 18 , 05
  777. if week <= 4 or week = 7:
  778. gs 'nichUtil', 'npcActivityAdd', 'dinner', 18 , 30
  779. end
  780. !! TODO: evening activities
  781. gs 'nichUtil', 'npcActivityAdd', 'tanya', 20 , 30
  782. if week = 2 or week = 4:
  783. !! Tanya will have sex with Nicholas, her bf or wait for Sveta in her room
  784. !! Needs to have corresponding entries to Nicholas entries.
  785. if nichNTRelation < 10:
  786. gs 'nichUtil', 'npcActivityAdd', 'nicholas', 22 , 0
  787. elseif nichTanyaBF > 0:
  788. gs 'nichUtil', 'npcActivityAdd', 'boyfriend', 23 , 0
  789. else
  790. gs 'nichUtil', 'npcActivityAdd', 'tanya', 22 , 0
  791. end
  792. gs 'nichUtil', 'npcActivityAdd', 'sleep', 24 , 0
  793. elseif week = 5:
  794. !! Tanya will go to a club on Friday evenings and stay there til Saturday morning
  795. gs 'nichUtil', 'npcActivityAdd', 'prepareClub', 21 , 30
  796. gs 'nichUtil', 'npcActivityAdd', 'leaveClub', 21 , 35
  797. gs 'nichUtil', 'npcActivityAdd', 'club', 24 , 0
  798. else
  799. gs 'nichUtil', 'npcActivityAdd', 'tanya', 22 , 0
  800. gs 'nichUtil', 'npcActivityAdd', 'sleep', 24 , 0
  801. end
  802. end
  803. $RESULT = $nichNpcActArr[0]
  804. nichNpcActC = 0
  805. :nichNpcActivityLoop
  806. if nichNpcActTime[nichNpcActC] <= hour * 60 + minut:
  807. nichNpcActC += 1
  808. if nichNpcActC < ARRSIZE('nichNpcActTime'): jump 'nichNpcActivityLoop'
  809. end
  810. $RESULT = $nichNpcActArr[nichNpcActC]
  811. killvar '$nichNpcActArr'
  812. killvar 'nichNpcActTime'
  813. killvar '$nichNpcActC'
  814. end
  815. if $ARGS[0] = 'whereIs':
  816. $RESULT = 'unknown'
  817. if $ARGS[1] = 'nicholas':
  818. $nichTemp = func('nichUtil','npcActivity','nicholas')
  819. if $nichTemp = 'sleep' or $nichTemp = 'gala':
  820. $RESULT = 'masterBedroom'
  821. elseif $nichTemp = 'bathMorning' or $nichTemp = 'bathClub' or $nichTemp = 'bathEvening':
  822. $RESULT = 'masterBathroom'
  823. elseif $nichTemp = 'breakfast' or $nichTemp = 'living' or $nichTemp = 'dinner':
  824. $RESULT = 'living'
  825. elseif $nichTemp = 'leaveWork' or $nichTemp = 'returnWork' or $nichTemp = 'leaveShopping' or $nichTemp = 'returnShopping' or $nichTemp = 'leaveClub' or $nichTemp = 'returnClub':
  826. $RESULT = 'hallway'
  827. elseif $nichTemp = 'work':
  828. $RESULT = 'work'
  829. elseif $nichTemp = 'study':
  830. $RESULT = 'study'
  831. elseif $nichTemp = 'tanya':
  832. $RESULT = 'bedroomTanya'
  833. elseif $nichTemp = 'club':
  834. $RESULT = 'club'
  835. elseif $nichTemp = 'shopping':
  836. $RESULT = 'shopping'
  837. end
  838. elseif $ARGS[1] = 'gala':
  839. $nichTemp = func('nichUtil','npcActivity','gala')
  840. if $nichTemp = 'sleep' or $nichTemp = 'snooze' or $nichTemp = 'nicholas' or $nichTemp = 'prepareClub':
  841. $RESULT = 'masterBedroom'
  842. elseif $nichTemp = 'bathMorning' or $nichTemp = 'bathEvening':
  843. $RESULT = 'masterBathroom'
  844. elseif $nichTemp = 'breakfast' or $nichTemp = 'living' or $nichTemp = 'dinner':
  845. $RESULT = 'living'
  846. elseif $nichTemp = 'leaveSpa' or $nichTemp = 'returnSpa' or $nichTemp = 'leaveFriend' or $nichTemp = 'returnFriend' or $nichTemp = 'leaveClub' or $nichTemp = 'returnClub':
  847. $RESULT = 'hallway'
  848. elseif $nichTemp = 'club':
  849. $RESULT = 'club'
  850. elseif $nichTemp = 'friend':
  851. $RESULT = 'friend'
  852. end
  853. elseif $ARGS[1] = 'tanya':
  854. $nichTemp = func('nichUtil','npcActivity','tanya')
  855. if $nichTemp = 'sleep' or $nichTemp = 'nicholas' or $nichTemp = 'tanya' or $nichTemp = 'boyfriend':
  856. $RESULT = 'bedroomTanya'
  857. elseif $nichTemp = 'bathMorning' or $nichTemp = 'bathEvening' or $nichTemp = 'prepareClub':
  858. $RESULT = 'masterBathroom'
  859. elseif $nichTemp = 'breakfast' or $nichTemp = 'living' or $nichTemp = 'dinner':
  860. $RESULT = 'living'
  861. elseif $nichTemp = 'leaveUni' or $nichTemp = 'returnUni' or $nichTemp = 'leaveBallet' or $nichTemp = 'returnBallet' or $nichTemp = 'leaveFriend' or $nichTemp = 'returnFriend' or $nichTemp = 'leaveShopping' or $nichTemp = 'returnShopping' or $nichTemp = 'leaveClub' or $nichTemp = 'returnClub':
  862. $RESULT = 'hallway'
  863. elseif $nichTemp = 'uni':
  864. $RESULT = 'uni'
  865. elseif $nichTemp = 'ballet':
  866. $RESULT = 'ballet'
  867. elseif $nichTemp = 'friend':
  868. $RESULT = 'friend'
  869. elseif $nichTemp = 'shopping':
  870. $RESULT = 'shopping'
  871. elseif $nichTemp = 'club':
  872. $RESULT = 'club'
  873. end
  874. elseif $ARGS[1] = 'cook':
  875. if hour >= 10 and hour < 20:
  876. $RESULT = 'kitchen'
  877. end
  878. end
  879. end
  880. if $ARGS[0] = 'isHome':
  881. $nichTemp = func('nichUtil','whereIs',$ARGS[1])
  882. RESULT = 0
  883. if $nichTemp = 'masterBedroom' or $nichTemp = 'masterBathroom' or $nichTemp = 'bedroomTanya' or $nichTemp = 'bedroomServant' or $nichTemp = 'bathroomServant' or $nichTemp = 'bedroomGuest' or $nichTemp = 'study' or $nichTemp = 'living' or $nichTemp = 'kitchen':
  884. RESULT = 1
  885. end
  886. end
  887. !! Returns 1 if the character $ARGS[1] is in the room $ARGS[2] and no other characters are there
  888. !! Returns 0 if the character is not present and/or other characters are present
  889. if $ARGS[0] = 'isAlone':
  890. $nichTempC1 = $ARGS[1]
  891. if $nichTempC1 = 'nicholas':
  892. $nichTempC2 = 'gala'
  893. $nichTempC3 = 'tanya'
  894. else
  895. $nichTempC2 = 'nicholas'
  896. if $nichTempC1 = 'gala':
  897. $nichTempC3 = 'tanya'
  898. else
  899. $nichTempC3 = 'gala'
  900. end
  901. end
  902. if FUNC('nichUtil','isPresent',$nichTempC1,$ARGS[2]) = 0:
  903. RESULT = 0
  904. else
  905. if FUNC('nichUtil','isPresent',$nichTempC2,$ARGS[2]) = 1 or FUNC('nichUtil','isPresent',$nichTempC3,$ARGS[2]) = 1:
  906. RESULT = 0
  907. else
  908. RESULT = 1
  909. end
  910. end
  911. killvar '$nichTempC1'
  912. killvar '$nichTempC2'
  913. killvar '$nichTempC3'
  914. end
  915. if $ARGS[0] = 'isPresent':
  916. $npcLocation = FUNC('nichUtil','whereIs',$ARGS[1])
  917. if $npcLocation = $ARGS[2]:
  918. RESULT = 1
  919. else
  920. RESULT = 0
  921. end
  922. end
  923. !! Returns 1 if $loc is currently set to a location inside Nicholas apartment
  924. !! USAGE: x = FUNC('nichUtil','isNicholasHome')
  925. if $ARGS[0] = 'isNicholasHome':
  926. if $loc = 'nichBathMaster' or $loc = 'nichBedroomServant':
  927. RESULT = 1
  928. else
  929. RESULT = 0
  930. end
  931. end
  932. !! Called by arousal.qsrc
  933. !! Usage: gs 'nichUtil','onArouse',TYPE
  934. !! Type: $ARGS[0] of arousal
  935. if $ARGS[0] = 'onArouse':
  936. if nichGalaImplant > 0:
  937. nichTempNaughtyLoc = 1
  938. if FUNC('nichUtil','isNicholasHome') = 1:
  939. nichTempNaughtyLoc = 0
  940. elseif nichGalaImplant > 1 and $loc = 'city_sauna':
  941. nichTempNaughtyLoc = 0
  942. end
  943. if nichTempNaughtyLoc = 1:
  944. if $ARGS[1] = 'vaginal' or $ARGS[1] = 'vaginal_finger' or $ARGS[1] = 'vaginal_fist' or $ARGS[1] = 'vaginal_dildo' or $ARGS[1] = 'vaginal_strap' or $ARGS[1] = 'vaginal_vibe':
  945. nichGalaImplantCount += 1
  946. end
  947. end
  948. killvar 'nichTempNaughtyLoc'
  949. end
  950. end
  951. !! Sveta gets ARGS[1] (default: 1) free days
  952. !! Usage: gs 'nichUtil','freeDay'
  953. if $ARGS[0] = 'freeDay':
  954. nichTempFree = iif(ARGS[1]>0,ARGS[1],1)
  955. if nichVactionTil < daystart + nichTempFree - 1:
  956. nichVacationFrom = daystart
  957. nichVactionTil = daystart + nichTempFree - 1
  958. nichEvaluationLastReq = nichVactionTil + 1
  959. end
  960. end
  961. if $ARGS[0] = 'disableNPC':
  962. if $ARGS[1] = 'Gala':
  963. nichGalaDisabled = 1
  964. killvar 'nichGalaContractTaras'
  965. killvar 'nichGalaContractTarasCount'
  966. killvar 'nichGalaContractTarasLast'
  967. killvar 'nichGalaContractActive'
  968. killvar 'nichGalaContractLast'
  969. killvar 'nichGalaDoc'
  970. killvar 'nichGalaKnowsPT'
  971. killvar 'nichGalaOpponent'
  972. killvar 'nichGalaOpponentDay'
  973. killvar 'nichGalaImplant'
  974. killvar 'nichGalaTattoo'
  975. killvar 'nichGalaImplantCount'
  976. killvar 'nichGalaContractLast'
  977. killvar 'nichGalaTraining'
  978. killvar 'nichGalaTrainCounter'
  979. killvar 'nichGalaTrainLast'
  980. end
  981. end
  982. --- nichUtil ---------------------------------