npcgeneratec.qsrc 27 KB

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