nichUtil.qsrc 36 KB

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