def gnome():

    alignmentPick(["Lawful", "Chaotic"], ["Good"])
    settings.race = "Gnome"
    settings.age = random.randint(5, 500)
    settings.size = (int(random.uniform(3.0, 4.0) * 100)) / 100.0
    settings.speed = 25
    settings.weight = random.randint(30, 50)

    settings.featuresAndTraits[
        "Dark Vision"] = "Range: 60 feet. See in dim light as bright light and dark light at dim light"
    settings.featuresAndTraits[
        "Gnome Cunning"] = "Advantage on Wis, Int, Cha saving throws against magic."

    settings.languages.extend(["Gnomish", "Common"])

    settings.intelligence += 2

    subrace = random.randint(0, 1)
    if subrace == 0:
        settings.race = "Forest " + settings.race
        settings.dexterity += 1
        settings.featuresAndTraits[
            "Natural Illusionist"] = "You know Minor Illusion cantrip.  Int is spellcasting ability."
        settings.featuresAndTraits[
            "Speak with Small Beasts"] = "Through sounds and small gestures you can communicate simple ideas to Small or smaller beasts."

    else:
        settings.race = "Rock " + settings.race
        settings.constitution += 1
        settings.featuresAndTraits[
            "Artificer's Lore"] = "twice proficiency bonus on History checks related to magic items, alchemical objects, or technological devices."
        settings.featuresAndTraits[
            "Tinker"] = "Proficiency in Artisan Tools. 1 hour and 10gp to construct Tiny clockwork device (AC 5, 1 hp) either: Clockwork Toy, Fire Starter, Music Box."
        settings.toolProficiencies.append(["Artisan Tools"])
Beispiel #2
0
def human():

    alignmentPick(["Lawful", "Neutral", "Chaotic"],
                  ["Good", "Neutral", "Evil"])
    settings.race = "Human"
    settings.age = random.randint(5, 100)
    settings.size = (int(random.uniform(5.0, 7.0) * 100)) / 100.0
    settings.speed = 30
    settings.weight = random.randint(90, 200)

    #TODO: add in human variant taking +1 to two scores and a feat and skill
    mutant = random.uniform(0, 1)
    if mutant < 0.55:
        settings.strength += 1
        settings.dexterity += 1
        settings.constitution += 1
        settings.intelligence += 1
        settings.wisdom += 1
        settings.charisma += 1
    else:
        abilityArray = [
            settings.strength, settings.dexterity, settings.constitution,
            settings.intelligence, settings.wisdom, settings.charisma
        ]
        abilityIncrease = random.randint(0, 5)
        abilityArray[abilityIncrease] += 1
        del abilityArray[abilityIncrease]

        abilityIncrease = random.randint(0, 4)
        abilityArray[abilityIncrease] += 1

        #Add feats here

        skillPro = random.choice(settings.skills.keys())
        settings.skills[skillPro] = 1
Beispiel #3
0
def dwarf():

    alignmentPick(["Lawful"], ["Good"])
    settings.race = "Dwarf"
    settings.age = random.randint(5, 350)
    settings.size = (int(random.uniform(4.0, 5.0) * 100)) / 100.0
    settings.speed = 25
    settings.weight = random.randint(120, 200)

    settings.featuresAndTraits[
        "Dark Vision"] = "Range: 60 feet. See in dim light as bright light and dark light at dim light"
    settings.featuresAndTraits[
        "Dwarven Resilience"] = "Advantage on saving throws against poison and resistance to poison"
    settings.featuresAndTraits[
        "Stonecunning"] = "History checks against stone objects get double proficiency modifer"

    settings.languages.extend(["Dwarvish", "Common"])
    settings.proficiencies.extend(
        ["Battlexe", "Handaxe", "Light Hammer", "Warhammer"])

    settings.constitution += 2

    subrace = random.randint(0, 1)
    if subrace == 0:
        settings.race = "Hill " + settings.race
        settings.wisdom += 1
        settings.hitPoints += 1

    else:
        settings.race = "Mountain " + settings.race
        settings.strength += 2
        settings.proficiencies.append("Light Armor")
        settings.proficiencies.append("Medium Armor")
Beispiel #4
0
def elf():

	alignmentPick(["Chaotic"],["Good"])
	settings.race = "Elf"
	settings.age = random.randint(5,750)
	settings.size = (int(random.uniform(5.0,6.5)*100))/100.0
	settings.speed = 30
	settings.weight = random.randint(90,200)

	settings.featuresAndTraits["Dark Vision"] = "Range: 60 feet. See in dim light as bright light and dark light at dim light"
	settings.featuresAndTraits["Keen Sense"] = "Proficiency in Perception"
	settings.featuresAndTraits["Fey Ancestry"] = "Advantage on saving throws against being charmed and magic cannot make you sleep"
	settings.featuresAndTraits["Trance"] = "Elves don't sleep, they must meditate for 4 hours during a long rest"
	
	settings.skills["Perception"] = 1
	settings.languages.extend(["Elvish", "Common"])

	settings.dexterity += 2
	subrace = random.randint(0,2)
	if subrace == 0:
		settings.race = "High " + settings.race
		settings.intelligence += 1
		settings.proficiencies.extend(["Long Sword", "ShortSword", "Short Bow", "Long Bow"])
		#Add Cantrip mod
		#Add extra language option

	elif subrace == 1:
		settings.race = "Wood " + settings.race
		settings.wisdom += 1
		settings.proficiencies.extend(["Long Sword", "ShortSword", "Short Bow", "Long Bow"])
		settings.speed = 35
		settings.featuresAndTraits["Mask of the Wild"] = "You can attempt to hide when lightly obscured by nature."

	else :
		settings.race = "Dark " + settings.race + " (Drow)"
		settings.charisma += 1
		alignmentPick(["Chaotic"],["Evil"])

		settings.featuresAndTraits["Superior Dark Vision"] = "Range: 120 feet. See in dim light as bright light and dark light at dim light"
		settings.featuresAndTraits["Sunlight Sensitivity"] = "Disadvange on perception checks and attack rolls in sunlight."
		settings.proficiencies.extend(["Rapier", "ShortSword", "Hand Crossbow"])
def halfElf():

    alignmentPick(["Chaotic"], ["Good", "Neutral", "Evil"])
    settings.race = "Half Elf"
    settings.age = random.randint(5, 200)
    settings.size = (int(random.uniform(5.0, 6.0) * 100)) / 100.0
    settings.speed = 30
    settings.weight = random.randint(90, 200)

    settings.featuresAndTraits[
        "Dark Vision"] = "Range: 60 feet. See in dim light as bright light and dark light at dim light"
    settings.featuresAndTraits[
        "Fey Ancestry"] = "Advantage on saving throws against being charmed and magic cannot put you to sleep."

    settings.languages.extend(["Elvish", "Common"])
    #extra random language

    settings.charisma += 2
    abilityArray = [
        settings.strength, settings.dexterity, settings.constitution,
        settings.intelligence, settings.wisdom
    ]
    abilityIncrease = random.randint(0, 4)
    abilityArray[abilityIncrease] += 1
    del abilityArray[abilityIncrease]

    abilityIncrease = random.randint(0, 3)
    abilityArray[abilityIncrease] += 1

    twoSkills = 0
    while True:

        skillPro = random.choice(settings.skills.keys())
        if settings.skills[skillPro] == 1:
            skillPro = random.choice(settings.skills.keys())
        else:
            if twoSkills == 2:
                break

            twoSkills += 1
            settings.skills[skillPro] = 1
Beispiel #6
0
def tiefling():

    alignmentPick(["Chaotic"], ["Neutral", "Evil"])
    settings.race = "Tiefling"
    settings.age = random.randint(5, 120)
    settings.size = (int(random.uniform(5.0, 6.5) * 100)) / 100.0
    settings.speed = 30
    settings.weight = random.randint(90, 200)

    settings.featuresAndTraits[
        "Dark Vision"] = "Range: 60 feet. See in dim light as bright light and dark light at dim light"
    settings.featuresAndTraits[
        "Hellish resistance"] = "Resistance to fire damage."
    settings.featuresAndTraits[
        "Infernal Legacy"] = "You know Thaumaturgy cantrip. At level 3 you can cast Hellish Rebuke once per day as a second level spell. At 5th level you can cast Darkless once per day.  Charisma is your spellcasting ability."

    settings.languages.extend(["Infernal", "Common"])
    #extra random language

    settings.charisma += 2
    settings.intelligence += 1
def halfOrc():

    alignmentPick(["Chaotic"], ["Neutral", "Evil"])
    settings.race = "Half Orc"
    settings.age = random.randint(5, 75)
    settings.size = (int(random.uniform(5.0, 7.0) * 100)) / 100.0
    settings.speed = 30
    settings.weight = random.randint(90, 220)

    settings.featuresAndTraits[
        "Dark Vision"] = "Range: 60 feet. See in dim light as bright light and dark light at dim light"
    settings.featuresAndTraits["Menacing"] = "Proficient in Intimidation"
    settings.skills["Intimidation"] = 1
    settings.featuresAndTraits[
        "Relentless Endurance"] = "When you are reduced to 0 HP, you go to 1 HP.  You can do this once per long rest."
    settings.featuresAndTraits[
        "Savage Attacks"] = "When you roll a critical hitwith a melee weapon you add one extra damage dice to the damage dealt."

    settings.languages.extend(["Orc", "Common"])
    #extra random language

    settings.strength += 2
    settings.constitution += 1
Beispiel #8
0
def dragonborn():

    alignmentPick(["Lawful", "Chaotic"], ["Good", "Evil"])
    settings.race = "Dragonborn"
    settings.age = random.randint(5, 80)
    settings.size = (int(random.uniform(6.0, 8.0) * 100)) / 100.0
    settings.speed = 30
    settings.weight = random.randint(200, 300)

    settings.featuresAndTraits[
        "Damage Resistance"] = "Resistance to damage of your Draconic Ancestry type."
    settings.featuresAndTraits[
        "Breath Weapon"] = "Action: Exhale Draconic Ancestry attack.  DC = 8+Con+proficiency bonus."
    settings.featuresAndTraits[
        "Draconic Ancestry"] = "Breath weapon type and damage resistance."

    settings.languages.extend(["Draconic", "Common"])

    settings.strength += 2
    settings.charisma += 1

    subrace = random.randint(0, 9)
    if subrace == 0 or subrace == 4:
        if subrace == 0:
            settings.race = "Black " + settings.race
            settings.featuresAndTraits[
                "Acid Breath"] = "5 by 30 foot line (Dex save)"
        else:
            settings.race = "Copper " + settings.race
            settings.featuresAndTraits[
                "Acid Breath"] = "5 by 30 foot line (Dex save)"

    elif subrace == 1 or subrace == 3:
        if subrace == 1:
            settings.race = "Blue " + settings.race
            settings.featuresAndTraits[
                "Lightning Breath"] = "5 by 30 foot line (Dex save)"
        else:
            settings.race = "Bronze " + settings.race
            settings.featuresAndTraits[
                "Lightning Breath"] = "5 by 30 foot line (Dex save)"

    elif subrace == 2 or subrace == 5 or subrace == 7:
        if subrace == 2:
            settings.race = "Brass " + settings.race
            settings.featuresAndTraits[
                "Fire Breath"] = "5 by 30 foot line (Dex save)"
        elif subrace == 5:
            settings.race = "Gold " + settings.race
            settings.featuresAndTraits[
                "Fire Breath"] = "15 foot cone (Dex save)"
        else:
            settings.race = "Red " + settings.race
            settings.featuresAndTraits[
                "Fire Breath"] = "15 foot cone (Dex save)"

    elif subrace == 8 or subrace == 9:
        if subrace == 8:
            settings.race = "Silver " + settings.race
            settings.featuresAndTraits[
                "Cold Breath"] = "15 foot cone (Con save)"
        else:
            settings.race = "White " + settings.race
            settings.featuresAndTraits[
                "Cold Breath"] = "15 foot cone (Con save)"

    else:
        settings.race = "Green " + settings.race
        settings.featuresAndTraits["Poison Breath"] = "15 foot cone (Con save)"