1
0

nichUtil.qsrc 36 KB

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