npcgeneratec.qsrc 51 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493
  1. # npcgeneratec
  2. !! This file requires the sex, name and age for the npc to be generated
  3. !! You can also set their approx. home location
  4. !! All data produced is random so if you need a specific value you will have to overwrite it
  5. if $ARGS[0] = '':
  6. !! npcgen_lastrun is a flag to help track whether npcgeneratec or npcpreservec has been run last
  7. !! npcgeneratec is 1
  8. !! npcpreservec is 2
  9. npcgen_lastrun = 1
  10. !! sets sex, 0 male, 1 female, 2 female herm, 3 male herm
  11. npctempgsex = ARGS[0]
  12. !! npc age
  13. if ARGS[2] ! 0:
  14. npctempgage = ARGS[2]
  15. else
  16. npctempgage = rand(18, 35)
  17. end
  18. !! Name for npc, can just be rapist or shop assistant, etc
  19. if $ARGS[1] ! '':
  20. $npctempgn[0] = $ARGS[1]
  21. else
  22. if npctempgsex = 0:
  23. $npctempgn[0] = 'A Male'
  24. elseif npctempgsex = 1:
  25. $npctempgn[0] = iif(npctempgage <= 25, 'A Girl', 'A Woman')
  26. elseif npctempgsex = 2:
  27. $npctempgn[0] = iif(npctempgage <= 25, 'A Girl', 'A Woman')
  28. else
  29. $npctempgn[0] = 'A Male'
  30. end
  31. end
  32. !! npc home location area
  33. !! 1 - Pavlovsk Residential Area
  34. !! 2 - Student dorms in the city
  35. !! 3 - St. Petersburg Residential Area
  36. !! 4 - St. Petersburg City Center
  37. if ARGS[3] ! 0:
  38. temp_location = ARGS[3]
  39. else
  40. if $region = 'pav':
  41. temp_location = 1
  42. elseif $region = 'city':
  43. temp_location = rand(3, 4)
  44. end
  45. end
  46. dont_know_npc_name = ARGS[4]
  47. !! For example
  48. !! gs 'npcgeneratec', 0, 'stranger', rand(18,45), 3, 1
  49. !! Which would generate a male named stranger between ages of 18 and 45 who lives in the St. Petersburg Residential Area who will be remembered as ''stranger''
  50. gs 'npcgeneratec', 'init'
  51. end
  52. if $ARGS[0] = 'init':
  53. gs 'npcgeneratec', 'assign_index'
  54. gs 'npcgeneratec', 'assign_dob'
  55. gs 'npcgeneratec', 'assign_stats'
  56. gs 'npcgeneratec', 'set_details'
  57. gs 'npcgeneratec', 'set_surname'
  58. gs 'npcgeneratec', 'set_lifestyle'
  59. gs 'npcgeneratec', 'set_apprnc'
  60. gs 'npcgeneratec', 'set_personality'
  61. gs 'npcgeneratec', 'set_other_vars'
  62. gs 'npcgeneratec', 'cleanup'
  63. end
  64. if $ARGS[0] = 'assign_index':
  65. !! This sets up a newly generated index number by overwriting the first blank number
  66. !! The first check is to see if array 0 in the cleanup list is available and overwrites it if it is free
  67. if mid($cemptyarray[0],1,1) = 'C':
  68. $npclastgenerated = $cemptyarray[0]
  69. killvar '$cemptyarray', 0
  70. else
  71. :npcgencsanityloop
  72. ngc_scheck = 0
  73. $npclastgenerated = 'C' + '<<carraynumber>>'
  74. $npctemparrc = 'C' + '<<carraynumber-1>>'
  75. if $npc_perstype[$npctemparrc] = '' and carraynumber > 0:
  76. carraynumber -= 1
  77. ngc_scheck = 1
  78. elseif $npc_perstype[$npclastgenerated] = '':
  79. ngc_scheck = 0
  80. else
  81. carraynumber += 1
  82. ngc_scheck = 1
  83. end
  84. if ngc_scheck = 1: jump 'npcgencsanityloop'
  85. killvar 'ngc_scheck'
  86. end
  87. carraynumber += 1
  88. $npc_index[$npclastgenerated] = $npclastgenerated
  89. end
  90. if $ARGS[0] = 'assign_dob':
  91. !! Random birthday based on age given
  92. npctempc1[1] = year - npctempgage
  93. npctempc1[2] = rand(1, 12)
  94. if npctempc1[2] = 4 or npctempc1[2] = 6 or npctempc1[2] = 9 or npctempc1[2] = 11:
  95. npctempc1[3] = rand(1, 30)
  96. elseif npctempc1[2] = 1 or npctempc1[2] = 3 or npctempc1[2] = 5 or npctempc1[2] = 7 or npctempc1[2] = 8 or npctempc1[2] = 10 or npctempc1[2] = 12:
  97. npctempc1[3] = rand(1, 31)
  98. elseif ((npctempc1[1] mod 4 = 0) and (npctempc1[1] mod 100 ! 0)) or (npctempc1[1] mod 400 = 0):
  99. npctempc1[3] = rand(1, 29)
  100. else
  101. npctempc1[3] = rand(1,28)
  102. end
  103. npc_dob[$npclastgenerated] = npctempc1[1] * 10000
  104. npc_dob[$npclastgenerated] += (npctempc1[2] * 100)
  105. npc_dob[$npclastgenerated] += npctempc1[3]
  106. ! {we save the unique number of the npc, to be able to get the index of the array via arrpos}
  107. end
  108. if $ARGS[0] = 'assign_stats':
  109. !! Sets a seed value for the stat randomization as well as calculate chance of virginity
  110. if npctempgage < 18:
  111. npctempc2[0] = rand(0, 20)
  112. npctempc2[1] = rand(20, 40)
  113. npctempc2[2] = rand(40, 60)
  114. elseif npctempage < 22:
  115. npctempc2[0] = rand(10, 22)
  116. npctempc2[1] = rand(25, 45)
  117. npctempc2[2] = rand(35, 55)
  118. elseif npctempage < 30:
  119. npctempc2[0] = rand(19, 24)
  120. npctempc2[1] = rand(30, 50)
  121. npctempc2[2] = rand(30, 50)
  122. elseif npctempage < 35:
  123. npctempc2[0] = rand(19, 26)
  124. npctempc2[1] = rand(35, 55)
  125. npctempc2[2] = rand(25, 45)
  126. else
  127. npctempc2[0] = rand(19, 30)
  128. npctempc2[1] = rand(40, 60)
  129. npctempc2[2] = rand(20, 40)
  130. end
  131. temp_statmin = min(npctempage / 2, 20)
  132. npc_stren[$npclastgenerated] = rand(temp_statmin, npctempc2[2])
  133. npc_agil[$npclastgenerated] = rand(temp_statmin, npctempc2[2])
  134. npc_vital[$npclastgenerated] = rand(temp_statmin, npctempc2[2])
  135. npc_intel[$npclastgenerated] = rand(temp_statmin, npctempc2[1])
  136. npc_prcptn[$npclastgenerated] = rand(temp_statmin, npctempc2[1])
  137. npc_react[$npclastgenerated] = rand(temp_statmin, npctempc2[1])
  138. npc_chrsm[$npclastgenerated] = rand(npctempc2[2] / 2, npctempc2[1])
  139. npc_sprt[$npclastgenerated] = rand(npctempc2[2] / 2, npctempc2[1])
  140. npc_magik[$npclastgenerated] = 0
  141. !! Flag for virginity
  142. if npctempc2[0] < 20:
  143. npc_sexskill[$npclastgenerated] = 0
  144. else
  145. npc_sexskill[$npclastgenerated] = rand(1,100)
  146. end
  147. silaVag = npc_sexskill[$npclastgenerated]
  148. end
  149. if $ARGS[0] = 'set_details':
  150. !! Fill details about their sex such as cock and breast size
  151. if npctempgsex = 0:
  152. ! {Male}
  153. gs 'npcrnamefile', 'rusMale'
  154. gs 'npcgeneratec', 'gen_dick'
  155. npc_gender[$npclastgenerated] = 0
  156. npc_height[$npclastgenerated] = rand(160, 190)
  157. npc_spermpot[$npclastgenerated] = 10000
  158. $npc_notes[$npclastgenerated] = 'A male.'
  159. npc_bust[$npclastgenerated] = 0
  160. elseif npctempgsex = 1:
  161. ! {Female}
  162. gs 'npcrnamefile', 'rusFemale'
  163. npc_gender[$npclastgenerated] = 1
  164. npc_height[$npclastgenerated] = rand(150, 180)
  165. npc_spermpot[$npclastgenerated] = -1
  166. $npc_thdick[$npclastgenerated] = 'clitoris'
  167. npc_dick[$npclastgenerated] = rand(0, 1)
  168. $npc_notes[$npclastgenerated] = 'A female.'
  169. !!0 - 60 curve around 22,5 (C/D cups)
  170. npc_bust[$npclastgenerated] = rand(0, 15) + rand(0, 15) + rand(0, 15)
  171. if rand(0, 9) = 0: npc_bust[$npclastgenerated] += rand(0, 15)
  172. elseif npctempgsex = 2:
  173. ! {HermFemale}
  174. gs 'npcrnamefile', 'rusFemale'
  175. gs 'npcgeneratec', 'gen_dick'
  176. npc_gender[$npclastgenerated] = 1
  177. npc_height[$npclastgenerated] = rand(150, 180)
  178. npc_spermpot[$npclastgenerated] = -1
  179. $npc_thdick[$npclastgenerated] = 'clitoris'
  180. $npc_notes[$npclastgenerated] = 'A female Hermaphrodite.'
  181. !!0 - 60 curve around 22,5 (C/D cups)
  182. npc_bust[$npclastgenerated] = rand(0, 15) + rand(0, 15) + rand(0, 15)
  183. else
  184. ! {HermMale}
  185. gs 'npcrnamefile', 'rusMale'
  186. gs 'npcgeneratec', 'gen_dick'
  187. npc_gender[$npclastgenerated] = 0
  188. npc_height[$npclastgenerated] = rand(160, 190)
  189. npc_spermpot[$npclastgenerated] = 10000
  190. $npc_notes[$npclastgenerated] = 'A male Hermaphrodite.'
  191. npc_bust[$npclastgenerated] = rand(0, 10)
  192. end
  193. !! Hair colour
  194. npc_haircol[$npclastgenerated] = rand(0, 3)
  195. if npctempgsex = 1 or npctempgsex = 2:
  196. !! A female face
  197. :girldetailsloop
  198. lover_picrand[$npclastgenerated] = rand(31, 60)
  199. if lover_picrand[$npclastgenerated] = lover_picture[0] or lover_picrand[$npclastgenerated] = lover_picture[1] or lover_picrand[$npclastgenerated] = lover_picture[2]: jump 'girldetailsloop'
  200. $npc_pic[$npclastgenerated] = 'icon_bf' + lover_picrand[$npclastgenerated] + '.png'
  201. else
  202. !! A male face
  203. :boydetailsloop
  204. lover_picrand[$npclastgenerated] = rand(1, 30)
  205. if lover_picrand[$npclastgenerated] = lover_picture[0] or lover_picrand[$npclastgenerated] = lover_picture[1] or lover_picrand[$npclastgenerated] = lover_picture[2]: jump 'boydetailsloop'
  206. $npc_pic[$npclastgenerated] = 'icon_bf' + lover_picrand[$npclastgenerated] + '.png'
  207. end
  208. end
  209. if $ARGS[0] = 'gen_dick':
  210. tempfindadd = 0
  211. if ARGS[1] > 0: tempfindadd += ARGS[1]
  212. penis_dist = rand(1, 10000)
  213. if penis_dist < 15:
  214. tempfindadd += rand(5, 6)
  215. elseif penis_dist < 250:
  216. tempfindadd += rand(7, 8)
  217. elseif penis_dist < 1600:
  218. tempfindadd += rand(9, 10)
  219. elseif penis_dist < 5000:
  220. tempfindadd += rand(11, 13)
  221. elseif penis_dist < 8400:
  222. tempfindadd += rand(13, 15)
  223. elseif penis_dist < 9750:
  224. tempfindadd += rand(16, 17)
  225. elseif penis_dist < 9985:
  226. tempfindadd += rand(18, 19)
  227. elseif penis_dist < 9999:
  228. tempfindadd += rand(20, 21)
  229. else
  230. tempfindadd += rand(22, 30)
  231. end
  232. killvar 'penis_dist'
  233. ! It sets the girth based on the dick size
  234. if tempfindadd < 9:
  235. tempfindgirth = 1
  236. elseif tempfindadd < 12:
  237. tempfindgirth = 2
  238. elseif tempfindadd < 15:
  239. tempfindgirth = 3
  240. elseif tempfindadd < 18:
  241. tempfindgirth = 4
  242. elseif tempfindadd < 21:
  243. tempfindgirth = 5
  244. elseif tempfindadd < 24:
  245. tempfindgirth = 6
  246. else
  247. tempfindgirth = 7
  248. end
  249. ! Then it gives random variance with girth. 1 or 2 drops a size. 3 or 4 stays the same. 5 or 6 goes up a size. A 1 or a 6 gives a chance to go up or down a size again, for a max of 2 changes from the base girth from size.
  250. tempfinddick = rand(1, 6)
  251. if tempfinddick <= 2:
  252. tempfindgirth -= 1
  253. elseif tempfinddick >= 5:
  254. tempfindgirth += 1
  255. end
  256. if tempfinddick = 1 or tempfinddick = 6:
  257. tempfinddick = rand(1, 3)
  258. if tempfinddick = 1:
  259. tempfindgirth -= 1
  260. elseif tempfinddick = 3:
  261. tempfindgirth += 1
  262. end
  263. end
  264. killvar 'tempfinddick'
  265. npc_dick[$npclastgenerated] = tempfindadd
  266. ! Then it returns the official girth.
  267. if tempfindgirth < 2:
  268. $npc_thdick[$npclastgenerated] = 'skinny'
  269. elseif tempfindgirth = 2:
  270. $npc_thdick[$npclastgenerated] = 'slim'
  271. elseif tempfindgirth = 3:
  272. $npc_thdick[$npclastgenerated] = 'well proportioned'
  273. elseif tempfindgirth = 4:
  274. $npc_thdick[$npclastgenerated] = 'thicker than average'
  275. elseif tempfindgirth = 5:
  276. $npc_thdick[$npclastgenerated] = 'thick'
  277. elseif tempfindgirth = 6:
  278. $npc_thdick[$npclastgenerated] = 'massive'
  279. else
  280. $npc_thdick[$npclastgenerated] = 'monstrous'
  281. end
  282. !! $npc_dick_desc is set here
  283. !! this variable is to set a shorthand method of checking dick size without looking for specific numbers
  284. !! it is organized by length and then ascending girth
  285. !! $npc_dick_class is a fast way of determining size by category
  286. !! short dicks
  287. if tempfindadd < 9:
  288. $npc_dick_class[$npclastgenerated] = 'short'
  289. if tempfindgirth <= 2:
  290. $npc_dick_desc[$npclastgenerated] = 'tiny'
  291. elseif tempfindgirth <= 4:
  292. $npc_dick_desc[$npclastgenerated] = 'short'
  293. else
  294. $npc_dick_desc[$npclastgenerated] = 'chode'
  295. end
  296. !! average length dicks
  297. elseif tempfindadd < 15:
  298. $npc_dick_class[$npclastgenerated] = 'average'
  299. if tempfindgirth <= 2:
  300. $npc_dick_desc[$npclastgenerated] = 'skinny'
  301. elseif tempfindgirth <= 4:
  302. $npc_dick_desc[$npclastgenerated] = 'normal'
  303. else
  304. $npc_dick_desc[$npclastgenerated] = 'thick'
  305. end
  306. !! long dicks
  307. elseif tempfindadd < 20:
  308. $npc_dick_class[$npclastgenerated] = 'big'
  309. if tempfindgirth <= 2:
  310. $npc_dick_desc[$npclastgenerated] = 'long'
  311. elseif tempfindgirth <= 4:
  312. $npc_dick_desc[$npclastgenerated] = 'huge'
  313. else
  314. $npc_dick_desc[$npclastgenerated] = 'enormous'
  315. end
  316. !! extremely long dicks
  317. else
  318. $npc_dick_class[$npclastgenerated] = 'extra_big'
  319. if tempfindgirth <= 2:
  320. $npc_dick_desc[$npclastgenerated] = 'lengthy'
  321. elseif tempfindgirth <= 4:
  322. $npc_dick_desc[$npclastgenerated] = 'gigantic'
  323. else
  324. $npc_dick_desc[$npclastgenerated] = 'monster'
  325. end
  326. end
  327. killvar 'tempfindadd'
  328. killvar 'tempfindgirth'
  329. end
  330. if $ARGS[0] = 'set_surname':
  331. !! Set the names, and the stat high ends as determined by seed set earlier
  332. gs 'npcrnamefile', 'rusSur'
  333. $npc_firstname[$npclastgenerated] = $npctempgn[1]
  334. $npc_nickname[$npclastgenerated] = $npctempgn[2]
  335. $npc_lastname[$npclastgenerated] = $npctempgn[3]
  336. if dont_know_npc_name = 0 or $npctempgn[0] = '':
  337. $npc_usedname[$npclastgenerated] = $npctempgn[1]
  338. else
  339. $npc_usedname[$npclastgenerated] = $npctempgn[0]
  340. end
  341. $boydesc = $npc_usedname[$npclastgenerated]
  342. end
  343. if $ARGS[0] = 'set_lifestyle':
  344. !! Set home details
  345. !! npc_apt_type = 1: student dorm (only available in the city for obvious reasons)
  346. !! npc_apt_type = 2: studio apartment
  347. !! npc_apt_type = 3: one bedroom apartment
  348. !! npc_apt_type = 4: multi-bedroom apartment with roommates
  349. !! npc_apt_type = 5: multi-bedroom apartment living alone
  350. !! npc_apt_type = 6: high rise apartment (for rich people only)
  351. !! temp_location
  352. !! 1 - Pavlovsk Residential Area
  353. !! 2 - Student dorms in the city
  354. !! 3 - St. Petersburg Residential Area
  355. !! 4 - St. Petersburg City Center
  356. !! occupation set, list below
  357. npc_occupation[$npclastgenerated] = 0
  358. npc_residence[$npclastgenerated] = temp_location
  359. if npc_residence[$npclastgenerated] = 1:
  360. npc_finance[$npclastgenerated] = rand(0, 1)
  361. $npc_residence[$npclastgenerated] = 'pav_res'
  362. elseif npc_residence[$npclastgenerated] = 2:
  363. npc_finance[$npclastgenerated] = 0
  364. $npc_residence[$npclastgenerated] = 'student_dorms'
  365. elseif npc_residence[$npclastgenerated] = 3:
  366. npc_finance[$npclastgenerated] = rand(1, 2)
  367. $npc_residence[$npclastgenerated] = 'city_res'
  368. elseif npc_residence[$npclastgenerated] = 4:
  369. npc_finance[$npclastgenerated] = 2
  370. $npc_residence[$npclastgenerated] = 'city_center'
  371. end
  372. if npc_finance[$npclastgenerated] = 0:
  373. temp_rand = rand(0, 2)
  374. if temp_rand = 0:
  375. npc_start_free_time[$npclastgenerated] = 8
  376. npc_end_free_time[$npclastgenerated] = 12
  377. npc_work_start[$npclastgenerated] = 13
  378. npc_work_end[$npclastgenerated] = 21
  379. elseif temp_rand = 1:
  380. npc_start_free_time[$npclastgenerated] = 15
  381. npc_end_free_time[$npclastgenerated] = 20
  382. npc_work_start[$npclastgenerated] = 6
  383. npc_work_end[$npclastgenerated] = 14
  384. else
  385. npc_start_free_time[$npclastgenerated] = 18
  386. npc_end_free_time[$npclastgenerated] = 22
  387. npc_work_start[$npclastgenerated] = 9
  388. npc_work_end[$npclastgenerated] = 17
  389. end
  390. npc_outfit[$npclastgenerated] = 0
  391. $npc_outfit[$npclastgenerated] = 'wearing a tracksuit'
  392. if npc_residence[$npclastgenerated] ! 1 and npc_residence[$npclastgenerated] ! 4 and npctempgage < 22:
  393. npc_student[$npclastgenerated] = rand(0, 1)
  394. npc_apt_type[$npclastgenerated] = rand(1, 4)
  395. elseif npc_residence[$npclastgenerated] = 2:
  396. npc_student[$npclastgenerated] = 1
  397. npc_apt_type[$npclastgenerated] = 2
  398. else
  399. npc_apt_type[$npclastgenerated] = rand(2, 4)
  400. end
  401. npc_occupation[$npclastgenerated] = rand(1, 7)
  402. npc_day_off[$npclastgenerated] = rand(1, 7)
  403. elseif npc_finance[$npclastgenerated] = 1:
  404. if rand(0, 1) = 0:
  405. npc_start_free_time[$npclastgenerated] = 8
  406. npc_end_free_time[$npclastgenerated] = 12
  407. npc_work_start[$npclastgenerated] = 13
  408. npc_work_end[$npclastgenerated] = 21
  409. else
  410. npc_start_free_time[$npclastgenerated] = 18
  411. npc_end_free_time[$npclastgenerated] = 22
  412. npc_work_start[$npclastgenerated] = 9
  413. npc_work_end[$npclastgenerated] = 17
  414. end
  415. npc_outfit[$npclastgenerated] = 1
  416. $npc_outfit[$npclastgenerated] = iif(npc_gender[$npclastgenerated] = 0, 'wearing jeans and a sweater.', 'wearing jeans and a blouse.')
  417. npc_apt_type[$npclastgenerated] = rand(2, 5)
  418. npc_occupation[$npclastgenerated] = rand(7, 15)
  419. npc_car[$npclastgenerated] = rand(-3, 1)
  420. elseif npc_finance[$npclastgenerated] = 2:
  421. if rand(0, 1) = 0:
  422. npc_start_free_time[$npclastgenerated] = 8
  423. npc_end_free_time[$npclastgenerated] = 12
  424. npc_work_start[$npclastgenerated] = 13
  425. npc_work_end[$npclastgenerated] = 21
  426. else
  427. npc_start_free_time[$npclastgenerated] = 18
  428. npc_end_free_time[$npclastgenerated] = 22
  429. npc_work_start[$npclastgenerated] = 9
  430. npc_work_end[$npclastgenerated] = 17
  431. end
  432. npc_outfit[$npclastgenerated] = 1
  433. $npc_outfit[$npclastgenerated] = iif(npc_gender[$npclastgenerated] = 0, 'wearing an expensive suit.', 'wearing an expensive dress.')
  434. npc_apt_type[$npclastgenerated] = rand(5, 6)
  435. npc_occupation[$npclastgenerated] = rand(14, 18)
  436. npc_car[$npclastgenerated] = rand(0, 1)
  437. end
  438. !! failsafe until possibility of roommates is sorted out
  439. if npc_apt_type[$npclastgenerated] = 4: npc_apt_type[$npclastgenerated] = 5
  440. !! apt_type 6 is disabled until pictures are added
  441. if npc_apt_type[$npclastgenerated] = 6: npc_apt_type[$npclastgenerated] = 5
  442. npc_day_off[$npclastgenerated] = rand(1,7)
  443. !! npc_style[$npclastgenerated] determines generally how they dress and what their "persona" is
  444. !! Each style is limited by their financial status and occupation
  445. !! e.g. You can''t have someone who dresses like a businessman but works as a line cook
  446. !! 1 - "normal"
  447. !! 2 - Gopnik
  448. !! 3 - nerdy
  449. !! 4 - sporty
  450. !! 5 - fashionable
  451. !! 6 - businessman
  452. if npc_occupation[$npclastgenerated] < 15:
  453. npc_style[$npclastgenerated] = rand(1,5)
  454. else
  455. npc_style[$npclastgenerated] = (rand(2,6) mod 6) + 1
  456. end
  457. if npc_apt_type[$npclastgenerated] = 6:
  458. !! high rise
  459. !! this is to determine what their spare room is used for based on their personality type
  460. if npc_style[$npclastgenerated] = 3:
  461. npc_apt_spare[$npclastgenerated] = 1
  462. elseif npc_style[$npclastgenerated] = 2 or npc_style[$npclastgenerated] = 4:
  463. npc_apt_spare[$npclastgenerated] = 2
  464. else
  465. npc_apt_spare[$npclastgenerated] = rand(1,2)
  466. end
  467. if npc_apt_spare[$npclastgenerated] = 1:
  468. $npc_apt_spare[$npclastgenerated] = 'gaming'
  469. elseif npc_apt_spare[$npclastgenerated] = 2:
  470. $npc_apt_spare[$npclastgenerated] = 'gym'
  471. end
  472. npc_apt_number[$npclastgenerated] = rand(1,2)
  473. $npc_apt_bedroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/high_rise/<<npc_apt_number[$npclastgenerated]>>/bedroom.jpg"></center>'
  474. $npc_apt_kitchen[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/high_rise/<<npc_apt_number[$npclastgenerated]>>/bedroom.jpg"></center>'
  475. $npc_apt_livingroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/high_rise/<<npc_apt_number[$npclastgenerated]>>/bedroom.jpg"></center>'
  476. $npc_apt_bathroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/high_rise/<<npc_apt_number[$npclastgenerated]>>/bath.jpg"></center>'
  477. $npc_apt_hall[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/high_rise/<<npc_apt_number[$npclastgenerated]>>/bedroom.jpg"></center>'
  478. elseif npc_apt_type[$npclastgenerated] = 4 or npc_apt_type[$npclastgenerated] = 5:
  479. !! multi-bedroom
  480. !! npc_apt_type[$npclastgenerated] = 4 will one day be living with roommates but for now we''re just making it easy on ourselves. No roommates until later.
  481. !! this is to determine what their spare room is used for based on their personality type
  482. if npc_style[$npclastgenerated] = 3:
  483. npc_apt_spare[$npclastgenerated] = 1
  484. elseif npc_style[$npclastgenerated] = 2 or npc_style[$npclastgenerated] = 4:
  485. npc_apt_spare[$npclastgenerated] = 2
  486. else
  487. npc_apt_spare[$npclastgenerated] = rand(1,2)
  488. end
  489. if npc_apt_spare[$npclastgenerated] = 1:
  490. $npc_apt_spare[$npclastgenerated] = 'gaming'
  491. elseif npc_apt_spare[$npclastgenerated] = 2:
  492. $npc_apt_spare[$npclastgenerated] = 'gym'
  493. end
  494. npc_apt_number[$npclastgenerated] = rand(1,2)
  495. $npc_apt_bedroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/multibedroom/<<npc_apt_number[$npclastgenerated]>>/bedroom.jpg"></center>'
  496. $npc_apt_kitchen[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/multibedroom/<<npc_apt_number[$npclastgenerated]>>/kitchen.jpg"></center>'
  497. $npc_apt_livingroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/multibedroom/<<npc_apt_number[$npclastgenerated]>>/living.jpg"></center>'
  498. $npc_apt_bathroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/multibedroom/<<npc_apt_number[$npclastgenerated]>>/bath.jpg"></center>'
  499. $npc_apt_hall[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/multibedroom/<<npc_apt_number[$npclastgenerated]>>/living.jpg"></center>'
  500. $npc_apt_spare[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/multibedroom/<<npc_apt_number[$npclastgenerated]>>/<<$npc_apt_spare[$npclastgenerated]>>.jpg"></center>'
  501. elseif npc_apt_type[$npclastgenerated] = 3:
  502. !! one bedroom
  503. npc_apt_number[$npclastgenerated] = rand(1,3)
  504. $npc_apt_bedroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/1bedroom/<<npc_apt_number[$npclastgenerated]>>/bedroom.jpg"></center>'
  505. $npc_apt_kitchen[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/1bedroom/<<npc_apt_number[$npclastgenerated]>>/kitchen.jpg"></center>'
  506. $npc_apt_livingroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/1bedroom/<<npc_apt_number[$npclastgenerated]>>/living.jpg"></center>'
  507. $npc_apt_bathroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/1bedroom/<<npc_apt_number[$npclastgenerated]>>/bath.jpg"></center>'
  508. $npc_apt_hall[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/1bedroom/<<npc_apt_number[$npclastgenerated]>>/living.jpg"></center>'
  509. elseif npc_apt_type[$npclastgenerated] = 2:
  510. !! studio apartment
  511. npc_apt_number[$npclastgenerated] = rand(1,2)
  512. $npc_apt_bedroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/studio/<<npc_apt_number[$npclastgenerated]>>/bedroom.jpg"></center>'
  513. $npc_apt_kitchen[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/studio/<<npc_apt_number[$npclastgenerated]>>/bedroom.jpg"></center>'
  514. $npc_apt_livingroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/studio/<<npc_apt_number[$npclastgenerated]>>/bedroom.jpg"></center>'
  515. $npc_apt_bathroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/studio/<<npc_apt_number[$npclastgenerated]>>/bath.jpg"></center>'
  516. $npc_apt_hall[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/studio/<<npc_apt_number[$npclastgenerated]>>/bedroom.jpg"></center>'
  517. elseif npc_apt_type[$npclastgenerated] = 1:
  518. !! student dorm
  519. npc_apt_number[$npclastgenerated] = rand(1,3)
  520. $npc_apt_bedroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/1bedroom/<<npc_apt_number[$npclastgenerated]>>/bedroom.jpg"></center>'
  521. $npc_apt_kitchen[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/1bedroom/<<npc_apt_number[$npclastgenerated]>>/kitchen.jpg"></center>'
  522. $npc_apt_livingroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/1bedroom/<<npc_apt_number[$npclastgenerated]>>/living.jpg"></center>'
  523. $npc_apt_bathroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/1bedroom/<<npc_apt_number[$npclastgenerated]>>/bath.jpg"></center>'
  524. $npc_apt_hall[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/studio/<<npc_apt_number[$npclastgenerated]>>/living.jpg"></center>'
  525. end
  526. if npc_occupation[$npclastgenerated] = 1:
  527. $npc_occupation[$npclastgenerated] = 'cashier_supermarket'
  528. elseif npc_occupation[$npclastgenerated] = 2:
  529. $npc_occupation[$npclastgenerated] = 'cashier_liquor'
  530. elseif npc_occupation[$npclastgenerated] = 3:
  531. $npc_occupation[$npclastgenerated] = 'cashier_coffee'
  532. elseif npc_occupation[$npclastgenerated] = 4:
  533. $npc_occupation[$npclastgenerated] = 'barista'
  534. elseif npc_occupation[$npclastgenerated] = 5:
  535. $npc_occupation[$npclastgenerated] = 'fast_food'
  536. elseif npc_occupation[$npclastgenerated] = 6:
  537. $npc_occupation[$npclastgenerated] = 'taxi_driver'
  538. npc_car[$npclastgenerated] = 1
  539. elseif npc_occupation[$npclastgenerated] = 7:
  540. $npc_occupation[$npclastgenerated] = 'masseuse'
  541. elseif npc_occupation[$npclastgenerated] = 8:
  542. $npc_occupation[$npclastgenerated] = 'masseuse_sexual'
  543. elseif npc_occupation[$npclastgenerated] = 9:
  544. $npc_occupation[$npclastgenerated] = 'factory'
  545. elseif npc_occupation[$npclastgenerated] = 10:
  546. $npc_occupation[$npclastgenerated] = 'bartender'
  547. elseif npc_occupation[$npclastgenerated] = 11:
  548. $npc_occupation[$npclastgenerated] = 'mechanic'
  549. elseif npc_occupation[$npclastgenerated] = 12:
  550. $npc_occupation[$npclastgenerated] = 'line_cook'
  551. elseif npc_occupation[$npclastgenerated] = 13:
  552. $npc_occupation[$npclastgenerated] = 'waiter'
  553. elseif npc_occupation[$npclastgenerated] = 14:
  554. $npc_occupation[$npclastgenerated] = 'personal_trainer'
  555. elseif npc_occupation[$npclastgenerated] = 15:
  556. $npc_occupation[$npclastgenerated] = 'programmer'
  557. elseif npc_occupation[$npclastgenerated] = 16:
  558. npc_criminal[$npclastgenerated] = 1
  559. !! npc_criminal_open determines whether or not they will hide their criminality from the player
  560. npc_criminal_open[$npclastgenerated] = rand(0,1)
  561. if rand(1,4) = 1:
  562. $npc_occupation[$npclastgenerated] = 'pimp'
  563. elseif rand(1,3) = 1:
  564. $npc_occupation[$npclastgenerated] = 'drug_dealer'
  565. elseif rand(1,2) = 1:
  566. $npc_occupation[$npclastgenerated] = 'enforcer'
  567. else
  568. $npc_occupation[$npclastgenerated] = 'thief'
  569. end
  570. elseif npc_occupation[$npclastgenerated] = 17:
  571. $npc_occupation[$npclastgenerated] = 'businessman'
  572. elseif npc_occupation[$npclastgenerated] = 18:
  573. $npc_occupation[$npclastgenerated] = 'lawyer'
  574. elseif npc_occupation[$npclastgenerated] = 19:
  575. $npc_occupation[$npclastgenerated] = 'investment_banker'
  576. end
  577. end
  578. if $ARGS[0] = 'set_apprnc':
  579. if npc_finance[$npclastgenerated] = 0:
  580. !!Gopnik beggar or a hard worker
  581. !!check in appearance Primary
  582. temp_apprnc = rand(60, 140)
  583. $boyClo = 'wearing a tracksuit.'
  584. elseif npc_finance[$npclastgenerated] = 1:
  585. !!middle_peasant
  586. !!check in appearance
  587. temp_apprnc = rand(90, 160)
  588. $boyClo = iif(npc_gender[$npclastgenerated] = 0, 'wearing jeans and a sweater.', 'wearing jeans and a blouse.')
  589. elseif npc_finance[$npclastgenerated] = 2:
  590. !!middle_peasant
  591. !!check in appearance
  592. temp_apprnc = rand(130, 170)
  593. $boyClo = iif(npc_gender[$npclastgenerated] = 0, 'wearing an expensive suit.', 'wearing an expensive dress.')
  594. end
  595. harakBoy = rand(0, 2)
  596. if harakBoy = 0:
  597. temp_apprnc -= rand(10, 30)
  598. elseif harakBoy = 1:
  599. temp_apprnc += rand(-10, 10)
  600. else
  601. temp_apprnc += rand(10, 30)
  602. end
  603. npc_apprnc[$npclastgenerated] = temp_apprnc
  604. npc_hotcat[$npclastgenerated] = func('AppearanceSystem', 'ConvertToHotcat', temp_apprnc)
  605. killvar 'temp_apprnc'
  606. boybodyrand = rand(1, 3)
  607. if boybodyrand = 1:
  608. $boybody = 'short'
  609. $boybody_pref = 'a short'
  610. elseif boybodyrand = 2:
  611. $boybody = 'average'
  612. $boybody_pref = 'an average'
  613. else
  614. $boybody = 'tall'
  615. $boybody_pref = 'a tall'
  616. end
  617. boybodrand = rand(1, 4)
  618. boyfacerand = rand(1, 3)
  619. if npc_gender[$npclastgenerated] = 0:
  620. if boybodrand = 1:
  621. $boybod = 'thin'
  622. $boybod_pref = 'a thin'
  623. elseif boybodrand = 2:
  624. $boybod = 'athletic'
  625. $boybod_pref = 'an athletic'
  626. elseif boybodrand = 3:
  627. $boybod = 'chunky'
  628. $boybod_pref = 'a chunky'
  629. else
  630. $boybod = 'fat'
  631. $boybod_pref = 'a fat'
  632. end
  633. if boyfacerand = 1:
  634. $boyface = 'black'
  635. elseif boyfacerand = 2:
  636. $boyface = 'brown'
  637. else
  638. $boyface = 'blond'
  639. end
  640. else
  641. if boybodrand = 1 and boybodyrand = 1:
  642. $boybod = 'petite'
  643. $boybod_pref = 'a petite'
  644. elseif boybodrand = 1 and boybodyrand = 2:
  645. $boybod = 'slender'
  646. $boybod_pref = 'a slender'
  647. elseif boybodrand = 2:
  648. $boybod = 'toned'
  649. $boybod_pref = 'a toned'
  650. elseif boybodrand = 3:
  651. $boybod = 'average'
  652. $boybod_pref = 'an average'
  653. else
  654. $boybod = 'chubby'
  655. $boybod_pref = 'a chubby'
  656. end
  657. if boyfacerand = 1:
  658. $boyface = 'black'
  659. elseif boyfacerand = 2:
  660. $boyface = 'brunette'
  661. else
  662. $boyface = 'blond'
  663. end
  664. end
  665. killvar 'boybodyrand'
  666. killvar 'boybodrand'
  667. killvar 'boyfacerand'
  668. end
  669. !! ------------------------- lifestyle and personality choices ----------------------------------
  670. if $ARGS[0] = 'set_personality':
  671. !! Generate a base personality
  672. ! (E)xtraversion vs (I)ntroversion
  673. if rand(0, 1) = 0:
  674. $npc_perstype[$npclastgenerated] = 'E'
  675. else
  676. $npc_perstype[$npclastgenerated] = 'I'
  677. end
  678. ! (S)ensing vs I(N)tuition
  679. if rand(0, 1) = 0:
  680. $npc_perstype[$npclastgenerated] += 'S'
  681. else
  682. $npc_perstype[$npclastgenerated] += 'N'
  683. end
  684. ! (T)hinking vs (F)eeling
  685. if rand(0, 1) = 0:
  686. $npc_perstype[$npclastgenerated] += 'T'
  687. else
  688. $npc_perstype[$npclastgenerated] += 'F'
  689. end
  690. ! (J)udging vs (P)erceving
  691. if rand(0, 1) = 0:
  692. $npc_perstype[$npclastgenerated] += 'J'
  693. else
  694. $npc_perstype[$npclastgenerated] += 'P'
  695. end
  696. !! hornguy6 commentary: the above code sets a Myers Briggs personality type?
  697. !! Seems overly complex. Up to others whether we keep it or just use the quirks I''ve added to this file
  698. !! type of humour
  699. !! 1 - childish
  700. !! 2 - perverted
  701. !! 3 - intellectual/clever
  702. if mid($npc_perstype[$npclastgenerated], 3, 1) = 'T':
  703. if mid($npc_perstype[$npclastgenerated], 1, 1) = 'E':
  704. npc_humor[$npclastgenerated] = rand(2, 3)
  705. else
  706. npc_humor[$npclastgenerated] = 3
  707. end
  708. else
  709. if mid($npc_perstype[$npclastgenerated], 1, 1) = 'E':
  710. npc_humor[$npclastgenerated] = rand(1, 2)
  711. else
  712. npc_humor[$npclastgenerated] = 1
  713. end
  714. end
  715. if npc_humor[$npclastgenerated] = 1:
  716. $npc_humor[$npclastgenerated] = 'childish'
  717. elseif npc_humor[$npclastgenerated] = 2:
  718. $npc_humor[$npclastgenerated] = 'perverted'
  719. elseif npc_humor[$npclastgenerated] = 3:
  720. $npc_humor[$npclastgenerated] = 'intellectual'
  721. end
  722. !! if npc_smoker > 0: they smoke cigarettes
  723. npc_smoker[$npclastgenerated] = rand(0, 2)
  724. figurBoy = rand(0, 2)
  725. !character 0 - soft, 1 - norm, 2 - aggressor
  726. temp_rand = rand(0, 100)
  727. if temp_rand < 80:
  728. izvrat = 0
  729. elseif temp_rand < 90 and npc_gender[$npclastgenerated] = 1:
  730. izvrat = 0
  731. else
  732. izvrat = 1
  733. end
  734. clotTypePrefTmp = 0
  735. if rand(0, 4) = 4:
  736. if izvrat = 1 and rand(0, 1 + npc_finance[$npclastgenerated] mod 2) = 0:
  737. clotTypePrefTmp = 4
  738. elseif npc_finance[$npclastgenerated] = 0:
  739. clotTypePrefTmp = rand(1, 2)
  740. elseif npc_finance[$npclastgenerated] = 1:
  741. clotTypePrefTmp = rand(1, 3)
  742. elseif npc_finance[$npclastgenerated] = 2:
  743. clotTypePrefTmp = rand(2, 3)
  744. end
  745. end
  746. !!This is for the quality of clothing
  747. !! 0 - no preference, 1 - 1 to 4 units cheap to average (Locked if formal chosen), 2 - 5 to 7 units expensive to ballroom quality (Locked if fetish is chosen)
  748. clotQualPrefTmp = 0
  749. if rand(0, 5) = 0:
  750. if npc_finance[$npclastgenerated] = 0:
  751. clotQualPrefTmp = 1
  752. elseif npc_finance[$npclastgenerated] = 1:
  753. clotQualPrefTmp = rand(1, 2)
  754. temp_rand = rand(0, 1)
  755. if temp_rand = 0 and clotTypePrefTmp ! 3:
  756. clotQualPrefTmp = 1
  757. elseif temp_rand = 1 and clotTypePrefTmp ! 1:
  758. clotQualPrefTmp = 2
  759. end
  760. elseif npc_finance[$npclastgenerated] = 2:
  761. temp_rand = rand(0, 2)
  762. if temp_rand = 2 and clotTypePrefTmp ! 1:
  763. clotQualPrefTmp = 2
  764. end
  765. end
  766. end
  767. !!This is for the clothing top cut for the clothing
  768. !!Need to add modifiers based on breast size, where larger breasts end up forcing the player to show more cleavage than those with smaller breasts.
  769. !! 0 - no preference, 1 - 1 to 2 or neckline to moderate, 2 - 3 to 4 or heavy to severe, 3 - 5 to 7 or buldging to outpouring
  770. !! The breast size must be adjusted either when the action is being calculeted or we can base it on their ideal breast size :npc_bust[$npclastgenerated] + 0/3 depending on the players breast size
  771. !!0 - no preference, 1 - 1 neckline , 2 - 2 or moderate, 3 - 3 to 4 or heavy to severe
  772. !! It doesn''t matter if your poor or rich, everyone loves tits.
  773. slutConstant = 0
  774. if izvrat = 1 and rand(0, 1 + npc_gender[$npclastgenerated]) = 0: slutConstant = 1
  775. clotTopPrefTmp = 0
  776. if rand(0, 2) = 0:
  777. temp_rand = rand(0, 5) - npc_gender[$npclastgenerated]
  778. if temp_rand < 2 and clotTypePrefTmp ! 4:
  779. clotTopPrefTmp = 1 + slutConstant
  780. elseif temp_rand < 4 and clotTypePrefTmp ! 4:
  781. clotTopPrefTmp = 2 + slutConstant
  782. elseif temp_rand >= 4 and clotTypePrefTmp ! 3:
  783. clotTopPrefTmp = 3
  784. end
  785. if clotTopPrefTmp ! 0 and npc_bust[$npclastgenerated] = 2:
  786. if clotPref ! 3:
  787. clotTopPrefTmp += 1
  788. end
  789. end
  790. end
  791. !! This is for pants and skirt shortness and will be grouped together as such.
  792. !! 0 - no preference, 1 - 1 to 2 units or ankle to calf length, 2 - 3 to 4 units or knee to miniskirt, 3 - 5 units to 6 or slut to hoe.
  793. bottShorPrefTmp = 0
  794. if rand(0, 2) = 0:
  795. temp_rand = rand(0, 5) - npc_gender[$npclastgenerated]
  796. if temp_rand < 2 and clotTypePrefTmp ! 4:
  797. bottShorPrefTmp = 1
  798. elseif temp_rand < 4:
  799. bottShorPrefTmp = 2
  800. elseif temp_rand >= 4:
  801. bottShorPrefTmp = 3
  802. end
  803. if slutConstant = 1 and rand(0, 1) = 0 and clotTypePrefTmp = 4:
  804. bottShorPrefTmp = 3
  805. end
  806. end
  807. !! This is for clothes thinness.
  808. !! 0 - no preference, 1 - 0 to 2 (Conservative), 2 - 3 to 4 (Moderate), 3 - 4 to 6 (really thin)
  809. !! I see the moderate to really thin overlapping. Its intentional.
  810. clotThinPrefTmp = 0
  811. if rand(0, 2) = 2:
  812. temp_rand = rand(0, 5) - npc_gender[$npclastgenerated]
  813. if temp_rand < 2:
  814. clotThinPrefTmp = 1 + slutConstant
  815. elseif temp_rand < 4:
  816. clotThinPrefTmp = 2 + slutConstant
  817. elseif temp_rand > 4 and clotTypePrefTmp ! 3:
  818. clotThinPrefTmp = 3
  819. end
  820. end
  821. !!This is to find out if they want you to wear bimbo clothing
  822. !! 0 - no preference, 1 - Prefers bimbo clothing.
  823. bimbPrefTmp = 0
  824. if rand(0, 2 + 8 * npc_gender[$npclastgenerated]) = 0 and clotTypePrefTmp ! 3: bimbPrefTmp = 1
  825. !!This is to find out if they want you to wear piercings.
  826. !! 0 - no preference, 1 - 0 to 2 piercings, 2 - 3 to 5 piercings, 3 - 6 or more piercings.
  827. pierPrefTmp = 0
  828. if rand(0, 3) = 3:
  829. temp_rand = rand(0, 2)
  830. if temp_rand = 0:
  831. pierPrefTmp = 1 + slutConstant
  832. elseif temp_rand = 1:
  833. pierPrefTmp = 2 + slutConstant
  834. elseif temp_rand = 2:
  835. pierPrefTmp = 3
  836. end
  837. end
  838. !!This is to find out if they want you to have tattoos.
  839. !! 0 - no preference, 1 - 0 to 2 tattoos, 2 - 3 to 5 tattoos, 3 - 6 or more tattoos.
  840. tattPrefTmp = 0
  841. if rand(0, 3) = 0: tattPrefTmp = rand(1, 3)
  842. !!This is to find out how big they want your lips.
  843. !! 0 - no preference, 1 - 2 to 3 units (average) , 2 - 4 units (THIC lips)
  844. lipsPrefTmp = 0
  845. if rand(0, 2 + npc_gender[$npclastgenerated]) = 0:
  846. temp_rand = rand(0, 2)
  847. if temp_rand = 0:
  848. lipsPrefTmp = 1 + slutConstant
  849. elseif temp_rand = 2:
  850. lipsPrefTmp = 2
  851. end
  852. end
  853. !!This is to find out how big they want YOU.
  854. !! 0 - no preference, 1 - 1 to 3 units (Skinny) , 2 - 3 to 6 units (Average), 3 - 6 + units (THIC)
  855. !! Notice how this one overlaps. I believe that it should because changing ones weight is very hard.
  856. bodyPrefTmp = 0
  857. if rand(0, 3) = 0: bodyPrefTmp = rand(1, 3)
  858. !!This is to find out how much makeup they want you to wear.
  859. !! 0 - no preference, 1 - 1 (light makeup) , 2 - 2 (moderate makeup), 3 - 3(heavy makeup)
  860. !! Plan to make a way for you to set what you makeup you want to wear at your bedside and giving into his wishes would automatically change the automated setting.
  861. makePrefTmp = 0
  862. if rand(0, 1) = 0:
  863. temp_rand = rand(0, 5) - npc_gender[$npclastgenerated]
  864. if temp_rand < 2:
  865. makePrefTmp = 1 + slutConstant
  866. elseif temp_rand < 4:
  867. makePrefTmp = 2 + slutConstant
  868. elseif temp_rand >= 4 and clotTypePrefTmp ! 3:
  869. makePrefTmp = 3
  870. end
  871. end
  872. !! This is to see if they like a ditz, average, or a smartypants
  873. !!0 - no preference, 1 - 1 to 30 intelligence, 2 - 30 to 85 intelligence, 3 - 85 + intelligence.
  874. IQPrefTmp = 0
  875. if rand(0, 4) = 0:
  876. if npc_gender[$npclastgenerated] = 0:
  877. IQPrefTmp = rand(1, 3)
  878. else
  879. !! IQPrefTmp is capped at 3. With old code: rand(1, 2) + rand(1, 2) + rand(0,1) => 1/8 chance for 2 else 3 (or more)
  880. IQPrefTmp = min(rand(2, 9), 3)
  881. end
  882. end
  883. !! if npc_mj = 1: they smoke weed
  884. !! if npc_mj = 2: they are a stoner
  885. !! 20% chance they will smoke weed at all, 5% chance total of being either a stoner
  886. if rand(0, 5) = 0: npc_mj[$npclastgenerated] = 1 + (rand(0, 3) / 3)
  887. !! we will skip addit for now, have a variable just for smoking
  888. !! npc_addit[$npclastgenerated] = rand(0,1)
  889. if rand(0, 2) > 0:
  890. if mid($npc_perstype[$npclastgenerated], 1, 1) = 'E':
  891. !! they like going out for things and doing things outside
  892. npc_door_pref[$npclastgenerated] = 1
  893. $npc_door_pref[$npclastgenerated] = 'outdoor'
  894. else
  895. !! they like more quiet activities and staying at home
  896. npc_door_pref[$npclastgenerated] = 2
  897. $npc_door_pref[$npclastgenerated] = 'indoor'
  898. end
  899. else
  900. !! else the have no preference
  901. npc_door_pref[$npclastgenerated] = 0
  902. end
  903. !! npc_goal is what they want out of a relationship
  904. !! 1 = just sex
  905. !! 2 = casual relationship
  906. !! 3 = serious relationship
  907. npc_goal[$npclastgenerated] = rand(1,3)
  908. if npc_goal[$npclastgenerated] = 1:
  909. $npc_rel_goal[$npclastgenerated] = 'sex'
  910. elseif npc_goal[$npclastgenerated] = 2:
  911. $npc_rel_goal[$npclastgenerated] = 'casual'
  912. elseif npc_goal[$npclastgenerated] = 3:
  913. $npc_rel_goal[$npclastgenerated] = 'serious'
  914. end
  915. !! npc_fidelity is how they will behave in a relationship
  916. !! 1-4 = will cheat on you and others with no guilt
  917. !! 5-6 = will cheat on others with you
  918. !! 5 = has been cheating and feels guilty
  919. !! 6 = cheats on them with you for the first time
  920. !! 7 = is fine with open relationship
  921. !! 8-10 = will be faithful
  922. npc_fidelity[$npclastgenerated] = rand(1, 10)
  923. if npc_fidelity[$npclastgenerated] >= 8:
  924. $npc_fidelity[$npclastgenerated] = 'faithful'
  925. elseif npc_fidelity[$npclastgenerated] = 7:
  926. $npc_fidelity[$npclastgenerated] = 'open'
  927. elseif npc_fidelity[$npclastgenerated] >= 5:
  928. $npc_fidelity[$npclastgenerated] = 'seduced'
  929. elseif npc_fidelity[$npclastgenerated] >= 1:
  930. $npc_fidelity[$npclastgenerated] = 'cheater'
  931. end
  932. if npc_fidelity[$npclastgenerated] <= 5:
  933. if npctempgage >= 26 and rand(1,2) = 1 and npc_finance[$npclastgenerated] = 2:
  934. npc_wife[$npclastgenerated] = rand(0,1)
  935. else
  936. npc_girlfriend[$npclastgenerated] = rand(0,1)
  937. end
  938. end
  939. !! quirk/trait generation
  940. if rand(0,2) > 0:
  941. if rand(0,1) = 1:
  942. npc_earlyriser[$npclastgenerated] = 1
  943. npc_latesleeper[$npclastgenerated] = 0
  944. else
  945. npc_latesleeper[$npclastgenerated] = 1
  946. npc_earlyriser[$npclastgenerated] = 0
  947. end
  948. end
  949. if rand(0,2) > 0:
  950. if rand(0,1) = 1:
  951. npc_generous[$npclastgenerated] = 1
  952. npc_selfish[$npclastgenerated] = 0
  953. else
  954. npc_selfish[$npclastgenerated] = 1
  955. npc_generous[$npclastgenerated] = 0
  956. end
  957. end
  958. !! npc_gentle = 1: npc is likely to have a soft emotional and physical touch outside of sex
  959. !! npc_rough = 1: npc is likely to have a rough/aggressive emotional and physical touch outside of sex
  960. if rand(0,2) > 0:
  961. if rand(0,1) = 1:
  962. npc_gentle[$npclastgenerated] = 1
  963. npc_rough[$npclastgenerated] = 0
  964. else
  965. npc_gentle[$npclastgenerated] = 0
  966. npc_rough[$npclastgenerated] = 1
  967. end
  968. end
  969. !! npc_diligent = 1: npc is more methodical, doesn''t like to skip steps, and usually plays it safe
  970. !! npc_risktaker = 1: npc is more likely to take risks, such as never using a condom
  971. if rand(0,2) > 0:
  972. if rand(0,1) = 1:
  973. npc_diligent[$npclastgenerated] = 0
  974. npc_risktaker[$npclastgenerated] = 1
  975. else
  976. npc_diligent[$npclastgenerated] = 1
  977. npc_risktaker[$npclastgenerated] = 0
  978. end
  979. end
  980. if rand(0,2) > 0:
  981. if rand(1,3) + npc_diligent[$npclastgenerated] > 2:
  982. npc_neat[$npclastgenerated] = 1
  983. npc_messy[$npclastgenerated] = 0
  984. else
  985. npc_messy[$npclastgenerated] = 1
  986. npc_neat[$npclastgenerated] = 0
  987. end
  988. end
  989. npc_manscaped[$npclastgenerated] = rand(0,2) - npc_neat[$npclastgenerated]
  990. if npc_manscaped[$npclastgenerated] < 1:
  991. npc_manscaped[$npclastgenerated] = 0
  992. $npc_pubes[$npclastgenerated] = 'shaved'
  993. elseif npc_manscaped[$npclastgenerated] = 1:
  994. $npc_pubes[$npclastgenerated] = 'trimmed'
  995. elseif npc_manscaped[$npclastgenerated] = 2:
  996. $npc_pubes[$npclastgenerated] = 'bush'
  997. end
  998. !! if npc_argumentative = 1: they will get into more arguments with you about things
  999. !! it is also harder to persuade them
  1000. npc_argumentative[$npclastgenerated] = rand(0,2)
  1001. !! if npc_assertive = 1: they will know what they want
  1002. !! if npc_assertive = -1: they will often ask what the player wants
  1003. !! it is also harder to persuade them
  1004. npc_assertive[$npclastgenerated] = rand(-1,1)
  1005. !! how easy or difficult it is to persuade them into doing something
  1006. npc_willpwr[$npclastgenerated] = rand(1,50)
  1007. npc_willpwr[$npclastgenerated] += npc_argumentative[$npclastgenerated] * 10
  1008. !! if npc_arrogant = 1: they will act arrogantly
  1009. npc_arrogant[$npclastgenerated] = rand(-1,1)
  1010. !! if npc_competitive = 1: they are overly competitive in contests against you or others
  1011. npc_competitive[$npclastgenerated] = rand(-1,1)
  1012. !! if npc_insecure = 1: they are insecure in their masculinity and won''t respond well to teasing
  1013. npc_insecure[$npclastgenerated] = rand(-1,1)
  1014. !! if npc_gymrat = 1: they like working out
  1015. npc_gymrat[$npclastgenerated] = rand(-1,1)
  1016. !! if npc_abusive = 1: the npc will be abusive
  1017. npc_abusive[$npclastgenerated] = rand(-3,1)
  1018. !! if npc_caretaker = 1: they will frequently show love through acts of service
  1019. !! example: making you breakfast in bed
  1020. if npc_selfish[$npclastgenerated] ! 1: npc_caretaker[$npclastgenerated] = rand(-3,1)
  1021. !! ------------------------- sex related preferences ----------------------------------
  1022. if rand(0,1) >= 1:
  1023. !! if npc_condom_conscious = 1: they will use condoms but can be talked out of it
  1024. !! if npc_condom_conscious = 2: they will always insist on using condoms unless you are in a committed relationship and/or trying for a baby
  1025. if npc_diligent[$npclastgenerated] = 1:
  1026. npc_condom_conscious[$npclastgenerated] = rand(-1, 2)
  1027. else
  1028. npc_condom_conscious[$npclastgenerated] = rand(-2, 2)
  1029. end
  1030. else
  1031. !! if npc_no_condoms = 1: they have a preference for skipping condoms but can be talked into using one
  1032. !! if npc_no_condoms = 2: they will never use a condom no matter what
  1033. if npc_risktaker[$npclastgenerated] = 1:
  1034. npc_no_condoms[$npclastgenerated] = rand(-1, 2)
  1035. else
  1036. npc_no_condoms[$npclastgenerated] = rand(-2, 2)
  1037. end
  1038. end
  1039. if npc_condom_conscious[$npclastgenerated] < 0: npc_condom_conscious[$npclastgenerated] = 0
  1040. if npc_no_condoms[$npclastgenerated] < 0: npc_no_condoms[$npclastgenerated] = 0
  1041. if rand(1,50) = 1:
  1042. npc_latex_allergy[$npclastgenerated] = 1
  1043. npc_no_condoms[$npclastgenerated] = 1
  1044. npc_condom_conscious[$npclastgenerated] = 0
  1045. end
  1046. !! Preferred sexual position
  1047. npc_fav_pos[$npclastgenerated] = rand(1,7)
  1048. if npc_fav_pos[$npclastgenerated] = 1:
  1049. $npc_fav_pos[$npclastgenerated] = 'miss'
  1050. elseif npc_fav_pos[$npclastgenerated] = 2:
  1051. $npc_fav_pos[$npclastgenerated] = 'doggy'
  1052. elseif npc_fav_pos[$npclastgenerated] = 3:
  1053. $npc_fav_pos[$npclastgenerated] = 'cowgirl'
  1054. elseif npc_fav_pos[$npclastgenerated] = 4:
  1055. $npc_fav_pos[$npclastgenerated] = 'blowjob'
  1056. elseif npc_fav_pos[$npclastgenerated] = 5:
  1057. $npc_fav_pos[$npclastgenerated] = 'titjob'
  1058. elseif npc_fav_pos[$npclastgenerated] = 6:
  1059. $npc_fav_pos[$npclastgenerated] = '69'
  1060. elseif npc_fav_pos[$npclastgenerated] = 7:
  1061. $npc_fav_pos[$npclastgenerated] = 'anal'
  1062. end
  1063. !! npc_sex_speed determines whether they like it slow, steady, or fast and will cause them to select that speed more frequently
  1064. !! 1 is slow, 2 is steady, 3 is fast/rough
  1065. npc_sex_speed[$npclastgenerated] = rand(1,3)
  1066. npc_sex_volume[$npclastgenerated] = rand(0,3)
  1067. !! npc_sex_volume refers to how much noise they make during sex
  1068. !! npc_sex_volume = 0: virtually quiet during sex
  1069. !! npc_sex_volume = 1: grunting noises only
  1070. !! npc_sex_volume = 2: will add dirty talk
  1071. !! npc_sex_volume = 3: loud "obnoxious" noises
  1072. if npc_sex_speed[$npclastgenerated] = 1 and rand(1,3) = 1:
  1073. !! npc has a tendency to be overly gentle and cautious
  1074. npc_gentle_lover[$npclastgenerated] = 1
  1075. elseif rand(1,3) = 1:
  1076. !! npc prefers sex with dirty talk and perverted acts
  1077. !! example: using spit instead of lube
  1078. npc_dirty_lover[$npclastgenerated] = 1
  1079. elseif rand(1,3) = 1:
  1080. !! npc prefers romantic and sensual sex
  1081. npc_sensual_lover[$npclastgenerated] = 1
  1082. end
  1083. !! Preferred cumming location
  1084. !! 0 = no preference
  1085. npc_cum_pref[$npclastgenerated] = rand(0,5)
  1086. if npc_cum_pref[$npclastgenerated] = 1:
  1087. $npc_cum_pref[$npclastgenerated] = 'creampie'
  1088. elseif npc_cum_pref[$npclastgenerated] = 2:
  1089. $npc_cum_pref[$npclastgenerated] = 'mouth'
  1090. elseif npc_cum_pref[$npclastgenerated] = 3:
  1091. $npc_cum_pref[$npclastgenerated] = 'facial'
  1092. elseif npc_cum_pref[$npclastgenerated] = 4:
  1093. $npc_cum_pref[$npclastgenerated] = 'tits'
  1094. elseif npc_cum_pref[$npclastgenerated] = 5:
  1095. $npc_cum_pref[$npclastgenerated] = 'pullout'
  1096. end
  1097. if rand(1,5) = 1:
  1098. npc_bukakke_fetish[$npclastgenerated] = 1
  1099. elseif rand(1,3) = 1 and npc_cum_pref[$npclastgenerated] ! 3:
  1100. npc_dislikes_facials[$npclastgenerated] = 1
  1101. end
  1102. !! npc_tit_pref determines an npcs preference for breast size
  1103. !! if npc_tit_pref = 0: they don''t care
  1104. !! if npc_tit_pref = 1: they like small tits (A or smaller)
  1105. !! if npc_tit_pref = 2: they like medium sized tits (B to C)
  1106. !! if npc_tit_pref = 3: they like busty girls (D to E)
  1107. !! if npc_tit_pref = 4: they like oversized breasts (F+)
  1108. npc_tit_pref[$npclastgenerated] = rand(0,4)
  1109. !! npc_bush_pref determines an npcs preference for the player''s shaving habits
  1110. !! if npc_bush_pref = 0: they don''t care
  1111. !! if npc_bush_pref = 1: they prefer it cleanshaven
  1112. !! if npc_bush_pref = 2: they like it trimmed or cleanshaven
  1113. !! if npc_bush_pref = 3: they like it bushy
  1114. npc_bush_pref[$npclastgenerated] = rand(0,3)
  1115. !! $npc_fav_body_part
  1116. if rand(1,4) = 1:
  1117. $npc_fav_body_part[$npclastgenerated] = 'pussy'
  1118. elseif rand(1,3) = 1:
  1119. $npc_fav_body_part[$npclastgenerated] = 'tits'
  1120. elseif rand(1,2) = 2:
  1121. $npc_fav_body_part[$npclastgenerated] = 'ass'
  1122. else
  1123. $npc_fav_body_part[$npclastgenerated] = 'thighs'
  1124. end
  1125. !! if npc_sexdrive determines how likely the npc will be to engage in sexual behavior and how many times they can orgasm in a single sexual encounter
  1126. if rand(1,10) <= 4:
  1127. npc_sexdrive[$npclastgenerated] = rand(3,5)
  1128. elseif rand(1,10) <= 3:
  1129. npc_sexdrive[$npclastgenerated] = rand(1,3)
  1130. !! elseif rand(1,10) <= 3:
  1131. !! npc_sexdrive[$npclastgenerated] = rand(1,10)
  1132. !! elseif rand(1,10) <= 2:
  1133. !! npc_sexdrive[$npclastgenerated] = rand(7,10)
  1134. else
  1135. !!failsafe
  1136. npc_sexdrive[$npclastgenerated] = rand(1,10)
  1137. if npc_sexdrive[$npclastgenerated] > 5: npc_energetic[$boy] = rand(0,1)
  1138. end
  1139. !! if npc_sex_stamina determines how long they can last in bed without cumming
  1140. npc_sex_stamina[$npclastgenerated] = rand(1,10)
  1141. !!{
  1142. if rand(1,10) <= 4:
  1143. npc_sex_stamina[$npclastgenerated] = rand(3,5)
  1144. elseif rand(1,10) <= 3:
  1145. npc_sex_stamina[$npclastgenerated] = rand(1,3)
  1146. !! elseif rand(1,10) <= 3:
  1147. !! npc_sex_stamina[$npclastgenerated] = rand(1,10)
  1148. !! elseif rand(1,10) <= 2:
  1149. !! npc_sex_stamina[$npclastgenerated] = rand(7,10)
  1150. else
  1151. !!failsafe
  1152. npc_sex_stamina[$npclastgenerated] = rand(1,10)
  1153. end
  1154. }
  1155. !! npc_spanker determines whether or not they''re into spanking during sex
  1156. if rand(1,3) = 1: npc_sex_spanker[$npclastgenerated] = 1
  1157. !! npc_childfree determines that they never want to have kids and will react poorly to pregnancy related topics
  1158. if rand(1,5) = 1: npc_childfree[$npclastgenerated] = 1
  1159. !! if npc_pussyeater = 1: they have a fetish for eating pussy
  1160. !! if npc_pussyeater = -1: they refuse to eat pussy
  1161. if rand(1,3) = 1: npc_pussyeater[$npclastgenerated] = 1
  1162. !! if npc_cuddler = 1: the npc likes to cuddle
  1163. if rand(1,3) = 1: npc_cuddler[$npclastgenerated] = 1
  1164. !! if npc_cum_cannon = 1: the npc ejaculates particularly large loads
  1165. if rand(1,5) = 1: npc_cum_cannon[$npclastgenerated] = 1
  1166. !! if npc_sex_filmer = 1: the npc likes to make sex videos
  1167. if rand(1,5) = 1: npc_sex_filmer[$npclastgenerated] = 1
  1168. !! if npc_two_pump = 1: the npc will always cum immediately in the first penetration act of sex
  1169. if rand(1,6) = 1: npc_two_pump[$npclastgenerated] = 1
  1170. !! ------------------------- date preferences ----------------------------------
  1171. !! favorite kind of date
  1172. if $npc_door_pref[$npclastgenerated] = 'indoor' and rand(1,3) < 3:
  1173. if rand(1,5) = 1:
  1174. $npc_fav_date[$npclastgenerated] = 'takeout_date'
  1175. elseif rand(1,4) = 1:
  1176. $npc_fav_date[$npclastgenerated] = 'coffee_date'
  1177. elseif rand(1,3) = 1:
  1178. $npc_fav_date[$npclastgenerated] = 'casual_meal'
  1179. elseif rand(1,2) = 1:
  1180. $npc_fav_date[$npclastgenerated] = 'netflix_chill'
  1181. elseif rand(1,1) = 1:
  1182. $npc_fav_date[$npclastgenerated] = 'movie_date'
  1183. end
  1184. elseif $npc_door_pref[$npclastgenerated] = 'outdoor' and rand(1,3) < 3:
  1185. if rand(1,6) = 1:
  1186. $npc_fav_date[$npclastgenerated] = 'picnic_date'
  1187. elseif rand(1,5) = 1:
  1188. $npc_fav_date[$npclastgenerated] = 'beach_date'
  1189. elseif rand(1,4) = 1:
  1190. $npc_fav_date[$npclastgenerated] = 'casual_meal'
  1191. elseif rand(1,3) = 1:
  1192. $npc_fav_date[$npclastgenerated] = 'fancy_meal'
  1193. elseif rand(1,2) = 1:
  1194. $npc_fav_date[$npclastgenerated] = 'amusement_park'
  1195. elseif rand(1,1) = 1:
  1196. $npc_fav_date[$npclastgenerated] = 'shopping_date'
  1197. end
  1198. else
  1199. if rand(1,4) = 1:
  1200. $npc_fav_date[$npclastgenerated] = 'picnic_date'
  1201. elseif rand(1,4) = 1:
  1202. $npc_fav_date[$npclastgenerated] = 'beach_date'
  1203. elseif rand(1,3) = 1:
  1204. $npc_fav_date[$npclastgenerated] = 'shopping_date'
  1205. elseif rand(1,2) = 1:
  1206. $npc_fav_date[$npclastgenerated] = 'fancy_meal'
  1207. elseif rand(1,1) = 1:
  1208. $npc_fav_date[$npclastgenerated] = 'amusement_park'
  1209. elseif rand(1,4) = 1:
  1210. $npc_fav_date[$npclastgenerated] = 'takeout_date'
  1211. elseif rand(1,3) = 1:
  1212. $npc_fav_date[$npclastgenerated] = 'casual_meal'
  1213. elseif rand(1,2) = 1:
  1214. $npc_fav_date[$npclastgenerated] = 'netflix_chill'
  1215. elseif rand(1,1) = 1:
  1216. $npc_fav_date[$npclastgenerated] = 'movie_date'
  1217. end
  1218. end
  1219. !! npc_fav_genre determines what kind of media they like to consume
  1220. if rand(1,10) > 7:
  1221. $npc_fav_genre[$npclastgenerated] = 'action'
  1222. elseif rand(1,7) > 4:
  1223. $npc_fav_genre[$npclastgenerated] = 'horror'
  1224. elseif rand(1,5) > 2:
  1225. if rand(1,10) < npc_sexdrive[$npclastgenerated]:
  1226. $npc_fav_genre[$npclastgenerated] = 'raunchy_comedy'
  1227. else
  1228. $npc_fav_genre[$npclastgenerated] = 'comedy'
  1229. end
  1230. elseif rand(1,2) = 1:
  1231. $npc_fav_genre[$npclastgenerated] = 'drama'
  1232. else
  1233. $npc_fav_genre[$npclastgenerated] = 'romance'
  1234. end
  1235. end
  1236. !!NOT YET SET
  1237. if $ARGS[0] = 'set_other_vars':
  1238. !! set them to sober
  1239. npc_drunk[$npclastgenerated] = 0
  1240. !! Horniness
  1241. npc_horny[$npclastgenerated] = max(0, rand(pcs_hotcat*2,pcs_hotcat*8) - npc_gender[$npclastgenerated]*20)
  1242. !! initialise lover length in days
  1243. npc_lover_days[$npclastgenerated] = 0
  1244. !! if npc_lover_keys = 1: the player has keys to their apartment and can access it whenever they want
  1245. npc_lover_keys[$npclastgenerated] = 0
  1246. !! Quest stage, relationship and love initialised
  1247. npc_QW[$npclastgenerated]= 0
  1248. !! hornguy6 commentary: I don''t know why relationship automatically starts at 40? I didn''t code this part so maybe someone can explain the reasoning behind it.
  1249. npc_rel[$npclastgenerated] = 40
  1250. npc_love[$npclastgenerated] = 0
  1251. !! STDs set to 0. For characters with a STD, you need to gs npcgenext rstd
  1252. npc_herpes[$npclastgenerated] = 0
  1253. npc_syth[$npclastgenerated] = 0
  1254. npc_gon[$npclastgenerated] = 0
  1255. npc_thrush[$npclastgenerated] = 0
  1256. !! times you have had sex with and pervert level of npc
  1257. npc_sex[$npclastgenerated] = 0
  1258. npc_perv[$npclastgenerated] = 0
  1259. ! {Creating the DNA of the character. If it is someone specific, like father, mother, daughter, sone, etc. then should be overwritten.}
  1260. $npc_dna[$npclastgenerated] = func('DNA','create')
  1261. end
  1262. if $ARGS[0] = 'cleanup':
  1263. !! Variable clean up
  1264. killvar '$npctempgn'
  1265. killvar 'npctempc1'
  1266. killvar 'npctempc2'
  1267. killvar 'npctempgsex'
  1268. killvar '$npctempgn'
  1269. killvar 'npctempgage'
  1270. killvar '$npctemparrc'
  1271. killvar 'temp_location'
  1272. killvar 'temp_rand'
  1273. end
  1274. --- npcgeneratec ---------------------------------