def Business(): roll = rng.randint(1, 20) emb = [] emb += ['Alchemists and apothecaries.'] emb += ['Armorers, locksmiths, and finesmiths.'] emb += ['Brewers, distillers, and vintners.'] emb += ['Calligraphers, scribes, and scriveners.'] emb += ['Carpenters, roofers, and plasterers.'] emb += ['Cartographers, surveyors, and chart-makers.'] emb += ['Cobblers and shoemakers.'] emb += ['Cooks and bakers'] emb += ['Glassblowers and glaziers.'] emb += ['Jewelers and gemcutters.'] emb += ['Leatherworkers, skinners, and tanners.'] emb += ['Masons and stonecutters.'] emb += ['Painters, limners, and sign-makers.'] emb += ['Potters and tile-makers.'] emb += ['Shipwrights and sailmakers.'] emb += ['Smiths and metal-forgers.'] emb += ['Tinkers, pewterers, and casters.'] emb += ['Wagon=makers and wheelwrights.'] emb += ['Weavers and dyers.'] emb += ['Woodcarvers, coopers, and bowyers.'] return ('Guild Business:' + newLine + indentSpace + TableHelper.dTwentyTable(emb, roll) + newLine)
def Instrument(roll): emb = [] emb += ['A masterfully crafted halfling fiddle.'] emb += ['A mithral horn made by elves.'] emb += ['A zither made with drow spider silk.'] emb += ['An orcish drum.'] emb += ['A wooden bullywug croak box.'] emb += ['A tinker\'s harp of gnomish design.'] return TableHelper.dSixTable(emb, roll)
def Symbols(roll): emb = [] emb += ['A dragon, emblematic of your nobility in peace and your ferocity in combat.'] emb += ['A clenched fist, because you are always ready to fight for your beliefs.'] emb += ['An upraised open hand, indicating your preference for diplomacy over combat.'] emb += ['A red heart, showing the world your commitment to justice.'] emb += ['A black heart, signifying that emotions such as pity do not sway your dedication to your oath.'] emb += ['An unblinking eye, meaning that you are ever alert to all threats against your cause.'] # return TableHelper.dSixTable(emb, roll)
def BindingMark(roll): emb = [] emb += ['One of your eyes looks the same as one of your patron\'s eyes.'] emb += ['Each time you wake up, the small blemish on your face appears in a different place.'] emb += ['You display outward symptoms of a disease but suffer no ill effects from it.'] emb += ['Your tongue is an unnatural colour.'] emb += ['You have a vestigial tail'] emb += ['Your nose glows in the dark.'] return TableHelper.dSixTable(emb, roll)
def SpecialTerms(roll): emb = [] emb += ['When directed, you must take immediate action against a specific enemy of your patron.'] emb += ['Your pact tests your willpower; you are required to abstain from alcohol and other intoxicants.'] emb += ['At least once a day, you must inscribe or carve your patron\'s name or symbol on the wall of a building.'] emb += ['You must occasionally conduct bizarre rituals to maintain your pact.'] emb += ['You can never wear the same outfit twice, since your patron finds such predictability to be boring.'] emb += ['When you use an eldritch invocation, you must speak your patron\'s name aloud or risk incurring its displeasure.'] return TableHelper.dSixTable(emb, roll)
def PatronAttitudes(roll): emb = [] emb += ['You patron has guided and helped your family for generations and is kindly toward you.'] emb += ['Each interaction with your capricious patron is a surprise, whether pleasant or painful.'] emb += ['Your patron is the spirit of a long-dead hero who sees your pact as a way for it to continue to influence the world.'] emb += ['Your patron is a strict disciplinarian but treats you with a measure of respect.'] emb += ['Your patron tricked you into a pact and treats you as a slave.'] emb += ['You are mostly left to your own devices with no interference from your patron. Sometimes you dread the demands it will make when it does appear.'] return TableHelper.dSixTable(emb, roll)
def ClassTraining(roll): emb = [] emb += ['a fantastical being appeared before you and called on you to undertake a holy quest.'] emb += ['one of your ancestors left a holy quest unfulfilled, so you intend to finish that work.'] emb += ['the world is a dark and terrible place. You decided to serve as a beacon of light shining out against the gathering shadows.'] emb += ['you served as a paladin\'s squire, learning all you needed to swear your own sacred oath.'] emb += ['evil must be opposed on all fronts. You feel compelled to seek out wickedness and purge it from the world.'] emb += ['becoming a paladin was a natural consequence of your unwavering faith. In taking your vows, you became the holy sword of your religion.'] result = 'You became a paladin because ' + TableHelper.dSixTable(emb, roll) + lineBreak return result
def Temptations(roll): emb = [] emb += ['Fury. When your anger is roused, you have trouble thinking straight, and you fear you might do something you\'ll regret.'] emb += ['Pride. Your deeds are noteworthy, and no one takes note of them more often than you.'] emb += ['Lust. You can\'t resist an attractive face and a pleasant smile.'] emb += ['Envy. You are mindful of what some famous folk have accomplished, and you feel inadequate when your deeds don\'t compare to theirs.'] emb += ['Despair. You consider the great strength of the enemies you must defeat, and at times you see no way to achieve final victory.'] emb += ['Greed. Regardless of how much glory and treasure you amass, it\'s never enough for you.'] # return TableHelper.dSixTable(emb, roll)
def GuiltyPleasures(roll): emb = [] emb += ['Large gems.'] emb += ['A smile from a pretty face.'] emb += ['A new ring for your finger.'] emb += ['The chance to deflate someone\'s ego.'] emb += ['The finest food and drink.'] emb += ['Adding to your collection of exotic coins.'] # return TableHelper.dSixTable(emb, roll)
def Adversaries(roll): emb = [] emb += ['The pirate captain on whose ship you once served; what you call moving on, the captain calls mutiny.'] emb += ['A master spy to whom you unwittingly fed bad information, which led to the assassination of the wrong target.'] emb += ['The master of the local thieves\' guild, who wants you to join the organization or leave town.'] emb += ['An art collector who uses illegal means to acquire masterpieces.'] emb += ['A fence who uses you as a messenger to set up illicit meetings.'] emb += ['The proprietor of an illegal pit fighting arena where you once took bets.'] # return TableHelper.dSixTable(emb, roll)
def Decision(): roll = rng.randint(1,6) emb = [] emb += ['I learned what was right and wrong from my family.'] emb += ['I was always enamored by tales of heroes and wished I could be something more than ordinary.'] emb += ['I hated my mundane life, so when it was time for someone to step up and do the right thing, I took my chance.'] emb += ['a parent or one of my relatives was an adventurer, and I was inspired by that person\'s courage.'] emb += ['a mad old hermit spoke a prophecy when I was born, saying that I would accomplish great things.'] emb += ['I have always stood up for those who are weaker than I am.'] return ('I became a folk hero because ' + TableHelper.dSixTable(emb, roll) + newLine)
def Benefactors(roll): emb = [] emb += ['A smuggler kept you from getting caught but lost a valuable shipment in doing so. Now you owe that person an equally valuable favor.'] emb += ['The Beggar King has hidden you from your pursuers many times, in return for future considerations.'] emb += ['A magistrate once kept you out of jail in return for information on a powerful crime lord.'] emb += ['Your parents used their savings to bail you out of trouble in your younger days and are now destitute.'] emb += ['A dragon didn\'t eat you when it had a chance, and in return you promised to set aside choice pieces of treasure for it'] emb += ['A druid once helped you out of a tight spot; now any random animal you see could be that benefactor, perhaps come to claim a return favor.'] # return TableHelper.dSixTable(emb, roll)
def ClassTraining(roll): emb = [] emb += ['you have always been nimble and quick of wit, so you decided to use those talents to help you make your way in the world.'] emb += ['an assassin or a thief wronged you, so you focused your training on mastering the skills of your enemy to better combat foes of that sort.'] emb += ['an experienced rogue saw something in you and taught you several useful tricks.'] emb += ['you decided to turn your natural lucky streak into the basis of a career, though you still realize that improving your skills is essential.'] emb += ['you took up with a group of ruffians who showed you how to get what you want through sneakiness rather than direct confrontation.'] emb += ['you are a sucker for a shiny bauble or a sack of coins, as long as you can get your hands on it without risking life and limb.'] result = 'You became a rogue because ' + TableHelper.dSixTable(emb, roll) + lineBreak return result
def Decision(): roll = rng.randint(1,6) emb = [] emb += ['I resented authority in my younger days and saw a life of crime as the best way to fight against tyranny and oppression.'] emb += ['necessity forced me to take up the life, since it was the only way I could survive.'] emb += ['I fell in with a gang of reprobates and ne\'er-do-wells, and I learned my specialty from them.'] emb += ['a parent or relative taught me my criminal specialty to prepare me for the family business.'] emb += ['I left home and found a place in a thieves\' guild or some other criminal organization.'] emb += ['I was always bored, so I turned to crime to pass the time and discovered I was quite good at it.'] return ('I became a criminal because ' + TableHelper.dSixTable(emb, roll) + newLine)
def PersonalGoals(roll): emb = [] emb += ['Peace. You fight so that future generations will not have to.'] emb += ['Revenge. Your oath is the vehicle through which you will right an ancient wrong.'] emb += ['Duty. You will live up to what you have sworn to do, or die trying.'] emb += ['Leadership. You will win a great battle that bards will sing about, and in so doing, you will become an example to inspire others.'] emb += ['Faith. You know your path is righteous, or else the gods would not have set you upon it. '] emb += ['Glory. You will lead the world into a grand new era, one that will be branded with your name.'] # return TableHelper.dSixTable(emb, roll)
def Nemesis(roll): emb = [] emb += ['A mighty orc war chief who threatens to overrun and destroy everything you hold sacred.'] emb += ['A fiend or a celestial, the agent of a power of the Outer Planes, who has been charged with corrupting or redeeming you, as appropriate.'] emb += ['A dragon whose servants dog your steps.'] emb += ['A high priest who sees you as a misguided fool and wants you to abandon your religion.'] emb += ['A rival paladin who trained with you but became an oath-breaker and holds you responsible.'] emb += ['A vampire who has sworn revenge against all paladins after being defeated by one.'] # return TableHelper.dSixTable(emb, roll)
def Traits(emb): r1 = rng.randint(1, 8) r2 = rng.randint(1, 8) while r2 == r1: r2 = rng.randint(1, 8) rolls = [r1, r2] result = TableHelper.XdEightTable(emb, rolls) ret = 'Trait:' + newLine ret += indentSpace + result[0] + newLine ret += indentSpace + result[1] + newLine return ret
def ClassTraining(roll): emb = [] emb += ['while wandering around in a forbidden place, you encountered an otherworldly being that offered to enter into a pact with you.'] emb += ['you were examining a strange tome you found in an abandoned library when the entity that would become your patron suddenly appeared before you.'] emb += ['you stumbled into the clutches of your patron after you accidentally stepped through a magical doorway.'] emb += ['when you were faced with a terrible crisis, you prayed to any being who would listen, and the creature that answered became your patron.'] emb += ['your fututre patron visited you in your dreams and offered great power in exchange for your service.'] emb += ['one of your ancestors had a pact with your patron, so that entity was determined to bind you to the same agreement.'] result = 'You became a warlock because ' + TableHelper.dSixTable(emb, roll) + lineBreak return result
def SupernaturalMarks(roll): emb = [] emb += ['Your eyes are an unusual colour, such as red.'] emb += ['You have an extra toe on one foot.'] emb += ['One of your ears is noticeably larger than the other.'] emb += ['Your hair grows at a prodigious rate.'] emb += ['You wrinkle your nose repeatedly while you are chewing.'] emb += [ 'A red splotch appears on your neck once a day, then vanishes after an hour.' ] return TableHelper.dSixTable(emb, roll)
def TreasuredItems(roll): emb = [] emb += [ 'A twig from the meeting tree that stands in the center of your village.' ] emb += ['A vial of water from the source of a sacred river.'] emb += ['Special herbs tied together in a bundle.'] emb += ['A small bronze bowl engraved with animal images.'] emb += ['A rattle made from a dried gourd and holly berries.'] emb += ['A miniature golden sickle handed down to you by your mentor.'] return TableHelper.dSixTable(emb, roll)
def Specialty(): emb = [] roll = rng.randint(1,8) emb += ['Blackmailer'] emb += ['Burglar'] emb += ['Enforcer'] emb += ['Fence'] emb += ['Highway robber'] emb += ['Hired killer'] emb += ['Pickpocket'] emb += ['Smuggler'] return ('Criminal Specialty:' + newLine + indentSpace +TableHelper.dEightTable(emb, roll) + newLine)
def Specialty(): roll = rng.randint(1, 8) emb = [] emb += ['Officer'] emb += ['Scout'] emb += ['Infantry'] emb += ['Cavalry'] emb += ['Healer'] emb += ['Quartermaster'] emb += ['Standard bearer'] emb += ['Support staff (cook, blacksmith, or the like)'] return ('Specialty:' + newLine + indentSpace + TableHelper.dEightTable(emb, roll) + newLine)
def Specialty(): roll = rng.randint(1, 8) emb = [] emb += ['Alchemist'] emb += ['Astronomer'] emb += ['Discredited academic'] emb += ['Librarian'] emb += ['Professor'] emb += ['Researcher'] emb += ['Wizard\'s apprentice'] emb += ['Scribe'] return ('Specialty:' + newLine + indentSpace + TableHelper.dEightTable(emb, roll) + newLine)
def DefiningEvent(): roll = rng.randint(1,10) emb = [] emb += ['I stood up to a tyrant\'s agents.'] emb += ['I saved people during a natural disaster.'] emb += ['I stood alone against a terrible monster.'] emb += ['I stole from a corrupt merchant to help the poor.'] emb += ['I led a militia to fight off an invading army.'] emb += ['I broke into a tyrant\'s castle and stole weapons to arm the people.'] emb += ['I trained the peasantry to use farm implements as weapons against a tyrant\'s soldiers.'] emb += ['A lord rescinded an unpopular decree after I led a symbolic act of protect against it.'] emb += ['A celestial, fey, or similar creature gave me a blessing or revealed my secret origin.'] emb += ['Recruited into a lord\'s army, I rose to leadership and was commended for my heroism.'] return ('Defining Event:' + newLine + TableHelper.dTenTable(emb, roll) + newLine)
def Keepsake(roll): emb = [] emb += ['The finger bone of a saint.'] emb += [ 'A metal-bound book that tells how to hunt and destroy infernal creatures.' ] emb += [ 'A pig\'s whistle that reminds you of your humble and beloved mentor.' ] emb += ['A braid of hair woven from the tail of a unicorn.'] emb += [ 'A scroll that describes how best to rid the world of necromancers.' ] emb += ['A runestone said to be blessed by your god.'] return TableHelper.dSixTable(emb, roll)
def Schemes(): roll = rng.randint(1, 6) emb = [] emb += ['I cheat at games of chance.'] emb += ['I shave coins or forget documents.'] emb += [ 'I insinuate myself into people\'s lives to prey on their weakness and secure their fortunes.' ] emb += ['I put on new identities like clothes.'] emb += ['I run sleight-of-hand cons on street corners.'] emb += [ 'I convince people that worthless junk is worth their hard-earned money.' ] return ('Favorite Scheme:' + newLine + indentSpace + TableHelper.dSixTable(emb, roll) + newLine)
def Origin(): roll = rng.randint(1, 10) emb = [] emb += ['Forester'] emb += ['Trapper'] emb += ['Homesteader'] emb += ['Guide'] emb += ['Exile or outcast'] emb += ['Bounty hunter'] emb += ['Pilgrim'] emb += ['Tribal Nomad'] emb += ['Hunter-gatherer'] emb += ['Tribal marauder'] return ('Origin:' + newLine + indentSpace + TableHelper.dTenTable(emb, roll) + newLine)
def Routines(): roll = rng.randint(1, 10) emb = [] emb += ['Actor'] emb += ['Dancer'] emb += ['Fire-eater'] emb += ['Jester'] emb += ['Juggler'] emb += ['Instrumentalist'] emb += ['Poet'] emb += ['Singer'] emb += ['Storyteller'] emb += ['Tumbler'] return ('Entertainer Routine:' + newLine + indentSpace + TableHelper.dTenTable(emb, roll) + newLine)
def Tattoos(roll): emb = [] emb += ['The wings of an eagle are spread wide across your upper back.'] emb += ['Etched on the backs of your hands are the paws of a cave bear.'] emb += [ 'The symbols of your clan are displayed in viny patterns along your arms.' ] emb += ['The antlers of an elk are inked across your back.'] emb += [ 'Images of your spirit animal are tattooed along your weapon arm and hand.' ] emb += [ 'The eyes of a wolf are marked on your back to help yu see and ward off evil spirits.' ] return TableHelper.dSixTable(emb, roll)
def Ambition(roll): emb = [] emb += [ 'You will prove that the gods aren\'t as powerful as folk believe.' ] emb += ['Immortality is the end goal of your studies.'] emb += [ 'If you can fully understand magic, you can unlock its use for all and usher in an era of equality.' ] emb += [ 'Magic is a dangerous tool. You use it to protect what you treasure.' ] emb += ['Arcane power must be taken away from those who would abuse it.'] emb += [ 'You will become the greatest wizard the world has seen in generations.' ] return TableHelper.dSixTable(emb, roll)