示例#1
0
def generate_parents(race):
    mother = None
    father = None
    parents_names = [None, None]
    result = roll_event(100, parents)

    if "don't" in result:
        return result
    if 'half' in race:
        human_parent = random.choice([0, 1])
        parents_names[human_parent] = generate_name('human', human_parent)

        if 'orc' in race:
            parents_names[not human_parent] = generate_name(
                'orc', not human_parent)
        elif 'dwarf' in race:
            parents_names[not human_parent] = generate_name(
                'dwarf', not human_parent)
        else:
            raise RaceNotSupportedException(race)
    else:
        for ii in range(2):
            parents_names[ii] = generate_name(race, ii)
    return ("Knew parents, they were " + parents_names[0] + " and " +
            parents_names[1])
示例#2
0
def namer_util(args):
    if args.list:
        print('Supported races: ' + str(races))
        return

    for n in range(args.num_names):
        print(generate_name(args.race, args.gender))
示例#3
0
def generate_character(*args, **kargs):
    """
        Generates a random npc with a backstory and stats.
    """
    # TODO: Do something with the arguments later.
    # TODO: This is admittedly awful.  This will be changed after we refine the libary.
    # It's currently here mostly for  testing purposes.
    gender = randint(0, 1)
    level = 4
    CHARACTER['Race'] = choose_random_race()
    CHARACTER['Gender'] = 'Male' if gender else 'Female'
    CHARACTER['Name'] = generate_name(CHARACTER['Race'], gender)
    CHARACTER['Background'] = generate_character_backstory()
    CHARACTER['Stats'] = generate_stats_roll()
    CHARACTER['Stat Modifier'] = stats.calculate_stat_mod(CHARACTER['Stats'])
    CHARACTER['Base AC'] = stats.calculate_base_ac(CHARACTER['Stats'])
    # Intelligence is for the wizard class, just using as a test.
    CHARACTER['Spell Save DC'] = \
        stats.calculate_spell_dc(CHARACTER['Stats']['Intelligence'], level)
    CHARACTER['Spell Attack Mod'] = \
        stats.calculate_spell_attack_mod(CHARACTER['Stats']['Intelligence'],
                                         level)


    # TODO: To be better determined base on a class, for now hardcoding.
    CHARACTER['Maximum HP'] = stats.calculate_max_hp(CHARACTER['Stats'], 8,
                                                     level)
    for key in CHARACTER:
        # Generate and print all the stats.
        print("{}: {}".format(key, CHARACTER[key]))
def friend_event():
    """ Generate a random name and maybe some more details about this person
    """
    gender = random.randint(0, 1)
    race = random.choice(races)
    name = generate_name(race, gender)

    return "You made a friend earlier in life with {}".format(name)
def love_event():
    gender = random.choice(["man", "woman"])

    gender = random.randint(0, 1)
    race = random.choice(races)
    name = generate_name(race, gender)

    return "You fell in love with a {} named {} {} years ago".format(gender,
        name, roll_d10(1))
def enemy_event():
    dangerous = random.choice(["in danger", "not in danger"])
    blame = random.choice(["to blame", "not to blame"])

    gender = random.randint(0, 1)
    race = random.choice(races)
    name = generate_name(race, gender)

    event = "You made an enemy with {}, {} years ago.  You are {} for this.  Currently you are {}".format(
        name, roll_d4(1),  blame, dangerous)

    return event
示例#7
0
def generate_character_backstory(race=None, age=None, gender=None, name=None):
    gender_opt = 0
    if not gender:
        gender_opt = choice([MALE, FEMALE])
    if not race:
        race = choice(races)
    if not name:
        name = generate_name(race, gender_opt)
    if not age:
        age = randint(20, 100)
    
    #there is a personal decisions section that can be implemented later.. alot of work
    childhood = generate_childhood(race)
    life_events = get_life_events(age)

    return {
        'childhood': childhood, 'age': age, 'race': race, 'gender': gender, 
        'name': name, 'life_events': life_events
    }