Skip to content

Instantly share code, notes, and snippets.

@niktto
Created May 24, 2019 18:45
Show Gist options
  • Save niktto/6a5ab95cae4f2dbd849cb01cc6790cd6 to your computer and use it in GitHub Desktop.
Save niktto/6a5ab95cae4f2dbd849cb01cc6790cd6 to your computer and use it in GitHub Desktop.
RACES = [
'Dragonborn',
'Dwarf',
'Elf',
'Gnome',
'Half-Elf',
'Halfling',
'Half-Orc',
'Human',
'Tiefling',
'Aarakocra',
'Genasi',
'Goliath',
'Aasimar',
'Bugbear',
'Firbolg',
'Goblin',
'Hobgoblin',
'Kenku',
'Kobold',
'Lizardfolk',
'Orc',
'Tortle',
'Tabaxi',
'Triton',
'Yuan-ti Pureblood',
'Feral Tiefling',
]
CLASSES = [
'Barbarian',
'Bard',
'Cleric',
'Druid',
'Fighter',
'Monk',
'Paladin',
'Ranger',
'Rogue',
'Sorcerer',
'Warlock',
'Wizard',
'Artificer',
'Blood Hunter',
]
FEELS = ['Cute', 'Scary', 'Imposing', 'Cool', 'Chill', 'Boujee', 'Snarky']
LIMBS = [
'eyes',
'leg',
'arm',
'torso'
]
LIMB_DESC = {
'eyes': ['lazy', 'Blue', 'Hazy', 'Bloodshut', 'Deep blue', 'green', 'yellow', 'small'],
'leg': ['crooked', 'shorter', 'deformed'],
'arm': ['blackened', 'wrinkled', 'deformed'],
'torso': ['bulky', 'huge', 'concaved', 'wimpy']
}
HOBBY = ['knitting', 'furry culture', 'weightlifting', 'competitive baking', 'chess']
from random import choice as rc
def generate_npc():
limb = rc(LIMBS)
if limb in ('eyes', 'torso'):
limb_desc = f'{rc(LIMB_DESC[limb])} {limb}'.lower()
elif limb in ('leg', 'arm'):
limb_desc = f'one {rc(LIMB_DESC[limb])} {limb}'.lower()
return f'{rc(FEELS)} {rc(RACES).lower()} {rc(CLASSES).lower()} with {limb_desc} that is really into {rc(HOBBY)} and {rc(HOBBY)}.'
for x in range(30):
print(generate_npc())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment