npcgeneratec.qsrc 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675
  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. !! npcgen_lastrun is a flag to help track whether npcgeneratec or npcpreservec has been run last
  6. !! npcgeneratec is 1
  7. !! npcpreservec is 2
  8. npcgen_lastrun = 1
  9. !! sets sex, 0 male, 1 female, 2 female herm, 3 male herm
  10. npctempgsex = ARGS[0]
  11. !! Name for npc, can just be rapist or shop assistant, etc
  12. $npctempgn[0] = $ARGS[1]
  13. !! npc age
  14. npctempgage = ARGS[2]
  15. !! npc home location area
  16. !! 1 - Pavlovsk Residential Area
  17. !! 2 - Student dorms in the city
  18. !! 3 - St. Petersburg Residential Area
  19. !! 4 - St. Petersburg City Center
  20. temp_location = ARGS[3]
  21. dont_know_npc_name = ARGS[4]
  22. !! For example
  23. !! gs 'npcgeneratec', 0, 'stranger', rand(18,45), 3, 1
  24. !! 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''
  25. if temp_location = 0:
  26. if $region = 'city':
  27. temp_location = rand(3,4)
  28. elseif $region = 'pav':
  29. temp_location = 1
  30. end
  31. end
  32. !! This sets up a newly generated index number by overwriting the first blank number
  33. !! The first check is to see if array 0 in the cleanup list is available and overwrites it if it is free
  34. if mid($cemptyarray[0],1,1) = 'C':
  35. $npclastgenerated = $cemptyarray[0]
  36. killvar '$cemptyarray', 0
  37. else
  38. :npcgencsanityloop
  39. i = 0
  40. $npclastgenerated = 'C' + '<<carraynumber>>'
  41. $npctemparrc = 'C' + '<<(carraynumber)-(1)>>'
  42. if $npc_perstype[$npctemparrc] = '' and carraynumber > 0:
  43. carraynumber -= 1
  44. i = 1
  45. elseif $npc_perstype[$npclastgenerated] = '':
  46. i = 0
  47. else
  48. carraynumber += 1
  49. i = 1
  50. end
  51. if i = 1: jump 'npcgencsanityloop'
  52. end
  53. carraynumber += 1
  54. $npc_index[$npclastgenerated] = $npclastgenerated
  55. !! Random birthday based on age given
  56. npctempc1[1] = year - npctempgage
  57. npctempc1[2] = rand(1,12)
  58. if npctempc1[2] = 4 or npctempc1[2] = 6 or npctempc1[2] = 9 or npctempc1[2] = 11:
  59. npctempc1[3] = rand(1,30)
  60. 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:
  61. npctempc1[3] = rand(1,31)
  62. elseif ((npctempc1[1] mod 4 = 0) and (npctempc1[1] mod 100 ! 0)) or (npctempc1[1] mod 400 = 0):
  63. npctempc1[3] = rand(1,29)
  64. else
  65. npctempc1[3] = rand(1,28)
  66. end
  67. npc_dob[$npclastgenerated] = npctempc1[1] * 10000
  68. npc_dob[$npclastgenerated] += (npctempc1[2] * 100)
  69. npc_dob[$npclastgenerated] += npctempc1[3]
  70. ! {we save the unique number of the npc, to be able to get the index of the array via arrpos}
  71. !! Sets a seed value for the stat randomization as well as calculate chance of virginity
  72. if npctempgage < 18:
  73. npctempc2[0] = 30
  74. npctempc2[1] = rand(0,20)
  75. else
  76. npctempc2[0] = 50
  77. npctempc2[1] = rand(19,24)
  78. end
  79. !! Flag for virginity
  80. if npctempc2[1] < 20:
  81. npc_sexskill[$npclastgenerated] = 0
  82. end
  83. !! Fill details about their sex such as cock and breast size
  84. if npctempgsex = 0:
  85. ! {Male}
  86. gs 'npcrnamefile', 'rusMale'
  87. gs 'npcgenext', 'dick'
  88. npc_gender[$npclastgenerated] = 0
  89. npc_spermpot[$npclastgenerated] = 10000
  90. $npc_thdick[$npclastgenerated] = $npctempgn[4]
  91. npc_dick[$npclastgenerated] = npctempgn[5]
  92. $npc_notes[$npclastgenerated] = 'A male.'
  93. npc_bust[$npclastgenerated] = 0
  94. lover_picrand[$npclastgenerated] = rand(1,30)
  95. elseif npctempgsex = 1:
  96. ! {Female}
  97. gs 'npcrnamefile', 'rusFemale'
  98. npc_gender[$npclastgenerated] = 1
  99. npc_spermpot[$npclastgenerated] = -1
  100. $npc_thdick[$npclastgenerated] = 'clitoris'
  101. npc_dick[$npclastgenerated] = rand(0,1)
  102. $npc_notes[$npclastgenerated] = 'A female.'
  103. !!0 - 60 curve around 22,5 (C/D cups)
  104. npc_bust[$npclastgenerated] = rand(0,15) + rand(0,15) + rand(0,15) & if rand(1,10) = 1: npc_bust[$npclastgenerated] += rand(0,15)
  105. elseif npctempgsex = 2:
  106. ! {HermFemale}
  107. gs 'npcrnamefile', 'rusFemale'
  108. gs 'npcgenext', 'dick'
  109. npc_gender[$npclastgenerated] = 1
  110. npc_spermpot[$npclastgenerated] = -1
  111. $npc_thdick[$npclastgenerated] = 'clitoris'
  112. npc_dick[$npclastgenerated] = npctempgn[5]
  113. $npc_notes[$npclastgenerated] = 'A female Hermaphrodite.'
  114. !!0 - 60 curve around 22,5 (C/D cups)
  115. npc_bust[$npclastgenerated] = rand(0,15) + rand(0,15) + rand(0,15)
  116. else
  117. ! {HermMale}
  118. gs 'npcrnamefile', 'rusMale'
  119. gs 'npcgenext', 'dick'
  120. npc_gender[$npclastgenerated] = 0
  121. npc_spermpot[$npclastgenerated] = 10000
  122. $npc_thdick[$npclastgenerated] = $npctempgn[4]
  123. npc_dick[$npclastgenerated] = npctempgn[5]
  124. $npc_notes[$npclastgenerated] = 'A male Hermaphrodite.'
  125. npc_bust[$npclastgenerated]= rand(0,10)
  126. end
  127. !! $npc_dick_desc is set here
  128. !! this variable is to set a shorthand method of checking dick size without looking for specific numbers
  129. !! it is organized by length and then ascending girth
  130. !! short dicks
  131. if npc_dick[$npclastgenerated] < 9:
  132. if $npc_thdick[$npclastgenerated] = 'skinny' or $npc_thdick[$npclastgenerated] = 'slim':
  133. $npc_dick_desc[$npclastgenerated] = 'tiny'
  134. elseif $npc_thdick[$npclastgenerated] = 'well proportioned' or $npc_thdick[$npclastgenerated] = 'thicker than average':
  135. $npc_dick_desc[$npclastgenerated] = 'short'
  136. elseif $npc_thdick[$npclastgenerated] = 'thick' or $npc_thdick[$npclastgenerated] = 'massive' or $npc_thdick[$npclastgenerated] = 'monstrous':
  137. $npc_dick_desc[$npclastgenerated] = 'chode'
  138. end
  139. !! average length dicks
  140. elseif npc_dick[$npclastgenerated] < 20:
  141. if $npc_thdick[$npclastgenerated] = 'skinny' or $npc_thdick[$npclastgenerated] = 'slim':
  142. $npc_dick_desc[$npclastgenerated] = 'skinny'
  143. elseif $npc_thdick[$npclastgenerated] = 'well proportioned' or $npc_thdick[$npclastgenerated] = 'thicker than average':
  144. $npc_dick_desc[$npclastgenerated] = 'normal'
  145. elseif $npc_thdick[$npclastgenerated] = 'thick' or $npc_thdick[$npclastgenerated] = 'massive' or $npc_thdick[$npclastgenerated] = 'monstrous':
  146. $npc_dick_desc[$npclastgenerated] = 'thick'
  147. end
  148. !! long dicks
  149. elseif npc_dick[$npclastgenerated] < 31:
  150. if $npc_thdick[$npclastgenerated] = 'skinny' or $npc_thdick[$npclastgenerated] = 'slim':
  151. $npc_dick_desc[$npclastgenerated] = 'long'
  152. elseif $npc_thdick[$npclastgenerated] = 'well proportioned' or $npc_thdick[$npclastgenerated] = 'thicker than average':
  153. $npc_dick_desc[$npclastgenerated] = 'huge'
  154. elseif $npc_thdick[$npclastgenerated] = 'thick' or $npc_thdick[$npclastgenerated] = 'massive' or $npc_thdick[$npclastgenerated] = 'monstrous':
  155. $npc_dick_desc[$npclastgenerated] = 'enormous'
  156. end
  157. !! extremely long dicks
  158. else
  159. if $npc_thdick[$npclastgenerated] = 'skinny' or $npc_thdick[$npclastgenerated] = 'slim':
  160. $npc_dick_desc[$npclastgenerated] = 'lengthy'
  161. elseif $npc_thdick[$npclastgenerated] = 'well proportioned' or $npc_thdick[$npclastgenerated] = 'thicker than average':
  162. $npc_dick_desc[$npclastgenerated] = 'gigantic'
  163. elseif $npc_thdick[$npclastgenerated] = 'thick' or $npc_thdick[$npclastgenerated] = 'massive' or $npc_thdick[$npclastgenerated] = 'monstrous':
  164. $npc_dick_desc[$npclastgenerated] = 'monster'
  165. end
  166. end
  167. !! Set the names, and the stat high ends as determined by seed set earlier
  168. gs 'npcrnamefile', 'rusSur'
  169. $npc_firstname[$npclastgenerated] = $npctempgn[1]
  170. $npc_nickname[$npclastgenerated] = $npctempgn[2]
  171. $npc_lastname[$npclastgenerated] = $npctempgn[3]
  172. if dont_know_npc_name = 0 or $npctempgn[0] = '':
  173. $npc_usedname[$npclastgenerated] = $npctempgn[1]
  174. else
  175. $npc_usedname[$npclastgenerated] = $npctempgn[0]
  176. end
  177. npc_intel[$npclastgenerated] = rand(1,npctempc2)
  178. !! set them to sober
  179. npc_drunk[$npclastgenerated] = 0
  180. !! Horniness
  181. npc_horny[$npclastgenerated] = rand(0,60)
  182. !! Attractiveness
  183. npc_apprnc[$npclastgenerated] = rand(30,60)
  184. !! Height
  185. if npc_gender[$npclastgenerated] = 0:
  186. npc_height[$npclastgenerated] = rand(160,190)
  187. else
  188. npc_height[$npclastgenerated] = rand(150,180)
  189. end
  190. !! Hair colour
  191. npc_haircol[$npclastgenerated] = rand(0, 3)
  192. !! Quest stage, relationship and love initialised
  193. npc_QW[$npclastgenerated]= 0
  194. !! 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.
  195. npc_rel[$npclastgenerated] = 40
  196. npc_love[$npclastgenerated] = 0
  197. !! initialise occupation and outfit
  198. npc_occupation[$npclastgenerated] = 0
  199. npc_outfit[$npclastgenerated] = 0
  200. !! Unspecified dad and <<$npc_nickname[''A29'']>>.
  201. if npctempgsex = 1 or npctempgsex = 2:
  202. !! A female face
  203. $npc_pic[$npclastgenerated] = 'icon_bf' + rand(31, 60) + '.png'
  204. else
  205. !! A male face
  206. $npc_pic[$npclastgenerated] = 'icon_bf' + rand(1, 30) + '.png'
  207. end
  208. !! STDs set to 0. For characters with a STD, you need to gs npcgenext rstd
  209. npc_herpes[$npclastgenerated] = 0
  210. npc_syth[$npclastgenerated] = 0
  211. npc_gon[$npclastgenerated] = 0
  212. npc_thrush[$npclastgenerated] = 0
  213. !! times you have had sex with and pervert level of npc
  214. npc_sex[$npclastgenerated] = 0
  215. npc_perv[$npclastgenerated] = 0
  216. !! Personality generated
  217. gs 'npcgenext', 'pers'
  218. $npc_perstype[$npclastgenerated] = $npctempgn[6]
  219. !! hornguy6 commentary: the above code sets a Myers Briggs personality type?
  220. !! Seems overly complex. Up to others whether we keep it or just use the quirks I''ve added to this file
  221. ! {Creating the DNA of the character. If it is someone specific, like father, mother, daughter, sone, etc. then should be overwritten.}
  222. $npc_dna[$npclastgenerated] = func('DNA','create')
  223. !! Set home details
  224. !! npc_apt_type = 1: student dorm (only available in the city for obvious reasons)
  225. !! npc_apt_type = 2: studio apartment
  226. !! npc_apt_type = 3: one bedroom apartment
  227. !! npc_apt_type = 4: multi-bedroom apartment with roommates
  228. !! npc_apt_type = 5: multi-bedroom apartment living alone
  229. !! npc_apt_type = 6: high rise apartment (for rich people only)
  230. !! temp_location
  231. !! 1 - Pavlovsk Residential Area
  232. !! 2 - Student dorms in the city
  233. !! 3 - St. Petersburg Residential Area
  234. !! 4 - St. Petersburg City Center
  235. !! occupation set, list below
  236. npc_residence[$npclastgenerated] = temp_location
  237. if temp_location = 1:
  238. npc_finance[$npclastgenerated] = 0
  239. elseif temp_location = 2:
  240. npc_finance[$npclastgenerated] = 0
  241. elseif temp_location = 3:
  242. npc_finance[$npclastgenerated] = rand(1,2)
  243. elseif temp_location = 4:
  244. npc_finance[$npclastgenerated] = 2
  245. end
  246. if npc_finance[$npclastgenerated] = 0:
  247. if npc_residence[$npclastgenerated] ! 1 and npc_residence[$npclastgenerated] ! 4 and npctempgage < 22:
  248. npc_student[$npclastgenerated] = rand(0,1)
  249. npc_apt_type[$npclastgenerated] = rand(1,4)
  250. elseif npc_residence[$npclastgenerated] = 2:
  251. npc_student[$npclastgenerated] = 1
  252. npc_apt_type[$npclastgenerated] = 2
  253. else
  254. npc_apt_type[$npclastgenerated] = rand(2,4)
  255. end
  256. npc_occupation[$npclastgenerated] = rand(1,7)
  257. if rand(1,3) = 1:
  258. npc_start_free_time[$npclastgenerated] = 9
  259. npc_end_free_time[$npclastgenerated] = 12
  260. elseif rand(1,2) = 1:
  261. npc_start_free_time[$npclastgenerated] = 16
  262. npc_end_free_time[$npclastgenerated] = 20
  263. else
  264. npc_start_free_time[$npclastgenerated] = 20
  265. npc_end_free_time[$npclastgenerated] = 23
  266. end
  267. npc_day_off[$npclastgenerated] = rand(1,7)
  268. elseif npc_finance[$npclastgenerated] = 1:
  269. npc_apt_type[$npclastgenerated] = rand(2,5)
  270. npc_occupation[$npclastgenerated] = rand(7,15)
  271. if rand(1,2) = 1:
  272. npc_start_free_time[$npclastgenerated] = 9
  273. npc_end_free_time[$npclastgenerated] = 12
  274. else
  275. npc_start_free_time[$npclastgenerated] = 20
  276. npc_end_free_time[$npclastgenerated] = 23
  277. end
  278. npc_car[$npclastgenerated] = rand(-3,1)
  279. elseif npc_finance[$npclastgenerated] = 2:
  280. npc_apt_type[$npclastgenerated] = 5
  281. !!npc_apt_type[$npclastgenerated] = rand(5,6)
  282. !! apt_type 6 is disabled until pictures are added
  283. npc_occupation[$npclastgenerated] = rand(14,18)
  284. npc_car[$npclastgenerated] = rand(0,1)
  285. end
  286. npc_day_off[$npclastgenerated] = rand(1,7)
  287. !! npc_style[$npclastgenerated] determines generally how they dress and what their "persona" is
  288. !! Each style is limited by their financial status and occupation
  289. !! e.g. You can''t have someone who dresses like a businessman but works as a line cook
  290. !! 1 - "normal"
  291. !! 2 - Gopnik
  292. !! 3 - nerdy
  293. !! 4 - sporty
  294. !! 5 - fashionable
  295. !! 6 - businessman
  296. if npc_occupation[$npclastgenerated] < 15:
  297. npc_style[$npclastgenerated] = rand(1,5)
  298. else
  299. npc_style[$npclastgenerated] = (rand(2,6) mod 6) + 1
  300. end
  301. if npc_apt_type[$npclastgenerated] = 6:
  302. !! high rise
  303. !! this is to determine what their spare room is used for based on their personality type
  304. if npc_style[$npclastgenerated] = 3:
  305. npc_apt_spare[$npclastgenerated] = 1
  306. elseif npc_style[$npclastgenerated] = 2 or npc_style[$npclastgenerated] = 4:
  307. npc_apt_spare[$npclastgenerated] = 2
  308. else
  309. npc_apt_spare[$npclastgenerated] = rand(1,2)
  310. end
  311. if npc_apt_spare[$npclastgenerated] = 1:
  312. $npc_apt_spare[$npclastgenerated] = 'gaming'
  313. elseif npc_apt_spare[$npclastgenerated] = 2:
  314. $npc_apt_spare[$npclastgenerated] = 'gym'
  315. end
  316. npc_apt_number[$npclastgenerated] = rand(1,2)
  317. $npc_apt_bedroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/high_rise/<<npc_apt_number[$npclastgenerated]>>/bedroom.jpg"></center>'
  318. $npc_apt_kitchen[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/high_rise/<<npc_apt_number[$npclastgenerated]>>/bedroom.jpg"></center>'
  319. $npc_apt_livingroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/high_rise/<<npc_apt_number[$npclastgenerated]>>/bedroom.jpg"></center>'
  320. $npc_apt_bathroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/high_rise/<<npc_apt_number[$npclastgenerated]>>/bath.jpg"></center>'
  321. $npc_apt_hall[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/high_rise/<<npc_apt_number[$npclastgenerated]>>/bedroom.jpg"></center>'
  322. elseif npc_apt_type[$npclastgenerated] = 4 or npc_apt_type[$npclastgenerated] = 5:
  323. !! multi-bedroom
  324. !! 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.
  325. !! this is to determine what their spare room is used for based on their personality type
  326. if npc_style[$npclastgenerated] = 3:
  327. npc_apt_spare[$npclastgenerated] = 1
  328. elseif npc_style[$npclastgenerated] = 2 or npc_style[$npclastgenerated] = 4:
  329. npc_apt_spare[$npclastgenerated] = 2
  330. else
  331. npc_apt_spare[$npclastgenerated] = rand(1,2)
  332. end
  333. if npc_apt_spare[$npclastgenerated] = 1:
  334. $npc_apt_spare[$npclastgenerated] = 'gaming'
  335. elseif npc_apt_spare[$npclastgenerated] = 2:
  336. $npc_apt_spare[$npclastgenerated] = 'gym'
  337. end
  338. npc_apt_number[$npclastgenerated] = rand(1,2)
  339. $npc_apt_bedroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/multibedroom/<<npc_apt_number[$npclastgenerated]>>/bedroom.jpg"></center>'
  340. $npc_apt_kitchen[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/multibedroom/<<npc_apt_number[$npclastgenerated]>>/kitchen.jpg"></center>'
  341. $npc_apt_livingroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/multibedroom/<<npc_apt_number[$npclastgenerated]>>/living.jpg"></center>'
  342. $npc_apt_bathroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/multibedroom/<<npc_apt_number[$npclastgenerated]>>/bath.jpg"></center>'
  343. $npc_apt_hall[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/multibedroom/<<npc_apt_number[$npclastgenerated]>>/living.jpg"></center>'
  344. $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>'
  345. elseif npc_apt_type[$npclastgenerated] = 3:
  346. !! one bedroom
  347. npc_apt_number[$npclastgenerated] = rand(1,3)
  348. $npc_apt_bedroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/1bedroom/<<npc_apt_number[$npclastgenerated]>>/bedroom.jpg"></center>'
  349. $npc_apt_kitchen[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/1bedroom/<<npc_apt_number[$npclastgenerated]>>/kitchen.jpg"></center>'
  350. $npc_apt_livingroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/1bedroom/<<npc_apt_number[$npclastgenerated]>>/living.jpg"></center>'
  351. $npc_apt_bathroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/1bedroom/<<npc_apt_number[$npclastgenerated]>>/bath.jpg"></center>'
  352. $npc_apt_hall[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/1bedroom/<<npc_apt_number[$npclastgenerated]>>/living.jpg"></center>'
  353. elseif npc_apt_type[$npclastgenerated] = 2:
  354. !! studio apartment
  355. npc_apt_number[$npclastgenerated] = rand(1,2)
  356. $npc_apt_bedroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/studio/<<npc_apt_number[$npclastgenerated]>>/bedroom.jpg"></center>'
  357. $npc_apt_kitchen[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/studio/<<npc_apt_number[$npclastgenerated]>>/bedroom.jpg"></center>'
  358. $npc_apt_livingroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/studio/<<npc_apt_number[$npclastgenerated]>>/bedroom.jpg"></center>'
  359. $npc_apt_bathroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/studio/<<npc_apt_number[$npclastgenerated]>>/bath.jpg"></center>'
  360. $npc_apt_hall[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/studio/<<npc_apt_number[$npclastgenerated]>>/bedroom.jpg"></center>'
  361. elseif npc_apt_type[$npclastgenerated] = 1:
  362. !! student dorm
  363. npc_apt_number[$npclastgenerated] = rand(1,3)
  364. $npc_apt_bedroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/1bedroom/<<npc_apt_number[$npclastgenerated]>>/bedroom.jpg"></center>'
  365. $npc_apt_kitchen[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/1bedroom/<<npc_apt_number[$npclastgenerated]>>/kitchen.jpg"></center>'
  366. $npc_apt_livingroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/1bedroom/<<npc_apt_number[$npclastgenerated]>>/living.jpg"></center>'
  367. $npc_apt_bathroom[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/1bedroom/<<npc_apt_number[$npclastgenerated]>>/bath.jpg"></center>'
  368. $npc_apt_hall[$npclastgenerated] = '<center><img <<$set_imgh>> src="images/shared/romance/lovers/homes/studio/<<npc_apt_number[$npclastgenerated]>>/living.jpg"></center>'
  369. end
  370. if npc_occupation[$npclastgenerated] = 1:
  371. $npc_occupation[$npclastgenerated] = 'cashier_supermarket'
  372. elseif npc_occupation[$npclastgenerated] = 2:
  373. $npc_occupation[$npclastgenerated] = 'cashier_liquor'
  374. elseif npc_occupation[$npclastgenerated] = 3:
  375. $npc_occupation[$npclastgenerated] = 'cashier_coffee'
  376. elseif npc_occupation[$npclastgenerated] = 4:
  377. $npc_occupation[$npclastgenerated] = 'barista'
  378. elseif npc_occupation[$npclastgenerated] = 5:
  379. $npc_occupation[$npclastgenerated] = 'fast_food'
  380. elseif npc_occupation[$npclastgenerated] = 6:
  381. $npc_occupation[$npclastgenerated] = 'taxi_driver'
  382. elseif npc_occupation[$npclastgenerated] = 7:
  383. $npc_occupation[$npclastgenerated] = 'masseuse'
  384. elseif npc_occupation[$npclastgenerated] = 8:
  385. $npc_occupation[$npclastgenerated] = 'masseuse_sexual'
  386. elseif npc_occupation[$npclastgenerated] = 9:
  387. $npc_occupation[$npclastgenerated] = 'factory'
  388. elseif npc_occupation[$npclastgenerated] = 10:
  389. $npc_occupation[$npclastgenerated] = 'bartender'
  390. elseif npc_occupation[$npclastgenerated] = 11:
  391. $npc_occupation[$npclastgenerated] = 'mechanic'
  392. elseif npc_occupation[$npclastgenerated] = 12:
  393. $npc_occupation[$npclastgenerated] = 'line_cook'
  394. elseif npc_occupation[$npclastgenerated] = 13:
  395. $npc_occupation[$npclastgenerated] = 'waiter'
  396. elseif npc_occupation[$npclastgenerated] = 14:
  397. $npc_occupation[$npclastgenerated] = 'personal trainer'
  398. elseif npc_occupation[$npclastgenerated] = 15:
  399. $npc_occupation[$npclastgenerated] = 'programmer'
  400. elseif npc_occupation[$npclastgenerated] = 16:
  401. $npc_occupation[$npclastgenerated] = 'businessman'
  402. elseif npc_occupation[$npclastgenerated] = 17:
  403. $npc_occupation[$npclastgenerated] = 'lawyer'
  404. elseif npc_occupation[$npclastgenerated] = 18:
  405. $npc_occupation[$npclastgenerated] = 'investment banker'
  406. end
  407. !! type of homour
  408. npc_humor[$npclastgenerated] = rand(0,3)
  409. !! Preferred sexual position
  410. npc_fav_pos[$npclastgenerated] = rand(1,7)
  411. if npc_fav_pos[$npclastgenerated] = 1:
  412. $npc_fav_pos[$npclastgenerated] = 'missionary'
  413. elseif npc_fav_pos[$npclastgenerated] = 2:
  414. $npc_fav_pos[$npclastgenerated] = 'doggy'
  415. elseif npc_fav_pos[$npclastgenerated] = 3:
  416. $npc_fav_pos[$npclastgenerated] = 'cowgirl'
  417. elseif npc_fav_pos[$npclastgenerated] = 4:
  418. $npc_fav_pos[$npclastgenerated] = 'blowjob'
  419. elseif npc_fav_pos[$npclastgenerated] = 5:
  420. $npc_fav_pos[$npclastgenerated] = 'titjob'
  421. elseif npc_fav_pos[$npclastgenerated] = 6:
  422. $npc_fav_pos[$npclastgenerated] = '69'
  423. elseif npc_fav_pos[$npclastgenerated] = 7:
  424. $npc_fav_pos[$npclastgenerated] = 'anal'
  425. end
  426. !! npc_sex_speed determines whether they like it slow, steady, or fast and will cause them to select that speed more frequently
  427. !! 1 is slow, 2 is steady, 3 is fast/rough
  428. npc_sex_speed[$npclastgenerated] = rand(1,3)
  429. !! Preferred cumming location
  430. !! 0 = no preference
  431. npc_cum_pref[$npclastgenerated] = rand(0,5)
  432. if npc_cum_pref[$npclastgenerated] = 1:
  433. $npc_cum_pref[$npclastgenerated] = 'creampie'
  434. elseif npc_cum_pref[$npclastgenerated] = 2:
  435. $npc_cum_pref[$npclastgenerated] = 'mouth'
  436. elseif npc_cum_pref[$npclastgenerated] = 3:
  437. $npc_cum_pref[$npclastgenerated] = 'facial'
  438. elseif npc_cum_pref[$npclastgenerated] = 4:
  439. $npc_cum_pref[$npclastgenerated] = 'tits'
  440. elseif npc_cum_pref[$npclastgenerated] = 5:
  441. $npc_cum_pref[$npclastgenerated] = 'pullout'
  442. end
  443. !! npc_tit_pref determines an npcs preference for breast size
  444. !! if npc_tit_pref = 0: they don''t care
  445. !! if npc_tit_pref = 1: they like small tits (A or smaller)
  446. !! if npc_tit_pref = 2: they like medium sized tits (B to C)
  447. !! if npc_tit_pref = 3: they like busty girls (D to E)
  448. !! if npc_tit_pref = 4: they like big fat titties (F+)
  449. npc_tit_pref[$npclastgenerated] = rand(0,4)
  450. !! npc_bush_pref determines an npcs preference for the player''s shaving habits
  451. !! if npc_bush_pref = 0: they don''t care
  452. !! if npc_bush_pref = 1: they prefer it cleanshaven
  453. !! if npc_bush_pref = 2: they like it trimmed or cleanshaven
  454. !! if npc_bush_pref = 3: they like it bushy
  455. npc_bush_pref[$npclastgenerated] = rand(0,3)
  456. !! if npc_smoker > 0: they smoke cigarettes
  457. npc_smoker[$npclastgenerated] = rand(0,2)
  458. !! if npc_mj = 1: they smoke weed
  459. !! if npc_mj = 2: they are a stoner
  460. !! 10% chance they will smoke weed at all, 5% chance total of being either kind of weed smoker
  461. if rand(1,10) = 10:
  462. npc_mj[$npclastgenerated] = rand(1,2)
  463. end
  464. !! we will skip addit for now, have a variable just for smoking
  465. !! npc_addit[$npclastgenerated] = rand(0,1)
  466. !! if npc_doors = 0: they have no preference on indoor or outdoor
  467. !! if npc_doors = 1: they like outdoor activities
  468. !! if npc_doors = 2: they like indoor activities
  469. npc_doors[$npclastgenerated] = rand(0,2)
  470. !! npc_goal is what they want out of a relationship
  471. !! 1 = just sex
  472. !! 2 = casual relationship
  473. !! 3 = serious relationship
  474. npc_goal[$npclastgenerated] = rand(1,3)
  475. !! npc_fidelity is how they will behave in a relationship
  476. !! 1-3 = will cheat on you
  477. !! 4-6 = will cheat on others with you
  478. !! 4 = cheats on them with you for the first time
  479. !! 5 = has been cheating and feels guilty
  480. !! 6 = is a serial cheater with no guilt
  481. !! 7 = is fine with open relationship
  482. !! 8-10 = will be faithful
  483. if npc_fidelity[$npclastgenerated] >= 8:
  484. $npc_fidelity[$npclastgenerated] = 'faithful'
  485. elseif npc_fidelity[$npclastgenerated] = 7:
  486. $npc_fidelity[$npclastgenerated] = 'open'
  487. elseif npc_fidelity[$npclastgenerated] >= 4:
  488. $npc_fidelity[$npclastgenerated] = 'seduced'
  489. elseif npc_fidelity[$npclastgenerated] >= 1:
  490. $npc_fidelity[$npclastgenerated] = 'cheater'
  491. end
  492. !! 4 = is a serial cheater with no guilt
  493. !! 5 = has been cheating and feels guilty
  494. !! 6 = cheats on them with you for the first time
  495. if npc_fidelity[$npclastgenerated] >= 4 and npc_fidelity[$npclastgenerated] <= 6: npc_girlfriend[$npclastgenerated] = rand(0,1)
  496. !! initialise lover length in days
  497. npc_lover_days[$npclastgenerated] = 0
  498. !! if npc_lover_keys = 1: the player has keys to their apartment and can access it whenever they want
  499. npc_lover_keys[$npclastgenerated] = 0
  500. !! quirk/trait generation
  501. if rand(0,2) > 0:
  502. if rand(0,1) = 1:
  503. npc_earlyriser[$npclastgenerated] = 1
  504. npc_latesleeper[$npclastgenerated] = 0
  505. else
  506. npc_latesleeper[$npclastgenerated] = 1
  507. npc_earlyriser[$npclastgenerated] = 0
  508. end
  509. end
  510. if rand(0,2) > 0:
  511. if rand(0,1) = 1:
  512. npc_generous[$npclastgenerated] = 1
  513. npc_selfish[$npclastgenerated] = 0
  514. else
  515. npc_selfish[$npclastgenerated] = 1
  516. npc_generous[$npclastgenerated] = 0
  517. end
  518. end
  519. !! if npc_argumentative = 1:, they will get into more arguments with you about things
  520. !! it is also harder to persuade them
  521. npc_argumentative[$npclastgenerated] = rand(0,2)
  522. !! how easy or difficult it is to persuade them into doing something
  523. npc_willpwr[$npclastgenerated] = rand(1,50)
  524. npc_willpwr[$npclastgenerated] += npc_argumentative[$npclastgenerated] * 10
  525. !! if npc_competitive = 1: they are overly competitive in contests against you or others
  526. npc_competitive[$npclastgenerated] = rand(-1,1)
  527. !! if npc_insecure = 1: they are insecure in their masculinity and won''t respond well to teasing
  528. npc_insecure[$npclastgenerated] = rand(-1,1)
  529. if rand(0,1) = 1:
  530. !! if npc_condom_conscious = 1: they will use condoms but can be talked out of it
  531. !! if npc_condom_conscious = 2: they will always insist on using condoms unless you are in a committed relationship
  532. npc_condom_conscious[$npclastgenerated] = rand(-2,2)
  533. else
  534. !! if npc_no_condoms = 1: they have a preference for skipping condoms but can be talked into using one
  535. !! if npc_no_condoms = 2: they will never use a condom no matter what
  536. npc_no_condoms[$npclastgenerated] = rand(-2,2)
  537. end
  538. !! if npc_caretaker = 1: they will frequently show love through acts of service
  539. !! example: making you breakfast in bed
  540. if npc_selfish[$npclastgenerated] ! 1: npc_caretaker[$npclastgenerated] = rand(-3,1)
  541. !! npc_childfree determines that they never want to have kids and will react poorly to pregnancy related topics
  542. npc_childfree[$npclastgenerated] = rand(-3,1)
  543. !! if npc_abusive = 1: the npc will be abusive
  544. npc_abusive[$npclastgenerated] = rand(-3,1)
  545. !! 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
  546. npc_sexdrive[$npclastgenerated] = rand(1,10)
  547. !! if npc_pussyeater = 1: they have a fetish for eating pussy
  548. npc_pussyeater[$npclastgenerated] = rand(-2,1)
  549. !! if npc_cuddler = 1: the npc likes to cuddle
  550. npc_cuddler[$npclastgenerated] = rand(-1,1)
  551. !! if npc_cum_cannon = 1: the npc ejaculates particularly large loads
  552. npc_cum_cannon[$npclastgenerated] = rand(-3,1)
  553. !! if npc_two_pump = 1: the npc will always cum immediately in the first penetration act of sex
  554. npc_two_pump[$npclastgenerated] = rand(-5,1)
  555. !! Variable clean up
  556. killvar '$npctempgn'
  557. killvar 'npctempc1'
  558. killvar 'npctempc2'
  559. killvar 'npctempgsex'
  560. killvar '$npctempgn'
  561. killvar 'npctempgage'
  562. killvar '$npctemparrc'
  563. killvar 'temp_location'
  564. --- npcgeneratec ---------------------------------