nichUtil.qsrc 39 KB

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