Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- biome_type = random.choice(['Grassland','Mountain'])
- maxMinPop = {"Camp":[6,12], "Outpost":[15,25], "Village":[40,80], "Town":[80, 1000], "City":[1000, 2000], "Capital City":[2000, 5000]}
- chosen_Settlement_Type = random.choice(list(maxMinPop.keys()))
- population = random.choice (range(maxMinPop[chosen_Settlement_Type][0],maxMinPop[chosen_Settlement_Type] [1]))
- def get_services(chosen_Settlement_Type):
- basic_services = ['Blacksmith','Tanner','Travelling Merchant','Cleric']
- advanced_services = ['Inn','Tavern','Farm','Stable', 'Shop','Church']
- chosen_services = []
- #add in a premium services for town(maybe) city and capital
- if chosen_Settlement_Type == 'Camp':
- services = random.choice(range(0,3))
- for x in range(services):
- chosen_services.append(random.choice(basic_services))
- elif chosen_Settlement_Type == 'Outpost':
- services = random.choice(range(2,5))
- for x in range(services):
- chosen_services.append(random.choice(basic_services+basic_services+advanced_services))
- elif chosen_Settlement_Type == 'Village':
- services = random.choice(range(4,10))
- for x in range(services):
- chosen_services.append(random.choice(basic_services+advanced_services))
- elif chosen_Settlement_Type == 'Town':
- services = random.choice(range(7,17))
- for x in range(services):
- chosen_services.append(random.choice(basic_services+advanced_services))
- elif chosen_Settlement_Type == 'City':
- services = random.choice(range(12,21))
- for x in range(services):
- chosen_services.append(random.choice(basic_services+advanced_services))
- elif chosen_Settlement_Type == 'Capital City':
- services = random.choice(range(18,35))
- for x in range(services):
- chosen_services.append(random.choice(basic_services+advanced_services))
- return chosen_services
- if biome_type == 'Grassland':
- race = random.choice (['Human','Human','Human','Dwarf'])
- elif biome_type == 'Mountain':
- race = random.choice (['Human','Dwarf','Dwarf','Dwarf'])
- def human_name_gen():
- syllables = ['mas', 'ran', 'lan', 'top', 'val', 'la', 'gar','cal','ron',
- 'lie','jera','mey','cop','per','dar', 'ren','ie','jes','har','ha','gre','hem','way','sam','mal','ik','war','hay']
- laSyllables = ['smi','tay','low','lock','row','wood','ley','par','son','dal','house','river','field','hay']
- first_s = random.choice(syllables)
- second_s = random.choice(syllables)
- for x in range(20):
- while True:
- first_s = random.choice(syllables).capitalize()
- second_s = random.choice(syllables)
- if first_s != second_s:
- first_name = first_s + second_s
- break
- surname = random.choice (laSyllables).capitalize() + random.choice(laSyllables)
- return (first_name + ' ' + surname)
- def dwarf_name_gen():
- syllables = ['to', 'ro', 'for', 'lo', 'ran', 'ga', 'rag', 'var', 'lag', 'gar','rek','ron','vek','jera','ker','kot','dok','dar', 'ka']
- body_names= ['hand', 'fist', 'leg', 'head', 'heart', 'eye', 'foot', 'arm', 'finger', 'toe', 'nose','hat']
- rock_names= ['rock', 'stone','boulder', 'gold', 'lead', 'pebble','diamond','ruby','lapis','crag','cliff']
- first_s = random.choice(syllables)
- second_s = random.choice(syllables)
- for x in range(20):
- while True:
- first_s = random.choice(syllables).capitalize()
- second_s = random.choice(syllables)
- if first_s != second_s:
- first_name = first_s + second_s
- break
- surname = random.choice (rock_names).capitalize() + random.choice(body_names)
- return (first_name + ' ' + surname)
- def get_leader_title(chosen_Settlement_Type):
- if chosen_Settlement_Type == 'Camp':
- leader_title = random.choice(['Captain ','',''])
- elif chosen_Settlement_Type == 'Outpost':
- leader_title = random.choice(['Captain ','General ','Captain ','Lord ','Lady ','Captain '])
- elif chosen_Settlement_Type == 'Village':
- leader_title = random.choice (['Lord ','Lady ','Baron ','Baroness ','','','','',''])
- elif chosen_Settlement_Type == 'Town':
- leader_title = random.choice (['Lord ','Lady ','Baron ','Baroness ','Mayor ','Mayor ','Mayor ','Mayor '])
- elif chosen_Settlement_Type == 'City':
- leader_title = random.choice (['King ','Queen '])
- elif chosen_Settlement_Type == 'Capital City':
- leader_title = random.choice (['High King ','High Queen ','Queen ','King '])
- return (leader_title)
- if race == 'Human':
- leader_name = get_leader_title(chosen_Settlement_Type) + human_name_gen()
- elif race == 'Dwarf':
- leader_name = get_leader_title(chosen_Settlement_Type) + dwarf_name_gen()
- def generateDenizen():
- #This sub-function generated names for the people
- def generatePersonJob():
- jobList = [
- "General Merchant",
- "Blacksmith",
- "Tailor",
- "Cobbler",
- "Tanner",
- "Doctor",
- "Wicken",
- "Wizard",
- "Healer",
- "Chef",
- "Baker",
- "Mercenary",
- "Arms Merchant",
- "Undertaker",
- "Executioner",
- "Carpenter",
- "Conjourer",
- "Stable Worker",
- "Falconer",
- "Hunter",
- "Farmer",
- "Banker",
- "Soldier",
- "Librarian"
- ]
- job = random.choice(jobList)
- return job
- #set name equal to the full name we just generated in the above function
- name = dwarf_name_gen()
- #Pick a random number for age
- age = random.choice(range(1,90))
- #Pick a random job
- job = generatePersonJob()
- #Create a data dict that holds the name and age
- person = {"Name":name, "Age":age, "Job":job}
- #output the data dict we just made
- return person
- denizenList = []
- for x in range(population):
- denizenList.append(generateDenizen())
- services_list = get_services(chosen_Settlement_Type)
- print ("~ Settlement Generator ~")
- print ('Biome: '+ biome_type + "\n")
- print ("Type: "+ chosen_Settlement_Type + "\n")
- print ('Prominant race: ' + race + "\n")
- print ('Lead by: ' + leader_name + "\n")
- print ('Population: '+ str(population) + "\n")
- print ('Services: ')
- for x in set(services_list):
- print("> " + x + " - " + str(services_list.count(x)))
- print("\n")
- print ('Denizens: ')
- for x in denizenList:
- print(x["Name"])
- print("\n")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement