Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import random
  2.  
  3. biome_type = random.choice(['Grassland','Mountain'])
  4. maxMinPop = {"Camp":[6,12], "Outpost":[15,25], "Village":[40,80], "Town":[80, 1000], "City":[1000, 2000], "Capital City":[2000, 5000]}
  5. chosen_Settlement_Type = random.choice(list(maxMinPop.keys()))
  6. population = random.choice (range(maxMinPop[chosen_Settlement_Type][0],maxMinPop[chosen_Settlement_Type] [1]))
  7.  
  8. def get_services(chosen_Settlement_Type):
  9.     basic_services    = ['Blacksmith','Tanner','Travelling Merchant','Cleric']
  10.     advanced_services = ['Inn','Tavern','Farm','Stable', 'Shop','Church']
  11.     chosen_services   = []
  12.     #add in a premium services for town(maybe) city and capital
  13.     if chosen_Settlement_Type == 'Camp':
  14.         services = random.choice(range(0,3))
  15.         for x in range(services):
  16.             chosen_services.append(random.choice(basic_services))
  17.            
  18.     elif chosen_Settlement_Type == 'Outpost':
  19.         services = random.choice(range(2,5))
  20.         for x in range(services):
  21.             chosen_services.append(random.choice(basic_services+basic_services+advanced_services))
  22.    
  23.     elif chosen_Settlement_Type == 'Village':
  24.         services =  random.choice(range(4,10))
  25.         for x in range(services):
  26.             chosen_services.append(random.choice(basic_services+advanced_services))
  27.    
  28.     elif chosen_Settlement_Type == 'Town':
  29.         services = random.choice(range(7,17))
  30.         for x in range(services):
  31.             chosen_services.append(random.choice(basic_services+advanced_services))
  32.    
  33.     elif chosen_Settlement_Type == 'City':
  34.         services = random.choice(range(12,21))
  35.         for x in range(services):
  36.             chosen_services.append(random.choice(basic_services+advanced_services))
  37.            
  38.     elif chosen_Settlement_Type == 'Capital City':
  39.         services = random.choice(range(18,35))
  40.         for x in range(services):
  41.             chosen_services.append(random.choice(basic_services+advanced_services))
  42.    
  43.     return chosen_services
  44.        
  45.  
  46.  
  47. if biome_type == 'Grassland':
  48.     race = random.choice (['Human','Human','Human','Dwarf'])
  49.    
  50. elif biome_type == 'Mountain':
  51.     race = random.choice (['Human','Dwarf','Dwarf','Dwarf'])
  52.  
  53.  
  54.  
  55. def human_name_gen():
  56.     syllables = ['mas', 'ran', 'lan', 'top', 'val', 'la', 'gar','cal','ron',
  57.     'lie','jera','mey','cop','per','dar', 'ren','ie','jes','har','ha','gre','hem','way','sam','mal','ik','war','hay']
  58.  
  59.     laSyllables = ['smi','tay','low','lock','row','wood','ley','par','son','dal','house','river','field','hay']
  60.  
  61.     first_s    = random.choice(syllables)
  62.     second_s   = random.choice(syllables)
  63.  
  64.     for x in range(20):
  65.         while True:
  66.             first_s    = random.choice(syllables).capitalize()
  67.             second_s   = random.choice(syllables)
  68.                
  69.             if first_s != second_s:
  70.                 first_name = first_s + second_s
  71.                 break
  72.                
  73.         surname    = random.choice (laSyllables).capitalize() + random.choice(laSyllables)
  74.         return (first_name + ' ' + surname)
  75.  
  76. def dwarf_name_gen():
  77.     syllables = ['to', 'ro', 'for', 'lo', 'ran', 'ga', 'rag', 'var', 'lag', 'gar','rek','ron','vek','jera','ker','kot','dok','dar', 'ka']
  78.  
  79.     body_names= ['hand', 'fist', 'leg', 'head', 'heart', 'eye', 'foot', 'arm', 'finger', 'toe', 'nose','hat']
  80.     rock_names= ['rock', 'stone','boulder', 'gold', 'lead', 'pebble','diamond','ruby','lapis','crag','cliff']
  81.    
  82.     first_s    = random.choice(syllables)
  83.     second_s   = random.choice(syllables)
  84.    
  85.     for x in range(20):
  86.         while True:
  87.             first_s    = random.choice(syllables).capitalize()
  88.             second_s   = random.choice(syllables)
  89.            
  90.             if first_s != second_s:
  91.                 first_name = first_s + second_s
  92.                 break
  93.            
  94.         surname    = random.choice (rock_names).capitalize() + random.choice(body_names)
  95.         return (first_name + ' ' + surname)
  96.  
  97. def get_leader_title(chosen_Settlement_Type):
  98.  
  99.         if chosen_Settlement_Type == 'Camp':
  100.             leader_title = random.choice(['Captain ','',''])
  101.            
  102.         elif chosen_Settlement_Type == 'Outpost':
  103.             leader_title = random.choice(['Captain ','General ','Captain ','Lord ','Lady ','Captain '])
  104.    
  105.         elif chosen_Settlement_Type == 'Village':
  106.             leader_title = random.choice (['Lord ','Lady ','Baron ','Baroness ','','','','',''])
  107.        
  108.         elif chosen_Settlement_Type == 'Town':
  109.             leader_title = random.choice (['Lord ','Lady ','Baron ','Baroness ','Mayor ','Mayor ','Mayor ','Mayor '])
  110.    
  111.         elif chosen_Settlement_Type == 'City':
  112.             leader_title = random.choice (['King ','Queen '])
  113.            
  114.         elif chosen_Settlement_Type == 'Capital City':
  115.             leader_title = random.choice (['High King ','High Queen ','Queen ','King '])
  116.         return (leader_title)
  117.  
  118. if race == 'Human':
  119.     leader_name = get_leader_title(chosen_Settlement_Type) + human_name_gen()
  120.  
  121. elif race == 'Dwarf':
  122.     leader_name = get_leader_title(chosen_Settlement_Type) + dwarf_name_gen()
  123.  
  124. def generateDenizen():
  125.     #This sub-function generated names for the people
  126.         def generatePersonJob():
  127.             jobList = [
  128.             "General Merchant",
  129.             "Blacksmith",
  130.             "Tailor",
  131.             "Cobbler",
  132.             "Tanner",
  133.             "Doctor",
  134.             "Wicken",
  135.             "Wizard",
  136.             "Healer",
  137.             "Chef",
  138.             "Baker",
  139.             "Mercenary",
  140.             "Arms Merchant",
  141.             "Undertaker",
  142.             "Executioner",
  143.             "Carpenter",
  144.             "Conjourer",
  145.             "Stable Worker",
  146.             "Falconer",
  147.             "Hunter",
  148.             "Farmer",
  149.             "Banker",
  150.             "Soldier",
  151.             "Librarian"
  152.             ]
  153.            
  154.             job = random.choice(jobList)
  155.             return job
  156.            
  157.        
  158.         #set name equal to the full name we just generated in the above function   
  159.         name = dwarf_name_gen()
  160.         #Pick a random number for age
  161.         age = random.choice(range(1,90))
  162.         #Pick a random job
  163.         job = generatePersonJob()
  164.        
  165.         #Create a data dict that holds the name and age
  166.         person = {"Name":name, "Age":age, "Job":job}
  167.         #output the data dict we just made
  168.         return person
  169.  
  170. denizenList = []
  171. for x in range(population):
  172.     denizenList.append(generateDenizen())
  173.  
  174. services_list = get_services(chosen_Settlement_Type)
  175.  
  176. print ("~ Settlement Generator ~")
  177. print ('Biome: '+ biome_type + "\n")
  178. print ("Type: "+ chosen_Settlement_Type + "\n")
  179. print ('Prominant race: ' + race + "\n")
  180. print ('Lead by: ' + leader_name + "\n")
  181. print ('Population: '+ str(population) + "\n")
  182. print ('Services: ')
  183. for x in set(services_list):
  184.     print("> " + x + " - " + str(services_list.count(x)))
  185. print("\n")
  186.  
  187. print ('Denizens: ')
  188. for x in denizenList:
  189.     print(x["Name"])
  190. print("\n")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement